1, Results from Default Data (without Subsidy)

1.1, Model 1 (without BEVs)

1.2, Model 2 (with BEVs)

2, Results from Modified Data (with Subsidy)

2.1, Model 1 (without BEVs)

Difference between total and net wind power output is the curtailed wind power.

2.2, Model 2 (with BEVs)

u is the average charging or discharging speed.

Sensitivity Analysis with Subsidized Data

LS0tCnRpdGxlOiAiUHJvZHVjdGlvbiBJbnZlc3RtZW50IGFuZCBFY29ub21pYyBEaXNwYXRjaCBpbiBTdXN0YWluYmxlIEVuZXJneSBTeXN0ZW0iCm91dHB1dDogaHRtbF9ub3RlYm9vawphdXRob3I6IEVkd2FyZCBKLiBYdSAoPGVkeHU5NkBvdXRsb29rLmNvbT4pCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKLS0tCgpgYGB7cn0Kcm0obGlzdCA9IGxzKCkpCnNldHdkKCJ+L0dpdEh1Yi9PcHRpdmVzdC5qbC9Qb3dlci1TeXN0ZW0vUElFRCIpCmBgYAoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkoa2FibGVFeHRyYSkKbGlicmFyeShrbml0cikKYGBgCgpgYGB7ciwgbWVzc2FnZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAogIGNvbGxhcHNlID0gRkFMU0UsCiAgZWNobyA9IEZBTFNFLAogIGNvbW1lbnQgPSAiIz4iLAogIGZpZy5hbGlnbiA9ICJjZW50ZXIiLAogIGZpZy5hc3AgPSA5LzE2LAogIGZpZy53aWR0aCA9IDUsCiAgd2FybmluZyA9IEZBTFNFLAogIG1lc3NhZ2UgPSBGQUxTRQopCmBgYAoKYGBge3IsIG1lc3NhZ2U9RkFMU0V9CnRpX2RrMSA8LSAKICByZWFkX2NzdjIoIi4vZGF0YS9FbGVjdHJpY2l0eS1EaXNwYXRjaF9ESzEuY3N2IikgJT4lCiAgbXV0YXRlKE9mZnNob3JlV2luZFBvd2VyID0gYXMubnVtZXJpYyhPZmZzaG9yZVdpbmRQb3dlcikpICU+JQogIG11dGF0ZShUb3RhbExvYWQgPSBUb3RhbExvYWQgLyAxMDApICU+JQogIG11dGF0ZShPbnNob3JlV2luZFBvd2VyID0gT25zaG9yZVdpbmRQb3dlciAvIDEwMCkKYGBgCgpgYGB7cn0KZ2V0X3Jlc3VsdF9kaXNwYXRjaCA8LSBmdW5jdGlvbihzdHJfZmlsZSwgeil7CiAgdGkgPC0KICAgIHJlYWRfY3N2KHN0cl9maWxlLCBjb2xfbmFtZXMgPSBjKCJndCIsICJiaW8iKSkgJT4lCiAgICBtdXRhdGUoaW5kZXggPSByb3dfbnVtYmVyKCkpICU+JQogICAgYmluZF9jb2xzKHRpX2RrMVsxOjE2OCwgNF0pICU+JQogICAgYmluZF9jb2xzKHRpX2RrMVsxOjE2OCwgNTo2XSkgJT4lCiAgICBtdXRhdGUod2luZF90b3RhbCA9IChPbnNob3JlV2luZFBvd2VyICsgT2Zmc2hvcmVXaW5kUG93ZXIpICogeikgJT4lCiAgICBtdXRhdGUoZGVtYW5kID0gVG90YWxMb2FkKSAlPiUKICAgIG11dGF0ZSh3aW5kX25ldCA9IGRlbWFuZCAtIGd0IC0gYmlvKSAlPiUKICAgIHNlbGVjdChpbmRleCwgZGVtYW5kLCB3aW5kX3RvdGFsLCB3aW5kX25ldCwgZ3QsIGJpbykKCiAgcmV0dXJuKHRpKQp9CgpwbG90X2Rpc3BhdGNoIDwtIGZ1bmN0aW9uKHRpLCB5X2d0LCB5X2Jpbyl7CiAgdGkgJT4lCiAgICBnYXRoZXIoLWluZGV4LCBrZXkgPSAid2hpIiwgdmFsdWUgPSAicG93ZXIiKSAlPiUKICAgIGdncGxvdCgpICsgCiAgICAgIGdlb21fbGluZShtYXBwaW5nID0gYWVzKHggPSBpbmRleCwgeSA9IHBvd2VyLCBjb2xvciA9IHdoaSkpICsKICAgICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0geV9ndCwgY29sb3IgPSAiZ3JleSIsIGxpbmV0eXBlID0gImRhc2hlZCIpICsKICAgICAgZ2VvbV90ZXh0KGFlcygwLCB5X2d0LCBsYWJlbCA9IHlfZ3QpLCBzaXplID0gMykgKyAKICAgICAgZ2VvbV9obGluZSgKICAgICAgICB5aW50ZXJjZXB0ID0geV9ndCAqIDAuMjMsIGNvbG9yID0gImdyZXkiLCBsaW5ldHlwZSA9ICJkYXNoZWQiCiAgICAgICAgKSArCiAgICAgIGdlb21fdGV4dChhZXMoMCwgeV9ndCAqIDAuMjMsIGxhYmVsID0geV9ndCAqIDAuMjMpLCBzaXplID0gMykgKyAKICAgICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0geV9iaW8sIGNvbG9yID0gImdyZXkiLCBsaW5ldHlwZSA9ICJkYXNoZWQiKSArCiAgICAgIGdlb21fdGV4dChhZXMoMCwgeV9iaW8sIGxhYmVsID0geV9iaW8pLCBzaXplID0gMykgKyAKICAgICAgZ2VvbV9obGluZSgKICAgICAgICB5aW50ZXJjZXB0ID0geV9iaW8gKiAwLjUsIGNvbG9yID0gImdyZXkiLCBsaW5ldHlwZSA9ICJkYXNoZWQiCiAgICAgICAgKSArCiAgICAgIGdlb21fdGV4dChhZXMoMCwgIHlfYmlvICogMC41LCBsYWJlbCA9ICB5X2JpbyAqIDAuNSksIHNpemUgPSAzKSArIAogICAgICBsYWJzKAogICAgICAgIHRpdGxlID0gIkRlbWFuZCwgV2luZCBQb3dlciBPdXRwdXQsIERpc3BhdGNoIG9mIEdUIGFuZCBCaW8iLAogICAgICAgIHggPSAiVGltZSBJbmRleCIsIHkgPSAiUG93ZXIgKE1XKSIKICAgICAgICApCn0KCnBsb3RfZGlzcGF0Y2hfc3RhY2sgPC0gZnVuY3Rpb24odGkpewogIHRpICU+JQogICAgc2VsZWN0KGluZGV4LCBiaW8sIGd0LCB3aW5kX25ldCkgJT4lCiAgICBnYXRoZXIoLWluZGV4LCBrZXkgPSAid2hpIiwgdmFsdWUgPSAicG93ZXIiKSAlPiUKICAgIGdncGxvdCgpICsKICAgICAgZ2VvbV9hcmVhKG1hcHBpbmcgPSBhZXMoeCA9IGluZGV4LCB5ID0gcG93ZXIsIGZpbGwgPSB3aGkpKSArCiAgICAgIGxhYnMoCiAgICAgICAgdGl0bGUgPSAiU3RhY2tlZCBBcmVhIFBsb3Qgb2YgV2luZCwgR1QgRGlzcGF0Y2gsIEJpbyBEaXNwYXRjaCIsCiAgICAgICAgeCA9ICJUaW1lIEluZGV4IiwgeSA9ICJQb3dlciAoTVcpIgogICAgICAgICkKfQoKIycgR2V0IHRoZSByZXN1bHQKZ2V0X3Jlc3VsdF9kaXNwYXRjaF9ldiA8LSBmdW5jdGlvbihzdHJfZmlsZV93aW5kX3UsIHN0cl9maWxlX3Jlc3VsdCwgeil7CiAgdGlfd2luZF91IDwtCiAgcmVhZF9jc3Yoc3RyX2ZpbGVfd2luZF91LCBjb2xfbmFtZXMgPSBjKCJ3aW5kIiwgInUiKSkgJT4lCiAgbXV0YXRlKHdpbmRfbmV0ID0gLXdpbmQpICU+JQogIHNlbGVjdCh1KQogICMgc2VsZWN0KHdpbmRfbmV0LCB1KQoKICB0aSA8LQogICAgcmVhZF9jc3Yoc3RyX2ZpbGVfcmVzdWx0LCBjb2xfbmFtZXMgPSBjKCJndCIsICJiaW8iKSkgJT4lCiAgICBtdXRhdGUoaW5kZXggPSByb3dfbnVtYmVyKCkpICU+JQogICAgYmluZF9jb2xzKHRpX2RrMVsxOjE2OCwgNF0pICU+JQogICAgYmluZF9jb2xzKHRpX2RrMVsxOjE2OCwgNTo2XSkgJT4lCiAgICBtdXRhdGUod2luZF90b3RhbCA9IChPbnNob3JlV2luZFBvd2VyICsgT2Zmc2hvcmVXaW5kUG93ZXIpICogeikgJT4lCiAgICBtdXRhdGUoZGVtYW5kID0gVG90YWxMb2FkKSAlPiUKICAgIGJpbmRfY29scyh0aV93aW5kX3UpICU+JQogICAgc2VsZWN0KGluZGV4LCBkZW1hbmQsIHdpbmRfdG90YWwsIHUsIGd0LCBiaW8pCiAgCiAgcmV0dXJuKHRpKQp9CgoKcGxvdF9kaXNwYXRjaF9ldiA8LSBmdW5jdGlvbih0aSwgeV9ndCwgeV9iaW8pewogIHRpICU+JSAKICAgIG11dGF0ZSh3aW5kX25ldCA9IGRlbWFuZCArIHUgLSBndCAtIGJpbykgJT4lCiAgICBnYXRoZXIoLWluZGV4LCBrZXkgPSAid2hpIiwgdmFsdWUgPSAicG93ZXIiKSAlPiUKICAgIGdncGxvdCgpICsgCiAgICAgIGdlb21fbGluZShtYXBwaW5nID0gYWVzKHggPSBpbmRleCwgeSA9IHBvd2VyLCBjb2xvciA9IHdoaSkpICsKICAgICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0geV9ndCwgY29sb3IgPSAiZ3JleSIsIGxpbmV0eXBlID0gImRhc2hlZCIpICsKICAgICAgZ2VvbV90ZXh0KGFlcygwLCB5X2d0LCBsYWJlbCA9IHlfZ3QpLCBzaXplID0gMykgKyAKICAgICAgZ2VvbV9obGluZSgKICAgICAgICB5aW50ZXJjZXB0ID0geV9ndCAqIDAuMjMsIGNvbG9yID0gImdyZXkiLCBsaW5ldHlwZSA9ICJkYXNoZWQiCiAgICAgICAgKSArCiAgICAgIGdlb21fdGV4dChhZXMoMCwgeV9ndCAqIDAuMjMsIGxhYmVsID0geV9ndCAqIDAuMjMpLCBzaXplID0gMykgKyAKICAgICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0geV9iaW8sIGNvbG9yID0gImdyZXkiLCBsaW5ldHlwZSA9ICJkYXNoZWQiKSArCiAgICAgIGdlb21fdGV4dChhZXMoMCwgeV9iaW8sIGxhYmVsID0geV9iaW8pLCBzaXplID0gMykgKyAKICAgICAgZ2VvbV9obGluZSgKICAgICAgICB5aW50ZXJjZXB0ID0geV9iaW8gKiAwLjUsIGNvbG9yID0gImdyZXkiLCBsaW5ldHlwZSA9ICJkYXNoZWQiCiAgICAgICAgKSArCiAgICAgIGdlb21fdGV4dChhZXMoMCwgIHlfYmlvICogMC41LCBsYWJlbCA9ICB5X2JpbyAqIDAuNSksIHNpemUgPSAzKSArIAogICAgICBsYWJzKAogICAgICAgIHRpdGxlID0gIkRlbWFuZCwgV2luZCBQb3dlciwgR1QgRGlzcGF0Y2gsIEJpbyBEaXNwYXRjaCIsCiAgICAgICAgeCA9ICJUaW1lIEluZGV4IiwgeSA9ICJQb3dlciAoTVcpIgogICAgICAgICkKfQpgYGAKCgojIDEsIFJlc3VsdHMgZnJvbSBEZWZhdWx0IERhdGEgKHdpdGhvdXQgU3Vic2lkeSkKCiMjIDEuMSwgTW9kZWwgMSAod2l0aG91dCBCRVZzKQoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGZpZy5hc3AgPSA5LzE2LCBmaWcud2lkdGggPSA1fQp0aV8xIDwtIAogIGdldF9yZXN1bHRfZGlzcGF0Y2goIi4vcmVzdWx0cy93aXRob3V0LXN1YnNpZHkvbWF0X3hfcmVzdWx0XzEuY3N2IiwgMSkKCnRpXzEgJT4lIAogIHBsb3RfZGlzcGF0Y2goMjczNC43NSwgMC4wKQpgYGAKCiMjIDEuMiwgTW9kZWwgMiAod2l0aCBCRVZzKQoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGVycm9yPUZBTFNFLCBmaWcuYXNwID0gOS8xNiwgZmlnLndpZHRoID0gNX0KdGlfMiA8LSAKICBnZXRfcmVzdWx0X2Rpc3BhdGNoX2V2KCIuL3Jlc3VsdHMvd2l0aG91dC1zdWJzaWR5L21hdF93aW5kX3UuY3N2IiwKICAgICIuL3Jlc3VsdHMvd2l0aG91dC1zdWJzaWR5L21hdF94X3Jlc3VsdF8yLmNzdiIsIDEpCgp0aV8yICU+JQogIHBsb3RfZGlzcGF0Y2hfZXYoMjU2NS4zNTEzLCAwLjApIApgYGAKCiMgMiwgUmVzdWx0cyBmcm9tIE1vZGlmaWVkIERhdGEgKHdpdGggU3Vic2lkeSkKCiMjIDIuMSwgTW9kZWwgMSAod2l0aG91dCBCRVZzKQoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGZpZy5hc3AgPSA5LzE2LCBmaWcud2lkdGggPSA1fQp0aV8zIDwtIAogIGdldF9yZXN1bHRfZGlzcGF0Y2goIi4vcmVzdWx0cy9zdWJzaWR5L21hdF94X3Jlc3VsdF8xLmNzdiIsIDAuNjI0OSkKCnRpXzMgJT4lIAogIHBsb3RfZGlzcGF0Y2goMTA1MS4xOTU5LCAxODAyLjE0NjgpCmBgYAoKRGlmZmVyZW5jZSBiZXR3ZWVuIHRvdGFsIGFuZCBuZXQgd2luZCBwb3dlciBvdXRwdXQgaXMgdGhlIGN1cnRhaWxlZCB3aW5kIHBvd2VyLgoKIyMgMi4yLCBNb2RlbCAyICh3aXRoIEJFVnMpCgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgZmlnLmFzcCA9IDkvMTYsIGZpZy53aWR0aCA9IDV9CnRpXzQgPC0gCiAgZ2V0X3Jlc3VsdF9kaXNwYXRjaF9ldigiLi9yZXN1bHRzL3N1YnNpZHkvbWF0X3dpbmRfdS5jc3YiLAogICAgIi4vcmVzdWx0cy9zdWJzaWR5L21hdF94X3Jlc3VsdF8yLmNzdiIsIDAuNjI0MikKCnRpXzQgJT4lCiAgcGxvdF9kaXNwYXRjaF9ldig3MDcuOTcxNCwgMTk1MC41Nzg3KSAKYGBgCgpgdWAgaXMgdGhlIGF2ZXJhZ2UgY2hhcmdpbmcgb3IgZGlzY2hhcmdpbmcgc3BlZWQuCiAKIyBTZW5zaXRpdml0eSBBbmFseXNpcyB3aXRoIFN1YnNpZGl6ZWQgRGF0YQoKYGBge3IsIG1lc3NhZ2U9RkFMU0V9CnRpX3NlbnNlX2NfZml4X3dpbmQgPC0gCiAgcmVhZF9jc3YoCiAgICAiLi9yZXN1bHRzL2RmX3Jlc3VsdF9zZW5zaXRpdml0eV9jX2ZpeF93aW5kLmNzdiIsIAogICAgY29sX25hbWVzID0gYygibmFtZSIsICJ2YWx1ZSIsICJzZW5zaXRpdml0eSIsICJ3aGVfc3ViIiwgIndoZV9ldiIpCiAgICApCmBgYAoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGZpZy5hc3AgPSA5LzE2LCBmaWcud2lkdGggPSA1fQp0aV9zZW5zZV9jX2ZpeF93aW5kICU+JQogIGZpbHRlcih3aGVfZXYgPT0gRikgJT4lCiAgIyBmaWx0ZXIobmFtZSA9PSAib2JqIikgJT4lCiAgZ2dwbG90KCkgKyAKICAgIGdlb21fbGluZShtYXBwaW5nID0gYWVzKHggPSBzZW5zaXRpdml0eSwgeSA9IHZhbHVlKSkgKwogICAgZmFjZXRfZ3JpZChyb3dzID0gdmFycyhuYW1lKSwgc2NhbGVzID0gImZyZWUiKSArCiAgICBsYWJzKHggPSAiRml4ZWQgQ29zdCBvZiBXaW5kIChES0sgLyAlKSIsIHkgPSAiVmFsdWUiLAogICAgICB0aXRsZSA9ICJTZW5zaXRpdml0eSBvZiBNb2RlbCB3aXRob3V0IEJFVnMgdG8gRml4ZWQgQ29zdCBvZiBXaW5kIiwKICAgICAgc3VidGl0bGUgPSBwYXN0ZSgiQmx1ZSBsaW5lcyBpbmRpY2F0ZSB0aGUgb3JpZ2luYWwgZml4ZWQiLAogICAgICAiY29zdCBvZiB3aW5kLCB3aGljaCBpcyAyNjAwMDAwIERLSyAvICUuIikpICsKICAgIHNjYWxlX3hfY29udGludW91cyhzZWMuYXhpcyA9IGR1cF9heGlzKG5hbWUgPSAiVmFyaWF0aW9uIFNjYWxlICglKSIsIAogICAgICB+IC4gLyA1MjAwMDAwMCAqIDIwICogMTAwIC0gMTAwKSkgKwogICAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gNTIwMDAwMDAgLyAyMCwgY29sb3IgPSAiYmx1ZSIpCiAgICAKYGBgCgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgZmlnLmFzcCA9IDkvMTYsIGZpZy53aWR0aCA9IDV9CnRpX3NlbnNlX2NfZml4X3dpbmQgJT4lCiAgZmlsdGVyKHdoZV9ldiA9PSBUKSAlPiUKICBnZ3Bsb3QoKSArIAogICAgZ2VvbV9saW5lKG1hcHBpbmcgPSBhZXMoeCA9IHNlbnNpdGl2aXR5LCB5ID0gdmFsdWUpKSArCiAgICBmYWNldF9ncmlkKHJvd3MgPSB2YXJzKG5hbWUpLCBzY2FsZXMgPSAiZnJlZSIpICsKICAgIGxhYnMoeCA9ICJGaXhlZCBDb3N0IG9mIFdpbmQgKERLSyAvICUpIiwgeSA9ICJWYWx1ZSIsCiAgICAgIHRpdGxlID0gIlNlbnNpdGl2aXR5IG9mIE1vZGVsIHdpdGggQkVWcyB0byBGaXhlZCBDb3N0IG9mIFdpbmQiLAogICAgICBzdWJ0aXRsZSA9IHBhc3RlKCJCbHVlIGxpbmVzIGluZGljYXRlIHRoZSBvcmlnaW5hbCBmaXhlZCIsCiAgICAgICJjb3N0IG9mIHdpbmQsIHdoaWNoIGlzIDI2MDAwMDAgREtLIC8gJS4iKSkgKwogICAgc2NhbGVfeF9jb250aW51b3VzKHNlYy5heGlzID0gZHVwX2F4aXMobmFtZSA9ICJWYXJpYXRpb24gU2NhbGUgKCUpIiwgCiAgICAgIH4gLiAvIDUyMDAwMDAwICogMjAgKiAxMDAgLSAxMDApKSArCiAgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSA1MjAwMDAwMCAvIDIwLCBjb2xvciA9ICJibHVlIikKYGBgCgpgYGB7ciwgbWVzc2FnZT1GQUxTRX0KdGlfc2Vuc2VfY192YXJfZ3QgPC0gCiAgcmVhZF9jc3YoCiAgICAiLi9yZXN1bHRzL2RmX3Jlc3VsdF9zZW5zaXRpdml0eV9jX3Zhcl9ndC5jc3YiLCAKICAgIGNvbF9uYW1lcyA9IGMoIm5hbWUiLCAidmFsdWUiLCAic2Vuc2l0aXZpdHkiLCAid2hlX3N1YiIsICJ3aGVfZXYiKQogICAgKQpgYGAKCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCBmaWcuYXNwID0gOS8xNiwgZmlnLndpZHRoID0gNX0KdGlfc2Vuc2VfY192YXJfZ3QgJT4lCiAgZmlsdGVyKHdoZV9ldiA9PSBGKSAlPiUKICAjIGZpbHRlcihuYW1lID09ICJvYmoiKSAlPiUKICBnZ3Bsb3QoKSArIAogICAgZ2VvbV9saW5lKG1hcHBpbmcgPSBhZXMoeCA9IHNlbnNpdGl2aXR5LCB5ID0gdmFsdWUpKSArCiAgICBmYWNldF9ncmlkKHJvd3MgPSB2YXJzKG5hbWUpLCBzY2FsZXMgPSAiZnJlZSIpICsKICAgIGxhYnMoeCA9ICJWYXJpYWJsZSBDb3N0IG9mIEdUIChES0sgLyBNVykiLCB5ID0gIlZhbHVlIiwKICAgICAgdGl0bGUgPSAiU2Vuc2l0aXZpdHkgb2YgTW9kZWwgd2l0aG91dCBCRVZzIHRvIFZhcmlhYmxlIENvc3Qgb2YgR1QiLAogICAgICBzdWJ0aXRsZSA9IHBhc3RlKCJCbHVlIGxpbmVzIGluZGljYXRlIHRoZSBvcmlnaW5hbCB2YXJpYWJsZSBjb3N0IG9mIEdULCIsCiAgICAgICJ3aGljaCBpcyAwLjUgREtLIC8gTVcuIikpICsKICAgIHNjYWxlX3hfY29udGludW91cyhzZWMuYXhpcyA9IGR1cF9heGlzKG5hbWUgPSAiVmFyaWF0aW9uIFNjYWxlICglKSIsIAogICAgICB+IC4gLyAwLjUgKiAxMDAgLSAxMDApKSArCiAgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAwLjUsIGNvbG9yID0gImJsdWUiKQpgYGAKCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCBmaWcuYXNwID0gOS8xNiwgZmlnLndpZHRoID0gNX0KdGlfc2Vuc2VfY192YXJfZ3QgJT4lCiAgZmlsdGVyKHdoZV9ldiA9PSBUKSAlPiUKICAjIGZpbHRlcihuYW1lID09ICJvYmoiKSAlPiUKICBnZ3Bsb3QoKSArIAogICAgZ2VvbV9saW5lKG1hcHBpbmcgPSBhZXMoeCA9IHNlbnNpdGl2aXR5LCB5ID0gdmFsdWUpKSArCiAgICBmYWNldF9ncmlkKHJvd3MgPSB2YXJzKG5hbWUpLCBzY2FsZXMgPSAiZnJlZSIpICsKICAgIGxhYnMoeCA9ICJWYXJpYWJsZSBDb3N0IG9mIEdUIChES0sgLyBNVykiLCB5ID0gIlZhbHVlIiwKICAgICAgdGl0bGUgPSAiU2Vuc2l0aXZpdHkgb2YgTW9kZWwgd2l0aCBCRVZzIHRvIFZhcmlhYmxlIENvc3Qgb2YgR1QiLAogICAgICBzdWJ0aXRsZSA9IHBhc3RlKCJCbHVlIGxpbmVzIGluZGljYXRlIHRoZSBvcmlnaW5hbCB2YXJpYWJsZSBjb3N0IG9mIEdULCIsCiAgICAgICJ3aGljaCBpcyAwLjUgREtLIC8gTVcuIikpICsKICAgIHNjYWxlX3hfY29udGludW91cyhzZWMuYXhpcyA9IGR1cF9heGlzKG5hbWUgPSAiVmFyaWF0aW9uIFNjYWxlICglKSIsIAogICAgICB+IC4gLyAwLjUgKiAxMDAgLSAxMDApKSArCiAgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAwLjUsIGNvbG9yID0gImJsdWUiKQpgYGAKCmBgYHtyLCBtZXNzYWdlPUZBTFNFfQp0aV9zZW5zZV9jX3Zhcl9iaW8gPC0gCiAgcmVhZF9jc3YoCiAgICAiLi9yZXN1bHRzL2RmX3Jlc3VsdF9zZW5zaXRpdml0eV9jX3Zhcl9iaW8uY3N2IiwgCiAgICBjb2xfbmFtZXMgPSBjKCJuYW1lIiwgInZhbHVlIiwgInNlbnNpdGl2aXR5IiwgIndoZV9zdWIiLCAid2hlX2V2IikKICAgICkKYGBgCgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgZmlnLmFzcCA9IDkvMTYsIGZpZy53aWR0aCA9IDV9CnRpX3NlbnNlX2NfdmFyX2JpbyAlPiUKICBmaWx0ZXIod2hlX2V2ID09IEYpICU+JQogICMgZmlsdGVyKG5hbWUgPT0gIm9iaiIpICU+JQogIGdncGxvdCgpICsgCiAgICBnZW9tX2xpbmUobWFwcGluZyA9IGFlcyh4ID0gc2Vuc2l0aXZpdHksIHkgPSB2YWx1ZSkpICsKICAgIGZhY2V0X2dyaWQocm93cyA9IHZhcnMobmFtZSksIHNjYWxlcyA9ICJmcmVlIikgKwogICAgbGFicyh4ID0gIlZhcmlhYmxlIENvc3Qgb2YgQmlvIChES0sgLyBNVykiLCB5ID0gIlZhbHVlIiwKICAgICAgdGl0bGUgPSAiU2Vuc2l0aXZpdHkgb2YgTW9kZWwgd2l0aG91dCBCRVZzIHRvIFZhcmlhYmxlIENvc3Qgb2YgQmlvIiwKICAgICAgc3VidGl0bGUgPSBwYXN0ZSgiQmx1ZSBsaW5lcyBpbmRpY2F0ZSB0aGUgb3JpZ2luYWwgdmFyaWFibGUgY29zdCBvZiBCaW8sIiwKICAgICAgIndoaWNoIGlzIDAuNDMzIERLSyAvIE1XLiIpKSArCiAgICBzY2FsZV94X2NvbnRpbnVvdXMoc2VjLmF4aXMgPSBkdXBfYXhpcyhuYW1lID0gIlZhcmlhdGlvbiBTY2FsZSAoJSkiLCAKICAgICAgfiAuIC8gMC40MzMgKiAxMDAgLSAxMDApKSArCiAgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAwLjQzMywgY29sb3IgPSAiYmx1ZSIpCmBgYAoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGZpZy5hc3AgPSA5LzE2LCBmaWcud2lkdGggPSA1fQp0aV9zZW5zZV9jX3Zhcl9iaW8gJT4lCiAgZmlsdGVyKHdoZV9ldiA9PSBUKSAlPiUKICAjIGZpbHRlcihuYW1lID09ICJvYmoiKSAlPiUKICBnZ3Bsb3QoKSArIAogICAgZ2VvbV9saW5lKG1hcHBpbmcgPSBhZXMoeCA9IHNlbnNpdGl2aXR5LCB5ID0gdmFsdWUpKSArCiAgICBmYWNldF9ncmlkKHJvd3MgPSB2YXJzKG5hbWUpLCBzY2FsZXMgPSAiZnJlZSIpICsKICAgIGxhYnMoeCA9ICJWYXJpYWJsZSBDb3N0IG9mIEJpbyAoREtLIC8gTVcpIiwgeSA9ICJWYWx1ZSIsCiAgICAgIHRpdGxlID0gIlNlbnNpdGl2aXR5IG9mIE1vZGVsIHdpdGggQkVWcyB0byBWYXJpYWJsZSBDb3N0IG9mIEJpbyIsCiAgICAgIHN1YnRpdGxlID0gcGFzdGUoIkJsdWUgbGluZXMgaW5kaWNhdGUgdGhlIG9yaWdpbmFsIHZhcmlhYmxlIGNvc3Qgb2YgQmlvLCIsCiAgICAgICJ3aGljaCBpcyAwLjQzMyBES0sgLyBNVy4iKSkgKwogICAgc2NhbGVfeF9jb250aW51b3VzKHNlYy5heGlzID0gZHVwX2F4aXMobmFtZSA9ICJWYXJpYXRpb24gU2NhbGUgKCUpIiwgCiAgICAgIH4gLiAvIDAuNDMzICogMTAwIC0gMTAwKSkgKwogICAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gMC40MzMsIGNvbG9yID0gImJsdWUiKQpgYGAKCmBgYHtyLCBtZXNzYWdlPUZBTFNFfQp0aV9zZW5zZV9zY2FsZV9mbGVldCA8LSAKICByZWFkX2NzdigKICAgICIuL3Jlc3VsdHMvZGZfcmVzdWx0X3NlbnNpdGl2aXR5X3NjYWxlX2ZsZWV0LmNzdiIsIAogICAgY29sX25hbWVzID0gYygibmFtZSIsICJ2YWx1ZSIsICJzZW5zaXRpdml0eSIsICJ3aGVfc3ViIiwgIndoZV9ldiIpCiAgICApCmBgYAoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIGZpZy5hc3AgPSA5LzE2LCBmaWcud2lkdGggPSA1fQp0aV9zZW5zZV9zY2FsZV9mbGVldCAlPiUKICBmaWx0ZXIod2hlX2V2ID09IFQpICU+JQogICMgZmlsdGVyKG5hbWUgPT0gIm9iaiIpICU+JQogIGdncGxvdCgpICsgCiAgICBnZW9tX2xpbmUobWFwcGluZyA9IGFlcyh4ID0gc2Vuc2l0aXZpdHksIHkgPSB2YWx1ZSkpICsKICAgIGZhY2V0X2dyaWQocm93cyA9IHZhcnMobmFtZSksIHNjYWxlcyA9ICJmcmVlIikgKwogICAgbGFicyh4ID0gIlNjYWxlIG9mIEJFVnMgRmxlZXQiLCB5ID0gIlZhbHVlIiwKICAgICAgdGl0bGUgPSAiU2Vuc2l0aXZpdHkgb2YgTW9kZWwgd2l0aCBCRVZzIHRvIFNjYWxlIG9mIEJFVnMgRmxlZXQiLAogICAgICBzdWJ0aXRsZSA9IHBhc3RlKCJCbHVlIGxpbmVzIGluZGljYXRlIHRoZSBvcmlnaW5hbCBzY2FsZSBvZiBCRVZzIGZsZWV0LCIsCiAgICAgICJ3aGljaCBpcyAxLiIpKSArCiAgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAxLCBjb2xvciA9ICJibHVlIikKYGBgCgoK