mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-03 12:17:03 +00:00
* fix(catalog): match preview length to authored compositions * fix(catalog): derive undeclared preview duration from motion
1 line
22 KiB
JSON
1 line
22 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=\"3.6\" data-hf-theme=\"dark\">\n <div data-composition-id=\"magnetic-cursor\" data-composition-src=\"data:text/html;base64,PCFkb2N0eXBlIGh0bWw+CjwhLS0KICBNYWduZXRpYyBDdXJzb3IgKGFjdG9yIHByaW1pdGl2ZSksIG1vdW50YWJsZSBzdWItY29tcG9zaXRpb24KCiAgY29uY2VwdDogYSB0YWJsZXQtc3R5bGUgcG9pbnRlci4gQSBzb2Z0IHRyYW5zbHVjZW50IGRvdCBnbGlkZXMgYWNyb3NzIGFuIGVkaXRvciB0b29sYmFyOwogIG5lYXIgYSBidXR0b24gaXQgaXMgcHVsbGVkIGluIGFuZCBtb3JwaHMgaW50byB0aGF0IGJ1dHRvbidzIHJvdW5kZWQgaG92ZXIgcGxhdGUgd2hpbGUgdGhlCiAgaWNvbiBsZWFucyB0b3dhcmQgdGhlIGZpbmdlciBhbmQgdGhlIHBsYXRlIHN3ZWxscyBzbGlnaHRseS4gSXQgdmlzaXRzIGJ1dHRvbnMgaW4gdHVybiwKICBwcmVzc2VzIG9uZSAodGhlIHBsYXRlIHNxdWFzaGVzLCB0aGUgaWNvbiBkaXBzIGFuZCB0dXJucyBhY2NlbnQpLCBhbmQgbGVhdmVzIGFzIGEgZG90LgoKICBtb3VudCBjb250cmFjdDogbG9hZGVkIGJ5IGEgaG9zdCB0aHJvdWdoIGRhdGEtY29tcG9zaXRpb24tc3JjOyBvbmx5IDx0ZW1wbGF0ZT4gaXMgY2xvbmVkLgogICNyb290IGZpbGxzIHRoZSBob3N0IGNsaXAgKGluc2V0OjApIGFuZCBjZW50cmVzIGl0cyBvd24gdG9vbGJhci4gU2VlIGRlbW8uaHRtbC4KCiAgdmFyaWFibGVzOgogICAgYWNjZW50IChjb2xvcikgICAgICAgICAgaWNvbiBjb2xvdXIgb2YgdGhlIHByZXNzZWQsIG5vdyBhY3RpdmUsIGJ1dHRvbgogICAgdG9uZSAobGlnaHR8ZGFyaykgICAgICAgdG9vbGJhciBhbmQgcG9pbnRlciBwYWlyaW5nCiAgICB2aXNpdHMgKHN0cmluZykgICAgICAgICBjb21tYS1zZXBhcmF0ZWQgYnV0dG9uIGluZGV4ZXMgMC01IHRoZSBwb2ludGVyIHZpc2l0cywgaW4gb3JkZXIKICAgIHByZXNzIChudW1iZXIgMS0zKSAgICAgIHdoaWNoIHZpc2l0IHByZXNzZXMgaXRzIGJ1dHRvbgoKICBlbnZlbG9wZSAoZGVmYXVsdCAzLjZzKTogZW50ZXIgMC0wLjUzcywgdGhlbiBwZXIgdmlzaXQgYSAwLjQ4cyBnbGlkZSwgYSBtb3JwaCwgYSBob2xkCiAgKHRoZSBwcmVzcyBsYW5kcyAwLjIzcyBhZnRlciBhcnJpdmFsKSwgYSByZWxlYXNlOyBleGl0IGluIHRoZSBsYXN0IDAuNjRzLiBCZWF0cyBzY2FsZSB0byBmaXQuCi0tPgo8aHRtbAogIGxhbmc9ImVuIgogIGRhdGEtY29tcG9zaXRpb24taWQ9Im1hZ25ldGljLWN1cnNvciIKICBkYXRhLWNvbXBvc2l0aW9uLWR1cmF0aW9uPSIzLjYiCiAgZGF0YS1jb21wb3NpdGlvbi12YXJpYWJsZXM9J1sKICAgIHsgImlkIjogImFjY2VudCIsICJ0eXBlIjogImNvbG9yIiwgInJvbGUiOiAic3R5bGUiLCAibGFiZWwiOiAiQWNjZW50IiwgImRlZmF1bHQiOiAiIzNiODJmNiIgfSwKICAgIHsgImlkIjogInRvbmUiLCAidHlwZSI6ICJlbnVtIiwgInJvbGUiOiAic3R5bGUiLCAibGFiZWwiOiAiVG9uZSIsICJkZWZhdWx0IjogImxpZ2h0IiwgIm9wdGlvbnMiOiBbIHsgInZhbHVlIjogImxpZ2h0IiwgImxhYmVsIjogIkxpZ2h0IHRvb2xiYXIiIH0sIHsgInZhbHVlIjogImRhcmsiLCAibGFiZWwiOiAiRGFyayB0b29sYmFyIiB9IF0gfSwKICAgIHsgImlkIjogInZpc2l0cyIsICJ0eXBlIjogInN0cmluZyIsICJyb2xlIjogImNvbnRlbnQiLCAibGFiZWwiOiAiQnV0dG9ucyB2aXNpdGVkIiwgImRlc2NyaXB0aW9uIjogIkNvbW1hLXNlcGFyYXRlZCBpbmRleGVzIDAtNTogYm9sZCwgaXRhbGljLCB1bmRlcmxpbmUsIGxpbmssIGxpc3QsIGltYWdlLiIsICJkZWZhdWx0IjogIjAsMyIgfSwKICAgIHsgImlkIjogInByZXNzIiwgInR5cGUiOiAibnVtYmVyIiwgInJvbGUiOiAidGltaW5nIiwgImxhYmVsIjogIlByZXNzZWQgdmlzaXQiLCAiZGVmYXVsdCI6IDIsICJtaW4iOiAxLCAibWF4IjogMywgInN0ZXAiOiAxIH0KICBdJwo+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDx0aXRsZT5NYWduZXRpYyBDdXJzb3I8L3RpdGxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDx0ZW1wbGF0ZT4KICAgICAgPHN0eWxlPgogICAgICAgICNyb290IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgICAgIGNvbnRhaW5lci10eXBlOiBzaXplOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHksIEludGVyLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWYpOwogICAgICAgICAgLS1tYy1iYXI6ICNmZmZmZmY7CiAgICAgICAgICAtLW1jLWluazogIzJiMmQzMzsKICAgICAgICAgIC0tbWMtZWRnZTogcmdiYSgxNSwgMTgsIDMwLCAwLjEpOwogICAgICAgICAgLS1tYy1wb2ludGVyOiA5MCwgOTQsIDEwNjsKICAgICAgICB9CiAgICAgICAgI3Jvb3RbZGF0YS10b25lPSJkYXJrIl0gewogICAgICAgICAgLS1tYy1iYXI6ICMxZDFlMjI7CiAgICAgICAgICAtLW1jLWluazogI2U5ZWFlZTsKICAgICAgICAgIC0tbWMtZWRnZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICAgICAgLS1tYy1wb2ludGVyOiAyMzUsIDIzNywgMjQyOwogICAgICAgIH0KCiAgICAgICAgLyogTm8gdHJhbnNmb3JtIGhlcmU6IGl0IHdvdWxkIG1ha2UgYSBzdGFja2luZyBjb250ZXh0IGFuZCBsaWZ0IHRoZSBwbGF0ZSBvdmVyIHRoZSBpY29ucy4gKi8KICAgICAgICAubWMtYmFyIHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDAuNmNxdzsKICAgICAgICAgIHBhZGRpbmc6IDAuOWNxdzsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIuNWNxdzsKICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW1jLWJhcik7CiAgICAgICAgICBib3gtc2hhZG93OgogICAgICAgICAgICAwIDAgMCAxcHggdmFyKC0tbWMtZWRnZSksCiAgICAgICAgICAgIDAgMS42Y3F3IDRjcXcgcmdiYSg4LCAxMCwgMjAsIDAuMjgpOwogICAgICAgIH0KICAgICAgICAubWMtYnRuIHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIHdpZHRoOiA2LjJjcXc7CiAgICAgICAgICBoZWlnaHQ6IDYuMmNxdzsKICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQogICAgICAgIC5tYy1zZXAgewogICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgIG1hcmdpbjogMS4yY3F3IDAuM2NxdzsKICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW1jLWVkZ2UpOwogICAgICAgIH0KICAgICAgICAubWMtaWNvbiB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIHdpZHRoOiAyLjhjcXc7CiAgICAgICAgICBoZWlnaHQ6IDIuOGNxdzsKICAgICAgICAgIG1hcmdpbjogLTEuNGNxdyAwIDAgLTEuNGNxdzsKICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICBzdHJva2U6IHZhcigtLW1jLWluayk7CiAgICAgICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB9CiAgICAgICAgLm1jLWxheWVyIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBpZD0icm9vdCIgZGF0YS1jb21wb3NpdGlvbi1pZD0ibWFnbmV0aWMtY3Vyc29yIiBkYXRhLWR1cmF0aW9uPSIzLjYiIGRhdGEtdG9uZT0ibGlnaHQiPgogICAgICAgIDxzdmcgY2xhc3M9Im1jLWxheWVyIiBpZD0ibWMtbGF5ZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgIDxyZWN0IGlkPSJtYy1wbGF0ZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjAiIGhlaWdodD0iMCIgcng9IjAiIC8+CiAgICAgICAgPC9zdmc+CiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYmFyIiBpZD0ibWMtYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1jLWJ0biI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9Im1jLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTcgNWg2YTMuNSAzLjUgMCAwIDEgMCA3SDd6TTcgMTJoN2EzLjUgMy41IDAgMCAxIDAgN0g3eiIgLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1jLWJ0biI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9Im1jLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwIDVoOE02IDE5aDhNMTQgNWwtNCAxNCIgLz48L3N2Zz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWMtYnRuIj4KICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibWMtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgICAgICAgICAgICA8cGF0aCBkPSJNNyA0djdhNSA1IDAgMCAwIDEwIDBWNE01IDIwaDE0IiAvPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWMtc2VwIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1jLWJ0biI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9Im1jLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0xMCAxNGE0IDQgMCAwIDAgNS43IDBsMy0zYTQgNCAwIDAgMC01LjctNS43bC0xIDFNMTQgMTBhNCA0IDAgMCAwLTUuNyAwbC0zIDNhNCA0IDAgMCAwIDUuNyA1LjdsMS0xIgogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYy1idG4iPgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJtYy1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik05IDZoMTFNOSAxMmgxMU05IDE4aDExTTQuNSA2aC4wMU00LjUgMTJoLjAxTTQuNSAxOGguMDEiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYy1idG4iPgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJtYy1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgICAgICAgICAgIDxyZWN0IHg9IjMuNSIgeT0iNC41IiB3aWR0aD0iMTciIGhlaWdodD0iMTUiIHJ4PSIyLjUiIC8+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNSAxNmw1LTUgNCA0IDMtMyA1IDVNMTUgOWguMDEiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPHNjcmlwdD4KICAgICAgICAoZnVuY3Rpb24gKCkgewogICAgICAgICAgInVzZSBzdHJpY3QiOwoKICAgICAgICAgIHZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwogICAgICAgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vdCIpOwogICAgICAgICAgdmFyIHBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1jLXBsYXRlIik7CiAgICAgICAgICB2YXIgbGF5ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWMtbGF5ZXIiKTsKICAgICAgICAgIHZhciBidXR0b25zID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWMtYnRuIikpOwogICAgICAgICAgdmFyIGljb25zID0gYnV0dG9ucy5tYXAoZnVuY3Rpb24gKGIpIHsKICAgICAgICAgICAgcmV0dXJuIGIucXVlcnlTZWxlY3RvcigiLm1jLWljb24iKTsKICAgICAgICAgIH0pOwoKICAgICAgICAgIHZhciBERUZBVUxUUyA9IHt9OwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgSlNPTi5wYXJzZShodG1sLmdldEF0dHJpYnV0ZSgiZGF0YS1jb21wb3NpdGlvbi12YXJpYWJsZXMiKSB8fCAiW10iKS5mb3JFYWNoKAogICAgICAgICAgICAgIGZ1bmN0aW9uICh2YXJpYWJsZSkgewogICAgICAgICAgICAgICAgREVGQVVMVFNbdmFyaWFibGUuaWRdID0gdmFyaWFibGUuZGVmYXVsdDsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgLyogbWFsZm9ybWVkIGRlY2xhcmF0aW9uIGZhbGxzIGJhY2sgdG8gdGhlIGlubGluZSBkZWZhdWx0cyBiZWxvdyAqLwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNjb3BlZFZhcmlhYmxlcyA9IHt9OwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2h5cGVyZnJhbWVzICYmIHR5cGVvZiB3aW5kb3cuX19oeXBlcmZyYW1lcy5nZXRWYXJpYWJsZXMgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICBzY29wZWRWYXJpYWJsZXMgPSB3aW5kb3cuX19oeXBlcmZyYW1lcy5nZXRWYXJpYWJsZXMoKSB8fCB7fTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgLyogbm8gc2NvcGVkIHZhcmlhYmxlcyBBUEkgaW4gdGhpcyBjb250ZXh0ICovCiAgICAgICAgICB9CiAgICAgICAgICB2YXIgdmFycyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRTLCB3aW5kb3cuX19oZlZhcmlhYmxlcyB8fCB7fSwgc2NvcGVkVmFyaWFibGVzKTsKCiAgICAgICAgICAvLyBIYXJkY29kZWQ6IHRoZSBjb21wb3NpdG9yIHJld3JpdGVzIHRoZSB3cmFwcGVyJ3MgYXR0cmlidXRlcyBvbiBtb3VudC4KICAgICAgICAgIHZhciBjb21wb3NpdGlvbklkID0gIm1hZ25ldGljLWN1cnNvciI7CiAgICAgICAgICB2YXIgZHVyYXRpb24gPSBNYXRoLm1heCgKICAgICAgICAgICAgMC4wMDEsCiAgICAgICAgICAgIHBhcnNlRmxvYXQoCiAgICAgICAgICAgICAgcm9vdC5kYXRhc2V0LmR1cmF0aW9uIHx8IGh0bWwuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbXBvc2l0aW9uLWR1cmF0aW9uIikgfHwgIjMuNiIsCiAgICAgICAgICAgICksCiAgICAgICAgICApOwogICAgICAgICAgdmFyIHRvbmUgPSB2YXJzLnRvbmUgPT09ICJkYXJrIiA/ICJkYXJrIiA6ICJsaWdodCI7CiAgICAgICAgICB2YXIgYWNjZW50ID0gU3RyaW5nKHZhcnMuYWNjZW50IHx8ICIjM2I4MmY2Iik7CiAgICAgICAgICByb290LnNldEF0dHJpYnV0ZSgiZGF0YS10b25lIiwgdG9uZSk7CgogICAgICAgICAgdmFyIHZpc2l0cyA9IFN0cmluZyh2YXJzLnZpc2l0cyB8fCAiMCwzIikKICAgICAgICAgICAgLnNwbGl0KCIsIikKICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAocykgewogICAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKE51bWJlcihzKSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKG4pIHsKICAgICAgICAgICAgICByZXR1cm4gaXNGaW5pdGUobikgJiYgbiA+PSAwICYmIG4gPCBidXR0b25zLmxlbmd0aDsKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLnNsaWNlKDAsIDMpOwogICAgICAgICAgaWYgKHZpc2l0cy5sZW5ndGggPT09IDApIHZpc2l0cyA9IFswLCAzXTsKICAgICAgICAgIHZhciBwcmVzc1Zpc2l0ID0KICAgICAgICAgICAgTWF0aC5tYXgoMSwgTWF0aC5taW4odmlzaXRzLmxlbmd0aCwgTWF0aC5yb3VuZChOdW1iZXIodmFycy5wcmVzcykgfHwgMikpKSAtIDE7CgogICAgICAgICAgLy8gR2VvbWV0cnkgaXMgcmVhZCBvbmNlIGF0IGxvYWQ6IGZpeGVkIHZpZXdwb3J0IHBlciByZW5kZXIsIG5vIHJlc2l6ZSBtaWQtcmVuZGVyLgogICAgICAgICAgdmFyIFcgPSByb290LmNsaWVudFdpZHRoIHx8IDE5MjA7CiAgICAgICAgICB2YXIgSCA9IHJvb3QuY2xpZW50SGVpZ2h0IHx8IDEwODA7CiAgICAgICAgICBsYXllci5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCAiMCAwICIgKyBXICsgIiAiICsgSCk7CiAgICAgICAgICAvLyBPZmZzZXRzLCBub3QgY2xpZW50IHJlY3RzOiBhIGhvc3QgdGhhdCBzY2FsZXMgdGhlIHN0YWdlIG11c3Qgbm90IHNrZXcgdGhlIHRhcmdldHMuCiAgICAgICAgICB2YXIgYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1jLWJhciIpOwogICAgICAgICAgdmFyIGJveGVzID0gYnV0dG9ucy5tYXAoZnVuY3Rpb24gKGIpIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICB4OiBiYXIub2Zmc2V0TGVmdCArIGIub2Zmc2V0TGVmdCArIGIub2Zmc2V0V2lkdGggLyAyLAogICAgICAgICAgICAgIHk6IGJhci5vZmZzZXRUb3AgKyBiLm9mZnNldFRvcCArIGIub2Zmc2V0SGVpZ2h0IC8gMiwKICAgICAgICAgICAgICB3OiBiLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGg6IGIub2Zmc2V0SGVpZ2h0LAogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgQlcgPSBib3hlc1swXS53OwogICAgICAgICAgdmFyIERPVCA9IEJXICogMC41OwogICAgICAgICAgdmFyIFBMQVRFX1IgPSBCVyAqIDAuMjY7CiAgICAgICAgICB2YXIgUFVMTF9SQURJVVMgPSBCVyAqIDEuMTsKICAgICAgICAgIC8vIGlQYWRPUyBwYXJhbGxheDogYWJvdXQgM3B0IG9mIGljb24gdHJhdmVsIG9uIGEgNDRwdCBidXR0b24uCiAgICAgICAgICB2YXIgSUNPTl9TSElGVCA9IChCVyAqIDMpIC8gNDQ7CgogICAgICAgICAgLy8gQmVhdCBwbGFuICgzLjRzKSwgc3RyZXRjaGVkIGV2ZW5seSB0byB0aGUgZHVyYXRpb246IDMuNnMgYnkgZGVmYXVsdC4KICAgICAgICAgIHZhciBFTlRFUiA9IDAuNTsKICAgICAgICAgIHZhciBHTElERSA9IDAuNDU7CiAgICAgICAgICB2YXIgSE9MRCA9IDAuNDU7CiAgICAgICAgICB2YXIgUFJFU1NfQVQgPSAwLjIyOwogICAgICAgICAgdmFyIFBSRVNTX0hPTEQgPSAwLjU5OwogICAgICAgICAgdmFyIFJFTEVBU0UgPSAwLjE4OwogICAgICAgICAgdmFyIEVYSVQgPSAwLjY7CiAgICAgICAgICB2YXIgcGxhbiA9IFtdOwogICAgICAgICAgdmFyIHQgPSBFTlRFUjsKICAgICAgICAgIHZpc2l0cy5mb3JFYWNoKGZ1bmN0aW9uIChpbmRleCwgaykgewogICAgICAgICAgICBpZiAoayA+IDApIHQgKz0gR0xJREU7CiAgICAgICAgICAgIHZhciBob2xkID0gSE9MRCArIChrID09PSBwcmVzc1Zpc2l0ID8gUFJFU1NfSE9MRCA6IDApOwogICAgICAgICAgICBwbGFuLnB1c2goewogICAgICAgICAgICAgIGluZGV4OiBpbmRleCwKICAgICAgICAgICAgICBhcnJpdmU6IHQsCiAgICAgICAgICAgICAgbGVhdmU6IHQgKyBob2xkLAogICAgICAgICAgICAgIHByZXNzOiBrID09PSBwcmVzc1Zpc2l0ID8gdCArIFBSRVNTX0FUIDogLTEsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0ICs9IGhvbGQgKyBSRUxFQVNFOwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgYmFzZSA9IHQgKyBFWElUOwogICAgICAgICAgdmFyIGswID0gZHVyYXRpb24gLyBiYXNlOwogICAgICAgICAgcGxhbi5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7CiAgICAgICAgICAgIHYuYXJyaXZlICo9IGswOwogICAgICAgICAgICB2LmxlYXZlICo9IGswOwogICAgICAgICAgICBpZiAodi5wcmVzcyA+PSAwKSB2LnByZXNzICo9IGswOwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgcmVsZWFzZUR1ciA9IFJFTEVBU0UgKiBrMDsKICAgICAgICAgIHZhciBleGl0QXQgPSBkdXJhdGlvbiAtIEVYSVQgKiBrMDsKCiAgICAgICAgICBmdW5jdGlvbiBjbGFtcDAxKHUpIHsKICAgICAgICAgICAgcmV0dXJuIHUgPCAwID8gMCA6IHUgPiAxID8gMSA6IHU7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBzbW9vdGgodSkgewogICAgICAgICAgICB1ID0gY2xhbXAwMSh1KTsKICAgICAgICAgICAgcmV0dXJuIHUgKiB1ICogKDMgLSAyICogdSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBtaXgoYSwgYiwgdSkgewogICAgICAgICAgICByZXR1cm4gYSArIChiIC0gYSkgKiB1OwogICAgICAgICAgfQogICAgICAgICAgdmFyIGVhc2VPdXQgPSBnc2FwLnBhcnNlRWFzZSgicG93ZXIzLm91dCIpOwogICAgICAgICAgdmFyIGVhc2VJbk91dCA9IGdzYXAucGFyc2VFYXNlKCJwb3dlcjIuaW5PdXQiKTsKICAgICAgICAgIHZhciBlYXNlSW4gPSBnc2FwLnBhcnNlRWFzZSgicG93ZXIyLmluIik7CiAgICAgICAgICB2YXIgc25hcCA9IGdzYXAucGFyc2VFYXNlKCJiYWNrLm91dCgxLjE1KSIpOwoKICAgICAgICAgIC8vIFRoZSBmaW5nZXIgbGFuZHMgYSBsaXR0bGUgb2ZmLWNlbnRyZSBhbmQgZHJpZnRzIGFjcm9zcyB0aGUgYnV0dG9uIHdoaWxlIGl0IGhvdmVycy4KICAgICAgICAgIGZ1bmN0aW9uIGFycml2ZVBvaW50KHYpIHsKICAgICAgICAgICAgdmFyIGIgPSBib3hlc1t2LmluZGV4XTsKICAgICAgICAgICAgcmV0dXJuIHsgeDogYi54IC0gYi53ICogMC4yLCB5OiBiLnkgKyBiLmggKiAwLjIyIH07CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBkcmlmdFBvaW50KHYpIHsKICAgICAgICAgICAgdmFyIGIgPSBib3hlc1t2LmluZGV4XTsKICAgICAgICAgICAgcmV0dXJuIHsgeDogYi54ICsgYi53ICogMC4xOCwgeTogYi55IC0gYi5oICogMC4xMiB9OwogICAgICAgICAgfQogICAgICAgICAgdmFyIFNUQVJUID0geyB4OiBXICogMC41OCwgeTogSCAqIDAuOSB9OwogICAgICAgICAgdmFyIEVORCA9IHsgeDogVyAqIDEuMDYsIHk6IEggKiAwLjYyIH07CgogICAgICAgICAgZnVuY3Rpb24gZ2xpZGUocDAsIHAxLCB1LCBiZW5kKSB7CiAgICAgICAgICAgIHZhciBjeCA9IChwMC54ICsgcDEueCkgLyAyIC0gKHAxLnkgLSBwMC55KSAqIGJlbmQ7CiAgICAgICAgICAgIHZhciBjeSA9IChwMC55ICsgcDEueSkgLyAyICsgKHAxLnggLSBwMC54KSAqIGJlbmQ7CiAgICAgICAgICAgIHZhciB3ID0gMSAtIHU7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgeDogdyAqIHcgKiBwMC54ICsgMiAqIHcgKiB1ICogY3ggKyB1ICogdSAqIHAxLngsCiAgICAgICAgICAgICAgeTogdyAqIHcgKiBwMC55ICsgMiAqIHcgKiB1ICogY3kgKyB1ICogdSAqIHAxLnksCiAgICAgICAgICAgIH07CiAgICAgICAgICB9CgogICAgICAgICAgZnVuY3Rpb24gZmluZ2VyQXQodGltZSkgewogICAgICAgICAgICB2YXIgZmlyc3QgPSBwbGFuWzBdOwogICAgICAgICAgICBpZiAodGltZSA8PSBmaXJzdC5hcnJpdmUpCiAgICAgICAgICAgICAgcmV0dXJuIGdsaWRlKFNUQVJULCBhcnJpdmVQb2ludChmaXJzdCksIGVhc2VPdXQoY2xhbXAwMSh0aW1lIC8gZmlyc3QuYXJyaXZlKSksIDAuMTUpOwogICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHBsYW4ubGVuZ3RoOyBrKyspIHsKICAgICAgICAgICAgICB2YXIgdiA9IHBsYW5ba107CiAgICAgICAgICAgICAgdmFyIGEgPSBhcnJpdmVQb2ludCh2KTsKICAgICAgICAgICAgICB2YXIgZCA9IGRyaWZ0UG9pbnQodik7CiAgICAgICAgICAgICAgaWYgKHRpbWUgPD0gdi5sZWF2ZSkKICAgICAgICAgICAgICAgIHJldHVybiBnbGlkZShhLCBkLCBlYXNlSW5PdXQoY2xhbXAwMSgodGltZSAtIHYuYXJyaXZlKSAvICh2LmxlYXZlIC0gdi5hcnJpdmUpKSksIDApOwogICAgICAgICAgICAgIHZhciBuZXh0ID0gcGxhbltrICsgMV07CiAgICAgICAgICAgICAgaWYgKG5leHQgJiYgdGltZSA8PSBuZXh0LmFycml2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGdsaWRlKAogICAgICAgICAgICAgICAgICBkLAogICAgICAgICAgICAgICAgICBhcnJpdmVQb2ludChuZXh0KSwKICAgICAgICAgICAgICAgICAgZWFzZUluT3V0KGNsYW1wMDEoKHRpbWUgLSB2LmxlYXZlKSAvIChuZXh0LmFycml2ZSAtIHYubGVhdmUpKSksCiAgICAgICAgICAgICAgICAgIC0wLjEyLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGxhc3QgPSBkcmlmdFBvaW50KHBsYW5bcGxhbi5sZW5ndGggLSAxXSk7CiAgICAgICAgICAgIGlmICh0aW1lIDw9IGV4aXRBdCkgcmV0dXJuIGxhc3Q7CiAgICAgICAgICAgIHJldHVybiBnbGlkZShsYXN0LCBFTkQsIGVhc2VJbihjbGFtcDAxKCh0aW1lIC0gZXhpdEF0KSAvIChkdXJhdGlvbiAtIGV4aXRBdCkpKSwgMC4xKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBIb3cgZmFyIHRoZSBwb2ludGVyIGhhcyBiZWNvbWUgdGhlIHBsYXRlIG9mIHZpc2l0IHY6IDAgaXMgYSBkb3QsIDEgaXMgdGhlIHBsYXRlLgogICAgICAgICAgZnVuY3Rpb24gbW9ycGhPZih2LCB0aW1lKSB7CiAgICAgICAgICAgIHZhciBpbkR1ciA9IDAuMjIgKiBrMDsKICAgICAgICAgICAgaWYgKHRpbWUgPCB2LmFycml2ZSAtIGluRHVyICogMC41KSByZXR1cm4gMDsKICAgICAgICAgICAgaWYgKHRpbWUgPD0gdi5sZWF2ZSkgcmV0dXJuIGNsYW1wMDEoKHRpbWUgLSAodi5hcnJpdmUgLSBpbkR1ciAqIDAuNSkpIC8gaW5EdXIpOwogICAgICAgICAgICByZXR1cm4gMSAtIGNsYW1wMDEoKHRpbWUgLSB2LmxlYXZlKSAvIHJlbGVhc2VEdXIpOwogICAgICAgICAgfQoKICAgICAgICAgIGZ1bmN0aW9uIHByZXNzT2YodiwgdGltZSkgewogICAgICAgICAgICBpZiAodi5wcmVzcyA8IDAgfHwgdGltZSA8IHYucHJlc3MpIHJldHVybiAwOwogICAgICAgICAgICB2YXIgdSA9ICh0aW1lIC0gdi5wcmVzcykgLyAoMC4zICogazApOwogICAgICAgICAgICBpZiAodSA+PSAxKSByZXR1cm4gMDsKICAgICAgICAgICAgcmV0dXJuIHUgPCAwLjMgPyB1IC8gMC4zIDogMSAtICh1IC0gMC4zKSAvIDAuNzsKICAgICAgICAgIH0KCiAgICAgICAgICBmdW5jdGlvbiByZW5kZXIodGltZSkgewogICAgICAgICAgICB2YXIgZmluZ2VyID0gZmluZ2VyQXQodGltZSk7CiAgICAgICAgICAgIHZhciBhY3RpdmUgPSBudWxsOwogICAgICAgICAgICB2YXIgbSA9IDA7CiAgICAgICAgICAgIHBsYW4uZm9yRWFjaChmdW5jdGlvbiAodikgewogICAgICAgICAgICAgIHZhciBtdiA9IG1vcnBoT2YodiwgdGltZSk7CiAgICAgICAgICAgICAgaWYgKG12ID4gbSkgewogICAgICAgICAgICAgICAgbSA9IG12OwogICAgICAgICAgICAgICAgYWN0aXZlID0gdjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgY3ggPSBmaW5nZXIueDsKICAgICAgICAgICAgdmFyIGN5ID0gZmluZ2VyLnk7CiAgICAgICAgICAgIHZhciB3ID0gRE9UOwogICAgICAgICAgICB2YXIgaCA9IERPVDsKICAgICAgICAgICAgdmFyIHIgPSBET1QgLyAyOwogICAgICAgICAgICB2YXIgc3F1YXNoID0gMDsKICAgICAgICAgICAgaWYgKCFhY3RpdmUpIHsKICAgICAgICAgICAgICAvLyBUaGUgbWFnbmV0OiB3aXRoaW4gcmVhY2ggb2YgYSBidXR0b24gdGhlIGRvdCBpcyBhbHJlYWR5IGxlYW5pbmcgdG93YXJkIGl0cyBjZW50cmUuCiAgICAgICAgICAgICAgYm94ZXMuZm9yRWFjaChmdW5jdGlvbiAoYikgewogICAgICAgICAgICAgICAgdmFyIHB1bGwgPQogICAgICAgICAgICAgICAgICAwLjM1ICogc21vb3RoKDEgLSBNYXRoLmh5cG90KGIueCAtIGZpbmdlci54LCBiLnkgLSBmaW5nZXIueSkgLyBQVUxMX1JBRElVUyk7CiAgICAgICAgICAgICAgICBjeCA9IG1peChjeCwgYi54LCBwdWxsKTsKICAgICAgICAgICAgICAgIGN5ID0gbWl4KGN5LCBiLnksIHB1bGwpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhciBiID0gYm94ZXNbYWN0aXZlLmluZGV4XTsKICAgICAgICAgICAgICB2YXIgbXMgPSBzbmFwKG0pOwogICAgICAgICAgICAgIHNxdWFzaCA9IHByZXNzT2YoYWN0aXZlLCB0aW1lKTsKICAgICAgICAgICAgICBjeCA9IG1peChmaW5nZXIueCwgYi54ICsgKGZpbmdlci54IC0gYi54KSAqIDAuMDUsIHNtb290aChtKSk7CiAgICAgICAgICAgICAgY3kgPSBtaXgoZmluZ2VyLnksIGIueSArIChmaW5nZXIueSAtIGIueSkgKiAwLjA1LCBzbW9vdGgobSkpOwogICAgICAgICAgICAgIHZhciBsaWZ0ID0gMSArIDAuMDQgKiBzbW9vdGgobSk7CiAgICAgICAgICAgICAgdyA9IG1peChET1QsIGIudywgbXMpICogbGlmdCAqICgxIC0gMC4wNiAqIHNxdWFzaCk7CiAgICAgICAgICAgICAgaCA9IG1peChET1QsIGIuaCwgbXMpICogbGlmdCAqICgxIC0gMC4xICogc3F1YXNoKTsKICAgICAgICAgICAgICByID0gbWl4KERPVCAvIDIsIFBMQVRFX1IsIHNtb290aChtKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGFscGhhID0gbWl4KDAuNTUsIHRvbmUgPT09ICJkYXJrIiA/IDAuMTQgOiAwLjA5LCBzbW9vdGgobSkpICsgMC4wOCAqIHNxdWFzaDsKICAgICAgICAgICAgdmFyIHZpc2libGUgPSB0aW1lIDwgZHVyYXRpb24gPyBzbW9vdGgodGltZSAvICgwLjIgKiBrMCkpIDogMDsKICAgICAgICAgICAgcGxhdGUuc2V0QXR0cmlidXRlKCJ4IiwgKGN4IC0gdyAvIDIpLnRvRml4ZWQoMikpOwogICAgICAgICAgICBwbGF0ZS5zZXRBdHRyaWJ1dGUoInkiLCAoY3kgLSBoIC8gMikudG9GaXhlZCgyKSk7CiAgICAgICAgICAgIHBsYXRlLnNldEF0dHJpYnV0ZSgid2lkdGgiLCBNYXRoLm1heCgwLCB3KS50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgcGxhdGUuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBNYXRoLm1heCgwLCBoKS50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgcGxhdGUuc2V0QXR0cmlidXRlKCJyeCIsIE1hdGgubWluKHIsIHcgLyAyLCBoIC8gMikudG9GaXhlZCgyKSk7CiAgICAgICAgICAgIHBsYXRlLnN0eWxlLmZpbGwgPSAicmdiYSh2YXIoLS1tYy1wb2ludGVyKSwgIiArIChhbHBoYSAqIHZpc2libGUpLnRvRml4ZWQoMykgKyAiKSI7CgogICAgICAgICAgICBpY29ucy5mb3JFYWNoKGZ1bmN0aW9uIChpY29uLCBpKSB7CiAgICAgICAgICAgICAgdmFyIGxlYW4gPSBhY3RpdmUgJiYgYWN0aXZlLmluZGV4ID09PSBpID8gc21vb3RoKG0pIDogMDsKICAgICAgICAgICAgICB2YXIgdnggPSBmaW5nZXIueCAtIGJveGVzW2ldLng7CiAgICAgICAgICAgICAgdmFyIHZ5ID0gZmluZ2VyLnkgLSBib3hlc1tpXS55OwogICAgICAgICAgICAgIC8vIEZ1bGwgc2hpZnQgb25jZSB0aGUgZmluZ2VyIGlzIDAuMyBidXR0b24gd2lkdGhzIG9mZiBjZW50cmUuCiAgICAgICAgICAgICAgdmFyIHNoaWZ0ID0gKElDT05fU0hJRlQgKiBsZWFuKSAvIE1hdGgubWF4KE1hdGguaHlwb3QodngsIHZ5KSwgQlcgKiAwLjMpOwogICAgICAgICAgICAgIHZhciBkeCA9IHZ4ICogc2hpZnQ7CiAgICAgICAgICAgICAgdmFyIGR5ID0gdnkgKiBzaGlmdDsKICAgICAgICAgICAgICB2YXIgZGlwID0gYWN0aXZlICYmIGFjdGl2ZS5pbmRleCA9PT0gaSA/IHNxdWFzaCA6IDA7CiAgICAgICAgICAgICAgaWNvbi5zdHlsZS50cmFuc2Zvcm0gPQogICAgICAgICAgICAgICAgInRyYW5zbGF0ZSgiICsKICAgICAgICAgICAgICAgIGR4LnRvRml4ZWQoMikgKwogICAgICAgICAgICAgICAgInB4LCIgKwogICAgICAgICAgICAgICAgZHkudG9GaXhlZCgyKSArCiAgICAgICAgICAgICAgICAicHgpIHNjYWxlKCIgKwogICAgICAgICAgICAgICAgKDEgLSAwLjEyICogZGlwKS50b0ZpeGVkKDMpICsKICAgICAgICAgICAgICAgICIpIjsKICAgICAgICAgICAgICB2YXIgcHJlc3NlZCA9IHBsYW4uc29tZShmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgcmV0dXJuIHYuaW5kZXggPT09IGkgJiYgdi5wcmVzcyA+PSAwICYmIHRpbWUgPj0gdi5wcmVzcyArIDAuMDUgKiBrMDsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBpY29uLnN0eWxlLnN0cm9rZSA9IHByZXNzZWQgPyBhY2NlbnQgOiAiIjsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIGNsb2NrID0geyB0OiAwIH07CiAgICAgICAgICB2YXIgdGwgPSBnc2FwLnRpbWVsaW5lKHsgcGF1c2VkOiB0cnVlIH0pOwogICAgICAgICAgdGwudG8oCiAgICAgICAgICAgIGNsb2NrLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdDogZHVyYXRpb24sCiAgICAgICAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLAogICAgICAgICAgICAgIGVhc2U6ICJub25lIiwKICAgICAgICAgICAgICBvblVwZGF0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmVuZGVyKGNsb2NrLnQpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDAsCiAgICAgICAgICApOwogICAgICAgICAgcmVuZGVyKDApOwogICAgICAgICAgdGwuc2VlaygwKTsKICAgICAgICAgIHdpbmRvdy5fX3RpbWVsaW5lcyA9IHdpbmRvdy5fX3RpbWVsaW5lcyB8fCB7fTsKICAgICAgICAgIHdpbmRvdy5fX3RpbWVsaW5lc1tjb21wb3NpdGlvbklkXSA9IHRsOwogICAgICAgIH0pKCk7CiAgICAgIDwvc2NyaXB0PgogICAgPC90ZW1wbGF0ZT4KICA8L2JvZHk+CjwvaHRtbD4K\" data-start=\"0\" data-duration=\"3.6\" 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>"} |