ZGlmZiAtLWdpdCBhL2t1YmVybmV0ZXMvY29tbW9uL21hcmlhZGItZ2FsZXJhL3RlbXBsYXRlcy9iYWNrdXAvY3JvbmpvYi55YW1sIGIva3ViZXJuZXRlcy9jb21tb24vbWFyaWFkYi1nYWxlcmEvdGVtcGxhdGVzL2JhY2t1cC9jcm9uam9iLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QzZWM3NQotLS0gL2Rldi9udWxsCisrKyBiL2t1YmVybmV0ZXMvY29tbW9uL21hcmlhZGItZ2FsZXJhL3RlbXBsYXRlcy9iYWNrdXAvY3JvbmpvYi55YW1sCkBAIC0wLDAgKzEsMTc4IEBACit7ey8qCisjIENvcHlyaWdodCDCqSAyMDE5IEFtZG9jcywgQmVsbCBDYW5hZGEKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi99fQore3stIGlmIC5WYWx1ZXMuYmFja3VwLmVuYWJsZWQgfX0KK2FwaVZlcnNpb246IGJhdGNoL3YxYmV0YTEKK2tpbmQ6IENyb25Kb2IKK21ldGFkYXRhOgorICBuYW1lOiB7eyBpbmNsdWRlICJjb21tb24uZnVsbG5hbWUiIC4gfX0tYmFja3VwCisgIG5hbWVzcGFjZToge3sgaW5jbHVkZSAiY29tbW9uLm5hbWVzcGFjZSIgLiB9fQorICBsYWJlbHM6CisgICAgYXBwOiB7eyBpbmNsdWRlICJjb21tb24uZnVsbG5hbWUiIC4gfX0KKyAgICBjaGFydDoge3sgLkNoYXJ0Lk5hbWUgfX0te3sgLkNoYXJ0LlZlcnNpb24gfCByZXBsYWNlICIrIiAiXyIgfX0KKyAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19CisgICAgaGVyaXRhZ2U6IHt7IC5SZWxlYXNlLlNlcnZpY2UgfX0KK3NwZWM6CisgIHNjaGVkdWxlOiB7eyAuVmFsdWVzLmJhY2t1cC5jcm9uIHwgcXVvdGUgfX0KKyAgY29uY3VycmVuY3lQb2xpY3k6IEZvcmJpZAorICBzdGFydGluZ0RlYWRsaW5lU2Vjb25kczogMTIwCisgIGpvYlRlbXBsYXRlOgorICAgIHNwZWM6CisgICAgICB0ZW1wbGF0ZToKKyAgICAgICAgc3BlYzoKKyAgICAgICAgICByZXN0YXJ0UG9saWN5OiBOZXZlcgorICAgICAgICAgIGluaXRDb250YWluZXJzOgorICAgICAgICAgIC0gY29tbWFuZDoKKyAgICAgICAgICAgIC0gL3Jvb3QvcmVhZHkucHkKKyAgICAgICAgICAgIGFyZ3M6CisgICAgICAgICAgICAtIC0tY29udGFpbmVyLW5hbWUKKyAgICAgICAgICAgIC0ge3sgaW5jbHVkZSAiY29tbW9uLm5hbWUiIC4gfX0KKyAgICAgICAgICAgIGVudjoKKyAgICAgICAgICAgIC0gbmFtZTogTkFNRVNQQUNFCisgICAgICAgICAgICAgIHZhbHVlRnJvbToKKyAgICAgICAgICAgICAgICBmaWVsZFJlZjoKKyAgICAgICAgICAgICAgICAgIGFwaVZlcnNpb246IHYxCisgICAgICAgICAgICAgICAgICBmaWVsZFBhdGg6IG1ldGFkYXRhLm5hbWVzcGFjZQorICAgICAgICAgICAgaW1hZ2U6ICJ7eyAuVmFsdWVzLmdsb2JhbC5yZWFkaW5lc3NSZXBvc2l0b3J5IH19L3t7IC5WYWx1ZXMuZ2xvYmFsLnJlYWRpbmVzc0ltYWdlIH19IgorICAgICAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiB7eyAuVmFsdWVzLmdsb2JhbC5wdWxsUG9saWN5IHwgZGVmYXVsdCAuVmFsdWVzLnB1bGxQb2xpY3kgfX0KKyAgICAgICAgICAgIG5hbWU6IHt7IGluY2x1ZGUgImNvbW1vbi5uYW1lIiAuIH19LXJlYWRpbmVzcworICAgICAgICAgIC0gbmFtZTogbWFyaWFkYi1nYWxlcmEtYmFja3VwLWluaXQKKyAgICAgICAgICAgIGltYWdlOiAie3sgaW5jbHVkZSAiY29tbW9uLnJlcG9zaXRvcnkiIC4gfX0ve3sgLlZhbHVlcy5iYWNrdXBJbWFnZSB9fSIKKyAgICAgICAgICAgIGltYWdlUHVsbFBvbGljeToge3sgLlZhbHVlcy5nbG9iYWwucHVsbFBvbGljeSB8IGRlZmF1bHQgLlZhbHVlcy5wdWxsUG9saWN5IH19CisgICAgICAgICAgICBjb21tYW5kOgorICAgICAgICAgICAgLSAvYmluL2Jhc2gKKyAgICAgICAgICAgIC0gLWMKKyAgICAgICAgICAgIC0gfAorICAgICAgICAgICAgICByZW1vdmVfZGlyKCl7CisgICAgICAgICAgICAgICAgZGlyVG9SZW1vdmU9JDEKKyAgICAgICAgICAgICAgICBybSAtcmYgJGRpclRvUmVtb3ZlCisgICAgICAgICAgICAgICAgZWNobyAiRmFpbGVkIiA+IC9iYWNrdXAvYmFja3VwLmxvZworICAgICAgICAgICAgICAgIGVjaG8gIkJhY2t1cCBmYWlsZWQhISEiCisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB0YXJnZXRfZGlyPS9iYWNrdXAvYmFja3VwLWBkYXRlICslc2AKKyAgICAgICAgICAgICAgbWtkaXIgLXAgJHRhcmdldF9kaXIKKworICAgICAgICAgICAgICBteXNxbGhvc3Q9e3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19LXt7IHN1YiAuVmFsdWVzLnJlcGxpY2FDb3VudCAxIH19Lnt7IC5WYWx1ZXMuc2VydmljZS5uYW1lIH19CisKKyAgICAgICAgICAgICAgbWFyaWFiYWNrdXAgLS1iYWNrdXAgLS10YXJnZXQtZGlyPSR0YXJnZXRfZGlyIC0tdXNlcj1yb290IC0tcGFzc3dvcmQ9JERCX1BBU1MgLS1ob3N0PSRteXNxbGhvc3QKKworICAgICAgICAgICAgICByZXRfY29kZT0kPworICAgICAgICAgICAgICBpZiBbICRyZXRfY29kZSAtbmUgMCBdOyB0aGVuCisgICAgICAgICAgICAgICAgcmVtb3ZlX2RpciAkdGFyZ2V0X2RpcgorICAgICAgICAgICAgICAgIGV4aXQgMAorICAgICAgICAgICAgICBmaQorCisgICAgICAgICAgICAgIGVjaG8gIlN0YXJ0aW5nIEJhY2t1cCBQcmVwYXJhdGlvbiEhISIKKyAgICAgICAgICAgICAgbWFyaWFiYWNrdXAgLS1wcmVwYXJlIC0tdGFyZ2V0LWRpcj0kdGFyZ2V0X2RpcgorICAgICAgICAgICAgICByZXRfY29kZT0kPworICAgICAgICAgICAgICBpZiBbICRyZXRfY29kZSAtbmUgMCBdOyB0aGVuCisgICAgICAgICAgICAgICAgcmVtb3ZlX2RpciAkdGFyZ2V0X2RpcgorICAgICAgICAgICAgICAgIGV4aXQgMAorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICBlY2hvICJTdWNjZXNzIiA+IC9iYWNrdXAvYmFja3VwLmxvZworICAgICAgICAgICAgICBlY2hvICJCYWNrdXAgU3VjY2Vzc2Z1bCEhISIKKyAgICAgICAgICAgIGVudjoKKyAgICAgICAgICAgIC0gbmFtZTogREJfUEFTUworICAgICAgICAgICAgICB2YWx1ZUZyb206CisgICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgorICAgICAgICAgICAgICAgICAgbmFtZToge3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19CisgICAgICAgICAgICAgICAgICBrZXk6IGRiLXJvb3QtcGFzc3dvcmQKKyAgICAgICAgICAgIHZvbHVtZU1vdW50czoKKyAgICAgICAgICAgIC0gbmFtZTogYmFja3VwLWRhdGEKKyAgICAgICAgICAgICAgbW91bnRQYXRoOiAvYmFja3VwCisgICAgICAgICAgICAtIG5hbWU6IGRiLWRhdGEKKyAgICAgICAgICAgICAgbW91bnRQYXRoOiAvdmFyL2xpYi9teXNxbAorICAgICAgICAgIGNvbnRhaW5lcnM6CisgICAgICAgICAgLSBuYW1lOiBtYXJpYWRiLWJhY2t1cC12YWxpZGF0ZQorICAgICAgICAgICAgaW1hZ2U6ICJ7eyBpbmNsdWRlICJjb21tb24ucmVwb3NpdG9yeSIgLiB9fS97eyAuVmFsdWVzLmJhY2t1cEltYWdlIH19IgorICAgICAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiB7eyAuVmFsdWVzLmdsb2JhbC5wdWxsUG9saWN5IHwgZGVmYXVsdCAuVmFsdWVzLnB1bGxQb2xpY3kgfX0KKyAgICAgICAgICAgIGVudjoKKyAgICAgICAgICAgIC0gbmFtZTogTVlTUUxfUk9PVF9QQVNTV09SRAorICAgICAgICAgICAgICB2YWx1ZUZyb206CisgICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgorICAgICAgICAgICAgICAgICAgbmFtZToge3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19CisgICAgICAgICAgICAgICAgICBrZXk6IGRiLXJvb3QtcGFzc3dvcmQKKyAgICAgICAgICAgIGNvbW1hbmQ6CisgICAgICAgICAgICAtIC9iaW4vYmFzaAorICAgICAgICAgICAgLSAtYworICAgICAgICAgICAgLSB8CisgICAgICAgICAgICAgIHJlbW92ZV9kaXIoKXsKKyAgICAgICAgICAgICAgICBkaXJUb1JlbW92ZT0kMQorICAgICAgICAgICAgICAgIHJtIC1yZiAkZGlyVG9SZW1vdmUKKyAgICAgICAgICAgICAgICBlY2hvICJWYWxpZGF0aW9uIEZhaWxlZCEhISI7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBiYWNrdXBfcmVzdWx0PWBjYXQgL2JhY2t1cC9iYWNrdXAubG9nYAorICAgICAgICAgICAgICBybSAtcmYgL2JhY2t1cC9iYWNrdXAubG9nCisKKyAgICAgICAgICAgICAgaWYgWyAiJGJhY2t1cF9yZXN1bHQiID09ICJGYWlsZWQiIF07IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hvICJCYWNrdXAgRmFpbGVkISEhIFNvIFZhbGlkYXRpb24gRmFpbGVkISEhIjsKKyAgICAgICAgICAgICAgICBleGl0IDAKKyAgICAgICAgICAgICAgZmkKKworICAgICAgICAgICAgICB0YXJnZXRfZGlyPSQobHMgLXRkIC0tIC9iYWNrdXAvYmFja3VwLSogfCBoZWFkIC1uIDEpCisgICAgICAgICAgICAgIGNwIC1SYSAkdGFyZ2V0X2Rpci8qIC92YXIvbGliL215c3FsLworCisgICAgICAgICAgICAgIGlmIFsgISAiJChscyAtQSAvdmFyL2xpYi9teXNxbCkiIF07IHRoZW4KKyAgICAgICAgICAgICAgICByZW1vdmVfZGlyICR0YXJnZXRfZGlyCisgICAgICAgICAgICAgICAgZXhpdCAwCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAvZG9ja2VyLWVudHJ5cG9pbnQuc2ggbXlzcWxkICYKKworICAgICAgICAgICAgICBjb3VudD0wCisgICAgICAgICAgICAgIHVudGlsIG15c3FsIC0tdXNlcj1yb290IC0tcGFzc3dvcmQ9JE1ZU1FMX1JPT1RfUEFTU1dPUkQgIC1lICJTRUxFQ1QgMSI7CisgICAgICAgICAgICAgICAgZG8gc2xlZXAgMzsKKyAgICAgICAgICAgICAgICBjb3VudD1gZXhwciAkY291bnQgKyAxYDsKKyAgICAgICAgICAgICAgICBpZiBbICRjb3VudCAtZ2UgMzAgXTsgdGhlbgorICAgICAgICAgICAgICAgICAgcmVtb3ZlX2RpciAkdGFyZ2V0X2RpcgorICAgICAgICAgICAgICAgICAgZXhpdCAwOworICAgICAgICAgICAgICAgIGZpOworICAgICAgICAgICAgICBkb25lCisKKyAgICAgICAgICAgICAgbXlzcWxjaGVjayAtQSAgLS11c2VyPXJvb3QgLS1wYXNzd29yZD0kTVlTUUxfUk9PVF9QQVNTV09SRCA+IC90bXAvb3V0cHV0LmxvZworICAgICAgICAgICAgICBlcnJvcl9saW5lcz1gY2F0IC90bXAvb3V0cHV0LmxvZ3wgZ3JlcCAtdiAiT0siIHwgd2MgLWxgCisKKyAgICAgICAgICAgICAgY2F0IC90bXAvb3V0cHV0LmxvZworCisgICAgICAgICAgICAgIGlmIFsgJGVycm9yX2xpbmVzIC1ndCAxIF07dGhlbgorICAgICAgICAgICAgICAgIHJlbW92ZV9kaXIgJHRhcmdldF9kaXIKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVjaG8gIlZhbGlkYXRpb24gc3VjY2Vzc2Z1bCEhISIKKyAgICAgICAgICAgICAgICBjZCAvYmFja3VwCisgICAgICAgICAgICAgICAgdG90YWxGaWxlcz1gbHMgLXQgfCBncmVwICJiYWNrdXAtIiB8IHdjIC1sYAorICAgICAgICAgICAgICAgIGlmIFsgJHRvdGFsRmlsZXMgLWd0IHt7IC5WYWx1ZXMuYmFja3VwLnJldGVudGlvblBlcmlvZCB9fSBdOyB0aGVuCisgICAgICAgICAgICAgICAgICBmaWxlc3RvRGVsZXRlPWBleHByICR0b3RhbEZpbGVzIC0ge3sgLlZhbHVlcy5iYWNrdXAucmV0ZW50aW9uUGVyaW9kIH19YAorICAgICAgICAgICAgICAgICAgbHMgLXRyIHwgZ3JlcCBiYWNrdXAgfCBoZWFkIC0kZmlsZXN0b0RlbGV0ZSB8IHhhcmdzIHJtIC1yZgorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICB2b2x1bWVNb3VudHM6CisgICAgICAgICAgICAtIG1vdW50UGF0aDogL2V0Yy9sb2NhbHRpbWUKKyAgICAgICAgICAgICAgbmFtZTogbG9jYWx0aW1lCisgICAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlCisgICAgICAgICAgICAtIG5hbWU6IGJhY2t1cC1kYXRhCisgICAgICAgICAgICAgIG1vdW50UGF0aDogL2JhY2t1cAorICAgICAgICAgIHZvbHVtZXM6CisgICAgICAgICAgLSBuYW1lOiBsb2NhbHRpbWUKKyAgICAgICAgICAgIGhvc3RQYXRoOgorICAgICAgICAgICAgICBwYXRoOiAvZXRjL2xvY2FsdGltZQorICAgICAgICAgIC0gbmFtZTogZGItZGF0YQorICAgICAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOgorICAgICAgICAgICAgICBjbGFpbU5hbWU6IHt7IGluY2x1ZGUgImNvbW1vbi5mdWxsbmFtZSIgLiB9fS1kYi1kYXRhCisgICAgICAgICAgLSBuYW1lOiBiYWNrdXAtZGF0YQorICAgICAgICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOgorICAgICAgICAgICAgICBjbGFpbU5hbWU6IHt7IGluY2x1ZGUgImNvbW1vbi5mdWxsbmFtZSIgLiB9fS1iYWNrdXAgCit7ey0gZW5kIH19CmRpZmYgLS1naXQgYS9rdWJlcm5ldGVzL2NvbW1vbi9tYXJpYWRiLWdhbGVyYS90ZW1wbGF0ZXMvYmFja3VwL3B2LnlhbWwgYi9rdWJlcm5ldGVzL2NvbW1vbi9tYXJpYWRiLWdhbGVyYS90ZW1wbGF0ZXMvYmFja3VwL3B2LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk3MjE5MQotLS0gL2Rldi9udWxsCisrKyBiL2t1YmVybmV0ZXMvY29tbW9uL21hcmlhZGItZ2FsZXJhL3RlbXBsYXRlcy9iYWNrdXAvcHYueWFtbApAQCAtMCwwICsxLDU5IEBACit7ey8qCisjIENvcHlyaWdodCDCqSAyMDE5IEFtZG9jcywgQmVsbCBDYW5hZGEKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi99fQore3stIGlmIC5WYWx1ZXMuYmFja3VwLmVuYWJsZWQgfX0KK3t7LSBpZiBhbmQgLlZhbHVlcy5wZXJzaXN0ZW5jZS5lbmFibGVkIChub3QgLlZhbHVlcy5wZXJzaXN0ZW5jZS5leGlzdGluZ0NsYWltKSAtfX0KK2tpbmQ6IFBlcnNpc3RlbnRWb2x1bWUKK2FwaVZlcnNpb246IHYxCittZXRhZGF0YToKKyAgbmFtZToge3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19LWJhY2t1cAorICBuYW1lc3BhY2U6IHt7IGluY2x1ZGUgImNvbW1vbi5uYW1lc3BhY2UiIC4gfX0KKyAgbGFiZWxzOgorICAgIGFwcDoge3sgaW5jbHVkZSAiY29tbW9uLm5hbWUiIC4gfX0KKyAgICBjaGFydDogInt7IC5DaGFydC5OYW1lIH19LXt7IC5DaGFydC5WZXJzaW9uIHwgcmVwbGFjZSAiKyIgIl8iIH19IgorICAgIHJlbGVhc2U6ICJ7eyAuUmVsZWFzZS5OYW1lIH19IgorICAgIGhlcml0YWdlOiAie3sgLlJlbGVhc2UuU2VydmljZSB9fSIKKyAgICBuYW1lOiB7eyBpbmNsdWRlICJjb21tb24uZnVsbG5hbWUiIC4gfX0tYmFja3VwCitzcGVjOgorICBjYXBhY2l0eToKKyAgICBzdG9yYWdlOiB7eyAuVmFsdWVzLnBlcnNpc3RlbmNlLnNpemV9fQorICBhY2Nlc3NNb2RlczoKKyAgLSB7eyAuVmFsdWVzLnBlcnNpc3RlbmNlLmFjY2Vzc01vZGUgfX0KKyAgcGVyc2lzdGVudFZvbHVtZVJlY2xhaW1Qb2xpY3k6IHt7IC5WYWx1ZXMucGVyc2lzdGVuY2Uudm9sdW1lUmVjbGFpbVBvbGljeSB9fQorICBob3N0UGF0aDoKKyAgICBwYXRoOiB7eyAuVmFsdWVzLmdsb2JhbC5wZXJzaXN0ZW5jZS5iYWNrdXAubW91bnRQYXRoIHwgZGVmYXVsdCAuVmFsdWVzLnBlcnNpc3RlbmNlLmJhY2t1cC5tb3VudFBhdGggfX0ve3sgaW5jbHVkZSAiY29tbW9uLm5hbWVzcGFjZSIgLiB9fS97e2luY2x1ZGUgImNvbW1vbi5uYW1lIiAuIH19CistLS0KK2tpbmQ6IFBlcnNpc3RlbnRWb2x1bWUKK2FwaVZlcnNpb246IHYxCittZXRhZGF0YToKKyAgbmFtZToge3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19LWRiLWRhdGEKKyAgbmFtZXNwYWNlOiB7eyBpbmNsdWRlICJjb21tb24ubmFtZXNwYWNlIiAuIH19CisgIGxhYmVsczoKKyAgICBhcHA6IHt7IGluY2x1ZGUgImNvbW1vbi5uYW1lIiAuIH19CisgICAgY2hhcnQ6ICJ7eyAuQ2hhcnQuTmFtZSB9fS17eyAuQ2hhcnQuVmVyc2lvbiB8IHJlcGxhY2UgIisiICJfIiB9fSIKKyAgICByZWxlYXNlOiAie3sgLlJlbGVhc2UuTmFtZSB9fSIKKyAgICBoZXJpdGFnZTogInt7IC5SZWxlYXNlLlNlcnZpY2UgfX0iCisgICAgbmFtZToge3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19LWRiLWRhdGEKK3NwZWM6CisgIGNhcGFjaXR5OgorICAgIHN0b3JhZ2U6IHt7IC5WYWx1ZXMucGVyc2lzdGVuY2Uuc2l6ZX19CisgIGFjY2Vzc01vZGVzOgorICAtIHt7IC5WYWx1ZXMucGVyc2lzdGVuY2UuYWNjZXNzTW9kZSB9fQorICBwZXJzaXN0ZW50Vm9sdW1lUmVjbGFpbVBvbGljeToge3sgLlZhbHVlcy5wZXJzaXN0ZW5jZS52b2x1bWVSZWNsYWltUG9saWN5IH19CisgIGhvc3RQYXRoOgorICAgIHBhdGg6IHt7IC5WYWx1ZXMuZ2xvYmFsLnBlcnNpc3RlbmNlLm1vdW50UGF0aCB8IGRlZmF1bHQgLlZhbHVlcy5wZXJzaXN0ZW5jZS5tb3VudFBhdGggfX0ve3sgLlJlbGVhc2UuTmFtZSB9fS97eyAuVmFsdWVzLnBlcnNpc3RlbmNlLm1vdW50U3ViUGF0aCB9fXt7IHN1YiAuVmFsdWVzLnJlcGxpY2FDb3VudCAxIH19Cit7ey0gZW5kIC19fQore3stIGVuZCAtfX0KKwpkaWZmIC0tZ2l0IGEva3ViZXJuZXRlcy9jb21tb24vbWFyaWFkYi1nYWxlcmEvdGVtcGxhdGVzL2JhY2t1cC9wdmMueWFtbCBiL2t1YmVybmV0ZXMvY29tbW9uL21hcmlhZGItZ2FsZXJhL3RlbXBsYXRlcy9iYWNrdXAvcHZjLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk4M2M4YQotLS0gL2Rldi9udWxsCisrKyBiL2t1YmVybmV0ZXMvY29tbW9uL21hcmlhZGItZ2FsZXJhL3RlbXBsYXRlcy9iYWNrdXAvcHZjLnlhbWwKQEAgLTAsMCArMSw4MSBAQAore3svKgorIyBDb3B5cmlnaHQgqSAyMDE5IEFtZG9jcywgQmVsbCBDYW5hZGEKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi99fQore3stIGlmIC5WYWx1ZXMuYmFja3VwLmVuYWJsZWQgfX0KK3t7LSBpZiBhbmQgLlZhbHVlcy5wZXJzaXN0ZW5jZS5lbmFibGVkIChub3QgLlZhbHVlcy5wZXJzaXN0ZW5jZS5leGlzdGluZ0NsYWltKSAtfX0KK2tpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbQorYXBpVmVyc2lvbjogdjEKK21ldGFkYXRhOgorICBuYW1lOiB7eyBpbmNsdWRlICJjb21tb24uZnVsbG5hbWUiIC4gfX0tYmFja3VwCisgIG5hbWVzcGFjZToge3sgaW5jbHVkZSAiY29tbW9uLm5hbWVzcGFjZSIgLiB9fQorICBsYWJlbHM6CisgICAgYXBwOiB7eyBpbmNsdWRlICJjb21tb24ubmFtZSIgLiB9fS1iYWNrdXAKKyAgICBjaGFydDogInt7IC5DaGFydC5OYW1lIH19LXt7IC5DaGFydC5WZXJzaW9uIH19IgorICAgIHJlbGVhc2U6ICJ7eyAuUmVsZWFzZS5OYW1lIH19IgorICAgIGhlcml0YWdlOiAie3sgLlJlbGVhc2UuU2VydmljZSB9fSIKK3t7LSBpZiAuVmFsdWVzLnBlcnNpc3RlbmNlLmFubm90YXRpb25zIH19CisgIGFubm90YXRpb25zOgore3sgdG9ZYW1sIC5WYWx1ZXMucGVyc2lzdGVuY2UuYW5ub3RhdGlvbnMgfCBpbmRlbnQgNCB9fQore3stIGVuZCB9fQorc3BlYzoKKyAgc2VsZWN0b3I6CisgICAgbWF0Y2hMYWJlbHM6CisgICAgICBuYW1lOiB7eyBpbmNsdWRlICJjb21tb24uZnVsbG5hbWUiIC4gfX0tYmFja3VwCisgIGFjY2Vzc01vZGVzOgorICAgIC0ge3sgLlZhbHVlcy5wZXJzaXN0ZW5jZS5hY2Nlc3NNb2RlIH19CisgIHJlc291cmNlczoKKyAgICByZXF1ZXN0czoKKyAgICAgIHN0b3JhZ2U6IHt7IC5WYWx1ZXMucGVyc2lzdGVuY2Uuc2l6ZSB9fQore3stIGlmIC5WYWx1ZXMucGVyc2lzdGVuY2Uuc3RvcmFnZUNsYXNzIH19Cit7ey0gaWYgKGVxICItIiAuVmFsdWVzLnBlcnNpc3RlbmNlLnN0b3JhZ2VDbGFzcykgfX0KKyAgc3RvcmFnZUNsYXNzTmFtZTogIiIKK3t7LSBlbHNlIH19CisgIHN0b3JhZ2VDbGFzc05hbWU6ICJ7eyAuVmFsdWVzLnBlcnNpc3RlbmNlLnN0b3JhZ2VDbGFzcyB9fSIKK3t7LSBlbmQgfX0KK3t7LSBlbmQgfX0KKy0tLQora2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltCithcGlWZXJzaW9uOiB2MQorbWV0YWRhdGE6CisgIG5hbWU6IHt7IGluY2x1ZGUgImNvbW1vbi5mdWxsbmFtZSIgLiB9fS1kYi1kYXRhCisgIG5hbWVzcGFjZToge3sgaW5jbHVkZSAiY29tbW9uLm5hbWVzcGFjZSIgLiB9fQorICBsYWJlbHM6CisgICAgYXBwOiB7eyBpbmNsdWRlICJjb21tb24ubmFtZSIgLiB9fS1kYi1kYXRhCisgICAgY2hhcnQ6ICJ7eyAuQ2hhcnQuTmFtZSB9fS17eyAuQ2hhcnQuVmVyc2lvbiB9fSIKKyAgICByZWxlYXNlOiAie3sgLlJlbGVhc2UuTmFtZSB9fSIKKyAgICBoZXJpdGFnZTogInt7IC5SZWxlYXNlLlNlcnZpY2UgfX0iCit7ey0gaWYgLlZhbHVlcy5wZXJzaXN0ZW5jZS5hbm5vdGF0aW9ucyB9fQorICBhbm5vdGF0aW9uczoKK3t7IHRvWWFtbCAuVmFsdWVzLnBlcnNpc3RlbmNlLmFubm90YXRpb25zIHwgaW5kZW50IDQgfX0KK3t7LSBlbmQgfX0KK3NwZWM6CisgIHNlbGVjdG9yOgorICAgIG1hdGNoTGFiZWxzOgorICAgICAgbmFtZToge3sgaW5jbHVkZSAiY29tbW9uLmZ1bGxuYW1lIiAuIH19LWRiLWRhdGEKKyAgYWNjZXNzTW9kZXM6CisgICAgLSB7eyAuVmFsdWVzLnBlcnNpc3RlbmNlLmFjY2Vzc01vZGUgfX0KKyAgcmVzb3VyY2VzOgorICAgIHJlcXVlc3RzOgorICAgICAgc3RvcmFnZToge3sgLlZhbHVlcy5wZXJzaXN0ZW5jZS5zaXplIH19Cit7ey0gaWYgLlZhbHVlcy5wZXJzaXN0ZW5jZS5zdG9yYWdlQ2xhc3MgfX0KK3t7LSBpZiAoZXEgIi0iIC5WYWx1ZXMucGVyc2lzdGVuY2Uuc3RvcmFnZUNsYXNzKSB9fQorICBzdG9yYWdlQ2xhc3NOYW1lOiAiIgore3stIGVsc2UgfX0KKyAgc3RvcmFnZUNsYXNzTmFtZTogInt7IC5WYWx1ZXMucGVyc2lzdGVuY2Uuc3RvcmFnZUNsYXNzIH19Igore3stIGVuZCB9fQore3stIGVuZCB9fQore3stIGVuZCAtfX0KK3t7LSBlbmQgLX19CisK