@graphcommerce/image 2.105.8 → 2.105.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/example/.next/build-manifest.json +34 -0
  2. package/example/.next/cache/images/-HVj9kxSkhJbEZEzJL5NAtVW-u8TJ523pV0gOjw1--U=/1656761718343.g+b6VAyYfz-VIgqhPopw+-RX62-WCBq5CTxdVPJ75Vk=.webp +0 -0
  3. package/example/.next/cache/images/0AxIIzYSO-2GyMgpS4xIF3BFoscLS34mhauz5mXVqJI=/1656759656442.NBBV5492hL3QVNkmiFNlwRcY6wuplArFk0uPSkVzZ58=.webp +0 -0
  4. package/example/.next/cache/images/1uj6MCqnWAg9G4AXu+RJEh7K5QHy8VI4Y8ObOpU5IWQ=/1656757031249.VBybHurr5aiEFOzpuVXHhwBOCF1G+Hnp8-GFzxjCNKg=.webp +0 -0
  5. package/example/.next/cache/images/2CMowrXl2P7YIz49CHi5gPtsp-gXV9ZDKqoWiS5hkgg=/1625470305766.rUaLjCqfuLKwkvaizd3g3TjzYGo3W8ANpZIUgzZh00Y=.webp +0 -0
  6. package/example/.next/cache/images/2prvJygajL4oBYGVG5HGNf-JaL-XmFDIpbahHqRCWEg=/1625298564969.7tWao0CKoVY673JEnP1IP-G6bNjQvDP5sxvUAq1X3KM=.webp +0 -0
  7. package/example/.next/cache/images/3NxY-MLy0nY73yQFX-qsDAkXMgiMq8iWud4VVdU8I0o=/1625299547154.rpuCm5pugpQ6IK28LsWKUGLk+P2ZtehuBgJTOX-6zlA=.webp +0 -0
  8. package/example/.next/cache/images/3UPUXn6t--gJO9HNBHFJulrS3paVQoKP5-Wu41KkrR8=/1656758598282.BZMn4WYPgB+gq-BR3w1-5MwG1AdBRAVpYWGWxNVW-KE=.webp +0 -0
  9. package/example/.next/cache/images/3ucItT2KUqDcjKA+4Dl8YhPsb3qbPW8shQeD5JogEp0=/1656749533975.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  10. package/example/.next/cache/images/4aSxJpLrV7SgzFGFQe1JbHJTiVGRNl4YdKl2iZqTz6c=/1625299570724.mruw0gK2J1y6VIaCvayFrs7ltIasseRnQjCS1Rx7zNI=.webp +0 -0
  11. package/example/.next/cache/images/4u0SwKJhO4a+ZARfOmnUAY+bQvzdjsw8AOIk6sRiVTM=/1625469705760.rueREa67ebDmXGY+W3G-eopQp5EK-SQHOa4KHFuqVNo=.webp +0 -0
  12. package/example/.next/cache/images/5H41dGaHwg71zktiD3Ks9K8yaZ1e9lsBag4NHyoIUdo=/1625219570987.zIxZGRHl91NEtnV4nbyU0rB3EtEyR9Lxnri-+voKAvs=.webp +0 -0
  13. package/example/.next/cache/images/64IULfOR-D0oVW4sHrfc5WtPLdjLPbkoNKHdCwWGSuQ=/1625219570994.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  14. package/example/.next/cache/images/6Dgu5A6GajPsgDQ66k-pbq0Iyr0Byrn7+mivxE4fvVU=/1656758443091.KL97JxovJgisoPc5EXEfrrnnqyRymWEBTSqLA8Uy5lE=.webp +0 -0
  15. package/example/.next/cache/images/6Zcso+WcU0OlZ-atPSh40Gljk74hWpvqMF88bf-3Qys=/1656749578452.zIxZGRHl91NEtnV4nbyU0rB3EtEyR9Lxnri-+voKAvs=.webp +0 -0
  16. package/example/.next/cache/images/7Xkon9LFmZ6wE0IgEIsfUN0bOr0oCSOXaDnnrVjSoXo=/1625300548289.8yJB9XC45AIM6XoUsu8htXCK2wYvqnWCKbnxO3MmpsU=.webp +0 -0
  17. package/example/.next/cache/images/7vvZbnWp2pvmwNgUNIKXmCk9XhfIOYqyBy1xwOMmxZE=/1625470260322.onl4+lYWryHL62flX4FJdXEMQ1UVnyT5sBYF1DggMaQ=.webp +0 -0
  18. package/example/.next/cache/images/83VK7ld0YcmgdOG+R2h+ckiGWOVKzIn42CnTelSeAD0=/1657107410585.OC5j-AyaLksS78WoFh2ZPpURObFKvSCnpt9rqzn7tNY=.webp +0 -0
  19. package/example/.next/cache/images/8qtv2hTcdwZiVYN5j5XNVw4eDlHblWR91R1ilGPHF4g=/1625300457906.pVKudFsHslINh1TOUoOPSHb8op8iqiQ3IVE78QQH0qU=.webp +0 -0
  20. package/example/.next/cache/images/B8i6U4dvhS5QlonuTChvnVeIfVNcMFP5Ze9dGHpLu0A=/1625213911796.zMx5v1d6EgYxzhH5u9vceuQAZdrlkrwNiW-EzuaYMnw=.webp +0 -0
  21. package/example/.next/cache/images/BW0ysRJMh9oulzEYbELupyRAI1rZZ5be0xuxnDLc-bw=/1656761231260.zspGYR3AWdcc816W2F6Ne1-JNgSDBH1h6KEFeVLnWok=.webp +0 -0
  22. package/example/.next/cache/images/BY6YpwPh82mp5JiBEti5gmwC-9O4ohRUPluASqROc10=/1625498155146.EJMSOifv8id0Peguf7ikEne7xMi9Ac9iDe9kTIAAXvY=.webp +0 -0
  23. package/example/.next/cache/images/CUGp4g70zl+vsFGT41IZkj-Y2votkqh3Eezzs9H3H5w=/1625299521288.EnYAcm4cT6T5yKVAQDTY6cZti0zsxnVbImrF7LfgF1Y=.webp +0 -0
  24. package/example/.next/cache/images/DJ3B5hLxX-+UMbqed+x58+rl9juscSn+Ra7YA8CNkkY=/1625484120800.SAng7YQ8PDlPQNubgLkMMsiFwaPCuTeDBsfUyvmttG4=.webp +0 -0
  25. package/example/.next/cache/images/DW4yKnn+mYRfs8-2Ko5oE3DrZbJMhFNEmGp90CyT7O0=/1625300236026.VFNPRZf-z9qFOV2S5AbunCkRGCcPXzlwiTKrNjmNGi8=.webp +0 -0
  26. package/example/.next/cache/images/Dh5jFfTTZHXju+2VMueg1Lo7sM3GkEWBlgWZ37h29ME=/1625474260306.gkzHU98m9zIqApL3d93FWcZqGULcRirOdpOxzJgPTK8=.webp +0 -0
  27. package/example/.next/cache/images/Du4jaIoZ-PXvqN2avgQOOGlaQg-Vt4QUVcukv77Hm7w=/1656756770777.kZnEJ9pDGRP7pgjpXGDPuV-HLcq5hWt9eWAFm6G84OI=.webp +0 -0
  28. package/example/.next/cache/images/EqW5whXX7fgu5+SPdxyBZ4fE0fOWCLMo9b5W7hd28iY=/1625571324722.txUxO6DkO8veTJ1oLkXvvNgVuTbvHdj4MVBwHIu-eus=.webp +0 -0
  29. package/example/.next/cache/images/GKXPXPApDNp1ZIjYBtQk7dd3rnbKh7NElD+WIyHa8js=/1656756098400.lgHCIyknPFqSgPVSBuQffgINRpboZCYlBKftrwpBLkA=.webp +0 -0
  30. package/example/.next/cache/images/GTOHdx8sLxs79IJinD+Nk80LrOg0DaC9h3d8TAby3bs=/1657107680617.OC5j-AyaLksS78WoFh2ZPpURObFKvSCnpt9rqzn7tNY=.webp +0 -0
  31. package/example/.next/cache/images/GnqqaGL66JFx1j+fCokxnnujneezplnVU7gYhckh9+A=/1625299583173.dgcaCltbHvvFCi1sPMucuHCL9UCtWiFSyOAYH-v2LtU=.webp +0 -0
  32. package/example/.next/cache/images/HTqsLdQpcguBI7BE1SfU-i2MwHyN3krlryhF1BEPj3M=/1657107680404.c8k-vRV2T9vq1REo-K4LzVwKVUP5lQuho4ubYzHj544=.webp +0 -0
  33. package/example/.next/cache/images/HroIIPKGVQ42ycMx-gSdWVFfchcgf8J-XU3FJOZhpmk=/1625570328298.IUpe91jGi-RlVgrjYmX7wkMcXIIYvodu5j4BqaKZcss=.webp +0 -0
  34. package/example/.next/cache/images/HsTN95OGw5aJGpWWSep-H7pXMN32ZSfW86FEPFe02K8=/1625299498281.1gBokMmVVuor1gnCAbJvXKp1sytwxY0A-VcmYIwXm7g=.webp +0 -0
  35. package/example/.next/cache/images/JRIhYbicTTQFjjKlC-aW9QRo+2KiSk80+wi0T+FeWQ4=/1656756648992.kZnEJ9pDGRP7pgjpXGDPuV-HLcq5hWt9eWAFm6G84OI=.webp +0 -0
  36. package/example/.next/cache/images/KtPkhGYwacFij4NA7Z4VNrRLb21KQUty7jAgxxv7tAE=/1625565460203.83IxQdLmWiSE2uISXx1KtUWFzH+wlQzRq3azOBbUtnQ=.webp +0 -0
  37. package/example/.next/cache/images/MPZjiVEFZqHRi2TtFwyHot9phvfEIcDLWmmyrYFIHAQ=/1625299521601.0uwV84UCn-oB-gRLRxi8DD2sl7zK5emgxfblkV3Dvhc=.webp +0 -0
  38. package/example/.next/cache/images/MT6MCs8Nc+PJ2byqQCa1HW8Xp4OTRNnb6kLgLwDGLZo=/1656762484828.heenQ4-yt4r55ULQ0ofqHJ1j8eTKD8ksx640PPhaqP8=.webp +0 -0
  39. package/example/.next/cache/images/MiOwljI0QJwKEuOg3n2Gp3J0qyXXNOXE8ttWHB7CHa0=/1625567166356.KCzRRP4Cub2rpOYKetN+L9dCJTAsFVW-GkP0NRsQbcM=.webp +0 -0
  40. package/example/.next/cache/images/OcFEP0e8eNeBt9ck16eoMwSpfJleEwCMpm1ZbdqT4uo=/1656749533901.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  41. package/example/.next/cache/images/PPUtJ0W6DfemefElrKITkTNq7MVnHyMS38XuEtsy89U=/1656761403704.zlagepWT8AKDwOh4aJODpXTOFN+FobGMo1L6WuOVNwY=.webp +0 -0
  42. package/example/.next/cache/images/PaxNiuRifROBs1R1uM75REC6kUAfiYOLrtQAiK1P2nU=/1625213904646.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  43. package/example/.next/cache/images/PqLR89B4R1+qzyEVqVw9OQhSmFy5JuXLa64i3LYpJxE=/1625299444323.ThlpSva2rHbbbp958zCj1tdrgMqjFcGYnaDRo2wQQLU=.webp +0 -0
  44. package/example/.next/cache/images/Q8f9uZJBks2H-YkwdWd2QMgMX5mL5FBMo0VsHO-ctdo=/1656760649959.qh3caBPe-Th-zaMPDt-ZdhSBl91dRP8N9s3EJ6UMQCs=.webp +0 -0
  45. package/example/.next/cache/images/RP6k9Bj4-jsHEycAYxFHZhLqKTmbLMjucvDSvlyLLZs=/1657107680610.Yg+3ChC1edO6kEAwbaim2hCjb8Wyh4toEpEOzcilUL0=.webp +0 -0
  46. package/example/.next/cache/images/SHd0AXJTfPXkImZMKmp27MvqUvYI111zyzIOkLgtCb0=/1625299593567.TvdLtgnmAXbrBjg8nRUCWyBuQNstKWJTmF-wV4728B8=.webp +0 -0
  47. package/example/.next/cache/images/SHhlhVL9L57O78uM0iSaBgxVR9J7EKRa67Ito-z2rr4=/1625300308618.po7Imjgw32SuMQKt1-Oty+v5w-l64kmnJHzwul9giqo=.webp +0 -0
  48. package/example/.next/cache/images/SKUjqmwgFQbQ2Q6MjsEPStCv9Q-+CeDEv66+YXRb2wY=/1625299577727.ZqADH5sK9bpHXGGKzDBkLCjPfDO+oTBSZlFZyEAOo9w=.webp +0 -0
  49. package/example/.next/cache/images/ShHgXRk5XG5XLtxR20jbimMMzYyCjZYWCyrSOBcRyoU=/1625299553057.Tg2j6WSVMgii8RrZgrt4twY3IKhtmUMHplwYzi-hh70=.webp +0 -0
  50. package/example/.next/cache/images/TZiyZjIDqFs6d60EaSVU3oX2L1bCkImChBpIWqOREeg=/1625299514280.rC+4Pdzi1RPfIvqsEFdtuGJL9sPG4+sel+0v3cfnJpk=.webp +0 -0
  51. package/example/.next/cache/images/YKC4gyKqaL5abLjWnWAv+OgECV0oK00TZ1P5130s4ig=/1625300636674.q2+QpCTCb2zgc0H3rXxU17I4lALn3BLpChG0i7WZMew=.webp +0 -0
  52. package/example/.next/cache/images/Z0Y8VikQqHdIyl12mjEQKArSNnKgqb5MgUYp+RJ5EO4=/1656761463364.kZnEJ9pDGRP7pgjpXGDPuV-HLcq5hWt9eWAFm6G84OI=.webp +0 -0
  53. package/example/.next/cache/images/aoSFeHouZT4mEYTInYHZHTBtgeKvEELQADTBcRV6hkw=/1625298476457.T0UaZPCESw+8pja9oQlbUDVINYgmacs0lCsbFS5R7vc=.webp +0 -0
  54. package/example/.next/cache/images/c9dcuiQ8O5e6pwHRxJtUCx3tFTD5fk0GH07hStsE6Q0=/1657107680401.jwYrFWs2M9PlA3K2ZZaR7tQk1BCwIU3EyAw9b-RBJGc=.webp +0 -0
  55. package/example/.next/cache/images/cTF2A44FXn8nLM91wKUoIEqhphWsnHQeM19UXTYuCjU=/1625566943586.FsHRv9b2D1Qu0XuUCIC0AB2goFSO+maM7H+SE4GSn1U=.webp +0 -0
  56. package/example/.next/cache/images/cVH7moJ73vvxuB1En1mtSjyjCAn7ZedMLuWgvI8YD9U=/1656759920737.rpQVMyg-AaUmlLQcsNkRBcHwqIhhb5bVfXmej8NL3Ls=.webp +0 -0
  57. package/example/.next/cache/images/dSxPG4mvFB-hsFa2WNNKGVH+EM8F73q59MOz+d84wt0=/1625470290291.9SaCLJMI8CiS-JzFL7TaZTfWXnpzp2E6eTe+RFZYv-c=.webp +0 -0
  58. package/example/.next/cache/images/dw-FglYBg89Atjb1B0R85+AwxeHSPUjuO8Kh1CV0-m4=/1625497900295.xFYayjV9nBGOKUTVq5XxlGEIWR5B5NOtP2X6N9gcAUo=.webp +0 -0
  59. package/example/.next/cache/images/f0TzeTFnAY-0ltYUi9v76DWDq3xCt2-9uBbQx4xeK3E=/1625299582181.v4L5Aguf03P1aXwUUG2yzWa4jsIkRvG35rv7Xk2e3Yg=.webp +0 -0
  60. package/example/.next/cache/images/fy3he+3cRQ9wtXvPOgCMpbECVEZpx-cdDDs+J0bnCl0=/1625219592716.zIxZGRHl91NEtnV4nbyU0rB3EtEyR9Lxnri-+voKAvs=.webp +0 -0
  61. package/example/.next/cache/images/g9PwkkYlS8p6OZa5PbvEmIxLFhwMULmPZ4JXWpN+m9E=/1625299465140.loc887GnjFgThYkCZOwQOxrUnC1XK+hbFpOxLOZV2YE=.webp +0 -0
  62. package/example/.next/cache/images/gEWhGfMHCTTgqNTJGXoavWIjsPe5-XHrTCOZoM0K3A0=/1625299501484.jzxT8QO8RG7s8Kz3g63dSfVxZEFiu6uGPLFz3e2W7cU=.webp +0 -0
  63. package/example/.next/cache/images/iHANQk+34mFntRtrtUkKrthnmdjp6ruWLqwvBnj0shA=/1625219571001.+yVlIMc84gsVdgGr6dfpa+NKaYqXQLJb4rxP95iokjo=.webp +0 -0
  64. package/example/.next/cache/images/iTGjNMCKRRKWT6Se1ypy6B8G7VG3aE81NoYZWWuFkRM=/1625299505650.WGHxeAxX5Th696JjcRa8sgeI+xCA-D31-rJYa1TfqYc=.webp +0 -0
  65. package/example/.next/cache/images/iUy4uGqOpV5cYkmJQ6H1OenGKhlJKn8YXFjNrlAcoJM=/1625474121167.YG1FPtrJnhaldgLFyM0PYUrKRS4YzNPynIHRBAsZJpI=.webp +0 -0
  66. package/example/.next/cache/images/jiDD0qNI10KXQQAUzeRuRNNktq5a6AhagAaeeFC-TAQ=/1656761403766.MdJnQq7SbBrJRtJEjPRng-ovqekSsQAPxEoERZwU0AY=.webp +0 -0
  67. package/example/.next/cache/images/k6CGZJxOx65S31BJg2vWXcUUTInuc28HlY+vruC5p08=/1625300551403.vqRL7Mz7oVbXyhRHwxk5vtqXEHKbcR-xYitHMim2KoM=.webp +0 -0
  68. package/example/.next/cache/images/lUg+tPaN1bFXtqfifZGZF3zOXqUiJsVHbrj7P0CI9eE=/1656749479842.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  69. package/example/.next/cache/images/m2NzDIE4Ft53TdiwYp3ymfmxd-MB8H+NCDL9HP2heoQ=/1625570988005.GgcoTYV3RHmRWw83xvhRld3iVysMAhdfGrX91Zl0skk=.webp +0 -0
  70. package/example/.next/cache/images/n6WUQmM45C8h6AyLZQVtPJihzo+YXCGPZPoSLlieaeg=/1656749479842.+yVlIMc84gsVdgGr6dfpa+NKaYqXQLJb4rxP95iokjo=.webp +0 -0
  71. package/example/.next/cache/images/nRr2Uwi8fvy6WIpGEwEQdqIUrjmlZc6rJPhxxJa82Es=/1625213880032.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  72. package/example/.next/cache/images/o0N432kChXWOqK5UVRtqLsLDWb5+dYe2JvYO6d24vc0=/1625482549426.CaPu+NWbHtURILwAbvjOMW3vT0776ONf0tXGWzsaDnA=.webp +0 -0
  73. package/example/.next/cache/images/oCrD0LhpE+c2Igt0JD1Yw0kC7aOo62HQ-5wedgqBbzc=/1656761398353.f9SVRkSQOaIIA6GikQ8gIzTuFdteePWKPeSdEPKiVZ4=.webp +0 -0
  74. package/example/.next/cache/images/oQ6ibo6F3ySy2ESJgLZIdmbcWTiOP3Q0KhY2fpikQ5k=/1625299093245.wohGDcrAnckq4RxHw2+ScWJWe1Dk5fIwjyVoVBt5cEE=.webp +0 -0
  75. package/example/.next/cache/images/p7XzvB8oyN5nfu11eCA42SeEp7sL+LPQQoRU64YT1cc=/1625299322699.eYKIZha0lC4+LSV+ZINxWGGOfgqw30+9w2erMlPbFTA=.webp +0 -0
  76. package/example/.next/cache/images/pnG318NZ2UvU2k21miucoxLsd8wGC5T6lVtcIzbPgd0=/1625299443084.RDAllNEC0jZGUcFFZqqZrEKfEVth-wpANCdkO+jAVvE=.webp +0 -0
  77. package/example/.next/cache/images/sDmCscY0vQ6Ce3yhoIzfNRxh-aSDxq+RTOoq0cUN4cI=/1656756694154.vDQunPJtcqmDa5Dw3GNOsYnbPoyIC9zEHXjUgRX+5VI=.webp +0 -0
  78. package/example/.next/cache/images/tv5navWlSovKHHXAA+lKFltBgdnGNbCL3KnX761Ycus=/1625566936879.641rNXHFuO1fzs0BSgp5C+Sw+zWBQp6CJs4+utqZU1c=.webp +0 -0
  79. package/example/.next/cache/images/utC1kNaPpZdZepwnTfNu9cW-3ICXwUkEoLi+pTgGKO8=/1656749851790.zMx5v1d6EgYxzhH5u9vceuQAZdrlkrwNiW-EzuaYMnw=.webp +0 -0
  80. package/example/.next/cache/images/v156Um7QIAhI-jW4GZuohhI1SVZ3A-C5W7stSH6+Ex8=/1625571324722.GGkUlkTqDjM2yzNmjFvUx-dBg-dCLrVvQNFj1xYp+L4=.webp +0 -0
  81. package/example/.next/cache/images/ve17AGz6UzylkfjhegWUnZ4SUXdLbpBWd-M+DAbqhVo=/1625213911797.zMx5v1d6EgYxzhH5u9vceuQAZdrlkrwNiW-EzuaYMnw=.webp +0 -0
  82. package/example/.next/cache/images/w+++27-2ebMrzNGxoKhSr9vf0VqhIlpV3xO8-nmznSM=/1625219570994.+yVlIMc84gsVdgGr6dfpa+NKaYqXQLJb4rxP95iokjo=.webp +0 -0
  83. package/example/.next/cache/images/wEVHpFSN5nWkDzJM1zD9IzkT-5+9aLCjtzZlx7FnChA=/1625300569493.rBN4UJXzzvwnwMc6lkdFNiOodKZnuw9BElwqky7XTJ0=.webp +0 -0
  84. package/example/.next/cache/images/wOSsRjxgCIRti4Y51UNQVHeNw92Sg-OV6tSME5c2+RU=/1657107410586.c+9x+gNEkQckj5C8j9I5aZJiJf35+8bi-q7MlbQBOlk=.webp +0 -0
  85. package/example/.next/cache/images/wciNuT5QUpxVMjbdEd5KWYQAkxr4pu0mSsO8CrnNuRo=/1625300606596.WAxNBjGkgmTuieJ8l+3FtINuMozp8NMBQx9OfMbxvLY=.webp +0 -0
  86. package/example/.next/cache/images/xQ--vjMXdpyez6gYJhx5c22xjy6UfzN8shB+AT-WnQw=/1625213880032.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  87. package/example/.next/cache/images/xfzsIzvsjdsLHqIoLrdTT1AjZi9+RIje5JHlDlzw+LQ=/1625299556299.c43pjJ8oT5uj6rWCkZRR+sYJ2unczuZsJsvTPoYMCNg=.webp +0 -0
  88. package/example/.next/cache/images/xvjW0MVJv7OygHiGuo5gvdejePhehBB84DWWy0RobDg=/1625571376478.kZnEJ9pDGRP7pgjpXGDPuV-HLcq5hWt9eWAFm6G84OI=.webp +0 -0
  89. package/example/.next/cache/images/yEcVQvBB4mvzdzhAgu6yUci93hNSew5goqdazysmcaw=/1625299488426.1uAYRUalqmHfx5q0dqBXjl-shnwNiMuPt3-D6D6kgHw=.webp +0 -0
  90. package/example/.next/cache/images/yX0fhb7SMjwEomDwIq68YQHaZlZCZl7B8XxgNuNT2Ds=/1625219571007.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  91. package/example/.next/cache/images/zh5j6vOXiawy6rDIG3BLBs4itvIs0VVtnkvSFIKa5g4=/1625213904647.i+PvewsVBTnrxKjImamNkgl0fCG8DPKrY-1y1ZQKR3c=.webp +0 -0
  92. package/example/.next/cache/images/zmAZ9S2RPA8WIuVoev9YQINu8aQgcsNtDGNiLjNAYlU=/1656756588278.ifTqMK-gjLzo3qsY-0kwQOYgfnZzrDlPk0kqF90U9p8=.webp +0 -0
  93. package/example/.next/cache/webpack/client-development/0.pack +0 -0
  94. package/example/.next/cache/webpack/client-development/1.pack +0 -0
  95. package/example/.next/cache/webpack/client-development/2.pack +0 -0
  96. package/example/.next/cache/webpack/client-development/3.pack +0 -0
  97. package/example/.next/cache/webpack/client-development/4.pack +0 -0
  98. package/example/.next/cache/webpack/client-development/5.pack +0 -0
  99. package/example/.next/cache/webpack/client-development/6.pack +0 -0
  100. package/example/.next/cache/webpack/client-development/7.pack +0 -0
  101. package/example/.next/cache/webpack/client-development/8.pack +0 -0
  102. package/example/.next/cache/webpack/client-development/9.pack +0 -0
  103. package/example/.next/cache/webpack/client-development/index.pack +0 -0
  104. package/example/.next/cache/webpack/client-development/index.pack.old +0 -0
  105. package/example/.next/cache/webpack/server-development/0.pack +0 -0
  106. package/example/.next/cache/webpack/server-development/1.pack +0 -0
  107. package/example/.next/cache/webpack/server-development/2.pack +0 -0
  108. package/example/.next/cache/webpack/server-development/3.pack +0 -0
  109. package/example/.next/cache/webpack/server-development/4.pack +0 -0
  110. package/example/.next/cache/webpack/server-development/5.pack +0 -0
  111. package/example/.next/cache/webpack/server-development/6.pack +0 -0
  112. package/example/.next/cache/webpack/server-development/7.pack +0 -0
  113. package/example/.next/cache/webpack/server-development/8.pack +0 -0
  114. package/example/.next/cache/webpack/server-development/index.pack +0 -0
  115. package/example/.next/cache/webpack/server-development/index.pack.old +0 -0
  116. package/example/.next/cache/withYarn1Workspaces.3d60d45801.json +1 -0
  117. package/example/.next/cache/withYarn1Workspaces.d8e240ca09.json +1 -0
  118. package/example/.next/react-loadable-manifest.json +8 -0
  119. package/example/.next/server/pages/_app.js +47 -0
  120. package/example/.next/server/pages/_document.js +209 -0
  121. package/example/.next/server/pages/_error.js +68 -0
  122. package/example/.next/server/pages/index.js +135 -0
  123. package/example/.next/server/pages/next/dist/pages/_error.js +68 -0
  124. package/example/.next/server/pages-manifest.json +6 -0
  125. package/example/.next/server/static/image/components/image.66235d2f01fd4fba70eb3938db05810e.jpg +0 -0
  126. package/example/.next/server/webpack-runtime.js +168 -0
  127. package/example/.next/static/chunks/amp.js +84 -0
  128. package/example/.next/static/chunks/main.js +1140 -0
  129. package/example/.next/static/chunks/node_modules_next_dist_client_dev_noop_js.js +22 -0
  130. package/example/.next/static/chunks/pages/_app.js +74 -0
  131. package/example/.next/static/chunks/pages/_error.js +95 -0
  132. package/example/.next/static/chunks/pages/index.js +280 -0
  133. package/example/.next/static/chunks/pages/next/dist/pages/_error.js +148 -0
  134. package/example/.next/static/chunks/polyfills.js +40 -0
  135. package/example/.next/static/chunks/react-refresh.js +63 -0
  136. package/example/.next/static/chunks/webpack.js +1277 -0
  137. package/example/.next/static/development/_buildManifest.js +1 -0
  138. package/example/.next/static/development/_ssgManifest.js +1 -0
  139. package/example/.next/static/image/components/image.66235d2f01fd4fba70eb3938db05810e.jpg +0 -0
  140. package/example/.next/static/webpack/0588aaab49febd8cfe1c.webpack.hot-update.json +1 -0
  141. package/example/.next/static/webpack/072a7d130e228881d052.webpack.hot-update.json +1 -0
  142. package/example/.next/static/webpack/0762084187c63da9472d.webpack.hot-update.json +1 -0
  143. package/example/.next/static/webpack/0cea8b02db9004a9010b.webpack.hot-update.json +1 -0
  144. package/example/.next/static/webpack/0e5144f94622b3a25db6.webpack.hot-update.json +1 -0
  145. package/example/.next/static/webpack/1252cfc380272b4fe2e6.webpack.hot-update.json +1 -0
  146. package/example/.next/static/webpack/1402ac884dae19bf86c6.webpack.hot-update.json +1 -0
  147. package/example/.next/static/webpack/147aac9d3d7030a41f7f.webpack.hot-update.json +1 -0
  148. package/example/.next/static/webpack/1bda8bbbca0e0f13f045.webpack.hot-update.json +1 -0
  149. package/example/.next/static/webpack/234d4ce3b70ffd983ba8.webpack.hot-update.json +1 -0
  150. package/example/.next/static/webpack/26b79f15961d39636a40.webpack.hot-update.json +1 -0
  151. package/example/.next/static/webpack/2826318bc6ba4bd9d644.webpack.hot-update.json +1 -0
  152. package/example/.next/static/webpack/2a955e2b9072adb73190.webpack.hot-update.json +1 -0
  153. package/example/.next/static/webpack/2c2aaee83efae1379187.webpack.hot-update.json +1 -0
  154. package/example/.next/static/webpack/3555adce6517c2f7e42e.webpack.hot-update.json +1 -0
  155. package/example/.next/static/webpack/3588af142e46a835343c.webpack.hot-update.json +1 -0
  156. package/example/.next/static/webpack/37f12cbe9b48a34c52c2.webpack.hot-update.json +1 -0
  157. package/example/.next/static/webpack/3ac52037129af449eb72.webpack.hot-update.json +1 -0
  158. package/example/.next/static/webpack/3b42c94e63de900303b9.webpack.hot-update.json +1 -0
  159. package/example/.next/static/webpack/3c79280973f09aaa87fe.webpack.hot-update.json +1 -0
  160. package/example/.next/static/webpack/3c87c0ea5ce694e8d1c5.webpack.hot-update.json +1 -0
  161. package/example/.next/static/webpack/3de319507c766ee73bea.webpack.hot-update.json +1 -0
  162. package/example/.next/static/webpack/43b43eb8c73ce45f78f3.webpack.hot-update.json +1 -0
  163. package/example/.next/static/webpack/43c79a23f821cd622aee.webpack.hot-update.json +1 -0
  164. package/example/.next/static/webpack/4e0a0f884a956cbb5abe.webpack.hot-update.json +1 -0
  165. package/example/.next/static/webpack/50a19b6d8c63681a6f59.webpack.hot-update.json +1 -0
  166. package/example/.next/static/webpack/51822142283bf3a4fb5a.webpack.hot-update.json +1 -0
  167. package/example/.next/static/webpack/55ee69f8d85488769153.webpack.hot-update.json +1 -0
  168. package/example/.next/static/webpack/57d0775bfd690a4598a7.webpack.hot-update.json +1 -0
  169. package/example/.next/static/webpack/585753f40a2ba758aaeb.webpack.hot-update.json +1 -0
  170. package/example/.next/static/webpack/58da75bd3cf67c71206b.webpack.hot-update.json +1 -0
  171. package/example/.next/static/webpack/5d0aa62f686882951598.webpack.hot-update.json +1 -0
  172. package/example/.next/static/webpack/5de110501cdd600f11d7.webpack.hot-update.json +1 -0
  173. package/example/.next/static/webpack/63775ccd9a7849e5764c.webpack.hot-update.json +1 -0
  174. package/example/.next/static/webpack/6b4663280b1db8f5e905.webpack.hot-update.json +1 -0
  175. package/example/.next/static/webpack/6d11705f01219ee2fa3d.webpack.hot-update.json +1 -0
  176. package/example/.next/static/webpack/6d4eca6985c3546f0f71.webpack.hot-update.json +1 -0
  177. package/example/.next/static/webpack/6e6063845501820278cd.webpack.hot-update.json +1 -0
  178. package/example/.next/static/webpack/74a36e7ef8e1ce4fdf4a.webpack.hot-update.json +1 -0
  179. package/example/.next/static/webpack/796fe50a2b9d66aec2d7.webpack.hot-update.json +1 -0
  180. package/example/.next/static/webpack/878b2eb56dd102f8d1de.webpack.hot-update.json +1 -0
  181. package/example/.next/static/webpack/8d58abc5879781fbdb2f.webpack.hot-update.json +1 -0
  182. package/example/.next/static/webpack/8f405c984e4934b20605.webpack.hot-update.json +1 -0
  183. package/example/.next/static/webpack/90295054405377c77f5b.webpack.hot-update.json +1 -0
  184. package/example/.next/static/webpack/9310bbbf11c1977e9d98.webpack.hot-update.json +1 -0
  185. package/example/.next/static/webpack/9a0237d669946cc844e6.webpack.hot-update.json +1 -0
  186. package/example/.next/static/webpack/9aeee506244bc34b7b4b.webpack.hot-update.json +1 -0
  187. package/example/.next/static/webpack/9f473ce1942e5fdb3632.webpack.hot-update.json +1 -0
  188. package/example/.next/static/webpack/a1185fb9adfe5b70bc2f.webpack.hot-update.json +1 -0
  189. package/example/.next/static/webpack/a11eb25c0fca8e105e00.webpack.hot-update.json +1 -0
  190. package/example/.next/static/webpack/a48bbb1152e41e6a3cf2.webpack.hot-update.json +1 -0
  191. package/example/.next/static/webpack/aa3b500d2bc6950dbadd.webpack.hot-update.json +1 -0
  192. package/example/.next/static/webpack/ab0b9af23ef3fd93299c.webpack.hot-update.json +1 -0
  193. package/example/.next/static/webpack/aea6a75d56441fbbdaff.webpack.hot-update.json +1 -0
  194. package/example/.next/static/webpack/af81bfc5f0a8c32c3b51.webpack.hot-update.json +1 -0
  195. package/example/.next/static/webpack/b370b882a7b8cbf89abd.webpack.hot-update.json +1 -0
  196. package/example/.next/static/webpack/b3e2c4a7565fcfca527f.webpack.hot-update.json +1 -0
  197. package/example/.next/static/webpack/c6068e16d94c09cfd6b6.webpack.hot-update.json +1 -0
  198. package/example/.next/static/webpack/c73596b5b037cb23ec6b.webpack.hot-update.json +1 -0
  199. package/example/.next/static/webpack/c7dab37225cb7bc65af3.webpack.hot-update.json +1 -0
  200. package/example/.next/static/webpack/d2f930e23e921b06ed5c.webpack.hot-update.json +1 -0
  201. package/example/.next/static/webpack/d371d7c066578693521e.webpack.hot-update.json +1 -0
  202. package/example/.next/static/webpack/d965a3cf3815af872d29.webpack.hot-update.json +1 -0
  203. package/example/.next/static/webpack/da33d321cff0dda32eb0.webpack.hot-update.json +1 -0
  204. package/example/.next/static/webpack/dba31d980c30d691d16b.webpack.hot-update.json +1 -0
  205. package/example/.next/static/webpack/dd8aa6ef77cd74d84ec3.webpack.hot-update.json +1 -0
  206. package/example/.next/static/webpack/e15c892c8dbe9bc25020.webpack.hot-update.json +1 -0
  207. package/example/.next/static/webpack/e8bf5676cc19a6345ad3.webpack.hot-update.json +1 -0
  208. package/example/.next/static/webpack/eddd97db36cfbd0a1e7c.webpack.hot-update.json +1 -0
  209. package/example/.next/static/webpack/f031b79058783bc1558e.webpack.hot-update.json +1 -0
  210. package/example/.next/static/webpack/f3fa39ef803627283382.webpack.hot-update.json +1 -0
  211. package/example/.next/static/webpack/f48796a76815229d67ab.webpack.hot-update.json +1 -0
  212. package/example/.next/static/webpack/feb45f4041e620b79d86.webpack.hot-update.json +1 -0
  213. package/example/.next/static/webpack/ff24e5856387293df7e5.webpack.hot-update.json +1 -0
  214. package/example/.next/static/webpack/pages/index.072a7d130e228881d052.hot-update.js +22 -0
  215. package/example/.next/static/webpack/pages/index.0762084187c63da9472d.hot-update.js +22 -0
  216. package/example/.next/static/webpack/pages/index.0cea8b02db9004a9010b.hot-update.js +22 -0
  217. package/example/.next/static/webpack/pages/index.0e5144f94622b3a25db6.hot-update.js +22 -0
  218. package/example/.next/static/webpack/pages/index.1402ac884dae19bf86c6.hot-update.js +22 -0
  219. package/example/.next/static/webpack/pages/index.147aac9d3d7030a41f7f.hot-update.js +22 -0
  220. package/example/.next/static/webpack/pages/index.26b79f15961d39636a40.hot-update.js +22 -0
  221. package/example/.next/static/webpack/pages/index.2a955e2b9072adb73190.hot-update.js +22 -0
  222. package/example/.next/static/webpack/pages/index.3555adce6517c2f7e42e.hot-update.js +22 -0
  223. package/example/.next/static/webpack/pages/index.37f12cbe9b48a34c52c2.hot-update.js +22 -0
  224. package/example/.next/static/webpack/pages/index.3ac52037129af449eb72.hot-update.js +22 -0
  225. package/example/.next/static/webpack/pages/index.3c79280973f09aaa87fe.hot-update.js +22 -0
  226. package/example/.next/static/webpack/pages/index.43b43eb8c73ce45f78f3.hot-update.js +22 -0
  227. package/example/.next/static/webpack/pages/index.43c79a23f821cd622aee.hot-update.js +22 -0
  228. package/example/.next/static/webpack/pages/index.4e0a0f884a956cbb5abe.hot-update.js +22 -0
  229. package/example/.next/static/webpack/pages/index.50a19b6d8c63681a6f59.hot-update.js +22 -0
  230. package/example/.next/static/webpack/pages/index.51822142283bf3a4fb5a.hot-update.js +22 -0
  231. package/example/.next/static/webpack/pages/index.58da75bd3cf67c71206b.hot-update.js +22 -0
  232. package/example/.next/static/webpack/pages/index.5d0aa62f686882951598.hot-update.js +22 -0
  233. package/example/.next/static/webpack/pages/index.5de110501cdd600f11d7.hot-update.js +22 -0
  234. package/example/.next/static/webpack/pages/index.63775ccd9a7849e5764c.hot-update.js +22 -0
  235. package/example/.next/static/webpack/pages/index.6d11705f01219ee2fa3d.hot-update.js +22 -0
  236. package/example/.next/static/webpack/pages/index.6d4eca6985c3546f0f71.hot-update.js +22 -0
  237. package/example/.next/static/webpack/pages/index.6e6063845501820278cd.hot-update.js +22 -0
  238. package/example/.next/static/webpack/pages/index.74a36e7ef8e1ce4fdf4a.hot-update.js +22 -0
  239. package/example/.next/static/webpack/pages/index.796fe50a2b9d66aec2d7.hot-update.js +22 -0
  240. package/example/.next/static/webpack/pages/index.8d58abc5879781fbdb2f.hot-update.js +22 -0
  241. package/example/.next/static/webpack/pages/index.90295054405377c77f5b.hot-update.js +22 -0
  242. package/example/.next/static/webpack/pages/index.9310bbbf11c1977e9d98.hot-update.js +22 -0
  243. package/example/.next/static/webpack/pages/index.9a0237d669946cc844e6.hot-update.js +22 -0
  244. package/example/.next/static/webpack/pages/index.9aeee506244bc34b7b4b.hot-update.js +22 -0
  245. package/example/.next/static/webpack/pages/index.9f473ce1942e5fdb3632.hot-update.js +22 -0
  246. package/example/.next/static/webpack/pages/index.a48bbb1152e41e6a3cf2.hot-update.js +22 -0
  247. package/example/.next/static/webpack/pages/index.aa3b500d2bc6950dbadd.hot-update.js +22 -0
  248. package/example/.next/static/webpack/pages/index.aea6a75d56441fbbdaff.hot-update.js +22 -0
  249. package/example/.next/static/webpack/pages/index.b3e2c4a7565fcfca527f.hot-update.js +22 -0
  250. package/example/.next/static/webpack/pages/index.c6068e16d94c09cfd6b6.hot-update.js +22 -0
  251. package/example/.next/static/webpack/pages/index.c7dab37225cb7bc65af3.hot-update.js +22 -0
  252. package/example/.next/static/webpack/pages/index.d2f930e23e921b06ed5c.hot-update.js +22 -0
  253. package/example/.next/static/webpack/pages/index.d371d7c066578693521e.hot-update.js +22 -0
  254. package/example/.next/static/webpack/pages/index.d965a3cf3815af872d29.hot-update.js +22 -0
  255. package/example/.next/static/webpack/pages/index.dba31d980c30d691d16b.hot-update.js +22 -0
  256. package/example/.next/static/webpack/pages/index.dd8aa6ef77cd74d84ec3.hot-update.js +22 -0
  257. package/example/.next/static/webpack/pages/index.e15c892c8dbe9bc25020.hot-update.js +22 -0
  258. package/example/.next/static/webpack/pages/index.e8bf5676cc19a6345ad3.hot-update.js +22 -0
  259. package/example/.next/static/webpack/pages/index.eddd97db36cfbd0a1e7c.hot-update.js +22 -0
  260. package/example/.next/static/webpack/pages/index.f3fa39ef803627283382.hot-update.js +22 -0
  261. package/example/.next/static/webpack/pages/index.f48796a76815229d67ab.hot-update.js +22 -0
  262. package/example/.next/static/webpack/pages/index.feb45f4041e620b79d86.hot-update.js +22 -0
  263. package/example/.next/static/webpack/webpack.0588aaab49febd8cfe1c.hot-update.js +19 -0
  264. package/example/.next/static/webpack/webpack.072a7d130e228881d052.hot-update.js +19 -0
  265. package/example/.next/static/webpack/webpack.0762084187c63da9472d.hot-update.js +19 -0
  266. package/example/.next/static/webpack/webpack.0cea8b02db9004a9010b.hot-update.js +19 -0
  267. package/example/.next/static/webpack/webpack.0e5144f94622b3a25db6.hot-update.js +19 -0
  268. package/example/.next/static/webpack/webpack.1252cfc380272b4fe2e6.hot-update.js +19 -0
  269. package/example/.next/static/webpack/webpack.1402ac884dae19bf86c6.hot-update.js +19 -0
  270. package/example/.next/static/webpack/webpack.147aac9d3d7030a41f7f.hot-update.js +19 -0
  271. package/example/.next/static/webpack/webpack.1bda8bbbca0e0f13f045.hot-update.js +19 -0
  272. package/example/.next/static/webpack/webpack.234d4ce3b70ffd983ba8.hot-update.js +19 -0
  273. package/example/.next/static/webpack/webpack.26b79f15961d39636a40.hot-update.js +19 -0
  274. package/example/.next/static/webpack/webpack.2826318bc6ba4bd9d644.hot-update.js +19 -0
  275. package/example/.next/static/webpack/webpack.2a955e2b9072adb73190.hot-update.js +19 -0
  276. package/example/.next/static/webpack/webpack.2c2aaee83efae1379187.hot-update.js +19 -0
  277. package/example/.next/static/webpack/webpack.3555adce6517c2f7e42e.hot-update.js +19 -0
  278. package/example/.next/static/webpack/webpack.3588af142e46a835343c.hot-update.js +19 -0
  279. package/example/.next/static/webpack/webpack.37f12cbe9b48a34c52c2.hot-update.js +19 -0
  280. package/example/.next/static/webpack/webpack.3ac52037129af449eb72.hot-update.js +19 -0
  281. package/example/.next/static/webpack/webpack.3b42c94e63de900303b9.hot-update.js +19 -0
  282. package/example/.next/static/webpack/webpack.3c79280973f09aaa87fe.hot-update.js +19 -0
  283. package/example/.next/static/webpack/webpack.3c87c0ea5ce694e8d1c5.hot-update.js +19 -0
  284. package/example/.next/static/webpack/webpack.3de319507c766ee73bea.hot-update.js +19 -0
  285. package/example/.next/static/webpack/webpack.43b43eb8c73ce45f78f3.hot-update.js +19 -0
  286. package/example/.next/static/webpack/webpack.43c79a23f821cd622aee.hot-update.js +19 -0
  287. package/example/.next/static/webpack/webpack.4e0a0f884a956cbb5abe.hot-update.js +19 -0
  288. package/example/.next/static/webpack/webpack.50a19b6d8c63681a6f59.hot-update.js +19 -0
  289. package/example/.next/static/webpack/webpack.51822142283bf3a4fb5a.hot-update.js +19 -0
  290. package/example/.next/static/webpack/webpack.55ee69f8d85488769153.hot-update.js +19 -0
  291. package/example/.next/static/webpack/webpack.57d0775bfd690a4598a7.hot-update.js +19 -0
  292. package/example/.next/static/webpack/webpack.585753f40a2ba758aaeb.hot-update.js +19 -0
  293. package/example/.next/static/webpack/webpack.58da75bd3cf67c71206b.hot-update.js +19 -0
  294. package/example/.next/static/webpack/webpack.5d0aa62f686882951598.hot-update.js +19 -0
  295. package/example/.next/static/webpack/webpack.5de110501cdd600f11d7.hot-update.js +19 -0
  296. package/example/.next/static/webpack/webpack.63775ccd9a7849e5764c.hot-update.js +19 -0
  297. package/example/.next/static/webpack/webpack.6b4663280b1db8f5e905.hot-update.js +19 -0
  298. package/example/.next/static/webpack/webpack.6d11705f01219ee2fa3d.hot-update.js +19 -0
  299. package/example/.next/static/webpack/webpack.6d4eca6985c3546f0f71.hot-update.js +19 -0
  300. package/example/.next/static/webpack/webpack.6e6063845501820278cd.hot-update.js +19 -0
  301. package/example/.next/static/webpack/webpack.74a36e7ef8e1ce4fdf4a.hot-update.js +19 -0
  302. package/example/.next/static/webpack/webpack.796fe50a2b9d66aec2d7.hot-update.js +19 -0
  303. package/example/.next/static/webpack/webpack.878b2eb56dd102f8d1de.hot-update.js +19 -0
  304. package/example/.next/static/webpack/webpack.8d58abc5879781fbdb2f.hot-update.js +19 -0
  305. package/example/.next/static/webpack/webpack.8f405c984e4934b20605.hot-update.js +30 -0
  306. package/example/.next/static/webpack/webpack.90295054405377c77f5b.hot-update.js +19 -0
  307. package/example/.next/static/webpack/webpack.9310bbbf11c1977e9d98.hot-update.js +19 -0
  308. package/example/.next/static/webpack/webpack.9a0237d669946cc844e6.hot-update.js +19 -0
  309. package/example/.next/static/webpack/webpack.9aeee506244bc34b7b4b.hot-update.js +19 -0
  310. package/example/.next/static/webpack/webpack.9f473ce1942e5fdb3632.hot-update.js +19 -0
  311. package/example/.next/static/webpack/webpack.a1185fb9adfe5b70bc2f.hot-update.js +19 -0
  312. package/example/.next/static/webpack/webpack.a11eb25c0fca8e105e00.hot-update.js +19 -0
  313. package/example/.next/static/webpack/webpack.a48bbb1152e41e6a3cf2.hot-update.js +19 -0
  314. package/example/.next/static/webpack/webpack.aa3b500d2bc6950dbadd.hot-update.js +19 -0
  315. package/example/.next/static/webpack/webpack.ab0b9af23ef3fd93299c.hot-update.js +19 -0
  316. package/example/.next/static/webpack/webpack.aea6a75d56441fbbdaff.hot-update.js +19 -0
  317. package/example/.next/static/webpack/webpack.af81bfc5f0a8c32c3b51.hot-update.js +19 -0
  318. package/example/.next/static/webpack/webpack.b370b882a7b8cbf89abd.hot-update.js +19 -0
  319. package/example/.next/static/webpack/webpack.b3e2c4a7565fcfca527f.hot-update.js +19 -0
  320. package/example/.next/static/webpack/webpack.c6068e16d94c09cfd6b6.hot-update.js +19 -0
  321. package/example/.next/static/webpack/webpack.c73596b5b037cb23ec6b.hot-update.js +19 -0
  322. package/example/.next/static/webpack/webpack.c7dab37225cb7bc65af3.hot-update.js +19 -0
  323. package/example/.next/static/webpack/webpack.d2f930e23e921b06ed5c.hot-update.js +19 -0
  324. package/example/.next/static/webpack/webpack.d371d7c066578693521e.hot-update.js +19 -0
  325. package/example/.next/static/webpack/webpack.d965a3cf3815af872d29.hot-update.js +19 -0
  326. package/example/.next/static/webpack/webpack.da33d321cff0dda32eb0.hot-update.js +19 -0
  327. package/example/.next/static/webpack/webpack.dba31d980c30d691d16b.hot-update.js +19 -0
  328. package/example/.next/static/webpack/webpack.dd8aa6ef77cd74d84ec3.hot-update.js +19 -0
  329. package/example/.next/static/webpack/webpack.e15c892c8dbe9bc25020.hot-update.js +19 -0
  330. package/example/.next/static/webpack/webpack.e8bf5676cc19a6345ad3.hot-update.js +19 -0
  331. package/example/.next/static/webpack/webpack.eddd97db36cfbd0a1e7c.hot-update.js +19 -0
  332. package/example/.next/static/webpack/webpack.f031b79058783bc1558e.hot-update.js +19 -0
  333. package/example/.next/static/webpack/webpack.f3fa39ef803627283382.hot-update.js +19 -0
  334. package/example/.next/static/webpack/webpack.f48796a76815229d67ab.hot-update.js +19 -0
  335. package/example/.next/static/webpack/webpack.feb45f4041e620b79d86.hot-update.js +19 -0
  336. package/example/.next/static/webpack/webpack.ff24e5856387293df7e5.hot-update.js +19 -0
  337. package/example/package.json +4 -4
  338. package/package.json +7 -7
@@ -0,0 +1,22 @@
1
+ /*
2
+ * ATTENTION: An "eval-source-map" devtool has been used.
3
+ * This devtool is neither made for production nor for readable output files.
4
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
+ * or disable the default devtool with "devtool: false".
7
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
+ */
9
+ self["webpackHotUpdate_N_E"]("pages/index",{
10
+
11
+ /***/ "../components/Image.tsx":
12
+ /*!*******************************!*\
13
+ !*** ../components/Image.tsx ***!
14
+ \*******************************/
15
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
16
+
17
+ "use strict";
18
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isStaticRequire\": function() { return /* binding */ isStaticRequire; },\n/* harmony export */ \"isStaticImageData\": function() { return /* binding */ isStaticImageData; },\n/* harmony export */ \"isStaticImport\": function() { return /* binding */ isStaticImport; },\n/* harmony export */ \"getInt\": function() { return /* binding */ getInt; },\n/* harmony export */ \"Image\": function() { return /* binding */ Image; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"../../../node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties */ \"../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/defineProperty */ \"../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bedrock-layout/use-forwarded-ref */ \"../../../node_modules/@bedrock-layout/use-forwarded-ref/lib/index.m.js\");\n/* harmony import */ var next_dist_next_server_server_image_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/next-server/server/image-config */ \"../../../node_modules/next/dist/next-server/server/image-config.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/head */ \"../../../node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"../../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _config_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config/config */ \"../config/config.ts\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\nvar _jsxFileName = \"/Users/paulhachmang/Sites/reachdigital-next/packages/image/components/Image.tsx\",\n _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,_Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable prefer-const */\n\n/* eslint-disable no-param-reassign */\n\n/* eslint-disable @next/next/no-img-element */\n\n/* eslint-disable jsx-a11y/alt-text */\n\n\n\n\n\n\nif (false) {}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined];\nconst loaders = new Map([['imgix', _config_config__WEBPACK_IMPORTED_MODULE_6__.imgixLoader], ['cloudinary', _config_config__WEBPACK_IMPORTED_MODULE_6__.cloudinaryLoader], ['akamai', _config_config__WEBPACK_IMPORTED_MODULE_6__.akamaiLoader], ['default', _config_config__WEBPACK_IMPORTED_MODULE_6__.defaultLoader]]);\nconst VALID_LAYOUT_VALUES = ['fill', 'responsive', 'intrinsic', 'fixed'];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src));\n} // sort smallest to largest\n\nconst allSizes = [..._config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes, ..._config_config__WEBPACK_IMPORTED_MODULE_6__.configImageSizes];\n_config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes.sort((a, b) => a - b);\nallSizes.sort((a, b) => a - b);\n\nfunction getWidths(width, layout, sizes = '', scale) {\n if (sizes && layout === 'fill' || layout === 'responsive') {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = []; // eslint-disable-next-line no-cond-assign\n\n for (let match; match = viewportWidthRe.exec(sizes); match) {\n var _match;\n\n percentSizes.push(parseInt((_match = match) === null || _match === void 0 ? void 0 : _match[2], 10));\n }\n\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter(s => s >= _config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes[0] * smallestRatio),\n kind: 'w'\n };\n } // Find all the \"px\" sizes used in the sizes prop\n\n\n const pxWidthRe = /(^|\\s)(1?\\d+)px/g;\n const pxSizes = []; // eslint-disable-next-line no-cond-assign\n\n for (let match; match = pxWidthRe.exec(sizes); match) {\n var _match2;\n\n pxSizes.push(parseInt((_match2 = match) === null || _match2 === void 0 ? void 0 : _match2[2], 10));\n }\n\n if (pxSizes.length) {\n return {\n widths: pxSizes.map(pxSize => {\n var _allSizes$filter, _allSizes$filter2;\n\n const scaled = (_allSizes$filter = allSizes.filter(s => s * scale > pxSize)) === null || _allSizes$filter === void 0 ? void 0 : _allSizes$filter[0];\n const dpr2 = (_allSizes$filter2 = allSizes.filter(s => s > pxSize)) === null || _allSizes$filter2 === void 0 ? void 0 : _allSizes$filter2[0];\n return scale > 1 ? Math.max(scaled, dpr2) : Math.min(scaled, dpr2);\n }),\n kind: 'w'\n };\n }\n\n return {\n widths: allSizes,\n kind: 'w'\n };\n }\n\n if (typeof width !== 'number' || layout === 'fill') {\n return {\n widths: _config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes,\n kind: 'w'\n };\n }\n\n const widths = [...new Set( // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2\n /* , width * 3*/\n ].map(w => allSizes.find(p => p >= w) || allSizes[allSizes.length - 1]))];\n return {\n widths,\n kind: 'x'\n };\n}\n\nfunction generateSourceAttrs({\n src,\n layout,\n width,\n quality = 44,\n sizes,\n loader,\n scale\n}) {\n const {\n widths,\n kind\n } = getWidths(width, layout, sizes, scale);\n return {\n sizes: !sizes && kind === 'w' ? `50vw` : sizes,\n srcSet: widths.map((w, i) => `${loader({\n src,\n quality,\n width: w\n })} ${kind === 'w' ? Math.round(w * scale) : i + 1}${kind}`).join(', ')\n };\n}\n\nfunction getInt(x) {\n if (typeof x === 'number') {\n return x;\n }\n\n if (typeof x === 'string') {\n return parseInt(x, 10);\n }\n\n return undefined;\n}\n\nfunction defaultImageLoader(loaderProps) {\n const load = loaders.get(_config_config__WEBPACK_IMPORTED_MODULE_6__.configLoader);\n\n if (load) {\n return load(_objectSpread({\n root: _config_config__WEBPACK_IMPORTED_MODULE_6__.configPath\n }, loaderProps));\n }\n\n throw new Error(`[@reachdigital/image]: Unknown \"loader\" found in \"next.config.js\". Expected: ${next_dist_next_server_server_image_config__WEBPACK_IMPORTED_MODULE_3__.VALID_LOADERS.join(', ')}. Received: ${_config_config__WEBPACK_IMPORTED_MODULE_6__.configLoader}`);\n} // See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\n\n\nfunction removePlaceholder(img, placeholder) {\n if (placeholder === 'blur' && img) {\n const handleLoad = () => {\n if (!img.src.startsWith('data:')) {\n const p = 'decode' in img ? img.decode() : Promise.resolve(); // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n p.catch(() => {}).then(() => {\n img.style.filter = 'none';\n img.style.backgroundSize = 'none';\n img.style.backgroundImage = 'none';\n });\n }\n };\n\n if (img.complete) {\n // If the real image fails to load, this will still remove the placeholder.\n // This is the desired behavior for now, and will be revisited when error\n // handling is worked on for the image component itself.\n handleLoad();\n } else {\n img.onload = handleLoad;\n }\n }\n}\n/** Checks whether an image is currently in the viewport */\n\n\nfunction isInViewport(elem) {\n const {\n top,\n right,\n bottom,\n left\n } = elem.getBoundingClientRect();\n return bottom >= 0 && right >= 0 && top <= window.innerHeight && left <= window.innerWidth;\n}\n\nfunction isSizesRecord(sizes) {\n return typeof sizes === 'object';\n}\n\nfunction sizesEntries(sizes) {\n if (isSizesRecord(sizes)) {\n return Object.entries(sizes).map(([breakpoint, size]) => [Number(breakpoint), size]).sort(([sizeA], [sizeB]) => sizeB - sizeA);\n }\n\n return [[0, sizes]];\n}\n\nfunction generateSizesString(sizes) {\n return sizesEntries(sizes).map(([breakpoint, size]) => {\n if (breakpoint === 0) return size;\n return `(min-width: ${breakpoint}px) ${size}`;\n }).join(', ');\n}\n/** Since we're handling stuff ourselves we omit some stuff */\n\n\nconst Image = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().forwardRef(_c = _s((_ref, forwardedRef) => {\n var _generateSizesString, _loading;\n\n _s();\n\n let {\n src,\n sizes: sizesIncomming,\n unoptimized = false,\n loading,\n layout = 'responsive',\n quality,\n width,\n height,\n style,\n loader = defaultImageLoader,\n placeholder = 'empty',\n blurDataURL\n } = _ref,\n imgProps = (0,_Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__.default)(_ref, [\"src\", \"sizes\", \"unoptimized\", \"loading\", \"layout\", \"quality\", \"width\", \"height\", \"style\", \"loader\", \"placeholder\", \"blurDataURL\"]);\n\n const ref = (0,_bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__.default)(forwardedRef);\n const sizesOrig = layout === 'fixed' && width && !sizesIncomming ? `${width}px` : sizesIncomming;\n const sizes = (_generateSizesString = generateSizesString(sizesOrig)) !== null && _generateSizesString !== void 0 ? _generateSizesString : '50vw'; // If no responsive sizes are given, we're defaulting to 50vw on mobile\n // const [sizes, setSizes] = useState(toSizesString(sizesOrig) ?? `50vw`)\n\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {\n if (false) {}\n if (!ref.current) return () => {};\n\n function reportSizes(img) {\n var _sizesEntries$find;\n\n let ratio;\n const reportedSize = img.clientWidth;\n let msg = '';\n const [breakpoint, size] = (_sizesEntries$find = sizesEntries(sizesOrig).find(([s]) => s === 0 ? true : window.matchMedia(`(min-width: ${s})`).matches)) !== null && _sizesEntries$find !== void 0 ? _sizesEntries$find : [0, '100vw'];\n\n if (size) {\n const el = document.createElement('div');\n el.setAttribute('style', `width: ${size}`);\n document.body.appendChild(el);\n const measuredWidth = el.getBoundingClientRect().width; // el.remove()\n\n ratio = measuredWidth ** 2 / reportedSize ** 2;\n msg += `Image has \"sizes\" property set, but size '${breakpoint > 0 ? `min-width(${breakpoint}px) ` : ''}${size}' is incorrect.`;\n } else {\n msg += `Image has no \"sizes\" property set.`;\n ratio = (window.innerWidth * 0.5) ** 2 / reportedSize ** 2;\n }\n\n const round = nr => Math.round(nr * 100) / 100;\n\n if (ratio > 1.2) {\n console.warn(`[@reachdigital/image]: ${msg} Currently downloading an image that has ${round(ratio)}x too many pixels`, img);\n } else if (ratio < 0.8) {\n console.warn(`[@reachdigital/image]: ${msg} Currently downloading an image that has ${round(1 / ratio)}x too few pixels`, img);\n }\n } // Warn the user when he isn't providing sizes and how to proceed\n\n\n const ro = new ResizeObserver(([entry]) => {\n const img = entry.target;\n if (img.naturalWidth) reportSizes(img);\n\n img.onload = () => reportSizes(img);\n });\n ro.observe(ref.current);\n return () => ro.disconnect();\n }, [layout, ref, sizesOrig, src, width]);\n let staticSrc = '';\n\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n\n if (!staticImageData.src) {\n throw new Error(`[@reachdigital/image]: An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(staticImageData)}`);\n }\n\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n\n if (!layout || layout !== 'fill') {\n height = height || staticImageData.height;\n width = width || staticImageData.width;\n\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(`[@reachdigital/image]: An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(staticImageData)}`);\n }\n }\n }\n\n src = typeof src === 'string' ? src : staticSrc;\n const widthInt = getInt(width);\n const heightInt = getInt(height);\n const qualityInt = getInt(quality);\n\n if (true) {\n if (!src) {\n throw new Error(`[@reachdigital/image]: Image is missing required \"src\" property. Make sure you pass \"src\" in props to the \\`@reachdigital/image\\` component. Received: ${JSON.stringify({\n width,\n height,\n quality\n })}`);\n }\n\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"layout\" property. Provided \"${layout}\" should be one of ${VALID_LAYOUT_VALUES.map(String).join(',')}.`);\n }\n\n if (typeof widthInt !== 'undefined' && Number.isNaN(widthInt) || typeof heightInt !== 'undefined' && Number.isNaN(heightInt)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"width\" or \"height\" property. These should be numeric values.`);\n }\n\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(String).join(',')}.`);\n }\n\n if (placeholder === 'blur') {\n if (layout !== 'fill' && (widthInt || 0) * (heightInt || 0) < 1600) {\n console.warn(`[@reachdigital/image]: Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder='blur'\" property to improve performance.`);\n }\n\n if (!blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp']; // should match next-image-loader\n\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(',')}\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`);\n }\n }\n }\n\n if (typeof widthInt === 'undefined' && typeof heightInt === 'undefined') {\n if (layout === 'fill') {// handle fill\n } else if (true) {\n // <Image src=\"i.png\" />\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" must use \"width\" and \"height\" properties or \"layout='fill'\" property.`);\n }\n }\n\n (_loading = loading) !== null && _loading !== void 0 ? _loading : loading = 'lazy';\n\n if (src && src.startsWith('data:')) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n }\n\n const attributes3x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 1.5\n });\n const attributes2x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 1\n });\n const attributes1x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 0.5\n });\n if (layout !== 'fixed' && !style) style = {};\n if (layout === 'responsive') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: 'auto'\n });\n if (layout === 'intrinsic') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: 'auto',\n maxWidth: width\n });\n if (layout === 'fill') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: '100%'\n });\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [unoptimized ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", _objectSpread(_objectSpread({\n ref: ref\n }, imgProps), {}, {\n src: src,\n width: width,\n height: height,\n style: style\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 625,\n columnNumber: 11\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"picture\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", _objectSpread({\n media: \"(-webkit-min-device-pixel-ratio: 2.5)\"\n }, attributes3x), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 628,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", _objectSpread({\n media: \"(-webkit-min-device-pixel-ratio: 1.5)\"\n }, attributes2x), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 629,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", _objectSpread(_objectSpread(_objectSpread({\n ref: ref\n }, imgProps), attributes1x), {}, {\n loading: loading,\n width: width,\n height: height,\n style: style\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 630,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 627,\n columnNumber: 11\n }, undefined), loading === 'eager' && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_4___default()), {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"link\", {\n rel: \"preload\",\n as: \"image\",\n media: \"(-webkit-min-device-pixel-ratio: 2.5)\" // @ts-expect-error imagesrcset is not yet in the link element type\n ,\n imagesrcset: attributes1x.srcSet,\n imagesizes: sizes\n }, `__nimg-2x-${attributes1x.srcSet}${attributes1x.sizes}`, false, {\n fileName: _jsxFileName,\n lineNumber: 643,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 642,\n columnNumber: 11\n }, undefined)]\n }, void 0, true);\n}, \"uc1ywpQv+s/tGng4xj/L6VVOIq8=\", false, function () {\n return [_bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__.default];\n}));\n_c2 = Image;\nImage.displayName = 'NextPicture';\n\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"Image$React.forwardRef\");\n$RefreshReg$(_c2, \"Image\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uL2NvbXBvbmVudHMvSW1hZ2UudHN4PzJiNmQiXSwibmFtZXMiOlsiVkFMSURfTE9BRElOR19WQUxVRVMiLCJ1bmRlZmluZWQiLCJsb2FkZXJzIiwiTWFwIiwiaW1naXhMb2FkZXIiLCJjbG91ZGluYXJ5TG9hZGVyIiwiYWthbWFpTG9hZGVyIiwiZGVmYXVsdExvYWRlciIsIlZBTElEX0xBWU9VVF9WQUxVRVMiLCJpc1N0YXRpY1JlcXVpcmUiLCJzcmMiLCJkZWZhdWx0IiwiaXNTdGF0aWNJbWFnZURhdGEiLCJpc1N0YXRpY0ltcG9ydCIsImFsbFNpemVzIiwiY29uZmlnRGV2aWNlU2l6ZXMiLCJjb25maWdJbWFnZVNpemVzIiwiYSIsImIiLCJzb3J0IiwiZ2V0V2lkdGhzIiwid2lkdGgiLCJsYXlvdXQiLCJzaXplcyIsInNjYWxlIiwidmlld3BvcnRXaWR0aFJlIiwicGVyY2VudFNpemVzIiwibWF0Y2giLCJleGVjIiwicHVzaCIsInBhcnNlSW50IiwibGVuZ3RoIiwic21hbGxlc3RSYXRpbyIsIk1hdGgiLCJtaW4iLCJ3aWR0aHMiLCJmaWx0ZXIiLCJzIiwia2luZCIsInB4V2lkdGhSZSIsInB4U2l6ZXMiLCJtYXAiLCJweFNpemUiLCJzY2FsZWQiLCJkcHIyIiwibWF4IiwiU2V0IiwidyIsImZpbmQiLCJwIiwiZ2VuZXJhdGVTb3VyY2VBdHRycyIsInF1YWxpdHkiLCJsb2FkZXIiLCJzcmNTZXQiLCJpIiwicm91bmQiLCJqb2luIiwiZ2V0SW50IiwieCIsImRlZmF1bHRJbWFnZUxvYWRlciIsImxvYWRlclByb3BzIiwibG9hZCIsImdldCIsImNvbmZpZ0xvYWRlciIsInJvb3QiLCJjb25maWdQYXRoIiwiRXJyb3IiLCJWQUxJRF9MT0FERVJTIiwicmVtb3ZlUGxhY2Vob2xkZXIiLCJpbWciLCJwbGFjZWhvbGRlciIsImhhbmRsZUxvYWQiLCJzdGFydHNXaXRoIiwiZGVjb2RlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjYXRjaCIsInRoZW4iLCJzdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZEltYWdlIiwiY29tcGxldGUiLCJvbmxvYWQiLCJpc0luVmlld3BvcnQiLCJlbGVtIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJpbm5lcldpZHRoIiwiaXNTaXplc1JlY29yZCIsInNpemVzRW50cmllcyIsIk9iamVjdCIsImVudHJpZXMiLCJicmVha3BvaW50Iiwic2l6ZSIsIk51bWJlciIsInNpemVBIiwic2l6ZUIiLCJnZW5lcmF0ZVNpemVzU3RyaW5nIiwiSW1hZ2UiLCJSZWFjdCIsImZvcndhcmRlZFJlZiIsInNpemVzSW5jb21taW5nIiwidW5vcHRpbWl6ZWQiLCJsb2FkaW5nIiwiaGVpZ2h0IiwiYmx1ckRhdGFVUkwiLCJpbWdQcm9wcyIsInJlZiIsInVzZUZvcndhcmRlZFJlZiIsInNpemVzT3JpZyIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJyZXBvcnRTaXplcyIsInJhdGlvIiwicmVwb3J0ZWRTaXplIiwiY2xpZW50V2lkdGgiLCJtc2ciLCJtYXRjaE1lZGlhIiwibWF0Y2hlcyIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwibWVhc3VyZWRXaWR0aCIsIm5yIiwiY29uc29sZSIsIndhcm4iLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwiZW50cnkiLCJ0YXJnZXQiLCJuYXR1cmFsV2lkdGgiLCJvYnNlcnZlIiwiZGlzY29ubmVjdCIsInN0YXRpY1NyYyIsInN0YXRpY0ltYWdlRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ3aWR0aEludCIsImhlaWdodEludCIsInF1YWxpdHlJbnQiLCJpbmNsdWRlcyIsIlN0cmluZyIsImlzTmFOIiwiVkFMSURfQkxVUl9FWFQiLCJhdHRyaWJ1dGVzM3giLCJhdHRyaWJ1dGVzMngiLCJhdHRyaWJ1dGVz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QUFBQSxtQkFGRixlQUdFO0FBQ0UsV0FBRyxFQUFFekM7QUFEUCxTQUVNRCxRQUZOLEdBR00yQyxZQUhOO0FBSUUsZUFBTyxFQUFFOUMsT0FKWDtBQUtFLGFBQUssRUFBRXZGLEtBTFQ7QUFNRSxjQUFNLEVBQUV3RixNQU5WO0FBT0UsYUFBSyxFQUFFL0I7QUFQVDtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFKSixFQWtCRzhCLE9BQU8sS0FBSyxPQUFaLGlCQUNDLDhEQUFDLGtEQUFEO0FBQUEsNkJBQ0U7QUFFRSxXQUFHLEVBQUMsU0FGTjtBQUdFLFVBQUUsRUFBQyxPQUhMO0FBSUUsYUFBSyxFQUFDLHVDQUpSLENBS0U7QUFMRjtBQU1FLG1CQUFXLEVBQUU4QyxZQUFZLENBQUNyRyxNQU41QjtBQU9FLGtCQUFVLEVBQUU5QjtBQVBkLFNBQ1EsYUFBWW1JLFlBQVksQ0FBQ3JHLE1BQU8sR0FBRXFHLFlBQVksQ0FBQ25JLEtBQU0sRUFEN0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkJKO0FBQUEsa0JBREY7QUFrQ0QsQ0FqUVc7QUFBQSxVQW1CRTBGLHNFQW5CRjtBQUFBLEdBQWQ7TUFBTVYsSztBQW1RTkEsS0FBSyxDQUFDcUQsV0FBTixHQUFvQixhQUFwQjtBQUVBIiwiZmlsZSI6Ii4uL2NvbXBvbmVudHMvSW1hZ2UudHN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWNvbnN0ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvYWx0LXRleHQgKi9cbmltcG9ydCB1c2VGb3J3YXJkZWRSZWYgZnJvbSAnQGJlZHJvY2stbGF5b3V0L3VzZS1mb3J3YXJkZWQtcmVmJ1xuaW1wb3J0IHsgTG9hZGVyVmFsdWUsIFZBTElEX0xPQURFUlMgfSBmcm9tICduZXh0L2Rpc3QvbmV4dC1zZXJ2ZXIvc2VydmVyL2ltYWdlLWNvbmZpZydcbmltcG9ydCBIZWFkIGZyb20gJ25leHQvaGVhZCdcbmltcG9ydCB0eXBlIHsgSW1hZ2VMb2FkZXJQcm9wcywgSW1hZ2VMb2FkZXIgfSBmcm9tICduZXh0L2ltYWdlJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VSZXNpemVPYnNlcnZlciBmcm9tICd1c2UtcmVzaXplLW9ic2VydmVyJ1xuaW1wb3J0IHtcbiAgYWthbWFpTG9hZGVyLFxuICBjbG91ZGluYXJ5TG9hZGVyLFxuICBjb25maWdEZXZpY2VTaXplcyxcbiAgY29uZmlnSW1hZ2VTaXplcyxcbiAgY29uZmlnTG9hZGVyLFxuICBjb25maWdQYXRoLFxuICBEZWZhdWx0SW1hZ2VMb2FkZXJQcm9wcyxcbiAgZGVmYXVsdExvYWRlcixcbiAgaW1naXhMb2FkZXIsXG59IGZyb20gJy4uL2NvbmZpZy9jb25maWcnXG5pbXBvcnQgdXNlQ29ubmVjdGlvblR5cGUgZnJvbSAnLi4vaG9va3MvdXNlQ29ubmVjdGlvblR5cGUnXG5cbmlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgZ2xvYmFsLl9fTkVYVF9JTUFHRV9JTVBPUlRFRCA9IHRydWVcbn1cblxuZXhwb3J0IHR5cGUgeyBJbWFnZUxvYWRlclByb3BzLCBJbWFnZUxvYWRlciB9XG5cbmNvbnN0IFZBTElEX0xPQURJTkdfVkFMVUVTID0gWydsYXp5JywgJ2VhZ2VyJywgdW5kZWZpbmVkXSBhcyBjb25zdFxudHlwZSBMb2FkaW5nVmFsdWUgPSB0eXBlb2YgVkFMSURfTE9BRElOR19WQUxVRVNbbnVtYmVyXVxuXG5jb25zdCBsb2FkZXJzID0gbmV3IE1hcDxMb2FkZXJWYWx1ZSwgKHByb3BzOiBEZWZhdWx0SW1hZ2VMb2FkZXJQcm9wcykgPT4gc3RyaW5nPihbXG4gIFsnaW1naXgnLCBpbWdpeExvYWRlcl0sXG4gIFsnY2xvdWRpbmFyeScsIGNsb3VkaW5hcnlMb2FkZXJdLFxuICBbJ2FrYW1haScsIGFrYW1haUxvYWRlcl0sXG4gIFsnZGVmYXVsdCcsIGRlZmF1bHRMb2FkZXJdLFxuXSlcblxuY29uc3QgVkFMSURfTEFZT1VUX1ZBTFVFUyA9IFsnZmlsbCcsICdyZXNwb25zaXZlJywgJ2ludHJpbnNpYycsICdmaXhlZCddIGFzIGNvbnN0XG50eXBlIExheW91dFZhbHVlID0gJ2ZpbGwnIHwgJ2ZpeGVkJyB8ICdpbnRyaW5zaWMnIHwgJ3Jlc3BvbnNpdmUnIHwgdW5kZWZpbmVkXG5cbnR5cGUgUGxhY2Vob2xkZXJWYWx1ZSA9ICdibHVyJyB8ICdlbXB0eSdcblxudHlwZSBJbWdFbGVtZW50U3R5bGUgPSBOb25OdWxsYWJsZTxKU1guSW50cmluc2ljRWxlbWVudHNbJ2ltZyddWydzdHlsZSddPlxuXG5pbnRlcmZhY2UgU3RhdGljSW1hZ2VEYXRhIHtcbiAgc3JjOiBzdHJpbmdcbiAgaGVpZ2h0OiBudW1iZXJcbiAgd2lkdGg6IG51bWJlclxuICBibHVyRGF0YVVSTD86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgU3RhdGljUmVxdWlyZSB7XG4gIGRlZmF1bHQ6IFN0YXRpY0ltYWdlRGF0YVxufVxuXG50eXBlIFN0YXRpY0ltcG9ydCA9IFN0YXRpY1JlcXVpcmUgfCBTdGF0aWNJbWFnZURhdGFcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljUmVxdWlyZShzcmM6IFN0YXRpY1JlcXVpcmUgfCBTdGF0aWNJbWFnZURhdGEpOiBzcmMgaXMgU3RhdGljUmVxdWlyZSB7XG4gIHJldHVybiAoc3JjIGFzIFN0YXRpY1JlcXVpcmUpLmRlZmF1bHQgIT09IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNJbWFnZURhdGEoc3JjOiBTdGF0aWNSZXF1aXJlIHwgU3RhdGljSW1hZ2VEYXRhKTogc3JjIGlzIFN0YXRpY0ltYWdlRGF0YSB7XG4gIHJldHVybiAoc3JjIGFzIFN0YXRpY0ltYWdlRGF0YSkuc3JjICE9PSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljSW1wb3J0KHNyYzogc3RyaW5nIHwgU3RhdGljSW1wb3J0KTogc3JjIGlzIFN0YXRpY0ltcG9ydCB7XG4gIHJldHVybiB0eXBlb2Ygc3JjID09PSAnb2JqZWN0JyAmJiAoaXNTdGF0aWNSZXF1aXJlKHNyYykgfHwgaXNTdGF0aWNJbWFnZURhdGEoc3JjKSlcbn1cblxuLy8gc29ydCBzbWFsbGVzdCB0byBsYXJnZXN0XG5jb25zdCBhbGxTaXplcyA9IFsuLi5jb25maWdEZXZpY2VTaXplcywgLi4uY29uZmlnSW1hZ2VTaXplc11cbmNvbmZpZ0RldmljZVNpemVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuYWxsU2l6ZXMuc29ydCgoYSwgYikgPT4gYSAtIGIpXG5cbmZ1bmN0aW9uIGdldFdpZHRocyhcbiAgd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgbGF5b3V0OiBMYXlvdXRWYWx1ZSxcbiAgc2l6ZXMgPSAnJyxcbiAgc2NhbGU6IG51bWJlcixcbik6IHsgd2lkdGhzOiBudW1iZXJbXTsga2luZDogJ3cnIHwgJ3gnIH0ge1xuICBpZiAoKHNpemVzICYmIGxheW91dCA9PT0gJ2ZpbGwnKSB8fCBsYXlvdXQgPT09ICdyZXNwb25zaXZlJykge1xuICAgIC8vIEZpbmQgYWxsIHRoZSBcInZ3XCIgcGVyY2VudCBzaXplcyB1c2VkIGluIHRoZSBzaXplcyBwcm9wXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aFJlID0gLyhefFxccykoMT9cXGQ/XFxkKXZ3L2dcbiAgICBjb25zdCBwZXJjZW50U2l6ZXM6IG51bWJlcltdID0gW11cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgICBmb3IgKGxldCBtYXRjaDogc3RyaW5nW10gfCBudWxsOyAobWF0Y2ggPSB2aWV3cG9ydFdpZHRoUmUuZXhlYyhzaXplcykpOyBtYXRjaCkge1xuICAgICAgcGVyY2VudFNpemVzLnB1c2gocGFyc2VJbnQobWF0Y2g/LlsyXSwgMTApKVxuICAgIH1cbiAgICBpZiAocGVyY2VudFNpemVzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc21hbGxlc3RSYXRpbyA9IE1hdGgubWluKC4uLnBlcmNlbnRTaXplcykgKiAwLjAxXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoczogYWxsU2l6ZXMuZmlsdGVyKChzKSA9PiBzID49IGNvbmZpZ0RldmljZVNpemVzWzBdICogc21hbGxlc3RSYXRpbyksXG4gICAgICAgIGtpbmQ6ICd3JyxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5kIGFsbCB0aGUgXCJweFwiIHNpemVzIHVzZWQgaW4gdGhlIHNpemVzIHByb3BcbiAgICBjb25zdCBweFdpZHRoUmUgPSAvKF58XFxzKSgxP1xcZCspcHgvZ1xuICAgIGNvbnN0IHB4U2l6ZXM6IG51bWJlcltdID0gW11cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgICBmb3IgKGxldCBtYXRjaDogc3RyaW5nW10gfCBudWxsOyAobWF0Y2ggPSBweFdpZHRoUmUuZXhlYyhzaXplcykpOyBtYXRjaCkge1xuICAgICAgcHhTaXplcy5wdXNoKHBhcnNlSW50KG1hdGNoPy5bMl0sIDEwKSlcbiAgICB9XG5cbiAgICBpZiAocHhTaXplcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoczogcHhTaXplcy5tYXAoKHB4U2l6ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNjYWxlZCA9IGFsbFNpemVzLmZpbHRlcigocykgPT4gcyAqIHNjYWxlID4gcHhTaXplKT8uWzBdXG4gICAgICAgICAgY29uc3QgZHByMiA9IGFsbFNpemVzLmZpbHRlcigocykgPT4gcyA+IHB4U2l6ZSk/LlswXVxuICAgICAgICAgIHJldHVybiBzY2FsZSA+IDEgPyBNYXRoLm1heChzY2FsZWQsIGRwcjIpIDogTWF0aC5taW4oc2NhbGVkLCBkcHIyKVxuICAgICAgICB9KSxcbiAgICAgICAga2luZDogJ3cnLFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHdpZHRoczogYWxsU2l6ZXMsIGtpbmQ6ICd3JyB9XG4gIH1cbiAgaWYgKHR5cGVvZiB3aWR0aCAhPT0gJ251bWJlcicgfHwgbGF5b3V0ID09PSAnZmlsbCcpIHtcbiAgICByZXR1cm4geyB3aWR0aHM6IGNvbmZpZ0RldmljZVNpemVzLCBraW5kOiAndycgfVxuICB9XG5cbiAgY29uc3Qgd2lkdGhzID0gW1xuICAgIC4uLm5ldyBTZXQoXG4gICAgICAvLyA+IFRoaXMgbWVhbnMgdGhhdCBtb3N0IE9MRUQgc2NyZWVucyB0aGF0IHNheSB0aGV5IGFyZSAzeCByZXNvbHV0aW9uLFxuICAgICAgLy8gPiBhcmUgYWN0dWFsbHkgM3ggaW4gdGhlIGdyZWVuIGNvbG9yLCBidXQgb25seSAxLjV4IGluIHRoZSByZWQgYW5kXG4gICAgICAvLyA+IGJsdWUgY29sb3JzLiBTaG93aW5nIGEgM3ggcmVzb2x1dGlvbiBpbWFnZSBpbiB0aGUgYXBwIHZzIGEgMnhcbiAgICAgIC8vID4gcmVzb2x1dGlvbiBpbWFnZSB3aWxsIGJlIHZpc3VhbGx5IHRoZSBzYW1lLCB0aG91Z2ggdGhlIDN4IGltYWdlXG4gICAgICAvLyA+IHRha2VzIHNpZ25pZmljYW50bHkgbW9yZSBkYXRhLiBFdmVuIHRydWUgM3ggcmVzb2x1dGlvbiBzY3JlZW5zIGFyZVxuICAgICAgLy8gPiB3YXN0ZWZ1bCBhcyB0aGUgaHVtYW4gZXllIGNhbm5vdCBzZWUgdGhhdCBsZXZlbCBvZiBkZXRhaWwgd2l0aG91dFxuICAgICAgLy8gPiBzb21ldGhpbmcgbGlrZSBhIG1hZ25pZnlpbmcgZ2xhc3MuXG4gICAgICAvLyBodHRwczovL2Jsb2cudHdpdHRlci5jb20vZW5naW5lZXJpbmcvZW5fdXMvdG9waWNzL2luZnJhc3RydWN0dXJlLzIwMTkvY2FwcGluZy1pbWFnZS1maWRlbGl0eS1vbi11bHRyYS1oaWdoLXJlc29sdXRpb24tZGV2aWNlcy5odG1sXG4gICAgICBbd2lkdGgsIHdpZHRoICogMiAvKiAsIHdpZHRoICogMyovXS5tYXAoXG4gICAgICAgICh3KSA9PiBhbGxTaXplcy5maW5kKChwKSA9PiBwID49IHcpIHx8IGFsbFNpemVzW2FsbFNpemVzLmxlbmd0aCAtIDFdLFxuICAgICAgKSxcbiAgICApLFxuICBdXG4gIHJldHVybiB7IHdpZHRocywga2luZDogJ3gnIH1cbn1cblxudHlwZSBHZW5JbWdBdHRyc0RhdGEgPSB7XG4gIHNyYzogc3RyaW5nXG4gIGxheW91dDogTGF5b3V0VmFsdWVcbiAgbG9hZGVyOiBJbWFnZUxvYWRlclxuICB3aWR0aD86IG51bWJlclxuICBxdWFsaXR5PzogbnVtYmVyXG4gIHNpemVzPzogc3RyaW5nXG4gIHNjYWxlOiBudW1iZXJcbn1cblxudHlwZSBHZW5JbWdBdHRyc1Jlc3VsdCA9IHtcbiAgc3JjU2V0OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgc2l6ZXM6IHN0cmluZyB8IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVNvdXJjZUF0dHJzKHtcbiAgc3JjLFxuICBsYXlvdXQsXG4gIHdpZHRoLFxuICBxdWFsaXR5ID0gNDQsXG4gIHNpemVzLFxuICBsb2FkZXIsXG4gIHNjYWxlLFxufTogR2VuSW1nQXR0cnNEYXRhKTogR2VuSW1nQXR0cnNSZXN1bHQge1xuICBjb25zdCB7IHdpZHRocywga2luZCB9ID0gZ2V0V2lkdGhzKHdpZHRoLCBsYXlvdXQsIHNpemVzLCBzY2FsZSlcblxuICByZXR1cm4ge1xuICAgIHNpemVzOiAhc2l6ZXMgJiYga2luZCA9PT0gJ3cnID8gYDUwdndgIDogc2l6ZXMsXG4gICAgc3JjU2V0OiB3aWR0aHNcbiAgICAgIC5tYXAoXG4gICAgICAgICh3LCBpKSA9PlxuICAgICAgICAgIGAke2xvYWRlcih7IHNyYywgcXVhbGl0eSwgd2lkdGg6IHcgfSl9ICR7XG4gICAgICAgICAgICBraW5kID09PSAndycgPyBNYXRoLnJvdW5kKHcgKiBzY2FsZSkgOiBpICsgMVxuICAgICAgICAgIH0ke2tpbmR9YCxcbiAgICAgIClcbiAgICAgIC5qb2luKCcsICcpLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnQoeDogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4geFxuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQoeCwgMTApXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBkZWZhdWx0SW1hZ2VMb2FkZXIobG9hZGVyUHJvcHM6IEltYWdlTG9hZGVyUHJvcHMpIHtcbiAgY29uc3QgbG9hZCA9IGxvYWRlcnMuZ2V0KGNvbmZpZ0xvYWRlcilcbiAgaWYgKGxvYWQpIHtcbiAgICByZXR1cm4gbG9hZCh7IHJvb3Q6IGNvbmZpZ1BhdGgsIC4uLmxvYWRlclByb3BzIH0pXG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IFVua25vd24gXCJsb2FkZXJcIiBmb3VuZCBpbiBcIm5leHQuY29uZmlnLmpzXCIuIEV4cGVjdGVkOiAke1ZBTElEX0xPQURFUlMuam9pbihcbiAgICAgICcsICcsXG4gICAgKX0uIFJlY2VpdmVkOiAke2NvbmZpZ0xvYWRlcn1gLFxuICApXG59XG5cbi8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMzk3Nzc4MzMvMjY2NTM1IGZvciB3aHkgd2UgdXNlIHRoaXMgcmVmXG4vLyBoYW5kbGVyIGluc3RlYWQgb2YgdGhlIGltZydzIG9uTG9hZCBhdHRyaWJ1dGUuXG5mdW5jdGlvbiByZW1vdmVQbGFjZWhvbGRlcihpbWc6IEhUTUxJbWFnZUVsZW1lbnQgfCBudWxsLCBwbGFjZWhvbGRlcjogUGxhY2Vob2xkZXJWYWx1ZSkge1xuICBpZiAocGxhY2Vob2xkZXIgPT09ICdibHVyJyAmJiBpbWcpIHtcbiAgICBjb25zdCBoYW5kbGVMb2FkID0gKCkgPT4ge1xuICAgICAgaWYgKCFpbWcuc3JjLnN0YXJ0c1dpdGgoJ2RhdGE6JykpIHtcbiAgICAgICAgY29uc3QgcCA9ICdkZWNvZGUnIGluIGltZyA/IGltZy5kZWNvZGUoKSA6IFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgcC5jYXRjaCgoKSA9PiB7fSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgaW1nLnN0eWxlLmZpbHRlciA9ICdub25lJ1xuICAgICAgICAgIGltZy5zdHlsZS5iYWNrZ3JvdW5kU2l6ZSA9ICdub25lJ1xuICAgICAgICAgIGltZy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAnbm9uZSdcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGltZy5jb21wbGV0ZSkge1xuICAgICAgLy8gSWYgdGhlIHJlYWwgaW1hZ2UgZmFpbHMgdG8gbG9hZCwgdGhpcyB3aWxsIHN0aWxsIHJlbW92ZSB0aGUgcGxhY2Vob2xkZXIuXG4gICAgICAvLyBUaGlzIGlzIHRoZSBkZXNpcmVkIGJlaGF2aW9yIGZvciBub3csIGFuZCB3aWxsIGJlIHJldmlzaXRlZCB3aGVuIGVycm9yXG4gICAgICAvLyBoYW5kbGluZyBpcyB3b3JrZWQgb24gZm9yIHRoZSBpbWFnZSBjb21wb25lbnQgaXRzZWxmLlxuICAgICAgaGFuZGxlTG9hZCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGltZy5vbmxvYWQgPSBoYW5kbGVMb2FkXG4gICAgfVxuICB9XG59XG5cbi8qKiBDaGVja3Mgd2hldGhlciBhbiBpbWFnZSBpcyBjdXJyZW50bHkgaW4gdGhlIHZpZXdwb3J0ICovXG5mdW5jdGlvbiBpc0luVmlld3BvcnQoZWxlbTogSFRNTEltYWdlRWxlbWVudCk6IGJvb2xlYW4ge1xuICBjb25zdCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICByZXR1cm4gYm90dG9tID49IDAgJiYgcmlnaHQgPj0gMCAmJiB0b3AgPD0gd2luZG93LmlubmVySGVpZ2h0ICYmIGxlZnQgPD0gd2luZG93LmlubmVyV2lkdGhcbn1cblxudHlwZSBTaXplc1N0cmluZyA9XG4gIHwgYCR7bnVtYmVyfXZ3YFxuICB8IGAke251bWJlcn1weGBcbiAgfCBgY2FsYygke3N0cmluZ30pYFxuICB8IGBtaW4oJHtzdHJpbmd9KWBcbiAgfCBgbWF4KCR7c3RyaW5nfSlgXG50eXBlIFNpemVzUmVjb3JkID0gUmVjb3JkPG51bWJlciwgU2l6ZXNTdHJpbmc+XG50eXBlIFNpemVzID0gU2l6ZXNTdHJpbmcgfCBTaXplc1JlY29yZCB8IHVuZGVmaW5lZFxuXG5mdW5jdGlvbiBpc1NpemVzUmVjb3JkKHNpemVzPzogU2l6ZXMpOiBzaXplcyBpcyBTaXplc1JlY29yZCB7XG4gIHJldHVybiB0eXBlb2Ygc2l6ZXMgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIHNpemVzRW50cmllcyhzaXplczogU2l6ZXMpOiAocmVhZG9ubHkgW251bWJlciwgU2l6ZXNTdHJpbmcgfCB1bmRlZmluZWRdKVtdIHtcbiAgaWYgKGlzU2l6ZXNSZWNvcmQoc2l6ZXMpKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHNpemVzKVxuICAgICAgLm1hcCgoW2JyZWFrcG9pbnQsIHNpemVdKSA9PiBbTnVtYmVyKGJyZWFrcG9pbnQpLCBzaXplXSBhcyBjb25zdClcbiAgICAgIC5zb3J0KChbc2l6ZUFdLCBbc2l6ZUJdKSA9PiBzaXplQiAtIHNpemVBKVxuICB9XG4gIHJldHVybiBbWzAsIHNpemVzXSBhcyBjb25zdF1cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVTaXplc1N0cmluZyhzaXplcz86IFNpemVzKSB7XG4gIHJldHVybiBzaXplc0VudHJpZXMoc2l6ZXMpXG4gICAgLm1hcCgoW2JyZWFrcG9pbnQsIHNpemVdKSA9PiB7XG4gICAgICBpZiAoYnJlYWtwb2ludCA9PT0gMCkgcmV0dXJuIHNpemVcbiAgICAgIHJldHVybiBgKG1pbi13aWR0aDogJHticmVha3BvaW50fXB4KSAke3NpemV9YFxuICAgIH0pXG4gICAgLmpvaW4oJywgJylcbn1cblxuLyoqIFNpbmNlIHdlJ3JlIGhhbmRsaW5nIHN0dWZmIG91cnNlbHZlcyB3ZSBvbWl0IHNvbWUgc3R1ZmYgKi9cbnR5cGUgSW50cmlzaW5jSW1hZ2UgPSBPbWl0PFxuICBKU1guSW50cmluc2ljRWxlbWVudHNbJ2ltZyddLFxuICAnc3JjJyB8ICdzcmNTZXQnIHwgJ3JlZicgfCAnd2lkdGgnIHwgJ2hlaWdodCcgfCAnbG9hZGluZycgfCAnc2l6ZXMnIHwgJ3dpZHRoJyB8ICdoZWlnaHQnXG4+ICYgeyBsb2FkaW5nPzogTG9hZGluZ1ZhbHVlIH1cblxuZXhwb3J0IHR5cGUgQmFzZUltYWdlUHJvcHMgPSBJbnRyaXNpbmNJbWFnZSAmIHtcbiAgbG9hZGVyPzogSW1hZ2VMb2FkZXJcbiAgcXVhbGl0eT86IG51bWJlciB8IHN0cmluZ1xuICB1bm9wdGltaXplZD86IGJvb2xlYW5cblxuICAvKipcbiAgICogUG9zc2libGUgdmFsdWVzOlxuICAgKlxuICAgKiAtIGBmaXhlZGA6IHRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgbm90IGNoYW5nZSBhcyB0aGUgdmlld3BvcnQgY2hhbmdlcyAobm8gcmVzcG9uc2l2ZW5lc3MpXG4gICAqICAgc2ltaWxhciB0byB0aGUgbmF0aXZlIGltZyBlbGVtZW50LlxuICAgKiAtIGBpbnRyaW5zaWNgOiB0aGUgaW1hZ2Ugd2lsbCBzY2FsZSB0aGUgZGltZW5zaW9ucyBkb3duIGZvciBzbWFsbGVyIHZpZXdwb3J0cyBidXQgbWFpbnRhaW4gdGhlXG4gICAqICAgb3JpZ2luYWwgZGltZW5zaW9ucyAodGhlIHdpZHRoIGFuZCBoZWlnaHQgZ2l2ZW4pIGZvciBsYXJnZXIgdmlld3BvcnRzLlxuICAgKiAtIGByZXNwb25zaXZlYDogdGhlIGltYWdlIHdpbGwgc2NhbGUgdGhlIGRpbWVuc2lvbnMgZG93biBmb3Igc21hbGxlciB2aWV3cG9ydHMgYW5kIHNjYWxlIHVwIGZvclxuICAgKiAgIGxhcmdlciB2aWV3cG9ydHMuXG4gICAqL1xuICBsYXlvdXQ/OiBMYXlvdXRWYWx1ZVxuXG4gIC8qKiBTaXplIHRoZSBpbWFnZSBpcyByZW5kZXJlZCBvbiBtb2JpbGUgKi9cbiAgc2l6ZXM/OiBTaXplc1N0cmluZyB8IFNpemVzUmVjb3JkXG59XG5cbi8qKlxuICogV2hlbiBgZml4ZWRgLCB0aGUgaW1hZ2UgZGltZW5zaW9ucyB3aWxsIG5vdCBjaGFuZ2UgYXMgdGhlIHZpZXdwb3J0IGNoYW5nZXMgKG5vIHJlc3BvbnNpdmVuZXNzKVxuICogc2ltaWxhciB0byB0aGUgbmF0aXZlIGltZyBlbGVtZW50LlxuICpcbiAqIGBgYHRzeFxuICogPGltZyB3aWR0aD17d2lkdGh9IGhlaWdodD17aGVpZ2h0fSAvPlxuICogYGBgXG4gKlxuICogVXNlIGNhc2U6IFdoZW4geW91IHdhbnQgdG8gcmVuZGVyIHRoZSBpbWFnZSBhdCB0aGUgZ2l2ZW4gd2lkdGgvaGVpZ2h0IGFuZCBub3QgY2hhbmdlIGJhc2VkIG9uIGJyb3dzZXIgc2l6ZS5cbiAqL1xudHlwZSBMYXlvdXRUeXBlTmF0aXZlID0ge1xuICBsYXlvdXQ/OiAnZml4ZWQnXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggYW5kIHRoZSBoZWlnaHQgdmFsdWVzIGFyZSB0aGUgdmFsdWVzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBhc3BlY3QgcmF0aW8gb20gdGhlIGltYWdlXG4gICAqIGFuZCByZXNlcnZlIHNwYWNlIGluIHRoZSBicm93c2VyLlxuICAgKlxuICAgKiBXaXRoIGxheW91dD1maXhlZCBhbmQgbm8gc3R5bGluZyB0aGUgaW1hZ2UgaXMgcmVuZGVyZWQgYXQgdGhlIHdpZHRoIGFuZCBoZWlnaHQgZ2l2ZW4uXG4gICAqL1xuICB3aWR0aDogbnVtYmVyXG4gIGhlaWdodDogbnVtYmVyXG59XG5cbi8qKlxuICogV2hlbiBgaW50cmluc2ljYCwgdGhlIGltYWdlIHdpbGwgc2NhbGUgdGhlIGRpbWVuc2lvbnMgZG93biBmb3Igc21hbGxlciB2aWV3cG9ydHMgYnV0IG1haW50YWluIHRoZVxuICogb3JpZ2luYWwgZGltZW5zaW9ucyAodGhlIHdpZHRoIGFuZCBoZWlnaHQgZ2l2ZW4pIGZvciBsYXJnZXIgdmlld3BvcnRzLlxuICpcbiAqIGBgYHRzeFxuICogPGltZyBzdHlsZT17eyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyBtYXhXaWR0aDogYCR7d2lkdGh9cHhgIH19XG4gKiBgYGBcbiAqXG4gKiBVc2UgY2FzZTogV2hlbiB5b3Ugd2FudCB0byByZW5kZXIgYW4gaW1hZ2UgYnV0IGRvbid0IHNjYWxlIGl0IHVwLlxuICovXG50eXBlIExheW91dFR5cGVJbnRyaW5zaWMgPSB7XG4gIGxheW91dD86ICdpbnRyaW5zaWMnXG5cbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuXG4gIHN0eWxlPzogT21pdDxJbWdFbGVtZW50U3R5bGUsICd3aWR0aCcgfCAnaGVpZ2h0JyB8ICdtYXhXaWR0aCc+XG59XG5cbi8qKlxuICogV2hlbiBgcmVzcG9uc2l2ZWAsIHRoZSBpbWFnZSB3aWxsIHNjYWxlIHRoZSBkaW1lbnNpb25zIGRvd24gZm9yIHNtYWxsZXIgdmlld3BvcnRzIGFuZCBzY2FsZSB1cFxuICogZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gKlxuICogYGBgdHN4XG4gKiA8aW1nIHN0eWxlPXt7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIG1heFdpZHRoOiAke3dpZHRofSB9fVxuICogYGBgXG4gKlxuICogVXNlIGNhc2U6IFdoZW4geW91IHdhbnQgdGhlIGltYWdlIHRvIGZpbGwgaXQncyBwYXJlbnQgY29udGFpbmVyIGluIHdpZHRoXG4gKi9cbnR5cGUgTGF5b3V0VHlwZVJlc3BvbnNpdmUgPSB7XG4gIGxheW91dD86ICdyZXNwb25zaXZlJ1xuXG4gIHdpZHRoOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcblxuICBzdHlsZT86IE9taXQ8SW1nRWxlbWVudFN0eWxlLCAnd2lkdGgnIHwgJ2hlaWdodCc+XG59XG5cbi8qKlxuICogV2hlbiBgZmlsbGAsIHRoZSBpbWFnZSB3aWxsIHN0cmV0Y2ggYm90aCB3aWR0aCBhbmQgaGVpZ2h0IHRvIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBwYXJlbnRcbiAqIGVsZW1lbnQsIHBhaXJlZCB3aXRoIHRoZSBvYmplY3RGaXQgcHJvcGVydHkuXG4gKlxuICogU2luY2UgdGhlIHdpZHRoL2hlaWdodCBpc24ndCByZXF1aXJlZCB0byByZW5kZXIgdGhlIHBhZ2Ugd2UgY2FuIG9taXQgaXQuXG4gKlxuICogYGBgdHN4XG4gKiA8aW1nIHdpZHRoPXt3aWR0aH0gaGVpZ2h0PXtoZWlnaHR9IHN0eWxlPXt7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMCUnIH19XG4gKiBgYGBcbiAqXG4gKiBVc2UgY2FzZTogV2hlbiB5b3UgaGF2ZSBhIHByZWRlZmluZWQgYXJlYSBzZXQgdG8gcmVuZGVyIGFuIGltYWdlXG4gKi9cbnR5cGUgTGF5b3V0VHlwZUZpbGwgPSB7XG4gIGxheW91dD86ICdmaWxsJ1xuXG4gIHdpZHRoPzogbmV2ZXJcbiAgaGVpZ2h0PzogbmV2ZXJcblxuICAvLyBvYmplY3RGaXQ6IEltZ0VsZW1lbnRTdHlsZVsnb2JqZWN0Rml0J11cbiAgc3R5bGU/OiBPbWl0PEltZ0VsZW1lbnRTdHlsZSwgJ3dpZHRoJyB8ICdoZWlnaHQnPlxufVxuXG5leHBvcnQgdHlwZSBTdHJpbmdJbWFnZVByb3BzID0ge1xuICBzcmM6IHN0cmluZ1xufSAmIChMYXlvdXRUeXBlRmlsbCB8IExheW91dFR5cGVSZXNwb25zaXZlIHwgTGF5b3V0VHlwZU5hdGl2ZSB8IExheW91dFR5cGVJbnRyaW5zaWMpICZcbiAgKFxuICAgIHwgeyBwbGFjZWhvbGRlcj86IEV4Y2x1ZGU8UGxhY2Vob2xkZXJWYWx1ZSwgJ2JsdXInPjsgYmx1ckRhdGFVUkw/OiBuZXZlciB9XG4gICAgfCB7IHBsYWNlaG9sZGVyOiAnYmx1cic7IGJsdXJEYXRhVVJMOiBzdHJpbmcgfVxuICApXG5cbmV4cG9ydCB0eXBlIE9iamVjdEltYWdlUHJvcHMgPSB7XG4gIHNyYzogU3RhdGljSW1wb3J0XG4gIHdpZHRoPzogbnVtYmVyXG4gIGhlaWdodD86IG51bWJlciB8IHN0cmluZ1xuICBsYXlvdXQ/OiBMYXlvdXRWYWx1ZVxuICBwbGFjZWhvbGRlcj86IFBsYWNlaG9sZGVyVmFsdWVcbiAgYmx1ckRhdGFVUkw/OiBuZXZlclxufVxuXG5leHBvcnQgdHlwZSBJbWFnZVByb3BzID0gQmFzZUltYWdlUHJvcHMgJiAoU3RyaW5nSW1hZ2VQcm9wcyB8IE9iamVjdEltYWdlUHJvcHMpXG5cbmV4cG9ydCB0eXBlIFN0cmluZ0ltYWdlID0gQmFzZUltYWdlUHJvcHMgJiBTdHJpbmdJbWFnZVByb3BzXG5leHBvcnQgdHlwZSBPYmplY3RJbWFnZSA9IEJhc2VJbWFnZVByb3BzICYgT2JqZWN0SW1hZ2VQcm9wc1xuXG5jb25zdCBJbWFnZSA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTEltYWdlRWxlbWVudCwgSW1hZ2VQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBzcmMsXG4gICAgICBzaXplczogc2l6ZXNJbmNvbW1pbmcsXG4gICAgICB1bm9wdGltaXplZCA9IGZhbHNlLFxuICAgICAgbG9hZGluZyxcbiAgICAgIGxheW91dCA9ICdyZXNwb25zaXZlJyxcbiAgICAgIHF1YWxpdHksXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHN0eWxlLFxuICAgICAgbG9hZGVyID0gZGVmYXVsdEltYWdlTG9hZGVyLFxuICAgICAgcGxhY2Vob2xkZXIgPSAnZW1wdHknLFxuICAgICAgYmx1ckRhdGFVUkwsXG4gICAgICAuLi5pbWdQcm9wc1xuICAgIH0sXG4gICAgZm9yd2FyZGVkUmVmLFxuICApID0+IHtcbiAgICBjb25zdCByZWYgPSB1c2VGb3J3YXJkZWRSZWYoZm9yd2FyZGVkUmVmKVxuXG4gICAgY29uc3Qgc2l6ZXNPcmlnID1cbiAgICAgIGxheW91dCA9PT0gJ2ZpeGVkJyAmJiB3aWR0aCAmJiAhc2l6ZXNJbmNvbW1pbmdcbiAgICAgICAgPyAoYCR7d2lkdGh9cHhgIGFzIFNpemVzU3RyaW5nKVxuICAgICAgICA6IHNpemVzSW5jb21taW5nXG5cbiAgICBjb25zdCBzaXplcyA9IGdlbmVyYXRlU2l6ZXNTdHJpbmcoc2l6ZXNPcmlnKSA/PyAnNTB2dydcblxuICAgIC8vIElmIG5vIHJlc3BvbnNpdmUgc2l6ZXMgYXJlIGdpdmVuLCB3ZSdyZSBkZWZhdWx0aW5nIHRvIDUwdncgb24gbW9iaWxlXG4gICAgLy8gY29uc3QgW3NpemVzLCBzZXRTaXplc10gPSB1c2VTdGF0ZSh0b1NpemVzU3RyaW5nKHNpemVzT3JpZykgPz8gYDUwdndgKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSByZXR1cm4gKCkgPT4ge31cbiAgICAgIGlmICghcmVmLmN1cnJlbnQpIHJldHVybiAoKSA9PiB7fVxuXG4gICAgICBmdW5jdGlvbiByZXBvcnRTaXplcyhpbWc6IEhUTUxJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgbGV0IHJhdGlvOiBudW1iZXJcblxuICAgICAgICBjb25zdCByZXBvcnRlZFNpemUgPSBpbWcuY2xpZW50V2lkdGhcblxuICAgICAgICBsZXQgbXNnID0gJydcbiAgICAgICAgY29uc3QgW2JyZWFrcG9pbnQsIHNpemVdID0gc2l6ZXNFbnRyaWVzKHNpemVzT3JpZykuZmluZCgoW3NdKSA9PlxuICAgICAgICAgIHMgPT09IDAgPyB0cnVlIDogd2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6ICR7c30pYCkubWF0Y2hlcyxcbiAgICAgICAgKSA/PyBbMCwgJzEwMHZ3J11cbiAgICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdzdHlsZScsIGB3aWR0aDogJHtzaXplfWApXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbClcbiAgICAgICAgICBjb25zdCBtZWFzdXJlZFdpZHRoID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhcbiAgICAgICAgICAvLyBlbC5yZW1vdmUoKVxuICAgICAgICAgIHJhdGlvID0gbWVhc3VyZWRXaWR0aCAqKiAyIC8gcmVwb3J0ZWRTaXplICoqIDJcbiAgICAgICAgICBtc2cgKz0gYEltYWdlIGhhcyBcInNpemVzXCIgcHJvcGVydHkgc2V0LCBidXQgc2l6ZSAnJHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnQgPiAwID8gYG1pbi13aWR0aCgke2JyZWFrcG9pbnR9cHgpIGAgOiAnJ1xuICAgICAgICAgIH0ke3NpemV9JyBpcyBpbmNvcnJlY3QuYFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1zZyArPSBgSW1hZ2UgaGFzIG5vIFwic2l6ZXNcIiBwcm9wZXJ0eSBzZXQuYFxuICAgICAgICAgIHJhdGlvID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC41KSAqKiAyIC8gcmVwb3J0ZWRTaXplICoqIDJcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdW5kID0gKG5yOiBudW1iZXIpID0+IE1hdGgucm91bmQobnIgKiAxMDApIC8gMTAwXG4gICAgICAgIGlmIChyYXRpbyA+IDEuMikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06ICR7bXNnfSBDdXJyZW50bHkgZG93bmxvYWRpbmcgYW4gaW1hZ2UgdGhhdCBoYXMgJHtyb3VuZChcbiAgICAgICAgICAgICAgcmF0aW8sXG4gICAgICAgICAgICApfXggdG9vIG1hbnkgcGl4ZWxzYCxcbiAgICAgICAgICAgIGltZyxcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAocmF0aW8gPCAwLjgpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiAke21zZ30gQ3VycmVudGx5IGRvd25sb2FkaW5nIGFuIGltYWdlIHRoYXQgaGFzICR7cm91bmQoXG4gICAgICAgICAgICAgIDEgLyByYXRpbyxcbiAgICAgICAgICAgICl9eCB0b28gZmV3IHBpeGVsc2AsXG4gICAgICAgICAgICBpbWcsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFdhcm4gdGhlIHVzZXIgd2hlbiBoZSBpc24ndCBwcm92aWRpbmcgc2l6ZXMgYW5kIGhvdyB0byBwcm9jZWVkXG4gICAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoW2VudHJ5XSkgPT4ge1xuICAgICAgICBjb25zdCBpbWcgPSBlbnRyeS50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudFxuICAgICAgICBpZiAoaW1nLm5hdHVyYWxXaWR0aCkgcmVwb3J0U2l6ZXMoaW1nKVxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4gcmVwb3J0U2l6ZXMoaW1nKVxuICAgICAgfSlcbiAgICAgIHJvLm9ic2VydmUocmVmLmN1cnJlbnQpXG5cbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbbGF5b3V0LCByZWYsIHNpemVzT3JpZywgc3JjLCB3aWR0aF0pXG5cbiAgICBsZXQgc3RhdGljU3JjID0gJydcbiAgICBpZiAoaXNTdGF0aWNJbXBvcnQoc3JjKSkge1xuICAgICAgY29uc3Qgc3RhdGljSW1hZ2VEYXRhID0gaXNTdGF0aWNSZXF1aXJlKHNyYykgPyBzcmMuZGVmYXVsdCA6IHNyY1xuICAgICAgaWYgKCFzdGF0aWNJbWFnZURhdGEuc3JjKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHN0YXRpY0ltYWdlRGF0YSxcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGJsdXJEYXRhVVJMID0gYmx1ckRhdGFVUkwgfHwgc3RhdGljSW1hZ2VEYXRhLmJsdXJEYXRhVVJMXG4gICAgICBzdGF0aWNTcmMgPSBzdGF0aWNJbWFnZURhdGEuc3JjXG4gICAgICBpZiAoIWxheW91dCB8fCBsYXlvdXQgIT09ICdmaWxsJykge1xuICAgICAgICBoZWlnaHQgPSBoZWlnaHQgfHwgc3RhdGljSW1hZ2VEYXRhLmhlaWdodFxuICAgICAgICB3aWR0aCA9IHdpZHRoIHx8IHN0YXRpY0ltYWdlRGF0YS53aWR0aFxuICAgICAgICBpZiAoIXN0YXRpY0ltYWdlRGF0YS5oZWlnaHQgfHwgIXN0YXRpY0ltYWdlRGF0YS53aWR0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEFuIG9iamVjdCBzaG91bGQgb25seSBiZSBwYXNzZWQgdG8gdGhlIGltYWdlIGNvbXBvbmVudCBzcmMgcGFyYW1ldGVyIGlmIGl0IGNvbWVzIGZyb20gYSBzdGF0aWMgaW1hZ2UgaW1wb3J0LiBJdCBtdXN0IGluY2x1ZGUgaGVpZ2h0IGFuZCB3aWR0aC4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgc3RhdGljSW1hZ2VEYXRhLFxuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzcmMgPSB0eXBlb2Ygc3JjID09PSAnc3RyaW5nJyA/IHNyYyA6IHN0YXRpY1NyY1xuXG4gICAgY29uc3Qgd2lkdGhJbnQgPSBnZXRJbnQod2lkdGgpXG4gICAgY29uc3QgaGVpZ2h0SW50ID0gZ2V0SW50KGhlaWdodClcbiAgICBjb25zdCBxdWFsaXR5SW50ID0gZ2V0SW50KHF1YWxpdHkpXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJzcmNcIiBwcm9wZXJ0eS4gTWFrZSBzdXJlIHlvdSBwYXNzIFwic3JjXCIgaW4gcHJvcHMgdG8gdGhlIFxcYEByZWFjaGRpZ2l0YWwvaW1hZ2VcXGAgY29tcG9uZW50LiBSZWNlaXZlZDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgd2lkdGgsIGhlaWdodCwgcXVhbGl0eSB9LFxuICAgICAgICAgICl9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKCFWQUxJRF9MQVlPVVRfVkFMVUVTLmluY2x1ZGVzKGxheW91dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJsYXlvdXRcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCIke2xheW91dH1cIiBzaG91bGQgYmUgb25lIG9mICR7VkFMSURfTEFZT1VUX1ZBTFVFUy5tYXAoXG4gICAgICAgICAgICBTdHJpbmcsXG4gICAgICAgICAgKS5qb2luKCcsJyl9LmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgKHR5cGVvZiB3aWR0aEludCAhPT0gJ3VuZGVmaW5lZCcgJiYgTnVtYmVyLmlzTmFOKHdpZHRoSW50KSkgfHxcbiAgICAgICAgKHR5cGVvZiBoZWlnaHRJbnQgIT09ICd1bmRlZmluZWQnICYmIE51bWJlci5pc05hTihoZWlnaHRJbnQpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwid2lkdGhcIiBvciBcImhlaWdodFwiIHByb3BlcnR5LiBUaGVzZSBzaG91bGQgYmUgbnVtZXJpYyB2YWx1ZXMuYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKCFWQUxJRF9MT0FESU5HX1ZBTFVFUy5pbmNsdWRlcyhsb2FkaW5nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgaW52YWxpZCBcImxvYWRpbmdcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCIke2xvYWRpbmd9XCIgc2hvdWxkIGJlIG9uZSBvZiAke1ZBTElEX0xPQURJTkdfVkFMVUVTLm1hcChcbiAgICAgICAgICAgIFN0cmluZyxcbiAgICAgICAgICApLmpvaW4oJywnKX0uYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKHBsYWNlaG9sZGVyID09PSAnYmx1cicpIHtcbiAgICAgICAgaWYgKGxheW91dCAhPT0gJ2ZpbGwnICYmICh3aWR0aEludCB8fCAwKSAqIChoZWlnaHRJbnQgfHwgMCkgPCAxNjAwKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyBzbWFsbGVyIHRoYW4gNDB4NDAuIENvbnNpZGVyIHJlbW92aW5nIHRoZSBcInBsYWNlaG9sZGVyPSdibHVyJ1wiIHByb3BlcnR5IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuYCxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFibHVyRGF0YVVSTCkge1xuICAgICAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gWydqcGVnJywgJ3BuZycsICd3ZWJwJ10gLy8gc2hvdWxkIG1hdGNoIG5leHQtaW1hZ2UtbG9hZGVyXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBcInBsYWNlaG9sZGVyPSdibHVyJ1wiIHByb3BlcnR5IGJ1dCBpcyBtaXNzaW5nIHRoZSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHkuXG4gICAgICAgICAgUG9zc2libGUgc29sdXRpb25zOlxuICAgICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXG4gICAgICAgICAgICAtIENoYW5nZSB0aGUgXCJzcmNcIiBwcm9wZXJ0eSB0byBhIHN0YXRpYyBpbXBvcnQgd2l0aCBvbmUgb2YgdGhlIHN1cHBvcnRlZCBmaWxlIHR5cGVzOiAke1ZBTElEX0JMVVJfRVhULmpvaW4oXG4gICAgICAgICAgICAgICcsJyxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICAtIFJlbW92ZSB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5LCBlZmZlY3RpdmVseSBubyBibHVyIGVmZmVjdFxuICAgICAgICAgIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcGxhY2Vob2xkZXItYmx1ci1kYXRhLXVybGAsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aWR0aEludCA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGhlaWdodEludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChsYXlvdXQgPT09ICdmaWxsJykge1xuICAgICAgICAvLyBoYW5kbGUgZmlsbFxuICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIDxJbWFnZSBzcmM9XCJpLnBuZ1wiIC8+XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIG11c3QgdXNlIFwid2lkdGhcIiBhbmQgXCJoZWlnaHRcIiBwcm9wZXJ0aWVzIG9yIFwibGF5b3V0PSdmaWxsJ1wiIHByb3BlcnR5LmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkaW5nID8/PSAnbGF6eSdcbiAgICBpZiAoc3JjICYmIHNyYy5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL0RhdGFfVVJJc1xuICAgICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlczN4ID0gZ2VuZXJhdGVTb3VyY2VBdHRycyh7XG4gICAgICBzcmMsXG4gICAgICBsYXlvdXQ6IGxheW91dCBhcyBMYXlvdXRWYWx1ZSxcbiAgICAgIGxvYWRlcixcbiAgICAgIHF1YWxpdHk6IHF1YWxpdHlJbnQsXG4gICAgICBzaXplcyxcbiAgICAgIHdpZHRoOiB3aWR0aEludCxcbiAgICAgIHNjYWxlOiAxLjUsXG4gICAgfSlcblxuICAgIGNvbnN0IGF0dHJpYnV0ZXMyeCA9IGdlbmVyYXRlU291cmNlQXR0cnMoe1xuICAgICAgc3JjLFxuICAgICAgbGF5b3V0OiBsYXlvdXQgYXMgTGF5b3V0VmFsdWUsXG4gICAgICBsb2FkZXIsXG4gICAgICBxdWFsaXR5OiBxdWFsaXR5SW50LFxuICAgICAgc2l6ZXMsXG4gICAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgICBzY2FsZTogMSxcbiAgICB9KVxuXG4gICAgY29uc3QgYXR0cmlidXRlczF4ID0gZ2VuZXJhdGVTb3VyY2VBdHRycyh7XG4gICAgICBzcmMsXG4gICAgICBsYXlvdXQ6IGxheW91dCBhcyBMYXlvdXRWYWx1ZSxcbiAgICAgIGxvYWRlcixcbiAgICAgIHF1YWxpdHk6IHF1YWxpdHlJbnQsXG4gICAgICBzaXplcyxcbiAgICAgIHdpZHRoOiB3aWR0aEludCxcbiAgICAgIHNjYWxlOiAwLjUsXG4gICAgfSlcblxuICAgIGlmIChsYXlvdXQgIT09ICdmaXhlZCcgJiYgIXN0eWxlKSBzdHlsZSA9IHt9XG4gICAgaWYgKGxheW91dCA9PT0gJ3Jlc3BvbnNpdmUnKSBzdHlsZSA9IHsgLi4uc3R5bGUsIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIH1cbiAgICBpZiAobGF5b3V0ID09PSAnaW50cmluc2ljJykgc3R5bGUgPSB7IC4uLnN0eWxlLCB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJywgbWF4V2lkdGg6IHdpZHRoIH1cbiAgICBpZiAobGF5b3V0ID09PSAnZmlsbCcpIHN0eWxlID0geyAuLi5zdHlsZSwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHt1bm9wdGltaXplZCA/IChcbiAgICAgICAgICA8aW1nIHJlZj17cmVmfSB7Li4uaW1nUHJvcHN9IHNyYz17c3JjfSB3aWR0aD17d2lkdGh9IGhlaWdodD17aGVpZ2h0fSBzdHlsZT17c3R5bGV9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHBpY3R1cmU+XG4gICAgICAgICAgICA8c291cmNlIG1lZGlhPScoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjUpJyB7Li4uYXR0cmlidXRlczN4fSAvPlxuICAgICAgICAgICAgPHNvdXJjZSBtZWRpYT0nKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KScgey4uLmF0dHJpYnV0ZXMyeH0gLz5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgICAgIHsuLi5pbWdQcm9wc31cbiAgICAgICAgICAgICAgey4uLmF0dHJpYnV0ZXMxeH1cbiAgICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3BpY3R1cmU+XG4gICAgICAgICl9XG4gICAgICAgIHtsb2FkaW5nID09PSAnZWFnZXInICYmIChcbiAgICAgICAgICA8SGVhZD5cbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIGtleT17YF9fbmltZy0yeC0ke2F0dHJpYnV0ZXMxeC5zcmNTZXR9JHthdHRyaWJ1dGVzMXguc2l6ZXN9YH1cbiAgICAgICAgICAgICAgcmVsPSdwcmVsb2FkJ1xuICAgICAgICAgICAgICBhcz0naW1hZ2UnXG4gICAgICAgICAgICAgIG1lZGlhPScoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjUpJ1xuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGltYWdlc3Jjc2V0IGlzIG5vdCB5ZXQgaW4gdGhlIGxpbmsgZWxlbWVudCB0eXBlXG4gICAgICAgICAgICAgIGltYWdlc3Jjc2V0PXthdHRyaWJ1dGVzMXguc3JjU2V0fVxuICAgICAgICAgICAgICBpbWFnZXNpemVzPXtzaXplc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9IZWFkPlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuSW1hZ2UuZGlzcGxheU5hbWUgPSAnTmV4dFBpY3R1cmUnXG5cbmV4cG9ydCB7IEltYWdlIH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../components/Image.tsx\n");
19
+
20
+ /***/ })
21
+
22
+ });
@@ -0,0 +1,22 @@
1
+ /*
2
+ * ATTENTION: An "eval-source-map" devtool has been used.
3
+ * This devtool is neither made for production nor for readable output files.
4
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
+ * or disable the default devtool with "devtool: false".
7
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
+ */
9
+ self["webpackHotUpdate_N_E"]("pages/index",{
10
+
11
+ /***/ "../components/Image.tsx":
12
+ /*!*******************************!*\
13
+ !*** ../components/Image.tsx ***!
14
+ \*******************************/
15
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
16
+
17
+ "use strict";
18
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isStaticRequire\": function() { return /* binding */ isStaticRequire; },\n/* harmony export */ \"isStaticImageData\": function() { return /* binding */ isStaticImageData; },\n/* harmony export */ \"isStaticImport\": function() { return /* binding */ isStaticImport; },\n/* harmony export */ \"getInt\": function() { return /* binding */ getInt; },\n/* harmony export */ \"Image\": function() { return /* binding */ Image; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"../../../node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties */ \"../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/defineProperty */ \"../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bedrock-layout/use-forwarded-ref */ \"../../../node_modules/@bedrock-layout/use-forwarded-ref/lib/index.m.js\");\n/* harmony import */ var next_dist_next_server_server_image_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/next-server/server/image-config */ \"../../../node_modules/next/dist/next-server/server/image-config.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/head */ \"../../../node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"../../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _config_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config/config */ \"../config/config.ts\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\nvar _jsxFileName = \"/Users/paulhachmang/Sites/reachdigital-next/packages/image/components/Image.tsx\",\n _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,_Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable prefer-const */\n\n/* eslint-disable no-param-reassign */\n\n/* eslint-disable @next/next/no-img-element */\n\n/* eslint-disable jsx-a11y/alt-text */\n\n\n\n\n\n\nif (false) {}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined];\nconst loaders = new Map([['imgix', _config_config__WEBPACK_IMPORTED_MODULE_6__.imgixLoader], ['cloudinary', _config_config__WEBPACK_IMPORTED_MODULE_6__.cloudinaryLoader], ['akamai', _config_config__WEBPACK_IMPORTED_MODULE_6__.akamaiLoader], ['default', _config_config__WEBPACK_IMPORTED_MODULE_6__.defaultLoader]]);\nconst VALID_LAYOUT_VALUES = ['fill', 'responsive', 'intrinsic', 'fixed'];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src));\n} // sort smallest to largest\n\nconst allSizes = [..._config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes, ..._config_config__WEBPACK_IMPORTED_MODULE_6__.configImageSizes];\n_config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes.sort((a, b) => a - b);\nallSizes.sort((a, b) => a - b);\n\nfunction getWidths(width, layout, sizes = '', scale) {\n if (sizes && layout === 'fill' || layout === 'responsive') {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = []; // eslint-disable-next-line no-cond-assign\n\n for (let match; match = viewportWidthRe.exec(sizes); match) {\n var _match;\n\n percentSizes.push(parseInt((_match = match) === null || _match === void 0 ? void 0 : _match[2], 10));\n }\n\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter(s => s >= _config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes[0] * smallestRatio),\n kind: 'w'\n };\n } // Find all the \"px\" sizes used in the sizes prop\n\n\n const pxWidthRe = /(^|\\s)(1?\\d+)px/g;\n const pxSizes = []; // eslint-disable-next-line no-cond-assign\n\n for (let match; match = pxWidthRe.exec(sizes); match) {\n var _match2;\n\n pxSizes.push(parseInt((_match2 = match) === null || _match2 === void 0 ? void 0 : _match2[2], 10));\n }\n\n if (pxSizes.length) {\n return {\n widths: pxSizes.map(pxSize => {\n var _allSizes$filter, _allSizes$filter2;\n\n const scaled = (_allSizes$filter = allSizes.filter(s => s * scale > pxSize)) === null || _allSizes$filter === void 0 ? void 0 : _allSizes$filter[0];\n const dpr2 = (_allSizes$filter2 = allSizes.filter(s => s > pxSize)) === null || _allSizes$filter2 === void 0 ? void 0 : _allSizes$filter2[0];\n return scale > 1 ? Math.max(scaled, dpr2) : Math.min(scaled, dpr2);\n }),\n kind: 'w'\n };\n }\n\n return {\n widths: allSizes,\n kind: 'w'\n };\n }\n\n if (typeof width !== 'number' || layout === 'fill') {\n return {\n widths: _config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes,\n kind: 'w'\n };\n }\n\n const widths = [...new Set( // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2\n /* , width * 3*/\n ].map(w => allSizes.find(p => p >= w) || allSizes[allSizes.length - 1]))];\n return {\n widths,\n kind: 'x'\n };\n}\n\nfunction generateSourceAttrs({\n src,\n layout,\n width,\n quality = 44,\n sizes,\n loader,\n scale\n}) {\n const {\n widths,\n kind\n } = getWidths(width, layout, sizes, scale);\n return {\n sizes: !sizes && kind === 'w' ? `50vw` : sizes,\n srcSet: widths.map((w, i) => `${loader({\n src,\n quality,\n width: w\n })} ${kind === 'w' ? Math.round(w * scale) : i + 1}${kind}`).join(', ')\n };\n}\n\nfunction getInt(x) {\n if (typeof x === 'number') {\n return x;\n }\n\n if (typeof x === 'string') {\n return parseInt(x, 10);\n }\n\n return undefined;\n}\n\nfunction defaultImageLoader(loaderProps) {\n const load = loaders.get(_config_config__WEBPACK_IMPORTED_MODULE_6__.configLoader);\n\n if (load) {\n return load(_objectSpread({\n root: _config_config__WEBPACK_IMPORTED_MODULE_6__.configPath\n }, loaderProps));\n }\n\n throw new Error(`[@reachdigital/image]: Unknown \"loader\" found in \"next.config.js\". Expected: ${next_dist_next_server_server_image_config__WEBPACK_IMPORTED_MODULE_3__.VALID_LOADERS.join(', ')}. Received: ${_config_config__WEBPACK_IMPORTED_MODULE_6__.configLoader}`);\n} // See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\n\n\nfunction removePlaceholder(img, placeholder) {\n if (placeholder === 'blur' && img) {\n const handleLoad = () => {\n if (!img.src.startsWith('data:')) {\n const p = 'decode' in img ? img.decode() : Promise.resolve(); // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n p.catch(() => {}).then(() => {\n img.style.filter = 'none';\n img.style.backgroundSize = 'none';\n img.style.backgroundImage = 'none';\n });\n }\n };\n\n if (img.complete) {\n // If the real image fails to load, this will still remove the placeholder.\n // This is the desired behavior for now, and will be revisited when error\n // handling is worked on for the image component itself.\n handleLoad();\n } else {\n img.onload = handleLoad;\n }\n }\n}\n/** Checks whether an image is currently in the viewport */\n\n\nfunction isInViewport(elem) {\n const {\n top,\n right,\n bottom,\n left\n } = elem.getBoundingClientRect();\n return bottom >= 0 && right >= 0 && top <= window.innerHeight && left <= window.innerWidth;\n}\n\nfunction isSizesRecord(sizes) {\n return typeof sizes === 'object';\n}\n\nfunction sizesEntries(sizes) {\n if (isSizesRecord(sizes)) {\n return Object.entries(sizes).map(([breakpoint, size]) => [Number(breakpoint), size]).sort(([sizeA], [sizeB]) => sizeB - sizeA);\n }\n\n return [[0, sizes]];\n}\n\nfunction generateSizesString(sizes) {\n return sizesEntries(sizes).map(([breakpoint, size]) => {\n if (breakpoint === 0) return size;\n return `(min-width: ${breakpoint}px) ${size}`;\n }).join(', ');\n}\n/** Since we're handling stuff ourselves we omit some stuff */\n\n\nconst Image = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().forwardRef(_c = _s((_ref, forwardedRef) => {\n var _generateSizesString, _loading;\n\n _s();\n\n let {\n src,\n sizes: sizesIncomming,\n unoptimized = false,\n loading,\n layout = 'responsive',\n quality,\n width,\n height,\n style,\n loader = defaultImageLoader,\n placeholder = 'empty',\n blurDataURL\n } = _ref,\n imgProps = (0,_Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__.default)(_ref, [\"src\", \"sizes\", \"unoptimized\", \"loading\", \"layout\", \"quality\", \"width\", \"height\", \"style\", \"loader\", \"placeholder\", \"blurDataURL\"]);\n\n const ref = (0,_bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__.default)(forwardedRef);\n const sizesOrig = layout === 'fixed' && width && !sizesIncomming ? `${width}px` : sizesIncomming;\n const sizes = (_generateSizesString = generateSizesString(sizesOrig)) !== null && _generateSizesString !== void 0 ? _generateSizesString : '50vw'; // If no responsive sizes are given, we're defaulting to 50vw on mobile\n // const [sizes, setSizes] = useState(toSizesString(sizesOrig) ?? `50vw`)\n\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {\n if (false) {}\n if (!ref.current) return () => {};\n\n function reportSizes(img) {\n var _sizesEntries$find;\n\n let ratio;\n const reportedSize = img.clientWidth;\n let msg = '';\n const [breakpoint, size] = (_sizesEntries$find = sizesEntries(sizesOrig).find(([s]) => s === 0 ? true : window.matchMedia(`(min-width: ${s})`).matches)) !== null && _sizesEntries$find !== void 0 ? _sizesEntries$find : [0, '100vw'];\n\n if (size) {\n const el = document.createElement('div');\n el.setAttribute('style', `width: ${size}`);\n document.body.appendChild(el);\n const measuredWidth = el.getBoundingClientRect().width; // el.remove()\n\n ratio = measuredWidth ** 2 / reportedSize ** 2;\n msg += `Image has \"sizes\" property set, but size 'min-width(${breakpoint}px) ${size}' is incorrect.`;\n } else {\n msg += `Image has no \"sizes\" property set.`;\n ratio = (window.innerWidth * 0.5) ** 2 / reportedSize ** 2;\n }\n\n const round = nr => Math.round(nr * 100) / 100;\n\n if (ratio > 1.2) {\n console.warn(`[@reachdigital/image]: ${msg} Currently downloading an image that has ${round(ratio)}x too many pixels`, img);\n } else if (ratio < 0.8) {\n console.warn(`[@reachdigital/image]: ${msg} Currently downloading an image that has ${round(1 / ratio)}x too few pixels`, img);\n }\n } // Warn the user when he isn't providing sizes and how to proceed\n\n\n const ro = new ResizeObserver(([entry]) => {\n const img = entry.target;\n if (img.naturalWidth) reportSizes(img);\n\n img.onload = () => reportSizes(img);\n });\n ro.observe(ref.current);\n return () => ro.disconnect();\n }, [layout, ref, sizesOrig, src, width]);\n let staticSrc = '';\n\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n\n if (!staticImageData.src) {\n throw new Error(`[@reachdigital/image]: An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(staticImageData)}`);\n }\n\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n\n if (!layout || layout !== 'fill') {\n height = height || staticImageData.height;\n width = width || staticImageData.width;\n\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(`[@reachdigital/image]: An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(staticImageData)}`);\n }\n }\n }\n\n src = typeof src === 'string' ? src : staticSrc;\n const widthInt = getInt(width);\n const heightInt = getInt(height);\n const qualityInt = getInt(quality);\n\n if (true) {\n if (!src) {\n throw new Error(`[@reachdigital/image]: Image is missing required \"src\" property. Make sure you pass \"src\" in props to the \\`@reachdigital/image\\` component. Received: ${JSON.stringify({\n width,\n height,\n quality\n })}`);\n }\n\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"layout\" property. Provided \"${layout}\" should be one of ${VALID_LAYOUT_VALUES.map(String).join(',')}.`);\n }\n\n if (typeof widthInt !== 'undefined' && Number.isNaN(widthInt) || typeof heightInt !== 'undefined' && Number.isNaN(heightInt)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"width\" or \"height\" property. These should be numeric values.`);\n }\n\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(String).join(',')}.`);\n }\n\n if (placeholder === 'blur') {\n if (layout !== 'fill' && (widthInt || 0) * (heightInt || 0) < 1600) {\n console.warn(`[@reachdigital/image]: Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder='blur'\" property to improve performance.`);\n }\n\n if (!blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp']; // should match next-image-loader\n\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(',')}\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`);\n }\n }\n }\n\n if (typeof widthInt === 'undefined' && typeof heightInt === 'undefined') {\n if (layout === 'fill') {// handle fill\n } else if (true) {\n // <Image src=\"i.png\" />\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" must use \"width\" and \"height\" properties or \"layout='fill'\" property.`);\n }\n }\n\n (_loading = loading) !== null && _loading !== void 0 ? _loading : loading = 'lazy';\n\n if (src && src.startsWith('data:')) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n }\n\n const attributes3x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 1.5\n });\n const attributes2x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 1\n });\n const attributes1x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 0.5\n });\n if (layout !== 'fixed' && !style) style = {};\n if (layout === 'responsive') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: 'auto'\n });\n if (layout === 'intrinsic') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: 'auto',\n maxWidth: width\n });\n if (layout === 'fill') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: '100%'\n });\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [unoptimized ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", _objectSpread(_objectSpread({\n ref: ref\n }, imgProps), {}, {\n src: src,\n width: width,\n height: height,\n style: style\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 623,\n columnNumber: 11\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"picture\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", _objectSpread({\n media: \"(-webkit-min-device-pixel-ratio: 2.5)\"\n }, attributes3x), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 626,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", _objectSpread({\n media: \"(-webkit-min-device-pixel-ratio: 1.5)\"\n }, attributes2x), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 627,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", _objectSpread(_objectSpread(_objectSpread({\n ref: ref\n }, imgProps), attributes1x), {}, {\n loading: loading,\n width: width,\n height: height,\n style: style\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 628,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 625,\n columnNumber: 11\n }, undefined), loading === 'eager' && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_4___default()), {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"link\", {\n rel: \"preload\",\n as: \"image\",\n media: \"(-webkit-min-device-pixel-ratio: 2.5)\" // @ts-expect-error imagesrcset is not yet in the link element type\n ,\n imagesrcset: attributes1x.srcSet,\n imagesizes: sizes\n }, `__nimg-2x-${attributes1x.srcSet}${attributes1x.sizes}`, false, {\n fileName: _jsxFileName,\n lineNumber: 641,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 640,\n columnNumber: 11\n }, undefined)]\n }, void 0, true);\n}, \"uc1ywpQv+s/tGng4xj/L6VVOIq8=\", false, function () {\n return [_bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__.default];\n}));\n_c2 = Image;\nImage.displayName = 'NextPicture';\n\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"Image$React.forwardRef\");\n$RefreshReg$(_c2, \"Image\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uL2NvbXBvbmVudHMvSW1hZ2UudHN4PzJiNmQiXSwibmFtZXMiOlsiVkFMSURfTE9BRElOR19WQUxVRVMiLCJ1bmRlZmluZWQiLCJsb2FkZXJzIiwiTWFwIiwiaW1naXhMb2FkZXIiLCJjbG91ZGluYXJ5TG9hZGVyIiwiYWthbWFpTG9hZGVyIiwiZGVmYXVsdExvYWRlciIsIlZBTElEX0xBWU9VVF9WQUxVRVMiLCJpc1N0YXRpY1JlcXVpcmUiLCJzcmMiLCJkZWZhdWx0IiwiaXNTdGF0aWNJbWFnZURhdGEiLCJpc1N0YXRpY0ltcG9ydCIsImFsbFNpemVzIiwiY29uZmlnRGV2aWNlU2l6ZXMiLCJjb25maWdJbWFnZVNpemVzIiwiYSIsImIiLCJzb3J0IiwiZ2V0V2lkdGhzIiwid2lkdGgiLCJsYXlvdXQiLCJzaXplcyIsInNjYWxlIiwidmlld3BvcnRXaWR0aFJlIiwicGVyY2VudFNpemVzIiwibWF0Y2giLCJleGVjIiwicHVzaCIsInBhcnNlSW50IiwibGVuZ3RoIiwic21hbGxlc3RSYXRpbyIsIk1hdGgiLCJtaW4iLCJ3aWR0aHMiLCJmaWx0ZXIiLCJzIiwia2luZCIsInB4V2lkdGhSZSIsInB4U2l6ZXMiLCJtYXAiLCJweFNpemUiLCJzY2FsZWQiLCJkcHIyIiwibWF4IiwiU2V0IiwidyIsImZpbmQiLCJwIiwiZ2VuZXJhdGVTb3VyY2VBdHRycyIsInF1YWxpdHkiLCJsb2FkZXIiLCJzcmNTZXQiLCJpIiwicm91bmQiLCJqb2luIiwiZ2V0SW50IiwieCIsImRlZmF1bHRJbWFnZUxvYWRlciIsImxvYWRlclByb3BzIiwibG9hZCIsImdldCIsImNvbmZpZ0xvYWRlciIsInJvb3QiLCJjb25maWdQYXRoIiwiRXJyb3IiLCJWQUxJRF9MT0FERVJTIiwicmVtb3ZlUGxhY2Vob2xkZXIiLCJpbWciLCJwbGFjZWhvbGRlciIsImhhbmRsZUxvYWQiLCJzdGFydHNXaXRoIiwiZGVjb2RlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjYXRjaCIsInRoZW4iLCJzdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZEltYWdlIiwiY29tcGxldGUiLCJvbmxvYWQiLCJpc0luVmlld3BvcnQiLCJlbGVtIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJpbm5lcldpZHRoIiwiaXNTaXplc1JlY29yZCIsInNpemVzRW50cmllcyIsIk9iamVjdCIsImVudHJpZXMiLCJicmVha3BvaW50Iiwic2l6ZSIsIk51bWJlciIsInNpemVBIiwic2l6ZUIiLCJnZW5lcmF0ZVNpemVzU3RyaW5nIiwiSW1hZ2UiLCJSZWFjdCIsImZvcndhcmRlZFJlZiIsInNpemVzSW5jb21taW5nIiwidW5vcHRpbWl6ZWQiLCJsb2FkaW5nIiwiaGVpZ2h0IiwiYmx1ckRhdGFVUkwiLCJpbWdQcm9wcyIsInJlZiIsInVzZUZvcndhcmRlZFJlZiIsInNpemVzT3JpZyIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJyZXBvcnRTaXplcyIsInJhdGlvIiwicmVwb3J0ZWRTaXplIiwiY2xpZW50V2lkdGgiLCJtc2ciLCJtYXRjaE1lZGlhIiwibWF0Y2hlcyIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwibWVhc3VyZWRXaWR0aCIsIm5yIiwiY29uc29sZSIsIndhcm4iLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwiZW50cnkiLCJ0YXJnZXQiLCJuYXR1cmFsV2lkdGgiLCJvYnNlcnZlIiwiZGlzY29ubmVjdCIsInN0YXRpY1NyYyIsInN0YXRpY0ltYWdlRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ3aWR0aEludCIsImhlaWdodEludCIsInF1YWxpdHlJbnQiLCJpbmNsdWRlcyIsIlN0cmluZyIsImlzTmFOIiwiVkFMSURfQkxVUl9FWFQiLCJhdHRyaWJ1dGVzM3giLCJhdHRyaWJ1dGVzMngiLCJhdHRyaWJ1dGVz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LFFBRk4sR0FHTTJDLFlBSE47QUFJRSxlQUFPLEVBQUU5QyxPQUpYO0FBS0UsYUFBSyxFQUFFdkYsS0FMVDtBQU1FLGNBQU0sRUFBRXdGLE1BTlY7QUFPRSxhQUFLLEVBQUUvQjtBQVBUO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUpKLEVBa0JHOEIsT0FBTyxLQUFLLE9BQVosaUJBQ0MsOERBQUMsa0RBQUQ7QUFBQSw2QkFDRTtBQUVFLFdBQUcsRUFBQyxTQUZOO0FBR0UsVUFBRSxFQUFDLE9BSEw7QUFJRSxhQUFLLEVBQUMsdUNBSlIsQ0FLRTtBQUxGO0FBTUUsbUJBQVcsRUFBRThDLFlBQVksQ0FBQ3JHLE1BTjVCO0FBT0Usa0JBQVUsRUFBRTlCO0FBUGQsU0FDUSxhQUFZbUksWUFBWSxDQUFDckcsTUFBTyxHQUFFcUcsWUFBWSxDQUFDbkksS0FBTSxFQUQ3RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFuQko7QUFBQSxrQkFERjtBQWtDRCxDQS9QVztBQUFBLFVBbUJFMEYsc0VBbkJGO0FBQUEsR0FBZDtNQUFNVixLO0FBaVFOQSxLQUFLLENBQUNxRCxXQUFOLEdBQW9CLGFBQXBCO0FBRUEiLCJmaWxlIjoiLi4vY29tcG9uZW50cy9JbWFnZS50c3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItY29uc3QgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9hbHQtdGV4dCAqL1xuaW1wb3J0IHVzZUZvcndhcmRlZFJlZiBmcm9tICdAYmVkcm9jay1sYXlvdXQvdXNlLWZvcndhcmRlZC1yZWYnXG5pbXBvcnQgeyBMb2FkZXJWYWx1ZSwgVkFMSURfTE9BREVSUyB9IGZyb20gJ25leHQvZGlzdC9uZXh0LXNlcnZlci9zZXJ2ZXIvaW1hZ2UtY29uZmlnJ1xuaW1wb3J0IEhlYWQgZnJvbSAnbmV4dC9oZWFkJ1xuaW1wb3J0IHR5cGUgeyBJbWFnZUxvYWRlclByb3BzLCBJbWFnZUxvYWRlciB9IGZyb20gJ25leHQvaW1hZ2UnXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZVJlc2l6ZU9ic2VydmVyIGZyb20gJ3VzZS1yZXNpemUtb2JzZXJ2ZXInXG5pbXBvcnQge1xuICBha2FtYWlMb2FkZXIsXG4gIGNsb3VkaW5hcnlMb2FkZXIsXG4gIGNvbmZpZ0RldmljZVNpemVzLFxuICBjb25maWdJbWFnZVNpemVzLFxuICBjb25maWdMb2FkZXIsXG4gIGNvbmZpZ1BhdGgsXG4gIERlZmF1bHRJbWFnZUxvYWRlclByb3BzLFxuICBkZWZhdWx0TG9hZGVyLFxuICBpbWdpeExvYWRlcixcbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZydcbmltcG9ydCB1c2VDb25uZWN0aW9uVHlwZSBmcm9tICcuLi9ob29rcy91c2VDb25uZWN0aW9uVHlwZSdcblxuaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICBnbG9iYWwuX19ORVhUX0lNQUdFX0lNUE9SVEVEID0gdHJ1ZVxufVxuXG5leHBvcnQgdHlwZSB7IEltYWdlTG9hZGVyUHJvcHMsIEltYWdlTG9hZGVyIH1cblxuY29uc3QgVkFMSURfTE9BRElOR19WQUxVRVMgPSBbJ2xhenknLCAnZWFnZXInLCB1bmRlZmluZWRdIGFzIGNvbnN0XG50eXBlIExvYWRpbmdWYWx1ZSA9IHR5cGVvZiBWQUxJRF9MT0FESU5HX1ZBTFVFU1tudW1iZXJdXG5cbmNvbnN0IGxvYWRlcnMgPSBuZXcgTWFwPExvYWRlclZhbHVlLCAocHJvcHM6IERlZmF1bHRJbWFnZUxvYWRlclByb3BzKSA9PiBzdHJpbmc+KFtcbiAgWydpbWdpeCcsIGltZ2l4TG9hZGVyXSxcbiAgWydjbG91ZGluYXJ5JywgY2xvdWRpbmFyeUxvYWRlcl0sXG4gIFsnYWthbWFpJywgYWthbWFpTG9hZGVyXSxcbiAgWydkZWZhdWx0JywgZGVmYXVsdExvYWRlcl0sXG5dKVxuXG5jb25zdCBWQUxJRF9MQVlPVVRfVkFMVUVTID0gWydmaWxsJywgJ3Jlc3BvbnNpdmUnLCAnaW50cmluc2ljJywgJ2ZpeGVkJ10gYXMgY29uc3RcbnR5cGUgTGF5b3V0VmFsdWUgPSAnZmlsbCcgfCAnZml4ZWQnIHwgJ2ludHJpbnNpYycgfCAncmVzcG9uc2l2ZScgfCB1bmRlZmluZWRcblxudHlwZSBQbGFjZWhvbGRlclZhbHVlID0gJ2JsdXInIHwgJ2VtcHR5J1xuXG50eXBlIEltZ0VsZW1lbnRTdHlsZSA9IE5vbk51bGxhYmxlPEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW1nJ11bJ3N0eWxlJ10+XG5cbmludGVyZmFjZSBTdGF0aWNJbWFnZURhdGEge1xuICBzcmM6IHN0cmluZ1xuICBoZWlnaHQ6IG51bWJlclxuICB3aWR0aDogbnVtYmVyXG4gIGJsdXJEYXRhVVJMPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBTdGF0aWNSZXF1aXJlIHtcbiAgZGVmYXVsdDogU3RhdGljSW1hZ2VEYXRhXG59XG5cbnR5cGUgU3RhdGljSW1wb3J0ID0gU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNSZXF1aXJlKHNyYzogU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YSk6IHNyYyBpcyBTdGF0aWNSZXF1aXJlIHtcbiAgcmV0dXJuIChzcmMgYXMgU3RhdGljUmVxdWlyZSkuZGVmYXVsdCAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY0ltYWdlRGF0YShzcmM6IFN0YXRpY1JlcXVpcmUgfCBTdGF0aWNJbWFnZURhdGEpOiBzcmMgaXMgU3RhdGljSW1hZ2VEYXRhIHtcbiAgcmV0dXJuIChzcmMgYXMgU3RhdGljSW1hZ2VEYXRhKS5zcmMgIT09IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNJbXBvcnQoc3JjOiBzdHJpbmcgfCBTdGF0aWNJbXBvcnQpOiBzcmMgaXMgU3RhdGljSW1wb3J0IHtcbiAgcmV0dXJuIHR5cGVvZiBzcmMgPT09ICdvYmplY3QnICYmIChpc1N0YXRpY1JlcXVpcmUoc3JjKSB8fCBpc1N0YXRpY0ltYWdlRGF0YShzcmMpKVxufVxuXG4vLyBzb3J0IHNtYWxsZXN0IHRvIGxhcmdlc3RcbmNvbnN0IGFsbFNpemVzID0gWy4uLmNvbmZpZ0RldmljZVNpemVzLCAuLi5jb25maWdJbWFnZVNpemVzXVxuY29uZmlnRGV2aWNlU2l6ZXMuc29ydCgoYSwgYikgPT4gYSAtIGIpXG5hbGxTaXplcy5zb3J0KChhLCBiKSA9PiBhIC0gYilcblxuZnVuY3Rpb24gZ2V0V2lkdGhzKFxuICB3aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBsYXlvdXQ6IExheW91dFZhbHVlLFxuICBzaXplcyA9ICcnLFxuICBzY2FsZTogbnVtYmVyLFxuKTogeyB3aWR0aHM6IG51bWJlcltdOyBraW5kOiAndycgfCAneCcgfSB7XG4gIGlmICgoc2l6ZXMgJiYgbGF5b3V0ID09PSAnZmlsbCcpIHx8IGxheW91dCA9PT0gJ3Jlc3BvbnNpdmUnKSB7XG4gICAgLy8gRmluZCBhbGwgdGhlIFwidndcIiBwZXJjZW50IHNpemVzIHVzZWQgaW4gdGhlIHNpemVzIHByb3BcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoUmUgPSAvKF58XFxzKSgxP1xcZD9cXGQpdncvZ1xuICAgIGNvbnN0IHBlcmNlbnRTaXplczogbnVtYmVyW10gPSBbXVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICAgIGZvciAobGV0IG1hdGNoOiBzdHJpbmdbXSB8IG51bGw7IChtYXRjaCA9IHZpZXdwb3J0V2lkdGhSZS5leGVjKHNpemVzKSk7IG1hdGNoKSB7XG4gICAgICBwZXJjZW50U2l6ZXMucHVzaChwYXJzZUludChtYXRjaD8uWzJdLCAxMCkpXG4gICAgfVxuICAgIGlmIChwZXJjZW50U2l6ZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzbWFsbGVzdFJhdGlvID0gTWF0aC5taW4oLi4ucGVyY2VudFNpemVzKSAqIDAuMDFcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGhzOiBhbGxTaXplcy5maWx0ZXIoKHMpID0+IHMgPj0gY29uZmlnRGV2aWNlU2l6ZXNbMF0gKiBzbWFsbGVzdFJhdGlvKSxcbiAgICAgICAga2luZDogJ3cnLFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgYWxsIHRoZSBcInB4XCIgc2l6ZXMgdXNlZCBpbiB0aGUgc2l6ZXMgcHJvcFxuICAgIGNvbnN0IHB4V2lkdGhSZSA9IC8oXnxcXHMpKDE/XFxkKylweC9nXG4gICAgY29uc3QgcHhTaXplczogbnVtYmVyW10gPSBbXVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICAgIGZvciAobGV0IG1hdGNoOiBzdHJpbmdbXSB8IG51bGw7IChtYXRjaCA9IHB4V2lkdGhSZS5leGVjKHNpemVzKSk7IG1hdGNoKSB7XG4gICAgICBweFNpemVzLnB1c2gocGFyc2VJbnQobWF0Y2g/LlsyXSwgMTApKVxuICAgIH1cblxuICAgIGlmIChweFNpemVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGhzOiBweFNpemVzLm1hcCgocHhTaXplKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2NhbGVkID0gYWxsU2l6ZXMuZmlsdGVyKChzKSA9PiBzICogc2NhbGUgPiBweFNpemUpPy5bMF1cbiAgICAgICAgICBjb25zdCBkcHIyID0gYWxsU2l6ZXMuZmlsdGVyKChzKSA9PiBzID4gcHhTaXplKT8uWzBdXG4gICAgICAgICAgcmV0dXJuIHNjYWxlID4gMSA/IE1hdGgubWF4KHNjYWxlZCwgZHByMikgOiBNYXRoLm1pbihzY2FsZWQsIGRwcjIpXG4gICAgICAgIH0pLFxuICAgICAgICBraW5kOiAndycsXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgd2lkdGhzOiBhbGxTaXplcywga2luZDogJ3cnIH1cbiAgfVxuICBpZiAodHlwZW9mIHdpZHRoICE9PSAnbnVtYmVyJyB8fCBsYXlvdXQgPT09ICdmaWxsJykge1xuICAgIHJldHVybiB7IHdpZHRoczogY29uZmlnRGV2aWNlU2l6ZXMsIGtpbmQ6ICd3JyB9XG4gIH1cblxuICBjb25zdCB3aWR0aHMgPSBbXG4gICAgLi4ubmV3IFNldChcbiAgICAgIC8vID4gVGhpcyBtZWFucyB0aGF0IG1vc3QgT0xFRCBzY3JlZW5zIHRoYXQgc2F5IHRoZXkgYXJlIDN4IHJlc29sdXRpb24sXG4gICAgICAvLyA+IGFyZSBhY3R1YWxseSAzeCBpbiB0aGUgZ3JlZW4gY29sb3IsIGJ1dCBvbmx5IDEuNXggaW4gdGhlIHJlZCBhbmRcbiAgICAgIC8vID4gYmx1ZSBjb2xvcnMuIFNob3dpbmcgYSAzeCByZXNvbHV0aW9uIGltYWdlIGluIHRoZSBhcHAgdnMgYSAyeFxuICAgICAgLy8gPiByZXNvbHV0aW9uIGltYWdlIHdpbGwgYmUgdmlzdWFsbHkgdGhlIHNhbWUsIHRob3VnaCB0aGUgM3ggaW1hZ2VcbiAgICAgIC8vID4gdGFrZXMgc2lnbmlmaWNhbnRseSBtb3JlIGRhdGEuIEV2ZW4gdHJ1ZSAzeCByZXNvbHV0aW9uIHNjcmVlbnMgYXJlXG4gICAgICAvLyA+IHdhc3RlZnVsIGFzIHRoZSBodW1hbiBleWUgY2Fubm90IHNlZSB0aGF0IGxldmVsIG9mIGRldGFpbCB3aXRob3V0XG4gICAgICAvLyA+IHNvbWV0aGluZyBsaWtlIGEgbWFnbmlmeWluZyBnbGFzcy5cbiAgICAgIC8vIGh0dHBzOi8vYmxvZy50d2l0dGVyLmNvbS9lbmdpbmVlcmluZy9lbl91cy90b3BpY3MvaW5mcmFzdHJ1Y3R1cmUvMjAxOS9jYXBwaW5nLWltYWdlLWZpZGVsaXR5LW9uLXVsdHJhLWhpZ2gtcmVzb2x1dGlvbi1kZXZpY2VzLmh0bWxcbiAgICAgIFt3aWR0aCwgd2lkdGggKiAyIC8qICwgd2lkdGggKiAzKi9dLm1hcChcbiAgICAgICAgKHcpID0+IGFsbFNpemVzLmZpbmQoKHApID0+IHAgPj0gdykgfHwgYWxsU2l6ZXNbYWxsU2l6ZXMubGVuZ3RoIC0gMV0sXG4gICAgICApLFxuICAgICksXG4gIF1cbiAgcmV0dXJuIHsgd2lkdGhzLCBraW5kOiAneCcgfVxufVxuXG50eXBlIEdlbkltZ0F0dHJzRGF0YSA9IHtcbiAgc3JjOiBzdHJpbmdcbiAgbGF5b3V0OiBMYXlvdXRWYWx1ZVxuICBsb2FkZXI6IEltYWdlTG9hZGVyXG4gIHdpZHRoPzogbnVtYmVyXG4gIHF1YWxpdHk/OiBudW1iZXJcbiAgc2l6ZXM/OiBzdHJpbmdcbiAgc2NhbGU6IG51bWJlclxufVxuXG50eXBlIEdlbkltZ0F0dHJzUmVzdWx0ID0ge1xuICBzcmNTZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzaXplczogc3RyaW5nIHwgdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlU291cmNlQXR0cnMoe1xuICBzcmMsXG4gIGxheW91dCxcbiAgd2lkdGgsXG4gIHF1YWxpdHkgPSA0NCxcbiAgc2l6ZXMsXG4gIGxvYWRlcixcbiAgc2NhbGUsXG59OiBHZW5JbWdBdHRyc0RhdGEpOiBHZW5JbWdBdHRyc1Jlc3VsdCB7XG4gIGNvbnN0IHsgd2lkdGhzLCBraW5kIH0gPSBnZXRXaWR0aHMod2lkdGgsIGxheW91dCwgc2l6ZXMsIHNjYWxlKVxuXG4gIHJldHVybiB7XG4gICAgc2l6ZXM6ICFzaXplcyAmJiBraW5kID09PSAndycgPyBgNTB2d2AgOiBzaXplcyxcbiAgICBzcmNTZXQ6IHdpZHRoc1xuICAgICAgLm1hcChcbiAgICAgICAgKHcsIGkpID0+XG4gICAgICAgICAgYCR7bG9hZGVyKHsgc3JjLCBxdWFsaXR5LCB3aWR0aDogdyB9KX0gJHtcbiAgICAgICAgICAgIGtpbmQgPT09ICd3JyA/IE1hdGgucm91bmQodyAqIHNjYWxlKSA6IGkgKyAxXG4gICAgICAgICAgfSR7a2luZH1gLFxuICAgICAgKVxuICAgICAgLmpvaW4oJywgJyksXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludCh4OiB1bmtub3duKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiB4ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB4XG4gIH1cbiAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJzZUludCh4LCAxMClcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRJbWFnZUxvYWRlcihsb2FkZXJQcm9wczogSW1hZ2VMb2FkZXJQcm9wcykge1xuICBjb25zdCBsb2FkID0gbG9hZGVycy5nZXQoY29uZmlnTG9hZGVyKVxuICBpZiAobG9hZCkge1xuICAgIHJldHVybiBsb2FkKHsgcm9vdDogY29uZmlnUGF0aCwgLi4ubG9hZGVyUHJvcHMgfSlcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogVW5rbm93biBcImxvYWRlclwiIGZvdW5kIGluIFwibmV4dC5jb25maWcuanNcIi4gRXhwZWN0ZWQ6ICR7VkFMSURfTE9BREVSUy5qb2luKFxuICAgICAgJywgJyxcbiAgICApfS4gUmVjZWl2ZWQ6ICR7Y29uZmlnTG9hZGVyfWAsXG4gIClcbn1cblxuLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8zOTc3NzgzMy8yNjY1MzUgZm9yIHdoeSB3ZSB1c2UgdGhpcyByZWZcbi8vIGhhbmRsZXIgaW5zdGVhZCBvZiB0aGUgaW1nJ3Mgb25Mb2FkIGF0dHJpYnV0ZS5cbmZ1bmN0aW9uIHJlbW92ZVBsYWNlaG9sZGVyKGltZzogSFRNTEltYWdlRWxlbWVudCB8IG51bGwsIHBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlclZhbHVlKSB7XG4gIGlmIChwbGFjZWhvbGRlciA9PT0gJ2JsdXInICYmIGltZykge1xuICAgIGNvbnN0IGhhbmRsZUxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoIWltZy5zcmMuc3RhcnRzV2l0aCgnZGF0YTonKSkge1xuICAgICAgICBjb25zdCBwID0gJ2RlY29kZScgaW4gaW1nID8gaW1nLmRlY29kZSgpIDogUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1xuICAgICAgICBwLmNhdGNoKCgpID0+IHt9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICBpbWcuc3R5bGUuZmlsdGVyID0gJ25vbmUnXG4gICAgICAgICAgaW1nLnN0eWxlLmJhY2tncm91bmRTaXplID0gJ25vbmUnXG4gICAgICAgICAgaW1nLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICdub25lJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW1nLmNvbXBsZXRlKSB7XG4gICAgICAvLyBJZiB0aGUgcmVhbCBpbWFnZSBmYWlscyB0byBsb2FkLCB0aGlzIHdpbGwgc3RpbGwgcmVtb3ZlIHRoZSBwbGFjZWhvbGRlci5cbiAgICAgIC8vIFRoaXMgaXMgdGhlIGRlc2lyZWQgYmVoYXZpb3IgZm9yIG5vdywgYW5kIHdpbGwgYmUgcmV2aXNpdGVkIHdoZW4gZXJyb3JcbiAgICAgIC8vIGhhbmRsaW5nIGlzIHdvcmtlZCBvbiBmb3IgdGhlIGltYWdlIGNvbXBvbmVudCBpdHNlbGYuXG4gICAgICBoYW5kbGVMb2FkKClcbiAgICB9IGVsc2Uge1xuICAgICAgaW1nLm9ubG9hZCA9IGhhbmRsZUxvYWRcbiAgICB9XG4gIH1cbn1cblxuLyoqIENoZWNrcyB3aGV0aGVyIGFuIGltYWdlIGlzIGN1cnJlbnRseSBpbiB0aGUgdmlld3BvcnQgKi9cbmZ1bmN0aW9uIGlzSW5WaWV3cG9ydChlbGVtOiBIVE1MSW1hZ2VFbGVtZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiBib3R0b20gPj0gMCAmJiByaWdodCA+PSAwICYmIHRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgJiYgbGVmdCA8PSB3aW5kb3cuaW5uZXJXaWR0aFxufVxuXG50eXBlIFNpemVzU3RyaW5nID1cbiAgfCBgJHtudW1iZXJ9dndgXG4gIHwgYCR7bnVtYmVyfXB4YFxuICB8IGBjYWxjKCR7c3RyaW5nfSlgXG4gIHwgYG1pbigke3N0cmluZ30pYFxuICB8IGBtYXgoJHtzdHJpbmd9KWBcbnR5cGUgU2l6ZXNSZWNvcmQgPSBSZWNvcmQ8bnVtYmVyLCBTaXplc1N0cmluZz5cbnR5cGUgU2l6ZXMgPSBTaXplc1N0cmluZyB8IFNpemVzUmVjb3JkIHwgdW5kZWZpbmVkXG5cbmZ1bmN0aW9uIGlzU2l6ZXNSZWNvcmQoc2l6ZXM/OiBTaXplcyk6IHNpemVzIGlzIFNpemVzUmVjb3JkIHtcbiAgcmV0dXJuIHR5cGVvZiBzaXplcyA9PT0gJ29iamVjdCdcbn1cblxuZnVuY3Rpb24gc2l6ZXNFbnRyaWVzKHNpemVzOiBTaXplcyk6IChyZWFkb25seSBbbnVtYmVyLCBTaXplc1N0cmluZyB8IHVuZGVmaW5lZF0pW10ge1xuICBpZiAoaXNTaXplc1JlY29yZChzaXplcykpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc2l6ZXMpXG4gICAgICAubWFwKChbYnJlYWtwb2ludCwgc2l6ZV0pID0+IFtOdW1iZXIoYnJlYWtwb2ludCksIHNpemVdIGFzIGNvbnN0KVxuICAgICAgLnNvcnQoKFtzaXplQV0sIFtzaXplQl0pID0+IHNpemVCIC0gc2l6ZUEpXG4gIH1cbiAgcmV0dXJuIFtbMCwgc2l6ZXNdIGFzIGNvbnN0XVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVNpemVzU3RyaW5nKHNpemVzPzogU2l6ZXMpIHtcbiAgcmV0dXJuIHNpemVzRW50cmllcyhzaXplcylcbiAgICAubWFwKChbYnJlYWtwb2ludCwgc2l6ZV0pID0+IHtcbiAgICAgIGlmIChicmVha3BvaW50ID09PSAwKSByZXR1cm4gc2l6ZVxuICAgICAgcmV0dXJuIGAobWluLXdpZHRoOiAke2JyZWFrcG9pbnR9cHgpICR7c2l6ZX1gXG4gICAgfSlcbiAgICAuam9pbignLCAnKVxufVxuXG4vKiogU2luY2Ugd2UncmUgaGFuZGxpbmcgc3R1ZmYgb3Vyc2VsdmVzIHdlIG9taXQgc29tZSBzdHVmZiAqL1xudHlwZSBJbnRyaXNpbmNJbWFnZSA9IE9taXQ8XG4gIEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW1nJ10sXG4gICdzcmMnIHwgJ3NyY1NldCcgfCAncmVmJyB8ICd3aWR0aCcgfCAnaGVpZ2h0JyB8ICdsb2FkaW5nJyB8ICdzaXplcycgfCAnd2lkdGgnIHwgJ2hlaWdodCdcbj4gJiB7IGxvYWRpbmc/OiBMb2FkaW5nVmFsdWUgfVxuXG5leHBvcnQgdHlwZSBCYXNlSW1hZ2VQcm9wcyA9IEludHJpc2luY0ltYWdlICYge1xuICBsb2FkZXI/OiBJbWFnZUxvYWRlclxuICBxdWFsaXR5PzogbnVtYmVyIHwgc3RyaW5nXG4gIHVub3B0aW1pemVkPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6XG4gICAqXG4gICAqIC0gYGZpeGVkYDogdGhlIGltYWdlIGRpbWVuc2lvbnMgd2lsbCBub3QgY2hhbmdlIGFzIHRoZSB2aWV3cG9ydCBjaGFuZ2VzIChubyByZXNwb25zaXZlbmVzcylcbiAgICogICBzaW1pbGFyIHRvIHRoZSBuYXRpdmUgaW1nIGVsZW1lbnQuXG4gICAqIC0gYGludHJpbnNpY2A6IHRoZSBpbWFnZSB3aWxsIHNjYWxlIHRoZSBkaW1lbnNpb25zIGRvd24gZm9yIHNtYWxsZXIgdmlld3BvcnRzIGJ1dCBtYWludGFpbiB0aGVcbiAgICogICBvcmlnaW5hbCBkaW1lbnNpb25zICh0aGUgd2lkdGggYW5kIGhlaWdodCBnaXZlbikgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gICAqIC0gYHJlc3BvbnNpdmVgOiB0aGUgaW1hZ2Ugd2lsbCBzY2FsZSB0aGUgZGltZW5zaW9ucyBkb3duIGZvciBzbWFsbGVyIHZpZXdwb3J0cyBhbmQgc2NhbGUgdXAgZm9yXG4gICAqICAgbGFyZ2VyIHZpZXdwb3J0cy5cbiAgICovXG4gIGxheW91dD86IExheW91dFZhbHVlXG5cbiAgLyoqIFNpemUgdGhlIGltYWdlIGlzIHJlbmRlcmVkIG9uIG1vYmlsZSAqL1xuICBzaXplcz86IFNpemVzU3RyaW5nIHwgU2l6ZXNSZWNvcmRcbn1cblxuLyoqXG4gKiBXaGVuIGBmaXhlZGAsIHRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgbm90IGNoYW5nZSBhcyB0aGUgdmlld3BvcnQgY2hhbmdlcyAobm8gcmVzcG9uc2l2ZW5lc3MpXG4gKiBzaW1pbGFyIHRvIHRoZSBuYXRpdmUgaW1nIGVsZW1lbnQuXG4gKlxuICogYGBgdHN4XG4gKiA8aW1nIHdpZHRoPXt3aWR0aH0gaGVpZ2h0PXtoZWlnaHR9IC8+XG4gKiBgYGBcbiAqXG4gKiBVc2UgY2FzZTogV2hlbiB5b3Ugd2FudCB0byByZW5kZXIgdGhlIGltYWdlIGF0IHRoZSBnaXZlbiB3aWR0aC9oZWlnaHQgYW5kIG5vdCBjaGFuZ2UgYmFzZWQgb24gYnJvd3NlciBzaXplLlxuICovXG50eXBlIExheW91dFR5cGVOYXRpdmUgPSB7XG4gIGxheW91dD86ICdmaXhlZCdcbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBhbmQgdGhlIGhlaWdodCB2YWx1ZXMgYXJlIHRoZSB2YWx1ZXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGFzcGVjdCByYXRpbyBvbSB0aGUgaW1hZ2VcbiAgICogYW5kIHJlc2VydmUgc3BhY2UgaW4gdGhlIGJyb3dzZXIuXG4gICAqXG4gICAqIFdpdGggbGF5b3V0PWZpeGVkIGFuZCBubyBzdHlsaW5nIHRoZSBpbWFnZSBpcyByZW5kZXJlZCBhdCB0aGUgd2lkdGggYW5kIGhlaWdodCBnaXZlbi5cbiAgICovXG4gIHdpZHRoOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbn1cblxuLyoqXG4gKiBXaGVuIGBpbnRyaW5zaWNgLCB0aGUgaW1hZ2Ugd2lsbCBzY2FsZSB0aGUgZGltZW5zaW9ucyBkb3duIGZvciBzbWFsbGVyIHZpZXdwb3J0cyBidXQgbWFpbnRhaW4gdGhlXG4gKiBvcmlnaW5hbCBkaW1lbnNpb25zICh0aGUgd2lkdGggYW5kIGhlaWdodCBnaXZlbikgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gKlxuICogYGBgdHN4XG4gKiA8aW1nIHN0eWxlPXt7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIG1heFdpZHRoOiBgJHt3aWR0aH1weGAgfX1cbiAqIGBgYFxuICpcbiAqIFVzZSBjYXNlOiBXaGVuIHlvdSB3YW50IHRvIHJlbmRlciBhbiBpbWFnZSBidXQgZG9uJ3Qgc2NhbGUgaXQgdXAuXG4gKi9cbnR5cGUgTGF5b3V0VHlwZUludHJpbnNpYyA9IHtcbiAgbGF5b3V0PzogJ2ludHJpbnNpYydcblxuICB3aWR0aDogbnVtYmVyXG4gIGhlaWdodDogbnVtYmVyXG5cbiAgc3R5bGU/OiBPbWl0PEltZ0VsZW1lbnRTdHlsZSwgJ3dpZHRoJyB8ICdoZWlnaHQnIHwgJ21heFdpZHRoJz5cbn1cblxuLyoqXG4gKiBXaGVuIGByZXNwb25zaXZlYCwgdGhlIGltYWdlIHdpbGwgc2NhbGUgdGhlIGRpbWVuc2lvbnMgZG93biBmb3Igc21hbGxlciB2aWV3cG9ydHMgYW5kIHNjYWxlIHVwXG4gKiBmb3IgbGFyZ2VyIHZpZXdwb3J0cy5cbiAqXG4gKiBgYGB0c3hcbiAqIDxpbWcgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnYXV0bycgbWF4V2lkdGg6ICR7d2lkdGh9IH19XG4gKiBgYGBcbiAqXG4gKiBVc2UgY2FzZTogV2hlbiB5b3Ugd2FudCB0aGUgaW1hZ2UgdG8gZmlsbCBpdCdzIHBhcmVudCBjb250YWluZXIgaW4gd2lkdGhcbiAqL1xudHlwZSBMYXlvdXRUeXBlUmVzcG9uc2l2ZSA9IHtcbiAgbGF5b3V0PzogJ3Jlc3BvbnNpdmUnXG5cbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuXG4gIHN0eWxlPzogT21pdDxJbWdFbGVtZW50U3R5bGUsICd3aWR0aCcgfCAnaGVpZ2h0Jz5cbn1cblxuLyoqXG4gKiBXaGVuIGBmaWxsYCwgdGhlIGltYWdlIHdpbGwgc3RyZXRjaCBib3RoIHdpZHRoIGFuZCBoZWlnaHQgdG8gdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHBhcmVudFxuICogZWxlbWVudCwgcGFpcmVkIHdpdGggdGhlIG9iamVjdEZpdCBwcm9wZXJ0eS5cbiAqXG4gKiBTaW5jZSB0aGUgd2lkdGgvaGVpZ2h0IGlzbid0IHJlcXVpcmVkIHRvIHJlbmRlciB0aGUgcGFnZSB3ZSBjYW4gb21pdCBpdC5cbiAqXG4gKiBgYGB0c3hcbiAqIDxpbWcgd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodH0gc3R5bGU9e3sgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX1cbiAqIGBgYFxuICpcbiAqIFVzZSBjYXNlOiBXaGVuIHlvdSBoYXZlIGEgcHJlZGVmaW5lZCBhcmVhIHNldCB0byByZW5kZXIgYW4gaW1hZ2VcbiAqL1xudHlwZSBMYXlvdXRUeXBlRmlsbCA9IHtcbiAgbGF5b3V0PzogJ2ZpbGwnXG5cbiAgd2lkdGg/OiBuZXZlclxuICBoZWlnaHQ/OiBuZXZlclxuXG4gIC8vIG9iamVjdEZpdDogSW1nRWxlbWVudFN0eWxlWydvYmplY3RGaXQnXVxuICBzdHlsZT86IE9taXQ8SW1nRWxlbWVudFN0eWxlLCAnd2lkdGgnIHwgJ2hlaWdodCc+XG59XG5cbmV4cG9ydCB0eXBlIFN0cmluZ0ltYWdlUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nXG59ICYgKExheW91dFR5cGVGaWxsIHwgTGF5b3V0VHlwZVJlc3BvbnNpdmUgfCBMYXlvdXRUeXBlTmF0aXZlIHwgTGF5b3V0VHlwZUludHJpbnNpYykgJlxuICAoXG4gICAgfCB7IHBsYWNlaG9sZGVyPzogRXhjbHVkZTxQbGFjZWhvbGRlclZhbHVlLCAnYmx1cic+OyBibHVyRGF0YVVSTD86IG5ldmVyIH1cbiAgICB8IHsgcGxhY2Vob2xkZXI6ICdibHVyJzsgYmx1ckRhdGFVUkw6IHN0cmluZyB9XG4gIClcblxuZXhwb3J0IHR5cGUgT2JqZWN0SW1hZ2VQcm9wcyA9IHtcbiAgc3JjOiBTdGF0aWNJbXBvcnRcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nXG4gIGxheW91dD86IExheW91dFZhbHVlXG4gIHBsYWNlaG9sZGVyPzogUGxhY2Vob2xkZXJWYWx1ZVxuICBibHVyRGF0YVVSTD86IG5ldmVyXG59XG5cbmV4cG9ydCB0eXBlIEltYWdlUHJvcHMgPSBCYXNlSW1hZ2VQcm9wcyAmIChTdHJpbmdJbWFnZVByb3BzIHwgT2JqZWN0SW1hZ2VQcm9wcylcblxuZXhwb3J0IHR5cGUgU3RyaW5nSW1hZ2UgPSBCYXNlSW1hZ2VQcm9wcyAmIFN0cmluZ0ltYWdlUHJvcHNcbmV4cG9ydCB0eXBlIE9iamVjdEltYWdlID0gQmFzZUltYWdlUHJvcHMgJiBPYmplY3RJbWFnZVByb3BzXG5cbmNvbnN0IEltYWdlID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MSW1hZ2VFbGVtZW50LCBJbWFnZVByb3BzPihcbiAgKFxuICAgIHtcbiAgICAgIHNyYyxcbiAgICAgIHNpemVzOiBzaXplc0luY29tbWluZyxcbiAgICAgIHVub3B0aW1pemVkID0gZmFsc2UsXG4gICAgICBsb2FkaW5nLFxuICAgICAgbGF5b3V0ID0gJ3Jlc3BvbnNpdmUnLFxuICAgICAgcXVhbGl0eSxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgc3R5bGUsXG4gICAgICBsb2FkZXIgPSBkZWZhdWx0SW1hZ2VMb2FkZXIsXG4gICAgICBwbGFjZWhvbGRlciA9ICdlbXB0eScsXG4gICAgICBibHVyRGF0YVVSTCxcbiAgICAgIC4uLmltZ1Byb3BzXG4gICAgfSxcbiAgICBmb3J3YXJkZWRSZWYsXG4gICkgPT4ge1xuICAgIGNvbnN0IHJlZiA9IHVzZUZvcndhcmRlZFJlZihmb3J3YXJkZWRSZWYpXG5cbiAgICBjb25zdCBzaXplc09yaWcgPVxuICAgICAgbGF5b3V0ID09PSAnZml4ZWQnICYmIHdpZHRoICYmICFzaXplc0luY29tbWluZ1xuICAgICAgICA/IChgJHt3aWR0aH1weGAgYXMgU2l6ZXNTdHJpbmcpXG4gICAgICAgIDogc2l6ZXNJbmNvbW1pbmdcblxuICAgIGNvbnN0IHNpemVzID0gZ2VuZXJhdGVTaXplc1N0cmluZyhzaXplc09yaWcpID8/ICc1MHZ3J1xuXG4gICAgLy8gSWYgbm8gcmVzcG9uc2l2ZSBzaXplcyBhcmUgZ2l2ZW4sIHdlJ3JlIGRlZmF1bHRpbmcgdG8gNTB2dyBvbiBtb2JpbGVcbiAgICAvLyBjb25zdCBbc2l6ZXMsIHNldFNpemVzXSA9IHVzZVN0YXRlKHRvU2l6ZXNTdHJpbmcoc2l6ZXNPcmlnKSA/PyBgNTB2d2ApXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHJldHVybiAoKSA9PiB7fVxuICAgICAgaWYgKCFyZWYuY3VycmVudCkgcmV0dXJuICgpID0+IHt9XG5cbiAgICAgIGZ1bmN0aW9uIHJlcG9ydFNpemVzKGltZzogSFRNTEltYWdlRWxlbWVudCkge1xuICAgICAgICBsZXQgcmF0aW86IG51bWJlclxuXG4gICAgICAgIGNvbnN0IHJlcG9ydGVkU2l6ZSA9IGltZy5jbGllbnRXaWR0aFxuXG4gICAgICAgIGxldCBtc2cgPSAnJ1xuICAgICAgICBjb25zdCBbYnJlYWtwb2ludCwgc2l6ZV0gPSBzaXplc0VudHJpZXMoc2l6ZXNPcmlnKS5maW5kKChbc10pID0+XG4gICAgICAgICAgcyA9PT0gMCA/IHRydWUgOiB3aW5kb3cubWF0Y2hNZWRpYShgKG1pbi13aWR0aDogJHtzfSlgKS5tYXRjaGVzLFxuICAgICAgICApID8/IFswLCAnMTAwdncnXVxuICAgICAgICBpZiAoc2l6ZSkge1xuICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYHdpZHRoOiAke3NpemV9YClcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKVxuICAgICAgICAgIGNvbnN0IG1lYXN1cmVkV2lkdGggPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxuICAgICAgICAgIC8vIGVsLnJlbW92ZSgpXG4gICAgICAgICAgcmF0aW8gPSBtZWFzdXJlZFdpZHRoICoqIDIgLyByZXBvcnRlZFNpemUgKiogMlxuICAgICAgICAgIG1zZyArPSBgSW1hZ2UgaGFzIFwic2l6ZXNcIiBwcm9wZXJ0eSBzZXQsIGJ1dCBzaXplICdtaW4td2lkdGgoJHticmVha3BvaW50fXB4KSAke3NpemV9JyBpcyBpbmNvcnJlY3QuYFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1zZyArPSBgSW1hZ2UgaGFzIG5vIFwic2l6ZXNcIiBwcm9wZXJ0eSBzZXQuYFxuICAgICAgICAgIHJhdGlvID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC41KSAqKiAyIC8gcmVwb3J0ZWRTaXplICoqIDJcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdW5kID0gKG5yOiBudW1iZXIpID0+IE1hdGgucm91bmQobnIgKiAxMDApIC8gMTAwXG4gICAgICAgIGlmIChyYXRpbyA+IDEuMikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06ICR7bXNnfSBDdXJyZW50bHkgZG93bmxvYWRpbmcgYW4gaW1hZ2UgdGhhdCBoYXMgJHtyb3VuZChcbiAgICAgICAgICAgICAgcmF0aW8sXG4gICAgICAgICAgICApfXggdG9vIG1hbnkgcGl4ZWxzYCxcbiAgICAgICAgICAgIGltZyxcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAocmF0aW8gPCAwLjgpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiAke21zZ30gQ3VycmVudGx5IGRvd25sb2FkaW5nIGFuIGltYWdlIHRoYXQgaGFzICR7cm91bmQoXG4gICAgICAgICAgICAgIDEgLyByYXRpbyxcbiAgICAgICAgICAgICl9eCB0b28gZmV3IHBpeGVsc2AsXG4gICAgICAgICAgICBpbWcsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFdhcm4gdGhlIHVzZXIgd2hlbiBoZSBpc24ndCBwcm92aWRpbmcgc2l6ZXMgYW5kIGhvdyB0byBwcm9jZWVkXG4gICAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoW2VudHJ5XSkgPT4ge1xuICAgICAgICBjb25zdCBpbWcgPSBlbnRyeS50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudFxuICAgICAgICBpZiAoaW1nLm5hdHVyYWxXaWR0aCkgcmVwb3J0U2l6ZXMoaW1nKVxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4gcmVwb3J0U2l6ZXMoaW1nKVxuICAgICAgfSlcbiAgICAgIHJvLm9ic2VydmUocmVmLmN1cnJlbnQpXG5cbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbbGF5b3V0LCByZWYsIHNpemVzT3JpZywgc3JjLCB3aWR0aF0pXG5cbiAgICBsZXQgc3RhdGljU3JjID0gJydcbiAgICBpZiAoaXNTdGF0aWNJbXBvcnQoc3JjKSkge1xuICAgICAgY29uc3Qgc3RhdGljSW1hZ2VEYXRhID0gaXNTdGF0aWNSZXF1aXJlKHNyYykgPyBzcmMuZGVmYXVsdCA6IHNyY1xuICAgICAgaWYgKCFzdGF0aWNJbWFnZURhdGEuc3JjKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHN0YXRpY0ltYWdlRGF0YSxcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGJsdXJEYXRhVVJMID0gYmx1ckRhdGFVUkwgfHwgc3RhdGljSW1hZ2VEYXRhLmJsdXJEYXRhVVJMXG4gICAgICBzdGF0aWNTcmMgPSBzdGF0aWNJbWFnZURhdGEuc3JjXG4gICAgICBpZiAoIWxheW91dCB8fCBsYXlvdXQgIT09ICdmaWxsJykge1xuICAgICAgICBoZWlnaHQgPSBoZWlnaHQgfHwgc3RhdGljSW1hZ2VEYXRhLmhlaWdodFxuICAgICAgICB3aWR0aCA9IHdpZHRoIHx8IHN0YXRpY0ltYWdlRGF0YS53aWR0aFxuICAgICAgICBpZiAoIXN0YXRpY0ltYWdlRGF0YS5oZWlnaHQgfHwgIXN0YXRpY0ltYWdlRGF0YS53aWR0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEFuIG9iamVjdCBzaG91bGQgb25seSBiZSBwYXNzZWQgdG8gdGhlIGltYWdlIGNvbXBvbmVudCBzcmMgcGFyYW1ldGVyIGlmIGl0IGNvbWVzIGZyb20gYSBzdGF0aWMgaW1hZ2UgaW1wb3J0LiBJdCBtdXN0IGluY2x1ZGUgaGVpZ2h0IGFuZCB3aWR0aC4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgc3RhdGljSW1hZ2VEYXRhLFxuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzcmMgPSB0eXBlb2Ygc3JjID09PSAnc3RyaW5nJyA/IHNyYyA6IHN0YXRpY1NyY1xuXG4gICAgY29uc3Qgd2lkdGhJbnQgPSBnZXRJbnQod2lkdGgpXG4gICAgY29uc3QgaGVpZ2h0SW50ID0gZ2V0SW50KGhlaWdodClcbiAgICBjb25zdCBxdWFsaXR5SW50ID0gZ2V0SW50KHF1YWxpdHkpXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJzcmNcIiBwcm9wZXJ0eS4gTWFrZSBzdXJlIHlvdSBwYXNzIFwic3JjXCIgaW4gcHJvcHMgdG8gdGhlIFxcYEByZWFjaGRpZ2l0YWwvaW1hZ2VcXGAgY29tcG9uZW50LiBSZWNlaXZlZDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgd2lkdGgsIGhlaWdodCwgcXVhbGl0eSB9LFxuICAgICAgICAgICl9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKCFWQUxJRF9MQVlPVVRfVkFMVUVTLmluY2x1ZGVzKGxheW91dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJsYXlvdXRcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCIke2xheW91dH1cIiBzaG91bGQgYmUgb25lIG9mICR7VkFMSURfTEFZT1VUX1ZBTFVFUy5tYXAoXG4gICAgICAgICAgICBTdHJpbmcsXG4gICAgICAgICAgKS5qb2luKCcsJyl9LmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgKHR5cGVvZiB3aWR0aEludCAhPT0gJ3VuZGVmaW5lZCcgJiYgTnVtYmVyLmlzTmFOKHdpZHRoSW50KSkgfHxcbiAgICAgICAgKHR5cGVvZiBoZWlnaHRJbnQgIT09ICd1bmRlZmluZWQnICYmIE51bWJlci5pc05hTihoZWlnaHRJbnQpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwid2lkdGhcIiBvciBcImhlaWdodFwiIHByb3BlcnR5LiBUaGVzZSBzaG91bGQgYmUgbnVtZXJpYyB2YWx1ZXMuYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKCFWQUxJRF9MT0FESU5HX1ZBTFVFUy5pbmNsdWRlcyhsb2FkaW5nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgaW52YWxpZCBcImxvYWRpbmdcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCIke2xvYWRpbmd9XCIgc2hvdWxkIGJlIG9uZSBvZiAke1ZBTElEX0xPQURJTkdfVkFMVUVTLm1hcChcbiAgICAgICAgICAgIFN0cmluZyxcbiAgICAgICAgICApLmpvaW4oJywnKX0uYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKHBsYWNlaG9sZGVyID09PSAnYmx1cicpIHtcbiAgICAgICAgaWYgKGxheW91dCAhPT0gJ2ZpbGwnICYmICh3aWR0aEludCB8fCAwKSAqIChoZWlnaHRJbnQgfHwgMCkgPCAxNjAwKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyBzbWFsbGVyIHRoYW4gNDB4NDAuIENvbnNpZGVyIHJlbW92aW5nIHRoZSBcInBsYWNlaG9sZGVyPSdibHVyJ1wiIHByb3BlcnR5IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuYCxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFibHVyRGF0YVVSTCkge1xuICAgICAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gWydqcGVnJywgJ3BuZycsICd3ZWJwJ10gLy8gc2hvdWxkIG1hdGNoIG5leHQtaW1hZ2UtbG9hZGVyXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBcInBsYWNlaG9sZGVyPSdibHVyJ1wiIHByb3BlcnR5IGJ1dCBpcyBtaXNzaW5nIHRoZSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHkuXG4gICAgICAgICAgUG9zc2libGUgc29sdXRpb25zOlxuICAgICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXG4gICAgICAgICAgICAtIENoYW5nZSB0aGUgXCJzcmNcIiBwcm9wZXJ0eSB0byBhIHN0YXRpYyBpbXBvcnQgd2l0aCBvbmUgb2YgdGhlIHN1cHBvcnRlZCBmaWxlIHR5cGVzOiAke1ZBTElEX0JMVVJfRVhULmpvaW4oXG4gICAgICAgICAgICAgICcsJyxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICAtIFJlbW92ZSB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5LCBlZmZlY3RpdmVseSBubyBibHVyIGVmZmVjdFxuICAgICAgICAgIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcGxhY2Vob2xkZXItYmx1ci1kYXRhLXVybGAsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aWR0aEludCA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGhlaWdodEludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChsYXlvdXQgPT09ICdmaWxsJykge1xuICAgICAgICAvLyBoYW5kbGUgZmlsbFxuICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIDxJbWFnZSBzcmM9XCJpLnBuZ1wiIC8+XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIG11c3QgdXNlIFwid2lkdGhcIiBhbmQgXCJoZWlnaHRcIiBwcm9wZXJ0aWVzIG9yIFwibGF5b3V0PSdmaWxsJ1wiIHByb3BlcnR5LmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkaW5nID8/PSAnbGF6eSdcbiAgICBpZiAoc3JjICYmIHNyYy5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL0RhdGFfVVJJc1xuICAgICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlczN4ID0gZ2VuZXJhdGVTb3VyY2VBdHRycyh7XG4gICAgICBzcmMsXG4gICAgICBsYXlvdXQ6IGxheW91dCBhcyBMYXlvdXRWYWx1ZSxcbiAgICAgIGxvYWRlcixcbiAgICAgIHF1YWxpdHk6IHF1YWxpdHlJbnQsXG4gICAgICBzaXplcyxcbiAgICAgIHdpZHRoOiB3aWR0aEludCxcbiAgICAgIHNjYWxlOiAxLjUsXG4gICAgfSlcblxuICAgIGNvbnN0IGF0dHJpYnV0ZXMyeCA9IGdlbmVyYXRlU291cmNlQXR0cnMoe1xuICAgICAgc3JjLFxuICAgICAgbGF5b3V0OiBsYXlvdXQgYXMgTGF5b3V0VmFsdWUsXG4gICAgICBsb2FkZXIsXG4gICAgICBxdWFsaXR5OiBxdWFsaXR5SW50LFxuICAgICAgc2l6ZXMsXG4gICAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgICBzY2FsZTogMSxcbiAgICB9KVxuXG4gICAgY29uc3QgYXR0cmlidXRlczF4ID0gZ2VuZXJhdGVTb3VyY2VBdHRycyh7XG4gICAgICBzcmMsXG4gICAgICBsYXlvdXQ6IGxheW91dCBhcyBMYXlvdXRWYWx1ZSxcbiAgICAgIGxvYWRlcixcbiAgICAgIHF1YWxpdHk6IHF1YWxpdHlJbnQsXG4gICAgICBzaXplcyxcbiAgICAgIHdpZHRoOiB3aWR0aEludCxcbiAgICAgIHNjYWxlOiAwLjUsXG4gICAgfSlcblxuICAgIGlmIChsYXlvdXQgIT09ICdmaXhlZCcgJiYgIXN0eWxlKSBzdHlsZSA9IHt9XG4gICAgaWYgKGxheW91dCA9PT0gJ3Jlc3BvbnNpdmUnKSBzdHlsZSA9IHsgLi4uc3R5bGUsIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIH1cbiAgICBpZiAobGF5b3V0ID09PSAnaW50cmluc2ljJykgc3R5bGUgPSB7IC4uLnN0eWxlLCB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJywgbWF4V2lkdGg6IHdpZHRoIH1cbiAgICBpZiAobGF5b3V0ID09PSAnZmlsbCcpIHN0eWxlID0geyAuLi5zdHlsZSwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHt1bm9wdGltaXplZCA/IChcbiAgICAgICAgICA8aW1nIHJlZj17cmVmfSB7Li4uaW1nUHJvcHN9IHNyYz17c3JjfSB3aWR0aD17d2lkdGh9IGhlaWdodD17aGVpZ2h0fSBzdHlsZT17c3R5bGV9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHBpY3R1cmU+XG4gICAgICAgICAgICA8c291cmNlIG1lZGlhPScoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjUpJyB7Li4uYXR0cmlidXRlczN4fSAvPlxuICAgICAgICAgICAgPHNvdXJjZSBtZWRpYT0nKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KScgey4uLmF0dHJpYnV0ZXMyeH0gLz5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgICAgIHsuLi5pbWdQcm9wc31cbiAgICAgICAgICAgICAgey4uLmF0dHJpYnV0ZXMxeH1cbiAgICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3BpY3R1cmU+XG4gICAgICAgICl9XG4gICAgICAgIHtsb2FkaW5nID09PSAnZWFnZXInICYmIChcbiAgICAgICAgICA8SGVhZD5cbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIGtleT17YF9fbmltZy0yeC0ke2F0dHJpYnV0ZXMxeC5zcmNTZXR9JHthdHRyaWJ1dGVzMXguc2l6ZXN9YH1cbiAgICAgICAgICAgICAgcmVsPSdwcmVsb2FkJ1xuICAgICAgICAgICAgICBhcz0naW1hZ2UnXG4gICAgICAgICAgICAgIG1lZGlhPScoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjUpJ1xuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGltYWdlc3Jjc2V0IGlzIG5vdCB5ZXQgaW4gdGhlIGxpbmsgZWxlbWVudCB0eXBlXG4gICAgICAgICAgICAgIGltYWdlc3Jjc2V0PXthdHRyaWJ1dGVzMXguc3JjU2V0fVxuICAgICAgICAgICAgICBpbWFnZXNpemVzPXtzaXplc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9IZWFkPlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuSW1hZ2UuZGlzcGxheU5hbWUgPSAnTmV4dFBpY3R1cmUnXG5cbmV4cG9ydCB7IEltYWdlIH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../components/Image.tsx\n");
19
+
20
+ /***/ })
21
+
22
+ });
@@ -0,0 +1,22 @@
1
+ /*
2
+ * ATTENTION: An "eval-source-map" devtool has been used.
3
+ * This devtool is neither made for production nor for readable output files.
4
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
+ * or disable the default devtool with "devtool: false".
7
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
+ */
9
+ self["webpackHotUpdate_N_E"]("pages/index",{
10
+
11
+ /***/ "../components/Image.tsx":
12
+ /*!*******************************!*\
13
+ !*** ../components/Image.tsx ***!
14
+ \*******************************/
15
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
16
+
17
+ "use strict";
18
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isStaticRequire\": function() { return /* binding */ isStaticRequire; },\n/* harmony export */ \"isStaticImageData\": function() { return /* binding */ isStaticImageData; },\n/* harmony export */ \"isStaticImport\": function() { return /* binding */ isStaticImport; },\n/* harmony export */ \"getInt\": function() { return /* binding */ getInt; },\n/* harmony export */ \"Image\": function() { return /* binding */ Image; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"../../../node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties */ \"../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/defineProperty */ \"../../../node_modules/next/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bedrock-layout/use-forwarded-ref */ \"../../../node_modules/@bedrock-layout/use-forwarded-ref/lib/index.m.js\");\n/* harmony import */ var next_dist_next_server_server_image_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/next-server/server/image-config */ \"../../../node_modules/next/dist/next-server/server/image-config.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/head */ \"../../../node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"../../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _config_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config/config */ \"../config/config.ts\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\nvar _jsxFileName = \"/Users/paulhachmang/Sites/reachdigital-next/packages/image/components/Image.tsx\",\n _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,_Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable prefer-const */\n\n/* eslint-disable no-param-reassign */\n\n/* eslint-disable @next/next/no-img-element */\n\n/* eslint-disable jsx-a11y/alt-text */\n\n\n\n\n\n\nif (false) {}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined];\nconst loaders = new Map([['imgix', _config_config__WEBPACK_IMPORTED_MODULE_6__.imgixLoader], ['cloudinary', _config_config__WEBPACK_IMPORTED_MODULE_6__.cloudinaryLoader], ['akamai', _config_config__WEBPACK_IMPORTED_MODULE_6__.akamaiLoader], ['default', _config_config__WEBPACK_IMPORTED_MODULE_6__.defaultLoader]]);\nconst VALID_LAYOUT_VALUES = ['fill', 'responsive', 'intrinsic', 'fixed'];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src));\n} // sort smallest to largest\n\nconst allSizes = [..._config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes, ..._config_config__WEBPACK_IMPORTED_MODULE_6__.configImageSizes];\n_config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes.sort((a, b) => a - b);\nallSizes.sort((a, b) => a - b);\n\nfunction getWidths(width, layout, sizes = '', scale) {\n if (sizes && layout === 'fill' || layout === 'responsive') {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = []; // eslint-disable-next-line no-cond-assign\n\n for (let match; match = viewportWidthRe.exec(sizes); match) {\n var _match;\n\n percentSizes.push(parseInt((_match = match) === null || _match === void 0 ? void 0 : _match[2], 10));\n }\n\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter(s => s >= _config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes[0] * smallestRatio),\n kind: 'w'\n };\n } // Find all the \"px\" sizes used in the sizes prop\n\n\n const pxWidthRe = /(^|\\s)(1?\\d+)px/g;\n const pxSizes = []; // eslint-disable-next-line no-cond-assign\n\n for (let match; match = pxWidthRe.exec(sizes); match) {\n var _match2;\n\n pxSizes.push(parseInt((_match2 = match) === null || _match2 === void 0 ? void 0 : _match2[2], 10));\n }\n\n if (pxSizes.length) {\n return {\n widths: pxSizes.map(pxSize => {\n var _allSizes$filter, _allSizes$filter2;\n\n const scaled = (_allSizes$filter = allSizes.filter(s => s * scale > pxSize)) === null || _allSizes$filter === void 0 ? void 0 : _allSizes$filter[0];\n const dpr2 = (_allSizes$filter2 = allSizes.filter(s => s > pxSize)) === null || _allSizes$filter2 === void 0 ? void 0 : _allSizes$filter2[0];\n return scale > 1 ? Math.max(scaled, dpr2) : Math.min(scaled, dpr2);\n }),\n kind: 'w'\n };\n }\n\n return {\n widths: allSizes,\n kind: 'w'\n };\n }\n\n if (typeof width !== 'number' || layout === 'fill') {\n return {\n widths: _config_config__WEBPACK_IMPORTED_MODULE_6__.configDeviceSizes,\n kind: 'w'\n };\n }\n\n const widths = [...new Set( // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2\n /* , width * 3*/\n ].map(w => allSizes.find(p => p >= w) || allSizes[allSizes.length - 1]))];\n return {\n widths,\n kind: 'x'\n };\n}\n\nfunction generateSourceAttrs({\n src,\n layout,\n width,\n quality = 44,\n sizes,\n loader,\n scale\n}) {\n const {\n widths,\n kind\n } = getWidths(width, layout, sizes, scale);\n return {\n sizes: !sizes && kind === 'w' ? `50vw` : sizes,\n srcSet: widths.map((w, i) => `${loader({\n src,\n quality,\n width: w\n })} ${kind === 'w' ? Math.round(w * scale) : i + 1}${kind}`).join(', ')\n };\n}\n\nfunction getInt(x) {\n if (typeof x === 'number') {\n return x;\n }\n\n if (typeof x === 'string') {\n return parseInt(x, 10);\n }\n\n return undefined;\n}\n\nfunction defaultImageLoader(loaderProps) {\n const load = loaders.get(_config_config__WEBPACK_IMPORTED_MODULE_6__.configLoader);\n\n if (load) {\n return load(_objectSpread({\n root: _config_config__WEBPACK_IMPORTED_MODULE_6__.configPath\n }, loaderProps));\n }\n\n throw new Error(`[@reachdigital/image]: Unknown \"loader\" found in \"next.config.js\". Expected: ${next_dist_next_server_server_image_config__WEBPACK_IMPORTED_MODULE_3__.VALID_LOADERS.join(', ')}. Received: ${_config_config__WEBPACK_IMPORTED_MODULE_6__.configLoader}`);\n} // See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\n\n\nfunction removePlaceholder(img, placeholder) {\n if (placeholder === 'blur' && img) {\n const handleLoad = () => {\n if (!img.src.startsWith('data:')) {\n const p = 'decode' in img ? img.decode() : Promise.resolve(); // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n p.catch(() => {}).then(() => {\n img.style.filter = 'none';\n img.style.backgroundSize = 'none';\n img.style.backgroundImage = 'none';\n });\n }\n };\n\n if (img.complete) {\n // If the real image fails to load, this will still remove the placeholder.\n // This is the desired behavior for now, and will be revisited when error\n // handling is worked on for the image component itself.\n handleLoad();\n } else {\n img.onload = handleLoad;\n }\n }\n}\n/** Checks whether an image is currently in the viewport */\n\n\nfunction isInViewport(elem) {\n const {\n top,\n right,\n bottom,\n left\n } = elem.getBoundingClientRect();\n return bottom >= 0 && right >= 0 && top <= window.innerHeight && left <= window.innerWidth;\n}\n\nfunction isSizesRecord(sizes) {\n return typeof sizes === 'object';\n}\n\nfunction sizesEntries(sizes) {\n if (isSizesRecord(sizes)) {\n return Object.entries(sizes).map(([breakpoint, size]) => [Number(breakpoint), size]).sort(([sizeA], [sizeB]) => sizeB - sizeA);\n }\n\n return [[0, sizes]];\n}\n\nfunction generateSizesString(sizes) {\n return sizesEntries(sizes).map(([breakpoint, size]) => {\n if (breakpoint === 0) return size;\n return `(min-width: ${breakpoint}px) ${size}`;\n }).join(', ');\n}\n/** Since we're handling stuff ourselves we omit some stuff */\n\n\nconst Image = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().forwardRef(_c = _s((_ref, forwardedRef) => {\n var _generateSizesString, _loading;\n\n _s();\n\n let {\n src,\n sizes: sizesIncomming,\n unoptimized = false,\n loading,\n layout = 'responsive',\n quality,\n width,\n height,\n style,\n loader = defaultImageLoader,\n placeholder = 'empty',\n blurDataURL\n } = _ref,\n imgProps = (0,_Users_paulhachmang_Sites_reachdigital_next_node_modules_next_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__.default)(_ref, [\"src\", \"sizes\", \"unoptimized\", \"loading\", \"layout\", \"quality\", \"width\", \"height\", \"style\", \"loader\", \"placeholder\", \"blurDataURL\"]);\n\n const ref = (0,_bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__.default)(forwardedRef);\n const sizesOrig = layout === 'fixed' && width && !sizesIncomming ? `${width}px` : sizesIncomming;\n const sizes = (_generateSizesString = generateSizesString(sizesOrig)) !== null && _generateSizesString !== void 0 ? _generateSizesString : '50vw'; // If no responsive sizes are given, we're defaulting to 50vw on mobile\n // const [sizes, setSizes] = useState(toSizesString(sizesOrig) ?? `50vw`)\n\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {\n if (false) {}\n if (!ref.current) return () => {};\n\n function getContainedSize(img) {\n let ratio = img.naturalWidth / img.naturalHeight;\n let w = img.height * ratio;\n let h = img.height;\n\n if (w > img.width) {\n w = img.width;\n w = img.width / ratio;\n }\n\n return [width, height];\n }\n\n function reportSizes(img) {\n var _sizesEntries$find;\n\n let ratio;\n const reportedSize = img.clientWidth;\n let msg = '';\n const [breakpoint, size] = (_sizesEntries$find = sizesEntries(sizesOrig).find(([s]) => s === 0 ? true : window.matchMedia(`(min-width: ${s})`).matches)) !== null && _sizesEntries$find !== void 0 ? _sizesEntries$find : [0, '100vw'];\n\n if (size) {\n const el = document.createElement('div');\n el.setAttribute('style', `width: ${size}`);\n document.body.appendChild(el);\n const measuredWidth = el.getBoundingClientRect().width;\n el.remove();\n ratio = measuredWidth ** 2 / reportedSize ** 2;\n msg += `Image has \"sizes\" property set, but size '${breakpoint > 0 ? `min-width(${breakpoint}px) ` : ''}${size}' is incorrect.`;\n } else {\n msg += `Image has no \"sizes\" property set.`;\n ratio = (window.innerWidth * 0.5) ** 2 / reportedSize ** 2;\n }\n\n const round = nr => Math.round(nr * 100) / 100;\n\n if (ratio > 1.5) {\n console.warn(`[@reachdigital/image]: ${msg} Currently downloading an image that has ${round(ratio)}x too many pixels`, img);\n } else if (ratio < 0.66) {\n console.warn(`[@reachdigital/image]: ${msg} Currently downloading an image that has ${round(1 / ratio)}x too few pixels`, img);\n }\n } // Warn the user when he isn't providing sizes and how to proceed\n\n\n const ro = new ResizeObserver(([entry]) => {\n const img = entry.target;\n if (img.naturalWidth) reportSizes(img);\n\n img.onload = () => reportSizes(img);\n });\n ro.observe(ref.current);\n return () => ro.disconnect();\n }, [layout, ref, sizesOrig, src, width]);\n let staticSrc = '';\n\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n\n if (!staticImageData.src) {\n throw new Error(`[@reachdigital/image]: An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(staticImageData)}`);\n }\n\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n\n if (!layout || layout !== 'fill') {\n height = height || staticImageData.height;\n width = width || staticImageData.width;\n\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(`[@reachdigital/image]: An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(staticImageData)}`);\n }\n }\n }\n\n src = typeof src === 'string' ? src : staticSrc;\n const widthInt = getInt(width);\n const heightInt = getInt(height);\n const qualityInt = getInt(quality);\n\n if (true) {\n if (!src) {\n throw new Error(`[@reachdigital/image]: Image is missing required \"src\" property. Make sure you pass \"src\" in props to the \\`@reachdigital/image\\` component. Received: ${JSON.stringify({\n width,\n height,\n quality\n })}`);\n }\n\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"layout\" property. Provided \"${layout}\" should be one of ${VALID_LAYOUT_VALUES.map(String).join(',')}.`);\n }\n\n if (typeof widthInt !== 'undefined' && Number.isNaN(widthInt) || typeof heightInt !== 'undefined' && Number.isNaN(heightInt)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"width\" or \"height\" property. These should be numeric values.`);\n }\n\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(String).join(',')}.`);\n }\n\n if (placeholder === 'blur') {\n if (layout !== 'fill' && (widthInt || 0) * (heightInt || 0) < 1600) {\n console.warn(`[@reachdigital/image]: Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder='blur'\" property to improve performance.`);\n }\n\n if (!blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp']; // should match next-image-loader\n\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(',')}\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`);\n }\n }\n }\n\n if (typeof widthInt === 'undefined' && typeof heightInt === 'undefined') {\n if (layout === 'fill') {// handle fill\n } else if (true) {\n // <Image src=\"i.png\" />\n throw new Error(`[@reachdigital/image]: Image with src \"${src}\" must use \"width\" and \"height\" properties or \"layout='fill'\" property.`);\n }\n }\n\n (_loading = loading) !== null && _loading !== void 0 ? _loading : loading = 'lazy';\n\n if (src && src.startsWith('data:')) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n }\n\n const attributes3x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 1.5\n });\n const attributes2x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 1\n });\n const attributes1x = generateSourceAttrs({\n src,\n layout: layout,\n loader,\n quality: qualityInt,\n sizes,\n width: widthInt,\n scale: 0.5\n });\n if (layout !== 'fixed' && !style) style = {};\n if (layout === 'responsive') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: 'auto'\n });\n if (layout === 'intrinsic') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: 'auto',\n maxWidth: width\n });\n if (layout === 'fill') style = _objectSpread(_objectSpread({}, style), {}, {\n width: '100%',\n height: '100%'\n });\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [unoptimized ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", _objectSpread(_objectSpread({\n ref: ref\n }, imgProps), {}, {\n src: src,\n width: width,\n height: height,\n style: style\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 637,\n columnNumber: 11\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"picture\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", _objectSpread({\n media: \"(-webkit-min-device-pixel-ratio: 2.5)\"\n }, attributes3x), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 640,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", _objectSpread({\n media: \"(-webkit-min-device-pixel-ratio: 1.5)\"\n }, attributes2x), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 641,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", _objectSpread(_objectSpread(_objectSpread({\n ref: ref\n }, imgProps), attributes1x), {}, {\n loading: loading,\n width: width,\n height: height,\n style: style\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 642,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 639,\n columnNumber: 11\n }, undefined), loading === 'eager' && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_4___default()), {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"link\", {\n rel: \"preload\",\n as: \"image\",\n media: \"(-webkit-min-device-pixel-ratio: 2.5)\" // @ts-expect-error imagesrcset is not yet in the link element type\n ,\n imagesrcset: attributes1x.srcSet,\n imagesizes: sizes\n }, `__nimg-2x-${attributes1x.srcSet}${attributes1x.sizes}`, false, {\n fileName: _jsxFileName,\n lineNumber: 655,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 654,\n columnNumber: 11\n }, undefined)]\n }, void 0, true);\n}, \"uc1ywpQv+s/tGng4xj/L6VVOIq8=\", false, function () {\n return [_bedrock_layout_use_forwarded_ref__WEBPACK_IMPORTED_MODULE_7__.default];\n}));\n_c2 = Image;\nImage.displayName = 'NextPicture';\n\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"Image$React.forwardRef\");\n$RefreshReg$(_c2, \"Image\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uL2NvbXBvbmVudHMvSW1hZ2UudHN4PzJiNmQiXSwibmFtZXMiOlsiVkFMSURfTE9BRElOR19WQUxVRVMiLCJ1bmRlZmluZWQiLCJsb2FkZXJzIiwiTWFwIiwiaW1naXhMb2FkZXIiLCJjbG91ZGluYXJ5TG9hZGVyIiwiYWthbWFpTG9hZGVyIiwiZGVmYXVsdExvYWRlciIsIlZBTElEX0xBWU9VVF9WQUxVRVMiLCJpc1N0YXRpY1JlcXVpcmUiLCJzcmMiLCJkZWZhdWx0IiwiaXNTdGF0aWNJbWFnZURhdGEiLCJpc1N0YXRpY0ltcG9ydCIsImFsbFNpemVzIiwiY29uZmlnRGV2aWNlU2l6ZXMiLCJjb25maWdJbWFnZVNpemVzIiwiYSIsImIiLCJzb3J0IiwiZ2V0V2lkdGhzIiwid2lkdGgiLCJsYXlvdXQiLCJzaXplcyIsInNjYWxlIiwidmlld3BvcnRXaWR0aFJlIiwicGVyY2VudFNpemVzIiwibWF0Y2giLCJleGVjIiwicHVzaCIsInBhcnNlSW50IiwibGVuZ3RoIiwic21hbGxlc3RSYXRpbyIsIk1hdGgiLCJtaW4iLCJ3aWR0aHMiLCJmaWx0ZXIiLCJzIiwia2luZCIsInB4V2lkdGhSZSIsInB4U2l6ZXMiLCJtYXAiLCJweFNpemUiLCJzY2FsZWQiLCJkcHIyIiwibWF4IiwiU2V0IiwidyIsImZpbmQiLCJwIiwiZ2VuZXJhdGVTb3VyY2VBdHRycyIsInF1YWxpdHkiLCJsb2FkZXIiLCJzcmNTZXQiLCJpIiwicm91bmQiLCJqb2luIiwiZ2V0SW50IiwieCIsImRlZmF1bHRJbWFnZUxvYWRlciIsImxvYWRlclByb3BzIiwibG9hZCIsImdldCIsImNvbmZpZ0xvYWRlciIsInJvb3QiLCJjb25maWdQYXRoIiwiRXJyb3IiLCJWQUxJRF9MT0FERVJTIiwicmVtb3ZlUGxhY2Vob2xkZXIiLCJpbWciLCJwbGFjZWhvbGRlciIsImhhbmRsZUxvYWQiLCJzdGFydHNXaXRoIiwiZGVjb2RlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjYXRjaCIsInRoZW4iLCJzdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZEltYWdlIiwiY29tcGxldGUiLCJvbmxvYWQiLCJpc0luVmlld3BvcnQiLCJlbGVtIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJpbm5lcldpZHRoIiwiaXNTaXplc1JlY29yZCIsInNpemVzRW50cmllcyIsIk9iamVjdCIsImVudHJpZXMiLCJicmVha3BvaW50Iiwic2l6ZSIsIk51bWJlciIsInNpemVBIiwic2l6ZUIiLCJnZW5lcmF0ZVNpemVzU3RyaW5nIiwiSW1hZ2UiLCJSZWFjdCIsImZvcndhcmRlZFJlZiIsInNpemVzSW5jb21taW5nIiwidW5vcHRpbWl6ZWQiLCJsb2FkaW5nIiwiaGVpZ2h0IiwiYmx1ckRhdGFVUkwiLCJpbWdQcm9wcyIsInJlZiIsInVzZUZvcndhcmRlZFJlZiIsInNpemVzT3JpZyIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJnZXRDb250YWluZWRTaXplIiwicmF0aW8iLCJuYXR1cmFsV2lkdGgiLCJuYXR1cmFsSGVpZ2h0IiwiaCIsInJlcG9ydFNpemVzIiwicmVwb3J0ZWRTaXplIiwiY2xpZW50V2lkdGgiLCJtc2ciLCJtYXRjaE1lZGlhIiwibWF0Y2hlcyIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwibWVhc3VyZWRXaWR0aCIsInJlbW92ZSIsIm5yIiwiY29uc29sZSIsIndhcm4iLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwiZW50cnkiLCJ0YXJnZXQiLCJvYnNlcnZlIiwiZGlzY29ubmVjdCIsInN0YXRpY1NyYyIsInN0YXRpY0ltYWdlRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ3aWR0aEludCIsImhlaWdodEludCIsInF1YWxpdHlJbnQiLCJpbmNsdWRlcyIsIlN0cmluZyIsImlzTmFOIiwiVkFMSURfQkxVUl9FWFQiLCJhdHRyaWJ1dGVzM3giLCJhdHRyaWJ1dGVzMngiLCJhdHRyaWJ1dGVzMXgiLCJtYXhXaWR0aCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTs7QUFhQSxJQUFJLE9BQStCLEVBR2xDOztBQUlELE1BQU1BLG9CQUFvQixHQUFHLENBQUMsTUFBRCxFQUFTLE9BQVQsRUFBa0JDLFNBQWxCLENBQTdCO0FBR0EsTUFBTUMsT0FBTyxHQUFHLElBQUlDLEdBQUosQ0FBaUUsQ0FDL0UsQ0FBQyxPQUFELEVBQVVDLHVEQUFWLENBRCtFLEVBRS9FLENBQUMsWUFBRCxFQUFlQyw0REFBZixDQUYrRSxFQUcvRSxDQUFDLFFBQUQsRUFBV0Msd0RBQVgsQ0FIK0UsRUFJL0UsQ0FBQyxTQUFELEVBQVlDLHlEQUFaLENBSitFLENBQWpFLENBQWhCO0FBT0EsTUFBTUMsbUJBQW1CLEdBQUcsQ0FBQyxNQUFELEVBQVMsWUFBVCxFQUF1QixXQUF2QixFQUFvQyxPQUFwQyxDQUE1QjtBQW9CTyxTQUFTQyxlQUFULENBQXlCQyxHQUF6QixFQUFxRjtBQUMxRixTQUFRQSxHQUFELENBQXVCQyxPQUF2QixLQUFtQ1YsU0FBMUM7QUFDRDtBQUVNLFNBQVNXLGlCQUFULENBQTJCRixHQUEzQixFQUF5RjtBQUM5RixTQUFRQSxHQUFELENBQXlCQSxHQUF6QixLQUFpQ1QsU0FBeEM7QUFDRDtBQUVNLFNBQVNZLGNBQVQsQ0FBd0JILEdBQXhCLEVBQXlFO0FBQzlFLFNBQU8sT0FBT0EsR0FBUCxLQUFlLFFBQWYsS0FBNEJELGVBQWUsQ0FBQ0MsR0FBRCxDQUFmLElBQXdCRSxpQkFBaUIsQ0FBQ0YsR0FBRCxDQUFyRSxDQUFQO0FBQ0QsQyxDQUVEOztBQUNBLE1BQU1JLFFBQVEsR0FBRyxDQUFDLEdBQUdDLDZEQUFKLEVBQXVCLEdBQUdDLDREQUExQixDQUFqQjtBQUNBRCxrRUFB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QUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFuQko7QUFBQSxrQkFERjtBQWtDRCxDQTdRVztBQUFBLFVBbUJFMEYsc0VBbkJGO0FBQUEsR0FBZDtNQUFNVixLO0FBK1FOQSxLQUFLLENBQUN5RCxXQUFOLEdBQW9CLGFBQXBCO0FBRUEiLCJmaWxlIjoiLi4vY29tcG9uZW50cy9JbWFnZS50c3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItY29uc3QgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9hbHQtdGV4dCAqL1xuaW1wb3J0IHVzZUZvcndhcmRlZFJlZiBmcm9tICdAYmVkcm9jay1sYXlvdXQvdXNlLWZvcndhcmRlZC1yZWYnXG5pbXBvcnQgeyBMb2FkZXJWYWx1ZSwgVkFMSURfTE9BREVSUyB9IGZyb20gJ25leHQvZGlzdC9uZXh0LXNlcnZlci9zZXJ2ZXIvaW1hZ2UtY29uZmlnJ1xuaW1wb3J0IEhlYWQgZnJvbSAnbmV4dC9oZWFkJ1xuaW1wb3J0IHR5cGUgeyBJbWFnZUxvYWRlclByb3BzLCBJbWFnZUxvYWRlciB9IGZyb20gJ25leHQvaW1hZ2UnXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZVJlc2l6ZU9ic2VydmVyIGZyb20gJ3VzZS1yZXNpemUtb2JzZXJ2ZXInXG5pbXBvcnQge1xuICBha2FtYWlMb2FkZXIsXG4gIGNsb3VkaW5hcnlMb2FkZXIsXG4gIGNvbmZpZ0RldmljZVNpemVzLFxuICBjb25maWdJbWFnZVNpemVzLFxuICBjb25maWdMb2FkZXIsXG4gIGNvbmZpZ1BhdGgsXG4gIERlZmF1bHRJbWFnZUxvYWRlclByb3BzLFxuICBkZWZhdWx0TG9hZGVyLFxuICBpbWdpeExvYWRlcixcbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZydcbmltcG9ydCB1c2VDb25uZWN0aW9uVHlwZSBmcm9tICcuLi9ob29rcy91c2VDb25uZWN0aW9uVHlwZSdcblxuaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICBnbG9iYWwuX19ORVhUX0lNQUdFX0lNUE9SVEVEID0gdHJ1ZVxufVxuXG5leHBvcnQgdHlwZSB7IEltYWdlTG9hZGVyUHJvcHMsIEltYWdlTG9hZGVyIH1cblxuY29uc3QgVkFMSURfTE9BRElOR19WQUxVRVMgPSBbJ2xhenknLCAnZWFnZXInLCB1bmRlZmluZWRdIGFzIGNvbnN0XG50eXBlIExvYWRpbmdWYWx1ZSA9IHR5cGVvZiBWQUxJRF9MT0FESU5HX1ZBTFVFU1tudW1iZXJdXG5cbmNvbnN0IGxvYWRlcnMgPSBuZXcgTWFwPExvYWRlclZhbHVlLCAocHJvcHM6IERlZmF1bHRJbWFnZUxvYWRlclByb3BzKSA9PiBzdHJpbmc+KFtcbiAgWydpbWdpeCcsIGltZ2l4TG9hZGVyXSxcbiAgWydjbG91ZGluYXJ5JywgY2xvdWRpbmFyeUxvYWRlcl0sXG4gIFsnYWthbWFpJywgYWthbWFpTG9hZGVyXSxcbiAgWydkZWZhdWx0JywgZGVmYXVsdExvYWRlcl0sXG5dKVxuXG5jb25zdCBWQUxJRF9MQVlPVVRfVkFMVUVTID0gWydmaWxsJywgJ3Jlc3BvbnNpdmUnLCAnaW50cmluc2ljJywgJ2ZpeGVkJ10gYXMgY29uc3RcbnR5cGUgTGF5b3V0VmFsdWUgPSAnZmlsbCcgfCAnZml4ZWQnIHwgJ2ludHJpbnNpYycgfCAncmVzcG9uc2l2ZScgfCB1bmRlZmluZWRcblxudHlwZSBQbGFjZWhvbGRlclZhbHVlID0gJ2JsdXInIHwgJ2VtcHR5J1xuXG50eXBlIEltZ0VsZW1lbnRTdHlsZSA9IE5vbk51bGxhYmxlPEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW1nJ11bJ3N0eWxlJ10+XG5cbmludGVyZmFjZSBTdGF0aWNJbWFnZURhdGEge1xuICBzcmM6IHN0cmluZ1xuICBoZWlnaHQ6IG51bWJlclxuICB3aWR0aDogbnVtYmVyXG4gIGJsdXJEYXRhVVJMPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBTdGF0aWNSZXF1aXJlIHtcbiAgZGVmYXVsdDogU3RhdGljSW1hZ2VEYXRhXG59XG5cbnR5cGUgU3RhdGljSW1wb3J0ID0gU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNSZXF1aXJlKHNyYzogU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YSk6IHNyYyBpcyBTdGF0aWNSZXF1aXJlIHtcbiAgcmV0dXJuIChzcmMgYXMgU3RhdGljUmVxdWlyZSkuZGVmYXVsdCAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY0ltYWdlRGF0YShzcmM6IFN0YXRpY1JlcXVpcmUgfCBTdGF0aWNJbWFnZURhdGEpOiBzcmMgaXMgU3RhdGljSW1hZ2VEYXRhIHtcbiAgcmV0dXJuIChzcmMgYXMgU3RhdGljSW1hZ2VEYXRhKS5zcmMgIT09IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNJbXBvcnQoc3JjOiBzdHJpbmcgfCBTdGF0aWNJbXBvcnQpOiBzcmMgaXMgU3RhdGljSW1wb3J0IHtcbiAgcmV0dXJuIHR5cGVvZiBzcmMgPT09ICdvYmplY3QnICYmIChpc1N0YXRpY1JlcXVpcmUoc3JjKSB8fCBpc1N0YXRpY0ltYWdlRGF0YShzcmMpKVxufVxuXG4vLyBzb3J0IHNtYWxsZXN0IHRvIGxhcmdlc3RcbmNvbnN0IGFsbFNpemVzID0gWy4uLmNvbmZpZ0RldmljZVNpemVzLCAuLi5jb25maWdJbWFnZVNpemVzXVxuY29uZmlnRGV2aWNlU2l6ZXMuc29ydCgoYSwgYikgPT4gYSAtIGIpXG5hbGxTaXplcy5zb3J0KChhLCBiKSA9PiBhIC0gYilcblxuZnVuY3Rpb24gZ2V0V2lkdGhzKFxuICB3aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBsYXlvdXQ6IExheW91dFZhbHVlLFxuICBzaXplcyA9ICcnLFxuICBzY2FsZTogbnVtYmVyLFxuKTogeyB3aWR0aHM6IG51bWJlcltdOyBraW5kOiAndycgfCAneCcgfSB7XG4gIGlmICgoc2l6ZXMgJiYgbGF5b3V0ID09PSAnZmlsbCcpIHx8IGxheW91dCA9PT0gJ3Jlc3BvbnNpdmUnKSB7XG4gICAgLy8gRmluZCBhbGwgdGhlIFwidndcIiBwZXJjZW50IHNpemVzIHVzZWQgaW4gdGhlIHNpemVzIHByb3BcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoUmUgPSAvKF58XFxzKSgxP1xcZD9cXGQpdncvZ1xuICAgIGNvbnN0IHBlcmNlbnRTaXplczogbnVtYmVyW10gPSBbXVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICAgIGZvciAobGV0IG1hdGNoOiBzdHJpbmdbXSB8IG51bGw7IChtYXRjaCA9IHZpZXdwb3J0V2lkdGhSZS5leGVjKHNpemVzKSk7IG1hdGNoKSB7XG4gICAgICBwZXJjZW50U2l6ZXMucHVzaChwYXJzZUludChtYXRjaD8uWzJdLCAxMCkpXG4gICAgfVxuICAgIGlmIChwZXJjZW50U2l6ZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzbWFsbGVzdFJhdGlvID0gTWF0aC5taW4oLi4ucGVyY2VudFNpemVzKSAqIDAuMDFcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGhzOiBhbGxTaXplcy5maWx0ZXIoKHMpID0+IHMgPj0gY29uZmlnRGV2aWNlU2l6ZXNbMF0gKiBzbWFsbGVzdFJhdGlvKSxcbiAgICAgICAga2luZDogJ3cnLFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgYWxsIHRoZSBcInB4XCIgc2l6ZXMgdXNlZCBpbiB0aGUgc2l6ZXMgcHJvcFxuICAgIGNvbnN0IHB4V2lkdGhSZSA9IC8oXnxcXHMpKDE/XFxkKylweC9nXG4gICAgY29uc3QgcHhTaXplczogbnVtYmVyW10gPSBbXVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICAgIGZvciAobGV0IG1hdGNoOiBzdHJpbmdbXSB8IG51bGw7IChtYXRjaCA9IHB4V2lkdGhSZS5leGVjKHNpemVzKSk7IG1hdGNoKSB7XG4gICAgICBweFNpemVzLnB1c2gocGFyc2VJbnQobWF0Y2g/LlsyXSwgMTApKVxuICAgIH1cblxuICAgIGlmIChweFNpemVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGhzOiBweFNpemVzLm1hcCgocHhTaXplKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2NhbGVkID0gYWxsU2l6ZXMuZmlsdGVyKChzKSA9PiBzICogc2NhbGUgPiBweFNpemUpPy5bMF1cbiAgICAgICAgICBjb25zdCBkcHIyID0gYWxsU2l6ZXMuZmlsdGVyKChzKSA9PiBzID4gcHhTaXplKT8uWzBdXG4gICAgICAgICAgcmV0dXJuIHNjYWxlID4gMSA/IE1hdGgubWF4KHNjYWxlZCwgZHByMikgOiBNYXRoLm1pbihzY2FsZWQsIGRwcjIpXG4gICAgICAgIH0pLFxuICAgICAgICBraW5kOiAndycsXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgd2lkdGhzOiBhbGxTaXplcywga2luZDogJ3cnIH1cbiAgfVxuICBpZiAodHlwZW9mIHdpZHRoICE9PSAnbnVtYmVyJyB8fCBsYXlvdXQgPT09ICdmaWxsJykge1xuICAgIHJldHVybiB7IHdpZHRoczogY29uZmlnRGV2aWNlU2l6ZXMsIGtpbmQ6ICd3JyB9XG4gIH1cblxuICBjb25zdCB3aWR0aHMgPSBbXG4gICAgLi4ubmV3IFNldChcbiAgICAgIC8vID4gVGhpcyBtZWFucyB0aGF0IG1vc3QgT0xFRCBzY3JlZW5zIHRoYXQgc2F5IHRoZXkgYXJlIDN4IHJlc29sdXRpb24sXG4gICAgICAvLyA+IGFyZSBhY3R1YWxseSAzeCBpbiB0aGUgZ3JlZW4gY29sb3IsIGJ1dCBvbmx5IDEuNXggaW4gdGhlIHJlZCBhbmRcbiAgICAgIC8vID4gYmx1ZSBjb2xvcnMuIFNob3dpbmcgYSAzeCByZXNvbHV0aW9uIGltYWdlIGluIHRoZSBhcHAgdnMgYSAyeFxuICAgICAgLy8gPiByZXNvbHV0aW9uIGltYWdlIHdpbGwgYmUgdmlzdWFsbHkgdGhlIHNhbWUsIHRob3VnaCB0aGUgM3ggaW1hZ2VcbiAgICAgIC8vID4gdGFrZXMgc2lnbmlmaWNhbnRseSBtb3JlIGRhdGEuIEV2ZW4gdHJ1ZSAzeCByZXNvbHV0aW9uIHNjcmVlbnMgYXJlXG4gICAgICAvLyA+IHdhc3RlZnVsIGFzIHRoZSBodW1hbiBleWUgY2Fubm90IHNlZSB0aGF0IGxldmVsIG9mIGRldGFpbCB3aXRob3V0XG4gICAgICAvLyA+IHNvbWV0aGluZyBsaWtlIGEgbWFnbmlmeWluZyBnbGFzcy5cbiAgICAgIC8vIGh0dHBzOi8vYmxvZy50d2l0dGVyLmNvbS9lbmdpbmVlcmluZy9lbl91cy90b3BpY3MvaW5mcmFzdHJ1Y3R1cmUvMjAxOS9jYXBwaW5nLWltYWdlLWZpZGVsaXR5LW9uLXVsdHJhLWhpZ2gtcmVzb2x1dGlvbi1kZXZpY2VzLmh0bWxcbiAgICAgIFt3aWR0aCwgd2lkdGggKiAyIC8qICwgd2lkdGggKiAzKi9dLm1hcChcbiAgICAgICAgKHcpID0+IGFsbFNpemVzLmZpbmQoKHApID0+IHAgPj0gdykgfHwgYWxsU2l6ZXNbYWxsU2l6ZXMubGVuZ3RoIC0gMV0sXG4gICAgICApLFxuICAgICksXG4gIF1cbiAgcmV0dXJuIHsgd2lkdGhzLCBraW5kOiAneCcgfVxufVxuXG50eXBlIEdlbkltZ0F0dHJzRGF0YSA9IHtcbiAgc3JjOiBzdHJpbmdcbiAgbGF5b3V0OiBMYXlvdXRWYWx1ZVxuICBsb2FkZXI6IEltYWdlTG9hZGVyXG4gIHdpZHRoPzogbnVtYmVyXG4gIHF1YWxpdHk/OiBudW1iZXJcbiAgc2l6ZXM/OiBzdHJpbmdcbiAgc2NhbGU6IG51bWJlclxufVxuXG50eXBlIEdlbkltZ0F0dHJzUmVzdWx0ID0ge1xuICBzcmNTZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzaXplczogc3RyaW5nIHwgdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlU291cmNlQXR0cnMoe1xuICBzcmMsXG4gIGxheW91dCxcbiAgd2lkdGgsXG4gIHF1YWxpdHkgPSA0NCxcbiAgc2l6ZXMsXG4gIGxvYWRlcixcbiAgc2NhbGUsXG59OiBHZW5JbWdBdHRyc0RhdGEpOiBHZW5JbWdBdHRyc1Jlc3VsdCB7XG4gIGNvbnN0IHsgd2lkdGhzLCBraW5kIH0gPSBnZXRXaWR0aHMod2lkdGgsIGxheW91dCwgc2l6ZXMsIHNjYWxlKVxuXG4gIHJldHVybiB7XG4gICAgc2l6ZXM6ICFzaXplcyAmJiBraW5kID09PSAndycgPyBgNTB2d2AgOiBzaXplcyxcbiAgICBzcmNTZXQ6IHdpZHRoc1xuICAgICAgLm1hcChcbiAgICAgICAgKHcsIGkpID0+XG4gICAgICAgICAgYCR7bG9hZGVyKHsgc3JjLCBxdWFsaXR5LCB3aWR0aDogdyB9KX0gJHtcbiAgICAgICAgICAgIGtpbmQgPT09ICd3JyA/IE1hdGgucm91bmQodyAqIHNjYWxlKSA6IGkgKyAxXG4gICAgICAgICAgfSR7a2luZH1gLFxuICAgICAgKVxuICAgICAgLmpvaW4oJywgJyksXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludCh4OiB1bmtub3duKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiB4ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB4XG4gIH1cbiAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJzZUludCh4LCAxMClcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRJbWFnZUxvYWRlcihsb2FkZXJQcm9wczogSW1hZ2VMb2FkZXJQcm9wcykge1xuICBjb25zdCBsb2FkID0gbG9hZGVycy5nZXQoY29uZmlnTG9hZGVyKVxuICBpZiAobG9hZCkge1xuICAgIHJldHVybiBsb2FkKHsgcm9vdDogY29uZmlnUGF0aCwgLi4ubG9hZGVyUHJvcHMgfSlcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogVW5rbm93biBcImxvYWRlclwiIGZvdW5kIGluIFwibmV4dC5jb25maWcuanNcIi4gRXhwZWN0ZWQ6ICR7VkFMSURfTE9BREVSUy5qb2luKFxuICAgICAgJywgJyxcbiAgICApfS4gUmVjZWl2ZWQ6ICR7Y29uZmlnTG9hZGVyfWAsXG4gIClcbn1cblxuLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8zOTc3NzgzMy8yNjY1MzUgZm9yIHdoeSB3ZSB1c2UgdGhpcyByZWZcbi8vIGhhbmRsZXIgaW5zdGVhZCBvZiB0aGUgaW1nJ3Mgb25Mb2FkIGF0dHJpYnV0ZS5cbmZ1bmN0aW9uIHJlbW92ZVBsYWNlaG9sZGVyKGltZzogSFRNTEltYWdlRWxlbWVudCB8IG51bGwsIHBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlclZhbHVlKSB7XG4gIGlmIChwbGFjZWhvbGRlciA9PT0gJ2JsdXInICYmIGltZykge1xuICAgIGNvbnN0IGhhbmRsZUxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoIWltZy5zcmMuc3RhcnRzV2l0aCgnZGF0YTonKSkge1xuICAgICAgICBjb25zdCBwID0gJ2RlY29kZScgaW4gaW1nID8gaW1nLmRlY29kZSgpIDogUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1xuICAgICAgICBwLmNhdGNoKCgpID0+IHt9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICBpbWcuc3R5bGUuZmlsdGVyID0gJ25vbmUnXG4gICAgICAgICAgaW1nLnN0eWxlLmJhY2tncm91bmRTaXplID0gJ25vbmUnXG4gICAgICAgICAgaW1nLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICdub25lJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW1nLmNvbXBsZXRlKSB7XG4gICAgICAvLyBJZiB0aGUgcmVhbCBpbWFnZSBmYWlscyB0byBsb2FkLCB0aGlzIHdpbGwgc3RpbGwgcmVtb3ZlIHRoZSBwbGFjZWhvbGRlci5cbiAgICAgIC8vIFRoaXMgaXMgdGhlIGRlc2lyZWQgYmVoYXZpb3IgZm9yIG5vdywgYW5kIHdpbGwgYmUgcmV2aXNpdGVkIHdoZW4gZXJyb3JcbiAgICAgIC8vIGhhbmRsaW5nIGlzIHdvcmtlZCBvbiBmb3IgdGhlIGltYWdlIGNvbXBvbmVudCBpdHNlbGYuXG4gICAgICBoYW5kbGVMb2FkKClcbiAgICB9IGVsc2Uge1xuICAgICAgaW1nLm9ubG9hZCA9IGhhbmRsZUxvYWRcbiAgICB9XG4gIH1cbn1cblxuLyoqIENoZWNrcyB3aGV0aGVyIGFuIGltYWdlIGlzIGN1cnJlbnRseSBpbiB0aGUgdmlld3BvcnQgKi9cbmZ1bmN0aW9uIGlzSW5WaWV3cG9ydChlbGVtOiBIVE1MSW1hZ2VFbGVtZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiBib3R0b20gPj0gMCAmJiByaWdodCA+PSAwICYmIHRvcCA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgJiYgbGVmdCA8PSB3aW5kb3cuaW5uZXJXaWR0aFxufVxuXG50eXBlIFNpemVzU3RyaW5nID1cbiAgfCBgJHtudW1iZXJ9dndgXG4gIHwgYCR7bnVtYmVyfXB4YFxuICB8IGBjYWxjKCR7c3RyaW5nfSlgXG4gIHwgYG1pbigke3N0cmluZ30pYFxuICB8IGBtYXgoJHtzdHJpbmd9KWBcbnR5cGUgU2l6ZXNSZWNvcmQgPSBSZWNvcmQ8bnVtYmVyLCBTaXplc1N0cmluZz5cbnR5cGUgU2l6ZXMgPSBTaXplc1N0cmluZyB8IFNpemVzUmVjb3JkIHwgdW5kZWZpbmVkXG5cbmZ1bmN0aW9uIGlzU2l6ZXNSZWNvcmQoc2l6ZXM/OiBTaXplcyk6IHNpemVzIGlzIFNpemVzUmVjb3JkIHtcbiAgcmV0dXJuIHR5cGVvZiBzaXplcyA9PT0gJ29iamVjdCdcbn1cblxuZnVuY3Rpb24gc2l6ZXNFbnRyaWVzKHNpemVzOiBTaXplcyk6IChyZWFkb25seSBbbnVtYmVyLCBTaXplc1N0cmluZyB8IHVuZGVmaW5lZF0pW10ge1xuICBpZiAoaXNTaXplc1JlY29yZChzaXplcykpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc2l6ZXMpXG4gICAgICAubWFwKChbYnJlYWtwb2ludCwgc2l6ZV0pID0+IFtOdW1iZXIoYnJlYWtwb2ludCksIHNpemVdIGFzIGNvbnN0KVxuICAgICAgLnNvcnQoKFtzaXplQV0sIFtzaXplQl0pID0+IHNpemVCIC0gc2l6ZUEpXG4gIH1cbiAgcmV0dXJuIFtbMCwgc2l6ZXNdIGFzIGNvbnN0XVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVNpemVzU3RyaW5nKHNpemVzPzogU2l6ZXMpIHtcbiAgcmV0dXJuIHNpemVzRW50cmllcyhzaXplcylcbiAgICAubWFwKChbYnJlYWtwb2ludCwgc2l6ZV0pID0+IHtcbiAgICAgIGlmIChicmVha3BvaW50ID09PSAwKSByZXR1cm4gc2l6ZVxuICAgICAgcmV0dXJuIGAobWluLXdpZHRoOiAke2JyZWFrcG9pbnR9cHgpICR7c2l6ZX1gXG4gICAgfSlcbiAgICAuam9pbignLCAnKVxufVxuXG4vKiogU2luY2Ugd2UncmUgaGFuZGxpbmcgc3R1ZmYgb3Vyc2VsdmVzIHdlIG9taXQgc29tZSBzdHVmZiAqL1xudHlwZSBJbnRyaXNpbmNJbWFnZSA9IE9taXQ8XG4gIEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW1nJ10sXG4gICdzcmMnIHwgJ3NyY1NldCcgfCAncmVmJyB8ICd3aWR0aCcgfCAnaGVpZ2h0JyB8ICdsb2FkaW5nJyB8ICdzaXplcycgfCAnd2lkdGgnIHwgJ2hlaWdodCdcbj4gJiB7IGxvYWRpbmc/OiBMb2FkaW5nVmFsdWUgfVxuXG5leHBvcnQgdHlwZSBCYXNlSW1hZ2VQcm9wcyA9IEludHJpc2luY0ltYWdlICYge1xuICBsb2FkZXI/OiBJbWFnZUxvYWRlclxuICBxdWFsaXR5PzogbnVtYmVyIHwgc3RyaW5nXG4gIHVub3B0aW1pemVkPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6XG4gICAqXG4gICAqIC0gYGZpeGVkYDogdGhlIGltYWdlIGRpbWVuc2lvbnMgd2lsbCBub3QgY2hhbmdlIGFzIHRoZSB2aWV3cG9ydCBjaGFuZ2VzIChubyByZXNwb25zaXZlbmVzcylcbiAgICogICBzaW1pbGFyIHRvIHRoZSBuYXRpdmUgaW1nIGVsZW1lbnQuXG4gICAqIC0gYGludHJpbnNpY2A6IHRoZSBpbWFnZSB3aWxsIHNjYWxlIHRoZSBkaW1lbnNpb25zIGRvd24gZm9yIHNtYWxsZXIgdmlld3BvcnRzIGJ1dCBtYWludGFpbiB0aGVcbiAgICogICBvcmlnaW5hbCBkaW1lbnNpb25zICh0aGUgd2lkdGggYW5kIGhlaWdodCBnaXZlbikgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gICAqIC0gYHJlc3BvbnNpdmVgOiB0aGUgaW1hZ2Ugd2lsbCBzY2FsZSB0aGUgZGltZW5zaW9ucyBkb3duIGZvciBzbWFsbGVyIHZpZXdwb3J0cyBhbmQgc2NhbGUgdXAgZm9yXG4gICAqICAgbGFyZ2VyIHZpZXdwb3J0cy5cbiAgICovXG4gIGxheW91dD86IExheW91dFZhbHVlXG5cbiAgLyoqIFNpemUgdGhlIGltYWdlIGlzIHJlbmRlcmVkIG9uIG1vYmlsZSAqL1xuICBzaXplcz86IFNpemVzU3RyaW5nIHwgU2l6ZXNSZWNvcmRcbn1cblxuLyoqXG4gKiBXaGVuIGBmaXhlZGAsIHRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgbm90IGNoYW5nZSBhcyB0aGUgdmlld3BvcnQgY2hhbmdlcyAobm8gcmVzcG9uc2l2ZW5lc3MpXG4gKiBzaW1pbGFyIHRvIHRoZSBuYXRpdmUgaW1nIGVsZW1lbnQuXG4gKlxuICogYGBgdHN4XG4gKiA8aW1nIHdpZHRoPXt3aWR0aH0gaGVpZ2h0PXtoZWlnaHR9IC8+XG4gKiBgYGBcbiAqXG4gKiBVc2UgY2FzZTogV2hlbiB5b3Ugd2FudCB0byByZW5kZXIgdGhlIGltYWdlIGF0IHRoZSBnaXZlbiB3aWR0aC9oZWlnaHQgYW5kIG5vdCBjaGFuZ2UgYmFzZWQgb24gYnJvd3NlciBzaXplLlxuICovXG50eXBlIExheW91dFR5cGVOYXRpdmUgPSB7XG4gIGxheW91dD86ICdmaXhlZCdcbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBhbmQgdGhlIGhlaWdodCB2YWx1ZXMgYXJlIHRoZSB2YWx1ZXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGFzcGVjdCByYXRpbyBvbSB0aGUgaW1hZ2VcbiAgICogYW5kIHJlc2VydmUgc3BhY2UgaW4gdGhlIGJyb3dzZXIuXG4gICAqXG4gICAqIFdpdGggbGF5b3V0PWZpeGVkIGFuZCBubyBzdHlsaW5nIHRoZSBpbWFnZSBpcyByZW5kZXJlZCBhdCB0aGUgd2lkdGggYW5kIGhlaWdodCBnaXZlbi5cbiAgICovXG4gIHdpZHRoOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbn1cblxuLyoqXG4gKiBXaGVuIGBpbnRyaW5zaWNgLCB0aGUgaW1hZ2Ugd2lsbCBzY2FsZSB0aGUgZGltZW5zaW9ucyBkb3duIGZvciBzbWFsbGVyIHZpZXdwb3J0cyBidXQgbWFpbnRhaW4gdGhlXG4gKiBvcmlnaW5hbCBkaW1lbnNpb25zICh0aGUgd2lkdGggYW5kIGhlaWdodCBnaXZlbikgZm9yIGxhcmdlciB2aWV3cG9ydHMuXG4gKlxuICogYGBgdHN4XG4gKiA8aW1nIHN0eWxlPXt7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIG1heFdpZHRoOiBgJHt3aWR0aH1weGAgfX1cbiAqIGBgYFxuICpcbiAqIFVzZSBjYXNlOiBXaGVuIHlvdSB3YW50IHRvIHJlbmRlciBhbiBpbWFnZSBidXQgZG9uJ3Qgc2NhbGUgaXQgdXAuXG4gKi9cbnR5cGUgTGF5b3V0VHlwZUludHJpbnNpYyA9IHtcbiAgbGF5b3V0PzogJ2ludHJpbnNpYydcblxuICB3aWR0aDogbnVtYmVyXG4gIGhlaWdodDogbnVtYmVyXG5cbiAgc3R5bGU/OiBPbWl0PEltZ0VsZW1lbnRTdHlsZSwgJ3dpZHRoJyB8ICdoZWlnaHQnIHwgJ21heFdpZHRoJz5cbn1cblxuLyoqXG4gKiBXaGVuIGByZXNwb25zaXZlYCwgdGhlIGltYWdlIHdpbGwgc2NhbGUgdGhlIGRpbWVuc2lvbnMgZG93biBmb3Igc21hbGxlciB2aWV3cG9ydHMgYW5kIHNjYWxlIHVwXG4gKiBmb3IgbGFyZ2VyIHZpZXdwb3J0cy5cbiAqXG4gKiBgYGB0c3hcbiAqIDxpbWcgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnYXV0bycgbWF4V2lkdGg6ICR7d2lkdGh9IH19XG4gKiBgYGBcbiAqXG4gKiBVc2UgY2FzZTogV2hlbiB5b3Ugd2FudCB0aGUgaW1hZ2UgdG8gZmlsbCBpdCdzIHBhcmVudCBjb250YWluZXIgaW4gd2lkdGhcbiAqL1xudHlwZSBMYXlvdXRUeXBlUmVzcG9uc2l2ZSA9IHtcbiAgbGF5b3V0PzogJ3Jlc3BvbnNpdmUnXG5cbiAgd2lkdGg6IG51bWJlclxuICBoZWlnaHQ6IG51bWJlclxuXG4gIHN0eWxlPzogT21pdDxJbWdFbGVtZW50U3R5bGUsICd3aWR0aCcgfCAnaGVpZ2h0Jz5cbn1cblxuLyoqXG4gKiBXaGVuIGBmaWxsYCwgdGhlIGltYWdlIHdpbGwgc3RyZXRjaCBib3RoIHdpZHRoIGFuZCBoZWlnaHQgdG8gdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHBhcmVudFxuICogZWxlbWVudCwgcGFpcmVkIHdpdGggdGhlIG9iamVjdEZpdCBwcm9wZXJ0eS5cbiAqXG4gKiBTaW5jZSB0aGUgd2lkdGgvaGVpZ2h0IGlzbid0IHJlcXVpcmVkIHRvIHJlbmRlciB0aGUgcGFnZSB3ZSBjYW4gb21pdCBpdC5cbiAqXG4gKiBgYGB0c3hcbiAqIDxpbWcgd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodH0gc3R5bGU9e3sgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX1cbiAqIGBgYFxuICpcbiAqIFVzZSBjYXNlOiBXaGVuIHlvdSBoYXZlIGEgcHJlZGVmaW5lZCBhcmVhIHNldCB0byByZW5kZXIgYW4gaW1hZ2VcbiAqL1xudHlwZSBMYXlvdXRUeXBlRmlsbCA9IHtcbiAgbGF5b3V0PzogJ2ZpbGwnXG5cbiAgd2lkdGg/OiBuZXZlclxuICBoZWlnaHQ/OiBuZXZlclxuXG4gIC8vIG9iamVjdEZpdDogSW1nRWxlbWVudFN0eWxlWydvYmplY3RGaXQnXVxuICBzdHlsZT86IE9taXQ8SW1nRWxlbWVudFN0eWxlLCAnd2lkdGgnIHwgJ2hlaWdodCc+XG59XG5cbmV4cG9ydCB0eXBlIFN0cmluZ0ltYWdlUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nXG59ICYgKExheW91dFR5cGVGaWxsIHwgTGF5b3V0VHlwZVJlc3BvbnNpdmUgfCBMYXlvdXRUeXBlTmF0aXZlIHwgTGF5b3V0VHlwZUludHJpbnNpYykgJlxuICAoXG4gICAgfCB7IHBsYWNlaG9sZGVyPzogRXhjbHVkZTxQbGFjZWhvbGRlclZhbHVlLCAnYmx1cic+OyBibHVyRGF0YVVSTD86IG5ldmVyIH1cbiAgICB8IHsgcGxhY2Vob2xkZXI6ICdibHVyJzsgYmx1ckRhdGFVUkw6IHN0cmluZyB9XG4gIClcblxuZXhwb3J0IHR5cGUgT2JqZWN0SW1hZ2VQcm9wcyA9IHtcbiAgc3JjOiBTdGF0aWNJbXBvcnRcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nXG4gIGxheW91dD86IExheW91dFZhbHVlXG4gIHBsYWNlaG9sZGVyPzogUGxhY2Vob2xkZXJWYWx1ZVxuICBibHVyRGF0YVVSTD86IG5ldmVyXG59XG5cbmV4cG9ydCB0eXBlIEltYWdlUHJvcHMgPSBCYXNlSW1hZ2VQcm9wcyAmIChTdHJpbmdJbWFnZVByb3BzIHwgT2JqZWN0SW1hZ2VQcm9wcylcblxuZXhwb3J0IHR5cGUgU3RyaW5nSW1hZ2UgPSBCYXNlSW1hZ2VQcm9wcyAmIFN0cmluZ0ltYWdlUHJvcHNcbmV4cG9ydCB0eXBlIE9iamVjdEltYWdlID0gQmFzZUltYWdlUHJvcHMgJiBPYmplY3RJbWFnZVByb3BzXG5cbmNvbnN0IEltYWdlID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MSW1hZ2VFbGVtZW50LCBJbWFnZVByb3BzPihcbiAgKFxuICAgIHtcbiAgICAgIHNyYyxcbiAgICAgIHNpemVzOiBzaXplc0luY29tbWluZyxcbiAgICAgIHVub3B0aW1pemVkID0gZmFsc2UsXG4gICAgICBsb2FkaW5nLFxuICAgICAgbGF5b3V0ID0gJ3Jlc3BvbnNpdmUnLFxuICAgICAgcXVhbGl0eSxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgc3R5bGUsXG4gICAgICBsb2FkZXIgPSBkZWZhdWx0SW1hZ2VMb2FkZXIsXG4gICAgICBwbGFjZWhvbGRlciA9ICdlbXB0eScsXG4gICAgICBibHVyRGF0YVVSTCxcbiAgICAgIC4uLmltZ1Byb3BzXG4gICAgfSxcbiAgICBmb3J3YXJkZWRSZWYsXG4gICkgPT4ge1xuICAgIGNvbnN0IHJlZiA9IHVzZUZvcndhcmRlZFJlZihmb3J3YXJkZWRSZWYpXG5cbiAgICBjb25zdCBzaXplc09yaWcgPVxuICAgICAgbGF5b3V0ID09PSAnZml4ZWQnICYmIHdpZHRoICYmICFzaXplc0luY29tbWluZ1xuICAgICAgICA/IChgJHt3aWR0aH1weGAgYXMgU2l6ZXNTdHJpbmcpXG4gICAgICAgIDogc2l6ZXNJbmNvbW1pbmdcblxuICAgIGNvbnN0IHNpemVzID0gZ2VuZXJhdGVTaXplc1N0cmluZyhzaXplc09yaWcpID8/ICc1MHZ3J1xuXG4gICAgLy8gSWYgbm8gcmVzcG9uc2l2ZSBzaXplcyBhcmUgZ2l2ZW4sIHdlJ3JlIGRlZmF1bHRpbmcgdG8gNTB2dyBvbiBtb2JpbGVcbiAgICAvLyBjb25zdCBbc2l6ZXMsIHNldFNpemVzXSA9IHVzZVN0YXRlKHRvU2l6ZXNTdHJpbmcoc2l6ZXNPcmlnKSA/PyBgNTB2d2ApXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHJldHVybiAoKSA9PiB7fVxuICAgICAgaWYgKCFyZWYuY3VycmVudCkgcmV0dXJuICgpID0+IHt9XG5cbiAgICAgIGZ1bmN0aW9uIGdldENvbnRhaW5lZFNpemUoaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIGxldCByYXRpbyA9IGltZy5uYXR1cmFsV2lkdGggLyBpbWcubmF0dXJhbEhlaWdodFxuICAgICAgICBsZXQgdyA9IGltZy5oZWlnaHQgKiByYXRpb1xuICAgICAgICBsZXQgaCA9IGltZy5oZWlnaHRcbiAgICAgICAgaWYgKHcgPiBpbWcud2lkdGgpIHtcbiAgICAgICAgICB3ID0gaW1nLndpZHRoXG4gICAgICAgICAgdyA9IGltZy53aWR0aCAvIHJhdGlvXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdXG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHJlcG9ydFNpemVzKGltZzogSFRNTEltYWdlRWxlbWVudCkge1xuICAgICAgICBsZXQgcmF0aW86IG51bWJlclxuXG4gICAgICAgIGNvbnN0IHJlcG9ydGVkU2l6ZSA9IGltZy5jbGllbnRXaWR0aFxuXG4gICAgICAgIGxldCBtc2cgPSAnJ1xuICAgICAgICBjb25zdCBbYnJlYWtwb2ludCwgc2l6ZV0gPSBzaXplc0VudHJpZXMoc2l6ZXNPcmlnKS5maW5kKChbc10pID0+XG4gICAgICAgICAgcyA9PT0gMCA/IHRydWUgOiB3aW5kb3cubWF0Y2hNZWRpYShgKG1pbi13aWR0aDogJHtzfSlgKS5tYXRjaGVzLFxuICAgICAgICApID8/IFswLCAnMTAwdncnXVxuICAgICAgICBpZiAoc2l6ZSkge1xuICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYHdpZHRoOiAke3NpemV9YClcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKVxuICAgICAgICAgIGNvbnN0IG1lYXN1cmVkV2lkdGggPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxuICAgICAgICAgIGVsLnJlbW92ZSgpXG4gICAgICAgICAgcmF0aW8gPSBtZWFzdXJlZFdpZHRoICoqIDIgLyByZXBvcnRlZFNpemUgKiogMlxuICAgICAgICAgIG1zZyArPSBgSW1hZ2UgaGFzIFwic2l6ZXNcIiBwcm9wZXJ0eSBzZXQsIGJ1dCBzaXplICcke1xuICAgICAgICAgICAgYnJlYWtwb2ludCA+IDAgPyBgbWluLXdpZHRoKCR7YnJlYWtwb2ludH1weCkgYCA6ICcnXG4gICAgICAgICAgfSR7c2l6ZX0nIGlzIGluY29ycmVjdC5gXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbXNnICs9IGBJbWFnZSBoYXMgbm8gXCJzaXplc1wiIHByb3BlcnR5IHNldC5gXG4gICAgICAgICAgcmF0aW8gPSAod2luZG93LmlubmVyV2lkdGggKiAwLjUpICoqIDIgLyByZXBvcnRlZFNpemUgKiogMlxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm91bmQgPSAobnI6IG51bWJlcikgPT4gTWF0aC5yb3VuZChuciAqIDEwMCkgLyAxMDBcbiAgICAgICAgaWYgKHJhdGlvID4gMS41KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogJHttc2d9IEN1cnJlbnRseSBkb3dubG9hZGluZyBhbiBpbWFnZSB0aGF0IGhhcyAke3JvdW5kKFxuICAgICAgICAgICAgICByYXRpbyxcbiAgICAgICAgICAgICl9eCB0b28gbWFueSBwaXhlbHNgLFxuICAgICAgICAgICAgaW1nLFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChyYXRpbyA8IDAuNjYpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiAke21zZ30gQ3VycmVudGx5IGRvd25sb2FkaW5nIGFuIGltYWdlIHRoYXQgaGFzICR7cm91bmQoXG4gICAgICAgICAgICAgIDEgLyByYXRpbyxcbiAgICAgICAgICAgICl9eCB0b28gZmV3IHBpeGVsc2AsXG4gICAgICAgICAgICBpbWcsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFdhcm4gdGhlIHVzZXIgd2hlbiBoZSBpc24ndCBwcm92aWRpbmcgc2l6ZXMgYW5kIGhvdyB0byBwcm9jZWVkXG4gICAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoW2VudHJ5XSkgPT4ge1xuICAgICAgICBjb25zdCBpbWcgPSBlbnRyeS50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudFxuICAgICAgICBpZiAoaW1nLm5hdHVyYWxXaWR0aCkgcmVwb3J0U2l6ZXMoaW1nKVxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4gcmVwb3J0U2l6ZXMoaW1nKVxuICAgICAgfSlcbiAgICAgIHJvLm9ic2VydmUocmVmLmN1cnJlbnQpXG5cbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbbGF5b3V0LCByZWYsIHNpemVzT3JpZywgc3JjLCB3aWR0aF0pXG5cbiAgICBsZXQgc3RhdGljU3JjID0gJydcbiAgICBpZiAoaXNTdGF0aWNJbXBvcnQoc3JjKSkge1xuICAgICAgY29uc3Qgc3RhdGljSW1hZ2VEYXRhID0gaXNTdGF0aWNSZXF1aXJlKHNyYykgPyBzcmMuZGVmYXVsdCA6IHNyY1xuICAgICAgaWYgKCFzdGF0aWNJbWFnZURhdGEuc3JjKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHN0YXRpY0ltYWdlRGF0YSxcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGJsdXJEYXRhVVJMID0gYmx1ckRhdGFVUkwgfHwgc3RhdGljSW1hZ2VEYXRhLmJsdXJEYXRhVVJMXG4gICAgICBzdGF0aWNTcmMgPSBzdGF0aWNJbWFnZURhdGEuc3JjXG4gICAgICBpZiAoIWxheW91dCB8fCBsYXlvdXQgIT09ICdmaWxsJykge1xuICAgICAgICBoZWlnaHQgPSBoZWlnaHQgfHwgc3RhdGljSW1hZ2VEYXRhLmhlaWdodFxuICAgICAgICB3aWR0aCA9IHdpZHRoIHx8IHN0YXRpY0ltYWdlRGF0YS53aWR0aFxuICAgICAgICBpZiAoIXN0YXRpY0ltYWdlRGF0YS5oZWlnaHQgfHwgIXN0YXRpY0ltYWdlRGF0YS53aWR0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEFuIG9iamVjdCBzaG91bGQgb25seSBiZSBwYXNzZWQgdG8gdGhlIGltYWdlIGNvbXBvbmVudCBzcmMgcGFyYW1ldGVyIGlmIGl0IGNvbWVzIGZyb20gYSBzdGF0aWMgaW1hZ2UgaW1wb3J0LiBJdCBtdXN0IGluY2x1ZGUgaGVpZ2h0IGFuZCB3aWR0aC4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgc3RhdGljSW1hZ2VEYXRhLFxuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzcmMgPSB0eXBlb2Ygc3JjID09PSAnc3RyaW5nJyA/IHNyYyA6IHN0YXRpY1NyY1xuXG4gICAgY29uc3Qgd2lkdGhJbnQgPSBnZXRJbnQod2lkdGgpXG4gICAgY29uc3QgaGVpZ2h0SW50ID0gZ2V0SW50KGhlaWdodClcbiAgICBjb25zdCBxdWFsaXR5SW50ID0gZ2V0SW50KHF1YWxpdHkpXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJzcmNcIiBwcm9wZXJ0eS4gTWFrZSBzdXJlIHlvdSBwYXNzIFwic3JjXCIgaW4gcHJvcHMgdG8gdGhlIFxcYEByZWFjaGRpZ2l0YWwvaW1hZ2VcXGAgY29tcG9uZW50LiBSZWNlaXZlZDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgd2lkdGgsIGhlaWdodCwgcXVhbGl0eSB9LFxuICAgICAgICAgICl9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKCFWQUxJRF9MQVlPVVRfVkFMVUVTLmluY2x1ZGVzKGxheW91dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBbQHJlYWNoZGlnaXRhbC9pbWFnZV06IEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJsYXlvdXRcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCIke2xheW91dH1cIiBzaG91bGQgYmUgb25lIG9mICR7VkFMSURfTEFZT1VUX1ZBTFVFUy5tYXAoXG4gICAgICAgICAgICBTdHJpbmcsXG4gICAgICAgICAgKS5qb2luKCcsJyl9LmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgKHR5cGVvZiB3aWR0aEludCAhPT0gJ3VuZGVmaW5lZCcgJiYgTnVtYmVyLmlzTmFOKHdpZHRoSW50KSkgfHxcbiAgICAgICAgKHR5cGVvZiBoZWlnaHRJbnQgIT09ICd1bmRlZmluZWQnICYmIE51bWJlci5pc05hTihoZWlnaHRJbnQpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwid2lkdGhcIiBvciBcImhlaWdodFwiIHByb3BlcnR5LiBUaGVzZSBzaG91bGQgYmUgbnVtZXJpYyB2YWx1ZXMuYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKCFWQUxJRF9MT0FESU5HX1ZBTFVFUy5pbmNsdWRlcyhsb2FkaW5nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgaW52YWxpZCBcImxvYWRpbmdcIiBwcm9wZXJ0eS4gUHJvdmlkZWQgXCIke2xvYWRpbmd9XCIgc2hvdWxkIGJlIG9uZSBvZiAke1ZBTElEX0xPQURJTkdfVkFMVUVTLm1hcChcbiAgICAgICAgICAgIFN0cmluZyxcbiAgICAgICAgICApLmpvaW4oJywnKX0uYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKHBsYWNlaG9sZGVyID09PSAnYmx1cicpIHtcbiAgICAgICAgaWYgKGxheW91dCAhPT0gJ2ZpbGwnICYmICh3aWR0aEludCB8fCAwKSAqIChoZWlnaHRJbnQgfHwgMCkgPCAxNjAwKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtAcmVhY2hkaWdpdGFsL2ltYWdlXTogSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyBzbWFsbGVyIHRoYW4gNDB4NDAuIENvbnNpZGVyIHJlbW92aW5nIHRoZSBcInBsYWNlaG9sZGVyPSdibHVyJ1wiIHByb3BlcnR5IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuYCxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFibHVyRGF0YVVSTCkge1xuICAgICAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gWydqcGVnJywgJ3BuZycsICd3ZWJwJ10gLy8gc2hvdWxkIG1hdGNoIG5leHQtaW1hZ2UtbG9hZGVyXG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBcInBsYWNlaG9sZGVyPSdibHVyJ1wiIHByb3BlcnR5IGJ1dCBpcyBtaXNzaW5nIHRoZSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHkuXG4gICAgICAgICAgUG9zc2libGUgc29sdXRpb25zOlxuICAgICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXG4gICAgICAgICAgICAtIENoYW5nZSB0aGUgXCJzcmNcIiBwcm9wZXJ0eSB0byBhIHN0YXRpYyBpbXBvcnQgd2l0aCBvbmUgb2YgdGhlIHN1cHBvcnRlZCBmaWxlIHR5cGVzOiAke1ZBTElEX0JMVVJfRVhULmpvaW4oXG4gICAgICAgICAgICAgICcsJyxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICAtIFJlbW92ZSB0aGUgXCJwbGFjZWhvbGRlclwiIHByb3BlcnR5LCBlZmZlY3RpdmVseSBubyBibHVyIGVmZmVjdFxuICAgICAgICAgIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcGxhY2Vob2xkZXItYmx1ci1kYXRhLXVybGAsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aWR0aEludCA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGhlaWdodEludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChsYXlvdXQgPT09ICdmaWxsJykge1xuICAgICAgICAvLyBoYW5kbGUgZmlsbFxuICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIDxJbWFnZSBzcmM9XCJpLnBuZ1wiIC8+XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgW0ByZWFjaGRpZ2l0YWwvaW1hZ2VdOiBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIG11c3QgdXNlIFwid2lkdGhcIiBhbmQgXCJoZWlnaHRcIiBwcm9wZXJ0aWVzIG9yIFwibGF5b3V0PSdmaWxsJ1wiIHByb3BlcnR5LmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkaW5nID8/PSAnbGF6eSdcbiAgICBpZiAoc3JjICYmIHNyYy5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL0RhdGFfVVJJc1xuICAgICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlczN4ID0gZ2VuZXJhdGVTb3VyY2VBdHRycyh7XG4gICAgICBzcmMsXG4gICAgICBsYXlvdXQ6IGxheW91dCBhcyBMYXlvdXRWYWx1ZSxcbiAgICAgIGxvYWRlcixcbiAgICAgIHF1YWxpdHk6IHF1YWxpdHlJbnQsXG4gICAgICBzaXplcyxcbiAgICAgIHdpZHRoOiB3aWR0aEludCxcbiAgICAgIHNjYWxlOiAxLjUsXG4gICAgfSlcblxuICAgIGNvbnN0IGF0dHJpYnV0ZXMyeCA9IGdlbmVyYXRlU291cmNlQXR0cnMoe1xuICAgICAgc3JjLFxuICAgICAgbGF5b3V0OiBsYXlvdXQgYXMgTGF5b3V0VmFsdWUsXG4gICAgICBsb2FkZXIsXG4gICAgICBxdWFsaXR5OiBxdWFsaXR5SW50LFxuICAgICAgc2l6ZXMsXG4gICAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgICBzY2FsZTogMSxcbiAgICB9KVxuXG4gICAgY29uc3QgYXR0cmlidXRlczF4ID0gZ2VuZXJhdGVTb3VyY2VBdHRycyh7XG4gICAgICBzcmMsXG4gICAgICBsYXlvdXQ6IGxheW91dCBhcyBMYXlvdXRWYWx1ZSxcbiAgICAgIGxvYWRlcixcbiAgICAgIHF1YWxpdHk6IHF1YWxpdHlJbnQsXG4gICAgICBzaXplcyxcbiAgICAgIHdpZHRoOiB3aWR0aEludCxcbiAgICAgIHNjYWxlOiAwLjUsXG4gICAgfSlcblxuICAgIGlmIChsYXlvdXQgIT09ICdmaXhlZCcgJiYgIXN0eWxlKSBzdHlsZSA9IHt9XG4gICAgaWYgKGxheW91dCA9PT0gJ3Jlc3BvbnNpdmUnKSBzdHlsZSA9IHsgLi4uc3R5bGUsIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIH1cbiAgICBpZiAobGF5b3V0ID09PSAnaW50cmluc2ljJykgc3R5bGUgPSB7IC4uLnN0eWxlLCB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJywgbWF4V2lkdGg6IHdpZHRoIH1cbiAgICBpZiAobGF5b3V0ID09PSAnZmlsbCcpIHN0eWxlID0geyAuLi5zdHlsZSwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHt1bm9wdGltaXplZCA/IChcbiAgICAgICAgICA8aW1nIHJlZj17cmVmfSB7Li4uaW1nUHJvcHN9IHNyYz17c3JjfSB3aWR0aD17d2lkdGh9IGhlaWdodD17aGVpZ2h0fSBzdHlsZT17c3R5bGV9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHBpY3R1cmU+XG4gICAgICAgICAgICA8c291cmNlIG1lZGlhPScoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjUpJyB7Li4uYXR0cmlidXRlczN4fSAvPlxuICAgICAgICAgICAgPHNvdXJjZSBtZWRpYT0nKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KScgey4uLmF0dHJpYnV0ZXMyeH0gLz5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgICAgICAgIHsuLi5pbWdQcm9wc31cbiAgICAgICAgICAgICAgey4uLmF0dHJpYnV0ZXMxeH1cbiAgICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3BpY3R1cmU+XG4gICAgICAgICl9XG4gICAgICAgIHtsb2FkaW5nID09PSAnZWFnZXInICYmIChcbiAgICAgICAgICA8SGVhZD5cbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIGtleT17YF9fbmltZy0yeC0ke2F0dHJpYnV0ZXMxeC5zcmNTZXR9JHthdHRyaWJ1dGVzMXguc2l6ZXN9YH1cbiAgICAgICAgICAgICAgcmVsPSdwcmVsb2FkJ1xuICAgICAgICAgICAgICBhcz0naW1hZ2UnXG4gICAgICAgICAgICAgIG1lZGlhPScoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjUpJ1xuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGltYWdlc3Jjc2V0IGlzIG5vdCB5ZXQgaW4gdGhlIGxpbmsgZWxlbWVudCB0eXBlXG4gICAgICAgICAgICAgIGltYWdlc3Jjc2V0PXthdHRyaWJ1dGVzMXguc3JjU2V0fVxuICAgICAgICAgICAgICBpbWFnZXNpemVzPXtzaXplc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9IZWFkPlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKVxuICB9LFxuKVxuSW1hZ2UuZGlzcGxheU5hbWUgPSAnTmV4dFBpY3R1cmUnXG5cbmV4cG9ydCB7IEltYWdlIH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../components/Image.tsx\n");
19
+
20
+ /***/ })
21
+
22
+ });