cropper

TASN HANDSHAKE AFRICA 2026

  • TASN 2026
  • Birthday Lottery
  • TASN CARDS
    • TASN Verify
    • Verify Receipt
  • Flourishing Fund
    • Flourishing Gallery
    • Flourishing Badge
    • Funds Waitlist
  • Nominated Gallery
    • Sister Nomination
    • Nomination Thanks
  • TASN Thanks
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgICBVUkw6IHRhc24uaGFuZHNoYWtlLmFmcmljYS9iaXJ0aGRheQogICAgICAgICBQVVJQT1NFOiBCaXJ0aGRheSBDbHViIFZJUCBXaGVlbCAtIHNwaW4gb24geW91ciBiaXJ0aGRheSBtb250aCEKICAgICAgICAgUFJJWkU6IENoYW5jZSB0byB3aW4gRlJFRSAxLVllYXIgSGVhcnRoIE1lbWJlcnNoaXAgKCQ1NjQgdmFsdWUpCiAgICAgICAgIFJFRElSRUNUOiBXaW5uZXJzIGdvIHRvIC90aGFua3MKICAgICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPvCfjoIgQmlydGhkYXkgV2hlZWwgfCBUQVNOIEJpcnRoZGF5IENsdWIgVklQIHwgSGFuZHNoYWtlIEFmcmljYTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSGFwcHkgQmlydGhkYXkgTW9udGghIEFzIGEgVEFTTiBCaXJ0aGRheSBDbHViIFZJUCwgc3BpbiB0aGUgQmlydGhkYXkgV2hlZWwgZm9yIGEgY2hhbmNlIHRvIHdpbiBhIEZSRUUgMS1ZZWFyIEhlYXJ0aCBNZW1iZXJzaGlwIHdvcnRoICQ1NjQhIj4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3Rhc24uaGFuZHNoYWtlLmFmcmljYS9iaXJ0aGRheSI+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NTAwOzYwMDs3MDA7ODAwOzkwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDswLDcwMDsxLDQwMDsxLDUwMCZmYW1pbHk9TnVuaXRvOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMDs4MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1mdXNjaGlhOiAjRTkxRThCOwogICAgICAgICAgICAtLWZ1c2NoaWEtZGFyazogI0M0MTc3QTsKICAgICAgICAgICAgLS1vcmFuZ2U6ICNGRjZCMzU7CiAgICAgICAgICAgIC0tbWludDogIzNFQjQ4OTsKICAgICAgICAgICAgLS1nb2xkOiAjRDRBRjM3OwogICAgICAgICAgICAtLWl2b3J5OiAjRkZGOUY1OwogICAgICAgICAgICAtLWNoYXJjb2FsOiAjMWExYTJlOwogICAgICAgICAgICAtLW5hdnk6ICMxNjIxM2U7CiAgICAgICAgICAgIC0tZGVlcDogIzBmMGYyMzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgZm9udC1zaXplOiAxOHB4OyB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCSVJUSERBWSBUSEVNRUQgQkFDS0dST1VORCAqLwogICAgICAgIC5iZy1tYXN0ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMzAlIDIwJSwgcmdiYSgyMzMsIDMwLCAxMzksIDAuMikgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA3MCUgNDAlLCByZ2JhKDI1NSwgMTA3LCA1MywgMC4xNSkgMCUsIHRyYW5zcGFyZW50IDQ1JSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA1MCUgODAlLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xMikgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1kZWVwKSAwJSwgdmFyKC0tbmF2eSkgNTAlLCB2YXIoLS1jaGFyY29hbCkgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZMT0FUSU5HIEJJUlRIREFZIElURU1TICovCiAgICAgICAgLmZsb2F0aWVzLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmZsb2F0eSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXR5UmlzZSA3cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmbG9hdHlSaXNlIHsKICAgICAgICAgICAgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpIHJvdGF0ZSgwZGVnKSBzY2FsZSgwLjUpOyB9CiAgICAgICAgICAgIDEwJSB7IG9wYWNpdHk6IDAuODU7IH0KICAgICAgICAgICAgOTAlIHsgb3BhY2l0eTogMC44NTsgfQogICAgICAgICAgICAxMDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXZoKSByb3RhdGUoMzYwZGVnKSBzY2FsZSgxLjMpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250ZW50LXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBIRUFERVIgKi8KICAgICAgICAuaGVhZGVyIHsKICAgICAgICAgICAgcGFkZGluZzogMzBweCAyNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KICAgICAgICAubG9nbyB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB9CiAgICAgICAgLmxvZ28tY2FrZSB7IGNvbG9yOiB2YXIoLS1mdXNjaGlhKTsgfQogICAgICAgIC5sb2dvLWRpdmlkZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IG1hcmdpbjogMCA4cHg7IH0KICAgICAgICAubG9nby1jbHViIHsgY29sb3I6IHZhcigtLW1pbnQpOyB9CiAgICAgICAgLmJhY2stbGluayB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICAgIH0KICAgICAgICAuYmFjay1saW5rOmhvdmVyIHsgY29sb3I6IHZhcigtLWZ1c2NoaWEpOyB9CiAgICAgICAgCiAgICAgICAgLyogSEVSTyAqLwogICAgICAgIC5oZXJvIHsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyNXB4IDUwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmhlcm8tYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWZ1c2NoaWEpLCB2YXIoLS1vcmFuZ2UpKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDQwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBiYWRnZVB1bHNlIDIuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgYmFkZ2VQdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAxMHB4IDQwcHggcmdiYSgyMzMsIDMwLCAxMzksIDAuNCk7IH0KICAgICAgICAgICAgNTAlIHsgYm94LXNoYWRvdzogMCAxNXB4IDYwcHggcmdiYSgyMzMsIDMwLCAxMzksIDAuNik7IH0KICAgICAgICB9CiAgICAgICAgLmhlcm8taWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBjYWtlQm91bmNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIGNha2VCb3VuY2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpIHNjYWxlKDEuMDUpOyB9CiAgICAgICAgfQogICAgICAgIC5oZXJvLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNnZ3LCAzLjVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mdXNjaGlhKSwgdmFyKC0tb3JhbmdlKSwgdmFyKC0tZ29sZCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgYXV0bzsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDRzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyIHsKICAgICAgICAgICAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSBjZW50ZXI7IH0KICAgICAgICAgICAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgY2VudGVyOyB9CiAgICAgICAgfQogICAgICAgIC5oZXJvLXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KICAgICAgICAuaGVyby1kZXNjIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuODgpOwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuOTsKICAgICAgICB9CiAgICAgICAgLmhlcm8tZGVzYyBzdHJvbmcgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tZnVzY2hpYSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEdSQU5EIFBSSVpFIEJPWCAqLwogICAgICAgIC5ncmFuZC1wcml6ZSB7CiAgICAgICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC40KSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDMwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmdyYW5kLXByaXplLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5ncmFuZC1wcml6ZS12YWx1ZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDNyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1mdXNjaGlhKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLmdyYW5kLXByaXplLWRlc2MgewogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC44KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogV0hFRUwgKi8KICAgICAgICAud2hlZWwtc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMjVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAud2hlZWwtY29udGFpbmVyIHsKICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAzNXB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQogICAgICAgIC53aGVlbCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNnMgY3ViaWMtYmV6aWVyKDAuMTcsIDAuNjcsIDAuMTIsIDAuOTkpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNjBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC41KSwgMCAwIDEwMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb25pYy1ncmFkaWVudCgKICAgICAgICAgICAgICAgIHZhcigtLWZ1c2NoaWEpIDBkZWcgNjBkZWcsCiAgICAgICAgICAgICAgICB2YXIoLS1nb2xkKSA2MGRlZyAxMjBkZWcsCiAgICAgICAgICAgICAgICB2YXIoLS1taW50KSAxMjBkZWcgMTgwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tb3JhbmdlKSAxODBkZWcgMjQwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tZnVzY2hpYS1kYXJrKSAyNDBkZWcgMzAwZGVnLAogICAgICAgICAgICAgICAgI0I4OTcyRSAzMDBkZWcgMzYwZGVnCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIC53aGVlbC1pY29uIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIH0KICAgICAgICAud2hlZWwtaWNvbi0xIHsgdG9wOiAyMCU7IGxlZnQ6IDUwJTsgfQogICAgICAgIC53aGVlbC1pY29uLTIgeyB0b3A6IDM1JTsgbGVmdDogODAlOyB9CiAgICAgICAgLndoZWVsLWljb24tMyB7IHRvcDogNjUlOyBsZWZ0OiA4MCU7IH0KICAgICAgICAud2hlZWwtaWNvbi00IHsgdG9wOiA4MCU7IGxlZnQ6IDUwJTsgfQogICAgICAgIC53aGVlbC1pY29uLTUgeyB0b3A6IDY1JTsgbGVmdDogMjAlOyB9CiAgICAgICAgLndoZWVsLWljb24tNiB7IHRvcDogMzUlOyBsZWZ0OiAyMCU7IH0KICAgICAgICAKICAgICAgICAud2hlZWwtY2VudGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDgwcHg7CiAgICAgICAgICAgIGhlaWdodDogODBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLW9yYW5nZSkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDMwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNyk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIH0KICAgICAgICAud2hlZWwtcG9pbnRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtMjVweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgei1pbmRleDogMjA7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3Bpbi1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDIycHggNjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZnVzY2hpYSksIHZhcigtLW9yYW5nZSkpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNTBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC40NSk7CiAgICAgICAgfQogICAgICAgIC5zcGluLWJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KSBzY2FsZSgxLjA1KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAyNXB4IDcwcHggcmdiYSgyMzMsIDMwLCAxMzksIDAuNTUpOwogICAgICAgIH0KICAgICAgICAuc3Bpbi1idG46ZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgfQogICAgICAgIC5zcGlucy1ub3RlIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjY1KTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBSRVNVTFQgTU9EQUwgKi8KICAgICAgICAucmVzdWx0LW1vZGFsIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45Mik7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5yZXN1bHQtbW9kYWwuc2hvdyB7CiAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgICAgfQogICAgICAgIC5yZXN1bHQtYm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgdmFyKC0tbmF2eSksIHZhcigtLWNoYXJjb2FsKSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDQwcHg7CiAgICAgICAgICAgIG1heC13aWR0aDogNTIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlOwogICAgICAgIH0KICAgICAgICAucmVzdWx0LW1vZGFsLnNob3cgLnJlc3VsdC1ib3ggewogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgICAucmVzdWx0LWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDUuNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLnJlc3VsdC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAucmVzdWx0LW1lc3NhZ2UgewogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC45KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICB9CiAgICAgICAgLnJlc3VsdC1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggNTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbWludCksIHZhcigtLW1pbnQtZGFyaykpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAucmVzdWx0LWJ0bjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxOHB4IDQ1cHggcmdiYSg2MiwgMTgwLCAxMzcsIDAuNDUpOwogICAgICAgIH0KICAgICAgICAuY2xvc2UtbW9kYWwgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMjBweDsKICAgICAgICAgICAgcmlnaHQ6IDI1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jbG9zZS1tb2RhbDpob3ZlciB7IGNvbG9yOiB3aGl0ZTsgfQogICAgICAgIAogICAgICAgIC8qIFBSSVpFUyBQUkVWSUVXICovCiAgICAgICAgLnByaXplcy1zZWN0aW9uIHsKICAgICAgICAgICAgcGFkZGluZzogNTBweCAyNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5wcml6ZXMtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgLnByaXplcy1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNTBweCwgMWZyKSk7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIC5wcml6ZS1pdGVtIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM1KTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMzMsIDMwLCAxMzksIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggMTVweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLnByaXplLWl0ZW06aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZ1c2NoaWEpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgfQogICAgICAgIC5wcml6ZS1pdGVtLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLnByaXplLWl0ZW0tbmFtZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1mdXNjaGlhKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIH0KICAgICAgICAucHJpemUtaXRlbS12YWx1ZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZPT1RFUiAqLwogICAgICAgIGZvb3RlciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMjVweCA0MHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMTUpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItYnJhbmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC42KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1saW5rcyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1saW5rcyBhIHsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC41KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS1nb2xkKTsgfQogICAgICAgIAogICAgICAgIC8qIFJFU1BPTlNJVkUgKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgICAgICAud2hlZWwtY29udGFpbmVyIHsgd2lkdGg6IDI2MHB4OyBoZWlnaHQ6IDI2MHB4OyB9CiAgICAgICAgICAgIC5ncmFuZC1wcml6ZSB7IHBhZGRpbmc6IDMwcHggMjVweDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHsKICAgICAgICAgICAgLndoZWVsLWNvbnRhaW5lciB7IHdpZHRoOiAyNDBweDsgaGVpZ2h0OiAyNDBweDsgfQogICAgICAgICAgICAuc3Bpbi1idG4geyBwYWRkaW5nOiAxOHB4IDQ1cHg7IGZvbnQtc2l6ZTogMS4ycmVtOyB9CiAgICAgICAgICAgIC5wcml6ZXMtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0iYmctbWFzdGVyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aWVzLWNvbnRhaW5lciIgaWQ9ImZsb2F0aWVzIj48L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4KICAgICAgICA8IS0tIEhFQURFUiAtLT4KICAgICAgICA8aGVhZGVyIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsb2dvLWNha2UiPvCfjoIgQmlydGhkYXkgQ2x1Yjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsb2dvLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsb2dvLWNsdWIiPlZJUDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGFzbi5oYW5kc2hha2UuYWZyaWNhIiBjbGFzcz0iYmFjay1saW5rIj7ihpAgQmFjayB0byBNYWluIFdoZWVsPC9hPgogICAgICAgIDwvaGVhZGVyPgogICAgICAgIAogICAgICAgIDwhLS0gSEVSTyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iaGVybyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhlcm8tYmFkZ2UiPvCfjokgSXQncyBZb3VyIEJpcnRoZGF5IE1vbnRoISDwn46JPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhlcm8taWNvbiI+8J+OgjwvZGl2PgogICAgICAgICAgICA8aDEgY2xhc3M9Imhlcm8tdGl0bGUiPkhhcHB5IEJpcnRoZGF5LCBRdWVlbiE8L2gxPgogICAgICAgICAgICA8cCBjbGFzcz0iaGVyby1zdWJ0aXRsZSI+Ik1heSB0aGlzIHllYXIgYnJpbmcgeW91IGNsb3NlciB0byB5b3VyIGRyZWFtcyI8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJoZXJvLWRlc2MiPkFzIGEgPHN0cm9uZz5CaXJ0aGRheSBDbHViIFZJUDwvc3Ryb25nPiwgeW91J3ZlIGVhcm5lZCBhIHNwZWNpYWwgc3BpbiBvbiB0aGUgQmlydGhkYXkgV2hlZWwhIFRoZSBHUkFORCBQUklaRT8gQSA8c3Ryb25nPkZSRUUgMX5ZZWFyIEhlYXJ0aCBNZW1iZXJzaGlwPC9zdHJvbmc+IHdvcnRoICQ1NjQhPC9wPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIEdSQU5EIFBSSVpFIEJPWCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFuZC1wcml6ZSI+CiAgICAgICAgICAgIDxoMyBjbGFzcz0iZ3JhbmQtcHJpemUtdGl0bGUiPvCfj4YgR1JBTkQgUFJJWkU8L2gzPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFuZC1wcml6ZS12YWx1ZSI+JDU2NDwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0iZ3JhbmQtcHJpemUtZGVzYyI+RlJFRSAxflllYXIgSGVyIFdvbWFuaXR5IEhlYXJ0aCBNZW1iZXJzaGlwISBGdWxsIGFjY2VzcyB0byBjb21tdW5pdHksIHJlc291cmNlcywgZXZlbnRzLCBhbmQgc2lzdGVyaG9vZC48L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBXSEVFTCAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0id2hlZWwtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1wb2ludGVyIj7wn5ONPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbCIgaWQ9IndoZWVsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtaWNvbiB3aGVlbC1pY29uLTEiPvCfj4Y8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndoZWVsLWljb24gd2hlZWwtaWNvbi0yIj7wn5KzPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1pY29uIHdoZWVsLWljb24tMyI+8J+TsDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtaWNvbiB3aGVlbC1pY29uLTQiPvCfjoE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndoZWVsLWljb24gd2hlZWwtaWNvbi01Ij7wn4yNPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1pY29uIHdoZWVsLWljb24tNiI+8J+Tkzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtY2VudGVyIj7wn46CPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic3Bpbi1idG4iIGlkPSJzcGluQnRuIiBvbmNsaWNrPSJzcGluQmlydGhkYXlXaGVlbCgpIj7wn46hIFNwaW4gWW91ciBCaXJ0aGRheSBXaGVlbCE8L2J1dHRvbj4KICAgICAgICAgICAgPHAgY2xhc3M9InNwaW5zLW5vdGUiPk9uZSBiaXJ0aGRheSBzcGluIHBlciB5ZWFyIH4gbWFrZSBpdCBjb3VudCE8L3A+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gUkVTVUxUIE1PREFMIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InJlc3VsdC1tb2RhbCIgaWQ9InJlc3VsdE1vZGFsIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNsb3NlLW1vZGFsIiBvbmNsaWNrPSJjbG9zZU1vZGFsKCkiPuKclTwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzdWx0LWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtaWNvbiIgaWQ9InJlc3VsdEljb24iPvCfjok8L2Rpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0icmVzdWx0LXRpdGxlIiBpZD0icmVzdWx0VGl0bGUiPkhhcHB5IEJpcnRoZGF5ITwvaDI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icmVzdWx0LW1lc3NhZ2UiIGlkPSJyZXN1bHRNZXNzYWdlIj5Zb3VyIGJpcnRoZGF5IGdpZnQgYXdhaXRzITwvcD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGFzbi5oYW5kc2hha2UuYWZyaWNhL3RoYW5rcyIgY2xhc3M9InJlc3VsdC1idG4iIGlkPSJyZXN1bHRCdG4iIHRhcmdldD0iX2JsYW5rIj5DbGFpbSBZb3VyIEdpZnQg4oaSPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFBSSVpFUyBQUkVWSUVXIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJwcml6ZXMtc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0icHJpemVzLXRpdGxlIj7wn46BIEJpcnRoZGF5IFdoZWVsIFByaXplczwvaDI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplcy1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0taWNvbiI+8J+PhjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0tbmFtZSI+R1JBTkQgUFJJWkU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLXZhbHVlIj4kNTY0IE1lbWJlcnNoaXAhPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0taWNvbiI+8J+SszwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0tbmFtZSI+RGlnaXRhbCBDYXJkPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbS12YWx1ZSI+JDEwMCBWYWx1ZTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLWljb24iPvCfk7A8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLW5hbWUiPkZlYXR1cmUgQXJ0aWNsZTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWl0ZW0tdmFsdWUiPiQyNTAgVmFsdWU8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbS1pY29uIj7wn46BPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbS1uYW1lIj5CaXJ0aGRheSBCdW5kbGU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLXZhbHVlIj5TdXJwcmlzZSE8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbS1pY29uIj7wn4yNPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbS1uYW1lIj5EaXJlY3RvcnkgVklQPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaXRlbS12YWx1ZSI+JDE0OSBWYWx1ZTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLWljb24iPvCfk5M8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLW5hbWUiPlN0cmF0ZWd5IEpvdXJuYWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pdGVtLXZhbHVlIj4kNDcgVmFsdWU8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGT09URVIgLS0+CiAgICAgICAgPGZvb3Rlcj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWJyYW5kIj7wn46CIFRBU04gQmlydGhkYXkgQ2x1YjwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXRhZ2xpbmUiPiJDZWxlYnJhdGluZyBRdWVlbnMsIE9uZSBCaXJ0aGRheSBhdCBhIFRpbWUiPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxpbmtzIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGFzbi5oYW5kc2hha2UuYWZyaWNhIj5NYWluIFdoZWVsPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oZXJ3b21hbml0eS5jb20vaGVhcnRoIj5UaGUgSGVhcnRoPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tZW50b3JzaGlwc3VjY2Vzcy5jb20vZm91bmRlci12aXJ0dWFsLWNhcmQiPkNvbm5lY3QgV2l0aCBNZTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb290ZXI+CiAgICA8L2Rpdj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAvLyBGTE9BVElORyBCSVJUSERBWSBJVEVNUwogICAgICAgIGNvbnN0IGZsb2F0aWVzQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aWVzJyk7CiAgICAgICAgY29uc3QgYmlydGhkYXlFbW9qaXMgPSBbJ/CfjoInLCAn8J+OgScsICfwn46IJywgJ/CfjoknLCAn8J+OiicsICfinKgnLCAn8J+MnycsICfwn5KVJywgJ/CfkZEnLCAn8J+lsycsICfwn42wJywgJ/CfjoAnXTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMwOyBpKyspIHsKICAgICAgICAgICAgY29uc3QgZmxvYXR5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIGZsb2F0eS5jbGFzc05hbWUgPSAnZmxvYXR5JzsKICAgICAgICAgICAgZmxvYXR5LnRleHRDb250ZW50ID0gYmlydGhkYXlFbW9qaXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYmlydGhkYXlFbW9qaXMubGVuZ3RoKV07CiAgICAgICAgICAgIGZsb2F0eS5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgZmxvYXR5LnN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gTWF0aC5yYW5kb20oKSAqIDcgKyAncyc7CiAgICAgICAgICAgIGZsb2F0eS5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9ICg1ICsgTWF0aC5yYW5kb20oKSAqIDQpICsgJ3MnOwogICAgICAgICAgICBmbG9hdGllc0NvbnRhaW5lci5hcHBlbmRDaGlsZChmbG9hdHkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBCSVJUSERBWSBXSEVFTAogICAgICAgIGNvbnN0IHByaXplcyA9IFsKICAgICAgICAgICAgeyBpY29uOiAn8J+PhicsIHRpdGxlOiAnR1JBTkQgUFJJWkUhISEnLCBtZXNzYWdlOiAnSEFQUFkgQklSVEhEQVksIFFVRUVOISBZb3VcJ3ZlIHdvbiBhIEZSRUUgMX5ZZWFyIEhlciBXb21hbml0eSBIZWFydGggTWVtYmVyc2hpcCB3b3J0aCAkNTY0ISBUaGlzIGlzIEFNQVpJTkchIENvbXBsZXRlIHRoZSBmb3JtIHRvIGNsYWltIHlvdXIgaW5jcmVkaWJsZSBnaWZ0IScsIGlzR3JhbmQ6IHRydWUgfSwKICAgICAgICAgICAgeyBpY29uOiAn8J+SsycsIHRpdGxlOiAnRGlnaXRhbCBDYXJkIFdpbm5lciEnLCBtZXNzYWdlOiAnSGFwcHkgQmlydGhkYXkhIFlvdVwndmUgd29uIGEgRlJFRSAkMTAwIFByZW1pdW0gRGlnaXRhbCBCdXNpbmVzcyBDYXJkISBBIHBlcmZlY3QgYmlydGhkYXkgZ2lmdCBmb3IgeW91ciBicmFuZCEnLCBpc0dyYW5kOiBmYWxzZSB9LAogICAgICAgICAgICB7IGljb246ICfwn5OwJywgdGl0bGU6ICdGZWF0dXJlIEFydGljbGUhJywgbWVzc2FnZTogJ0JpcnRoZGF5IGJsZXNzaW5ncyEgWW91XCd2ZSB3b24gYSBGUkVFIEZlYXR1cmUgQXJ0aWNsZSBvbiBvdXIgbmV3cyBjaGFubmVscyEgU2hhcmUgeW91ciBzdG9yeSB3aXRoIHRob3VzYW5kcyEnLCBpc0dyYW5kOiBmYWxzZSB9LAogICAgICAgICAgICB7IGljb246ICfwn46BJywgdGl0bGU6ICdCaXJ0aGRheSBCdW5kbGUhJywgbWVzc2FnZTogJ1N1cnByaXNlISBZb3VcJ3ZlIHdvbiBhIHNwZWNpYWwgQmlydGhkYXkgQnVuZGxlIH4gYSBjdXJhdGVkIGNvbGxlY3Rpb24gb2YgcmVzb3VyY2VzLCB0ZW1wbGF0ZXMsIGFuZCBnb29kaWVzIGp1c3QgZm9yIHlvdSEnLCBpc0dyYW5kOiBmYWxzZSB9LAogICAgICAgICAgICB7IGljb246ICfwn4yNJywgdGl0bGU6ICdEaXJlY3RvcnkgVklQIScsIG1lc3NhZ2U6ICdIYXBweSBCaXJ0aGRheSEgWW91XCd2ZSB3b24gYSBGUkVFIExpZmV0aW1lIFZJUCBMaXN0aW5nIG9uIFRvcCBBZnJpY2EgRGlyZWN0b3J5IScsIGlzR3JhbmQ6IGZhbHNlIH0sCiAgICAgICAgICAgIHsgaWNvbjogJ/Cfk5MnLCB0aXRsZTogJ1N0cmF0ZWd5IEpvdXJuYWwhJywgbWVzc2FnZTogJ0JpcnRoZGF5IGdpZnQgdW5sb2NrZWQhIFlvdVwndmUgd29uIG91ciBleGNsdXNpdmUgU3RyYXRlZ3kgJiBTdWNjZXNzIEpvdXJuYWwgdG8gcGxhbiB5b3VyIGJlc3QgeWVhciB5ZXQhJywgaXNHcmFuZDogZmFsc2UgfQogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgbGV0IGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICBjb25zdCBCSVJUSERBWV9TVE9SQUdFX0tFWSA9ICd0YXNuX2JpcnRoZGF5X3NwaW4nOwogICAgICAgIAogICAgICAgIC8vIENoZWNrIGlmIGFscmVhZHkgc3B1biB0aGlzIHllYXIKICAgICAgICBmdW5jdGlvbiBjaGVja0JpcnRoZGF5U3BpbigpIHsKICAgICAgICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oQklSVEhEQVlfU1RPUkFHRV9LRVkpOwogICAgICAgICAgICBpZiAoc3RvcmVkKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZWRZZWFyID0gbmV3IERhdGUoc3RvcmVkKS5nZXRGdWxsWWVhcigpOwogICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICAgICAgICAgICAgICBpZiAoc3RvcmVkWWVhciA9PT0gY3VycmVudFllYXIpIHsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpLnRleHRDb250ZW50ID0gJ0FscmVhZHkgU3B1biBUaGlzIFllYXIhJzsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGNoZWNrQmlydGhkYXlTcGluKCk7CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc3BpbkJpcnRoZGF5V2hlZWwoKSB7CiAgICAgICAgICAgIGlmIChpc1NwaW5uaW5nKSByZXR1cm47CiAgICAgICAgICAgIGlmICghY2hlY2tCaXJ0aGRheVNwaW4oKSkgcmV0dXJuOwogICAgICAgICAgICAKICAgICAgICAgICAgaXNTcGlubmluZyA9IHRydWU7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEJJUlRIREFZX1NUT1JBR0VfS0VZLCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpOwogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3Qgd2hlZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2hlZWwnKTsKICAgICAgICAgICAgY29uc3Qgc3BpbkJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluQnRuJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBzcGluQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgc3BpbkJ0bi50ZXh0Q29udGVudCA9ICfwn46CIFNwaW5uaW5nLi4uJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEhpZ2hlciBjaGFuY2Ugb2Ygd2lubmluZyBzb21ldGhpbmcgZ29vZCBvbiBiaXJ0aGRheSEKICAgICAgICAgICAgLy8gMTAlIEdyYW5kIFByaXplLCAyMCUgRGlnaXRhbCBDYXJkLCAyMCUgRmVhdHVyZSBBcnRpY2xlLCAKICAgICAgICAgICAgLy8gMjAlIEJ1bmRsZSwgMTUlIERpcmVjdG9yeSwgMTUlIEpvdXJuYWwKICAgICAgICAgICAgY29uc3QgcmFuZCA9IE1hdGgucmFuZG9tKCkgKiAxMDA7CiAgICAgICAgICAgIGxldCBwcml6ZUluZGV4OwogICAgICAgICAgICBpZiAocmFuZCA8IDEwKSBwcml6ZUluZGV4ID0gMDsgICAgICAgLy8gR3JhbmQgUHJpemUhCiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCAzMCkgcHJpemVJbmRleCA9IDE7ICAvLyBEaWdpdGFsIENhcmQKICAgICAgICAgICAgZWxzZSBpZiAocmFuZCA8IDUwKSBwcml6ZUluZGV4ID0gMjsgIC8vIEZlYXR1cmUgQXJ0aWNsZQogICAgICAgICAgICBlbHNlIGlmIChyYW5kIDwgNzApIHByaXplSW5kZXggPSAzOyAgLy8gQmlydGhkYXkgQnVuZGxlCiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCA4NSkgcHJpemVJbmRleCA9IDQ7ICAvLyBEaXJlY3RvcnkKICAgICAgICAgICAgZWxzZSBwcml6ZUluZGV4ID0gNTsgICAgICAgICAgICAgICAgICAvLyBKb3VybmFsCiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDYWxjdWxhdGUgcm90YXRpb24KICAgICAgICAgICAgY29uc3Qgc2VnbWVudEFuZ2xlID0gMzYwIC8gNjsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0QW5nbGUgPSBwcml6ZUluZGV4ICogc2VnbWVudEFuZ2xlICsgc2VnbWVudEFuZ2xlIC8gMjsKICAgICAgICAgICAgY29uc3Qgc3BpbnMgPSA2ICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMyk7CiAgICAgICAgICAgIGNvbnN0IGZpbmFsUm90YXRpb24gPSBzcGlucyAqIDM2MCArICgzNjAgLSB0YXJnZXRBbmdsZSkgKyAzMDsKICAgICAgICAgICAgCiAgICAgICAgICAgIHdoZWVsLnN0eWxlLnRyYW5zZm9ybSA9IGByb3RhdGUoJHtmaW5hbFJvdGF0aW9ufWRlZylgOwogICAgICAgICAgICAKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBzaG93UmVzdWx0KHByaXplc1twcml6ZUluZGV4XSk7CiAgICAgICAgICAgICAgICBpc1NwaW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICBzcGluQnRuLnRleHRDb250ZW50ID0gJ0FscmVhZHkgU3B1biEnOwogICAgICAgICAgICB9LCA2NTAwKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd1Jlc3VsdChwcml6ZSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0SWNvbicpLnRleHRDb250ZW50ID0gcHJpemUuaWNvbjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFRpdGxlJykudGV4dENvbnRlbnQgPSBwcml6ZS50aXRsZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdE1lc3NhZ2UnKS50ZXh0Q29udGVudCA9IHByaXplLm1lc3NhZ2U7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCByZXN1bHRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0QnRuJyk7CiAgICAgICAgICAgIHJlc3VsdEJ0bi5ocmVmID0gJ2h0dHBzOi8vdGFzbi5oYW5kc2hha2UuYWZyaWNhL3RoYW5rcyc7CiAgICAgICAgICAgIHJlc3VsdEJ0bi50ZXh0Q29udGVudCA9IHByaXplLmlzR3JhbmQgPyAn8J+PhiBDTEFJTSBNWSBHUkFORCBQUklaRSEg4oaSJyA6ICdDbGFpbSBZb3VyIEJpcnRoZGF5IEdpZnQg4oaSJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEJpcnRoZGF5IGNvbmZldHRpIQogICAgICAgICAgICBjcmVhdGVCaXJ0aGRheUNvbmZldHRpKCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWwoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQmlydGhkYXlDb25mZXR0aSgpIHsKICAgICAgICAgICAgY29uc3QgY29sb3JzID0gWycjRTkxRThCJywgJyNGRjZCMzUnLCAnIzNFQjQ4OScsICcjRDRBRjM3JywgJyNmZmYnLCAnI0ZGNjlCNCddOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjb25mZXR0aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUuY3NzVGV4dCA9IGAKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICR7OCArIE1hdGgucmFuZG9tKCkgKiA4fXB4OwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHs4ICsgTWF0aC5yYW5kb20oKSAqIDh9cHg7CiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjb2xvcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY29sb3JzLmxlbmd0aCldfTsKICAgICAgICAgICAgICAgICAgICBsZWZ0OiAke01hdGgucmFuZG9tKCkgKiAxMDB9dnc7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMTVweDsKICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAke01hdGgucmFuZG9tKCkgPiAwLjUgPyAnNTAlJyA6ICcwJ307CiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjAwMDsKICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IGNvbmZldHRpRmFsbCAkezIuNSArIE1hdGgucmFuZG9tKCkgKiAyfXMgbGluZWFyIGZvcndhcmRzOwogICAgICAgICAgICAgICAgYDsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29uZmV0dGkpOwogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjb25mZXR0aS5yZW1vdmUoKSwgNDUwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gQWRkIGNvbmZldHRpIGFuaW1hdGlvbgogICAgICAgIGNvbnN0IGNvbmZldHRpU3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogICAgICAgIGNvbmZldHRpU3R5bGUudGV4dENvbnRlbnQgPSBgQGtleWZyYW1lcyBjb25mZXR0aUZhbGwgeyB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDV2aCkgcm90YXRlKDcyMGRlZyk7IG9wYWNpdHk6IDA7IH0gfWA7CiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjb25mZXR0aVN0eWxlKTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
🎂 Birthday Wheel | TASN Birthday Club VIP | Handshake Africa
🎂 Birthday Club ✦ VIP
← Back to Main Wheel
🎉 It's Your Birthday Month! 🎉
🎂

Happy Birthday, Queen!

"May this year bring you closer to your dreams"

As a Birthday Club VIP, you've earned a special spin on the Birthday Wheel! The GRAND PRIZE? A FREE 1~Year Hearth Membership worth $564!

🏆 GRAND PRIZE

$564

FREE 1~Year Her Womanity Hearth Membership! Full access to community, resources, events, and sisterhood.

📍
🏆 💳 📰 🎁 🌍 📓
🎂

One birthday spin per year ~ make it count!

✕
🎉

Happy Birthday!

Your birthday gift awaits!

Claim Your Gift →

🎁 Birthday Wheel Prizes

🏆
GRAND PRIZE
$564 Membership!
💳
Digital Card
$100 Value
📰
Feature Article
$250 Value
🎁
Birthday Bundle
Surprise!
🌍
Directory VIP
$149 Value
📓
Strategy Journal
$47 Value
🎂 TASN Birthday Club

"Celebrating Queens, One Birthday at a Time"

Main Wheel The Hearth Connect With Me
Image Gallery Grid

T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning