diff --git a/addons/cetmix_tower_aws/README.rst b/addons/cetmix_tower_aws/README.rst new file mode 100644 index 0000000..26b83ce --- /dev/null +++ b/addons/cetmix_tower_aws/README.rst @@ -0,0 +1 @@ +PT09PT09PT09PT09PT09PQpDZXRtaXggVG93ZXIgQVdTCj09PT09PT09PT09PT09PT0KCi4uIAogICAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhCiAgICEhIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgb2NhLWdlbi1hZGRvbi1yZWFkbWUgISEKICAgISEgY2hhbmdlcyB3aWxsIGJlIG92ZXJ3cml0dGVuLiAgICAgICAgICAgICAgICAgICAhIQogICAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhCiAgICEhIHNvdXJjZSBkaWdlc3Q6IHNoYTI1NjplYTNkY2JiOTJkMDcyNDFjOTlkZGFhZjdhMjk5ZDM0MzI4ODQzNWI0YjYxYmQwMDBjYzViOTg2ZWQ1MWZlOTUwCiAgICEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEKCi4uIHxiYWRnZTF8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9tYXR1cml0eS1CZXRhLXllbGxvdy5wbmcKICAgIDp0YXJnZXQ6IGh0dHBzOi8vb2Rvby1jb21tdW5pdHkub3JnL3BhZ2UvZGV2ZWxvcG1lbnQtc3RhdHVzCiAgICA6YWx0OiBCZXRhCi4uIHxiYWRnZTJ8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUFHUEwtLTMtYmx1ZS5wbmcKICAgIDp0YXJnZXQ6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLTMuMC1zdGFuZGFsb25lLmh0bWwKICAgIDphbHQ6IExpY2Vuc2U6IEFHUEwtMwouLiB8YmFkZ2UzfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZ2l0aHViLWNldG1peCUyRmNldG1peC0tdG93ZXItbGlnaHRncmF5LnBuZz9sb2dvPWdpdGh1YgogICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2NldG1peC9jZXRtaXgtdG93ZXIvdHJlZS8xNi4wL2NldG1peF90b3dlcl9hd3MKICAgIDphbHQ6IGNldG1peC9jZXRtaXgtdG93ZXIKCnxiYWRnZTF8IHxiYWRnZTJ8IHxiYWRnZTN8CgoqKuKaoO+4jyBESVNDTEFJTUVSOiBURUNITklDQUwgTU9EVUxFKioKClRoaXMgbW9kdWxlIGludGVncmF0ZXMgQm90bzMgbGlicmFyeSwgdGhlIEFtYXpvbiBXZWIgU2VydmljZXMgKEFXUykKU29mdHdhcmUgRGV2ZWxvcG1lbnQgS2l0IChTREspIGZvciBQeXRob24sIGludG8gdGhlIENldG1peCBUb3dlci4KCiAgICoqVGhpcyBpcyBhIHRlY2huaWNhbCBtb2R1bGUgaW50ZW5kZWQgZm9yIHN5c3RlbSBhZG1pbmlzdHJhdG9ycyBvcgogICBEZXZPcHMgcHJvZmVzc2lvbmFscy4qKiBJdCBtYXkgaW52b2x2ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiwKICAgaW5mcmFzdHJ1Y3R1cmUgbWFuYWdlbWVudCwgb3IgYWR2YW5jZWQgc2V0dXAgb3V0c2lkZSB0aGUgc3RhbmRhcmQKICAgT2RvbyBpbnRlcmZhY2UuIE5vdCBpbnRlbmRlZCBmb3IgZGlyZWN0IHVzZSBieSBlbmQgdXNlcnMuCgoqKlRhYmxlIG9mIGNvbnRlbnRzKioKCi4uIGNvbnRlbnRzOjoKICAgOmxvY2FsOgoKVXNlIENhc2VzIC8gQ29udGV4dAo9PT09PT09PT09PT09PT09PT09CgpBbHRob3VnaCBBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpIGFsbG93cyBBUEkgY2FsbHMgd2l0aG91dCB1c2luZyBhbgpTREssIHdlIGZvdW5kIHRoYXQgaW50ZWdyYXRpbmcgdGhlIEFtYXpvbiBTREsgaW50byBDZXRtaXggVG93ZXIgbWFrZXMKcHJvdmlzaW9uaW5nLCBjb25maWd1cmluZywgYW5kIG1haW50YWluaW5nIEFXUyBpbnN0YW5jZXMgbW9yZSBjb252ZW5pZW50CmZvciB0aGUgZW5kIHVzZXIuIEhvd2V2ZXIsIG5vdCBhbGwgQ2V0bWl4IFRvd2VyIHVzZXJzIHJlcXVpcmUgdGhpcwpmdW5jdGlvbmFsaXR5LCBzbyB0byBhdm9pZCBvdmVybG9hZGluZyB0aGUgc3lzdGVtLCB3ZSBoYXZlIGluY2x1ZGVkIGl0CmluIGEgc2VwYXJhdGUgbW9kdWxlLgoKQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09CgoqKlByZXJlcXVpc2l0ZXMqKgoKVGhlIG1vZHVsZSBoYXMgYGBib3RvM2BgIGRlZmluZWQgaW4gaXRzIGV4dGVybmFsIGRlcGVuZGVuY2llcywgd2hpY2gKbWVhbnMsIHlvdSBzaG91bGQgaW5zdGFsbCB0aGUgUHl0aG9uIGBgYm90bzNgYCBwYWNrYWdlIG1hbnVhbGx5IGlmIHlvdQpkb24ndCBoYXZlIGF1dG9tYXRpYyBwYWNrYWdlIGluc3RhbGxhdGlvbiBjb25maWd1cmVkIGluIHlvdXIgT2RvbwplbnZpcm9ubWVudC4gUnVuIGBgcGlwIGluc3RhbGwgYm90bzNgYCB0byBpbnN0YWxsIGl0LgoKKipTZXR0aW5nIHVwIEFXUyBBY2Nlc3MqKgoKMS4gKipDcmVhdGUgQVdTIEFjY2VzcyBLZXlzKioKCiAgIFRvIHVzZSB0aGUgQVdTIGludGVncmF0aW9uIHdpdGggQ2V0bWl4IFRvd2VyLCB5b3UgbmVlZCB0byBjcmVhdGUgQVdTCiAgIGFjY2VzcyBrZXlzOgoKICAgLSBGb2xsb3cgdGhlIGBvZmZpY2lhbCBBV1MKICAgICBkb2N1bWVudGF0aW9uIDxodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvc2VjdXJpdHktY3JlZHMuaHRtbD5gX18KICAgICAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3NlY3VyaXR5LWNyZWRzLmh0bWwpCiAgICAgZm9yIGNyZWF0aW5nIElBTSBhY2Nlc3Mga2V5cwogICAtIEl0J3MgcmVjb21tZW5kZWQgdG8gY3JlYXRlIGEgZGVkaWNhdGVkIElBTSB1c2VyIHdpdGggYXBwcm9wcmlhdGUKICAgICBwZXJtaXNzaW9ucyBmb3IgQ2V0bWl4IFRvd2VyCiAgIC0gU3RvcmUgeW91ciBhY2Nlc3Mga2V5IElEIGFuZCBzZWNyZXQgYWNjZXNzIGtleSBzZWN1cmVseSAtIHlvdSdsbAogICAgIG5lZWQgdGhlbSBpbiB0aGUgbmV4dCBzdGVwCgoyLiAqKkNvbmZpZ3VyZSBBV1MgU2VjcmV0cyBpbiBDZXRtaXggVG93ZXIqKgoKICAgQ3JlYXRlIHR3byBzZWNyZXRzIGluIENldG1peCBUb3dlciB0byBzdG9yZSB5b3VyIEFXUyBjcmVkZW50aWFsczoKCiAgIC0gTmF2aWdhdGUgdG8gYGBDZXRtaXggVG93ZXIgPiBTZXR0aW5ncyA+IEtleXMgYW5kIFNlY3JldHNgYAogICAtIENyZWF0ZSBhIG5ldyBTZWNyZXQgd2l0aDoKCiAgICAgLSBOYW1lOiBgYEFXUyBBY2Nlc3MgS2V5YGAKICAgICAtIFJlZmVyZW5jZTogYGBhd3NfYWNjZXNzX2tleWBgCiAgICAgLSBLZXkgVHlwZTogYGBTZWNyZXRgYAoKICAgLSBFbnRlciB5b3VyIEFXUyBhY2Nlc3Mga2V5IElEIGluIHRoZSBTZWNyZXQgVmFsdWUgdGFiCiAgIC0gU2ltaWxhcmx5LCBjcmVhdGUgYW5vdGhlciBTZWNyZXQgd2l0aDoKCiAgICAgLSBOYW1lOiBgYEFXUyBTZWNyZXQgQWNjZXNzIEtleWBgCiAgICAgLSBSZWZlcmVuY2U6IGBgYXdzX3NlY3JldF9hY2Nlc3Nfa2V5YGAKICAgICAtIEtleSBUeXBlOiBgYFNlY3JldGBgCgogICAtIEVudGVyIHlvdXIgQVdTIHNlY3JldCBhY2Nlc3Mga2V5IGluIHRoZSBTZWNyZXQgVmFsdWUgdGFiCgogICAuLgoKICAgICAgTm90ZTogVGhlc2Ugc2VjcmV0cyB3aWxsIGJlIGFjY2Vzc2libGUgYXMKICAgICAgYGAjIWN4dG93ZXIuc2VjcmV0LmF3c19hY2Nlc3Nfa2V5ISNgYCBhbmQKICAgICAgYGAjIWN4dG93ZXIuc2VjcmV0LmF3c19zZWNyZXRfYWNjZXNzX2tleSEjYGAgaW4geW91ciBjb21tYW5kcy4KCjMuICoqQ29uZmlndXJlIEFXUyBSZWdpb24qKgoKICAgQ3JlYXRlIGEgdmFyaWFibGUgdG8gZGVmaW5lIHlvdXIgQVdTIHJlZ2lvbjoKCiAgIC0gTmF2aWdhdGUgdG8gYGBDZXRtaXggVG93ZXIgPiBTZXR0aW5ncyA+IFZhcmlhYmxlc2BgCiAgIC0gQ3JlYXRlIGEgbmV3IFZhcmlhYmxlIHdpdGg6CgogICAgIC0gTmFtZTogYGBBV1MgUmVnaW9uIE5hbWVgYAogICAgIC0gUmVmZXJlbmNlOiBgYGF3c19yZWdpb25fbmFtZWBgCiAgICAgLSBUeXBlOiBgYFN0cmluZ2BgCgogICAtIFNldCB5b3VyIEFXUyByZWdpb24gKGUuZy4sIGBgdXMtZWFzdC0xYGAsIGBgZXUtd2VzdC0xYGApIGFzIHRoZQogICAgIHZhbHVlCgpVc2FnZQo9PT09PQoKUGxlYXNlIGNoZWNrIHRoZSBgb2ZmaWNpYWwgQm90bzMKRG9jdW1lbnRhdGlvbiA8aHR0cHM6Ly9ib3RvMy5hbWF6b25hd3MuY29tL3YxL2RvY3VtZW50YXRpb24vYXBpL2xhdGVzdC9pbmRleC5odG1sPmBfXwooaHR0cHM6Ly9ib3RvMy5hbWF6b25hd3MuY29tL3YxL2RvY3VtZW50YXRpb24vYXBpL2xhdGVzdC9pbmRleC5odG1sKSBmb3IKdGhlIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZXJ2aWNlcyBhbmQgbWV0aG9kcyBwcm92aWRlZCBieSB0aGUKQm90bzMgbGlicmFyeS4KCiAgICoqRGlzY2xhaW1lcioqOiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgZGVtb25zdHJhdGVzIG9uZSBvZiBtYW55CiAgIHBvc3NpYmxlIGNvbW1hbmRzIHlvdSBjYW4gY3JlYXRlIGFuZCBydW4gd2l0aCB0aGlzIG1vZHVsZS4gVGhlIGJvdG8zCiAgIGxpYnJhcnkgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBmdWxsIHJhbmdlIG9mIEFXUyBzZXJ2aWNlcyBhbmQgbWV0aG9kcwogICAtIHRoaXMgaXMganVzdCBhIHN0YXJ0aW5nIHBvaW50IHRvIGhlbHAgeW91IGdldCBmYW1pbGlhciB3aXRoIHRoZQogICBpbnRlZ3JhdGlvbi4KCkV4YW1wbGUgb2YgQ2V0bWl4IFRvd2VyIFB5dGhvbiBDb21tYW5kIHRvIExpc3QgRUMyIEluc3RhbmNlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk5hdmlnYXRlIHRvIENvbW1hbmQgQ3JlYXRpb24Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKLSBHbyB0byBgYENldG1peCBUb3dlciA+IENvbW1hbmRzID4gQ29tbWFuZHNgYAotIENsaWNrIHRoZSBgYENyZWF0ZWBgIGJ1dHRvbgoKQ29uZmlndXJlIENvbW1hbmQgU2V0dGluZ3MKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCi0gU2V0IGEgZGVzY3JpcHRpdmUgYGBOYW1lYGAgKGUuZy4sICJMaXN0IEFXUyBFQzIgSW5zdGFuY2VzIikKLSBMZWF2ZSBgYFJlZmVyZW5jZWBgIGJsYW5rIHRvIGdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgKG9yIHNldCBhIGN1c3RvbQogIHJlZmVyZW5jZSkKLSBTZWxlY3QgYGBBY3Rpb25gYDogIkV4ZWN1dGUgUHl0aG9uIGNvZGUiCi0gU2V0IGBgQWNjZXNzIExldmVsYGA6IENob29zZSBhcHByb3ByaWF0ZSBsZXZlbCAoZS5nLiwgIk1hbmFnZXIiKQotIE9wdGlvbmFsOiBTZXQgYGBEZWZhdWx0IFBhdGhgYCBpZiBuZWVkZWQKLSBPcHRpb25hbDogQWRkIGBgVGFnc2BgIChlLmcuLCAiYXdzIiwgImVjMiIpIGZvciBiZXR0ZXIgb3JnYW5pemF0aW9uCgpBZGQgUmVxdWlyZWQgVmFyaWFibGVzCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCi0gSW4gdGhlIGBgVmFyaWFibGVzYGAgdGFiLCBhZGQgdGhlIHByZXZpb3VzbHkgY29uZmlndXJlZCB2YXJpYWJsZToKCiAgLSBgYGF3c19yZWdpb25fbmFtZWBgCgpBZGQgUmVxdWlyZWQgU2VjcmV0cwp+fn5+fn5+fn5+fn5+fn5+fn5+fgoKLSBJbiB0aGUgYGBTZWNyZXRzYGAgZmllbGQsIGFkZCB0aGUgcHJldmlvdXNseSBjb25maWd1cmVkIHNlY3JldHM6CgogIC0gYGBhd3NfYWNjZXNzX2tleWBgCiAgLSBgYGF3c19zZWNyZXRfYWNjZXNzX2tleWBgCgpXcml0ZSBQeXRob24gQ29kZQp+fn5+fn5+fn5+fn5+fn5+fgoKLSBHbyB0byB0aGUgYGBDb2RlYGAgdGFiCgotIEVudGVyIHRoZSBmb2xsb3dpbmcgUHl0aG9uIGNvZGU6CgogIC4uIGNvZGU6OiBweXRob24KCiAgICAgIyBMaXN0IEVDMiBpbnN0YW5jZXMgdXNpbmcgYm90bzMKICAgICByZXN1bHQgPSB7ImV4aXRfY29kZSI6IDAsICJtZXNzYWdlIjogTm9uZX0KCiAgICAgc2Vzc2lvbiA9IGJvdG8zLlNlc3Npb24oCiAgICAgICAgIGF3c19hY2Nlc3Nfa2V5X2lkPSMhY3h0b3dlci5zZWNyZXQuYXdzX2FjY2Vzc19rZXkhIywKICAgICAgICAgYXdzX3NlY3JldF9hY2Nlc3Nfa2V5PSMhY3h0b3dlci5zZWNyZXQuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ISMsCiAgICAgICAgIHJlZ2lvbl9uYW1lPXt7IGF3c19yZWdpb25fbmFtZSB9fQogICAgICkKICAgICBlYzIgPSBzZXNzaW9uLmNsaWVudCgnZWMyJykKICAgICBpbnN0YW5jZXMgPSBlYzIuZGVzY3JpYmVfaW5zdGFuY2VzKCkKCiAgICAgaW5zdGFuY2VfZGV0YWlscyA9IFtdCiAgICAgZm9yIHJlc2VydmF0aW9uIGluIGluc3RhbmNlc1snUmVzZXJ2YXRpb25zJ106CiAgICAgICAgIGZvciBpbnN0YW5jZSBpbiByZXNlcnZhdGlvblsnSW5zdGFuY2VzJ106CiAgICAgICAgICAgICBpbnN0YW5jZV9kZXRhaWwgPSAiSW5zdGFuY2UgSUQ6ICIgKyBpbnN0YW5jZVsnSW5zdGFuY2VJZCddCiAgICAgICAgICAgICBpbnN0YW5jZV9kZXRhaWwgKz0gIiwgVHlwZTogIiArIGluc3RhbmNlLmdldCgnSW5zdGFuY2VUeXBlJywgJ1Vua25vd24nKQogICAgICAgICAgICAgaW5zdGFuY2VfZGV0YWlsICs9ICIsIFN0YXRlOiAiICsgaW5zdGFuY2UuZ2V0KCdTdGF0ZScsIHt9KS5nZXQoJ05hbWUnLCAnVW5rbm93bicpCiAgICAgICAgICAgICBpbnN0YW5jZV9kZXRhaWxzLmFwcGVuZChpbnN0YW5jZV9kZXRhaWwpCgogICAgIGlmIGluc3RhbmNlX2RldGFpbHM6CiAgICAgICAgIHJlc3VsdFsibWVzc2FnZSJdID0gIkZvdW5kICIgKyBzdHIobGVuKGluc3RhbmNlX2RldGFpbHMpKSArICIgRUMyIGluc3RhbmNlczpcbiIgKyAiXG4iLmpvaW4oaW5zdGFuY2VfZGV0YWlscykKICAgICBlbHNlOgogICAgICAgICByZXN1bHRbIm1lc3NhZ2UiXSA9ICJObyBFQzIgaW5zdGFuY2VzIGZvdW5kIgoKU2F2ZSB0aGUgQ29tbWFuZAp+fn5+fn5+fn5+fn5+fn5+CgotIENsaWNrIHRoZSBgYFNhdmVgYCBidXR0b24gdG8gY3JlYXRlIHRoZSBjb21tYW5kCgpSdW5uaW5nIHRoZSBBV1MgRUMyIENvbW1hbmQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpOYXZpZ2F0ZSB0byBTZXJ2ZXIKfn5+fn5+fn5+fn5+fn5+fn5+CgotIEdvIHRvIGBgQ2V0bWl4IFRvd2VyID4gU2VydmVycyA+IFNlcnZlcnNgYAotIE9wZW4gdGhlIHNlcnZlciB3aGVyZSB5b3Ugd2FudCB0byBydW4gdGhlIGNvbW1hbmQKCkV4ZWN1dGUgQ29tbWFuZCBmcm9tIFNlcnZlcgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCi0gQ2xpY2sgdGhlIGBgQ29tbWFuZGBgIGJ1dHRvbiBhdCB0aGUgdG9wIG9mIHRoZSBzZXJ2ZXIgZm9ybQotIEluIHRoZSBwb3B1cCBkaWFsb2c6CgogIC0gU2VsZWN0IHlvdXIgQVdTIEVDMiBjb21tYW5kIGZyb20gdGhlIGRyb3Bkb3duCiAgLSBWZXJpZnkgdGhlIHZhcmlhYmxlIHZhbHVlcyAoaWYgYW55IG5lZWQgYWRqdXN0bWVudCkKICAtIENsaWNrIGBgUnVuYGAgdG8gZXhlY3V0ZQoKVmlldyBDb21tYW5kIFJlc3VsdHMKfn5+fn5+fn5+fn5+fn5+fn5+fn4KCi0gQWZ0ZXIgZXhlY3V0aW9uLCB0aGUgY29tbWFuZCBsb2cgd2lsbCBkaXNwbGF5IHNob3dpbmc6CgogIC0gVGhlIGNvbW1hbmQgZXhlY3V0ZWQKICAtIEV4ZWN1dGlvbiBzdGF0dXMKICAtIE91dHB1dCBtZXNzYWdlIGNvbnRhaW5pbmcgRUMyIGluc3RhbmNlIGRldGFpbHMgaWYgc3VjY2Vzc2Z1bAoKRXhhbXBsZSBPdXRwdXQKLS0tLS0tLS0tLS0tLS0KCkZvciBhIHN1Y2Nlc3NmdWwgZXhlY3V0aW9uIHdpdGggRUMyIGluc3RhbmNlczoKCi4uIGNvZGU6OiBiYXNoCgogICBGb3VuZCAzIEVDMiBpbnN0YW5jZXM6CiAgIEluc3RhbmNlIElEOiBpLTBhYmMxMjNkZWY0NTY3ODksIFR5cGU6IHQyLm1pY3JvLCBTdGF0ZTogcnVubmluZwogICBJbnN0YW5jZSBJRDogaS0wZGVmNDU2YWJjNzg5MTIzLCBUeXBlOiB0My5tZWRpdW0sIFN0YXRlOiBzdG9wcGVkCiAgIEluc3RhbmNlIElEOiBpLTA3ODlhYmMxMjNkZWY0NTYsIFR5cGU6IG01LmxhcmdlLCBTdGF0ZTogcnVubmluZwoKRm9yIGEgc3VjY2Vzc2Z1bCBleGVjdXRpb24gd2l0aCBubyBFQzIgaW5zdGFuY2VzOgoKLi4gY29kZTo6IGJhc2gKCiAgIE5vIEVDMiBpbnN0YW5jZXMgZm91bmQKCkNyZWF0aW5nIEFkZGl0aW9uYWwgQVdTIENvbW1hbmRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgY2V0bWl4X3Rvd2VyX2F3cyBtb2R1bGUgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBib3RvMyBQeXRob24gbGlicmFyeQpmb3IgQVdTIHNlcnZpY2UgaW50ZWdyYXRpb24uIEhlcmUgYXJlIHNvbWUgY29tbW9uIHNlcnZpY2VzIHlvdSBjYW4gdXNlOgoKLi4gY29kZTo6IHB5dGhvbgoKICAgIyBTdGFuZGFyZCBjbGllbnQgaW5pdGlhbGl6YXRpb24gcGF0dGVybgogICBjbGllbnQgPSBib3RvMy5jbGllbnQoCiAgICAgICAnc2VydmljZV9uYW1lJywgICMgUmVwbGFjZSB3aXRoOiBlYzIsIHMzLCByZHMsIGNsb3Vkd2F0Y2gsIGV0Yy4KICAgICAgIHJlZ2lvbl9uYW1lPXt7IGF3c19yZWdpb25fbmFtZSB9fSwKICAgICAgIGF3c19hY2Nlc3Nfa2V5X2lkPSMhY3h0b3dlci5zZWNyZXQuYXdzX2FjY2Vzc19rZXkhIywKICAgICAgIGF3c19zZWNyZXRfYWNjZXNzX2tleT0jIWN4dG93ZXIuc2VjcmV0LmF3c19zZWNyZXRfYWNjZXNzX2tleSEjCiAgICkKCiAgICMgT3IgdXNlIHJlc291cmNlIGludGVyZmFjZSBmb3Igb2JqZWN0LW9yaWVudGVkIGFjY2VzcwogICByZXNvdXJjZSA9IGJvdG8zLnJlc291cmNlKAogICAgICAgJ3NlcnZpY2VfbmFtZScsICAjIFJlcGxhY2Ugd2l0aDogZWMyLCBzMywgZXRjLgogICAgICAgcmVnaW9uX25hbWU9e3sgYXdzX3JlZ2lvbl9uYW1lIH19LAogICAgICAgYXdzX2FjY2Vzc19rZXlfaWQ9IyFjeHRvd2VyLnNlY3JldC5hd3NfYWNjZXNzX2tleSEjLAogICAgICAgYXdzX3NlY3JldF9hY2Nlc3Nfa2V5PSMhY3h0b3dlci5zZWNyZXQuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ISMKICAgKQoKUG9wdWxhciBBV1Mgc2VydmljZXMgaW5jbHVkZTogRUMyIChjb21wdXRlKSwgUzMgKHN0b3JhZ2UpLCBSRFMKKGRhdGFiYXNlcyksIGFuZCBDbG91ZFdhdGNoIChtb25pdG9yaW5nKS4KCkZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGUgYEFXUyBCb3RvMwpEb2N1bWVudGF0aW9uIDxodHRwczovL2JvdG8zLmFtYXpvbmF3cy5jb20vdjEvZG9jdW1lbnRhdGlvbi9hcGkvbGF0ZXN0L2luZGV4Lmh0bWw+YF9fLgoKQ2hhbmdlbG9nCj09PT09PT09PQoKMTYuMC4xLjEuMCAoMjAyNS0wNy0xNykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0gRmVhdHVyZXM6IFJlZmFjdG9yIHRoZSBsaWJyYXJ5IGltcG9ydCB1c2luZyB0aGUgbGF0ZXN0IHVwZGF0ZXMgaW4gdGhlCiAgY2V0bWl4X3Rvd2VyX3NlcnZlciBtb2R1bGUuICg0ODM5KQoKQnVnIFRyYWNrZXIKPT09PT09PT09PT0KCkJ1Z3MgYXJlIHRyYWNrZWQgb24gYEdpdEh1YiBJc3N1ZXMgPGh0dHBzOi8vZ2l0aHViLmNvbS9jZXRtaXgvY2V0bWl4LXRvd2VyL2lzc3Vlcz5gXy4KSW4gY2FzZSBvZiB0cm91YmxlLCBwbGVhc2UgY2hlY2sgdGhlcmUgaWYgeW91ciBpc3N1ZSBoYXMgYWxyZWFkeSBiZWVuIHJlcG9ydGVkLgpJZiB5b3Ugc3BvdHRlZCBpdCBmaXJzdCwgaGVscCB1cyB0byBzbWFzaCBpdCBieSBwcm92aWRpbmcgYSBkZXRhaWxlZCBhbmQgd2VsY29tZWQKYGZlZWRiYWNrIDxodHRwczovL2dpdGh1Yi5jb20vY2V0bWl4L2NldG1peC10b3dlci9pc3N1ZXMvbmV3P2JvZHk9bW9kdWxlOiUyMGNldG1peF90b3dlcl9hd3MlMEF2ZXJzaW9uOiUyMDE2LjAlMEElMEEqKlN0ZXBzJTIwdG8lMjByZXByb2R1Y2UqKiUwQS0lMjAuLi4lMEElMEEqKkN1cnJlbnQlMjBiZWhhdmlvcioqJTBBJTBBKipFeHBlY3RlZCUyMGJlaGF2aW9yKio+YF8uCgpEbyBub3QgY29udGFjdCBjb250cmlidXRvcnMgZGlyZWN0bHkgYWJvdXQgc3VwcG9ydCBvciBoZWxwIHdpdGggdGVjaG5pY2FsIGlzc3Vlcy4KCkNyZWRpdHMKPT09PT09PQoKQXV0aG9ycwotLS0tLS0tCgoqIENldG1peAoKTWFpbnRhaW5lcnMKLS0tLS0tLS0tLS0KClRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIGBjZXRtaXgvY2V0bWl4LXRvd2VyIDxodHRwczovL2dpdGh1Yi5jb20vY2V0bWl4L2NldG1peC10b3dlci90cmVlLzE2LjAvY2V0bWl4X3Rvd2VyX2F3cz5gXyBwcm9qZWN0IG9uIEdpdEh1Yi4KCllvdSBhcmUgd2VsY29tZSB0byBjb250cmlidXRlLgo= \ No newline at end of file