PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM9Imh0dHA6Ly91c2VmdWxpbmMuY29tL25zL2RvYXAjIj4KCiAgPFByb2plY3Q+CiAgICA8bmFtZT5JbWFnZU1hZ2ljazwvbmFtZT4KICAgIDxzaG9ydGRlc2MgeG1sOmxhbmc9ImVuIj5JbWFnZU1hZ2ljazogY29udmVydCwgZWRpdCwgb3IgY29tcG9zZSBpbWFnZXMuPC9zaG9ydGRlc2M+CiAgICA8aG9tZXBhZ2UgcmRmOnJlc291cmNlPSJodHRwczovL2ltYWdlbWFnaWNrLm9yZy8iLz4KICAgIDxjcmVhdGVkPkBQQUNLQUdFX1JFTEVBU0VfREFURUA8L2NyZWF0ZWQ+CgogICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlbiI+CkludHJvZHVjdGlvbiB0byBJbWFnZU1hZ2ljawoKICBJbWFnZU1hZ2lja64gaXMgYSBzb2Z0d2FyZSBzdWl0ZSB0byBjcmVhdGUsIGVkaXQsIGNvbXBvc2UsIG9yIGNvbnZlcnQKICBiaXRtYXAgaW1hZ2VzLiBJdCBjYW4gcmVhZCBhbmQgd3JpdGUgaW1hZ2VzIGluIGEgdmFyaWV0eSBvZiBmb3JtYXRzIChvdmVyCiAgMjAwKSBpbmNsdWRpbmcgUE5HLCBKUEVHLCBKUEVHLTIwMDAsIEdJRiwgVElGRiwgRFBYLCBFWFIsIFdlYlAsIFBvc3RzY3JpcHQsCiAgUERGLCBhbmQgU1ZHLiBVc2UgSW1hZ2VNYWdpY2sgdG8gcmVzaXplLCBmbGlwLCBtaXJyb3IsIHJvdGF0ZSwgZGlzdG9ydCwKICBzaGVhciBhbmQgdHJhbnNmb3JtIGltYWdlcywgYWRqdXN0IGltYWdlIGNvbG9ycywgYXBwbHkgdmFyaW91cyBzcGVjaWFsCiAgZWZmZWN0cywgb3IgZHJhdyB0ZXh0LCBsaW5lcywgcG9seWdvbnMsIGVsbGlwc2VzIGFuZCBC6XppZXIgY3VydmVzLgogIAogIFRoZSBmdW5jdGlvbmFsaXR5IG9mIEltYWdlTWFnaWNrIGlzIHR5cGljYWxseSB1dGlsaXplZCBmcm9tIHRoZSBjb21tYW5kCiAgbGluZSBvciB5b3UgY2FuIHVzZSB0aGUgZmVhdHVyZXMgZnJvbSBwcm9ncmFtcyB3cml0dGVuIGluIHlvdXIgZmF2b3JpdGUKICBsYW5ndWFnZS4gQ2hvb3NlIGZyb20gdGhlc2UgaW50ZXJmYWNlczogRzJGIChBZGEpLCBNYWdpY2tDb3JlIChDKSwKICBNYWdpY2tXYW5kIChDKSwgQ2hNYWdpY2sgKENoKSwgSW1hZ2VNYWdpY2tPYmplY3QgKENPTSspLCBNYWdpY2srKyAoQysrKSwKICBKTWFnaWNrIChKYXZhKSwgTC1NYWdpY2sgKExpc3ApLCBMdWEsIE5NYWdpY2sgKE5la28vaGFYZSksIE1hZ2ljay5ORVQKICAoLk5FVCksIFBhc2NhbE1hZ2ljayAoUGFzY2FsKSwgUGVybE1hZ2ljayAoUGVybCksIE1hZ2lja1dhbmQgZm9yIFBIUAogIChQSFApLCBJTWFnaWNrIChQSFApLCBQeXRob25NYWdpY2sgKFB5dGhvbiksIFJNYWdpY2sgKFJ1YnkpLCBvciBUY2xNYWdpY2sKICAoVGNsL1RLKS4gV2l0aCBhIGxhbmd1YWdlIGludGVyZmFjZSwgdXNlIEltYWdlTWFnaWNrIHRvIG1vZGlmeSBvciBjcmVhdGUKICBpbWFnZXMgZHluYW1pY2FsbHkgYW5kIGF1dG9tYWdpY2FsbHkuCgogIEltYWdlTWFnaWNrIHV0aWxpemVzIG11bHRpcGxlIGNvbXB1dGF0aW9uYWwgdGhyZWFkcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZQogIGFuZCBjYW4gcmVhZCwgcHJvY2Vzcywgb3Igd3JpdGUgbWVnYS0sIGdpZ2EtLCBvciB0ZXJhLXBpeGVsIGltYWdlIHNpemVzLgogIAogIEltYWdlTWFnaWNrIGlzIGZyZWUgc29mdHdhcmUgZGVsaXZlcmVkIGFzIGEgcmVhZHktdG8tcnVuIGJpbmFyeSBkaXN0cmlidXRpb24KICBvciBhcyBzb3VyY2UgY29kZSB0aGF0IHlvdSBtYXkgdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIGluIGJvdGggb3BlbgogIGFuZCBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMuIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UuCiAgCiAgVGhlIEltYWdlTWFnaWNrIGRldmVsb3BtZW50IHByb2Nlc3MgZW5zdXJlcyBhIHN0YWJsZSBBUEkgYW5kIEFCSS4gQmVmb3JlCiAgZWFjaCBJbWFnZU1hZ2ljayByZWxlYXNlLCB3ZSBwZXJmb3JtIGEgY29tcHJlaGVuc2l2ZSBzZWN1cml0eSBhc3Nlc3NtZW50CiAgdGhhdCBpbmNsdWRlcyBtZW1vcnkgZXJyb3IgYW5kIHRocmVhZCBkYXRhIHJhY2UgZGV0ZWN0aW9uIHRvIHByZXZlbnQKICBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuCgogIEltYWdlTWFnaWNrIGlzIGF2YWlsYWJsZSBmcm9tCiAgaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcmcvc2NyaXB0L2Rvd25sb2FkLnBocC4gIEl0IHJ1bnMgb24gTGludXgsIFdpbmRvd3MsCiAgTWFjIE9zIFgsIGlPUywgQW5kcm9pZCBPUywgYW5kIG90aGVycy4KCiAgVGhlIGF1dGhvcml0YXRpdmUgSW1hZ2VNYWdpY2sgd2ViIHNpdGUgaXMKICBodHRwczovL2ltYWdlbWFnaWNrLm9yZy4gVGhlIGF1dGhvcml0YXRpdmUgc291cmNlIGNvZGUgcmVwb3NpdG9yeSBpcwogIGh0dHBzOi8vZ2l0LmltYWdlbWFnaWNrLm9yZy9yZXBvcy9JbWFnZU1hZ2ljay8uCgoKRmVhdHVyZXMgYW5kIENhcGFiaWxpdGllcwogIAogIEhlcmUgYXJlIGp1c3QgYSBmZXcgZXhhbXBsZXMgb2Ygd2hhdCBJbWFnZU1hZ2ljayBjYW4gZG86CiAgCiAgICAgICogRm9ybWF0IGNvbnZlcnNpb246IGNvbnZlcnQgYW4gaW1hZ2UgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIgKGUuZy4KICAgICAgICBQTkcgdG8gSlBFRykuCiAgICAgICogVHJhbnNmb3JtOiByZXNpemUsIHJvdGF0ZSwgZGVza2V3LCBjcm9wLCBmbGlwIG9yIHRyaW0gYW4gaW1hZ2UuCiAgICAgICogVHJhbnNwYXJlbmN5OiByZW5kZXIgcG9ydGlvbnMgb2YgYW4gaW1hZ2UgaW52aXNpYmxlLgogICAgICAqIERyYXc6IGFkZCBzaGFwZXMgb3IgdGV4dCB0byBhbiBpbWFnZS4KICAgICAgKiBEZWNvcmF0ZTogYWRkIGEgYm9yZGVyIG9yIGZyYW1lIHRvIGFuIGltYWdlLgogICAgICAqIFNwZWNpYWwgZWZmZWN0czogYmx1ciwgc2hhcnBlbiwgdGhyZXNob2xkLCBvciB0aW50IGFuIGltYWdlLgogICAgICAqIEFuaW1hdGlvbjogY3JlYXRlIGEgR0lGIGFuaW1hdGlvbiBzZXF1ZW5jZSBmcm9tIGEgZ3JvdXAgb2YgaW1hZ2VzLgogICAgICAqIFRleHQgJiBjb21tZW50czogaW5zZXJ0IGRlc2NyaXB0aXZlIG9yIGFydGlzdGljIHRleHQgaW4gYW4gaW1hZ2UuCiAgICAgICogSW1hZ2UgZ3JhZGllbnRzOiBjcmVhdGUgYSBncmFkdWFsIGJsZW5kIG9mIG9uZSBjb2xvciB3aG9zZSBzaGFwZSBpcyAKICAgICAgICBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgY2lyY3VsYXIsIG9yIGVsbGlwaWNhbC4KICAgICAgKiBJbWFnZSBpZGVudGlmaWNhdGlvbjogZGVzY3JpYmUgdGhlIGZvcm1hdCBhbmQgYXR0cmlidXRlcyBvZiBhbiBpbWFnZS4KICAgICAgKiBDb21wb3NpdGU6IG92ZXJsYXAgb25lIGltYWdlIG92ZXIgYW5vdGhlci4KICAgICAgKiBNb250YWdlOiBqdXh0YXBvc2UgaW1hZ2UgdGh1bWJuYWlscyBvbiBhbiBpbWFnZSBjYW52YXMuCiAgICAgICogR2VuZXJhbGl6ZWQgcGl4ZWwgZGlzdG9ydGlvbjogY29ycmVjdCBmb3IsIG9yIGluZHVjZSBpbWFnZSBkaXN0b3J0aW9ucwogICAgICAgIGluY2x1ZGluZyBwZXJzcGVjdGl2ZS4KICAgICAgKiBDb21wdXRlciB2aXNpb246IENhbm55IGVkZ2UgZGV0ZWN0aW9uLgogICAgICAqIE1vcnBob2xvZ3kgb2Ygc2hhcGVzOiBleHRyYWN0IGZlYXR1cmVzLCBkZXNjcmliZSBzaGFwZXMgYW5kIHJlY29nbml6ZQogICAgICAgIHBhdHRlcm5zIGluIGltYWdlcy4KICAgICAgKiBNb3Rpb24gcGljdHVyZSBzdXBwb3J0OiByZWFkIGFuZCB3cml0ZSB0aGUgY29tbW9uIGltYWdlIGZvcm1hdHMgdXNlZCBpbgogICAgICAgIGRpZ2l0YWwgZmlsbSB3b3JrLgogICAgICAqIEltYWdlIGNhbGN1bGF0b3I6IGFwcGx5IGEgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24gdG8gYW4gaW1hZ2Ugb3IgaW1hZ2UKICAgICAgICBjaGFubmVscy4KICAgICAgKiBDb25uZWN0ZWQgY29tcG9uZW50IGxhYmVsaW5nOiB1bmlxdWVseSBsYWJlbCBjb25uZWN0ZWQgcmVnaW9ucyBpbiBhbgogICAgICAgIGltYWdlLgogICAgICAqIERpc2NyZXRlIEZvdXJpZXIgdHJhbnNmb3JtOiBpbXBsZW1lbnRzIHRoZSBmb3J3YXJkIGFuZCBpbnZlcnNlIERGVC4KICAgICAgKiBQZXJjZXB0dWFsIGhhc2g6IG1hcHMgdmlzdWFsbHkgaWRlbnRpY2FsIGltYWdlcyB0byB0aGUgc2FtZSBvciBzaW1pbGFyCiAgICAgICAgaGFzaC0tIHVzZWZ1bCBpbiBpbWFnZSByZXRyaWV2YWwsIGF1dGhlbnRpY2F0aW9uLCBpbmRleGluZywgb3IgY29weQogICAgICAgIGRldGVjdGlvbiBhcyB3ZWxsIGFzIGRpZ2l0YWwgd2F0ZXJtYXJraW5nLgogICAgICAqIENvbXBsZXggdGV4dCBsYXlvdXQ6IGJpZGlyZWN0aW9uYWwgdGV4dCBzdXBwb3J0IGFuZCBzaGFwaW5nLgogICAgICAqIENvbG9yIG1hbmFnZW1lbnQ6IGFjY3VyYXRlIGNvbG9yIG1hbmFnZW1lbnQgd2l0aCBjb2xvciBwcm9maWxlcyBvciBpbgogICAgICAgIGxpZXUgb2YtLSBidWlsdC1pbiBnYW1tYSBjb21wcmVzc2lvbiBvciBleHBhbnNpb24gYXMgZGVtYW5kZWQgYnkgdGhlCiAgICAgICAgY29sb3JzcGFjZS4KICAgICAgKiBIaWdoIGR5bmFtaWMtcmFuZ2UgaW1hZ2VzOiBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgd2lkZSByYW5nZSBvZgogICAgICAgIGludGVuc2l0eSBsZXZlbHMgZm91bmQgaW4gcmVhbCBzY2VuZXMgcmFuZ2luZyBmcm9tIHRoZSBicmlnaHRlc3QgZGlyZWN0CiAgICAgICAgc3VubGlnaHQgdG8gdGhlIGRlZXBlc3QgZGFya2VzdCBzaGFkb3dzLgogICAgICAqIEVuY2lwaGVyIG9yIGRlY2lwaGVyIGFuIGltYWdlOiBjb252ZXJ0IG9yZGluYXJ5IGltYWdlcyBpbnRvCiAgICAgICAgdW5pbnRlbGxpZ2libGUgZ2liYmVyaXNoIGFuZCBiYWNrIGFnYWluLgogICAgICAqIFZpcnR1YWwgcGl4ZWwgc3VwcG9ydDogY29udmVuaWVudCBhY2Nlc3MgdG8gcGl4ZWxzIG91dHNpZGUgdGhlIGltYWdlCiAgICAgICAgcmVnaW9uLgogICAgICAqIExhcmdlIGltYWdlIHN1cHBvcnQ6IHJlYWQsIHByb2Nlc3MsIG9yIHdyaXRlIG1lZ2EtLCBnaWdhLSwgb3IKICAgICAgICB0ZXJhLXBpeGVsIGltYWdlIHNpemVzLgogICAgICAqIFRocmVhZHMgb2YgZXhlY3V0aW9uIHN1cHBvcnQ6IEltYWdlTWFnaWNrIGlzIHRocmVhZCBzYWZlIGFuZCBtb3N0CiAgICAgICAgaW50ZXJuYWwgYWxnb3JpdGhtcyBhcmUgT3Blbk1QLWVuYWJsZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3BlZWQtdXBzCiAgICAgICAgb2ZmZXJlZCBieSBtdWx0aWNvcmUgcHJvY2Vzc29yIGNoaXBzLgogICAgICAqIERpc3RyaWJ1dGVkIHBpeGVsIGNhY2hlOiBvZmZsb2FkIGludGVybWVkaWF0ZSBwaXhlbCBzdG9yYWdlIHRvIG9uZSBvcgogICAgICAgIG1vcmUgcmVtb3RlIHNlcnZlcnMuCiAgICAgICogSGV0ZXJvZ2VuZW91cyBkaXN0cmlidXRlZCBwcm9jZXNzaW5nOiBjZXJ0YWluIGFsZ29yaXRobXMgYXJlCiAgICAgICAgT3BlbkNMLWVuYWJsZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3BlZWQtdXBzIG9mZmVyZWQgYnkgZXhlY3V0aW5nIGluCiAgICAgICAgY29uY2VydCBhY3Jvc3MgaGV0ZXJvZ2VuZW91cyBwbGF0Zm9ybXMgY29uc2lzdGluZyBvZiBDUFVzLCBHUFVzLCBhbmQKICAgICAgICBvdGhlciBwcm9jZXNzb3JzLgogICAgICAqIEltYWdlTWFnaWNrIG9uIHRoZSBpUGhvbmU6IGNvbnZlcnQsIGVkaXQsIG9yIGNvbXBvc2UgaW1hZ2VzIG9uIHlvdXIKICAgICAgICBpUGhvbmUgb3IgaVBhZC4KICAKICBFeGFtcGxlcyBvZiBJbWFnZU1hZ2ljayBVc2FnZSBzaG93cyBob3cgdG8gdXNlIEltYWdlTWFnaWNrIGZyb20gdGhlCiAgY29tbWFuZC1saW5lIHRvIGFjY29tcGxpc2ggYW55IG9mIHRoZXNlIHRhc2tzIGFuZCBtdWNoIG1vcmUuIEFsc28sCiAgc2VlIEZyZWQncyBJbWFnZU1hZ2ljayBTY3JpcHRzOiBhIHBsZXRob3JhIG9mIGNvbW1hbmQtbGluZSBzY3JpcHRzIHRoYXQKICBwZXJmb3JtIGdlb21ldHJpYyB0cmFuc2Zvcm1zLCBibHVycywgc2hhcnBlbnMsIGVkZ2luZywgbm9pc2UgcmVtb3ZhbCwKICBhbmQgY29sb3IgbWFuaXB1bGF0aW9ucy4gV2l0aCBNYWdpY2suTkVULCB1c2UgSW1hZ2VNYWdpY2sgd2l0aG91dCBoYXZpbmcKICB0byBpbnN0YWxsIEltYWdlTWFnaWNrIG9uIHlvdXIgc2VydmVyIG9yIGRlc2t0b3AuCiAgICA8L2Rlc2NyaXB0aW9uPgoKICAgIDxtYWludGFpbmVyPgogICAgICA8Zm9hZjpQZXJzb24+CiAgICAgICAgPGZvYWY6bmFtZT5JbWFnZU1hZ2ljayBTdHVkaW8gTExDPC9mb2FmOm5hbWU+CiAgICAgICAgPGZvYWY6aG9tZXBhZ2UgcmRmOnJlc291cmNlPSJodHRwczovL2ltYWdlbWFnaWNrLm9yZy8iLz4KICAgICAgPC9mb2FmOlBlcnNvbj4KICAgIDwvbWFpbnRhaW5lcj4KCiAgICA8cmVsZWFzZT4KICAgICAgPFZlcnNpb24+CiAgICAgICAgICA8bmFtZT5zdGFibGU8L25hbWU+CiAgICAgICAgICA8Y3JlYXRlZD5AUEFDS0FHRV9SRUxFQVNFX0RBVEVAPC9jcmVhdGVkPgogICAgICAgICAgPHJldmlzaW9uPkBQQUNLQUdFX1ZFUlNJT05APC9yZXZpc2lvbj4KICAgICAgICAgIDxwYXRjaC1sZXZlbD5AUEFDS0FHRV9WRVJTSU9OX0FEREVORFVNQDwvcGF0Y2gtbGV2ZWw+CiAgICAgIDwvVmVyc2lvbj4KICAgIDwvcmVsZWFzZT4KCiAgICA8ZG93bmxvYWQtcGFnZSByZGY6cmVzb3VyY2U9Imh0dHBzOi8vaW1hZ2VtYWdpY2sub3JnL3NjcmlwdC9kb3dubG9hZC5waHAiLz4KICAgIDxkb3dubG9hZC1taXJyb3IgcmRmOnJlc291cmNlPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9pbWFnZW1hZ2ljay8iLz4KCiAgICA8IS0tIExpY2Vuc2luZyBkZXRhaWxzIC0tPgogICAgPGxpY2Vuc2UgcmRmOnJlc291cmNlPSJodHRwczovL2ltYWdlbWFnaWNrLm9yZy9zY3JpcHQvbGljZW5zZS5waHAiLz4KCiAgICA8IS0tIHNvdXJjZSByZXBvc2l0b3J5IC0tPgogICAgPHJlcG9zaXRvcnk+CiAgICAgIDxHSVRSZXBvc2l0b3J5PgogICAgICAgIDxyZXBvc2l0b3J5V2ViVmlldyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9JbWFnZU1hZ2ljay9JbWFnZU1hZ2ljayIvPgogICAgICA8L0dJVFJlcG9zaXRvcnk+CiAgICA8L3JlcG9zaXRvcnk+CiAgPC9Qcm9qZWN0PgoKCiAgPCEtLQogICAgICAgb3B0aW9uYWwgYWRtaW5pc3RyYXZpYToKICAgICAgIGF1dGhvcmluZyB0b29scyBjYW4gYWRkIG1vcmUgaGVyZSBpZiB0aGV5J2QgbGlrZS4KICAgLS0+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiI+CiAgICA8Zm9hZjptYWtlcj4KICAgICAgPGZvYWY6UGVyc29uPgogICAgICAgIDxmb2FmOm5hbWU+SW1hZ2VNYWdpY2sgU3R1ZGlvIExMQzwvZm9hZjpuYW1lPgogICAgICAgIDxmb2FmOmhvbWVwYWdlIHJkZjpyZXNvdXJjZT0iaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcmcvIi8+CiAgICAgIDwvZm9hZjpQZXJzb24+CiAgICA8L2ZvYWY6bWFrZXI+CiAgPC9yZGY6RGVzY3JpcHRpb24+Cgo8L3JkZjpSREY+CjwhLS0gCkxvY2FsIHZhcmlhYmxlczoKbW9kZTpueG1sCkVuZDoKLS0+Cg==