cropper

VIRTUAL HANDSHAKE AFRICA

  • Home
  • Discover
  • Gallery
  • Pricing
  • Contact Us
  • About Us
  • Oder Essential
  • Order Essential
  • Order Professional
  • Digital Empire
  • Thank You
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+UHJpY2luZyAtIFlvdXIgRGlnaXRhbCBTb3ZlcmVpZ250eSBTdGFydHMgSGVyZSB8IEhhbmRzaGFrZS5hZnJpY2E8L3RpdGxlPgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJGcm9tICQ5Ny95ZWFyIGRpZ2l0YWwgY2FyZHMgdG8gZnVsbCBtZWRpYSBlbXBpcmUgb3duZXJzaGlwLiBDaG9vc2UgeW91ciBwYXRoIHRvIGRpZ2l0YWwgc292ZXJlaWdudHkuIFFSIGNvZGVzLCBhdXRob3JpdHkgc2l0ZXMsIGFuZCBldmVyeXRoaW5nIGluIGJldHdlZW4uIj4KICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAKICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs2MDA7NzAwOzgwMDs5MDAmZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA3MDA7OTAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAKICA8c3R5bGU+CiAgICA6cm9vdCB7CiAgICAgIC0tbmF2eTogIzAwMUYzRjsKICAgICAgLS1yb3lhbC1ibHVlOiAjMDA0N0FCOwogICAgICAtLWdvbGQ6ICNGRkQ3MDA7CiAgICAgIC0tZ29sZC13YXJtOiAjRkZDMTA3OwogICAgICAtLXdoaXRlOiAjRkZGRkZGOwogICAgICAtLWxpZ2h0LWJnOiAjRjdGOUZDOwogICAgICAtLWdyYXk6ICM2QjcyODA7CiAgICAgIC0tdGVhbDogIzAwQzlBNzsKICAgICAgLS1vcmFuZ2U6ICNGRjZCMzU7CiAgICAgIC0tcHVycGxlOiAjN0I2OEVFOwogICAgICAtLWJsdWU6ICM0QTkwRTI7CiAgICAgIC0tZ3JlZW46ICM1MUNGNjY7CiAgICAgIC0tcGluazogI0ZGNjlCNDsKICAgIH0KICAgIAogICAgKiB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KICAgIAogICAgYm9keSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtYmcpOwogICAgfQogICAgCiAgICBoMSwgaDIsIGgzIHsKICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICB9CiAgICAKICAgIC8qIE5BVklHQVRJT04gKi8KICAgIC5uYXYgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIHRvcDogMDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMzEsIDYzLCAwLjk4KTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgICB6LWluZGV4OiAxMDAwOwogICAgICBwYWRkaW5nOiAxcmVtIDJyZW07CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggcmdiYSgwLDAsMCwwLjEpOwogICAgfQogICAgCiAgICAubmF2LWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAubG9nbyB7CiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICBmb250LXdlaWdodDogODAwOwogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICB9CiAgICAKICAgIC5uYXYtbGlua3MgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDJyZW07CiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICB9CiAgICAKICAgIC5uYXYtbGlua3MgYSB7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zczsKICAgIH0KICAgIAogICAgLm5hdi1saW5rcyBhOmhvdmVyLAogICAgLm5hdi1saW5rcyBhLmFjdGl2ZSB7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgIH0KICAgIAogICAgLm1vYmlsZS1tZW51IHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQogICAgCiAgICAvKiBIRVJPICovCiAgICAuaGVybyB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSkgMCUsIHZhcigtLXJveWFsLWJsdWUpIDUwJSwgdmFyKC0tdGVhbCkgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDE0MHB4IDJyZW0gODBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAuaGVybzo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAtNTAlOwogICAgICBsZWZ0OiAtNTAlOwogICAgICB3aWR0aDogMjAwJTsKICAgICAgaGVpZ2h0OiAyMDAlOwogICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwyMTUsMCwwLjEpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICBhbmltYXRpb246IHB1bHNlIDE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgIH0KICAgIAogICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC41OyB9CiAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgb3BhY2l0eTogMC44OyB9CiAgICB9CiAgICAKICAgIC5oZXJvLWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAyOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAKICAgIC5oZXJvIGgxIHsKICAgICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDd2dywgNXJlbSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwwLDAsMC4zKTsKICAgIH0KICAgIAogICAgLmhlcm8tc3VidGl0bGUgewogICAgICBmb250LXNpemU6IGNsYW1wKDEuMnJlbSwgM3Z3LCAxLjhyZW0pOwogICAgICBvcGFjaXR5OiAwLjk1OwogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICBtYXJnaW46IDAgYXV0byAycmVtOwogICAgICBsaW5lLWhlaWdodDogMS44OwogICAgfQogICAgCiAgICAuaGVyby1oaWdobGlnaHQgewogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDIxNSwwLDAuMik7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICBmb250LXdlaWdodDogODAwOwogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgIH0KICAgIAogICAgLyogU0VDVElPTiBIRUFERVJTICovCiAgICAuc2VjdGlvbiB7CiAgICAgIHBhZGRpbmc6IDgwcHggMnJlbTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWJhZGdlIHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMjAxLDE2NywwLjEpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10ZWFsKTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7CiAgICAgIGNvbG9yOiB2YXIoLS10ZWFsKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgaDIgewogICAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNnZ3LCA0cmVtKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICB9CiAgICAKICAgIC8qIE1BSU4gUFJJQ0lORyBDQVJEUyAqLwogICAgLm1haW4tcHJpY2luZyB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMGY5ZmYgMCUsICNlMGYyZmUgMTAwJSk7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgZ2FwOiAyLjVyZW07CiAgICAgIG1hcmdpbi10b3A6IDNyZW07CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWNhcmQgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgIHBhZGRpbmc6IDNyZW0gMi41cmVtOwogICAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsMCwwLDAuMTIpOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsKICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWNhcmQ6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpIHNjYWxlKDEuMDIpOwogICAgICBib3gtc2hhZG93OiAwIDMwcHggODBweCByZ2JhKDAsMCwwLDAuMik7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWNhcmQuZXNzZW50aWFsIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ibHVlKTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZmZmZiAwJSwgI2RiZWFmZSAxMDAlKTsKICAgIH0KICAgIAogICAgLnByaWNpbmctY2FyZC5wcm9mZXNzaW9uYWwgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLXRlYWwpOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZmZmZmIDAlLCAjZDFmYWU1IDEwMCUpOwogICAgfQogICAgCiAgICAucHJpY2luZy1jYXJkLnByZW1pdW0gewogICAgICBib3JkZXItY29sb3I6IHZhcigtLXB1cnBsZSk7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZmZmYgMCUsICNlZGU5ZmUgMTAwJSk7CiAgICB9CiAgICAKICAgIC5wb3B1bGFyLWJhZGdlIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IC0xNXB4OwogICAgICBsZWZ0OiA1MCU7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tdGVhbCkgMCUsICMwMEI4OTQgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDAuNnJlbSAyLjVyZW07CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7CiAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwyMDEsMTY3LDAuNSk7CiAgICB9CiAgICAKICAgIC5iZXN0LXZhbHVlLWJhZGdlIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IC0xNXB4OwogICAgICBsZWZ0OiA1MCU7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSAwJSwgIzZDNUNFNyAxMDAlKTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgcGFkZGluZzogMC42cmVtIDIuNXJlbTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDsKICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgxMjMsMTA0LDIzOCwwLjUpOwogICAgfQogICAgCiAgICAudGllci1uYW1lIHsKICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICBmb250LXdlaWdodDogOTAwOwogICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgIH0KICAgIAogICAgLnRpZXItdGFnbGluZSB7CiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAKICAgIC5wcmljZS1kaXNwbGF5IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsKICAgICAgcGFkZGluZzogMS41cmVtOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDMpOwogICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgfQogICAgCiAgICAucHJpY2UtYW1vdW50IHsKICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICBmb250LXdlaWdodDogOTAwOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgIH0KICAgIAogICAgLnByaWNlLXBlcmlvZCB7CiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CiAgICAKICAgIC5mZWF0dXJlcy1saXN0IHsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgfQogICAgCiAgICAuZmVhdHVyZXMtbGlzdCBsaSB7CiAgICAgIHBhZGRpbmc6IDAuOXJlbSAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgZ2FwOiAwLjc1cmVtOwogICAgICBmb250LXNpemU6IDFyZW07CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDUpOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQogICAgCiAgICAuZmVhdHVyZXMtbGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgIH0KICAgIAogICAgLmZlYXR1cmVzLWxpc3QgbGk6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICfinJMnOwogICAgICBjb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KICAgIAogICAgLmZlYXR1cmVzLWxpc3QgbGkubm90LWluY2x1ZGVkIHsKICAgICAgb3BhY2l0eTogMC40OwogICAgfQogICAgCiAgICAuZmVhdHVyZXMtbGlzdCBsaS5ub3QtaW5jbHVkZWQ6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICfDlyc7CiAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgIH0KICAgIAogICAgLnByaWNpbmctY3RhIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHBhZGRpbmc6IDEuNHJlbTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWN0YTo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiA1MCU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgd2lkdGg6IDA7CiAgICAgIGhlaWdodDogMDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzLCBoZWlnaHQgMC42czsKICAgIH0KICAgIAogICAgLnByaWNpbmctY3RhOmhvdmVyOjpiZWZvcmUgewogICAgICB3aWR0aDogNTAwcHg7CiAgICAgIGhlaWdodDogNTAwcHg7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWN0YSBzcGFuIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAxOwogICAgfQogICAgCiAgICAuY3RhLWVzc2VudGlhbCB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJsdWUpIDAlLCAjMzU3QUJEIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDc0LDE0NCwyMjYsMC40KTsKICAgIH0KICAgIAogICAgLmN0YS1lc3NlbnRpYWw6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoNzQsMTQ0LDIyNiwwLjYpOwogICAgfQogICAgCiAgICAuY3RhLXByb2Zlc3Npb25hbCB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXRlYWwpIDAlLCAjMDBCODk0IDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDAsMjAxLDE2NywwLjQpOwogICAgfQogICAgCiAgICAuY3RhLXByb2Zlc3Npb25hbDpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgwLDIwMSwxNjcsMC42KTsKICAgIH0KICAgIAogICAgLmN0YS1wcmVtaXVtIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSAwJSwgIzZDNUNFNyAxMDAlKTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgxMjMsMTA0LDIzOCwwLjQpOwogICAgfQogICAgCiAgICAuY3RhLXByZW1pdW06aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMTIzLDEwNCwyMzgsMC42KTsKICAgIH0KICAgIAogICAgLyogUVIgQ09ERSBTRUNUSU9OICovCiAgICAucXItc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQtd2FybSkgMCUsIHZhcigtLW9yYW5nZSkgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICB9CiAgICAKICAgIC5xci1pbnRybyB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvIDRyZW07CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgcGFkZGluZzogM3JlbTsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTsKICAgIH0KICAgIAogICAgLnFyLWludHJvIGgyIHsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDMuNXJlbSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwwLDAsMC4yKTsKICAgIH0KICAgIAogICAgLnFyLWludHJvIHAgewogICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgbGluZS1oZWlnaHQ6IDEuOTsKICAgICAgb3BhY2l0eTogMC45NTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICAgIAogICAgLnFyLWludHJvIHN0cm9uZyB7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjkpOwogICAgICBwYWRkaW5nOiAwLjJyZW0gMC42cmVtOwogICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICB9CiAgICAKICAgIC5xci1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7CiAgICAgIGdhcDogMi41cmVtOwogICAgICBtYXJnaW4tdG9wOiAzcmVtOwogICAgfQogICAgCiAgICAucXItY2FyZCB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgcGFkZGluZzogM3JlbTsKICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgwLDAsMCwwLjIpOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAucXItY2FyZDo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ29sZCksIHZhcigtLW9yYW5nZSksIHZhcigtLXBpbmspKTsKICAgIH0KICAgIAogICAgLnFyLWNhcmQ6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpIHJvdGF0ZSgyZGVnKTsKICAgICAgYm94LXNoYWRvdzogMCAzMHB4IDgwcHggcmdiYSgwLDAsMCwwLjMpOwogICAgfQogICAgCiAgICAucXItaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgYW5pbWF0aW9uOiBmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgIH0KICAgIAogICAgQGtleWZyYW1lcyBmbG9hdCB7CiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH0KICAgIH0KICAgIAogICAgLnFyLWNhcmQgaDMgewogICAgICBmb250LXNpemU6IDJyZW07CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KICAgIAogICAgLnFyLXByaWNlIHsKICAgICAgZm9udC1zaXplOiAzcmVtOwogICAgICBmb250LXdlaWdodDogOTAwOwogICAgICBjb2xvcjogdmFyKC0tcHVycGxlKTsKICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICB9CiAgICAKICAgIC5xci1jYXJkIHAgewogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICB9CiAgICAKICAgIC5xci1mZWF0dXJlcyB7CiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07CiAgICB9CiAgICAKICAgIC5xci1mZWF0dXJlcyBsaSB7CiAgICAgIHBhZGRpbmc6IDAuN3JlbSAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDAuNzVyZW07CiAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgCiAgICAucXItZmVhdHVyZXMgbGk6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICfimqEnOwogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIH0KICAgIAogICAgLnFyLWN0YSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwYWRkaW5nOiAxLjJyZW07CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW9yYW5nZSkgMCUsIHZhcigtLXBpbmspIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgfQogICAgCiAgICAucXItY3RhOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDI1NSwxMDUsMTgwLDAuNCk7CiAgICB9CiAgICAKICAgIC8qIE1FRElBIEFVVEhPUklUWSBTRUNUSU9OICovCiAgICAubWVkaWEtYXV0aG9yaXR5IHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbmF2eSkgMCUsIHZhcigtLXJveWFsLWJsdWUpIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgfQogICAgCiAgICAubWVkaWEtaW50cm8gewogICAgICBtYXgtd2lkdGg6IDEwMDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG8gNHJlbTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBwYWRkaW5nOiA0cmVtOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyMTUsMCwwLjEpOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgfQogICAgCiAgICAubWVkaWEtaW50cm8gaDIgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi41cmVtLCA2dncsIDQuNXJlbSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07CiAgICAgIHRleHQtc2hhZG93OiAzcHggM3B4IDZweCByZ2JhKDAsMCwwLDAuMyk7CiAgICB9CiAgICAKICAgIC5tZWRpYS1pbnRybyBwIHsKICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAyOwogICAgICBvcGFjaXR5OiAwLjk1OwogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CiAgICAKICAgIC5tZWRpYS1pbnRybyAuaGlnaGxpZ2h0LXRleHQgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgIH0KICAgIAogICAgLm1lZGlhLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDM1MHB4LCAxZnIpKTsKICAgICAgZ2FwOiAzcmVtOwogICAgICBtYXJnaW4tdG9wOiA0cmVtOwogICAgfQogICAgCiAgICAubWVkaWEtY2FyZCB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTsKICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgcGFkZGluZzogMy41cmVtOwogICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwyMTUsMCwwLjMpOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAubWVkaWEtY2FyZDo6YWZ0ZXIgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IC01MCU7CiAgICAgIHJpZ2h0OiAtNTAlOwogICAgICB3aWR0aDogMjAwJTsKICAgICAgaGVpZ2h0OiAyMDAlOwogICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwyMTUsMCwwLjEpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICBhbmltYXRpb246IHJvdGF0ZSAyMHMgbGluZWFyIGluZmluaXRlOwogICAgfQogICAgCiAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7CiAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgIH0KICAgIAogICAgLm1lZGlhLWNhcmQ6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOwogICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICBib3gtc2hhZG93OiAwIDMwcHggODBweCByZ2JhKDI1NSwyMTUsMCwwLjMpOwogICAgfQogICAgCiAgICAubWVkaWEtdGllciB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcGFkZGluZzogMC42cmVtIDEuNXJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgfQogICAgCiAgICAubWVkaWEtY2FyZCBoMyB7CiAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgei1pbmRleDogMjsKICAgIH0KICAgIAogICAgLm1lZGlhLWNhcmQgLnRhZ2xpbmUgewogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44KTsKICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAyOwogICAgfQogICAgCiAgICAubWVkaWEtY2FyZCBwIHsKICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7CiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgei1pbmRleDogMjsKICAgIH0KICAgIAogICAgLm1lZGlhLWZlYXR1cmVzIHsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHotaW5kZXg6IDI7CiAgICB9CiAgICAKICAgIC5tZWRpYS1mZWF0dXJlcyBsaSB7CiAgICAgIHBhZGRpbmc6IDAuOXJlbSAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgZ2FwOiAxcmVtOwogICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LDIxNSwwLDAuMik7CiAgICB9CiAgICAKICAgIC5tZWRpYS1mZWF0dXJlcyBsaTpsYXN0LWNoaWxkIHsKICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgIH0KICAgIAogICAgLm1lZGlhLWZlYXR1cmVzIGxpOjpiZWZvcmUgewogICAgICBjb250ZW50OiAn8J+RkSc7CiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KICAgIAogICAgLm1lZGlhLWN0YSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwYWRkaW5nOiAxLjVyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAyOwogICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDI1NSwyMTUsMCwwLjMpOwogICAgfQogICAgCiAgICAubWVkaWEtY3RhOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpIHNjYWxlKDEuMDUpOwogICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDI1NSwyMTUsMCwwLjUpOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkLXdhcm0pOwogICAgfQogICAgCiAgICAvKiBDT05TVUxUQVRJT04gQ1RBICovCiAgICAuY29uc3VsdGF0aW9uLWN0YSB7CiAgICAgIHBhZGRpbmc6IDEwMHB4IDJyZW07CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXRlYWwpIDAlLCB2YXIoLS1ncmVlbikgMTAwJSk7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIH0KICAgIAogICAgLmNvbnN1bHRhdGlvbi1jb250YWluZXIgewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmNvbnN1bHRhdGlvbi1jdGEgaDIgewogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi41cmVtLCA2dncsIDRyZW0pOwogICAgfQogICAgCiAgICAuY29uc3VsdGF0aW9uLWN0YSBwIHsKICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgIG9wYWNpdHk6IDAuOTU7CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICB9CiAgICAKICAgIC5jb25zdWx0YXRpb24tYnV0dG9uIHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwYWRkaW5nOiAxLjVyZW0gNHJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgICBjb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDAsMCwwLDAuMik7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICB9CiAgICAKICAgIC5jb25zdWx0YXRpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDEuMDUpOwogICAgICBib3gtc2hhZG93OiAwIDMwcHggNzBweCByZ2JhKDAsMCwwLDAuMyk7CiAgICB9CiAgICAKICAgIC8qIEZPT1RFUiAqLwogICAgLmZvb3RlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnkpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBwYWRkaW5nOiA2MHB4IDJyZW0gMjBweDsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb250YWluZXIgewogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5mb290ZXItZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDNyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIGg0IHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gdWwgewogICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgfQogICAgCiAgICAuZm9vdGVyLWNvbHVtbiB1bCBsaSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIGEgewogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIGE6aG92ZXIgewogICAgICBvcGFjaXR5OiAxOwogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIHBhZGRpbmctbGVmdDogNXB4OwogICAgfQogICAgCiAgICAuZm9vdGVyLWJvdHRvbSB7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyMTUsMCwwLjMpOwogICAgICBwYWRkaW5nLXRvcDogMnJlbTsKICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgb3BhY2l0eTogMC44OwogICAgfQogICAgCiAgICAuZm9vdGVyLWJvdHRvbSBhIHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB9CiAgICAKICAgIC8qIFJFU1BPTlNJVkUgKi8KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAubmF2LWxpbmtzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2eSk7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAycmVtOwogICAgICAgIGdhcDogMXJlbTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgIH0KICAgICAgCiAgICAgIC5uYXYtbGlua3MuYWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICB9CiAgICAgIAogICAgICAubW9iaWxlLW1lbnUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIAogICAgICAucHJpY2luZy1ncmlkLAogICAgICAucXItZ3JpZCwKICAgICAgLm1lZGlhLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICB9CiAgICAgIAogICAgICAuaGVybyBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2MHB4IDEuNXJlbTsKICAgICAgfQogICAgfQogICAgCiAgICAvKiBBTklNQVRJT05TICovCiAgICAuZmFkZS1pbiB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZS1vdXQ7CiAgICB9CiAgICAKICAgIC5mYWRlLWluLnZpc2libGUgewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgPCEtLSBOQVZJR0FUSU9OIC0tPgogIDxuYXYgY2xhc3M9Im5hdiI+CiAgICA8ZGl2IGNsYXNzPSJuYXYtY29udGFpbmVyIj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhLyIgY2xhc3M9ImxvZ28iPkhhbmRzaGFrZS5hZnJpY2E8L2E+CiAgICAgIDxidXR0b24gY2xhc3M9Im1vYmlsZS1tZW51IiBvbmNsaWNrPSJ0b2dnbGVNZW51KCkiPuKYsDwvYnV0dG9uPgogICAgICA8dWwgY2xhc3M9Im5hdi1saW5rcyIgaWQ9Im5hdkxpbmtzIj4KICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhLyI+SG9tZTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EvZGlzY292ZXIiPkRpc2NvdmVyPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9nYWxsZXJ5Ij5HYWxsZXJ5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9wcmljaW5nIiBjbGFzcz0iYWN0aXZlIj5QcmljaW5nPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9jb250YWN0Ij5Db250YWN0PC9hPjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICA8L25hdj4KCiAgPCEtLSBIRVJPIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJoZXJvIj4KICAgIDxkaXYgY2xhc3M9Imhlcm8tY29udGFpbmVyIj4KICAgICAgPGgxPllvdXIgRGlnaXRhbCBTb3ZlcmVpZ250eSBTdGFydHMgSGVyZTwvaDE+CiAgICAgIDxwIGNsYXNzPSJoZXJvLXN1YnRpdGxlIj4KICAgICAgICBGcm9tIGEgc2ltcGxlIGJ1c2luZXNzIGNhcmQgdG8gb3duaW5nIHlvdXIgb3duIG1lZGlhIGVtcGlyZS4gRXZlcnkgc292ZXJlaWduIGpvdXJuZXkgYmVnaW5zIHdpdGggYSBzaW5nbGUgc3RlcC4gQ2hvb3NlIHlvdXJzLgogICAgICA8L3A+CiAgICAgIDxkaXYgY2xhc3M9Imhlcm8taGlnaGxpZ2h0Ij4KICAgICAgICDwn5qAIEZyb20gJDk3L3llYXIgdG8gTWVkaWEgT3duZXJzaGlwCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIE1BSU4gUFJJQ0lORyBTRUNUSU9OIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIG1haW4tcHJpY2luZyI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1iYWRnZSI+RGlnaXRhbCBCdXNpbmVzcyBDYXJkczwvZGl2PgogICAgICAgIDxoMj5Zb3VyIFByb2Zlc3Npb25hbCBJZGVudGl0eSwgRWxldmF0ZWQ8L2gyPgogICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj4KICAgICAgICAgIENob29zZSB0aGUgdGllciB0aGF0IG1hdGNoZXMgd2hlcmUgeW91IGFyZeKAlGFuZCB3aGVyZSB5b3UncmUgZ29pbmcuIEFsbCBjYXJkcyBhcmUgbW9iaWxlLW9wdGltaXplZCwgdHJhY2thYmxlLCBhbmQgaW5zdGFudGx5IHNoYXJlYWJsZS4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1ncmlkIj4KICAgICAgICAKICAgICAgICA8IS0tIEVTU0VOVElBTCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWNhcmQgZXNzZW50aWFsIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0idGllci1uYW1lIj5Fc3NlbnRpYWw8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXItdGFnbGluZSI+UGVyZmVjdCBmb3IgZ2V0dGluZyBzdGFydGVkPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlLWRpc3BsYXkiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtYW1vdW50Ij4kOTc8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1wZXJpb2QiPi95ZWFyPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5Qcm9mZXNzaW9uYWwgZGlnaXRhbCBjYXJkPC9saT4KICAgICAgICAgICAgPGxpPllvdXIgYnJhbmQgY29sb3JzPC9saT4KICAgICAgICAgICAgPGxpPlBob3RvLCBiaW8gKDE1MCB3b3Jkcyk8L2xpPgogICAgICAgICAgICA8bGk+NSBzb2NpYWwgbWVkaWEgbGlua3M8L2xpPgogICAgICAgICAgICA8bGk+Q2FsbCwgRW1haWwsIFdoYXRzQXBwIGJ1dHRvbnM8L2xpPgogICAgICAgICAgICA8bGk+Q3VzdG9tIFFSIGNvZGU8L2xpPgogICAgICAgICAgICA8bGk+QmFzaWMgYW5hbHl0aWNzPC9saT4KICAgICAgICAgICAgPGxpPjEgdXBkYXRlIHBlciB5ZWFyPC9saT4KICAgICAgICAgICAgPGxpIGNsYXNzPSJub3QtaW5jbHVkZWQiPlZpZGVvIGludHJvZHVjdGlvbjwvbGk+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibm90LWluY2x1ZGVkIj5BcHBvaW50bWVudCBib29raW5nPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9vcmRlci1lc3NlbnRpYWwiIGNsYXNzPSJwcmljaW5nLWN0YSBjdGEtZXNzZW50aWFsIj4KICAgICAgICAgICAgPHNwYW4+U3RhcnQgRXNzZW50aWFsIOKGkjwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFBST0ZFU1NJT05BTCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWNhcmQgcHJvZmVzc2lvbmFsIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0icG9wdWxhci1iYWRnZSI+4q2QIE1vc3QgUG9wdWxhcjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idGllci1uYW1lIj5Qcm9mZXNzaW9uYWw8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXItdGFnbGluZSI+Rm9yIHNlcmlvdXMgbmV0d29ya2VyczwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZS1kaXNwbGF5Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWFtb3VudCI+JDI5Nzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLXBlcmlvZCI+L3llYXI8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlcy1saXN0Ij4KICAgICAgICAgICAgPGxpPjxzdHJvbmc+RXZlcnl0aGluZyBpbiBFc3NlbnRpYWwgUExVUzo8L3N0cm9uZz48L2xpPgogICAgICAgICAgICA8bGk+Q2F0ZWdvcnkgc3ViZG9tYWluIChhdXRob3JpdHkhKTwvbGk+CiAgICAgICAgICAgIDxsaT5WaWRlbyBpbnRyb2R1Y3Rpb24gKDMwLTYwcyk8L2xpPgogICAgICAgICAgICA8bGk+QXBwb2ludG1lbnQgYm9va2luZzwvbGk+CiAgICAgICAgICAgIDxsaT44IHNvY2lhbCBtZWRpYSBsaW5rczwvbGk+CiAgICAgICAgICAgIDxsaT5QcmVtaXVtIFFSIGRlc2lnbnMgKDMgb3B0aW9ucyk8L2xpPgogICAgICAgICAgICA8bGk+RW5oYW5jZWQgYW5hbHl0aWNzPC9saT4KICAgICAgICAgICAgPGxpPlByaW9yaXR5IDI0LWhvdXIgZGVsaXZlcnk8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5vdC1pbmNsdWRlZCI+UGVyc29uYWwgc3ViZG9tYWluPC9saT4KICAgICAgICAgICAgPGxpIGNsYXNzPSJub3QtaW5jbHVkZWQiPkxlYWQgY2FwdHVyZSBmb3JtPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9vcmRlci1wcm9mZXNzaW9uYWwiIGNsYXNzPSJwcmljaW5nLWN0YSBjdGEtcHJvZmVzc2lvbmFsIj4KICAgICAgICAgICAgPHNwYW4+Q2hvb3NlIFByb2Zlc3Npb25hbCDihpI8L3NwYW4+CiAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBQUkVNSVVNIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctY2FyZCBwcmVtaXVtIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0iYmVzdC12YWx1ZS1iYWRnZSI+8J+SjiBCZXN0IFZhbHVlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyLW5hbWUiPlByZW1pdW08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXItdGFnbGluZSI+WW91ciBjb21wbGV0ZSBkaWdpdGFsIGJyYW5kPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlLWRpc3BsYXkiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtYW1vdW50Ij4kNjk3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtcGVyaW9kIj4veWVhcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmVzLWxpc3QiPgogICAgICAgICAgICA8bGk+PHN0cm9uZz5FdmVyeXRoaW5nIGluIFByb2Zlc3Npb25hbCBQTFVTOjwvc3Ryb25nPjwvbGk+CiAgICAgICAgICAgIDxsaT5QZXJzb25hbCBzdWJkb21haW4gKG1heCBhdXRob3JpdHkpPC9saT4KICAgICAgICAgICAgPGxpPkN1c3RvbSBicmFuZGVkIGRlc2lnbjwvbGk+CiAgICAgICAgICAgIDxsaT5NdWx0aXBsZSBzZWN0aW9ucyAocG9ydGZvbGlvLCBldGMpPC9saT4KICAgICAgICAgICAgPGxpPlZpZGVvICsgbWVkaWEgZW1iZWRzPC9saT4KICAgICAgICAgICAgPGxpPkxlYWQgY2FwdHVyZSBmb3JtPC9saT4KICAgICAgICAgICAgPGxpPlVubGltaXRlZCBzb2NpYWwgbGlua3M8L2xpPgogICAgICAgICAgICA8bGk+RmVhdHVyZWQgaW4gZGlyZWN0b3J5PC9saT4KICAgICAgICAgICAgPGxpPjIgbWFqb3IgdXBkYXRlcyBwZXIgeWVhcjwvbGk+CiAgICAgICAgICAgIDxsaT5Qcmlvcml0eSBzdXBwb3J0PC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9vcmRlci1wcmVtaXVtIiBjbGFzcz0icHJpY2luZy1jdGEgY3RhLXByZW1pdW0iPgogICAgICAgICAgICA8c3Bhbj5HbyBQcmVtaXVtIOKGkjwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIAogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIFFSIENPREUgU0VDVElPTiAtLT4KICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBxci1zZWN0aW9uIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InFyLWludHJvIGZhZGUtaW4iPgogICAgICAgIDxoMj7wn6SdIEhlbHAgT3RoZXJzIENsaW1iIEFzIFlvdSBDbGltYjwvaDI+CiAgICAgICAgPHA+CiAgICAgICAgICBZb3VyIGRpZ2l0YWwgY2FyZCBpcyBwb3dlcmZ1bC4gQnV0IHdoYXQgYWJvdXQgdGhlIDxzdHJvbmc+c2ltcGxlIGFjdCBvZiBjb25uZWN0aW9uPC9zdHJvbmc+PyBTb21ldGltZXMgcGVvcGxlIGp1c3QgbmVlZCBhIDxzdHJvbmc+cXVpY2sgd2F5IHRvIHJlYWNoIHlvdTwvc3Ryb25nPuKAlGEgV2hhdHNBcHAgbnVtYmVyLCB5b3VyIEluc3RhZ3JhbSwgeW91ciB3ZWJzaXRlLCB5b3VyIG5ld3NsZXR0ZXIuCiAgICAgICAgPC9wPgogICAgICAgIDxwPgogICAgICAgICAgVGhhdCdzIHdoZXJlIDxzdHJvbmc+UVIgY29kZXMgYmVjb21lIG1hZ2ljPC9zdHJvbmc+LiBUaGV5J3JlIGluc3RhbnQuIFRoZXkncmUgc2hhcmVhYmxlLiBUaGV5IHdvcmsgb2ZmbGluZS4gQW5kIHRoZXkgPHN0cm9uZz5oZWxwIG90aGVycyBmaW5kIHlvdTwvc3Ryb25nPiBpbiB0aGUgc2ltcGxlc3Qgd2F5IHBvc3NpYmxlLgogICAgICAgIDwvcD4KICAgICAgICA8cD4KICAgICAgICAgIDxzdHJvbmc+QmVjYXVzZSB3aGVuIHlvdSBoZWxwIG90aGVycyByZWFjaCB5b3UsIHlvdSBoZWxwIHRoZW0gcmVhY2ggdGhlaXIgZHJlYW1zLjwvc3Ryb25nPiBMZXQncyBtYWtlIGNvbm5lY3Rpb24gZWZmb3J0bGVzcy4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icXItZ3JpZCI+CiAgICAgICAgCiAgICAgICAgPCEtLSBTSU1QTEUgUVIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icXItY2FyZCBmYWRlLWluIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJxci1pY29uIj7wn5OxPC9zcGFuPgogICAgICAgICAgPGgzPlNpbXBsZSBDb25uZWN0PC9oMz4KICAgICAgICAgIDxkaXYgY2xhc3M9InFyLXByaWNlIj4kMjU8L2Rpdj4KICAgICAgICAgIDxwPk9uZSBsaW5rLiBPbmUgc2Nhbi4gSW5zdGFudCBjb25uZWN0aW9uLiBQZXJmZWN0IGZvciBhIFdoYXRzQXBwIG51bWJlciwgSW5zdGFncmFtLCB3ZWJzaXRlLCBvciBuZXdzbGV0dGVyIHNpZ251cC48L3A+CiAgICAgICAgICAKICAgICAgICAgIDx1bCBjbGFzcz0icXItZmVhdHVyZXMiPgogICAgICAgICAgICA8bGk+T05FIGxpbmsgb2YgeW91ciBjaG9pY2U8L2xpPgogICAgICAgICAgICA8bGk+U3RhbmRhcmQgUVIgY29kZSBkZXNpZ248L2xpPgogICAgICAgICAgICA8bGk+SGlnaC1yZXNvbHV0aW9uIGRvd25sb2FkPC9saT4KICAgICAgICAgICAgPGxpPlByaW50LXJlYWR5IGZvcm1hdHM8L2xpPgogICAgICAgICAgICA8bGk+V29ya3Mgb2ZmbGluZSBmb3JldmVyPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gY2xhc3M9InFyLWN0YSI+R2V0IFNpbXBsZSBRUiDihpI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEJSQU5ERUQgUVIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icXItY2FyZCBmYWRlLWluIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJxci1pY29uIj7wn46oPC9zcGFuPgogICAgICAgICAgPGgzPkJyYW5kZWQgQ29ubmVjdDwvaDM+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJxci1wcmljZSI+JDc1PC9kaXY+CiAgICAgICAgICA8cD5Zb3VyIGNvbG9ycy4gWW91ciBsb2dvIGluIHRoZSBjZW50ZXIuIFlvdXIgbmFtZS4gWW91ciBicmFuZC4gQSBRUiBjb2RlIHRoYXQncyB1bm1pc3Rha2FibHkgWU9VLjwvcD4KICAgICAgICAgIAogICAgICAgICAgPHVsIGNsYXNzPSJxci1mZWF0dXJlcyI+CiAgICAgICAgICAgIDxsaT5PTkUgbGluayBvZiB5b3VyIGNob2ljZTwvbGk+CiAgICAgICAgICAgIDxsaT5Zb3VyIGJyYW5kIGNvbG9yczwvbGk+CiAgICAgICAgICAgIDxsaT5Zb3VyIGxvZ28gaW4gY2VudGVyPC9saT4KICAgICAgICAgICAgPGxpPllvdXIgbmFtZSBpbmNsdWRlZDwvbGk+CiAgICAgICAgICAgIDxsaT5QcmVtaXVtIGRlc2lnbjwvbGk+CiAgICAgICAgICAgIDxsaT5IaWdoLXJlcyBkb3dubG9hZDwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxci1jdGEiPkdldCBCcmFuZGVkIFFSIOKGkjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gU0hBUEVEIFFSIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InFyLWNhcmQgZmFkZS1pbiI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icXItaWNvbiI+4pyoPC9zcGFuPgogICAgICAgICAgPGgzPlNoYXBlZCBDb25uZWN0PC9oMz4KICAgICAgICAgIDxkaXYgY2xhc3M9InFyLXByaWNlIj4kMTUwPC9kaXY+CiAgICAgICAgICA8cD5TdGFuZCBvdXQgd2l0aCBzaGFwZWQgUVIgY29kZXMhIENob29zZSBmcm9tIGNhcnMsIGhvdXNlcywgaGVhcnRzLCBzdGFycywgYW5kIG1vcmUuIFlvdXIgaW5kdXN0cnksIHlvdXIgcGVyc29uYWxpdHksIHlvdXIgc2lnbmF0dXJlLjwvcD4KICAgICAgICAgIAogICAgICAgICAgPHVsIGNsYXNzPSJxci1mZWF0dXJlcyI+CiAgICAgICAgICAgIDxsaT5PTkUgbGluayBvZiB5b3VyIGNob2ljZTwvbGk+CiAgICAgICAgICAgIDxsaT5DaG9vc2UgeW91ciBzaGFwZSAoY2FyLCBob21lLCBldGMpPC9saT4KICAgICAgICAgICAgPGxpPllvdXIgYnJhbmQgY29sb3JzPC9saT4KICAgICAgICAgICAgPGxpPllvdXIgbG9nbyBpbnRlZ3JhdGVkPC9saT4KICAgICAgICAgICAgPGxpPlVsdHJhLXByZW1pdW0gZGVzaWduPC9saT4KICAgICAgICAgICAgPGxpPk11bHRpcGxlIGZvcm1hdCBleHBvcnRzPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gY2xhc3M9InFyLWN0YSI+R2V0IFNoYXBlZCBRUiDihpI8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIAogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIE1FRElBIEFVVEhPUklUWSBTRUNUSU9OIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIG1lZGlhLWF1dGhvcml0eSI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1pbnRybyBmYWRlLWluIj4KICAgICAgICA8aDI+8J+RkSBCZXlvbmQgYSBXZWJzaXRlOiBPd24gWW91ciBWb2ljZSwgT3duIFlvdXIgQXV0aG9yaXR5PC9oMj4KICAgICAgICA8cD4KICAgICAgICAgIEEgd2Vic2l0ZSBpcyBncmVhdC4gU29jaWFsIG1lZGlhIGlzIHBvd2VyZnVsLiBCdXQgPHN0cm9uZz5ub3RoaW5nIGJ1aWxkcyBhdXRob3JpdHkgbGlrZSBvd25pbmcgeW91ciBvd24gbWVkaWEgY2hhbm5lbDwvc3Ryb25nPi4KICAgICAgICA8L3A+CiAgICAgICAgPHA+CiAgICAgICAgICBUaGlzIGlzIGhvdyB5b3UgZ28gZnJvbSA8c3Ryb25nPiJhbm90aGVyIGJ1c2luZXNzIjwvc3Ryb25nPiB0byA8c3Ryb25nPiJUSEUgdm9pY2UgcGVvcGxlIHRydXN0LiI8L3N0cm9uZz4gVGhpcyBpcyBob3cgeW91IGJlY29tZSA8c3Ryb25nPnRoZSBzb3VyY2U8L3N0cm9uZz4sIG5vdCBqdXN0IGEgcGFydGljaXBhbnQuIFRoaXMgaXMgPHN0cm9uZz5zb3ZlcmVpZ24gZGlnaXRhbCBvd25lcnNoaXA8L3N0cm9uZz4uCiAgICAgICAgPC9wPgogICAgICAgIDxzcGFuIGNsYXNzPSJoaWdobGlnaHQtdGV4dCI+CiAgICAgICAgICDinKggWW91ciBleHBlcnRpc2UuIFlvdXIgcGxhdGZvcm0uIFlvdXIgZW1waXJlLgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1ncmlkIj4KICAgICAgICAKICAgICAgICA8IS0tIFBBUlRORVIgT04gRVhJU1RJTkcgU0lURSAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtdGllciI+TGV2ZWwgMTwvZGl2PgogICAgICAgICAgPGgzPiMxIEZlYXR1cmVkIFBhcnRuZXI8L2gzPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFnbGluZSI+R2V0IGZlYXR1cmVkIG9uIGFuIGVzdGFibGlzaGVkIG1lZGlhIHNpdGU8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPHA+CiAgICAgICAgICAgIEJlIHRoZSA8c3Ryb25nPiMxIGZlYXR1cmVkIHBhcnRuZXI8L3N0cm9uZz4gb24gb25lIG9mIG91ciBlc3RhYmxpc2hlZCBuZXdzIGFuZCBtZWRpYSBwbGF0Zm9ybXMuIFlvdXIgc3RvcnkuIFlvdXIgZXhwZXJ0aXNlLiBBbXBsaWZpZWQgdG8gYW4gZXhpc3RpbmcgYXVkaWVuY2UuCiAgICAgICAgICA8L3A+CiAgICAgICAgICAKICAgICAgICAgIDx1bCBjbGFzcz0ibWVkaWEtZmVhdHVyZXMiPgogICAgICAgICAgICA8bGk+RmVhdHVyZWQgYXJ0aWNsZSBzcG90bGlnaHQ8L2xpPgogICAgICAgICAgICA8bGk+UGVybWFuZW50IHByb2ZpbGUgcGFnZTwvbGk+CiAgICAgICAgICAgIDxsaT5Nb250aGx5IGZlYXR1cmVkIGNvbnRlbnQ8L2xpPgogICAgICAgICAgICA8bGk+RGlyZWN0IGF1ZGllbmNlIGFjY2VzczwvbGk+CiAgICAgICAgICAgIDxsaT5JbnN0YW50IGNyZWRpYmlsaXR5IGJvb3N0PC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gY2xhc3M9Im1lZGlhLWN0YSIgb25jbGljaz0id2luZG93LmxvY2F0aW9uLmhyZWY9J2h0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9jb250YWN0JyI+CiAgICAgICAgICAgIExlYXJuIE1vcmUg4oaSCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIENPLVNQT05TT1IgQ0hBTk5FTCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtdGllciI+TGV2ZWwgMjwvZGl2PgogICAgICAgICAgPGgzPkNvLVNwb25zb3IgQ2hhbm5lbDwvaDM+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdsaW5lIj5TaGFyZSBhIG5pY2hlIGNoYW5uZWwgd2l0aCBpbmR1c3RyeSBwZWVyczwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8cD4KICAgICAgICAgICAgSm9pbiBmb3JjZXMgd2l0aCA8c3Ryb25nPmNvbXBsZW1lbnRhcnkgYnVzaW5lc3Nlczwvc3Ryb25nPiAobm90IGNvbXBldGl0b3JzISkgaW4geW91ciBpbmR1c3RyeS4gVHJhbnNwb3J0YXRpb24uIEhvbWUgc2VydmljZXMuIEhlYWx0aCAmIHdlbGxuZXNzLiBTaGFyZSB0aGUgc3BvdGxpZ2h0LiBTaGFyZSB0aGUgYXV0aG9yaXR5LgogICAgICAgICAgPC9wPgogICAgICAgICAgCiAgICAgICAgICA8dWwgY2xhc3M9Im1lZGlhLWZlYXR1cmVzIj4KICAgICAgICAgICAgPGxpPkluZHVzdHJ5LWZvY3VzZWQgY2hhbm5lbDwvbGk+CiAgICAgICAgICAgIDxsaT5NdWx0aXBsZSBleHBlcnQgdm9pY2VzPC9saT4KICAgICAgICAgICAgPGxpPlNoYXJlZCBhdWRpZW5jZSBidWlsZGluZzwvbGk+CiAgICAgICAgICAgIDxsaT5Mb3dlciBpbmRpdmlkdWFsIGludmVzdG1lbnQ8L2xpPgogICAgICAgICAgICA8bGk+Q29sbGVjdGl2ZSBhdXRob3JpdHkgcG9zaXRpb25pbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibWVkaWEtY3RhIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb24uaHJlZj0naHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhL2NvbnRhY3QnIj4KICAgICAgICAgICAgRXhwbG9yZSBDby1TcG9uc29yc2hpcCDihpIKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gT1dOIFlPVVIgQ0hBTk5FTCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jYXJkIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtdGllciI+TGV2ZWwgMzwvZGl2PgogICAgICAgICAgPGgzPk93biBZb3VyIENoYW5uZWw8L2gzPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFnbGluZSI+Q29tcGxldGUgbWVkaWEgc292ZXJlaWdudHk8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPHA+CiAgICAgICAgICAgIFRoaXMgaXMgdGhlIDxzdHJvbmc+dWx0aW1hdGUgbW92ZTwvc3Ryb25nPi4gWW91ciBvd24gbmV3cyBhbmQgbWVkaWEgY2hhbm5lbC4gWW91ciBjb250ZW50LiBZb3VyIHZvaWNlLiBZb3VyIGVtcGlyZS4gPHN0cm9uZz5Zb3UgYXJlIHRoZSBhdXRob3JpdHk8L3N0cm9uZz4uIFlvdSBhcmUgdGhlIHNvdXJjZS4gWW91IG93biB0aGUgY29udmVyc2F0aW9uLgogICAgICAgICAgPC9wPgogICAgICAgICAgCiAgICAgICAgICA8dWwgY2xhc3M9Im1lZGlhLWZlYXR1cmVzIj4KICAgICAgICAgICAgPGxpPkZ1bGx5IGJyYW5kZWQgbWVkaWEgc2l0ZTwvbGk+CiAgICAgICAgICAgIDxsaT5Db21wbGV0ZSBjb250ZW50IGNvbnRyb2w8L2xpPgogICAgICAgICAgICA8bGk+QnVpbGQgWU9VUiBhdWRpZW5jZTwvbGk+CiAgICAgICAgICAgIDxsaT5Nb25ldGl6YXRpb24gb3Bwb3J0dW5pdGllczwvbGk+CiAgICAgICAgICAgIDxsaT5VbHRpbWF0ZSBhdXRob3JpdHkgcG9zaXRpb25pbmc8L2xpPgogICAgICAgICAgICA8bGk+TGVnYWN5LWJ1aWxkaW5nIGFzc2V0PC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gY2xhc3M9Im1lZGlhLWN0YSIgb25jbGljaz0id2luZG93LmxvY2F0aW9uLmhyZWY9J2h0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9tZWRpYS1jb25zdWx0YXRpb24nIj4KICAgICAgICAgICAgQm9vayBTdHJhdGVneSBDYWxsIOKGkgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOiA0cmVtOyI+CiAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMS4zcmVtOyBvcGFjaXR5OiAwLjk7IG1heC13aWR0aDogODAwcHg7IG1hcmdpbjogMCBhdXRvOyI+CiAgICAgICAgICA8c3Ryb25nPk5vdCBzdXJlIHdoaWNoIGxldmVsIGlzIHJpZ2h0IGZvciB5b3U/PC9zdHJvbmc+IExldCdzIHRhbGsuIFdlJ2xsIHNob3cgeW91IHdoYXQncyBwb3NzaWJsZSwgd2hhdCBtYWtlcyBzZW5zZSBmb3IgeW91ciBnb2FscywgYW5kIGhvdyB0byBsZXZlcmFnZSB5b3VyIGV4cGVydGlzZSBpbnRvIHRydWUgZGlnaXRhbCBhdXRob3JpdHkuCiAgICAgICAgPC9wPgogICAgICA8L2Rpdj4KICAgICAgCiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDwhLS0gQ09OU1VMVEFUSU9OIENUQSAtLT4KICA8c2VjdGlvbiBjbGFzcz0iY29uc3VsdGF0aW9uLWN0YSI+CiAgICA8ZGl2IGNsYXNzPSJjb25zdWx0YXRpb24tY29udGFpbmVyIj4KICAgICAgPGgyPlJlYWR5IHRvIEJ1aWxkIFlvdXIgRGlnaXRhbCBFbXBpcmU/PC9oMj4KICAgICAgPHA+CiAgICAgICAgRnJvbSBhIHNpbXBsZSBidXNpbmVzcyBjYXJkIHRvIHlvdXIgb3duIG1lZGlhIGNoYW5uZWzigJR3ZSd2ZSBidWlsdCB0aGUgZW50aXJlIGVjb3N5c3RlbS4gTGV0J3MgdGFsayBhYm91dCB3aGVyZSB5b3UgYXJlIGFuZCB3aGVyZSB5b3Ugd2FudCB0byBnby4KICAgICAgPC9wPgogICAgICA8YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EvY29udGFjdCIgY2xhc3M9ImNvbnN1bHRhdGlvbi1idXR0b24iPgogICAgICAgIEJvb2sgWW91ciBGcmVlIFN0cmF0ZWd5IENhbGwg4oaSCiAgICAgIDwvYT4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPCEtLSBGT09URVIgLS0+CiAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJmb290ZXItZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbHVtbiI+CiAgICAgICAgICA8aDQ+SGFuZHNoYWtlLmFmcmljYTwvaDQ+CiAgICAgICAgICA8cCBzdHlsZT0ib3BhY2l0eTogMC45OyBsaW5lLWhlaWdodDogMS43OyI+CiAgICAgICAgICAgIERpZ2l0YWwgc292ZXJlaWdudHkgZm9yIEFmcmljYW4gZW50cmVwcmVuZXVycy4gRnJvbSBidXNpbmVzcyBjYXJkcyB0byBtZWRpYSBlbXBpcmVzLgogICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb2x1bW4iPgogICAgICAgICAgPGg0PlF1aWNrIExpbmtzPC9oND4KICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS8iPkhvbWU8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9kaXNjb3ZlciI+RGlzY292ZXI8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9nYWxsZXJ5Ij5HYWxsZXJ5PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EvcHJpY2luZyI+UHJpY2luZzwvYT48L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29sdW1uIj4KICAgICAgICAgIDxoND5SZXNvdXJjZXM8L2g0PgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhL2RpZ2l0YWwtZW1waXJlIj5Zb3VyIFBvc3NpYmlsaXRpZXM8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9hYm91dCI+QWJvdXQ8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9jb250YWN0Ij5Db250YWN0PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EvbWVkaWEtZ3VpZGUiPk1lZGlhIEd1aWRlPC9hPjwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb2x1bW4iPgogICAgICAgICAgPGg0PkdldCBJbiBUb3VjaDwvaDQ+CiAgICAgICAgICA8cCBzdHlsZT0ib3BhY2l0eTogMC45OyI+8J+TpyBoZWxsb0BoYW5kc2hha2UuYWZyaWNhPC9wPgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsiPvCfk7EgV2hhdHNBcHA8L3A+CiAgICAgICAgICA8cCBzdHlsZT0ib3BhY2l0eTogMC45OyI+8J+VkiBNb24tRnJpLCA5QU0tNVBNIEVBVDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b20iPgogICAgICAgIDxwPsKpIDIwMjUgSGFuZHNoYWtlLmFmcmljYSDigKIgQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD4KICAgICAgICA8cD5Qb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtcy5pbyI+RHluYW1pYyBQYXJhZGlnbXM8L2E+PC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZm9vdGVyPgoKICA8IS0tIFNDUklQVFMgLS0+CiAgPHNjcmlwdD4KICAgIC8vIE1vYmlsZSBtZW51CiAgICBmdW5jdGlvbiB0b2dnbGVNZW51KCkgewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2TGlua3MnKS5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnKTsKICAgIH0KICAgIAogICAgLy8gU2Nyb2xsIGFuaW1hdGlvbnMKICAgIGNvbnN0IG9ic2VydmVyT3B0aW9ucyA9IHsKICAgICAgdGhyZXNob2xkOiAwLjEsCiAgICAgIHJvb3RNYXJnaW46ICcwcHggMHB4IC0xMDBweCAwcHgnCiAgICB9OwogICAgCiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlbnRyaWVzKSB7CiAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7CiAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7CiAgICAgICAgICBlbnRyeS50YXJnZXQuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LCBvYnNlcnZlck9wdGlvbnMpOwogICAgCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmFkZS1pbicpLmZvckVhY2goZWwgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbCkpOwogICAgCiAgICAvLyBTZWN1cml0eQogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBlID0+IGUucHJldmVudERlZmF1bHQoKSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICBpZiAoZS5rZXlDb2RlID09PSAxMjMgfHwgKGUuY3RybEtleSAmJiBlLnNoaWZ0S2V5ICYmIGUua2V5Q29kZSA9PT0gNzMpKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPg==","embed":""}
Pricing - Your Digital Sovereignty Starts Here | Handshake.africa
Handshake.africa
  • Home
  • Discover
  • Gallery
  • Pricing
  • Contact

Your Digital Sovereignty Starts Here

From a simple business card to owning your own media empire. Every sovereign journey begins with a single step. Choose yours.

πŸš€ From $97/year to Media Ownership
Digital Business Cards

Your Professional Identity, Elevated

Choose the tier that matches where you areβ€”and where you're going. All cards are mobile-optimized, trackable, and instantly shareable.

Essential
Perfect for getting started
$97 /year
  • Professional digital card
  • Your brand colors
  • Photo, bio (150 words)
  • 5 social media links
  • Call, Email, WhatsApp buttons
  • Custom QR code
  • Basic analytics
  • 1 update per year
  • Video introduction
  • Appointment booking
Start Essential β†’
⭐ Most Popular
Professional
For serious networkers
$297 /year
  • Everything in Essential PLUS:
  • Category subdomain (authority!)
  • Video introduction (30-60s)
  • Appointment booking
  • 8 social media links
  • Premium QR designs (3 options)
  • Enhanced analytics
  • Priority 24-hour delivery
  • Personal subdomain
  • Lead capture form
Choose Professional β†’
πŸ’Ž Best Value
Premium
Your complete digital brand
$697 /year
  • Everything in Professional PLUS:
  • Personal subdomain (max authority)
  • Custom branded design
  • Multiple sections (portfolio, etc)
  • Video + media embeds
  • Lead capture form
  • Unlimited social links
  • Featured in directory
  • 2 major updates per year
  • Priority support
Go Premium β†’

🀝 Help Others Climb As You Climb

Your digital card is powerful. But what about the simple act of connection? Sometimes people just need a quick way to reach youβ€”a WhatsApp number, your Instagram, your website, your newsletter.

That's where QR codes become magic. They're instant. They're shareable. They work offline. And they help others find you in the simplest way possible.

Because when you help others reach you, you help them reach their dreams. Let's make connection effortless.

πŸ“±

Simple Connect

$25

One link. One scan. Instant connection. Perfect for a WhatsApp number, Instagram, website, or newsletter signup.

  • ONE link of your choice
  • Standard QR code design
  • High-resolution download
  • Print-ready formats
  • Works offline forever
🎨

Branded Connect

$75

Your colors. Your logo in the center. Your name. Your brand. A QR code that's unmistakably YOU.

  • ONE link of your choice
  • Your brand colors
  • Your logo in center
  • Your name included
  • Premium design
  • High-res download
✨

Shaped Connect

$150

Stand out with shaped QR codes! Choose from cars, houses, hearts, stars, and more. Your industry, your personality, your signature.

  • ONE link of your choice
  • Choose your shape (car, home, etc)
  • Your brand colors
  • Your logo integrated
  • Ultra-premium design
  • Multiple format exports

πŸ‘‘ Beyond a Website: Own Your Voice, Own Your Authority

A website is great. Social media is powerful. But nothing builds authority like owning your own media channel.

This is how you go from "another business" to "THE voice people trust." This is how you become the source, not just a participant. This is sovereign digital ownership.

✨ Your expertise. Your platform. Your empire.
Level 1

#1 Featured Partner

Get featured on an established media site

Be the #1 featured partner on one of our established news and media platforms. Your story. Your expertise. Amplified to an existing audience.

  • Featured article spotlight
  • Permanent profile page
  • Monthly featured content
  • Direct audience access
  • Instant credibility boost
Level 2

Co-Sponsor Channel

Share a niche channel with industry peers

Join forces with complementary businesses (not competitors!) in your industry. Transportation. Home services. Health & wellness. Share the spotlight. Share the authority.

  • Industry-focused channel
  • Multiple expert voices
  • Shared audience building
  • Lower individual investment
  • Collective authority positioning
Level 3

Own Your Channel

Complete media sovereignty

This is the ultimate move. Your own news and media channel. Your content. Your voice. Your empire. You are the authority. You are the source. You own the conversation.

  • Fully branded media site
  • Complete content control
  • Build YOUR audience
  • Monetization opportunities
  • Ultimate authority positioning
  • Legacy-building asset

Not sure which level is right for you? Let's talk. We'll show you what's possible, what makes sense for your goals, and how to leverage your expertise into true digital authority.

Ready to Build Your Digital Empire?

From a simple business card to your own media channelβ€”we've built the entire ecosystem. Let's talk about where you are and where you want to go.

Book Your Free Strategy Call β†’

Handshake.africa

Digital sovereignty for African entrepreneurs. From business cards to media empires.

Quick Links

  • Home
  • Discover
  • Gallery
  • Pricing

Resources

  • Your Possibilities
  • About
  • Contact
  • Media Guide

Get In Touch

πŸ“§ hello@handshake.africa

πŸ“± WhatsApp

πŸ•’ Mon-Fri, 9AM-5PM EAT

Β© 2025 Handshake.africa β€’ All Rights Reserved

Powered by Dynamic Paradigms

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

warning