Files
hyperframes/docs/public/catalog/components/press-ripple.json
Miguel Ángel fb4189ca72 fix(catalog): match preview length to authored compositions (#5533)
* fix(catalog): match preview length to authored compositions

* fix(catalog): derive undeclared preview duration from motion
2026-10-13 05:51:02 +00:00

1 line
24 KiB
JSON

{"html":"<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=1920, height=1080\" />\n <script src=\"https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js\"></script>\n <style>* { margin: 0; padding: 0; } html, body { width: 1920px; height: 1080px; overflow: hidden; background: #0a0a0a; }\n [data-composition-src] { inset: 0; display: grid; place-items: center stretch; box-sizing: border-box; padding: 98px; }</style>\n</head>\n<body>\n <div data-composition-id=\"preview-root\" data-width=\"1920\" data-height=\"1080\" data-start=\"0\" data-duration=\"2.4\" data-hf-theme=\"dark\">\n <div data-composition-id=\"press-ripple\" data-composition-src=\"data:text/html;base64,PCFkb2N0eXBlIGh0bWw+CjwhLS0KICBwcmVzcy1yaXBwbGU6IEh5cGVyRnJhbWVzIHZpZGVvIHByaW1pdGl2ZSAocHJvZHVjdCBkZW1vIC8gcGF5b2ZmKQoKICBBIGN1cnNvciBkZWNlbC1hcnJpdmVzIGZyb20gb2ZmLXN0YWdlIChwb3dlcjMub3V0LCBpdCBhcnJpdmVzLCBuZXZlciBwYXNzZXMKICB0aHJvdWdoKSwgbGFuZHMgYSBmZXcgcHggb2ZmLWNlbnRlciBvbiBhIGNhbGxlci1wb3NpdGlvbmVkIHRhcmdldCB6b25lLCB0aGUKICB0YXJnZXQgYW5kIGN1cnNvciBjb21wcmVzcyBpbiBsb2Nrc3RlcCwgdHdvIHNtYWxsIGNsaWNrIHJpbmdzIGdyb3cgZnJvbSB0aGUKICBjdXJzb3IgdGlwIHdoaWxlIHRoZSBsYWJlbCBzd2FwcyB0byBhIGNoZWNrIHBsdXMgdGhlIGRvbmUgbGFiZWwsIHRoZW4gdGhlCiAgY3Vyc29yIGV4aXRzIG9mZi1zdGFnZSB0aGUgd2F5IGl0IGNhbWUuIFRoZSBjb25maXJtZWQgc3RhdGUgY2FycmllcyB0aGUgaG9sZDsKICB0aGUgY3Vyc29yIG5ldmVyIGNhbXBzIG9uIHRoZSBsYWJlbC4KCiAgVGhlIHRhcmdldCBpcyBhIHNsb3Q6IHRoZSBlbGVtZW50IG1hcmtlZCBkYXRhLXNsb3Q9InRhcmdldCIgaXMgdGhlIHByZXNzCiAgc3VyZmFjZS4gSXRzIGRlZmF1bHQgY29udGVudCBpcyBhIHRva2VuLXN0eWxlZCBwaWxsIGNhcnJ5aW5nIHRoZSBsYWJlbAogIHZhcmlhYmxlOyByZXBsYWNlIHRoZSBzbG90J3MgY2hpbGRyZW4gdG8gcHJlc3MgYW55dGhpbmcgZWxzZS4gVGhlIHNsb3QKICB3cmFwcGVyIGZsaXBzIGRhdGEtc3RhdGU9ImlkbGUiIHRvIGRhdGEtc3RhdGU9InByZXNzZWQiIGF0IHRoZSBwcmVzcywgc28KICBjdXN0b20gc2xvdCBjb250ZW50IGNhbiBzdHlsZSBpdHMgb3duIHByZXNzZWQgbG9vay4KCiAgVmFyaWFibGVzOgogICAgbGFiZWw6IHRleHQgaW5zaWRlIHRoZSBkZWZhdWx0IHBpbGwgKGlnbm9yZWQgd2hlbiB0aGUgc2xvdCBpcyByZXBsYWNlZCkKICAgIGRvbmVfbGFiZWw6IHRleHQgYmVzaWRlIHRoZSBjaGVjayBhZnRlciB0aGUgcHJlc3MgKGRlZmF1bHQgcGlsbCBvbmx5KQogICAgdGFyZ2V0X3gsIHRhcmdldF95OiB6b25lIGNlbnRlciBhcyBhIHBlcmNlbnQgb2YgdGhlIGhvc3QgYm94CiAgICBwcmVzc19hdDogc2Vjb25kcyBmcm9tIG1vdW50IHN0YXJ0IHdoZW4gdGhlIGNvbXByZXNzaW9uIGJlZ2lucwogICAgY3Vyc29yOiBsaWdodCBvciBkYXJrIHBvaW50ZXIKICAgIGFjY2VudDogZ3JlZW4sIGJsdWUsIG9yIHZpb2xldCBpbmsgKGNsaWNrIHJpbmdzICsgY29uZmlybWF0aW9uIGNoZWNrKQogICAgZXhpdDogbm9uZSwgZmFkZSwgb3IgdXAgKGRlZmF1bHQgbm9uZTsgaG9sZHMgZW5kIGZpbG1zKQoKICBFbnZlbG9wZSAoZWxhc3RpYyBIT0xELCBuZXZlciB0aW1lLXNjYWxlZCk6CiAgICBJTiAgID0gZW50cmFuY2Ugc2V0dGxlLCBjdXJzb3IgYXJyaXZhbCwgcHJlc3MsIHJlbGVhc2UgcmlwcGxlLCBjdXJzb3IgZXhpdAogICAgSE9MRCA9IHRoZSByZXN0IG9mIEQsIGNvbXBsZXRlbHkgc3RpbGwgb24gdGhlIHByZXNzZWQgc3RhdGUKICAgIE9VVCAgPSBub25lIGJ5IGRlZmF1bHQ7IDAuNDVzIGZhZGUgb3IgZmFkZS11cCB3aGVuIGV4aXQgaXMgc2V0CiAgICBwcmVzc19hdCBjbGFtcHMgaW50byB0aGUgd2luZG93IHRoYXQga2VlcHMgdGhlIHdob2xlIGdlc3R1cmUgaW5zaWRlIEQuCgogIFN5bmMgcG9pbnQ6IHRoZSBwcmVzcyBsYW5kcyBhdCBwcmVzc19hdCAoZGVmYXVsdCAwLjlzKS4KCiAgTW91bnQgY29udHJhY3Q6IHRoZSBydW50aW1lIGNsb25lcyBvbmx5IHRoaXMgdGVtcGxhdGUuICNyb290IGZpbGxzIHRoZSBob3N0CiAgYm94LCBlc3RhYmxpc2hlcyB0aGUgY29udGFpbmVyIHF1ZXJ5IGJhc2lzLCBoYXMgbm8gZGF0YS13aWR0aCBvciBkYXRhLWhlaWdodCwKICBhbmQgcmVnaXN0ZXJzIG9uZSBwYXVzZWQgdGltZWxpbmUgdW5kZXIgdGhlIGxpdGVyYWwgcHJlc3MtcmlwcGxlIGtleS4KLS0+CjxodG1sCiAgbGFuZz0iZW4iCiAgZGF0YS1jb21wb3NpdGlvbi1pZD0icHJlc3MtcmlwcGxlIgogIGRhdGEtY29tcG9zaXRpb24tZHVyYXRpb249IjIuNCIKICBkYXRhLWNvbXBvc2l0aW9uLXZhcmlhYmxlcz0nWwogICAgeyAiaWQiOiAibGFiZWwiLCAidHlwZSI6ICJzdHJpbmciLCAicm9sZSI6ICJjb250ZW50IiwgImxhYmVsIjogIkxhYmVsIiwgImRlc2NyaXB0aW9uIjogIlRleHQgaW5zaWRlIHRoZSBkZWZhdWx0IHBpbGwgdGFyZ2V0LiIsICJkZWZhdWx0IjogIkdldCBzdGFydGVkIiB9LAogICAgeyAiaWQiOiAiZG9uZV9sYWJlbCIsICJ0eXBlIjogInN0cmluZyIsICJyb2xlIjogImNvbnRlbnQiLCAibGFiZWwiOiAiRG9uZSBsYWJlbCIsICJkZXNjcmlwdGlvbiI6ICJUZXh0IGJlc2lkZSB0aGUgY2hlY2sgb25jZSB0aGUgZGVmYXVsdCBwaWxsIGlzIHByZXNzZWQuIiwgImRlZmF1bHQiOiAiU2F2ZWQiIH0sCiAgICB7ICJpZCI6ICJ0YXJnZXRfeCIsICJ0eXBlIjogIm51bWJlciIsICJyb2xlIjogImxheW91dCIsICJsYWJlbCI6ICJUYXJnZXQgWCIsICJkZXNjcmlwdGlvbiI6ICJab25lIGNlbnRlciwgcGVyY2VudCBvZiBob3N0IHdpZHRoLiIsICJkZWZhdWx0IjogNTAsICJtaW4iOiA4LCAibWF4IjogOTIsICJzdGVwIjogMSwgInVuaXQiOiAiJSIgfSwKICAgIHsgImlkIjogInRhcmdldF95IiwgInR5cGUiOiAibnVtYmVyIiwgInJvbGUiOiAibGF5b3V0IiwgImxhYmVsIjogIlRhcmdldCBZIiwgImRlc2NyaXB0aW9uIjogIlpvbmUgY2VudGVyLCBwZXJjZW50IG9mIGhvc3QgaGVpZ2h0LiIsICJkZWZhdWx0IjogNTAsICJtaW4iOiA4LCAibWF4IjogOTIsICJzdGVwIjogMSwgInVuaXQiOiAiJSIgfSwKICAgIHsgImlkIjogInByZXNzX2F0IiwgInR5cGUiOiAibnVtYmVyIiwgInJvbGUiOiAidGltaW5nIiwgImxhYmVsIjogIlByZXNzIGF0IiwgImRlc2NyaXB0aW9uIjogIlNlY29uZHMgZnJvbSBtb3VudCBzdGFydCB3aGVuIHRoZSBwcmVzcyBiZWdpbnMuIiwgImRlZmF1bHQiOiAwLjksICJtaW4iOiAwLjksICJtYXgiOiAxMCwgInN0ZXAiOiAwLjEsICJ1bml0IjogInMiIH0sCiAgICB7ICJpZCI6ICJjdXJzb3IiLCAidHlwZSI6ICJlbnVtIiwgInJvbGUiOiAic3R5bGUiLCAibGFiZWwiOiAiQ3Vyc29yIiwgImRlc2NyaXB0aW9uIjogIlBvaW50ZXIgdG9uZS4iLCAiZGVmYXVsdCI6ICJsaWdodCIsICJvcHRpb25zIjogW3sgInZhbHVlIjogImxpZ2h0IiwgImxhYmVsIjogIkxpZ2h0IiB9LCB7ICJ2YWx1ZSI6ICJkYXJrIiwgImxhYmVsIjogIkRhcmsiIH1dIH0sCiAgICB7ICJpZCI6ICJhY2NlbnQiLCAidHlwZSI6ICJlbnVtIiwgInJvbGUiOiAic3R5bGUiLCAibGFiZWwiOiAiQWNjZW50IiwgImRlc2NyaXB0aW9uIjogIkNvbnRyYWN0IGNvbG9yIGZvciB0aGUgY2xpY2sgcmluZ3MgYW5kIHRoZSBjb25maXJtYXRpb24gY2hlY2suIiwgImRlZmF1bHQiOiAiZ3JlZW4iLCAib3B0aW9ucyI6IFt7ICJ2YWx1ZSI6ICJncmVlbiIsICJsYWJlbCI6ICJHcmVlbiIgfSwgeyAidmFsdWUiOiAiYmx1ZSIsICJsYWJlbCI6ICJCbHVlIiB9LCB7ICJ2YWx1ZSI6ICJ2aW9sZXQiLCAibGFiZWwiOiAiVmlvbGV0IiB9XSB9LAogICAgeyAiaWQiOiAiZXhpdCIsICJ0eXBlIjogImVudW0iLCAicm9sZSI6ICJzdHlsZSIsICJsYWJlbCI6ICJFeGl0IiwgImRlc2NyaXB0aW9uIjogIkhvdyB0aGUgZnJhbWUgbGVhdmVzLiBOb25lIGhvbGRzIHRoZSBwcmVzc2VkIHN0YXRlLiIsICJkZWZhdWx0IjogIm5vbmUiLCAib3B0aW9ucyI6IFt7ICJ2YWx1ZSI6ICJub25lIiwgImxhYmVsIjogIk5vbmUiIH0sIHsgInZhbHVlIjogImZhZGUiLCAibGFiZWwiOiAiRmFkZSIgfSwgeyAidmFsdWUiOiAidXAiLCAibGFiZWwiOiAiRmFkZSB1cCIgfV0gfQogIF0nCj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgogICAgPHRpdGxlPlByZXNzIFJpcHBsZTwvdGl0bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHRlbXBsYXRlPgogICAgICA8ZGl2IGlkPSJyb290IiBkYXRhLWNvbXBvc2l0aW9uLWlkPSJwcmVzcy1yaXBwbGUiIGRhdGEtZHVyYXRpb249IjIuNCIgZGF0YS1mcHM9IjMwIj4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAqLAogICAgICAgICAgKjo6YmVmb3JlLAogICAgICAgICAgKjo6YWZ0ZXIgewogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgfQoKICAgICAgICAgICNyb290IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgY29udGFpbmVyLXR5cGU6IHNpemU7CiAgICAgICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWZnLCAjZjhmYWZjKTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSwgSW50ZXIsIHN5c3RlbS11aSwgc2Fucy1zZXJpZik7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgfQoKICAgICAgICAgIC5wci1jbGlwIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmcsICMwYjBjMGUpOwogICAgICAgICAgfQoKICAgICAgICAgIC5wci1zdGFnZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICB9CgogICAgICAgICAgLyogQ2FsbGVyLXBvc2l0aW9uZWQgdGFyZ2V0IHpvbmU7IC0tcHIteCAvIC0tcHIteSBjb21lIGZyb20gdGhlCiAgICAgICAgICAgICB0YXJnZXRfeCAvIHRhcmdldF95IHZhcmlhYmxlcy4gKi8KICAgICAgICAgIC5wci16b25lIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXByLXgsIDUwKSAqIDFjcXcpOwogICAgICAgICAgICB0b3A6IGNhbGModmFyKC0tcHIteSwgNTApICogMWNxaCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgfQoKICAgICAgICAgIC8qIENsaWNrIHJpbmdzIGFyb3VuZCB0aGUgY3Vyc29yIHRpcDsgdGhlIHNjcmlwdCBzZXRzIGN4L2N5L3IgaW4gcHguICovCiAgICAgICAgICAucHItcmluZ3MgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICAgIH0KCiAgICAgICAgICAucHItcmluZyB7CiAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgIHN0cm9rZTogdmFyKC0tcHItYWNjZW50LCAjNzFmNWE3KTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIH0KCiAgICAgICAgICAvKiBHU0FQIG93bnMgdGhpcyB3cmFwcGVyJ3Mgb3BhY2l0eS95IChlbnRyYW5jZSkgYW5kIHNjYWxlIChwcmVzcykuICovCiAgICAgICAgICAucHItYWN0b3IgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgICB9CgogICAgICAgICAgLnByLXBpbGwgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjZS0yLCAyLjZjcW1pbikgY2FsYyh2YXIoLS1zcGFjZS0yLCAyLjZjcW1pbikgKiAyLjEpOwogICAgICAgICAgICBib3JkZXI6IDAuMjJjcW1pbiBzb2xpZCB2YXIoLS1ib3JkZXIsICMzNDNhNDYpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSwgIzE0MTcxYyk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1mZywgI2Y4ZmFmYyk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHksIEludGVyLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWYpOwogICAgICAgICAgICBmb250LXNpemU6IDQuNmNxbWluOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxNWVtOwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgfQoKICAgICAgICAgIC8qIFRoZSBsYWJlbCBzdGF5cyBpbiBmbG93IHNvIHRoZSBwaWxsIGtlZXBzIGl0cyB3aWR0aDsgdGhlIGRvbmUKICAgICAgICAgICAgIHN0YXRlIGlzIGxheWVyZWQgb3ZlciBpdCBhbmQgY3Jvc3MtZmFkZXMgaW4uICovCiAgICAgICAgICAucHItbGFiZWwgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICB9CgogICAgICAgICAgLnByLWRvbmUgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAwLjNlbTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIH0KCiAgICAgICAgICAucHItY2hlY2sgewogICAgICAgICAgICB3aWR0aDogMC45ZW07CiAgICAgICAgICAgIGhlaWdodDogMC45ZW07CiAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgIHN0cm9rZTogdmFyKC0tcHItYWNjZW50LCAjNzFmNWE3KTsKICAgICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgICB9CgogICAgICAgICAgLyogUG9pbnRlcjogdGhlIHNjcmlwdCBzaXplcyB0aGUgYm94IGFuZCBvZmZzZXRzIGl0IHNvIHRoZSBhcnJvdyB0aXAKICAgICAgICAgICAgIHNpdHMgYXQgdGhlIHN0YWdlIG9yaWdpbjsgR1NBUCB4L3kgdGhlbiBwbGFjZSB0aGUgdGlwIGl0c2VsZiBhbmQKICAgICAgICAgICAgIHRoZSBwcmVzcyBzY2FsZXMgYWJvdXQgaXQuICovCiAgICAgICAgICAucHItY3Vyc29yIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAzcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSk7CiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgICB9CgogICAgICAgICAgLnByLWN1cnNvciBzdmcgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIH0KICAgICAgICA8L3N0eWxlPgoKICAgICAgICA8ZGl2CiAgICAgICAgICBpZD0icHJlc3MtcmlwcGxlLWNsaXAiCiAgICAgICAgICBjbGFzcz0icHItY2xpcCBjbGlwIgogICAgICAgICAgZGF0YS1zdGFydD0iMCIKICAgICAgICAgIGRhdGEtZHVyYXRpb249IjIuNCIKICAgICAgICAgIGRhdGEtdHJhY2staW5kZXg9IjAiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0icHItc3RhZ2UiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwci16b25lIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwci1hY3RvciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwci10YXJnZXQtc2xvdCIgZGF0YS1zbG90PSJ0YXJnZXQiIGRhdGEtc3RhdGU9ImlkbGUiPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHItcGlsbCIKICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9InByLWxhYmVsIj48L3NwYW4KICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9InByLWRvbmUiCiAgICAgICAgICAgICAgICAgICAgICA+PHN2ZyBjbGFzcz0icHItY2hlY2siIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxMi41IEw5LjUgMTcgTDE5IDcuNSI+PC9wYXRoPjwvc3ZnCiAgICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9InByLWRvbmUtdGV4dCI+PC9zcGFuPjwvc3BhbgogICAgICAgICAgICAgICAgICA+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJwci1yaW5ncyIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InByLXJpbmciPjwvY2lyY2xlPgogICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InByLXJpbmciPjwvY2lyY2xlPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHItY3Vyc29yIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgY2xhc3M9InByLWN1cnNvci1wYXRoIgogICAgICAgICAgICAgICAgICBkPSJNNSAzIEw1IDE5IEw5IDE1IEwxMiAyMiBMMTUgMjAuNSBMMTEuNSAxNCBMMTggMTQgWiIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPSIxLjQiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICAgICAgICAgICA+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9nc2FwQDMuMTQuMi9kaXN0L2dzYXAubWluLmpzIj48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0PgogICAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgInVzZSBzdHJpY3QiOwoKICAgICAgICAgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vdCIpOwogICAgICAgICAgICB2YXIgc3RhZ2UgPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5wci1zdGFnZSIpOwogICAgICAgICAgICB2YXIgcmluZ3MgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wci1yaW5nIik7CiAgICAgICAgICAgIHZhciBhY3RvciA9IHJvb3QucXVlcnlTZWxlY3RvcigiLnByLWFjdG9yIik7CiAgICAgICAgICAgIHZhciBzbG90ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIucHItdGFyZ2V0LXNsb3QiKTsKICAgICAgICAgICAgdmFyIGxhYmVsID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIucHItbGFiZWwiKTsKICAgICAgICAgICAgdmFyIGRvbmUgPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5wci1kb25lIik7CiAgICAgICAgICAgIHZhciBjdXJzb3IgPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5wci1jdXJzb3IiKTsKICAgICAgICAgICAgdmFyIGN1cnNvclBhdGggPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5wci1jdXJzb3ItcGF0aCIpOwoKICAgICAgICAgICAgdmFyIHZhcnMgPQogICAgICAgICAgICAgIHdpbmRvdy5fX2h5cGVyZnJhbWVzICYmIHdpbmRvdy5fX2h5cGVyZnJhbWVzLmdldFZhcmlhYmxlcwogICAgICAgICAgICAgICAgPyB3aW5kb3cuX19oeXBlcmZyYW1lcy5nZXRWYXJpYWJsZXMoKQogICAgICAgICAgICAgICAgOiB7fTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIG51bSh2YWx1ZSwgZmFsbGJhY2ssIG1pbiwgbWF4KSB7CiAgICAgICAgICAgICAgdmFyIG4gPSBOdW1iZXIodmFsdWUpOwogICAgICAgICAgICAgIGlmICghaXNGaW5pdGUobikpIG4gPSBmYWxsYmFjazsKICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4obWF4LCBNYXRoLm1heChtaW4sIG4pKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gdGV4dCh2YWx1ZSwgZmFsbGJhY2spIHsKICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/IGZhbGxiYWNrIDogU3RyaW5nKHZhbHVlKS50cmltKCkucmVwbGFjZSgvXHMrL2csICIgIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBsYWJlbFRleHQgPSB0ZXh0KHZhcnMubGFiZWwsICJHZXQgc3RhcnRlZCIpOwogICAgICAgICAgICB2YXIgZG9uZVRleHQgPSB0ZXh0KHZhcnMuZG9uZV9sYWJlbCwgIlNhdmVkIik7CiAgICAgICAgICAgIHZhciB0YXJnZXRYID0gbnVtKHZhcnMudGFyZ2V0X3gsIDUwLCA4LCA5Mik7CiAgICAgICAgICAgIHZhciB0YXJnZXRZID0gbnVtKHZhcnMudGFyZ2V0X3ksIDUwLCA4LCA5Mik7CiAgICAgICAgICAgIHZhciBjdXJzb3JUb25lID0gdmFycy5jdXJzb3IgPT09ICJkYXJrIiA/ICJkYXJrIiA6ICJsaWdodCI7CiAgICAgICAgICAgIHZhciBleGl0ID0gdmFycy5leGl0ID09PSAiZmFkZSIgfHwgdmFycy5leGl0ID09PSAidXAiID8gdmFycy5leGl0IDogIm5vbmUiOwoKICAgICAgICAgICAgdmFyIGFjY2VudENvbG9ycyA9IHsKICAgICAgICAgICAgICBncmVlbjogInZhcigtLWJyYW5kLCAjNzFmNWE3KSIsCiAgICAgICAgICAgICAgYmx1ZTogInZhcigtLWFjY2VudCwgIzYxYThmZikiLAogICAgICAgICAgICAgIHZpb2xldDogInZhcigtLWFjY2VudC0yLCAjYzVhM2ZmKSIsCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBhY2NlbnQgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWNjZW50Q29sb3JzLCB2YXJzLmFjY2VudCkKICAgICAgICAgICAgICA/IHZhcnMuYWNjZW50CiAgICAgICAgICAgICAgOiAiZ3JlZW4iOwogICAgICAgICAgICAvLyBUaGUgYnVuZGxlciBtaXJyb3JzIGNvbXBvc2l0aW9uIHZhcmlhYmxlcyBhcyBzY29wZWQgQ1NTIGN1c3RvbQogICAgICAgICAgICAvLyBwcm9wcywgc28gdGhpcyB1bml0J3Mgb3duIGFjY2VudCB2YXJpYWJsZSBzaGFkb3dzIHRoZSBjb250cmFjdAogICAgICAgICAgICAvLyAtLWFjY2VudCB0b2tlbiBpbnNpZGUgdGhlIHN1YnRyZWUgKCJibHVlIiBpcyBhIHZhbGlkIENTUyBjb2xvcgogICAgICAgICAgICAvLyBhbmQgd291bGQgcmVuZGVyIHB1cmUgYmx1ZSkuIFdoZW4gdGhlIHNoYWRvdyBpcyBwcmVzZW50LCBmYWxsCiAgICAgICAgICAgIC8vIGJhY2sgdG8gdGhlIGxpdGVyYWwgY29udHJhY3QgdmFsdWUgaW5zdGVhZCBvZiB2YXIoLS1hY2NlbnQpLgogICAgICAgICAgICB2YXIgY29tcHV0ZWRBY2NlbnQgPSBnZXRDb21wdXRlZFN0eWxlKHJvb3QpLmdldFByb3BlcnR5VmFsdWUoIi0tYWNjZW50IikudHJpbSgpOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgY29tcHV0ZWRBY2NlbnQgPT09ICJncmVlbiIgfHwKICAgICAgICAgICAgICBjb21wdXRlZEFjY2VudCA9PT0gImJsdWUiIHx8CiAgICAgICAgICAgICAgY29tcHV0ZWRBY2NlbnQgPT09ICJ2aW9sZXQiCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIGFjY2VudENvbG9ycy5ibHVlID0gIiM2MWE4ZmYiOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsYWJlbC50ZXh0Q29udGVudCA9IGxhYmVsVGV4dDsKICAgICAgICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yKCIucHItZG9uZS10ZXh0IikudGV4dENvbnRlbnQgPSBkb25lVGV4dDsKICAgICAgICAgICAgcm9vdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1wci1hY2NlbnQiLCBhY2NlbnRDb2xvcnNbYWNjZW50XSk7CiAgICAgICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoIi0tcHIteCIsIFN0cmluZyh0YXJnZXRYKSk7CiAgICAgICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoIi0tcHIteSIsIFN0cmluZyh0YXJnZXRZKSk7CiAgICAgICAgICAgIGlmIChjdXJzb3JUb25lID09PSAiZGFyayIpIHsKICAgICAgICAgICAgICBjdXJzb3JQYXRoLnNldEF0dHJpYnV0ZSgiZmlsbCIsICIjMTQxNDE0Iik7CiAgICAgICAgICAgICAgY3Vyc29yUGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsICIjZmZmZmZmIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgY3Vyc29yUGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiI2ZmZmZmZiIpOwogICAgICAgICAgICAgIGN1cnNvclBhdGguc2V0QXR0cmlidXRlKCJzdHJva2UiLCAiIzE0MTQxNCIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgZHVyYXRpb24gPSBNYXRoLm1heCgwLjAwMSwgcGFyc2VGbG9hdChyb290LmRhdGFzZXQuZHVyYXRpb24gfHwgIjIuNCIpKTsKICAgICAgICAgICAgdmFyIE9VVCA9IGV4aXQgPT09ICJub25lIiA/IDAgOiAwLjQ1OwogICAgICAgICAgICAvLyBQcmVzcyB0byBjdXJzb3IgZ29uZTsga2VlcCBpdCBpbnNpZGUgRCwgdGhlbiB0aGUgT1VUIHdpbmRvdyBhZnRlciBpdC4KICAgICAgICAgICAgdmFyIFRBSUwgPSAwLjg7CiAgICAgICAgICAgIHZhciBwcmVzc0F0ID0gbnVtKHZhcnMucHJlc3NfYXQsIDAuOSwgMC45LCBNYXRoLm1heCgwLjksIGR1cmF0aW9uIC0gVEFJTCAtIE9VVCkpOwogICAgICAgICAgICAvLyBIdW1hbiBhaW06IHRoZSB0aXAgbGFuZHMgYSBmZXcgcHggb2ZmIHRoZSB6b25lJ3MgdHJ1ZSBjZW50ZXIuCiAgICAgICAgICAgIHZhciBsYW5kWCA9IHRhcmdldFggKyAwLjU1OwogICAgICAgICAgICB2YXIgbGFuZFkgPSB0YXJnZXRZICsgMC44NTsKICAgICAgICAgICAgdmFyIGFycml2ZUVuZCA9IHByZXNzQXQgLSAwLjE1OwogICAgICAgICAgICB2YXIgYXJyaXZlU3RhcnQgPSBhcnJpdmVFbmQgLSAwLjQ1OwoKICAgICAgICAgICAgLy8gTW90aW9uIHJ1bnMgb24gdHJhbnNmb3JtcyBvbmx5ICh4L3kgcHgpLCBuZXZlciBsZWZ0L3RvcDogbGF5b3V0CiAgICAgICAgICAgIC8vIHByb3BzIHNuYXAgdG8gaW50ZWdlciBkZXZpY2UgcGl4ZWxzIHVuZGVyIHRoZSBzZWVrLWJ5LWZyYW1lCiAgICAgICAgICAgIC8vIGNhcHR1cmUgZW5naW5lLiBTdGFnZSBzaXplIGlzIHJlYWQgb25jZSwgc3luY2hyb25vdXNseSwgYXQgbG9hZAogICAgICAgICAgICAvLyAoZGV0ZXJtaW5pc3RpYzogZml4ZWQgdmlld3BvcnQgcGVyIHJlbmRlcikgdG8gY29udmVydCB0aGUKICAgICAgICAgICAgLy8gcGVyY2VudC1iYXNlZCBsYW5kL29mZi1zdGFnZSBwb3NpdGlvbnMgaW50byBweC4KICAgICAgICAgICAgdmFyIHN0YWdlVyA9IHJvb3QuY2xpZW50V2lkdGggfHwgMTkyMDsKICAgICAgICAgICAgdmFyIHN0YWdlSCA9IHJvb3QuY2xpZW50SGVpZ2h0IHx8IDEwODA7CiAgICAgICAgICAgIGZ1bmN0aW9uIHhBdChwZXJjZW50KSB7CiAgICAgICAgICAgICAgcmV0dXJuIChwZXJjZW50IC8gMTAwKSAqIHN0YWdlVzsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB5QXQocGVyY2VudCkgewogICAgICAgICAgICAgIHJldHVybiAocGVyY2VudCAvIDEwMCkgKiBzdGFnZUg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFNpemVzIGFyZSBhdXRob3JlZCBhdCAxOTIwIHdpZGUgYW5kIHNjYWxlIHdpdGggdGhlIHN0YWdlLgogICAgICAgICAgICB2YXIgdSA9IHN0YWdlVyAvIDE5MjA7CiAgICAgICAgICAgIHZhciBBUlJPVyA9IDY0ICogdTsKICAgICAgICAgICAgY3Vyc29yLnN0eWxlLndpZHRoID0gY3Vyc29yLnN0eWxlLmhlaWdodCA9IEFSUk9XICsgInB4IjsKICAgICAgICAgICAgY3Vyc29yLnN0eWxlLmxlZnQgPSAoLTUgLyAyNCkgKiBBUlJPVyArICJweCI7CiAgICAgICAgICAgIGN1cnNvci5zdHlsZS50b3AgPSAoLTMgLyAyNCkgKiBBUlJPVyArICJweCI7CiAgICAgICAgICAgIGN1cnNvci5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSAoNSAvIDI0KSAqIEFSUk9XICsgInB4ICIgKyAoMyAvIDI0KSAqIEFSUk9XICsgInB4IjsKCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICByaW5nc1tpXS5zZXRBdHRyaWJ1dGUoImN4IiwgeEF0KGxhbmRYKSk7CiAgICAgICAgICAgICAgcmluZ3NbaV0uc2V0QXR0cmlidXRlKCJjeSIsIHlBdChsYW5kWSkpOwogICAgICAgICAgICAgIHJpbmdzW2ldLnNldEF0dHJpYnV0ZSgiciIsIDE2ICogdSk7CiAgICAgICAgICAgICAgcmluZ3NbaV0uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCAyICogdSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0bCA9IGdzYXAudGltZWxpbmUoeyBwYXVzZWQ6IHRydWUgfSk7CgogICAgICAgICAgICAvLyBJTjogdGFyZ2V0IHNldHRsZXMgaW4uCiAgICAgICAgICAgIHRsLmZyb21UbygKICAgICAgICAgICAgICBhY3RvciwKICAgICAgICAgICAgICB7IG9wYWNpdHk6IDAsIHk6ICIyLjZjcWgiIH0sCiAgICAgICAgICAgICAgeyBvcGFjaXR5OiAxLCB5OiAwLCBkdXJhdGlvbjogMC41LCBlYXNlOiAicG93ZXIzLm91dCIgfSwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgLy8gQ3Vyc29yIGRlY2VsLWFycml2ZXMgZnJvbSBvZmYtc3RhZ2UgYm90dG9tLXJpZ2h0IHRvIGFuIGV4YWN0CiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBpdCBhcnJpdmVzLCBpdCBuZXZlciBwYXNzZXMgdGhyb3VnaC4KICAgICAgICAgICAgdGwuZnJvbVRvKAogICAgICAgICAgICAgIGN1cnNvciwKICAgICAgICAgICAgICB7IHg6IHhBdCgxMTQpLCB5OiB5QXQoMTEyKSB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHg6IHhBdChsYW5kWCksCiAgICAgICAgICAgICAgICB5OiB5QXQobGFuZFkpLAogICAgICAgICAgICAgICAgZHVyYXRpb246IGFycml2ZUVuZCAtIGFycml2ZVN0YXJ0LAogICAgICAgICAgICAgICAgZWFzZTogInBvd2VyMy5vdXQiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgYXJyaXZlU3RhcnQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAvLyBQcmVzczogdGFyZ2V0IGFuZCBjdXJzb3IgY29tcHJlc3MgaW4gbG9ja3N0ZXAgKGN1cnNvciBhYm91dCBpdHMKICAgICAgICAgICAgLy8gdGlwKSwgdGhlbiByZWxlYXNlIHdpdGggYSBzb2Z0IHNwcmluZy4KICAgICAgICAgICAgdGwudG8oW2FjdG9yLCBjdXJzb3JdLCB7IHNjYWxlOiAwLjkzLCBkdXJhdGlvbjogMC4xMiwgZWFzZTogInBvd2VyMS5pbiIgfSwgcHJlc3NBdCk7CiAgICAgICAgICAgIHRsLnNldChzbG90LCB7IGF0dHI6IHsgImRhdGEtc3RhdGUiOiAicHJlc3NlZCIgfSB9LCBwcmVzc0F0ICsgMC4xMik7CiAgICAgICAgICAgIHRsLnRvKAogICAgICAgICAgICAgIFthY3RvciwgY3Vyc29yXSwKICAgICAgICAgICAgICB7IHNjYWxlOiAxLCBkdXJhdGlvbjogMC40MiwgZWFzZTogImJhY2sub3V0KDEuOCkiIH0sCiAgICAgICAgICAgICAgcHJlc3NBdCArIDAuMTQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAvLyBDbGljazogdHdvIHJpbmdzIGdyb3cgZnJvbSB0aGUgdGlwLCB0aGUgc2Vjb25kIDYwbXMgYmVoaW5kIGFuZCBmYWludGVyLgogICAgICAgICAgICAvLyBPcGFjaXR5IGZhZGVzIGxhdGUgc28gdGhlIHJpbmcgc3RheXMgcmVhZGFibGUgd2hpbGUgaXQgZ3Jvd3MuCiAgICAgICAgICAgIFsxLCAwLjZdLmZvckVhY2goZnVuY3Rpb24gKHBlYWssIGkpIHsKICAgICAgICAgICAgICB2YXIgYXQgPSBwcmVzc0F0ICsgMC4xMiArIGkgKiAwLjA2OwogICAgICAgICAgICAgIHZhciByaW5nID0geyBkdXJhdGlvbjogMC4zMiwgaW1tZWRpYXRlUmVuZGVyOiBmYWxzZSB9OwogICAgICAgICAgICAgIHRsLmZyb21UbygKICAgICAgICAgICAgICAgIHJpbmdzW2ldLAogICAgICAgICAgICAgICAgeyBhdHRyOiB7IHI6IDE2ICogdSB9IH0sCiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHsgYXR0cjogeyByOiA3MiAqIHUgfSwgZWFzZTogInBvd2VyMi5vdXQiIH0sIHJpbmcpLAogICAgICAgICAgICAgICAgYXQsCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB0bC5mcm9tVG8oCiAgICAgICAgICAgICAgICByaW5nc1tpXSwKICAgICAgICAgICAgICAgIHsgb3BhY2l0eTogcGVhayB9LAogICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7IG9wYWNpdHk6IDAsIGVhc2U6ICJwb3dlcjEuaW4iIH0sIHJpbmcpLAogICAgICAgICAgICAgICAgYXQsCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBDb25maXJtOiB0aGUgbGFiZWwgY3Jvc3MtZmFkZXMgdG8gY2hlY2sgKyBkb25lIGxhYmVsIChpY29uIHN3YXApLgogICAgICAgICAgICB2YXIgc3dhcCA9IHsgZHVyYXRpb246IDAuMywgZWFzZTogInBvd2VyMy5vdXQiLCBpbW1lZGlhdGVSZW5kZXI6IGZhbHNlIH07CiAgICAgICAgICAgIHRsLmZyb21UbygKICAgICAgICAgICAgICBsYWJlbCwKICAgICAgICAgICAgICB7IHNjYWxlOiAxLCBvcGFjaXR5OiAxLCBmaWx0ZXI6ICJibHVyKDBweCkiIH0sCiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7IHNjYWxlOiAwLjMsIG9wYWNpdHk6IDAsIGZpbHRlcjogImJsdXIoM3B4KSIgfSwgc3dhcCksCiAgICAgICAgICAgICAgcHJlc3NBdCArIDAuMTIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRsLmZyb21UbygKICAgICAgICAgICAgICBkb25lLAogICAgICAgICAgICAgIHsgc2NhbGU6IDAuMywgb3BhY2l0eTogMCwgZmlsdGVyOiAiYmx1cigzcHgpIiB9LAogICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBzY2FsZTogMSwgb3BhY2l0eTogMSwgZmlsdGVyOiAiYmx1cigwcHgpIiB9LCBzd2FwKSwKICAgICAgICAgICAgICBwcmVzc0F0ICsgMC4xMiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIC8vIFRoZSBjdXJzb3IgZXhpdHMgb2ZmLXN0YWdlIChhY2NlbGVyYXRpbmcpIHNvIGl0IG5ldmVyIG9jY2x1ZGVzIHRoZQogICAgICAgICAgICAvLyBsYWJlbCBkdXJpbmcgdGhlIGhvbGQuIEJvdGggZW5kcG9pbnRzIGFyZSBleHBsaWNpdCBzbyByZXZlcnNlCiAgICAgICAgICAgIC8vIHNlZWtzIHJlc3RvcmUgdGhlIGxhbmRpbmcuCiAgICAgICAgICAgIHRsLmZyb21UbygKICAgICAgICAgICAgICBjdXJzb3IsCiAgICAgICAgICAgICAgeyB4OiB4QXQobGFuZFgpLCB5OiB5QXQobGFuZFkpIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgeDogeEF0KDExMiksCiAgICAgICAgICAgICAgICB5OiB5QXQoMTEwKSwKICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAwLjQsCiAgICAgICAgICAgICAgICBlYXNlOiAicG93ZXIyLmluIiwKICAgICAgICAgICAgICAgIGltbWVkaWF0ZVJlbmRlcjogZmFsc2UsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBwcmVzc0F0ICsgMC40LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgLy8gSE9MRDogZGVhZC1zdGlsbCBvbiB0aGUgcHJlc3NlZCBzdGF0ZTsgZWxhc3RpYyB3aXRoIEQuCgogICAgICAgICAgICAvLyBPVVQ6IG9ubHkgd2hlbiB0aGUgaG9zdCBvcHRzIGluOyBmcmFtZSByb290cyBvd24gdHJhbnNpdGlvbnMuCiAgICAgICAgICAgIGlmIChleGl0ICE9PSAibm9uZSIpIHsKICAgICAgICAgICAgICB2YXIgb3V0U3RhcnQgPSBNYXRoLm1heChwcmVzc0F0ICsgVEFJTCwgZHVyYXRpb24gLSBPVVQpOwogICAgICAgICAgICAgIHZhciBvdXRWYXJzID0geyBvcGFjaXR5OiAwLCBkdXJhdGlvbjogT1VULCBlYXNlOiAicG93ZXIyLmluIiB9OwogICAgICAgICAgICAgIGlmIChleGl0ID09PSAidXAiKSBvdXRWYXJzLnkgPSAiLTRjcWgiOwogICAgICAgICAgICAgIHRsLnRvKHN0YWdlLCBvdXRWYXJzLCBvdXRTdGFydCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRsLnNlZWsoMCk7CiAgICAgICAgICAgIHdpbmRvdy5fX3RpbWVsaW5lcyA9IHdpbmRvdy5fX3RpbWVsaW5lcyB8fCB7fTsKICAgICAgICAgICAgd2luZG93Ll9fdGltZWxpbmVzWyJwcmVzcy1yaXBwbGUiXSA9IHRsOwogICAgICAgICAgfSkoKTsKICAgICAgICA8L3NjcmlwdD4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogIDwvYm9keT4KPC9odG1sPgo=\" data-start=\"0\" data-duration=\"2.4\" data-track-index=\"0\" data-width=\"1920\" data-height=\"1080\"></div>\n </div>\n <script>\n window.__timelines = window.__timelines || {};\n window.__timelines[\"preview-root\"] = gsap.timeline({ paused: true });\n </script>\n</body>\n</html>"}