From f41cf0bf2555f3c8463b2fa666c669d1ebbc9543 Mon Sep 17 00:00:00 2001 From: Gustav Odinger <65498475+gustavwilliam@users.noreply.github.com> Date: Fri, 28 Jun 2024 10:29:46 +0200 Subject: [PATCH] Build and deploy --- css/app.ae430e01.css | 6 ++++++ css/app.c1a05cdf.css | 6 ------ index.html | 2 +- js/app.751de567.js | 2 ++ js/app.751de567.js.map | 1 + js/app.b39286ec.js | 2 -- js/app.b39286ec.js.map | 1 - js/chunk-vendors.3bec54da.js.map | 1 - js/{chunk-vendors.3bec54da.js => chunk-vendors.a66a23dc.js} | 4 ++-- js/chunk-vendors.a66a23dc.js.map | 1 + 10 files changed, 13 insertions(+), 13 deletions(-) create mode 100644 css/app.ae430e01.css delete mode 100644 css/app.c1a05cdf.css create mode 100644 js/app.751de567.js create mode 100644 js/app.751de567.js.map delete mode 100644 js/app.b39286ec.js delete mode 100644 js/app.b39286ec.js.map delete mode 100644 js/chunk-vendors.3bec54da.js.map rename js/{chunk-vendors.3bec54da.js => chunk-vendors.a66a23dc.js} (85%) create mode 100644 js/chunk-vendors.a66a23dc.js.map diff --git a/css/app.ae430e01.css b/css/app.ae430e01.css new file mode 100644 index 0000000..72ea57a --- /dev/null +++ b/css/app.ae430e01.css @@ -0,0 +1,6 @@ +/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ + +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ +/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ + +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter var,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af}input::placeholder,textarea::placeholder{color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}[type=text],[type=time],[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 transparent}[type=text]:focus,[type=time]:focus,[type=url]:focus,select:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.aspect-w-1{position:relative;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%)}.aspect-w-1>*{position:absolute;height:100%;width:100%;top:0;right:0;bottom:0;left:0}.aspect-w-1{--tw-aspect-w:1}.aspect-h-1{--tw-aspect-h:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.order-2{order:2}.order-3{order:3}.col-span-2{grid-column:span 2/span 2}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.-mr-1{margin-right:-.25rem}.-mr-2{margin-right:-.5rem}.mb-5{margin-bottom:1.25rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-16{height:4rem}.h-24{height:6rem}.h-full{height:100%}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-24{width:6rem}.w-auto{width:auto}.w-full{width:100%}.max-w-sm{max-width:24rem}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-screen-xl{max-width:1280px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-4{--tw-translate-y:1rem}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.cursor-pointer{cursor:pointer}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem*var(--tw-space-x-reverse));margin-left:calc(0.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.75rem*var(--tw-space-x-reverse));margin-left:calc(0.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-1px*var(--tw-space-x-reverse));margin-left:calc(-1px*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.25rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.first\:rounded-l-md:first-child{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.last\:rounded-r-md:last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.border{border-width:1px}.border-transparent{border-color:transparent}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.border-blue-twitter,.focus\:border-blue-twitter:focus{--tw-border-opacity:1;border-color:rgba(29,161,242,var(--tw-border-opacity))}@media (prefers-color-scheme:dark){.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgba(75,85,99,var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.dark\:border-blue-twitter-dark{--tw-border-opacity:1;border-color:rgba(13,141,219,var(--tw-border-opacity))}}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107,114,128,var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239,246,255,var(--tw-bg-opacity))}.bg-blue-twitter{--tw-bg-opacity:1;background-color:rgba(29,161,242,var(--tw-bg-opacity))}.bg-blue-twitter-dark{--tw-bg-opacity:1;background-color:rgba(13,141,219,var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.hover\:bg-blue-twitter-dark:hover{--tw-bg-opacity:1;background-color:rgba(13,141,219,var(--tw-bg-opacity))}.hover\:bg-indigo-50:hover{--tw-bg-opacity:1;background-color:rgba(238,242,255,var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.dark\:bg-blue-900{--tw-bg-opacity:1;background-color:rgba(30,58,138,var(--tw-bg-opacity))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}}.bg-opacity-75{--tw-bg-opacity:0.75}.stroke-2{stroke-width:2}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-2{padding-right:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.text-left{text-align:left}.text-center{text-align:center}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-5xl{font-size:3rem;line-height:1}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-extrabold{font-weight:800}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-6{line-height:1.5rem}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.text-blue-twitter{--tw-text-opacity:1;color:rgba(29,161,242,var(--tw-text-opacity))}.text-blue-twitter-dark{--tw-text-opacity:1;color:rgba(13,141,219,var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-gray-50:hover{--tw-text-opacity:1;color:rgba(249,250,251,var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.dark\:text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark\:text-gray-50{--tw-text-opacity:1;color:rgba(249,250,251,var(--tw-text-opacity))}.dark\:text-gray-100{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.dark\:text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.dark\:text-blue-twitter{--tw-text-opacity:1;color:rgba(29,161,242,var(--tw-text-opacity))}}.underline{text-decoration:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.group:hover .group-hover\:opacity-75{opacity:.75}*,:after,:before{--tw-shadow:0 0 transparent}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.ring{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(255,255,255,var(--tw-ring-opacity))}.focus\:ring-blue-twitter:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(29,161,242,var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}@media (prefers-color-scheme:dark){.dark\:ring-offset-gray-800{--tw-ring-offset-color:#1f2937}}.filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (min-width:640px){.sm\:static{position:static}.sm\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:-mr-2{margin-right:-.5rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-6{margin-left:1.5rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-lg{max-width:32rem}.sm\:flex-1{flex:1 1 0%}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:items-stretch{align-items:stretch}.sm\:justify-start{justify-content:flex-start}.sm\:justify-center{justify-content:center}.sm\:justify-around{justify-content:space-around}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:pr-0{padding-right:0}.sm\:pb-4{padding-bottom:1rem}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:inline{display:inline}.md\:hidden{display:none}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:max-w-7xl{max-width:80rem}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1280px){.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}} \ No newline at end of file diff --git a/css/app.c1a05cdf.css b/css/app.c1a05cdf.css deleted file mode 100644 index 081ae02..0000000 --- a/css/app.c1a05cdf.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ - -/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ -/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ - -/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter var,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af}input::placeholder,textarea::placeholder{color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}[type=text],[type=time],[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 transparent}[type=text]:focus,[type=time]:focus,[type=url]:focus,select:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.aspect-w-1{position:relative;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%)}.aspect-w-1>*{position:absolute;height:100%;width:100%;top:0;right:0;bottom:0;left:0}.aspect-w-1{--tw-aspect-w:1}.aspect-h-1{--tw-aspect-h:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.order-2{order:2}.order-3{order:3}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.-mr-1{margin-right:-.25rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-16{height:4rem}.h-24{height:6rem}.h-full{height:100%}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-24{width:6rem}.w-auto{width:auto}.w-full{width:100%}.max-w-sm{max-width:24rem}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-screen-xl{max-width:1280px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-4{--tw-translate-y:1rem}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.cursor-pointer{cursor:pointer}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:2rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-10{row-gap:2.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem*var(--tw-space-x-reverse));margin-left:calc(0.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.75rem*var(--tw-space-x-reverse));margin-left:calc(0.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-1px*var(--tw-space-x-reverse));margin-left:calc(-1px*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.25rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.first\:rounded-l-md:first-child{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.last\:rounded-r-md:last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.border{border-width:1px}.border-transparent{border-color:transparent}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.border-blue-twitter,.focus\:border-blue-twitter:focus{--tw-border-opacity:1;border-color:rgba(29,161,242,var(--tw-border-opacity))}@media (prefers-color-scheme:dark){.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgba(75,85,99,var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.dark\:border-blue-twitter-dark{--tw-border-opacity:1;border-color:rgba(13,141,219,var(--tw-border-opacity))}}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107,114,128,var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239,246,255,var(--tw-bg-opacity))}.bg-blue-twitter{--tw-bg-opacity:1;background-color:rgba(29,161,242,var(--tw-bg-opacity))}.bg-blue-twitter-dark{--tw-bg-opacity:1;background-color:rgba(13,141,219,var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.hover\:bg-blue-twitter-dark:hover{--tw-bg-opacity:1;background-color:rgba(13,141,219,var(--tw-bg-opacity))}.hover\:bg-indigo-50:hover{--tw-bg-opacity:1;background-color:rgba(238,242,255,var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.dark\:bg-blue-900{--tw-bg-opacity:1;background-color:rgba(30,58,138,var(--tw-bg-opacity))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}}.bg-opacity-75{--tw-bg-opacity:0.75}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-2{padding-right:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.text-left{text-align:left}.text-center{text-align:center}.align-bottom{vertical-align:bottom}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-5xl{font-size:3rem;line-height:1}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-extrabold{font-weight:800}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-6{line-height:1.5rem}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.text-blue-twitter{--tw-text-opacity:1;color:rgba(29,161,242,var(--tw-text-opacity))}.text-blue-twitter-dark{--tw-text-opacity:1;color:rgba(13,141,219,var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-gray-50:hover{--tw-text-opacity:1;color:rgba(249,250,251,var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.dark\:text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark\:text-gray-50{--tw-text-opacity:1;color:rgba(249,250,251,var(--tw-text-opacity))}.dark\:text-gray-100{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.dark\:text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.dark\:text-blue-twitter{--tw-text-opacity:1;color:rgba(29,161,242,var(--tw-text-opacity))}}.underline{text-decoration:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.group:hover .group-hover\:opacity-75{opacity:.75}*,:after,:before{--tw-shadow:0 0 transparent}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.ring{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(255,255,255,var(--tw-ring-opacity))}.focus\:ring-blue-twitter:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(29,161,242,var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}@media (prefers-color-scheme:dark){.dark\:ring-offset-gray-800{--tw-ring-offset-color:#1f2937}}.filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (min-width:640px){.sm\:static{position:static}.sm\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:-mr-2{margin-right:-.5rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-6{margin-left:1.5rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-lg{max-width:32rem}.sm\:flex-1{flex:1 1 0%}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:items-stretch{align-items:stretch}.sm\:justify-start{justify-content:flex-start}.sm\:justify-center{justify-content:center}.sm\:justify-around{justify-content:space-around}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:pr-0{padding-right:0}.sm\:pb-4{padding-bottom:1rem}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:inline{display:inline}.md\:hidden{display:none}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:max-w-7xl{max-width:80rem}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1280px){.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}} \ No newline at end of file diff --git a/index.html b/index.html index 49ba08f..b28fe06 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Twemoji Utils
\ No newline at end of file +Twemoji Utils
\ No newline at end of file diff --git a/js/app.751de567.js b/js/app.751de567.js new file mode 100644 index 0000000..fe29102 --- /dev/null +++ b/js/app.751de567.js @@ -0,0 +1,2 @@ +(function(e){function n(n){for(var o,d,t=n[0],m=n[1],c=n[2],s=0,r=[];s=1}}}},P=f("6b0d"),z=f.n(P);const C=z()(O,[["render",v]]);var I=C,q={class:"max-w-2xl mx-auto py-12 px-4 sm:py-20 sm:px-6 lg:max-w-7xl lg:px-8"};function B(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",q,[Object(a["A"])(e.$slots,"default")])}var D={};const T=z()(D,[["render",B]]);var M=T,_=f("e9e1"),S=f.n(_),E=f("4208"),R=f.n(E),L={class:"text-gray-300 bg-gray-800 bottom-0"},U=Object(a["h"])("div",{class:"grid gap-8 sm:grid-cols-4 max-w-2xl mx-auto py-12 px-4 sm:px-6 lg:max-w-7xl lg:px-8"},[Object(a["h"])("div",null,[Object(a["h"])("img",{class:"h-8",src:c.a,alt:"Twemoji Utils logotype"})]),Object(a["h"])("div",{class:"text-sm col-span-2"},[Object(a["i"])(" Thanks to the creators of "),Object(a["h"])("a",{href:"https://twemoji.twitter.com",target:"_blank",class:"underline hover:text-gray-50"},"Twemoji"),Object(a["i"])(" for making this set of emojis "),Object(a["h"])("a",{href:"https://creativecommons.org/licenses/by/4.0/",target:"_blank",class:"underline hover:text-gray-50"},"free to use"),Object(a["i"])(". This site was made by "),Object(a["h"])("a",{href:"https://github.com/gustavwilliam/",target:"_blank",class:"underline hover:text-gray-50"},"Gustav Odinger"),Object(a["i"])(". ")]),Object(a["h"])("div",{class:"flex flex-col items-start sm:items-end max-w-screen-xl"},[Object(a["h"])("div",{class:"flex items-center space-x-2"},[Object(a["h"])("a",{href:"https://github.com/gustavwilliam",target:"_blank",class:"hover:text-gray-50 flex flex-row space-x-3"},[Object(a["h"])("img",{class:"w-6 h-6","aria-hidden":"true",src:S.a,alt:"GitHub logo"}),Object(a["h"])("span",{class:"sr-only"},"GitHub")]),Object(a["h"])("a",{href:"https://twitter.com/gustavodinger",target:"_blank",class:"hover:text-gray-50 flex flex-row space-x-3"},[Object(a["h"])("img",{class:"w-6 h-6","aria-hidden":"true",src:R.a,alt:"Twitter logo"}),Object(a["h"])("span",{class:"sr-only"},"Twitter")])])])],-1),F=[U];function N(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("footer",L,F)}var V={};const G=z()(V,[["render",N]]);var H=G,$=(f("ac1f"),f("5319"),{class:"my-12"}),A=Object(a["h"])("h2",{class:"sr-only"},"Products",-1),J={class:"grid grid-cols-3 gap-4 sm:grid-cols-5 lg:grid-cols-8 xl:grid-cols-9 xl:gap-x-8"},W=["onClick"],X={class:"w-full aspect-w-1 aspect-h-1 rounded-md overflow-hidden"},Y=["src","onError","alt"];function K(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",$,[A,Object(a["h"])("div",J,[(Object(a["v"])(!0),Object(a["g"])(a["a"],null,Object(a["z"])(f.products,(function(n){return Object(a["v"])(),Object(a["g"])("a",{key:n.codepoint,href:"#/",class:"group bg-white p-4 rounded-xl",onClick:function(f){return e.$emit("open-modal",[n.codepoint,n.name])}},[Object(a["h"])("div",X,[Object(a["h"])("img",{src:"https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+n.codepoint.replace(/\s+/g,"-")+".svg",onError:function(f){return e.$emit("hide-item",n.codepoint)},alt:n.name,class:"w-full h-full object-center object-cover group-hover:opacity-75"},null,40,Y)])],8,W)})),128))])])}var Q={props:{products:{type:Array,required:!0,validator:function(e){return e.length>=1}}},emits:["open-modal","hide-item"],methods:{capitalize:function(e){return e.charAt(0).toUpperCase()+e.slice(1)}}};const Z=z()(Q,[["render",K]]);var ee=Z,ne={class:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"},fe=Object(a["h"])("span",{class:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true"},"​",-1),oe={class:"inline-block align-bottom bg-white dark:bg-gray-900 rounded-xl text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"},ie={class:"bg-white dark:bg-gray-900 px-4 pt-5 pb-4 sm:p-6 sm:pb-4"},ae={class:"sm:flex flex-col items-center"},de={class:"mx-auto flex-shrink-0 flex items-center justify-center h-24 w-24 sm:mx-0"},te=["src"],me={class:"mt-3 text-center"},ce={class:"inline-block ml-2"},pe={key:0,class:"capitalize flex items-center gap-1"},se=Object(a["i"])(" Copied "),re={key:1,class:"capitalize flex items-center gap-1"},le=Object(a["i"])(" copy "),ke=Object(a["h"])("div",{class:"mt-2"},[Object(a["h"])("p",{class:"text-sm text-gray-500"}," Select your preferred format to begin the download. ")],-1),ge={class:"bg-gray-50 dark:bg-gray-800 px-4 py-3 sm:px-6 sm:flex sm:flex-row sm:justify-center"},ue=Object(a["i"])(" PNG ");function he(e,n,f,o,i,d){var t=this,m=Object(a["B"])("DialogOverlay"),c=Object(a["B"])("TransitionChild"),p=Object(a["B"])("DialogTitle"),s=Object(a["B"])("CheckIcon"),r=Object(a["B"])("ClipboardCopyIcon"),l=Object(a["B"])("ChevronDownIcon"),k=Object(a["B"])("EmojiDownloadSubModal"),g=Object(a["B"])("Dialog"),u=Object(a["B"])("TransitionRoot");return Object(a["v"])(),Object(a["e"])(u,{as:"template",show:o.isOpen},{default:Object(a["I"])((function(){return[Object(a["j"])(g,{as:"div",class:"fixed z-10 inset-0 overflow-y-auto",onClose:o.closeModal},{default:Object(a["I"])((function(){return[Object(a["h"])("div",ne,[Object(a["j"])(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0","enter-to":"opacity-100",leave:"ease-in duration-200","leave-from":"opacity-100","leave-to":"opacity-0"},{default:Object(a["I"])((function(){return[Object(a["j"])(m,{class:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})]})),_:1}),fe,Object(a["j"])(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:Object(a["I"])((function(){return[Object(a["h"])("div",oe,[Object(a["h"])("div",ie,[Object(a["h"])("div",ae,[Object(a["h"])("div",de,[Object(a["h"])("img",{src:"https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg",onError:n[0]||(n[0]=function(e){e.target.src=i.fallbackImage,o.closeModal()}),alt:"Emoji",class:"w-full h-full"},null,40,te)]),Object(a["h"])("div",me,[Object(a["j"])(p,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900 dark:text-gray-50 capitalize"},{default:Object(a["I"])((function(){return[Object(a["i"])(Object(a["D"])(o.name),1)]})),_:1}),Object(a["h"])("button",{onClick:n[1]||(n[1]=function(e){d.copyToClipboard(o.codepoint.replace(/\s+/g,"-")),o.copied=!0}),class:"p-2 mt-3 mb-5 w-full m-0 rounded-md bg-gray-100 text-gray-700 border font-mono uppercase flex items-center justify-between"},[Object(a["h"])("span",null,Object(a["D"])(o.codepoint.replace(/\s+/g,"-")),1),Object(a["h"])("div",ce,[o.copied?(Object(a["v"])(),Object(a["g"])("span",pe,[Object(a["j"])(s,{class:"w-5 h-5 inline-block ml-2"}),se])):(Object(a["v"])(),Object(a["g"])("span",re,[Object(a["j"])(r,{class:"w-5 h-5 inline-block ml-2"}),le]))])]),ke])])]),Object(a["h"])("div",ge,[Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:w-auto sm:text-sm",href:"#/",onClick:n[2]||(n[2]=function(e){return t.$refs.submodal.openModal(o.codepoint)})},[ue,Object(a["j"])(l,{class:"w-5 h-5 stroke-2 ml-1 -mr-2"})]),Object(a["h"])("a",{class:"cursor-pointer mt-3 w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm",href:"#/",onClick:n[3]||(n[3]=function(e){d.downloadResource("https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg"),o.closeModal()})}," SVG "),Object(a["h"])("button",{type:"button",class:"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 dark:border-gray-600 shadow-sm px-4 py-2 bg-white dark:bg-gray-700 text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm",onClick:n[4]||(n[4]=function(){return o.closeModal&&o.closeModal.apply(o,arguments)}),ref:"cancelButtonRef"}," Cancel ",512)])])]})),_:1})]),Object(a["j"])(k,{ref:"submodal"},null,512)]})),_:1},8,["onClose"])]})),_:1},8,["show"])}var be=f("b8b6"),we=f("f247"),ye={class:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"},ve=Object(a["h"])("span",{class:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true"},"​",-1),je={class:"inline-block align-bottom bg-white dark:bg-gray-900 rounded-xl text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-sm sm:w-full"},xe={class:"bg-white dark:bg-gray-900 px-4 pt-5 pb-4 sm:p-6 sm:pb-4"},Oe={class:"sm:flex flex-col items-center"},Pe={class:"text-center"},ze=Object(a["i"])(" Choose size "),Ce=Object(a["h"])("div",{class:"mt-2"},[Object(a["h"])("p",{class:"text-sm text-gray-500"},"Select a resolution.")],-1),Ie={class:"bg-gray-50 dark:bg-gray-800 px-4 py-3 sm:px-6 sm:flex sm:flex-row sm:justify-center"};function qe(e,n,f,o,i,d){var t=Object(a["B"])("DialogOverlay"),m=Object(a["B"])("TransitionChild"),c=Object(a["B"])("DialogTitle"),p=Object(a["B"])("Dialog"),s=Object(a["B"])("TransitionRoot");return Object(a["v"])(),Object(a["e"])(s,{as:"template",show:o.isOpen},{default:Object(a["I"])((function(){return[Object(a["j"])(p,{as:"div",class:"fixed z-20 inset-0 overflow-y-auto",onClose:o.closeModal},{default:Object(a["I"])((function(){return[Object(a["h"])("div",ye,[Object(a["j"])(m,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0","enter-to":"opacity-100",leave:"ease-in duration-200","leave-from":"opacity-100","leave-to":"opacity-0"},{default:Object(a["I"])((function(){return[Object(a["j"])(t,{class:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})]})),_:1}),ve,Object(a["j"])(m,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:Object(a["I"])((function(){return[Object(a["h"])("div",je,[Object(a["h"])("div",xe,[Object(a["h"])("div",Oe,[Object(a["h"])("div",Pe,[Object(a["j"])(c,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900 dark:text-gray-50"},{default:Object(a["I"])((function(){return[ze]})),_:1}),Ce])])]),Object(a["h"])("div",Ie,[Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:ml-3 sm:w-auto sm:text-sm",href:"#/",onClick:n[0]||(n[0]=function(e){d.downloadResource("https://raw.githubusercontent.com/twitter/twemoji/master/assets/72x72/"+o.codepoint.replace(/\s+/g,"-")+".png"),o.closeModal()})}," 72x72 "),Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm sm:ml-3 mt-3 px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:w-auto sm:text-sm",href:"#/",onClick:n[1]||(n[1]=function(e){d.downloadEmojiPngFromUrl("https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg",256,256,o.codepoint+".png"),o.closeModal()})}," 256x256 "),Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm sm:ml-3 mt-3 px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:w-auto sm:text-sm",href:"#/",onClick:n[2]||(n[2]=function(e){d.downloadEmojiPngFromUrl("https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg",512,512,o.codepoint+".png"),o.closeModal()})}," 512x512 ")])])]})),_:1})])]})),_:1},8,["onClose"])]})),_:1},8,["show"])}var Be=f("1da1");f("96cf"),f("1276"),f("3ca3"),f("ddb0"),f("2b3d"),f("9861");function De(e,n){var f=document.createElement("a");f.download=n,f.href=e,document.body.appendChild(f),f.click(),f.remove()}var Te=De;function Me(e,n){n||(n=e.split("\\").pop().split("/").pop()),fetch(e,{headers:new Headers({Origin:location.origin}),mode:"cors"}).then((function(e){return e.blob()})).then((function(e){var f=window.URL.createObjectURL(e);Te(f,n)})).catch((function(e){return console.error(e)}))}var _e=Me,Se=f("0d73"),Ee=null;function Re(e,n,f){return Le.apply(this,arguments)}function Le(){return Le=Object(Be["a"])(regeneratorRuntime.mark((function e(n,f,o){var i,a,d,t,m,c,p=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return i=p.length>3&&void 0!==p[3]?p[3]:72,a=p.length>4&&void 0!==p[4]?p[4]:72,d=new OffscreenCanvas(i,a),t=d.getContext("2d"),e.next=6,Se["a"].from(t,n);case 6:return Ee=e.sent,Ee.resize(f,o,"xMidYMid meet"),e.next=10,Ee.render();case 10:return e.next=12,d.convertToBlob();case 12:return m=e.sent,c=URL.createObjectURL(m),e.abrupt("return",c);case 15:case"end":return e.stop()}}),e)}))),Le.apply(this,arguments)}var Ue=Re,Fe={components:{TransitionRoot:we["b"],TransitionChild:we["a"],Dialog:be["a"],DialogOverlay:be["b"],DialogTitle:be["c"]},setup:function(){var e=Object(a["y"])(!1),n=Object(a["y"])("");return{isOpen:e,codepoint:n,closeModal:function(){e.value=!1},openModal:function(n){e.value=!0,this.codepoint=n}}},methods:{downloadResource:_e,pngFromURL:Ue,forceDownload:Te,downloadEmojiPngFromUrl:function(e,n,f,o){return Object(Be["a"])(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:return i.t0=Te,i.next=3,Ue(e,n,f);case 3:i.t1=i.sent,i.t2=o,(0,i.t0)(i.t1,i.t2);case 6:case"end":return i.stop()}}),i)})))()}}};const Ne=z()(Fe,[["render",qe]]);var Ve=Ne,Ge=function(e){window.isSecureContext&&navigator.clipboard?navigator.clipboard.writeText(e):alert("Copy to clipboard is currently unavailable. Please try again later.")},He={components:{Dialog:be["a"],DialogOverlay:be["b"],DialogTitle:be["c"],TransitionChild:we["a"],TransitionRoot:we["b"],EmojiDownloadSubModal:Ve,ChevronDownIcon:x["b"],ClipboardCopyIcon:x["c"],CheckIcon:x["a"]},setup:function(){var e=Object(a["y"])(!1),n=Object(a["y"])(""),f=Object(a["y"])(""),o=Object(a["y"])(!1);return{isOpen:e,codepoint:n,name:f,copied:o,closeModal:function(){e.value=!1},openModal:function(n){e.value=!0,this.codepoint=n[0],this.name=n[1],this.copied=!1}}},data:function(){return{fallbackImage:f("15d8")}},methods:{downloadResource:_e,copyToClipboard:Ge}};const $e=z()(He,[["render",he]]);var Ae=$e,Je={class:"my-3"},We={for:"searchBar",class:"ml-1 block text-sm font-medium text-gray-700 dark:text-gray-300"},Xe={class:"mt-2 relative rounded-md shadow-sm max-w-sm"},Ye=["value"];function Ke(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",Je,[Object(a["h"])("label",We,Object(a["D"])(f.label),1),Object(a["h"])("div",Xe,[Object(a["h"])("input",{type:"text",autocomplete:"off",name:"searchBar",id:"searchBar",value:f.modelValue,onInput:n[0]||(n[0]=function(n){return e.$emit("update:modelValue",n.target.value)}),class:"focus:ring-blue-twitter focus:border-blue-twitter block w-full sm:text-sm dark:text-gray-50 dark:bg-gray-800 border-gray-300 dark:border-gray-700 rounded-md",placeholder:"Search..."},null,40,Ye)])])}var Qe={props:["modelValue","label"],emits:["update:modelValue"]};const Ze=z()(Qe,[["render",Ke]]);var en=Ze,nn={class:"px-2 py-3 flex items-center justify-between sm:px-6"},fn={class:"flex-1 flex justify-between items-center sm:hidden"},on={class:"text-gray-500 text-sm"},an={class:"hidden sm:flex-1 sm:flex sm:items-center sm:justify-around"},dn={class:"relative z-0 inline-flex rounded-md shadow-sm -space-x-px","aria-label":"Pagination"},tn=Object(a["h"])("span",{class:"sr-only"},"First",-1),mn=Object(a["h"])("span",{class:"sr-only"},"Previous",-1),cn=Object(a["h"])("span",{class:"sr-only"},"Next",-1),pn=Object(a["h"])("span",{class:"sr-only"},"Last",-1);function sn(e,n,f,o,i,d){var t=Object(a["B"])("PaginationMobileButton"),m=Object(a["B"])("ChevronDoubleLeftIcon"),c=Object(a["B"])("PaginationIndicatorButton"),p=Object(a["B"])("ChevronLeftIcon"),s=Object(a["B"])("ChevronRightIcon"),r=Object(a["B"])("ChevronDoubleRightIcon");return Object(a["v"])(),Object(a["g"])("div",nn,[Object(a["h"])("div",fn,[0!==f.currentPage?(Object(a["v"])(),Object(a["e"])(t,{key:0,content:"Previous",onClick:n[0]||(n[0]=function(e){return d.setPageIndex(f.currentPage-1)})})):Object(a["f"])("",!0),Object(a["h"])("p",on," Page "+Object(a["D"])(d.currentPageUserVersion)+" of "+Object(a["D"])(f.numberOfPages),1),f.currentPage!==f.numberOfPages-1?(Object(a["v"])(),Object(a["e"])(t,{key:1,content:"Next",onClick:n[1]||(n[1]=function(e){return d.setPageIndex(f.currentPage+1)})})):Object(a["f"])("",!0)]),Object(a["h"])("div",an,[Object(a["h"])("div",null,[Object(a["h"])("nav",dn,[0!==f.currentPage?(Object(a["v"])(),Object(a["e"])(c,{key:0,"min-width":!0,onClick:n[2]||(n[2]=function(e){return d.setPageIndex(0)})},{default:Object(a["I"])((function(){return[tn,Object(a["j"])(m,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0),0!==f.currentPage?(Object(a["v"])(),Object(a["e"])(c,{key:1,"min-width":!0,onClick:n[3]||(n[3]=function(e){return d.setPageIndex(f.currentPage-1)})},{default:Object(a["I"])((function(){return[mn,Object(a["j"])(p,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0),(Object(a["v"])(!0),Object(a["g"])(a["a"],null,Object(a["z"])(f.numberOfPages,(function(e){return Object(a["J"])((Object(a["v"])(),Object(a["e"])(c,{key:e,index:e,active:e===d.currentPageUserVersion,onClick:function(n){return d.setPageIndex(e-1)}},null,8,["index","active","onClick"])),[[a["F"],d.showPage(e-1)]])})),128)),f.currentPage!==f.numberOfPages-1?(Object(a["v"])(),Object(a["e"])(c,{key:2,onClick:n[4]||(n[4]=function(e){return d.setPageIndex(f.currentPage+1)}),"min-width":!0},{default:Object(a["I"])((function(){return[cn,Object(a["j"])(s,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0),f.currentPage!==f.numberOfPages-1?(Object(a["v"])(),Object(a["e"])(c,{key:3,onClick:n[5]||(n[5]=function(e){return d.setPageIndex(f.numberOfPages-1)}),"min-width":!0},{default:Object(a["I"])((function(){return[pn,Object(a["j"])(r,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0)])])])])}f("a9e3");var rn=f("fd7f"),ln=(f("9911"),["href"]);function kn(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("a",{href:f.link,class:Object(a["p"])(["relative items-center py-2 border text-sm font-medium first:rounded-l-md last:rounded-r-md",d.activityClass+" "+(f.minWidth?"px-2":"px-4")])},[Object(a["i"])(Object(a["D"])(f.index)+" ",1),Object(a["A"])(e.$slots,"default")],10,ln)}var gn={props:{index:{type:Number,required:!1},active:{type:Boolean,required:!1,default:!1},link:{type:String,required:!1,default:"#"},minWidth:{type:Boolean,required:!1,default:!1}},computed:{activityClass:function(){return this.active?"bg-blue-50 dark:bg-blue-900 border-blue-twitter text-blue-twitter-dark dark:text-blue-twitter dark:border-blue-twitter-dark z-10":"bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"}}};const un=z()(gn,[["render",kn]]);var hn=un,bn=["href"];function wn(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("a",{href:f.link,class:"relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-700 text-sm font-medium rounded-md text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700"},[Object(a["i"])(Object(a["D"])(f.content)+" ",1),Object(a["A"])(e.$slots,"default")],8,bn)}var yn={props:{content:{type:String,required:!1,validator:function(e){return e.length<15}},link:{type:String,required:!1,default:"#"}}};const vn=z()(yn,[["render",wn]]);var jn=vn,xn={components:{ChevronLeftIcon:rn["c"],ChevronRightIcon:rn["d"],ChevronDoubleLeftIcon:rn["a"],ChevronDoubleRightIcon:rn["b"],PaginationIndicatorButton:hn,PaginationMobileButton:jn},props:{currentPage:{type:Number,required:!0,validator:function(e){return e>=0}},numberOfPages:{type:Number,required:!0,validator:function(e){return e>=0}}},emits:["set-pagination-index"],computed:{currentPageUserVersion:function(){return this.currentPage+1}},methods:{setPageIndex:function(e){this.$emit("set-pagination-index",e)},showPage:function(e){return this.currentPage<=1&&e<=4||this.numberOfPages-this.currentPage<=2&&e>=this.numberOfPages-5||this.currentPage-2<=e&&e<=this.currentPage+2}}};const On=z()(xn,[["render",sn]]);var Pn=On,zn=f("fc30"),Cn={name:"Home",components:{TheNavbar:I,TheMainContentFrame:M,TheFooter:H,EmojiGrid:ee,EmojiDownloadModal:Ae,SearchBar:en,PaginationIndicator:Pn},data:function(){return{gridData:zn,hiddenItems:[],searchText:"",itemsPerPage:45,currentPage:0}},watch:{searchText:function(){this.currentPage=0}},computed:{filteredEmojiList:function(){var e=this;return this.gridData.filter((function(n){return(n.name.includes(e.searchText.toLowerCase())||n.codepoint.includes(e.searchText.toLowerCase()))&&!e.hiddenItems.includes(n.codepoint)}))},numberOfPages:function(){return Math.floor(this.filteredEmojiList.length/this.itemsPerPage)||1},paginatedEmojiList:function(){return this.filteredEmojiList.slice(this.itemsPerPage*this.currentPage,this.itemsPerPage*(this.currentPage+1))}}};const In=z()(Cn,[["render",t]]);var qn=In;function Bn(e,n,f,o,i,d){var t=Object(a["B"])("TheNavbar"),m=Object(a["B"])("ErrorMessagePage"),c=Object(a["B"])("TheFooter");return Object(a["v"])(),Object(a["g"])(a["a"],null,[Object(a["j"])(t,{navigation:[{name:"Home",href:"/",current:!1},{name:"GitHub",href:"https://github.com/gustavwilliam/twemoji-utils",current:!1}]},null,8,["navigation"]),Object(a["h"])("div",null,[Object(a["j"])(m,{errorCode:"404",header:"Page not found",description:"Sorry, but the page you're looking for doesn't seem to exist."})]),Object(a["j"])(c)],64)}f("a4d3"),f("e01a");var Dn={class:"max-w-7xl py-16 px-4 mx-auto sm:px-6 lg:px-8 sm:py-24"},Tn={class:"text-blue-twitter text-sm uppercase font-semibold"},Mn={class:"text-5xl font-extrabold text-gray-900 dark:text-gray-100 py-3"},_n={class:"opacity-50 dark:text-white"};function Sn(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",Dn,[Object(a["h"])("h2",Tn,Object(a["D"])(f.errorCode)+" error ",1),Object(a["h"])("h1",Mn,Object(a["D"])(f.header),1),Object(a["h"])("p",_n,Object(a["D"])(f.description),1)])}var En={name:"ErrorMessagePage",props:{errorCode:{type:String,required:!1,default:"Unknown"},header:{type:String,required:!1,default:"Something went wrong"},description:{type:String,required:!1,default:"An unexpected error occurred. Sorry for the inconvenience."}}};const Rn=z()(En,[["render",Sn]]);var Ln=Rn,Un={name:"Page404",components:{TheNavbar:I,ErrorMessagePage:Ln,TheFooter:H}};const Fn=z()(Un,[["render",Bn]]);var Nn=Fn,Vn=(f("a766"),f("ba8c"),[{path:"/",component:qn},{path:"/:pathMatch(.*)*",component:Nn}]),Gn=Object(i["a"])({history:Object(i["b"])(),routes:Vn});Object(o["a"])({}).use(Gn).mount("#app")},"8f70":function(e,n,f){e.exports=f.p+"img/logo-full-color-light.9c76f026.svg"},a766:function(e,n,f){},ba8c:function(e,n,f){},e9e1:function(e,n,f){e.exports=f.p+"img/github.93125ad9.svg"},fc30:function(e){e.exports=JSON.parse('[{"codepoint":"1f600","name":"grinning face"},{"codepoint":"1f603","name":"grinning face with big eyes"},{"codepoint":"1f604","name":"grinning face with smiling eyes"},{"codepoint":"1f601","name":"beaming face with smiling eyes"},{"codepoint":"1f606","name":"grinning squinting face"},{"codepoint":"1f605","name":"grinning face with sweat"},{"codepoint":"1f923","name":"rolling on the floor laughing"},{"codepoint":"1f602","name":"face with tears of joy"},{"codepoint":"1f642","name":"slightly smiling face"},{"codepoint":"1f643","name":"upside-down face"},{"codepoint":"1fae0","name":"melting face"},{"codepoint":"1f609","name":"winking face"},{"codepoint":"1f60a","name":"smiling face with smiling eyes"},{"codepoint":"1f607","name":"smiling face with halo"},{"codepoint":"1f970","name":"smiling face with hearts"},{"codepoint":"1f60d","name":"smiling face with heart-eyes"},{"codepoint":"1f929","name":"star-struck"},{"codepoint":"1f618","name":"face blowing a kiss"},{"codepoint":"1f617","name":"kissing face"},{"codepoint":"263a fe0f","name":"smiling face"},{"codepoint":"1f61a","name":"kissing face with closed eyes"},{"codepoint":"1f619","name":"kissing face with smiling eyes"},{"codepoint":"1f972","name":"smiling face with tear"},{"codepoint":"1f60b","name":"face savoring food"},{"codepoint":"1f61b","name":"face with tongue"},{"codepoint":"1f61c","name":"winking face with tongue"},{"codepoint":"1f92a","name":"zany face"},{"codepoint":"1f61d","name":"squinting face with tongue"},{"codepoint":"1f911","name":"money-mouth face"},{"codepoint":"1f917","name":"smiling face with open hands"},{"codepoint":"1f92d","name":"face with hand over mouth"},{"codepoint":"1fae2","name":"face with open eyes and hand over mouth"},{"codepoint":"1fae3","name":"face with peeking eye"},{"codepoint":"1f92b","name":"shushing face"},{"codepoint":"1f914","name":"thinking face"},{"codepoint":"1fae1","name":"saluting face"},{"codepoint":"1f910","name":"zipper-mouth face"},{"codepoint":"1f928","name":"face with raised eyebrow"},{"codepoint":"1f610","name":"neutral face"},{"codepoint":"1f611","name":"expressionless face"},{"codepoint":"1f636","name":"face without mouth"},{"codepoint":"1fae5","name":"dotted line face"},{"codepoint":"1f636 200d 1f32b fe0f","name":"face in clouds"},{"codepoint":"1f60f","name":"smirking face"},{"codepoint":"1f612","name":"unamused face"},{"codepoint":"1f644","name":"face with rolling eyes"},{"codepoint":"1f62c","name":"grimacing face"},{"codepoint":"1f62e 200d 1f4a8","name":"face exhaling"},{"codepoint":"1f925","name":"lying face"},{"codepoint":"1f60c","name":"relieved face"},{"codepoint":"1f614","name":"pensive face"},{"codepoint":"1f62a","name":"sleepy face"},{"codepoint":"1f924","name":"drooling face"},{"codepoint":"1f634","name":"sleeping face"},{"codepoint":"1f637","name":"face with medical mask"},{"codepoint":"1f912","name":"face with thermometer"},{"codepoint":"1f915","name":"face with head-bandage"},{"codepoint":"1f922","name":"nauseated face"},{"codepoint":"1f92e","name":"face vomiting"},{"codepoint":"1f927","name":"sneezing face"},{"codepoint":"1f975","name":"hot face"},{"codepoint":"1f976","name":"cold face"},{"codepoint":"1f974","name":"woozy face"},{"codepoint":"1f635","name":"face with crossed-out eyes"},{"codepoint":"1f635 200d 1f4ab","name":"face with spiral eyes"},{"codepoint":"1f92f","name":"exploding head"},{"codepoint":"1f920","name":"cowboy hat face"},{"codepoint":"1f973","name":"partying face"},{"codepoint":"1f978","name":"disguised face"},{"codepoint":"1f60e","name":"smiling face with sunglasses"},{"codepoint":"1f913","name":"nerd face"},{"codepoint":"1f9d0","name":"face with monocle"},{"codepoint":"1f615","name":"confused face"},{"codepoint":"1fae4","name":"face with diagonal mouth"},{"codepoint":"1f61f","name":"worried face"},{"codepoint":"1f641","name":"slightly frowning face"},{"codepoint":"2639 fe0f","name":"frowning face"},{"codepoint":"1f62e","name":"face with open mouth"},{"codepoint":"1f62f","name":"hushed face"},{"codepoint":"1f632","name":"astonished face"},{"codepoint":"1f633","name":"flushed face"},{"codepoint":"1f97a","name":"pleading face"},{"codepoint":"1f979","name":"face holding back tears"},{"codepoint":"1f626","name":"frowning face with open mouth"},{"codepoint":"1f627","name":"anguished face"},{"codepoint":"1f628","name":"fearful face"},{"codepoint":"1f630","name":"anxious face with sweat"},{"codepoint":"1f625","name":"sad but relieved face"},{"codepoint":"1f622","name":"crying face"},{"codepoint":"1f62d","name":"loudly crying face"},{"codepoint":"1f631","name":"face screaming in fear"},{"codepoint":"1f616","name":"confounded face"},{"codepoint":"1f623","name":"persevering face"},{"codepoint":"1f61e","name":"disappointed face"},{"codepoint":"1f613","name":"downcast face with sweat"},{"codepoint":"1f629","name":"weary face"},{"codepoint":"1f62b","name":"tired face"},{"codepoint":"1f971","name":"yawning face"},{"codepoint":"1f624","name":"face with steam from nose"},{"codepoint":"1f621","name":"pouting face"},{"codepoint":"1f620","name":"angry face"},{"codepoint":"1f92c","name":"face with symbols on mouth"},{"codepoint":"1f608","name":"smiling face with horns"},{"codepoint":"1f47f","name":"angry face with horns"},{"codepoint":"1f480","name":"skull"},{"codepoint":"2620 fe0f","name":"skull and crossbones"},{"codepoint":"1f4a9","name":"pile of poo"},{"codepoint":"1f921","name":"clown face"},{"codepoint":"1f479","name":"ogre"},{"codepoint":"1f47a","name":"goblin"},{"codepoint":"1f47b","name":"ghost"},{"codepoint":"1f47d","name":"alien"},{"codepoint":"1f47e","name":"alien monster"},{"codepoint":"1f916","name":"robot"},{"codepoint":"1f63a","name":"grinning cat"},{"codepoint":"1f638","name":"grinning cat with smiling eyes"},{"codepoint":"1f639","name":"cat with tears of joy"},{"codepoint":"1f63b","name":"smiling cat with heart-eyes"},{"codepoint":"1f63c","name":"cat with wry smile"},{"codepoint":"1f63d","name":"kissing cat"},{"codepoint":"1f640","name":"weary cat"},{"codepoint":"1f63f","name":"crying cat"},{"codepoint":"1f63e","name":"pouting cat"},{"codepoint":"1f648","name":"see-no-evil monkey"},{"codepoint":"1f649","name":"hear-no-evil monkey"},{"codepoint":"1f64a","name":"speak-no-evil monkey"},{"codepoint":"1f48b","name":"kiss mark"},{"codepoint":"1f48c","name":"love letter"},{"codepoint":"1f498","name":"heart with arrow"},{"codepoint":"1f49d","name":"heart with ribbon"},{"codepoint":"1f496","name":"sparkling heart"},{"codepoint":"1f497","name":"growing heart"},{"codepoint":"1f493","name":"beating heart"},{"codepoint":"1f49e","name":"revolving hearts"},{"codepoint":"1f495","name":"two hearts"},{"codepoint":"1f49f","name":"heart decoration"},{"codepoint":"2763 fe0f","name":"heart exclamation"},{"codepoint":"1f494","name":"broken heart"},{"codepoint":"2764 fe0f 200d 1f525","name":"heart on fire"},{"codepoint":"2764 fe0f 200d 1fa79","name":"mending heart"},{"codepoint":"2764 fe0f","name":"red heart"},{"codepoint":"1f9e1","name":"orange heart"},{"codepoint":"1f49b","name":"yellow heart"},{"codepoint":"1f49a","name":"green heart"},{"codepoint":"1f499","name":"blue heart"},{"codepoint":"1f49c","name":"purple heart"},{"codepoint":"1f90e","name":"brown heart"},{"codepoint":"1f5a4","name":"black heart"},{"codepoint":"1f90d","name":"white heart"},{"codepoint":"1f4af","name":"hundred points"},{"codepoint":"1f4a2","name":"anger symbol"},{"codepoint":"1f4a5","name":"collision"},{"codepoint":"1f4ab","name":"dizzy"},{"codepoint":"1f4a6","name":"sweat droplets"},{"codepoint":"1f4a8","name":"dashing away"},{"codepoint":"1f573 fe0f","name":"hole"},{"codepoint":"1f4a3","name":"bomb"},{"codepoint":"1f4ac","name":"speech balloon"},{"codepoint":"1f441 fe0f 200d 1f5e8 fe0f","name":"eye in speech bubble"},{"codepoint":"1f5e8 fe0f","name":"left speech bubble"},{"codepoint":"1f5ef fe0f","name":"right anger bubble"},{"codepoint":"1f4ad","name":"thought balloon"},{"codepoint":"1f4a4","name":"zzz"},{"codepoint":"1f44b","name":"waving hand"},{"codepoint":"1f44b 1f3fb","name":"waving hand: light skin tone"},{"codepoint":"1f44b 1f3fc","name":"waving hand: medium-light skin tone"},{"codepoint":"1f44b 1f3fd","name":"waving hand: medium skin tone"},{"codepoint":"1f44b 1f3fe","name":"waving hand: medium-dark skin tone"},{"codepoint":"1f44b 1f3ff","name":"waving hand: dark skin tone"},{"codepoint":"1f91a","name":"raised back of hand"},{"codepoint":"1f91a 1f3fb","name":"raised back of hand: light skin tone"},{"codepoint":"1f91a 1f3fc","name":"raised back of hand: medium-light skin tone"},{"codepoint":"1f91a 1f3fd","name":"raised back of hand: medium skin tone"},{"codepoint":"1f91a 1f3fe","name":"raised back of hand: medium-dark skin tone"},{"codepoint":"1f91a 1f3ff","name":"raised back of hand: dark skin tone"},{"codepoint":"1f590 fe0f","name":"hand with fingers splayed"},{"codepoint":"1f590 1f3fb","name":"hand with fingers splayed: light skin tone"},{"codepoint":"1f590 1f3fc","name":"hand with fingers splayed: medium-light skin tone"},{"codepoint":"1f590 1f3fd","name":"hand with fingers splayed: medium skin tone"},{"codepoint":"1f590 1f3fe","name":"hand with fingers splayed: medium-dark skin tone"},{"codepoint":"1f590 1f3ff","name":"hand with fingers splayed: dark skin tone"},{"codepoint":"270b","name":"raised hand"},{"codepoint":"270b 1f3fb","name":"raised hand: light skin tone"},{"codepoint":"270b 1f3fc","name":"raised hand: medium-light skin tone"},{"codepoint":"270b 1f3fd","name":"raised hand: medium skin tone"},{"codepoint":"270b 1f3fe","name":"raised hand: medium-dark skin tone"},{"codepoint":"270b 1f3ff","name":"raised hand: dark skin tone"},{"codepoint":"1f596","name":"vulcan salute"},{"codepoint":"1f596 1f3fb","name":"vulcan salute: light skin tone"},{"codepoint":"1f596 1f3fc","name":"vulcan salute: medium-light skin tone"},{"codepoint":"1f596 1f3fd","name":"vulcan salute: medium skin tone"},{"codepoint":"1f596 1f3fe","name":"vulcan salute: medium-dark skin tone"},{"codepoint":"1f596 1f3ff","name":"vulcan salute: dark skin tone"},{"codepoint":"1faf1","name":"rightwards hand"},{"codepoint":"1faf1 1f3fb","name":"rightwards hand: light skin tone"},{"codepoint":"1faf1 1f3fc","name":"rightwards hand: medium-light skin tone"},{"codepoint":"1faf1 1f3fd","name":"rightwards hand: medium skin tone"},{"codepoint":"1faf1 1f3fe","name":"rightwards hand: medium-dark skin tone"},{"codepoint":"1faf1 1f3ff","name":"rightwards hand: dark skin tone"},{"codepoint":"1faf2","name":"leftwards hand"},{"codepoint":"1faf2 1f3fb","name":"leftwards hand: light skin tone"},{"codepoint":"1faf2 1f3fc","name":"leftwards hand: medium-light skin tone"},{"codepoint":"1faf2 1f3fd","name":"leftwards hand: medium skin tone"},{"codepoint":"1faf2 1f3fe","name":"leftwards hand: medium-dark skin tone"},{"codepoint":"1faf2 1f3ff","name":"leftwards hand: dark skin tone"},{"codepoint":"1faf3","name":"palm down hand"},{"codepoint":"1faf3 1f3fb","name":"palm down hand: light skin tone"},{"codepoint":"1faf3 1f3fc","name":"palm down hand: medium-light skin tone"},{"codepoint":"1faf3 1f3fd","name":"palm down hand: medium skin tone"},{"codepoint":"1faf3 1f3fe","name":"palm down hand: medium-dark skin tone"},{"codepoint":"1faf3 1f3ff","name":"palm down hand: dark skin tone"},{"codepoint":"1faf4","name":"palm up hand"},{"codepoint":"1faf4 1f3fb","name":"palm up hand: light skin tone"},{"codepoint":"1faf4 1f3fc","name":"palm up hand: medium-light skin tone"},{"codepoint":"1faf4 1f3fd","name":"palm up hand: medium skin tone"},{"codepoint":"1faf4 1f3fe","name":"palm up hand: medium-dark skin tone"},{"codepoint":"1faf4 1f3ff","name":"palm up hand: dark skin tone"},{"codepoint":"1f44c","name":"ok hand"},{"codepoint":"1f44c 1f3fb","name":"ok hand: light skin tone"},{"codepoint":"1f44c 1f3fc","name":"ok hand: medium-light skin tone"},{"codepoint":"1f44c 1f3fd","name":"ok hand: medium skin tone"},{"codepoint":"1f44c 1f3fe","name":"ok hand: medium-dark skin tone"},{"codepoint":"1f44c 1f3ff","name":"ok hand: dark skin tone"},{"codepoint":"1f90c","name":"pinched fingers"},{"codepoint":"1f90c 1f3fb","name":"pinched fingers: light skin tone"},{"codepoint":"1f90c 1f3fc","name":"pinched fingers: medium-light skin tone"},{"codepoint":"1f90c 1f3fd","name":"pinched fingers: medium skin tone"},{"codepoint":"1f90c 1f3fe","name":"pinched fingers: medium-dark skin tone"},{"codepoint":"1f90c 1f3ff","name":"pinched fingers: dark skin tone"},{"codepoint":"1f90f","name":"pinching hand"},{"codepoint":"1f90f 1f3fb","name":"pinching hand: light skin tone"},{"codepoint":"1f90f 1f3fc","name":"pinching hand: medium-light skin tone"},{"codepoint":"1f90f 1f3fd","name":"pinching hand: medium skin tone"},{"codepoint":"1f90f 1f3fe","name":"pinching hand: medium-dark skin tone"},{"codepoint":"1f90f 1f3ff","name":"pinching hand: dark skin tone"},{"codepoint":"270c fe0f","name":"victory hand"},{"codepoint":"270c 1f3fb","name":"victory hand: light skin tone"},{"codepoint":"270c 1f3fc","name":"victory hand: medium-light skin tone"},{"codepoint":"270c 1f3fd","name":"victory hand: medium skin tone"},{"codepoint":"270c 1f3fe","name":"victory hand: medium-dark skin tone"},{"codepoint":"270c 1f3ff","name":"victory hand: dark skin tone"},{"codepoint":"1f91e","name":"crossed fingers"},{"codepoint":"1f91e 1f3fb","name":"crossed fingers: light skin tone"},{"codepoint":"1f91e 1f3fc","name":"crossed fingers: medium-light skin tone"},{"codepoint":"1f91e 1f3fd","name":"crossed fingers: medium skin tone"},{"codepoint":"1f91e 1f3fe","name":"crossed fingers: medium-dark skin tone"},{"codepoint":"1f91e 1f3ff","name":"crossed fingers: dark skin tone"},{"codepoint":"1faf0","name":"hand with index finger and thumb crossed"},{"codepoint":"1faf0 1f3fb","name":"hand with index finger and thumb crossed: light skin tone"},{"codepoint":"1faf0 1f3fc","name":"hand with index finger and thumb crossed: medium-light skin tone"},{"codepoint":"1faf0 1f3fd","name":"hand with index finger and thumb crossed: medium skin tone"},{"codepoint":"1faf0 1f3fe","name":"hand with index finger and thumb crossed: medium-dark skin tone"},{"codepoint":"1faf0 1f3ff","name":"hand with index finger and thumb crossed: dark skin tone"},{"codepoint":"1f91f","name":"love-you gesture"},{"codepoint":"1f91f 1f3fb","name":"love-you gesture: light skin tone"},{"codepoint":"1f91f 1f3fc","name":"love-you gesture: medium-light skin tone"},{"codepoint":"1f91f 1f3fd","name":"love-you gesture: medium skin tone"},{"codepoint":"1f91f 1f3fe","name":"love-you gesture: medium-dark skin tone"},{"codepoint":"1f91f 1f3ff","name":"love-you gesture: dark skin tone"},{"codepoint":"1f918","name":"sign of the horns"},{"codepoint":"1f918 1f3fb","name":"sign of the horns: light skin tone"},{"codepoint":"1f918 1f3fc","name":"sign of the horns: medium-light skin tone"},{"codepoint":"1f918 1f3fd","name":"sign of the horns: medium skin tone"},{"codepoint":"1f918 1f3fe","name":"sign of the horns: medium-dark skin tone"},{"codepoint":"1f918 1f3ff","name":"sign of the horns: dark skin tone"},{"codepoint":"1f919","name":"call me hand"},{"codepoint":"1f919 1f3fb","name":"call me hand: light skin tone"},{"codepoint":"1f919 1f3fc","name":"call me hand: medium-light skin tone"},{"codepoint":"1f919 1f3fd","name":"call me hand: medium skin tone"},{"codepoint":"1f919 1f3fe","name":"call me hand: medium-dark skin tone"},{"codepoint":"1f919 1f3ff","name":"call me hand: dark skin tone"},{"codepoint":"1f448","name":"backhand index pointing left"},{"codepoint":"1f448 1f3fb","name":"backhand index pointing left: light skin tone"},{"codepoint":"1f448 1f3fc","name":"backhand index pointing left: medium-light skin tone"},{"codepoint":"1f448 1f3fd","name":"backhand index pointing left: medium skin tone"},{"codepoint":"1f448 1f3fe","name":"backhand index pointing left: medium-dark skin tone"},{"codepoint":"1f448 1f3ff","name":"backhand index pointing left: dark skin tone"},{"codepoint":"1f449","name":"backhand index pointing right"},{"codepoint":"1f449 1f3fb","name":"backhand index pointing right: light skin tone"},{"codepoint":"1f449 1f3fc","name":"backhand index pointing right: medium-light skin tone"},{"codepoint":"1f449 1f3fd","name":"backhand index pointing right: medium skin tone"},{"codepoint":"1f449 1f3fe","name":"backhand index pointing right: medium-dark skin tone"},{"codepoint":"1f449 1f3ff","name":"backhand index pointing right: dark skin tone"},{"codepoint":"1f446","name":"backhand index pointing up"},{"codepoint":"1f446 1f3fb","name":"backhand index pointing up: light skin tone"},{"codepoint":"1f446 1f3fc","name":"backhand index pointing up: medium-light skin tone"},{"codepoint":"1f446 1f3fd","name":"backhand index pointing up: medium skin tone"},{"codepoint":"1f446 1f3fe","name":"backhand index pointing up: medium-dark skin tone"},{"codepoint":"1f446 1f3ff","name":"backhand index pointing up: dark skin tone"},{"codepoint":"1f595","name":"middle finger"},{"codepoint":"1f595 1f3fb","name":"middle finger: light skin tone"},{"codepoint":"1f595 1f3fc","name":"middle finger: medium-light skin tone"},{"codepoint":"1f595 1f3fd","name":"middle finger: medium skin tone"},{"codepoint":"1f595 1f3fe","name":"middle finger: medium-dark skin tone"},{"codepoint":"1f595 1f3ff","name":"middle finger: dark skin tone"},{"codepoint":"1f447","name":"backhand index pointing down"},{"codepoint":"1f447 1f3fb","name":"backhand index pointing down: light skin tone"},{"codepoint":"1f447 1f3fc","name":"backhand index pointing down: medium-light skin tone"},{"codepoint":"1f447 1f3fd","name":"backhand index pointing down: medium skin tone"},{"codepoint":"1f447 1f3fe","name":"backhand index pointing down: medium-dark skin tone"},{"codepoint":"1f447 1f3ff","name":"backhand index pointing down: dark skin tone"},{"codepoint":"261d fe0f","name":"index pointing up"},{"codepoint":"261d 1f3fb","name":"index pointing up: light skin tone"},{"codepoint":"261d 1f3fc","name":"index pointing up: medium-light skin tone"},{"codepoint":"261d 1f3fd","name":"index pointing up: medium skin tone"},{"codepoint":"261d 1f3fe","name":"index pointing up: medium-dark skin tone"},{"codepoint":"261d 1f3ff","name":"index pointing up: dark skin tone"},{"codepoint":"1faf5","name":"index pointing at the viewer"},{"codepoint":"1faf5 1f3fb","name":"index pointing at the viewer: light skin tone"},{"codepoint":"1faf5 1f3fc","name":"index pointing at the viewer: medium-light skin tone"},{"codepoint":"1faf5 1f3fd","name":"index pointing at the viewer: medium skin tone"},{"codepoint":"1faf5 1f3fe","name":"index pointing at the viewer: medium-dark skin tone"},{"codepoint":"1faf5 1f3ff","name":"index pointing at the viewer: dark skin tone"},{"codepoint":"1f44d","name":"thumbs up"},{"codepoint":"1f44d 1f3fb","name":"thumbs up: light skin tone"},{"codepoint":"1f44d 1f3fc","name":"thumbs up: medium-light skin tone"},{"codepoint":"1f44d 1f3fd","name":"thumbs up: medium skin tone"},{"codepoint":"1f44d 1f3fe","name":"thumbs up: medium-dark skin tone"},{"codepoint":"1f44d 1f3ff","name":"thumbs up: dark skin tone"},{"codepoint":"1f44e","name":"thumbs down"},{"codepoint":"1f44e 1f3fb","name":"thumbs down: light skin tone"},{"codepoint":"1f44e 1f3fc","name":"thumbs down: medium-light skin tone"},{"codepoint":"1f44e 1f3fd","name":"thumbs down: medium skin tone"},{"codepoint":"1f44e 1f3fe","name":"thumbs down: medium-dark skin tone"},{"codepoint":"1f44e 1f3ff","name":"thumbs down: dark skin tone"},{"codepoint":"270a","name":"raised fist"},{"codepoint":"270a 1f3fb","name":"raised fist: light skin tone"},{"codepoint":"270a 1f3fc","name":"raised fist: medium-light skin tone"},{"codepoint":"270a 1f3fd","name":"raised fist: medium skin tone"},{"codepoint":"270a 1f3fe","name":"raised fist: medium-dark skin tone"},{"codepoint":"270a 1f3ff","name":"raised fist: dark skin tone"},{"codepoint":"1f44a","name":"oncoming fist"},{"codepoint":"1f44a 1f3fb","name":"oncoming fist: light skin tone"},{"codepoint":"1f44a 1f3fc","name":"oncoming fist: medium-light skin tone"},{"codepoint":"1f44a 1f3fd","name":"oncoming fist: medium skin tone"},{"codepoint":"1f44a 1f3fe","name":"oncoming fist: medium-dark skin tone"},{"codepoint":"1f44a 1f3ff","name":"oncoming fist: dark skin tone"},{"codepoint":"1f91b","name":"left-facing fist"},{"codepoint":"1f91b 1f3fb","name":"left-facing fist: light skin tone"},{"codepoint":"1f91b 1f3fc","name":"left-facing fist: medium-light skin tone"},{"codepoint":"1f91b 1f3fd","name":"left-facing fist: medium skin tone"},{"codepoint":"1f91b 1f3fe","name":"left-facing fist: medium-dark skin tone"},{"codepoint":"1f91b 1f3ff","name":"left-facing fist: dark skin tone"},{"codepoint":"1f91c","name":"right-facing fist"},{"codepoint":"1f91c 1f3fb","name":"right-facing fist: light skin tone"},{"codepoint":"1f91c 1f3fc","name":"right-facing fist: medium-light skin tone"},{"codepoint":"1f91c 1f3fd","name":"right-facing fist: medium skin tone"},{"codepoint":"1f91c 1f3fe","name":"right-facing fist: medium-dark skin tone"},{"codepoint":"1f91c 1f3ff","name":"right-facing fist: dark skin tone"},{"codepoint":"1f44f","name":"clapping hands"},{"codepoint":"1f44f 1f3fb","name":"clapping hands: light skin tone"},{"codepoint":"1f44f 1f3fc","name":"clapping hands: medium-light skin tone"},{"codepoint":"1f44f 1f3fd","name":"clapping hands: medium skin tone"},{"codepoint":"1f44f 1f3fe","name":"clapping hands: medium-dark skin tone"},{"codepoint":"1f44f 1f3ff","name":"clapping hands: dark skin tone"},{"codepoint":"1f64c","name":"raising hands"},{"codepoint":"1f64c 1f3fb","name":"raising hands: light skin tone"},{"codepoint":"1f64c 1f3fc","name":"raising hands: medium-light skin tone"},{"codepoint":"1f64c 1f3fd","name":"raising hands: medium skin tone"},{"codepoint":"1f64c 1f3fe","name":"raising hands: medium-dark skin tone"},{"codepoint":"1f64c 1f3ff","name":"raising hands: dark skin tone"},{"codepoint":"1faf6","name":"heart hands"},{"codepoint":"1faf6 1f3fb","name":"heart hands: light skin tone"},{"codepoint":"1faf6 1f3fc","name":"heart hands: medium-light skin tone"},{"codepoint":"1faf6 1f3fd","name":"heart hands: medium skin tone"},{"codepoint":"1faf6 1f3fe","name":"heart hands: medium-dark skin tone"},{"codepoint":"1faf6 1f3ff","name":"heart hands: dark skin tone"},{"codepoint":"1f450","name":"open hands"},{"codepoint":"1f450 1f3fb","name":"open hands: light skin tone"},{"codepoint":"1f450 1f3fc","name":"open hands: medium-light skin tone"},{"codepoint":"1f450 1f3fd","name":"open hands: medium skin tone"},{"codepoint":"1f450 1f3fe","name":"open hands: medium-dark skin tone"},{"codepoint":"1f450 1f3ff","name":"open hands: dark skin tone"},{"codepoint":"1f932","name":"palms up together"},{"codepoint":"1f932 1f3fb","name":"palms up together: light skin tone"},{"codepoint":"1f932 1f3fc","name":"palms up together: medium-light skin tone"},{"codepoint":"1f932 1f3fd","name":"palms up together: medium skin tone"},{"codepoint":"1f932 1f3fe","name":"palms up together: medium-dark skin tone"},{"codepoint":"1f932 1f3ff","name":"palms up together: dark skin tone"},{"codepoint":"1f91d","name":"handshake"},{"codepoint":"1f91d 1f3fb","name":"handshake: light skin tone"},{"codepoint":"1f91d 1f3fc","name":"handshake: medium-light skin tone"},{"codepoint":"1f91d 1f3fd","name":"handshake: medium skin tone"},{"codepoint":"1f91d 1f3fe","name":"handshake: medium-dark skin tone"},{"codepoint":"1f91d 1f3ff","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3fc","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3fd","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3fe","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3ff","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3fb","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3fd","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3fe","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3ff","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3fb","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3fc","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3fe","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3ff","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3fb","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3fc","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3fd","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3ff","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fb","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fc","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fd","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fe","name":"handshake: dark skin tone"},{"codepoint":"1f64f","name":"folded hands"},{"codepoint":"1f64f 1f3fb","name":"folded hands: light skin tone"},{"codepoint":"1f64f 1f3fc","name":"folded hands: medium-light skin tone"},{"codepoint":"1f64f 1f3fd","name":"folded hands: medium skin tone"},{"codepoint":"1f64f 1f3fe","name":"folded hands: medium-dark skin tone"},{"codepoint":"1f64f 1f3ff","name":"folded hands: dark skin tone"},{"codepoint":"270d fe0f","name":"writing hand"},{"codepoint":"270d 1f3fb","name":"writing hand: light skin tone"},{"codepoint":"270d 1f3fc","name":"writing hand: medium-light skin tone"},{"codepoint":"270d 1f3fd","name":"writing hand: medium skin tone"},{"codepoint":"270d 1f3fe","name":"writing hand: medium-dark skin tone"},{"codepoint":"270d 1f3ff","name":"writing hand: dark skin tone"},{"codepoint":"1f485","name":"nail polish"},{"codepoint":"1f485 1f3fb","name":"nail polish: light skin tone"},{"codepoint":"1f485 1f3fc","name":"nail polish: medium-light skin tone"},{"codepoint":"1f485 1f3fd","name":"nail polish: medium skin tone"},{"codepoint":"1f485 1f3fe","name":"nail polish: medium-dark skin tone"},{"codepoint":"1f485 1f3ff","name":"nail polish: dark skin tone"},{"codepoint":"1f933","name":"selfie"},{"codepoint":"1f933 1f3fb","name":"selfie: light skin tone"},{"codepoint":"1f933 1f3fc","name":"selfie: medium-light skin tone"},{"codepoint":"1f933 1f3fd","name":"selfie: medium skin tone"},{"codepoint":"1f933 1f3fe","name":"selfie: medium-dark skin tone"},{"codepoint":"1f933 1f3ff","name":"selfie: dark skin tone"},{"codepoint":"1f4aa","name":"flexed biceps"},{"codepoint":"1f4aa 1f3fb","name":"flexed biceps: light skin tone"},{"codepoint":"1f4aa 1f3fc","name":"flexed biceps: medium-light skin tone"},{"codepoint":"1f4aa 1f3fd","name":"flexed biceps: medium skin tone"},{"codepoint":"1f4aa 1f3fe","name":"flexed biceps: medium-dark skin tone"},{"codepoint":"1f4aa 1f3ff","name":"flexed biceps: dark skin tone"},{"codepoint":"1f9be","name":"mechanical arm"},{"codepoint":"1f9bf","name":"mechanical leg"},{"codepoint":"1f9b5","name":"leg"},{"codepoint":"1f9b5 1f3fb","name":"leg: light skin tone"},{"codepoint":"1f9b5 1f3fc","name":"leg: medium-light skin tone"},{"codepoint":"1f9b5 1f3fd","name":"leg: medium skin tone"},{"codepoint":"1f9b5 1f3fe","name":"leg: medium-dark skin tone"},{"codepoint":"1f9b5 1f3ff","name":"leg: dark skin tone"},{"codepoint":"1f9b6","name":"foot"},{"codepoint":"1f9b6 1f3fb","name":"foot: light skin tone"},{"codepoint":"1f9b6 1f3fc","name":"foot: medium-light skin tone"},{"codepoint":"1f9b6 1f3fd","name":"foot: medium skin tone"},{"codepoint":"1f9b6 1f3fe","name":"foot: medium-dark skin tone"},{"codepoint":"1f9b6 1f3ff","name":"foot: dark skin tone"},{"codepoint":"1f442","name":"ear"},{"codepoint":"1f442 1f3fb","name":"ear: light skin tone"},{"codepoint":"1f442 1f3fc","name":"ear: medium-light skin tone"},{"codepoint":"1f442 1f3fd","name":"ear: medium skin tone"},{"codepoint":"1f442 1f3fe","name":"ear: medium-dark skin tone"},{"codepoint":"1f442 1f3ff","name":"ear: dark skin tone"},{"codepoint":"1f9bb","name":"ear with hearing aid"},{"codepoint":"1f9bb 1f3fb","name":"ear with hearing aid: light skin tone"},{"codepoint":"1f9bb 1f3fc","name":"ear with hearing aid: medium-light skin tone"},{"codepoint":"1f9bb 1f3fd","name":"ear with hearing aid: medium skin tone"},{"codepoint":"1f9bb 1f3fe","name":"ear with hearing aid: medium-dark skin tone"},{"codepoint":"1f9bb 1f3ff","name":"ear with hearing aid: dark skin tone"},{"codepoint":"1f443","name":"nose"},{"codepoint":"1f443 1f3fb","name":"nose: light skin tone"},{"codepoint":"1f443 1f3fc","name":"nose: medium-light skin tone"},{"codepoint":"1f443 1f3fd","name":"nose: medium skin tone"},{"codepoint":"1f443 1f3fe","name":"nose: medium-dark skin tone"},{"codepoint":"1f443 1f3ff","name":"nose: dark skin tone"},{"codepoint":"1f9e0","name":"brain"},{"codepoint":"1fac0","name":"anatomical heart"},{"codepoint":"1fac1","name":"lungs"},{"codepoint":"1f9b7","name":"tooth"},{"codepoint":"1f9b4","name":"bone"},{"codepoint":"1f440","name":"eyes"},{"codepoint":"1f441 fe0f","name":"eye"},{"codepoint":"1f445","name":"tongue"},{"codepoint":"1f444","name":"mouth"},{"codepoint":"1fae6","name":"biting lip"},{"codepoint":"1f476","name":"baby"},{"codepoint":"1f476 1f3fb","name":"baby: light skin tone"},{"codepoint":"1f476 1f3fc","name":"baby: medium-light skin tone"},{"codepoint":"1f476 1f3fd","name":"baby: medium skin tone"},{"codepoint":"1f476 1f3fe","name":"baby: medium-dark skin tone"},{"codepoint":"1f476 1f3ff","name":"baby: dark skin tone"},{"codepoint":"1f9d2","name":"child"},{"codepoint":"1f9d2 1f3fb","name":"child: light skin tone"},{"codepoint":"1f9d2 1f3fc","name":"child: medium-light skin tone"},{"codepoint":"1f9d2 1f3fd","name":"child: medium skin tone"},{"codepoint":"1f9d2 1f3fe","name":"child: medium-dark skin tone"},{"codepoint":"1f9d2 1f3ff","name":"child: dark skin tone"},{"codepoint":"1f466","name":"boy"},{"codepoint":"1f466 1f3fb","name":"boy: light skin tone"},{"codepoint":"1f466 1f3fc","name":"boy: medium-light skin tone"},{"codepoint":"1f466 1f3fd","name":"boy: medium skin tone"},{"codepoint":"1f466 1f3fe","name":"boy: medium-dark skin tone"},{"codepoint":"1f466 1f3ff","name":"boy: dark skin tone"},{"codepoint":"1f467","name":"girl"},{"codepoint":"1f467 1f3fb","name":"girl: light skin tone"},{"codepoint":"1f467 1f3fc","name":"girl: medium-light skin tone"},{"codepoint":"1f467 1f3fd","name":"girl: medium skin tone"},{"codepoint":"1f467 1f3fe","name":"girl: medium-dark skin tone"},{"codepoint":"1f467 1f3ff","name":"girl: dark skin tone"},{"codepoint":"1f9d1","name":"person"},{"codepoint":"1f9d1 1f3fb","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff","name":"person: dark skin tone"},{"codepoint":"1f471","name":"person: blond hair"},{"codepoint":"1f471 1f3fb","name":"person: light skin tone"},{"codepoint":"1f471 1f3fc","name":"person: medium-light skin tone"},{"codepoint":"1f471 1f3fd","name":"person: medium skin tone"},{"codepoint":"1f471 1f3fe","name":"person: medium-dark skin tone"},{"codepoint":"1f471 1f3ff","name":"person: dark skin tone"},{"codepoint":"1f468","name":"man"},{"codepoint":"1f468 1f3fb","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff","name":"man: dark skin tone"},{"codepoint":"1f9d4","name":"person: beard"},{"codepoint":"1f9d4 1f3fb","name":"person: light skin tone"},{"codepoint":"1f9d4 1f3fc","name":"person: medium-light skin tone"},{"codepoint":"1f9d4 1f3fd","name":"person: medium skin tone"},{"codepoint":"1f9d4 1f3fe","name":"person: medium-dark skin tone"},{"codepoint":"1f9d4 1f3ff","name":"person: dark skin tone"},{"codepoint":"1f9d4 200d 2642 fe0f","name":"man: beard"},{"codepoint":"1f9d4 1f3fb 200d 2642 fe0f","name":"man: light skin tone"},{"codepoint":"1f9d4 1f3fc 200d 2642 fe0f","name":"man: medium-light skin tone"},{"codepoint":"1f9d4 1f3fd 200d 2642 fe0f","name":"man: medium skin tone"},{"codepoint":"1f9d4 1f3fe 200d 2642 fe0f","name":"man: medium-dark skin tone"},{"codepoint":"1f9d4 1f3ff 200d 2642 fe0f","name":"man: dark skin tone"},{"codepoint":"1f9d4 200d 2640 fe0f","name":"woman: beard"},{"codepoint":"1f9d4 1f3fb 200d 2640 fe0f","name":"woman: light skin tone"},{"codepoint":"1f9d4 1f3fc 200d 2640 fe0f","name":"woman: medium-light skin tone"},{"codepoint":"1f9d4 1f3fd 200d 2640 fe0f","name":"woman: medium skin tone"},{"codepoint":"1f9d4 1f3fe 200d 2640 fe0f","name":"woman: medium-dark skin tone"},{"codepoint":"1f9d4 1f3ff 200d 2640 fe0f","name":"woman: dark skin tone"},{"codepoint":"1f468 200d 1f9b0","name":"man: red hair"},{"codepoint":"1f468 1f3fb 200d 1f9b0","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b0","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b0","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b0","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b0","name":"man: dark skin tone"},{"codepoint":"1f468 200d 1f9b1","name":"man: curly hair"},{"codepoint":"1f468 1f3fb 200d 1f9b1","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b1","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b1","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b1","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b1","name":"man: dark skin tone"},{"codepoint":"1f468 200d 1f9b3","name":"man: white hair"},{"codepoint":"1f468 1f3fb 200d 1f9b3","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b3","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b3","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b3","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b3","name":"man: dark skin tone"},{"codepoint":"1f468 200d 1f9b2","name":"man: bald"},{"codepoint":"1f468 1f3fb 200d 1f9b2","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b2","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b2","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b2","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b2","name":"man: dark skin tone"},{"codepoint":"1f469","name":"woman"},{"codepoint":"1f469 1f3fb","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff","name":"woman: dark skin tone"},{"codepoint":"1f469 200d 1f9b0","name":"woman: red hair"},{"codepoint":"1f469 1f3fb 200d 1f9b0","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b0","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b0","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b0","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b0","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b0","name":"person: red hair"},{"codepoint":"1f9d1 1f3fb 200d 1f9b0","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b0","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b0","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b0","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b0","name":"person: dark skin tone"},{"codepoint":"1f469 200d 1f9b1","name":"woman: curly hair"},{"codepoint":"1f469 1f3fb 200d 1f9b1","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b1","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b1","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b1","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b1","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b1","name":"person: curly hair"},{"codepoint":"1f9d1 1f3fb 200d 1f9b1","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b1","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b1","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b1","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b1","name":"person: dark skin tone"},{"codepoint":"1f469 200d 1f9b3","name":"woman: white hair"},{"codepoint":"1f469 1f3fb 200d 1f9b3","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b3","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b3","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b3","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b3","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b3","name":"person: white hair"},{"codepoint":"1f9d1 1f3fb 200d 1f9b3","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b3","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b3","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b3","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b3","name":"person: dark skin tone"},{"codepoint":"1f469 200d 1f9b2","name":"woman: bald"},{"codepoint":"1f469 1f3fb 200d 1f9b2","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b2","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b2","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b2","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b2","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b2","name":"person: bald"},{"codepoint":"1f9d1 1f3fb 200d 1f9b2","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b2","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b2","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b2","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b2","name":"person: dark skin tone"},{"codepoint":"1f471 200d 2640 fe0f","name":"woman: blond hair"},{"codepoint":"1f471 1f3fb 200d 2640 fe0f","name":"woman: light skin tone"},{"codepoint":"1f471 1f3fc 200d 2640 fe0f","name":"woman: medium-light skin tone"},{"codepoint":"1f471 1f3fd 200d 2640 fe0f","name":"woman: medium skin tone"},{"codepoint":"1f471 1f3fe 200d 2640 fe0f","name":"woman: medium-dark skin tone"},{"codepoint":"1f471 1f3ff 200d 2640 fe0f","name":"woman: dark skin tone"},{"codepoint":"1f471 200d 2642 fe0f","name":"man: blond hair"},{"codepoint":"1f471 1f3fb 200d 2642 fe0f","name":"man: light skin tone"},{"codepoint":"1f471 1f3fc 200d 2642 fe0f","name":"man: medium-light skin tone"},{"codepoint":"1f471 1f3fd 200d 2642 fe0f","name":"man: medium skin tone"},{"codepoint":"1f471 1f3fe 200d 2642 fe0f","name":"man: medium-dark skin tone"},{"codepoint":"1f471 1f3ff 200d 2642 fe0f","name":"man: dark skin tone"},{"codepoint":"1f9d3","name":"older person"},{"codepoint":"1f9d3 1f3fb","name":"older person: light skin tone"},{"codepoint":"1f9d3 1f3fc","name":"older person: medium-light skin tone"},{"codepoint":"1f9d3 1f3fd","name":"older person: medium skin tone"},{"codepoint":"1f9d3 1f3fe","name":"older person: medium-dark skin tone"},{"codepoint":"1f9d3 1f3ff","name":"older person: dark skin tone"},{"codepoint":"1f474","name":"old man"},{"codepoint":"1f474 1f3fb","name":"old man: light skin tone"},{"codepoint":"1f474 1f3fc","name":"old man: medium-light skin tone"},{"codepoint":"1f474 1f3fd","name":"old man: medium skin tone"},{"codepoint":"1f474 1f3fe","name":"old man: medium-dark skin tone"},{"codepoint":"1f474 1f3ff","name":"old man: dark skin tone"},{"codepoint":"1f475","name":"old woman"},{"codepoint":"1f475 1f3fb","name":"old woman: light skin tone"},{"codepoint":"1f475 1f3fc","name":"old woman: medium-light skin tone"},{"codepoint":"1f475 1f3fd","name":"old woman: medium skin tone"},{"codepoint":"1f475 1f3fe","name":"old woman: medium-dark skin tone"},{"codepoint":"1f475 1f3ff","name":"old woman: dark skin tone"},{"codepoint":"1f64d","name":"person frowning"},{"codepoint":"1f64d 1f3fb","name":"person frowning: light skin tone"},{"codepoint":"1f64d 1f3fc","name":"person frowning: medium-light skin tone"},{"codepoint":"1f64d 1f3fd","name":"person frowning: medium skin tone"},{"codepoint":"1f64d 1f3fe","name":"person frowning: medium-dark skin tone"},{"codepoint":"1f64d 1f3ff","name":"person frowning: dark skin tone"},{"codepoint":"1f64d 200d 2642 fe0f","name":"man frowning"},{"codepoint":"1f64d 1f3fb 200d 2642 fe0f","name":"man frowning: light skin tone"},{"codepoint":"1f64d 1f3fc 200d 2642 fe0f","name":"man frowning: medium-light skin tone"},{"codepoint":"1f64d 1f3fd 200d 2642 fe0f","name":"man frowning: medium skin tone"},{"codepoint":"1f64d 1f3fe 200d 2642 fe0f","name":"man frowning: medium-dark skin tone"},{"codepoint":"1f64d 1f3ff 200d 2642 fe0f","name":"man frowning: dark skin tone"},{"codepoint":"1f64d 200d 2640 fe0f","name":"woman frowning"},{"codepoint":"1f64d 1f3fb 200d 2640 fe0f","name":"woman frowning: light skin tone"},{"codepoint":"1f64d 1f3fc 200d 2640 fe0f","name":"woman frowning: medium-light skin tone"},{"codepoint":"1f64d 1f3fd 200d 2640 fe0f","name":"woman frowning: medium skin tone"},{"codepoint":"1f64d 1f3fe 200d 2640 fe0f","name":"woman frowning: medium-dark skin tone"},{"codepoint":"1f64d 1f3ff 200d 2640 fe0f","name":"woman frowning: dark skin tone"},{"codepoint":"1f64e","name":"person pouting"},{"codepoint":"1f64e 1f3fb","name":"person pouting: light skin tone"},{"codepoint":"1f64e 1f3fc","name":"person pouting: medium-light skin tone"},{"codepoint":"1f64e 1f3fd","name":"person pouting: medium skin tone"},{"codepoint":"1f64e 1f3fe","name":"person pouting: medium-dark skin tone"},{"codepoint":"1f64e 1f3ff","name":"person pouting: dark skin tone"},{"codepoint":"1f64e 200d 2642 fe0f","name":"man pouting"},{"codepoint":"1f64e 1f3fb 200d 2642 fe0f","name":"man pouting: light skin tone"},{"codepoint":"1f64e 1f3fc 200d 2642 fe0f","name":"man pouting: medium-light skin tone"},{"codepoint":"1f64e 1f3fd 200d 2642 fe0f","name":"man pouting: medium skin tone"},{"codepoint":"1f64e 1f3fe 200d 2642 fe0f","name":"man pouting: medium-dark skin tone"},{"codepoint":"1f64e 1f3ff 200d 2642 fe0f","name":"man pouting: dark skin tone"},{"codepoint":"1f64e 200d 2640 fe0f","name":"woman pouting"},{"codepoint":"1f64e 1f3fb 200d 2640 fe0f","name":"woman pouting: light skin tone"},{"codepoint":"1f64e 1f3fc 200d 2640 fe0f","name":"woman pouting: medium-light skin tone"},{"codepoint":"1f64e 1f3fd 200d 2640 fe0f","name":"woman pouting: medium skin tone"},{"codepoint":"1f64e 1f3fe 200d 2640 fe0f","name":"woman pouting: medium-dark skin tone"},{"codepoint":"1f64e 1f3ff 200d 2640 fe0f","name":"woman pouting: dark skin tone"},{"codepoint":"1f645","name":"person gesturing no"},{"codepoint":"1f645 1f3fb","name":"person gesturing no: light skin tone"},{"codepoint":"1f645 1f3fc","name":"person gesturing no: medium-light skin tone"},{"codepoint":"1f645 1f3fd","name":"person gesturing no: medium skin tone"},{"codepoint":"1f645 1f3fe","name":"person gesturing no: medium-dark skin tone"},{"codepoint":"1f645 1f3ff","name":"person gesturing no: dark skin tone"},{"codepoint":"1f645 200d 2642 fe0f","name":"man gesturing no"},{"codepoint":"1f645 1f3fb 200d 2642 fe0f","name":"man gesturing no: light skin tone"},{"codepoint":"1f645 1f3fc 200d 2642 fe0f","name":"man gesturing no: medium-light skin tone"},{"codepoint":"1f645 1f3fd 200d 2642 fe0f","name":"man gesturing no: medium skin tone"},{"codepoint":"1f645 1f3fe 200d 2642 fe0f","name":"man gesturing no: medium-dark skin tone"},{"codepoint":"1f645 1f3ff 200d 2642 fe0f","name":"man gesturing no: dark skin tone"},{"codepoint":"1f645 200d 2640 fe0f","name":"woman gesturing no"},{"codepoint":"1f645 1f3fb 200d 2640 fe0f","name":"woman gesturing no: light skin tone"},{"codepoint":"1f645 1f3fc 200d 2640 fe0f","name":"woman gesturing no: medium-light skin tone"},{"codepoint":"1f645 1f3fd 200d 2640 fe0f","name":"woman gesturing no: medium skin tone"},{"codepoint":"1f645 1f3fe 200d 2640 fe0f","name":"woman gesturing no: medium-dark skin tone"},{"codepoint":"1f645 1f3ff 200d 2640 fe0f","name":"woman gesturing no: dark skin tone"},{"codepoint":"1f646","name":"person gesturing ok"},{"codepoint":"1f646 1f3fb","name":"person gesturing ok: light skin tone"},{"codepoint":"1f646 1f3fc","name":"person gesturing ok: medium-light skin tone"},{"codepoint":"1f646 1f3fd","name":"person gesturing ok: medium skin tone"},{"codepoint":"1f646 1f3fe","name":"person gesturing ok: medium-dark skin tone"},{"codepoint":"1f646 1f3ff","name":"person gesturing ok: dark skin tone"},{"codepoint":"1f646 200d 2642 fe0f","name":"man gesturing ok"},{"codepoint":"1f646 1f3fb 200d 2642 fe0f","name":"man gesturing ok: light skin tone"},{"codepoint":"1f646 1f3fc 200d 2642 fe0f","name":"man gesturing ok: medium-light skin tone"},{"codepoint":"1f646 1f3fd 200d 2642 fe0f","name":"man gesturing ok: medium skin tone"},{"codepoint":"1f646 1f3fe 200d 2642 fe0f","name":"man gesturing ok: medium-dark skin tone"},{"codepoint":"1f646 1f3ff 200d 2642 fe0f","name":"man gesturing ok: dark skin tone"},{"codepoint":"1f646 200d 2640 fe0f","name":"woman gesturing ok"},{"codepoint":"1f646 1f3fb 200d 2640 fe0f","name":"woman gesturing ok: light skin tone"},{"codepoint":"1f646 1f3fc 200d 2640 fe0f","name":"woman gesturing ok: medium-light skin tone"},{"codepoint":"1f646 1f3fd 200d 2640 fe0f","name":"woman gesturing ok: medium skin tone"},{"codepoint":"1f646 1f3fe 200d 2640 fe0f","name":"woman gesturing ok: medium-dark skin tone"},{"codepoint":"1f646 1f3ff 200d 2640 fe0f","name":"woman gesturing ok: dark skin tone"},{"codepoint":"1f481","name":"person tipping hand"},{"codepoint":"1f481 1f3fb","name":"person tipping hand: light skin tone"},{"codepoint":"1f481 1f3fc","name":"person tipping hand: medium-light skin tone"},{"codepoint":"1f481 1f3fd","name":"person tipping hand: medium skin tone"},{"codepoint":"1f481 1f3fe","name":"person tipping hand: medium-dark skin tone"},{"codepoint":"1f481 1f3ff","name":"person tipping hand: dark skin tone"},{"codepoint":"1f481 200d 2642 fe0f","name":"man tipping hand"},{"codepoint":"1f481 1f3fb 200d 2642 fe0f","name":"man tipping hand: light skin tone"},{"codepoint":"1f481 1f3fc 200d 2642 fe0f","name":"man tipping hand: medium-light skin tone"},{"codepoint":"1f481 1f3fd 200d 2642 fe0f","name":"man tipping hand: medium skin tone"},{"codepoint":"1f481 1f3fe 200d 2642 fe0f","name":"man tipping hand: medium-dark skin tone"},{"codepoint":"1f481 1f3ff 200d 2642 fe0f","name":"man tipping hand: dark skin tone"},{"codepoint":"1f481 200d 2640 fe0f","name":"woman tipping hand"},{"codepoint":"1f481 1f3fb 200d 2640 fe0f","name":"woman tipping hand: light skin tone"},{"codepoint":"1f481 1f3fc 200d 2640 fe0f","name":"woman tipping hand: medium-light skin tone"},{"codepoint":"1f481 1f3fd 200d 2640 fe0f","name":"woman tipping hand: medium skin tone"},{"codepoint":"1f481 1f3fe 200d 2640 fe0f","name":"woman tipping hand: medium-dark skin tone"},{"codepoint":"1f481 1f3ff 200d 2640 fe0f","name":"woman tipping hand: dark skin tone"},{"codepoint":"1f64b","name":"person raising hand"},{"codepoint":"1f64b 1f3fb","name":"person raising hand: light skin tone"},{"codepoint":"1f64b 1f3fc","name":"person raising hand: medium-light skin tone"},{"codepoint":"1f64b 1f3fd","name":"person raising hand: medium skin tone"},{"codepoint":"1f64b 1f3fe","name":"person raising hand: medium-dark skin tone"},{"codepoint":"1f64b 1f3ff","name":"person raising hand: dark skin tone"},{"codepoint":"1f64b 200d 2642 fe0f","name":"man raising hand"},{"codepoint":"1f64b 1f3fb 200d 2642 fe0f","name":"man raising hand: light skin tone"},{"codepoint":"1f64b 1f3fc 200d 2642 fe0f","name":"man raising hand: medium-light skin tone"},{"codepoint":"1f64b 1f3fd 200d 2642 fe0f","name":"man raising hand: medium skin tone"},{"codepoint":"1f64b 1f3fe 200d 2642 fe0f","name":"man raising hand: medium-dark skin tone"},{"codepoint":"1f64b 1f3ff 200d 2642 fe0f","name":"man raising hand: dark skin tone"},{"codepoint":"1f64b 200d 2640 fe0f","name":"woman raising hand"},{"codepoint":"1f64b 1f3fb 200d 2640 fe0f","name":"woman raising hand: light skin tone"},{"codepoint":"1f64b 1f3fc 200d 2640 fe0f","name":"woman raising hand: medium-light skin tone"},{"codepoint":"1f64b 1f3fd 200d 2640 fe0f","name":"woman raising hand: medium skin tone"},{"codepoint":"1f64b 1f3fe 200d 2640 fe0f","name":"woman raising hand: medium-dark skin tone"},{"codepoint":"1f64b 1f3ff 200d 2640 fe0f","name":"woman raising hand: dark skin tone"},{"codepoint":"1f9cf","name":"deaf person"},{"codepoint":"1f9cf 1f3fb","name":"deaf person: light skin tone"},{"codepoint":"1f9cf 1f3fc","name":"deaf person: medium-light skin tone"},{"codepoint":"1f9cf 1f3fd","name":"deaf person: medium skin tone"},{"codepoint":"1f9cf 1f3fe","name":"deaf person: medium-dark skin tone"},{"codepoint":"1f9cf 1f3ff","name":"deaf person: dark skin tone"},{"codepoint":"1f9cf 200d 2642 fe0f","name":"deaf man"},{"codepoint":"1f9cf 1f3fb 200d 2642 fe0f","name":"deaf man: light skin tone"},{"codepoint":"1f9cf 1f3fc 200d 2642 fe0f","name":"deaf man: medium-light skin tone"},{"codepoint":"1f9cf 1f3fd 200d 2642 fe0f","name":"deaf man: medium skin tone"},{"codepoint":"1f9cf 1f3fe 200d 2642 fe0f","name":"deaf man: medium-dark skin tone"},{"codepoint":"1f9cf 1f3ff 200d 2642 fe0f","name":"deaf man: dark skin tone"},{"codepoint":"1f9cf 200d 2640 fe0f","name":"deaf woman"},{"codepoint":"1f9cf 1f3fb 200d 2640 fe0f","name":"deaf woman: light skin tone"},{"codepoint":"1f9cf 1f3fc 200d 2640 fe0f","name":"deaf woman: medium-light skin tone"},{"codepoint":"1f9cf 1f3fd 200d 2640 fe0f","name":"deaf woman: medium skin tone"},{"codepoint":"1f9cf 1f3fe 200d 2640 fe0f","name":"deaf woman: medium-dark skin tone"},{"codepoint":"1f9cf 1f3ff 200d 2640 fe0f","name":"deaf woman: dark skin tone"},{"codepoint":"1f647","name":"person bowing"},{"codepoint":"1f647 1f3fb","name":"person bowing: light skin tone"},{"codepoint":"1f647 1f3fc","name":"person bowing: medium-light skin tone"},{"codepoint":"1f647 1f3fd","name":"person bowing: medium skin tone"},{"codepoint":"1f647 1f3fe","name":"person bowing: medium-dark skin tone"},{"codepoint":"1f647 1f3ff","name":"person bowing: dark skin tone"},{"codepoint":"1f647 200d 2642 fe0f","name":"man bowing"},{"codepoint":"1f647 1f3fb 200d 2642 fe0f","name":"man bowing: light skin tone"},{"codepoint":"1f647 1f3fc 200d 2642 fe0f","name":"man bowing: medium-light skin tone"},{"codepoint":"1f647 1f3fd 200d 2642 fe0f","name":"man bowing: medium skin tone"},{"codepoint":"1f647 1f3fe 200d 2642 fe0f","name":"man bowing: medium-dark skin tone"},{"codepoint":"1f647 1f3ff 200d 2642 fe0f","name":"man bowing: dark skin tone"},{"codepoint":"1f647 200d 2640 fe0f","name":"woman bowing"},{"codepoint":"1f647 1f3fb 200d 2640 fe0f","name":"woman bowing: light skin tone"},{"codepoint":"1f647 1f3fc 200d 2640 fe0f","name":"woman bowing: medium-light skin tone"},{"codepoint":"1f647 1f3fd 200d 2640 fe0f","name":"woman bowing: medium skin tone"},{"codepoint":"1f647 1f3fe 200d 2640 fe0f","name":"woman bowing: medium-dark skin tone"},{"codepoint":"1f647 1f3ff 200d 2640 fe0f","name":"woman bowing: dark skin tone"},{"codepoint":"1f926","name":"person facepalming"},{"codepoint":"1f926 1f3fb","name":"person facepalming: light skin tone"},{"codepoint":"1f926 1f3fc","name":"person facepalming: medium-light skin tone"},{"codepoint":"1f926 1f3fd","name":"person facepalming: medium skin tone"},{"codepoint":"1f926 1f3fe","name":"person facepalming: medium-dark skin tone"},{"codepoint":"1f926 1f3ff","name":"person facepalming: dark skin tone"},{"codepoint":"1f926 200d 2642 fe0f","name":"man facepalming"},{"codepoint":"1f926 1f3fb 200d 2642 fe0f","name":"man facepalming: light skin tone"},{"codepoint":"1f926 1f3fc 200d 2642 fe0f","name":"man facepalming: medium-light skin tone"},{"codepoint":"1f926 1f3fd 200d 2642 fe0f","name":"man facepalming: medium skin tone"},{"codepoint":"1f926 1f3fe 200d 2642 fe0f","name":"man facepalming: medium-dark skin tone"},{"codepoint":"1f926 1f3ff 200d 2642 fe0f","name":"man facepalming: dark skin tone"},{"codepoint":"1f926 200d 2640 fe0f","name":"woman facepalming"},{"codepoint":"1f926 1f3fb 200d 2640 fe0f","name":"woman facepalming: light skin tone"},{"codepoint":"1f926 1f3fc 200d 2640 fe0f","name":"woman facepalming: medium-light skin tone"},{"codepoint":"1f926 1f3fd 200d 2640 fe0f","name":"woman facepalming: medium skin tone"},{"codepoint":"1f926 1f3fe 200d 2640 fe0f","name":"woman facepalming: medium-dark skin tone"},{"codepoint":"1f926 1f3ff 200d 2640 fe0f","name":"woman facepalming: dark skin tone"},{"codepoint":"1f937","name":"person shrugging"},{"codepoint":"1f937 1f3fb","name":"person shrugging: light skin tone"},{"codepoint":"1f937 1f3fc","name":"person shrugging: medium-light skin tone"},{"codepoint":"1f937 1f3fd","name":"person shrugging: medium skin tone"},{"codepoint":"1f937 1f3fe","name":"person shrugging: medium-dark skin tone"},{"codepoint":"1f937 1f3ff","name":"person shrugging: dark skin tone"},{"codepoint":"1f937 200d 2642 fe0f","name":"man shrugging"},{"codepoint":"1f937 1f3fb 200d 2642 fe0f","name":"man shrugging: light skin tone"},{"codepoint":"1f937 1f3fc 200d 2642 fe0f","name":"man shrugging: medium-light skin tone"},{"codepoint":"1f937 1f3fd 200d 2642 fe0f","name":"man shrugging: medium skin tone"},{"codepoint":"1f937 1f3fe 200d 2642 fe0f","name":"man shrugging: medium-dark skin tone"},{"codepoint":"1f937 1f3ff 200d 2642 fe0f","name":"man shrugging: dark skin tone"},{"codepoint":"1f937 200d 2640 fe0f","name":"woman shrugging"},{"codepoint":"1f937 1f3fb 200d 2640 fe0f","name":"woman shrugging: light skin tone"},{"codepoint":"1f937 1f3fc 200d 2640 fe0f","name":"woman shrugging: medium-light skin tone"},{"codepoint":"1f937 1f3fd 200d 2640 fe0f","name":"woman shrugging: medium skin tone"},{"codepoint":"1f937 1f3fe 200d 2640 fe0f","name":"woman shrugging: medium-dark skin tone"},{"codepoint":"1f937 1f3ff 200d 2640 fe0f","name":"woman shrugging: dark skin tone"},{"codepoint":"1f9d1 200d 2695 fe0f","name":"health worker"},{"codepoint":"1f9d1 1f3fb 200d 2695 fe0f","name":"health worker: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 2695 fe0f","name":"health worker: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 2695 fe0f","name":"health worker: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 2695 fe0f","name":"health worker: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 2695 fe0f","name":"health worker: dark skin tone"},{"codepoint":"1f468 200d 2695 fe0f","name":"man health worker"},{"codepoint":"1f468 1f3fb 200d 2695 fe0f","name":"man health worker: light skin tone"},{"codepoint":"1f468 1f3fc 200d 2695 fe0f","name":"man health worker: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 2695 fe0f","name":"man health worker: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 2695 fe0f","name":"man health worker: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 2695 fe0f","name":"man health worker: dark skin tone"},{"codepoint":"1f469 200d 2695 fe0f","name":"woman health worker"},{"codepoint":"1f469 1f3fb 200d 2695 fe0f","name":"woman health worker: light skin tone"},{"codepoint":"1f469 1f3fc 200d 2695 fe0f","name":"woman health worker: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 2695 fe0f","name":"woman health worker: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 2695 fe0f","name":"woman health worker: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 2695 fe0f","name":"woman health worker: dark skin tone"},{"codepoint":"1f9d1 200d 1f393","name":"student"},{"codepoint":"1f9d1 1f3fb 200d 1f393","name":"student: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f393","name":"student: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f393","name":"student: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f393","name":"student: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f393","name":"student: dark skin tone"},{"codepoint":"1f468 200d 1f393","name":"man student"},{"codepoint":"1f468 1f3fb 200d 1f393","name":"man student: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f393","name":"man student: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f393","name":"man student: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f393","name":"man student: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f393","name":"man student: dark skin tone"},{"codepoint":"1f469 200d 1f393","name":"woman student"},{"codepoint":"1f469 1f3fb 200d 1f393","name":"woman student: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f393","name":"woman student: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f393","name":"woman student: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f393","name":"woman student: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f393","name":"woman student: dark skin tone"},{"codepoint":"1f9d1 200d 1f3eb","name":"teacher"},{"codepoint":"1f9d1 1f3fb 200d 1f3eb","name":"teacher: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3eb","name":"teacher: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3eb","name":"teacher: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3eb","name":"teacher: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3eb","name":"teacher: dark skin tone"},{"codepoint":"1f468 200d 1f3eb","name":"man teacher"},{"codepoint":"1f468 1f3fb 200d 1f3eb","name":"man teacher: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3eb","name":"man teacher: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3eb","name":"man teacher: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3eb","name":"man teacher: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3eb","name":"man teacher: dark skin tone"},{"codepoint":"1f469 200d 1f3eb","name":"woman teacher"},{"codepoint":"1f469 1f3fb 200d 1f3eb","name":"woman teacher: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3eb","name":"woman teacher: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3eb","name":"woman teacher: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3eb","name":"woman teacher: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3eb","name":"woman teacher: dark skin tone"},{"codepoint":"1f9d1 200d 2696 fe0f","name":"judge"},{"codepoint":"1f9d1 1f3fb 200d 2696 fe0f","name":"judge: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 2696 fe0f","name":"judge: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 2696 fe0f","name":"judge: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 2696 fe0f","name":"judge: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 2696 fe0f","name":"judge: dark skin tone"},{"codepoint":"1f468 200d 2696 fe0f","name":"man judge"},{"codepoint":"1f468 1f3fb 200d 2696 fe0f","name":"man judge: light skin tone"},{"codepoint":"1f468 1f3fc 200d 2696 fe0f","name":"man judge: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 2696 fe0f","name":"man judge: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 2696 fe0f","name":"man judge: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 2696 fe0f","name":"man judge: dark skin tone"},{"codepoint":"1f469 200d 2696 fe0f","name":"woman judge"},{"codepoint":"1f469 1f3fb 200d 2696 fe0f","name":"woman judge: light skin tone"},{"codepoint":"1f469 1f3fc 200d 2696 fe0f","name":"woman judge: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 2696 fe0f","name":"woman judge: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 2696 fe0f","name":"woman judge: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 2696 fe0f","name":"woman judge: dark skin tone"},{"codepoint":"1f9d1 200d 1f33e","name":"farmer"},{"codepoint":"1f9d1 1f3fb 200d 1f33e","name":"farmer: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f33e","name":"farmer: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f33e","name":"farmer: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f33e","name":"farmer: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f33e","name":"farmer: dark skin tone"},{"codepoint":"1f468 200d 1f33e","name":"man farmer"},{"codepoint":"1f468 1f3fb 200d 1f33e","name":"man farmer: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f33e","name":"man farmer: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f33e","name":"man farmer: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f33e","name":"man farmer: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f33e","name":"man farmer: dark skin tone"},{"codepoint":"1f469 200d 1f33e","name":"woman farmer"},{"codepoint":"1f469 1f3fb 200d 1f33e","name":"woman farmer: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f33e","name":"woman farmer: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f33e","name":"woman farmer: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f33e","name":"woman farmer: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f33e","name":"woman farmer: dark skin tone"},{"codepoint":"1f9d1 200d 1f373","name":"cook"},{"codepoint":"1f9d1 1f3fb 200d 1f373","name":"cook: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f373","name":"cook: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f373","name":"cook: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f373","name":"cook: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f373","name":"cook: dark skin tone"},{"codepoint":"1f468 200d 1f373","name":"man cook"},{"codepoint":"1f468 1f3fb 200d 1f373","name":"man cook: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f373","name":"man cook: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f373","name":"man cook: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f373","name":"man cook: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f373","name":"man cook: dark skin tone"},{"codepoint":"1f469 200d 1f373","name":"woman cook"},{"codepoint":"1f469 1f3fb 200d 1f373","name":"woman cook: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f373","name":"woman cook: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f373","name":"woman cook: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f373","name":"woman cook: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f373","name":"woman cook: dark skin tone"},{"codepoint":"1f9d1 200d 1f527","name":"mechanic"},{"codepoint":"1f9d1 1f3fb 200d 1f527","name":"mechanic: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f527","name":"mechanic: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f527","name":"mechanic: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f527","name":"mechanic: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f527","name":"mechanic: dark skin tone"},{"codepoint":"1f468 200d 1f527","name":"man mechanic"},{"codepoint":"1f468 1f3fb 200d 1f527","name":"man mechanic: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f527","name":"man mechanic: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f527","name":"man mechanic: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f527","name":"man mechanic: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f527","name":"man mechanic: dark skin tone"},{"codepoint":"1f469 200d 1f527","name":"woman mechanic"},{"codepoint":"1f469 1f3fb 200d 1f527","name":"woman mechanic: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f527","name":"woman mechanic: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f527","name":"woman mechanic: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f527","name":"woman mechanic: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f527","name":"woman mechanic: dark skin tone"},{"codepoint":"1f9d1 200d 1f3ed","name":"factory worker"},{"codepoint":"1f9d1 1f3fb 200d 1f3ed","name":"factory worker: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3ed","name":"factory worker: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3ed","name":"factory worker: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3ed","name":"factory worker: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3ed","name":"factory worker: dark skin tone"},{"codepoint":"1f468 200d 1f3ed","name":"man factory worker"},{"codepoint":"1f468 1f3fb 200d 1f3ed","name":"man factory worker: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3ed","name":"man factory worker: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3ed","name":"man factory worker: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3ed","name":"man factory worker: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3ed","name":"man factory worker: dark skin tone"},{"codepoint":"1f469 200d 1f3ed","name":"woman factory worker"},{"codepoint":"1f469 1f3fb 200d 1f3ed","name":"woman factory worker: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3ed","name":"woman factory worker: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3ed","name":"woman factory worker: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3ed","name":"woman factory worker: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3ed","name":"woman factory worker: dark skin tone"},{"codepoint":"1f9d1 200d 1f4bc","name":"office worker"},{"codepoint":"1f9d1 1f3fb 200d 1f4bc","name":"office worker: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f4bc","name":"office worker: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f4bc","name":"office worker: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f4bc","name":"office worker: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f4bc","name":"office worker: dark skin tone"},{"codepoint":"1f468 200d 1f4bc","name":"man office worker"},{"codepoint":"1f468 1f3fb 200d 1f4bc","name":"man office worker: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f4bc","name":"man office worker: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f4bc","name":"man office worker: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f4bc","name":"man office worker: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f4bc","name":"man office worker: dark skin tone"},{"codepoint":"1f469 200d 1f4bc","name":"woman office worker"},{"codepoint":"1f469 1f3fb 200d 1f4bc","name":"woman office worker: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f4bc","name":"woman office worker: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f4bc","name":"woman office worker: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f4bc","name":"woman office worker: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f4bc","name":"woman office worker: dark skin tone"},{"codepoint":"1f9d1 200d 1f52c","name":"scientist"},{"codepoint":"1f9d1 1f3fb 200d 1f52c","name":"scientist: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f52c","name":"scientist: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f52c","name":"scientist: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f52c","name":"scientist: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f52c","name":"scientist: dark skin tone"},{"codepoint":"1f468 200d 1f52c","name":"man scientist"},{"codepoint":"1f468 1f3fb 200d 1f52c","name":"man scientist: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f52c","name":"man scientist: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f52c","name":"man scientist: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f52c","name":"man scientist: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f52c","name":"man scientist: dark skin tone"},{"codepoint":"1f469 200d 1f52c","name":"woman scientist"},{"codepoint":"1f469 1f3fb 200d 1f52c","name":"woman scientist: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f52c","name":"woman scientist: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f52c","name":"woman scientist: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f52c","name":"woman scientist: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f52c","name":"woman scientist: dark skin tone"},{"codepoint":"1f9d1 200d 1f4bb","name":"technologist"},{"codepoint":"1f9d1 1f3fb 200d 1f4bb","name":"technologist: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f4bb","name":"technologist: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f4bb","name":"technologist: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f4bb","name":"technologist: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f4bb","name":"technologist: dark skin tone"},{"codepoint":"1f468 200d 1f4bb","name":"man technologist"},{"codepoint":"1f468 1f3fb 200d 1f4bb","name":"man technologist: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f4bb","name":"man technologist: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f4bb","name":"man technologist: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f4bb","name":"man technologist: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f4bb","name":"man technologist: dark skin tone"},{"codepoint":"1f469 200d 1f4bb","name":"woman technologist"},{"codepoint":"1f469 1f3fb 200d 1f4bb","name":"woman technologist: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f4bb","name":"woman technologist: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f4bb","name":"woman technologist: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f4bb","name":"woman technologist: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f4bb","name":"woman technologist: dark skin tone"},{"codepoint":"1f9d1 200d 1f3a4","name":"singer"},{"codepoint":"1f9d1 1f3fb 200d 1f3a4","name":"singer: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3a4","name":"singer: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3a4","name":"singer: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3a4","name":"singer: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3a4","name":"singer: dark skin tone"},{"codepoint":"1f468 200d 1f3a4","name":"man singer"},{"codepoint":"1f468 1f3fb 200d 1f3a4","name":"man singer: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3a4","name":"man singer: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3a4","name":"man singer: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3a4","name":"man singer: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3a4","name":"man singer: dark skin tone"},{"codepoint":"1f469 200d 1f3a4","name":"woman singer"},{"codepoint":"1f469 1f3fb 200d 1f3a4","name":"woman singer: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3a4","name":"woman singer: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3a4","name":"woman singer: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3a4","name":"woman singer: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3a4","name":"woman singer: dark skin tone"},{"codepoint":"1f9d1 200d 1f3a8","name":"artist"},{"codepoint":"1f9d1 1f3fb 200d 1f3a8","name":"artist: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3a8","name":"artist: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3a8","name":"artist: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3a8","name":"artist: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3a8","name":"artist: dark skin tone"},{"codepoint":"1f468 200d 1f3a8","name":"man artist"},{"codepoint":"1f468 1f3fb 200d 1f3a8","name":"man artist: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3a8","name":"man artist: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3a8","name":"man artist: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3a8","name":"man artist: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3a8","name":"man artist: dark skin tone"},{"codepoint":"1f469 200d 1f3a8","name":"woman artist"},{"codepoint":"1f469 1f3fb 200d 1f3a8","name":"woman artist: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3a8","name":"woman artist: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3a8","name":"woman artist: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3a8","name":"woman artist: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3a8","name":"woman artist: dark skin tone"},{"codepoint":"1f9d1 200d 2708 fe0f","name":"pilot"},{"codepoint":"1f9d1 1f3fb 200d 2708 fe0f","name":"pilot: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 2708 fe0f","name":"pilot: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 2708 fe0f","name":"pilot: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 2708 fe0f","name":"pilot: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 2708 fe0f","name":"pilot: dark skin tone"},{"codepoint":"1f468 200d 2708 fe0f","name":"man pilot"},{"codepoint":"1f468 1f3fb 200d 2708 fe0f","name":"man pilot: light skin tone"},{"codepoint":"1f468 1f3fc 200d 2708 fe0f","name":"man pilot: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 2708 fe0f","name":"man pilot: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 2708 fe0f","name":"man pilot: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 2708 fe0f","name":"man pilot: dark skin tone"},{"codepoint":"1f469 200d 2708 fe0f","name":"woman pilot"},{"codepoint":"1f469 1f3fb 200d 2708 fe0f","name":"woman pilot: light skin tone"},{"codepoint":"1f469 1f3fc 200d 2708 fe0f","name":"woman pilot: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 2708 fe0f","name":"woman pilot: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 2708 fe0f","name":"woman pilot: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 2708 fe0f","name":"woman pilot: dark skin tone"},{"codepoint":"1f9d1 200d 1f680","name":"astronaut"},{"codepoint":"1f9d1 1f3fb 200d 1f680","name":"astronaut: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f680","name":"astronaut: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f680","name":"astronaut: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f680","name":"astronaut: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f680","name":"astronaut: dark skin tone"},{"codepoint":"1f468 200d 1f680","name":"man astronaut"},{"codepoint":"1f468 1f3fb 200d 1f680","name":"man astronaut: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f680","name":"man astronaut: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f680","name":"man astronaut: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f680","name":"man astronaut: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f680","name":"man astronaut: dark skin tone"},{"codepoint":"1f469 200d 1f680","name":"woman astronaut"},{"codepoint":"1f469 1f3fb 200d 1f680","name":"woman astronaut: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f680","name":"woman astronaut: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f680","name":"woman astronaut: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f680","name":"woman astronaut: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f680","name":"woman astronaut: dark skin tone"},{"codepoint":"1f9d1 200d 1f692","name":"firefighter"},{"codepoint":"1f9d1 1f3fb 200d 1f692","name":"firefighter: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f692","name":"firefighter: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f692","name":"firefighter: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f692","name":"firefighter: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f692","name":"firefighter: dark skin tone"},{"codepoint":"1f468 200d 1f692","name":"man firefighter"},{"codepoint":"1f468 1f3fb 200d 1f692","name":"man firefighter: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f692","name":"man firefighter: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f692","name":"man firefighter: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f692","name":"man firefighter: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f692","name":"man firefighter: dark skin tone"},{"codepoint":"1f469 200d 1f692","name":"woman firefighter"},{"codepoint":"1f469 1f3fb 200d 1f692","name":"woman firefighter: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f692","name":"woman firefighter: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f692","name":"woman firefighter: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f692","name":"woman firefighter: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f692","name":"woman firefighter: dark skin tone"},{"codepoint":"1f46e","name":"police officer"},{"codepoint":"1f46e 1f3fb","name":"police officer: light skin tone"},{"codepoint":"1f46e 1f3fc","name":"police officer: medium-light skin tone"},{"codepoint":"1f46e 1f3fd","name":"police officer: medium skin tone"},{"codepoint":"1f46e 1f3fe","name":"police officer: medium-dark skin tone"},{"codepoint":"1f46e 1f3ff","name":"police officer: dark skin tone"},{"codepoint":"1f46e 200d 2642 fe0f","name":"man police officer"},{"codepoint":"1f46e 1f3fb 200d 2642 fe0f","name":"man police officer: light skin tone"},{"codepoint":"1f46e 1f3fc 200d 2642 fe0f","name":"man police officer: medium-light skin tone"},{"codepoint":"1f46e 1f3fd 200d 2642 fe0f","name":"man police officer: medium skin tone"},{"codepoint":"1f46e 1f3fe 200d 2642 fe0f","name":"man police officer: medium-dark skin tone"},{"codepoint":"1f46e 1f3ff 200d 2642 fe0f","name":"man police officer: dark skin tone"},{"codepoint":"1f46e 200d 2640 fe0f","name":"woman police officer"},{"codepoint":"1f46e 1f3fb 200d 2640 fe0f","name":"woman police officer: light skin tone"},{"codepoint":"1f46e 1f3fc 200d 2640 fe0f","name":"woman police officer: medium-light skin tone"},{"codepoint":"1f46e 1f3fd 200d 2640 fe0f","name":"woman police officer: medium skin tone"},{"codepoint":"1f46e 1f3fe 200d 2640 fe0f","name":"woman police officer: medium-dark skin tone"},{"codepoint":"1f46e 1f3ff 200d 2640 fe0f","name":"woman police officer: dark skin tone"},{"codepoint":"1f575 fe0f","name":"detective"},{"codepoint":"1f575 1f3fb","name":"detective: light skin tone"},{"codepoint":"1f575 1f3fc","name":"detective: medium-light skin tone"},{"codepoint":"1f575 1f3fd","name":"detective: medium skin tone"},{"codepoint":"1f575 1f3fe","name":"detective: medium-dark skin tone"},{"codepoint":"1f575 1f3ff","name":"detective: dark skin tone"},{"codepoint":"1f575 fe0f 200d 2642 fe0f","name":"man detective"},{"codepoint":"1f575 1f3fb 200d 2642 fe0f","name":"man detective: light skin tone"},{"codepoint":"1f575 1f3fc 200d 2642 fe0f","name":"man detective: medium-light skin tone"},{"codepoint":"1f575 1f3fd 200d 2642 fe0f","name":"man detective: medium skin tone"},{"codepoint":"1f575 1f3fe 200d 2642 fe0f","name":"man detective: medium-dark skin tone"},{"codepoint":"1f575 1f3ff 200d 2642 fe0f","name":"man detective: dark skin tone"},{"codepoint":"1f575 fe0f 200d 2640 fe0f","name":"woman detective"},{"codepoint":"1f575 1f3fb 200d 2640 fe0f","name":"woman detective: light skin tone"},{"codepoint":"1f575 1f3fc 200d 2640 fe0f","name":"woman detective: medium-light skin tone"},{"codepoint":"1f575 1f3fd 200d 2640 fe0f","name":"woman detective: medium skin tone"},{"codepoint":"1f575 1f3fe 200d 2640 fe0f","name":"woman detective: medium-dark skin tone"},{"codepoint":"1f575 1f3ff 200d 2640 fe0f","name":"woman detective: dark skin tone"},{"codepoint":"1f482","name":"guard"},{"codepoint":"1f482 1f3fb","name":"guard: light skin tone"},{"codepoint":"1f482 1f3fc","name":"guard: medium-light skin tone"},{"codepoint":"1f482 1f3fd","name":"guard: medium skin tone"},{"codepoint":"1f482 1f3fe","name":"guard: medium-dark skin tone"},{"codepoint":"1f482 1f3ff","name":"guard: dark skin tone"},{"codepoint":"1f482 200d 2642 fe0f","name":"man guard"},{"codepoint":"1f482 1f3fb 200d 2642 fe0f","name":"man guard: light skin tone"},{"codepoint":"1f482 1f3fc 200d 2642 fe0f","name":"man guard: medium-light skin tone"},{"codepoint":"1f482 1f3fd 200d 2642 fe0f","name":"man guard: medium skin tone"},{"codepoint":"1f482 1f3fe 200d 2642 fe0f","name":"man guard: medium-dark skin tone"},{"codepoint":"1f482 1f3ff 200d 2642 fe0f","name":"man guard: dark skin tone"},{"codepoint":"1f482 200d 2640 fe0f","name":"woman guard"},{"codepoint":"1f482 1f3fb 200d 2640 fe0f","name":"woman guard: light skin tone"},{"codepoint":"1f482 1f3fc 200d 2640 fe0f","name":"woman guard: medium-light skin tone"},{"codepoint":"1f482 1f3fd 200d 2640 fe0f","name":"woman guard: medium skin tone"},{"codepoint":"1f482 1f3fe 200d 2640 fe0f","name":"woman guard: medium-dark skin tone"},{"codepoint":"1f482 1f3ff 200d 2640 fe0f","name":"woman guard: dark skin tone"},{"codepoint":"1f977","name":"ninja"},{"codepoint":"1f977 1f3fb","name":"ninja: light skin tone"},{"codepoint":"1f977 1f3fc","name":"ninja: medium-light skin tone"},{"codepoint":"1f977 1f3fd","name":"ninja: medium skin tone"},{"codepoint":"1f977 1f3fe","name":"ninja: medium-dark skin tone"},{"codepoint":"1f977 1f3ff","name":"ninja: dark skin tone"},{"codepoint":"1f477","name":"construction worker"},{"codepoint":"1f477 1f3fb","name":"construction worker: light skin tone"},{"codepoint":"1f477 1f3fc","name":"construction worker: medium-light skin tone"},{"codepoint":"1f477 1f3fd","name":"construction worker: medium skin tone"},{"codepoint":"1f477 1f3fe","name":"construction worker: medium-dark skin tone"},{"codepoint":"1f477 1f3ff","name":"construction worker: dark skin tone"},{"codepoint":"1f477 200d 2642 fe0f","name":"man construction worker"},{"codepoint":"1f477 1f3fb 200d 2642 fe0f","name":"man construction worker: light skin tone"},{"codepoint":"1f477 1f3fc 200d 2642 fe0f","name":"man construction worker: medium-light skin tone"},{"codepoint":"1f477 1f3fd 200d 2642 fe0f","name":"man construction worker: medium skin tone"},{"codepoint":"1f477 1f3fe 200d 2642 fe0f","name":"man construction worker: medium-dark skin tone"},{"codepoint":"1f477 1f3ff 200d 2642 fe0f","name":"man construction worker: dark skin tone"},{"codepoint":"1f477 200d 2640 fe0f","name":"woman construction worker"},{"codepoint":"1f477 1f3fb 200d 2640 fe0f","name":"woman construction worker: light skin tone"},{"codepoint":"1f477 1f3fc 200d 2640 fe0f","name":"woman construction worker: medium-light skin tone"},{"codepoint":"1f477 1f3fd 200d 2640 fe0f","name":"woman construction worker: medium skin tone"},{"codepoint":"1f477 1f3fe 200d 2640 fe0f","name":"woman construction worker: medium-dark skin tone"},{"codepoint":"1f477 1f3ff 200d 2640 fe0f","name":"woman construction worker: dark skin tone"},{"codepoint":"1fac5","name":"person with crown"},{"codepoint":"1fac5 1f3fb","name":"person with crown: light skin tone"},{"codepoint":"1fac5 1f3fc","name":"person with crown: medium-light skin tone"},{"codepoint":"1fac5 1f3fd","name":"person with crown: medium skin tone"},{"codepoint":"1fac5 1f3fe","name":"person with crown: medium-dark skin tone"},{"codepoint":"1fac5 1f3ff","name":"person with crown: dark skin tone"},{"codepoint":"1f934","name":"prince"},{"codepoint":"1f934 1f3fb","name":"prince: light skin tone"},{"codepoint":"1f934 1f3fc","name":"prince: medium-light skin tone"},{"codepoint":"1f934 1f3fd","name":"prince: medium skin tone"},{"codepoint":"1f934 1f3fe","name":"prince: medium-dark skin tone"},{"codepoint":"1f934 1f3ff","name":"prince: dark skin tone"},{"codepoint":"1f478","name":"princess"},{"codepoint":"1f478 1f3fb","name":"princess: light skin tone"},{"codepoint":"1f478 1f3fc","name":"princess: medium-light skin tone"},{"codepoint":"1f478 1f3fd","name":"princess: medium skin tone"},{"codepoint":"1f478 1f3fe","name":"princess: medium-dark skin tone"},{"codepoint":"1f478 1f3ff","name":"princess: dark skin tone"},{"codepoint":"1f473","name":"person wearing turban"},{"codepoint":"1f473 1f3fb","name":"person wearing turban: light skin tone"},{"codepoint":"1f473 1f3fc","name":"person wearing turban: medium-light skin tone"},{"codepoint":"1f473 1f3fd","name":"person wearing turban: medium skin tone"},{"codepoint":"1f473 1f3fe","name":"person wearing turban: medium-dark skin tone"},{"codepoint":"1f473 1f3ff","name":"person wearing turban: dark skin tone"},{"codepoint":"1f473 200d 2642 fe0f","name":"man wearing turban"},{"codepoint":"1f473 1f3fb 200d 2642 fe0f","name":"man wearing turban: light skin tone"},{"codepoint":"1f473 1f3fc 200d 2642 fe0f","name":"man wearing turban: medium-light skin tone"},{"codepoint":"1f473 1f3fd 200d 2642 fe0f","name":"man wearing turban: medium skin tone"},{"codepoint":"1f473 1f3fe 200d 2642 fe0f","name":"man wearing turban: medium-dark skin tone"},{"codepoint":"1f473 1f3ff 200d 2642 fe0f","name":"man wearing turban: dark skin tone"},{"codepoint":"1f473 200d 2640 fe0f","name":"woman wearing turban"},{"codepoint":"1f473 1f3fb 200d 2640 fe0f","name":"woman wearing turban: light skin tone"},{"codepoint":"1f473 1f3fc 200d 2640 fe0f","name":"woman wearing turban: medium-light skin tone"},{"codepoint":"1f473 1f3fd 200d 2640 fe0f","name":"woman wearing turban: medium skin tone"},{"codepoint":"1f473 1f3fe 200d 2640 fe0f","name":"woman wearing turban: medium-dark skin tone"},{"codepoint":"1f473 1f3ff 200d 2640 fe0f","name":"woman wearing turban: dark skin tone"},{"codepoint":"1f472","name":"person with skullcap"},{"codepoint":"1f472 1f3fb","name":"person with skullcap: light skin tone"},{"codepoint":"1f472 1f3fc","name":"person with skullcap: medium-light skin tone"},{"codepoint":"1f472 1f3fd","name":"person with skullcap: medium skin tone"},{"codepoint":"1f472 1f3fe","name":"person with skullcap: medium-dark skin tone"},{"codepoint":"1f472 1f3ff","name":"person with skullcap: dark skin tone"},{"codepoint":"1f9d5","name":"woman with headscarf"},{"codepoint":"1f9d5 1f3fb","name":"woman with headscarf: light skin tone"},{"codepoint":"1f9d5 1f3fc","name":"woman with headscarf: medium-light skin tone"},{"codepoint":"1f9d5 1f3fd","name":"woman with headscarf: medium skin tone"},{"codepoint":"1f9d5 1f3fe","name":"woman with headscarf: medium-dark skin tone"},{"codepoint":"1f9d5 1f3ff","name":"woman with headscarf: dark skin tone"},{"codepoint":"1f935","name":"person in tuxedo"},{"codepoint":"1f935 1f3fb","name":"person in tuxedo: light skin tone"},{"codepoint":"1f935 1f3fc","name":"person in tuxedo: medium-light skin tone"},{"codepoint":"1f935 1f3fd","name":"person in tuxedo: medium skin tone"},{"codepoint":"1f935 1f3fe","name":"person in tuxedo: medium-dark skin tone"},{"codepoint":"1f935 1f3ff","name":"person in tuxedo: dark skin tone"},{"codepoint":"1f935 200d 2642 fe0f","name":"man in tuxedo"},{"codepoint":"1f935 1f3fb 200d 2642 fe0f","name":"man in tuxedo: light skin tone"},{"codepoint":"1f935 1f3fc 200d 2642 fe0f","name":"man in tuxedo: medium-light skin tone"},{"codepoint":"1f935 1f3fd 200d 2642 fe0f","name":"man in tuxedo: medium skin tone"},{"codepoint":"1f935 1f3fe 200d 2642 fe0f","name":"man in tuxedo: medium-dark skin tone"},{"codepoint":"1f935 1f3ff 200d 2642 fe0f","name":"man in tuxedo: dark skin tone"},{"codepoint":"1f935 200d 2640 fe0f","name":"woman in tuxedo"},{"codepoint":"1f935 1f3fb 200d 2640 fe0f","name":"woman in tuxedo: light skin tone"},{"codepoint":"1f935 1f3fc 200d 2640 fe0f","name":"woman in tuxedo: medium-light skin tone"},{"codepoint":"1f935 1f3fd 200d 2640 fe0f","name":"woman in tuxedo: medium skin tone"},{"codepoint":"1f935 1f3fe 200d 2640 fe0f","name":"woman in tuxedo: medium-dark skin tone"},{"codepoint":"1f935 1f3ff 200d 2640 fe0f","name":"woman in tuxedo: dark skin tone"},{"codepoint":"1f470","name":"person with veil"},{"codepoint":"1f470 1f3fb","name":"person with veil: light skin tone"},{"codepoint":"1f470 1f3fc","name":"person with veil: medium-light skin tone"},{"codepoint":"1f470 1f3fd","name":"person with veil: medium skin tone"},{"codepoint":"1f470 1f3fe","name":"person with veil: medium-dark skin tone"},{"codepoint":"1f470 1f3ff","name":"person with veil: dark skin tone"},{"codepoint":"1f470 200d 2642 fe0f","name":"man with veil"},{"codepoint":"1f470 1f3fb 200d 2642 fe0f","name":"man with veil: light skin tone"},{"codepoint":"1f470 1f3fc 200d 2642 fe0f","name":"man with veil: medium-light skin tone"},{"codepoint":"1f470 1f3fd 200d 2642 fe0f","name":"man with veil: medium skin tone"},{"codepoint":"1f470 1f3fe 200d 2642 fe0f","name":"man with veil: medium-dark skin tone"},{"codepoint":"1f470 1f3ff 200d 2642 fe0f","name":"man with veil: dark skin tone"},{"codepoint":"1f470 200d 2640 fe0f","name":"woman with veil"},{"codepoint":"1f470 1f3fb 200d 2640 fe0f","name":"woman with veil: light skin tone"},{"codepoint":"1f470 1f3fc 200d 2640 fe0f","name":"woman with veil: medium-light skin tone"},{"codepoint":"1f470 1f3fd 200d 2640 fe0f","name":"woman with veil: medium skin tone"},{"codepoint":"1f470 1f3fe 200d 2640 fe0f","name":"woman with veil: medium-dark skin tone"},{"codepoint":"1f470 1f3ff 200d 2640 fe0f","name":"woman with veil: dark skin tone"},{"codepoint":"1f930","name":"pregnant woman"},{"codepoint":"1f930 1f3fb","name":"pregnant woman: light skin tone"},{"codepoint":"1f930 1f3fc","name":"pregnant woman: medium-light skin tone"},{"codepoint":"1f930 1f3fd","name":"pregnant woman: medium skin tone"},{"codepoint":"1f930 1f3fe","name":"pregnant woman: medium-dark skin tone"},{"codepoint":"1f930 1f3ff","name":"pregnant woman: dark skin tone"},{"codepoint":"1fac3","name":"pregnant man"},{"codepoint":"1fac3 1f3fb","name":"pregnant man: light skin tone"},{"codepoint":"1fac3 1f3fc","name":"pregnant man: medium-light skin tone"},{"codepoint":"1fac3 1f3fd","name":"pregnant man: medium skin tone"},{"codepoint":"1fac3 1f3fe","name":"pregnant man: medium-dark skin tone"},{"codepoint":"1fac3 1f3ff","name":"pregnant man: dark skin tone"},{"codepoint":"1fac4","name":"pregnant person"},{"codepoint":"1fac4 1f3fb","name":"pregnant person: light skin tone"},{"codepoint":"1fac4 1f3fc","name":"pregnant person: medium-light skin tone"},{"codepoint":"1fac4 1f3fd","name":"pregnant person: medium skin tone"},{"codepoint":"1fac4 1f3fe","name":"pregnant person: medium-dark skin tone"},{"codepoint":"1fac4 1f3ff","name":"pregnant person: dark skin tone"},{"codepoint":"1f931","name":"breast-feeding"},{"codepoint":"1f931 1f3fb","name":"breast-feeding: light skin tone"},{"codepoint":"1f931 1f3fc","name":"breast-feeding: medium-light skin tone"},{"codepoint":"1f931 1f3fd","name":"breast-feeding: medium skin tone"},{"codepoint":"1f931 1f3fe","name":"breast-feeding: medium-dark skin tone"},{"codepoint":"1f931 1f3ff","name":"breast-feeding: dark skin tone"},{"codepoint":"1f469 200d 1f37c","name":"woman feeding baby"},{"codepoint":"1f469 1f3fb 200d 1f37c","name":"woman feeding baby: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f37c","name":"woman feeding baby: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f37c","name":"woman feeding baby: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f37c","name":"woman feeding baby: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f37c","name":"woman feeding baby: dark skin tone"},{"codepoint":"1f468 200d 1f37c","name":"man feeding baby"},{"codepoint":"1f468 1f3fb 200d 1f37c","name":"man feeding baby: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f37c","name":"man feeding baby: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f37c","name":"man feeding baby: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f37c","name":"man feeding baby: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f37c","name":"man feeding baby: dark skin tone"},{"codepoint":"1f9d1 200d 1f37c","name":"person feeding baby"},{"codepoint":"1f9d1 1f3fb 200d 1f37c","name":"person feeding baby: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f37c","name":"person feeding baby: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f37c","name":"person feeding baby: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f37c","name":"person feeding baby: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f37c","name":"person feeding baby: dark skin tone"},{"codepoint":"1f47c","name":"baby angel"},{"codepoint":"1f47c 1f3fb","name":"baby angel: light skin tone"},{"codepoint":"1f47c 1f3fc","name":"baby angel: medium-light skin tone"},{"codepoint":"1f47c 1f3fd","name":"baby angel: medium skin tone"},{"codepoint":"1f47c 1f3fe","name":"baby angel: medium-dark skin tone"},{"codepoint":"1f47c 1f3ff","name":"baby angel: dark skin tone"},{"codepoint":"1f385","name":"santa claus"},{"codepoint":"1f385 1f3fb","name":"santa claus: light skin tone"},{"codepoint":"1f385 1f3fc","name":"santa claus: medium-light skin tone"},{"codepoint":"1f385 1f3fd","name":"santa claus: medium skin tone"},{"codepoint":"1f385 1f3fe","name":"santa claus: medium-dark skin tone"},{"codepoint":"1f385 1f3ff","name":"santa claus: dark skin tone"},{"codepoint":"1f936","name":"mrs. claus"},{"codepoint":"1f936 1f3fb","name":"mrs. claus: light skin tone"},{"codepoint":"1f936 1f3fc","name":"mrs. claus: medium-light skin tone"},{"codepoint":"1f936 1f3fd","name":"mrs. claus: medium skin tone"},{"codepoint":"1f936 1f3fe","name":"mrs. claus: medium-dark skin tone"},{"codepoint":"1f936 1f3ff","name":"mrs. claus: dark skin tone"},{"codepoint":"1f9d1 200d 1f384","name":"mx claus"},{"codepoint":"1f9d1 1f3fb 200d 1f384","name":"mx claus: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f384","name":"mx claus: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f384","name":"mx claus: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f384","name":"mx claus: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f384","name":"mx claus: dark skin tone"},{"codepoint":"1f9b8","name":"superhero"},{"codepoint":"1f9b8 1f3fb","name":"superhero: light skin tone"},{"codepoint":"1f9b8 1f3fc","name":"superhero: medium-light skin tone"},{"codepoint":"1f9b8 1f3fd","name":"superhero: medium skin tone"},{"codepoint":"1f9b8 1f3fe","name":"superhero: medium-dark skin tone"},{"codepoint":"1f9b8 1f3ff","name":"superhero: dark skin tone"},{"codepoint":"1f9b8 200d 2642 fe0f","name":"man superhero"},{"codepoint":"1f9b8 1f3fb 200d 2642 fe0f","name":"man superhero: light skin tone"},{"codepoint":"1f9b8 1f3fc 200d 2642 fe0f","name":"man superhero: medium-light skin tone"},{"codepoint":"1f9b8 1f3fd 200d 2642 fe0f","name":"man superhero: medium skin tone"},{"codepoint":"1f9b8 1f3fe 200d 2642 fe0f","name":"man superhero: medium-dark skin tone"},{"codepoint":"1f9b8 1f3ff 200d 2642 fe0f","name":"man superhero: dark skin tone"},{"codepoint":"1f9b8 200d 2640 fe0f","name":"woman superhero"},{"codepoint":"1f9b8 1f3fb 200d 2640 fe0f","name":"woman superhero: light skin tone"},{"codepoint":"1f9b8 1f3fc 200d 2640 fe0f","name":"woman superhero: medium-light skin tone"},{"codepoint":"1f9b8 1f3fd 200d 2640 fe0f","name":"woman superhero: medium skin tone"},{"codepoint":"1f9b8 1f3fe 200d 2640 fe0f","name":"woman superhero: medium-dark skin tone"},{"codepoint":"1f9b8 1f3ff 200d 2640 fe0f","name":"woman superhero: dark skin tone"},{"codepoint":"1f9b9","name":"supervillain"},{"codepoint":"1f9b9 1f3fb","name":"supervillain: light skin tone"},{"codepoint":"1f9b9 1f3fc","name":"supervillain: medium-light skin tone"},{"codepoint":"1f9b9 1f3fd","name":"supervillain: medium skin tone"},{"codepoint":"1f9b9 1f3fe","name":"supervillain: medium-dark skin tone"},{"codepoint":"1f9b9 1f3ff","name":"supervillain: dark skin tone"},{"codepoint":"1f9b9 200d 2642 fe0f","name":"man supervillain"},{"codepoint":"1f9b9 1f3fb 200d 2642 fe0f","name":"man supervillain: light skin tone"},{"codepoint":"1f9b9 1f3fc 200d 2642 fe0f","name":"man supervillain: medium-light skin tone"},{"codepoint":"1f9b9 1f3fd 200d 2642 fe0f","name":"man supervillain: medium skin tone"},{"codepoint":"1f9b9 1f3fe 200d 2642 fe0f","name":"man supervillain: medium-dark skin tone"},{"codepoint":"1f9b9 1f3ff 200d 2642 fe0f","name":"man supervillain: dark skin tone"},{"codepoint":"1f9b9 200d 2640 fe0f","name":"woman supervillain"},{"codepoint":"1f9b9 1f3fb 200d 2640 fe0f","name":"woman supervillain: light skin tone"},{"codepoint":"1f9b9 1f3fc 200d 2640 fe0f","name":"woman supervillain: medium-light skin tone"},{"codepoint":"1f9b9 1f3fd 200d 2640 fe0f","name":"woman supervillain: medium skin tone"},{"codepoint":"1f9b9 1f3fe 200d 2640 fe0f","name":"woman supervillain: medium-dark skin tone"},{"codepoint":"1f9b9 1f3ff 200d 2640 fe0f","name":"woman supervillain: dark skin tone"},{"codepoint":"1f9d9","name":"mage"},{"codepoint":"1f9d9 1f3fb","name":"mage: light skin tone"},{"codepoint":"1f9d9 1f3fc","name":"mage: medium-light skin tone"},{"codepoint":"1f9d9 1f3fd","name":"mage: medium skin tone"},{"codepoint":"1f9d9 1f3fe","name":"mage: medium-dark skin tone"},{"codepoint":"1f9d9 1f3ff","name":"mage: dark skin tone"},{"codepoint":"1f9d9 200d 2642 fe0f","name":"man mage"},{"codepoint":"1f9d9 1f3fb 200d 2642 fe0f","name":"man mage: light skin tone"},{"codepoint":"1f9d9 1f3fc 200d 2642 fe0f","name":"man mage: medium-light skin tone"},{"codepoint":"1f9d9 1f3fd 200d 2642 fe0f","name":"man mage: medium skin tone"},{"codepoint":"1f9d9 1f3fe 200d 2642 fe0f","name":"man mage: medium-dark skin tone"},{"codepoint":"1f9d9 1f3ff 200d 2642 fe0f","name":"man mage: dark skin tone"},{"codepoint":"1f9d9 200d 2640 fe0f","name":"woman mage"},{"codepoint":"1f9d9 1f3fb 200d 2640 fe0f","name":"woman mage: light skin tone"},{"codepoint":"1f9d9 1f3fc 200d 2640 fe0f","name":"woman mage: medium-light skin tone"},{"codepoint":"1f9d9 1f3fd 200d 2640 fe0f","name":"woman mage: medium skin tone"},{"codepoint":"1f9d9 1f3fe 200d 2640 fe0f","name":"woman mage: medium-dark skin tone"},{"codepoint":"1f9d9 1f3ff 200d 2640 fe0f","name":"woman mage: dark skin tone"},{"codepoint":"1f9da","name":"fairy"},{"codepoint":"1f9da 1f3fb","name":"fairy: light skin tone"},{"codepoint":"1f9da 1f3fc","name":"fairy: medium-light skin tone"},{"codepoint":"1f9da 1f3fd","name":"fairy: medium skin tone"},{"codepoint":"1f9da 1f3fe","name":"fairy: medium-dark skin tone"},{"codepoint":"1f9da 1f3ff","name":"fairy: dark skin tone"},{"codepoint":"1f9da 200d 2642 fe0f","name":"man fairy"},{"codepoint":"1f9da 1f3fb 200d 2642 fe0f","name":"man fairy: light skin tone"},{"codepoint":"1f9da 1f3fc 200d 2642 fe0f","name":"man fairy: medium-light skin tone"},{"codepoint":"1f9da 1f3fd 200d 2642 fe0f","name":"man fairy: medium skin tone"},{"codepoint":"1f9da 1f3fe 200d 2642 fe0f","name":"man fairy: medium-dark skin tone"},{"codepoint":"1f9da 1f3ff 200d 2642 fe0f","name":"man fairy: dark skin tone"},{"codepoint":"1f9da 200d 2640 fe0f","name":"woman fairy"},{"codepoint":"1f9da 1f3fb 200d 2640 fe0f","name":"woman fairy: light skin tone"},{"codepoint":"1f9da 1f3fc 200d 2640 fe0f","name":"woman fairy: medium-light skin tone"},{"codepoint":"1f9da 1f3fd 200d 2640 fe0f","name":"woman fairy: medium skin tone"},{"codepoint":"1f9da 1f3fe 200d 2640 fe0f","name":"woman fairy: medium-dark skin tone"},{"codepoint":"1f9da 1f3ff 200d 2640 fe0f","name":"woman fairy: dark skin tone"},{"codepoint":"1f9db","name":"vampire"},{"codepoint":"1f9db 1f3fb","name":"vampire: light skin tone"},{"codepoint":"1f9db 1f3fc","name":"vampire: medium-light skin tone"},{"codepoint":"1f9db 1f3fd","name":"vampire: medium skin tone"},{"codepoint":"1f9db 1f3fe","name":"vampire: medium-dark skin tone"},{"codepoint":"1f9db 1f3ff","name":"vampire: dark skin tone"},{"codepoint":"1f9db 200d 2642 fe0f","name":"man vampire"},{"codepoint":"1f9db 1f3fb 200d 2642 fe0f","name":"man vampire: light skin tone"},{"codepoint":"1f9db 1f3fc 200d 2642 fe0f","name":"man vampire: medium-light skin tone"},{"codepoint":"1f9db 1f3fd 200d 2642 fe0f","name":"man vampire: medium skin tone"},{"codepoint":"1f9db 1f3fe 200d 2642 fe0f","name":"man vampire: medium-dark skin tone"},{"codepoint":"1f9db 1f3ff 200d 2642 fe0f","name":"man vampire: dark skin tone"},{"codepoint":"1f9db 200d 2640 fe0f","name":"woman vampire"},{"codepoint":"1f9db 1f3fb 200d 2640 fe0f","name":"woman vampire: light skin tone"},{"codepoint":"1f9db 1f3fc 200d 2640 fe0f","name":"woman vampire: medium-light skin tone"},{"codepoint":"1f9db 1f3fd 200d 2640 fe0f","name":"woman vampire: medium skin tone"},{"codepoint":"1f9db 1f3fe 200d 2640 fe0f","name":"woman vampire: medium-dark skin tone"},{"codepoint":"1f9db 1f3ff 200d 2640 fe0f","name":"woman vampire: dark skin tone"},{"codepoint":"1f9dc","name":"merperson"},{"codepoint":"1f9dc 1f3fb","name":"merperson: light skin tone"},{"codepoint":"1f9dc 1f3fc","name":"merperson: medium-light skin tone"},{"codepoint":"1f9dc 1f3fd","name":"merperson: medium skin tone"},{"codepoint":"1f9dc 1f3fe","name":"merperson: medium-dark skin tone"},{"codepoint":"1f9dc 1f3ff","name":"merperson: dark skin tone"},{"codepoint":"1f9dc 200d 2642 fe0f","name":"merman"},{"codepoint":"1f9dc 1f3fb 200d 2642 fe0f","name":"merman: light skin tone"},{"codepoint":"1f9dc 1f3fc 200d 2642 fe0f","name":"merman: medium-light skin tone"},{"codepoint":"1f9dc 1f3fd 200d 2642 fe0f","name":"merman: medium skin tone"},{"codepoint":"1f9dc 1f3fe 200d 2642 fe0f","name":"merman: medium-dark skin tone"},{"codepoint":"1f9dc 1f3ff 200d 2642 fe0f","name":"merman: dark skin tone"},{"codepoint":"1f9dc 200d 2640 fe0f","name":"mermaid"},{"codepoint":"1f9dc 1f3fb 200d 2640 fe0f","name":"mermaid: light skin tone"},{"codepoint":"1f9dc 1f3fc 200d 2640 fe0f","name":"mermaid: medium-light skin tone"},{"codepoint":"1f9dc 1f3fd 200d 2640 fe0f","name":"mermaid: medium skin tone"},{"codepoint":"1f9dc 1f3fe 200d 2640 fe0f","name":"mermaid: medium-dark skin tone"},{"codepoint":"1f9dc 1f3ff 200d 2640 fe0f","name":"mermaid: dark skin tone"},{"codepoint":"1f9dd","name":"elf"},{"codepoint":"1f9dd 1f3fb","name":"elf: light skin tone"},{"codepoint":"1f9dd 1f3fc","name":"elf: medium-light skin tone"},{"codepoint":"1f9dd 1f3fd","name":"elf: medium skin tone"},{"codepoint":"1f9dd 1f3fe","name":"elf: medium-dark skin tone"},{"codepoint":"1f9dd 1f3ff","name":"elf: dark skin tone"},{"codepoint":"1f9dd 200d 2642 fe0f","name":"man elf"},{"codepoint":"1f9dd 1f3fb 200d 2642 fe0f","name":"man elf: light skin tone"},{"codepoint":"1f9dd 1f3fc 200d 2642 fe0f","name":"man elf: medium-light skin tone"},{"codepoint":"1f9dd 1f3fd 200d 2642 fe0f","name":"man elf: medium skin tone"},{"codepoint":"1f9dd 1f3fe 200d 2642 fe0f","name":"man elf: medium-dark skin tone"},{"codepoint":"1f9dd 1f3ff 200d 2642 fe0f","name":"man elf: dark skin tone"},{"codepoint":"1f9dd 200d 2640 fe0f","name":"woman elf"},{"codepoint":"1f9dd 1f3fb 200d 2640 fe0f","name":"woman elf: light skin tone"},{"codepoint":"1f9dd 1f3fc 200d 2640 fe0f","name":"woman elf: medium-light skin tone"},{"codepoint":"1f9dd 1f3fd 200d 2640 fe0f","name":"woman elf: medium skin tone"},{"codepoint":"1f9dd 1f3fe 200d 2640 fe0f","name":"woman elf: medium-dark skin tone"},{"codepoint":"1f9dd 1f3ff 200d 2640 fe0f","name":"woman elf: dark skin tone"},{"codepoint":"1f9de","name":"genie"},{"codepoint":"1f9de 200d 2642 fe0f","name":"man genie"},{"codepoint":"1f9de 200d 2640 fe0f","name":"woman genie"},{"codepoint":"1f9df","name":"zombie"},{"codepoint":"1f9df 200d 2642 fe0f","name":"man zombie"},{"codepoint":"1f9df 200d 2640 fe0f","name":"woman zombie"},{"codepoint":"1f9cc","name":"troll"},{"codepoint":"1f486","name":"person getting massage"},{"codepoint":"1f486 1f3fb","name":"person getting massage: light skin tone"},{"codepoint":"1f486 1f3fc","name":"person getting massage: medium-light skin tone"},{"codepoint":"1f486 1f3fd","name":"person getting massage: medium skin tone"},{"codepoint":"1f486 1f3fe","name":"person getting massage: medium-dark skin tone"},{"codepoint":"1f486 1f3ff","name":"person getting massage: dark skin tone"},{"codepoint":"1f486 200d 2642 fe0f","name":"man getting massage"},{"codepoint":"1f486 1f3fb 200d 2642 fe0f","name":"man getting massage: light skin tone"},{"codepoint":"1f486 1f3fc 200d 2642 fe0f","name":"man getting massage: medium-light skin tone"},{"codepoint":"1f486 1f3fd 200d 2642 fe0f","name":"man getting massage: medium skin tone"},{"codepoint":"1f486 1f3fe 200d 2642 fe0f","name":"man getting massage: medium-dark skin tone"},{"codepoint":"1f486 1f3ff 200d 2642 fe0f","name":"man getting massage: dark skin tone"},{"codepoint":"1f486 200d 2640 fe0f","name":"woman getting massage"},{"codepoint":"1f486 1f3fb 200d 2640 fe0f","name":"woman getting massage: light skin tone"},{"codepoint":"1f486 1f3fc 200d 2640 fe0f","name":"woman getting massage: medium-light skin tone"},{"codepoint":"1f486 1f3fd 200d 2640 fe0f","name":"woman getting massage: medium skin tone"},{"codepoint":"1f486 1f3fe 200d 2640 fe0f","name":"woman getting massage: medium-dark skin tone"},{"codepoint":"1f486 1f3ff 200d 2640 fe0f","name":"woman getting massage: dark skin tone"},{"codepoint":"1f487","name":"person getting haircut"},{"codepoint":"1f487 1f3fb","name":"person getting haircut: light skin tone"},{"codepoint":"1f487 1f3fc","name":"person getting haircut: medium-light skin tone"},{"codepoint":"1f487 1f3fd","name":"person getting haircut: medium skin tone"},{"codepoint":"1f487 1f3fe","name":"person getting haircut: medium-dark skin tone"},{"codepoint":"1f487 1f3ff","name":"person getting haircut: dark skin tone"},{"codepoint":"1f487 200d 2642 fe0f","name":"man getting haircut"},{"codepoint":"1f487 1f3fb 200d 2642 fe0f","name":"man getting haircut: light skin tone"},{"codepoint":"1f487 1f3fc 200d 2642 fe0f","name":"man getting haircut: medium-light skin tone"},{"codepoint":"1f487 1f3fd 200d 2642 fe0f","name":"man getting haircut: medium skin tone"},{"codepoint":"1f487 1f3fe 200d 2642 fe0f","name":"man getting haircut: medium-dark skin tone"},{"codepoint":"1f487 1f3ff 200d 2642 fe0f","name":"man getting haircut: dark skin tone"},{"codepoint":"1f487 200d 2640 fe0f","name":"woman getting haircut"},{"codepoint":"1f487 1f3fb 200d 2640 fe0f","name":"woman getting haircut: light skin tone"},{"codepoint":"1f487 1f3fc 200d 2640 fe0f","name":"woman getting haircut: medium-light skin tone"},{"codepoint":"1f487 1f3fd 200d 2640 fe0f","name":"woman getting haircut: medium skin tone"},{"codepoint":"1f487 1f3fe 200d 2640 fe0f","name":"woman getting haircut: medium-dark skin tone"},{"codepoint":"1f487 1f3ff 200d 2640 fe0f","name":"woman getting haircut: dark skin tone"},{"codepoint":"1f6b6","name":"person walking"},{"codepoint":"1f6b6 1f3fb","name":"person walking: light skin tone"},{"codepoint":"1f6b6 1f3fc","name":"person walking: medium-light skin tone"},{"codepoint":"1f6b6 1f3fd","name":"person walking: medium skin tone"},{"codepoint":"1f6b6 1f3fe","name":"person walking: medium-dark skin tone"},{"codepoint":"1f6b6 1f3ff","name":"person walking: dark skin tone"},{"codepoint":"1f6b6 200d 2642 fe0f","name":"man walking"},{"codepoint":"1f6b6 1f3fb 200d 2642 fe0f","name":"man walking: light skin tone"},{"codepoint":"1f6b6 1f3fc 200d 2642 fe0f","name":"man walking: medium-light skin tone"},{"codepoint":"1f6b6 1f3fd 200d 2642 fe0f","name":"man walking: medium skin tone"},{"codepoint":"1f6b6 1f3fe 200d 2642 fe0f","name":"man walking: medium-dark skin tone"},{"codepoint":"1f6b6 1f3ff 200d 2642 fe0f","name":"man walking: dark skin tone"},{"codepoint":"1f6b6 200d 2640 fe0f","name":"woman walking"},{"codepoint":"1f6b6 1f3fb 200d 2640 fe0f","name":"woman walking: light skin tone"},{"codepoint":"1f6b6 1f3fc 200d 2640 fe0f","name":"woman walking: medium-light skin tone"},{"codepoint":"1f6b6 1f3fd 200d 2640 fe0f","name":"woman walking: medium skin tone"},{"codepoint":"1f6b6 1f3fe 200d 2640 fe0f","name":"woman walking: medium-dark skin tone"},{"codepoint":"1f6b6 1f3ff 200d 2640 fe0f","name":"woman walking: dark skin tone"},{"codepoint":"1f9cd","name":"person standing"},{"codepoint":"1f9cd 1f3fb","name":"person standing: light skin tone"},{"codepoint":"1f9cd 1f3fc","name":"person standing: medium-light skin tone"},{"codepoint":"1f9cd 1f3fd","name":"person standing: medium skin tone"},{"codepoint":"1f9cd 1f3fe","name":"person standing: medium-dark skin tone"},{"codepoint":"1f9cd 1f3ff","name":"person standing: dark skin tone"},{"codepoint":"1f9cd 200d 2642 fe0f","name":"man standing"},{"codepoint":"1f9cd 1f3fb 200d 2642 fe0f","name":"man standing: light skin tone"},{"codepoint":"1f9cd 1f3fc 200d 2642 fe0f","name":"man standing: medium-light skin tone"},{"codepoint":"1f9cd 1f3fd 200d 2642 fe0f","name":"man standing: medium skin tone"},{"codepoint":"1f9cd 1f3fe 200d 2642 fe0f","name":"man standing: medium-dark skin tone"},{"codepoint":"1f9cd 1f3ff 200d 2642 fe0f","name":"man standing: dark skin tone"},{"codepoint":"1f9cd 200d 2640 fe0f","name":"woman standing"},{"codepoint":"1f9cd 1f3fb 200d 2640 fe0f","name":"woman standing: light skin tone"},{"codepoint":"1f9cd 1f3fc 200d 2640 fe0f","name":"woman standing: medium-light skin tone"},{"codepoint":"1f9cd 1f3fd 200d 2640 fe0f","name":"woman standing: medium skin tone"},{"codepoint":"1f9cd 1f3fe 200d 2640 fe0f","name":"woman standing: medium-dark skin tone"},{"codepoint":"1f9cd 1f3ff 200d 2640 fe0f","name":"woman standing: dark skin tone"},{"codepoint":"1f9ce","name":"person kneeling"},{"codepoint":"1f9ce 1f3fb","name":"person kneeling: light skin tone"},{"codepoint":"1f9ce 1f3fc","name":"person kneeling: medium-light skin tone"},{"codepoint":"1f9ce 1f3fd","name":"person kneeling: medium skin tone"},{"codepoint":"1f9ce 1f3fe","name":"person kneeling: medium-dark skin tone"},{"codepoint":"1f9ce 1f3ff","name":"person kneeling: dark skin tone"},{"codepoint":"1f9ce 200d 2642 fe0f","name":"man kneeling"},{"codepoint":"1f9ce 1f3fb 200d 2642 fe0f","name":"man kneeling: light skin tone"},{"codepoint":"1f9ce 1f3fc 200d 2642 fe0f","name":"man kneeling: medium-light skin tone"},{"codepoint":"1f9ce 1f3fd 200d 2642 fe0f","name":"man kneeling: medium skin tone"},{"codepoint":"1f9ce 1f3fe 200d 2642 fe0f","name":"man kneeling: medium-dark skin tone"},{"codepoint":"1f9ce 1f3ff 200d 2642 fe0f","name":"man kneeling: dark skin tone"},{"codepoint":"1f9ce 200d 2640 fe0f","name":"woman kneeling"},{"codepoint":"1f9ce 1f3fb 200d 2640 fe0f","name":"woman kneeling: light skin tone"},{"codepoint":"1f9ce 1f3fc 200d 2640 fe0f","name":"woman kneeling: medium-light skin tone"},{"codepoint":"1f9ce 1f3fd 200d 2640 fe0f","name":"woman kneeling: medium skin tone"},{"codepoint":"1f9ce 1f3fe 200d 2640 fe0f","name":"woman kneeling: medium-dark skin tone"},{"codepoint":"1f9ce 1f3ff 200d 2640 fe0f","name":"woman kneeling: dark skin tone"},{"codepoint":"1f9d1 200d 1f9af","name":"person with white cane"},{"codepoint":"1f9d1 1f3fb 200d 1f9af","name":"person with white cane: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9af","name":"person with white cane: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9af","name":"person with white cane: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9af","name":"person with white cane: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9af","name":"person with white cane: dark skin tone"},{"codepoint":"1f468 200d 1f9af","name":"man with white cane"},{"codepoint":"1f468 1f3fb 200d 1f9af","name":"man with white cane: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9af","name":"man with white cane: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9af","name":"man with white cane: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9af","name":"man with white cane: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9af","name":"man with white cane: dark skin tone"},{"codepoint":"1f469 200d 1f9af","name":"woman with white cane"},{"codepoint":"1f469 1f3fb 200d 1f9af","name":"woman with white cane: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9af","name":"woman with white cane: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9af","name":"woman with white cane: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9af","name":"woman with white cane: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9af","name":"woman with white cane: dark skin tone"},{"codepoint":"1f9d1 200d 1f9bc","name":"person in motorized wheelchair"},{"codepoint":"1f9d1 1f3fb 200d 1f9bc","name":"person in motorized wheelchair: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9bc","name":"person in motorized wheelchair: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9bc","name":"person in motorized wheelchair: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9bc","name":"person in motorized wheelchair: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9bc","name":"person in motorized wheelchair: dark skin tone"},{"codepoint":"1f468 200d 1f9bc","name":"man in motorized wheelchair"},{"codepoint":"1f468 1f3fb 200d 1f9bc","name":"man in motorized wheelchair: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9bc","name":"man in motorized wheelchair: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9bc","name":"man in motorized wheelchair: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9bc","name":"man in motorized wheelchair: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9bc","name":"man in motorized wheelchair: dark skin tone"},{"codepoint":"1f469 200d 1f9bc","name":"woman in motorized wheelchair"},{"codepoint":"1f469 1f3fb 200d 1f9bc","name":"woman in motorized wheelchair: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9bc","name":"woman in motorized wheelchair: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9bc","name":"woman in motorized wheelchair: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9bc","name":"woman in motorized wheelchair: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9bc","name":"woman in motorized wheelchair: dark skin tone"},{"codepoint":"1f9d1 200d 1f9bd","name":"person in manual wheelchair"},{"codepoint":"1f9d1 1f3fb 200d 1f9bd","name":"person in manual wheelchair: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9bd","name":"person in manual wheelchair: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9bd","name":"person in manual wheelchair: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9bd","name":"person in manual wheelchair: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9bd","name":"person in manual wheelchair: dark skin tone"},{"codepoint":"1f468 200d 1f9bd","name":"man in manual wheelchair"},{"codepoint":"1f468 1f3fb 200d 1f9bd","name":"man in manual wheelchair: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9bd","name":"man in manual wheelchair: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9bd","name":"man in manual wheelchair: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9bd","name":"man in manual wheelchair: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9bd","name":"man in manual wheelchair: dark skin tone"},{"codepoint":"1f469 200d 1f9bd","name":"woman in manual wheelchair"},{"codepoint":"1f469 1f3fb 200d 1f9bd","name":"woman in manual wheelchair: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9bd","name":"woman in manual wheelchair: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9bd","name":"woman in manual wheelchair: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9bd","name":"woman in manual wheelchair: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9bd","name":"woman in manual wheelchair: dark skin tone"},{"codepoint":"1f3c3","name":"person running"},{"codepoint":"1f3c3 1f3fb","name":"person running: light skin tone"},{"codepoint":"1f3c3 1f3fc","name":"person running: medium-light skin tone"},{"codepoint":"1f3c3 1f3fd","name":"person running: medium skin tone"},{"codepoint":"1f3c3 1f3fe","name":"person running: medium-dark skin tone"},{"codepoint":"1f3c3 1f3ff","name":"person running: dark skin tone"},{"codepoint":"1f3c3 200d 2642 fe0f","name":"man running"},{"codepoint":"1f3c3 1f3fb 200d 2642 fe0f","name":"man running: light skin tone"},{"codepoint":"1f3c3 1f3fc 200d 2642 fe0f","name":"man running: medium-light skin tone"},{"codepoint":"1f3c3 1f3fd 200d 2642 fe0f","name":"man running: medium skin tone"},{"codepoint":"1f3c3 1f3fe 200d 2642 fe0f","name":"man running: medium-dark skin tone"},{"codepoint":"1f3c3 1f3ff 200d 2642 fe0f","name":"man running: dark skin tone"},{"codepoint":"1f3c3 200d 2640 fe0f","name":"woman running"},{"codepoint":"1f3c3 1f3fb 200d 2640 fe0f","name":"woman running: light skin tone"},{"codepoint":"1f3c3 1f3fc 200d 2640 fe0f","name":"woman running: medium-light skin tone"},{"codepoint":"1f3c3 1f3fd 200d 2640 fe0f","name":"woman running: medium skin tone"},{"codepoint":"1f3c3 1f3fe 200d 2640 fe0f","name":"woman running: medium-dark skin tone"},{"codepoint":"1f3c3 1f3ff 200d 2640 fe0f","name":"woman running: dark skin tone"},{"codepoint":"1f483","name":"woman dancing"},{"codepoint":"1f483 1f3fb","name":"woman dancing: light skin tone"},{"codepoint":"1f483 1f3fc","name":"woman dancing: medium-light skin tone"},{"codepoint":"1f483 1f3fd","name":"woman dancing: medium skin tone"},{"codepoint":"1f483 1f3fe","name":"woman dancing: medium-dark skin tone"},{"codepoint":"1f483 1f3ff","name":"woman dancing: dark skin tone"},{"codepoint":"1f57a","name":"man dancing"},{"codepoint":"1f57a 1f3fb","name":"man dancing: light skin tone"},{"codepoint":"1f57a 1f3fc","name":"man dancing: medium-light skin tone"},{"codepoint":"1f57a 1f3fd","name":"man dancing: medium skin tone"},{"codepoint":"1f57a 1f3fe","name":"man dancing: medium-dark skin tone"},{"codepoint":"1f57a 1f3ff","name":"man dancing: dark skin tone"},{"codepoint":"1f574 fe0f","name":"person in suit levitating"},{"codepoint":"1f574 1f3fb","name":"person in suit levitating: light skin tone"},{"codepoint":"1f574 1f3fc","name":"person in suit levitating: medium-light skin tone"},{"codepoint":"1f574 1f3fd","name":"person in suit levitating: medium skin tone"},{"codepoint":"1f574 1f3fe","name":"person in suit levitating: medium-dark skin tone"},{"codepoint":"1f574 1f3ff","name":"person in suit levitating: dark skin tone"},{"codepoint":"1f46f","name":"people with bunny ears"},{"codepoint":"1f46f 200d 2642 fe0f","name":"men with bunny ears"},{"codepoint":"1f46f 200d 2640 fe0f","name":"women with bunny ears"},{"codepoint":"1f9d6","name":"person in steamy room"},{"codepoint":"1f9d6 1f3fb","name":"person in steamy room: light skin tone"},{"codepoint":"1f9d6 1f3fc","name":"person in steamy room: medium-light skin tone"},{"codepoint":"1f9d6 1f3fd","name":"person in steamy room: medium skin tone"},{"codepoint":"1f9d6 1f3fe","name":"person in steamy room: medium-dark skin tone"},{"codepoint":"1f9d6 1f3ff","name":"person in steamy room: dark skin tone"},{"codepoint":"1f9d6 200d 2642 fe0f","name":"man in steamy room"},{"codepoint":"1f9d6 1f3fb 200d 2642 fe0f","name":"man in steamy room: light skin tone"},{"codepoint":"1f9d6 1f3fc 200d 2642 fe0f","name":"man in steamy room: medium-light skin tone"},{"codepoint":"1f9d6 1f3fd 200d 2642 fe0f","name":"man in steamy room: medium skin tone"},{"codepoint":"1f9d6 1f3fe 200d 2642 fe0f","name":"man in steamy room: medium-dark skin tone"},{"codepoint":"1f9d6 1f3ff 200d 2642 fe0f","name":"man in steamy room: dark skin tone"},{"codepoint":"1f9d6 200d 2640 fe0f","name":"woman in steamy room"},{"codepoint":"1f9d6 1f3fb 200d 2640 fe0f","name":"woman in steamy room: light skin tone"},{"codepoint":"1f9d6 1f3fc 200d 2640 fe0f","name":"woman in steamy room: medium-light skin tone"},{"codepoint":"1f9d6 1f3fd 200d 2640 fe0f","name":"woman in steamy room: medium skin tone"},{"codepoint":"1f9d6 1f3fe 200d 2640 fe0f","name":"woman in steamy room: medium-dark skin tone"},{"codepoint":"1f9d6 1f3ff 200d 2640 fe0f","name":"woman in steamy room: dark skin tone"},{"codepoint":"1f9d7","name":"person climbing"},{"codepoint":"1f9d7 1f3fb","name":"person climbing: light skin tone"},{"codepoint":"1f9d7 1f3fc","name":"person climbing: medium-light skin tone"},{"codepoint":"1f9d7 1f3fd","name":"person climbing: medium skin tone"},{"codepoint":"1f9d7 1f3fe","name":"person climbing: medium-dark skin tone"},{"codepoint":"1f9d7 1f3ff","name":"person climbing: dark skin tone"},{"codepoint":"1f9d7 200d 2642 fe0f","name":"man climbing"},{"codepoint":"1f9d7 1f3fb 200d 2642 fe0f","name":"man climbing: light skin tone"},{"codepoint":"1f9d7 1f3fc 200d 2642 fe0f","name":"man climbing: medium-light skin tone"},{"codepoint":"1f9d7 1f3fd 200d 2642 fe0f","name":"man climbing: medium skin tone"},{"codepoint":"1f9d7 1f3fe 200d 2642 fe0f","name":"man climbing: medium-dark skin tone"},{"codepoint":"1f9d7 1f3ff 200d 2642 fe0f","name":"man climbing: dark skin tone"},{"codepoint":"1f9d7 200d 2640 fe0f","name":"woman climbing"},{"codepoint":"1f9d7 1f3fb 200d 2640 fe0f","name":"woman climbing: light skin tone"},{"codepoint":"1f9d7 1f3fc 200d 2640 fe0f","name":"woman climbing: medium-light skin tone"},{"codepoint":"1f9d7 1f3fd 200d 2640 fe0f","name":"woman climbing: medium skin tone"},{"codepoint":"1f9d7 1f3fe 200d 2640 fe0f","name":"woman climbing: medium-dark skin tone"},{"codepoint":"1f9d7 1f3ff 200d 2640 fe0f","name":"woman climbing: dark skin tone"},{"codepoint":"1f93a","name":"person fencing"},{"codepoint":"1f3c7","name":"horse racing"},{"codepoint":"1f3c7 1f3fb","name":"horse racing: light skin tone"},{"codepoint":"1f3c7 1f3fc","name":"horse racing: medium-light skin tone"},{"codepoint":"1f3c7 1f3fd","name":"horse racing: medium skin tone"},{"codepoint":"1f3c7 1f3fe","name":"horse racing: medium-dark skin tone"},{"codepoint":"1f3c7 1f3ff","name":"horse racing: dark skin tone"},{"codepoint":"26f7 fe0f","name":"skier"},{"codepoint":"1f3c2","name":"snowboarder"},{"codepoint":"1f3c2 1f3fb","name":"snowboarder: light skin tone"},{"codepoint":"1f3c2 1f3fc","name":"snowboarder: medium-light skin tone"},{"codepoint":"1f3c2 1f3fd","name":"snowboarder: medium skin tone"},{"codepoint":"1f3c2 1f3fe","name":"snowboarder: medium-dark skin tone"},{"codepoint":"1f3c2 1f3ff","name":"snowboarder: dark skin tone"},{"codepoint":"1f3cc fe0f","name":"person golfing"},{"codepoint":"1f3cc 1f3fb","name":"person golfing: light skin tone"},{"codepoint":"1f3cc 1f3fc","name":"person golfing: medium-light skin tone"},{"codepoint":"1f3cc 1f3fd","name":"person golfing: medium skin tone"},{"codepoint":"1f3cc 1f3fe","name":"person golfing: medium-dark skin tone"},{"codepoint":"1f3cc 1f3ff","name":"person golfing: dark skin tone"},{"codepoint":"1f3cc fe0f 200d 2642 fe0f","name":"man golfing"},{"codepoint":"1f3cc 1f3fb 200d 2642 fe0f","name":"man golfing: light skin tone"},{"codepoint":"1f3cc 1f3fc 200d 2642 fe0f","name":"man golfing: medium-light skin tone"},{"codepoint":"1f3cc 1f3fd 200d 2642 fe0f","name":"man golfing: medium skin tone"},{"codepoint":"1f3cc 1f3fe 200d 2642 fe0f","name":"man golfing: medium-dark skin tone"},{"codepoint":"1f3cc 1f3ff 200d 2642 fe0f","name":"man golfing: dark skin tone"},{"codepoint":"1f3cc fe0f 200d 2640 fe0f","name":"woman golfing"},{"codepoint":"1f3cc 1f3fb 200d 2640 fe0f","name":"woman golfing: light skin tone"},{"codepoint":"1f3cc 1f3fc 200d 2640 fe0f","name":"woman golfing: medium-light skin tone"},{"codepoint":"1f3cc 1f3fd 200d 2640 fe0f","name":"woman golfing: medium skin tone"},{"codepoint":"1f3cc 1f3fe 200d 2640 fe0f","name":"woman golfing: medium-dark skin tone"},{"codepoint":"1f3cc 1f3ff 200d 2640 fe0f","name":"woman golfing: dark skin tone"},{"codepoint":"1f3c4","name":"person surfing"},{"codepoint":"1f3c4 1f3fb","name":"person surfing: light skin tone"},{"codepoint":"1f3c4 1f3fc","name":"person surfing: medium-light skin tone"},{"codepoint":"1f3c4 1f3fd","name":"person surfing: medium skin tone"},{"codepoint":"1f3c4 1f3fe","name":"person surfing: medium-dark skin tone"},{"codepoint":"1f3c4 1f3ff","name":"person surfing: dark skin tone"},{"codepoint":"1f3c4 200d 2642 fe0f","name":"man surfing"},{"codepoint":"1f3c4 1f3fb 200d 2642 fe0f","name":"man surfing: light skin tone"},{"codepoint":"1f3c4 1f3fc 200d 2642 fe0f","name":"man surfing: medium-light skin tone"},{"codepoint":"1f3c4 1f3fd 200d 2642 fe0f","name":"man surfing: medium skin tone"},{"codepoint":"1f3c4 1f3fe 200d 2642 fe0f","name":"man surfing: medium-dark skin tone"},{"codepoint":"1f3c4 1f3ff 200d 2642 fe0f","name":"man surfing: dark skin tone"},{"codepoint":"1f3c4 200d 2640 fe0f","name":"woman surfing"},{"codepoint":"1f3c4 1f3fb 200d 2640 fe0f","name":"woman surfing: light skin tone"},{"codepoint":"1f3c4 1f3fc 200d 2640 fe0f","name":"woman surfing: medium-light skin tone"},{"codepoint":"1f3c4 1f3fd 200d 2640 fe0f","name":"woman surfing: medium skin tone"},{"codepoint":"1f3c4 1f3fe 200d 2640 fe0f","name":"woman surfing: medium-dark skin tone"},{"codepoint":"1f3c4 1f3ff 200d 2640 fe0f","name":"woman surfing: dark skin tone"},{"codepoint":"1f6a3","name":"person rowing boat"},{"codepoint":"1f6a3 1f3fb","name":"person rowing boat: light skin tone"},{"codepoint":"1f6a3 1f3fc","name":"person rowing boat: medium-light skin tone"},{"codepoint":"1f6a3 1f3fd","name":"person rowing boat: medium skin tone"},{"codepoint":"1f6a3 1f3fe","name":"person rowing boat: medium-dark skin tone"},{"codepoint":"1f6a3 1f3ff","name":"person rowing boat: dark skin tone"},{"codepoint":"1f6a3 200d 2642 fe0f","name":"man rowing boat"},{"codepoint":"1f6a3 1f3fb 200d 2642 fe0f","name":"man rowing boat: light skin tone"},{"codepoint":"1f6a3 1f3fc 200d 2642 fe0f","name":"man rowing boat: medium-light skin tone"},{"codepoint":"1f6a3 1f3fd 200d 2642 fe0f","name":"man rowing boat: medium skin tone"},{"codepoint":"1f6a3 1f3fe 200d 2642 fe0f","name":"man rowing boat: medium-dark skin tone"},{"codepoint":"1f6a3 1f3ff 200d 2642 fe0f","name":"man rowing boat: dark skin tone"},{"codepoint":"1f6a3 200d 2640 fe0f","name":"woman rowing boat"},{"codepoint":"1f6a3 1f3fb 200d 2640 fe0f","name":"woman rowing boat: light skin tone"},{"codepoint":"1f6a3 1f3fc 200d 2640 fe0f","name":"woman rowing boat: medium-light skin tone"},{"codepoint":"1f6a3 1f3fd 200d 2640 fe0f","name":"woman rowing boat: medium skin tone"},{"codepoint":"1f6a3 1f3fe 200d 2640 fe0f","name":"woman rowing boat: medium-dark skin tone"},{"codepoint":"1f6a3 1f3ff 200d 2640 fe0f","name":"woman rowing boat: dark skin tone"},{"codepoint":"1f3ca","name":"person swimming"},{"codepoint":"1f3ca 1f3fb","name":"person swimming: light skin tone"},{"codepoint":"1f3ca 1f3fc","name":"person swimming: medium-light skin tone"},{"codepoint":"1f3ca 1f3fd","name":"person swimming: medium skin tone"},{"codepoint":"1f3ca 1f3fe","name":"person swimming: medium-dark skin tone"},{"codepoint":"1f3ca 1f3ff","name":"person swimming: dark skin tone"},{"codepoint":"1f3ca 200d 2642 fe0f","name":"man swimming"},{"codepoint":"1f3ca 1f3fb 200d 2642 fe0f","name":"man swimming: light skin tone"},{"codepoint":"1f3ca 1f3fc 200d 2642 fe0f","name":"man swimming: medium-light skin tone"},{"codepoint":"1f3ca 1f3fd 200d 2642 fe0f","name":"man swimming: medium skin tone"},{"codepoint":"1f3ca 1f3fe 200d 2642 fe0f","name":"man swimming: medium-dark skin tone"},{"codepoint":"1f3ca 1f3ff 200d 2642 fe0f","name":"man swimming: dark skin tone"},{"codepoint":"1f3ca 200d 2640 fe0f","name":"woman swimming"},{"codepoint":"1f3ca 1f3fb 200d 2640 fe0f","name":"woman swimming: light skin tone"},{"codepoint":"1f3ca 1f3fc 200d 2640 fe0f","name":"woman swimming: medium-light skin tone"},{"codepoint":"1f3ca 1f3fd 200d 2640 fe0f","name":"woman swimming: medium skin tone"},{"codepoint":"1f3ca 1f3fe 200d 2640 fe0f","name":"woman swimming: medium-dark skin tone"},{"codepoint":"1f3ca 1f3ff 200d 2640 fe0f","name":"woman swimming: dark skin tone"},{"codepoint":"26f9 fe0f","name":"person bouncing ball"},{"codepoint":"26f9 1f3fb","name":"person bouncing ball: light skin tone"},{"codepoint":"26f9 1f3fc","name":"person bouncing ball: medium-light skin tone"},{"codepoint":"26f9 1f3fd","name":"person bouncing ball: medium skin tone"},{"codepoint":"26f9 1f3fe","name":"person bouncing ball: medium-dark skin tone"},{"codepoint":"26f9 1f3ff","name":"person bouncing ball: dark skin tone"},{"codepoint":"26f9 fe0f 200d 2642 fe0f","name":"man bouncing ball"},{"codepoint":"26f9 1f3fb 200d 2642 fe0f","name":"man bouncing ball: light skin tone"},{"codepoint":"26f9 1f3fc 200d 2642 fe0f","name":"man bouncing ball: medium-light skin tone"},{"codepoint":"26f9 1f3fd 200d 2642 fe0f","name":"man bouncing ball: medium skin tone"},{"codepoint":"26f9 1f3fe 200d 2642 fe0f","name":"man bouncing ball: medium-dark skin tone"},{"codepoint":"26f9 1f3ff 200d 2642 fe0f","name":"man bouncing ball: dark skin tone"},{"codepoint":"26f9 fe0f 200d 2640 fe0f","name":"woman bouncing ball"},{"codepoint":"26f9 1f3fb 200d 2640 fe0f","name":"woman bouncing ball: light skin tone"},{"codepoint":"26f9 1f3fc 200d 2640 fe0f","name":"woman bouncing ball: medium-light skin tone"},{"codepoint":"26f9 1f3fd 200d 2640 fe0f","name":"woman bouncing ball: medium skin tone"},{"codepoint":"26f9 1f3fe 200d 2640 fe0f","name":"woman bouncing ball: medium-dark skin tone"},{"codepoint":"26f9 1f3ff 200d 2640 fe0f","name":"woman bouncing ball: dark skin tone"},{"codepoint":"1f3cb fe0f","name":"person lifting weights"},{"codepoint":"1f3cb 1f3fb","name":"person lifting weights: light skin tone"},{"codepoint":"1f3cb 1f3fc","name":"person lifting weights: medium-light skin tone"},{"codepoint":"1f3cb 1f3fd","name":"person lifting weights: medium skin tone"},{"codepoint":"1f3cb 1f3fe","name":"person lifting weights: medium-dark skin tone"},{"codepoint":"1f3cb 1f3ff","name":"person lifting weights: dark skin tone"},{"codepoint":"1f3cb fe0f 200d 2642 fe0f","name":"man lifting weights"},{"codepoint":"1f3cb 1f3fb 200d 2642 fe0f","name":"man lifting weights: light skin tone"},{"codepoint":"1f3cb 1f3fc 200d 2642 fe0f","name":"man lifting weights: medium-light skin tone"},{"codepoint":"1f3cb 1f3fd 200d 2642 fe0f","name":"man lifting weights: medium skin tone"},{"codepoint":"1f3cb 1f3fe 200d 2642 fe0f","name":"man lifting weights: medium-dark skin tone"},{"codepoint":"1f3cb 1f3ff 200d 2642 fe0f","name":"man lifting weights: dark skin tone"},{"codepoint":"1f3cb fe0f 200d 2640 fe0f","name":"woman lifting weights"},{"codepoint":"1f3cb 1f3fb 200d 2640 fe0f","name":"woman lifting weights: light skin tone"},{"codepoint":"1f3cb 1f3fc 200d 2640 fe0f","name":"woman lifting weights: medium-light skin tone"},{"codepoint":"1f3cb 1f3fd 200d 2640 fe0f","name":"woman lifting weights: medium skin tone"},{"codepoint":"1f3cb 1f3fe 200d 2640 fe0f","name":"woman lifting weights: medium-dark skin tone"},{"codepoint":"1f3cb 1f3ff 200d 2640 fe0f","name":"woman lifting weights: dark skin tone"},{"codepoint":"1f6b4","name":"person biking"},{"codepoint":"1f6b4 1f3fb","name":"person biking: light skin tone"},{"codepoint":"1f6b4 1f3fc","name":"person biking: medium-light skin tone"},{"codepoint":"1f6b4 1f3fd","name":"person biking: medium skin tone"},{"codepoint":"1f6b4 1f3fe","name":"person biking: medium-dark skin tone"},{"codepoint":"1f6b4 1f3ff","name":"person biking: dark skin tone"},{"codepoint":"1f6b4 200d 2642 fe0f","name":"man biking"},{"codepoint":"1f6b4 1f3fb 200d 2642 fe0f","name":"man biking: light skin tone"},{"codepoint":"1f6b4 1f3fc 200d 2642 fe0f","name":"man biking: medium-light skin tone"},{"codepoint":"1f6b4 1f3fd 200d 2642 fe0f","name":"man biking: medium skin tone"},{"codepoint":"1f6b4 1f3fe 200d 2642 fe0f","name":"man biking: medium-dark skin tone"},{"codepoint":"1f6b4 1f3ff 200d 2642 fe0f","name":"man biking: dark skin tone"},{"codepoint":"1f6b4 200d 2640 fe0f","name":"woman biking"},{"codepoint":"1f6b4 1f3fb 200d 2640 fe0f","name":"woman biking: light skin tone"},{"codepoint":"1f6b4 1f3fc 200d 2640 fe0f","name":"woman biking: medium-light skin tone"},{"codepoint":"1f6b4 1f3fd 200d 2640 fe0f","name":"woman biking: medium skin tone"},{"codepoint":"1f6b4 1f3fe 200d 2640 fe0f","name":"woman biking: medium-dark skin tone"},{"codepoint":"1f6b4 1f3ff 200d 2640 fe0f","name":"woman biking: dark skin tone"},{"codepoint":"1f6b5","name":"person mountain biking"},{"codepoint":"1f6b5 1f3fb","name":"person mountain biking: light skin tone"},{"codepoint":"1f6b5 1f3fc","name":"person mountain biking: medium-light skin tone"},{"codepoint":"1f6b5 1f3fd","name":"person mountain biking: medium skin tone"},{"codepoint":"1f6b5 1f3fe","name":"person mountain biking: medium-dark skin tone"},{"codepoint":"1f6b5 1f3ff","name":"person mountain biking: dark skin tone"},{"codepoint":"1f6b5 200d 2642 fe0f","name":"man mountain biking"},{"codepoint":"1f6b5 1f3fb 200d 2642 fe0f","name":"man mountain biking: light skin tone"},{"codepoint":"1f6b5 1f3fc 200d 2642 fe0f","name":"man mountain biking: medium-light skin tone"},{"codepoint":"1f6b5 1f3fd 200d 2642 fe0f","name":"man mountain biking: medium skin tone"},{"codepoint":"1f6b5 1f3fe 200d 2642 fe0f","name":"man mountain biking: medium-dark skin tone"},{"codepoint":"1f6b5 1f3ff 200d 2642 fe0f","name":"man mountain biking: dark skin tone"},{"codepoint":"1f6b5 200d 2640 fe0f","name":"woman mountain biking"},{"codepoint":"1f6b5 1f3fb 200d 2640 fe0f","name":"woman mountain biking: light skin tone"},{"codepoint":"1f6b5 1f3fc 200d 2640 fe0f","name":"woman mountain biking: medium-light skin tone"},{"codepoint":"1f6b5 1f3fd 200d 2640 fe0f","name":"woman mountain biking: medium skin tone"},{"codepoint":"1f6b5 1f3fe 200d 2640 fe0f","name":"woman mountain biking: medium-dark skin tone"},{"codepoint":"1f6b5 1f3ff 200d 2640 fe0f","name":"woman mountain biking: dark skin tone"},{"codepoint":"1f938","name":"person cartwheeling"},{"codepoint":"1f938 1f3fb","name":"person cartwheeling: light skin tone"},{"codepoint":"1f938 1f3fc","name":"person cartwheeling: medium-light skin tone"},{"codepoint":"1f938 1f3fd","name":"person cartwheeling: medium skin tone"},{"codepoint":"1f938 1f3fe","name":"person cartwheeling: medium-dark skin tone"},{"codepoint":"1f938 1f3ff","name":"person cartwheeling: dark skin tone"},{"codepoint":"1f938 200d 2642 fe0f","name":"man cartwheeling"},{"codepoint":"1f938 1f3fb 200d 2642 fe0f","name":"man cartwheeling: light skin tone"},{"codepoint":"1f938 1f3fc 200d 2642 fe0f","name":"man cartwheeling: medium-light skin tone"},{"codepoint":"1f938 1f3fd 200d 2642 fe0f","name":"man cartwheeling: medium skin tone"},{"codepoint":"1f938 1f3fe 200d 2642 fe0f","name":"man cartwheeling: medium-dark skin tone"},{"codepoint":"1f938 1f3ff 200d 2642 fe0f","name":"man cartwheeling: dark skin tone"},{"codepoint":"1f938 200d 2640 fe0f","name":"woman cartwheeling"},{"codepoint":"1f938 1f3fb 200d 2640 fe0f","name":"woman cartwheeling: light skin tone"},{"codepoint":"1f938 1f3fc 200d 2640 fe0f","name":"woman cartwheeling: medium-light skin tone"},{"codepoint":"1f938 1f3fd 200d 2640 fe0f","name":"woman cartwheeling: medium skin tone"},{"codepoint":"1f938 1f3fe 200d 2640 fe0f","name":"woman cartwheeling: medium-dark skin tone"},{"codepoint":"1f938 1f3ff 200d 2640 fe0f","name":"woman cartwheeling: dark skin tone"},{"codepoint":"1f93c","name":"people wrestling"},{"codepoint":"1f93c 200d 2642 fe0f","name":"men wrestling"},{"codepoint":"1f93c 200d 2640 fe0f","name":"women wrestling"},{"codepoint":"1f93d","name":"person playing water polo"},{"codepoint":"1f93d 1f3fb","name":"person playing water polo: light skin tone"},{"codepoint":"1f93d 1f3fc","name":"person playing water polo: medium-light skin tone"},{"codepoint":"1f93d 1f3fd","name":"person playing water polo: medium skin tone"},{"codepoint":"1f93d 1f3fe","name":"person playing water polo: medium-dark skin tone"},{"codepoint":"1f93d 1f3ff","name":"person playing water polo: dark skin tone"},{"codepoint":"1f93d 200d 2642 fe0f","name":"man playing water polo"},{"codepoint":"1f93d 1f3fb 200d 2642 fe0f","name":"man playing water polo: light skin tone"},{"codepoint":"1f93d 1f3fc 200d 2642 fe0f","name":"man playing water polo: medium-light skin tone"},{"codepoint":"1f93d 1f3fd 200d 2642 fe0f","name":"man playing water polo: medium skin tone"},{"codepoint":"1f93d 1f3fe 200d 2642 fe0f","name":"man playing water polo: medium-dark skin tone"},{"codepoint":"1f93d 1f3ff 200d 2642 fe0f","name":"man playing water polo: dark skin tone"},{"codepoint":"1f93d 200d 2640 fe0f","name":"woman playing water polo"},{"codepoint":"1f93d 1f3fb 200d 2640 fe0f","name":"woman playing water polo: light skin tone"},{"codepoint":"1f93d 1f3fc 200d 2640 fe0f","name":"woman playing water polo: medium-light skin tone"},{"codepoint":"1f93d 1f3fd 200d 2640 fe0f","name":"woman playing water polo: medium skin tone"},{"codepoint":"1f93d 1f3fe 200d 2640 fe0f","name":"woman playing water polo: medium-dark skin tone"},{"codepoint":"1f93d 1f3ff 200d 2640 fe0f","name":"woman playing water polo: dark skin tone"},{"codepoint":"1f93e","name":"person playing handball"},{"codepoint":"1f93e 1f3fb","name":"person playing handball: light skin tone"},{"codepoint":"1f93e 1f3fc","name":"person playing handball: medium-light skin tone"},{"codepoint":"1f93e 1f3fd","name":"person playing handball: medium skin tone"},{"codepoint":"1f93e 1f3fe","name":"person playing handball: medium-dark skin tone"},{"codepoint":"1f93e 1f3ff","name":"person playing handball: dark skin tone"},{"codepoint":"1f93e 200d 2642 fe0f","name":"man playing handball"},{"codepoint":"1f93e 1f3fb 200d 2642 fe0f","name":"man playing handball: light skin tone"},{"codepoint":"1f93e 1f3fc 200d 2642 fe0f","name":"man playing handball: medium-light skin tone"},{"codepoint":"1f93e 1f3fd 200d 2642 fe0f","name":"man playing handball: medium skin tone"},{"codepoint":"1f93e 1f3fe 200d 2642 fe0f","name":"man playing handball: medium-dark skin tone"},{"codepoint":"1f93e 1f3ff 200d 2642 fe0f","name":"man playing handball: dark skin tone"},{"codepoint":"1f93e 200d 2640 fe0f","name":"woman playing handball"},{"codepoint":"1f93e 1f3fb 200d 2640 fe0f","name":"woman playing handball: light skin tone"},{"codepoint":"1f93e 1f3fc 200d 2640 fe0f","name":"woman playing handball: medium-light skin tone"},{"codepoint":"1f93e 1f3fd 200d 2640 fe0f","name":"woman playing handball: medium skin tone"},{"codepoint":"1f93e 1f3fe 200d 2640 fe0f","name":"woman playing handball: medium-dark skin tone"},{"codepoint":"1f93e 1f3ff 200d 2640 fe0f","name":"woman playing handball: dark skin tone"},{"codepoint":"1f939","name":"person juggling"},{"codepoint":"1f939 1f3fb","name":"person juggling: light skin tone"},{"codepoint":"1f939 1f3fc","name":"person juggling: medium-light skin tone"},{"codepoint":"1f939 1f3fd","name":"person juggling: medium skin tone"},{"codepoint":"1f939 1f3fe","name":"person juggling: medium-dark skin tone"},{"codepoint":"1f939 1f3ff","name":"person juggling: dark skin tone"},{"codepoint":"1f939 200d 2642 fe0f","name":"man juggling"},{"codepoint":"1f939 1f3fb 200d 2642 fe0f","name":"man juggling: light skin tone"},{"codepoint":"1f939 1f3fc 200d 2642 fe0f","name":"man juggling: medium-light skin tone"},{"codepoint":"1f939 1f3fd 200d 2642 fe0f","name":"man juggling: medium skin tone"},{"codepoint":"1f939 1f3fe 200d 2642 fe0f","name":"man juggling: medium-dark skin tone"},{"codepoint":"1f939 1f3ff 200d 2642 fe0f","name":"man juggling: dark skin tone"},{"codepoint":"1f939 200d 2640 fe0f","name":"woman juggling"},{"codepoint":"1f939 1f3fb 200d 2640 fe0f","name":"woman juggling: light skin tone"},{"codepoint":"1f939 1f3fc 200d 2640 fe0f","name":"woman juggling: medium-light skin tone"},{"codepoint":"1f939 1f3fd 200d 2640 fe0f","name":"woman juggling: medium skin tone"},{"codepoint":"1f939 1f3fe 200d 2640 fe0f","name":"woman juggling: medium-dark skin tone"},{"codepoint":"1f939 1f3ff 200d 2640 fe0f","name":"woman juggling: dark skin tone"},{"codepoint":"1f9d8","name":"person in lotus position"},{"codepoint":"1f9d8 1f3fb","name":"person in lotus position: light skin tone"},{"codepoint":"1f9d8 1f3fc","name":"person in lotus position: medium-light skin tone"},{"codepoint":"1f9d8 1f3fd","name":"person in lotus position: medium skin tone"},{"codepoint":"1f9d8 1f3fe","name":"person in lotus position: medium-dark skin tone"},{"codepoint":"1f9d8 1f3ff","name":"person in lotus position: dark skin tone"},{"codepoint":"1f9d8 200d 2642 fe0f","name":"man in lotus position"},{"codepoint":"1f9d8 1f3fb 200d 2642 fe0f","name":"man in lotus position: light skin tone"},{"codepoint":"1f9d8 1f3fc 200d 2642 fe0f","name":"man in lotus position: medium-light skin tone"},{"codepoint":"1f9d8 1f3fd 200d 2642 fe0f","name":"man in lotus position: medium skin tone"},{"codepoint":"1f9d8 1f3fe 200d 2642 fe0f","name":"man in lotus position: medium-dark skin tone"},{"codepoint":"1f9d8 1f3ff 200d 2642 fe0f","name":"man in lotus position: dark skin tone"},{"codepoint":"1f9d8 200d 2640 fe0f","name":"woman in lotus position"},{"codepoint":"1f9d8 1f3fb 200d 2640 fe0f","name":"woman in lotus position: light skin tone"},{"codepoint":"1f9d8 1f3fc 200d 2640 fe0f","name":"woman in lotus position: medium-light skin tone"},{"codepoint":"1f9d8 1f3fd 200d 2640 fe0f","name":"woman in lotus position: medium skin tone"},{"codepoint":"1f9d8 1f3fe 200d 2640 fe0f","name":"woman in lotus position: medium-dark skin tone"},{"codepoint":"1f9d8 1f3ff 200d 2640 fe0f","name":"woman in lotus position: dark skin tone"},{"codepoint":"1f6c0","name":"person taking bath"},{"codepoint":"1f6c0 1f3fb","name":"person taking bath: light skin tone"},{"codepoint":"1f6c0 1f3fc","name":"person taking bath: medium-light skin tone"},{"codepoint":"1f6c0 1f3fd","name":"person taking bath: medium skin tone"},{"codepoint":"1f6c0 1f3fe","name":"person taking bath: medium-dark skin tone"},{"codepoint":"1f6c0 1f3ff","name":"person taking bath: dark skin tone"},{"codepoint":"1f6cc","name":"person in bed"},{"codepoint":"1f6cc 1f3fb","name":"person in bed: light skin tone"},{"codepoint":"1f6cc 1f3fc","name":"person in bed: medium-light skin tone"},{"codepoint":"1f6cc 1f3fd","name":"person in bed: medium skin tone"},{"codepoint":"1f6cc 1f3fe","name":"person in bed: medium-dark skin tone"},{"codepoint":"1f6cc 1f3ff","name":"person in bed: dark skin tone"},{"codepoint":"1f9d1 200d 1f91d 200d 1f9d1","name":"people holding hands"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: dark skin tone"},{"codepoint":"1f46d","name":"women holding hands"},{"codepoint":"1f46d 1f3fb","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f46d 1f3fc","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: medium skin tone"},{"codepoint":"1f46d 1f3fd","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f46d 1f3fe","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: dark skin tone"},{"codepoint":"1f46d 1f3ff","name":"women holding hands: dark skin tone"},{"codepoint":"1f46b","name":"woman and man holding hands"},{"codepoint":"1f46b 1f3fb","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f46b 1f3fc","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f46b 1f3fd","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f46b 1f3fe","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f46b 1f3ff","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f46c","name":"men holding hands"},{"codepoint":"1f46c 1f3fb","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f46c 1f3fc","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: medium skin tone"},{"codepoint":"1f46c 1f3fd","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f46c 1f3fe","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: dark skin tone"},{"codepoint":"1f46c 1f3ff","name":"men holding hands: dark skin tone"},{"codepoint":"1f48f","name":"kiss"},{"codepoint":"1f48f 1f3fb","name":"kiss: light skin tone"},{"codepoint":"1f48f 1f3fc","name":"kiss: medium-light skin tone"},{"codepoint":"1f48f 1f3fd","name":"kiss: medium skin tone"},{"codepoint":"1f48f 1f3fe","name":"kiss: medium-dark skin tone"},{"codepoint":"1f48f 1f3ff","name":"kiss: dark skin tone"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f48b 200d 1f468","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f468 200d 2764 fe0f 200d 1f48b 200d 1f468","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f48b 200d 1f469","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f491","name":"couple with heart"},{"codepoint":"1f491 1f3fb","name":"couple with heart: light skin tone"},{"codepoint":"1f491 1f3fc","name":"couple with heart: medium-light skin tone"},{"codepoint":"1f491 1f3fd","name":"couple with heart: medium skin tone"},{"codepoint":"1f491 1f3fe","name":"couple with heart: medium-dark skin tone"},{"codepoint":"1f491 1f3ff","name":"couple with heart: dark skin tone"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f468","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f468 200d 2764 fe0f 200d 1f468","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f469","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f46a","name":"family"},{"codepoint":"1f468 200d 1f469 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f467 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f466 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f467 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f467 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f466 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f467 200d 1f467","name":"family: man"},{"codepoint":"1f469 200d 1f469 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f467","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f467 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f466 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f467 200d 1f467","name":"family: woman"},{"codepoint":"1f468 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f466 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f467 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f467 200d 1f467","name":"family: man"},{"codepoint":"1f469 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f466 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f467","name":"family: woman"},{"codepoint":"1f469 200d 1f467 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f467 200d 1f467","name":"family: woman"},{"codepoint":"1f5e3 fe0f","name":"speaking head"},{"codepoint":"1f464","name":"bust in silhouette"},{"codepoint":"1f465","name":"busts in silhouette"},{"codepoint":"1fac2","name":"people hugging"},{"codepoint":"1f463","name":"footprints"},{"codepoint":"1f3fb","name":"light skin tone"},{"codepoint":"1f3fc","name":"medium-light skin tone"},{"codepoint":"1f3fd","name":"medium skin tone"},{"codepoint":"1f3fe","name":"medium-dark skin tone"},{"codepoint":"1f3ff","name":"dark skin tone"},{"codepoint":"1f9b0","name":"red hair"},{"codepoint":"1f9b1","name":"curly hair"},{"codepoint":"1f9b3","name":"white hair"},{"codepoint":"1f9b2","name":"bald"},{"codepoint":"1f435","name":"monkey face"},{"codepoint":"1f412","name":"monkey"},{"codepoint":"1f98d","name":"gorilla"},{"codepoint":"1f9a7","name":"orangutan"},{"codepoint":"1f436","name":"dog face"},{"codepoint":"1f415","name":"dog"},{"codepoint":"1f9ae","name":"guide dog"},{"codepoint":"1f415 200d 1f9ba","name":"service dog"},{"codepoint":"1f429","name":"poodle"},{"codepoint":"1f43a","name":"wolf"},{"codepoint":"1f98a","name":"fox"},{"codepoint":"1f99d","name":"raccoon"},{"codepoint":"1f431","name":"cat face"},{"codepoint":"1f408","name":"cat"},{"codepoint":"1f408 200d 2b1b","name":"black cat"},{"codepoint":"1f981","name":"lion"},{"codepoint":"1f42f","name":"tiger face"},{"codepoint":"1f405","name":"tiger"},{"codepoint":"1f406","name":"leopard"},{"codepoint":"1f434","name":"horse face"},{"codepoint":"1f40e","name":"horse"},{"codepoint":"1f984","name":"unicorn"},{"codepoint":"1f993","name":"zebra"},{"codepoint":"1f98c","name":"deer"},{"codepoint":"1f9ac","name":"bison"},{"codepoint":"1f42e","name":"cow face"},{"codepoint":"1f402","name":"ox"},{"codepoint":"1f403","name":"water buffalo"},{"codepoint":"1f404","name":"cow"},{"codepoint":"1f437","name":"pig face"},{"codepoint":"1f416","name":"pig"},{"codepoint":"1f417","name":"boar"},{"codepoint":"1f43d","name":"pig nose"},{"codepoint":"1f40f","name":"ram"},{"codepoint":"1f411","name":"ewe"},{"codepoint":"1f410","name":"goat"},{"codepoint":"1f42a","name":"camel"},{"codepoint":"1f42b","name":"two-hump camel"},{"codepoint":"1f999","name":"llama"},{"codepoint":"1f992","name":"giraffe"},{"codepoint":"1f418","name":"elephant"},{"codepoint":"1f9a3","name":"mammoth"},{"codepoint":"1f98f","name":"rhinoceros"},{"codepoint":"1f99b","name":"hippopotamus"},{"codepoint":"1f42d","name":"mouse face"},{"codepoint":"1f401","name":"mouse"},{"codepoint":"1f400","name":"rat"},{"codepoint":"1f439","name":"hamster"},{"codepoint":"1f430","name":"rabbit face"},{"codepoint":"1f407","name":"rabbit"},{"codepoint":"1f43f fe0f","name":"chipmunk"},{"codepoint":"1f9ab","name":"beaver"},{"codepoint":"1f994","name":"hedgehog"},{"codepoint":"1f987","name":"bat"},{"codepoint":"1f43b","name":"bear"},{"codepoint":"1f43b 200d 2744 fe0f","name":"polar bear"},{"codepoint":"1f428","name":"koala"},{"codepoint":"1f43c","name":"panda"},{"codepoint":"1f9a5","name":"sloth"},{"codepoint":"1f9a6","name":"otter"},{"codepoint":"1f9a8","name":"skunk"},{"codepoint":"1f998","name":"kangaroo"},{"codepoint":"1f9a1","name":"badger"},{"codepoint":"1f43e","name":"paw prints"},{"codepoint":"1f983","name":"turkey"},{"codepoint":"1f414","name":"chicken"},{"codepoint":"1f413","name":"rooster"},{"codepoint":"1f423","name":"hatching chick"},{"codepoint":"1f424","name":"baby chick"},{"codepoint":"1f425","name":"front-facing baby chick"},{"codepoint":"1f426","name":"bird"},{"codepoint":"1f427","name":"penguin"},{"codepoint":"1f54a fe0f","name":"dove"},{"codepoint":"1f985","name":"eagle"},{"codepoint":"1f986","name":"duck"},{"codepoint":"1f9a2","name":"swan"},{"codepoint":"1f989","name":"owl"},{"codepoint":"1f9a4","name":"dodo"},{"codepoint":"1fab6","name":"feather"},{"codepoint":"1f9a9","name":"flamingo"},{"codepoint":"1f99a","name":"peacock"},{"codepoint":"1f99c","name":"parrot"},{"codepoint":"1f438","name":"frog"},{"codepoint":"1f40a","name":"crocodile"},{"codepoint":"1f422","name":"turtle"},{"codepoint":"1f98e","name":"lizard"},{"codepoint":"1f40d","name":"snake"},{"codepoint":"1f432","name":"dragon face"},{"codepoint":"1f409","name":"dragon"},{"codepoint":"1f995","name":"sauropod"},{"codepoint":"1f996","name":"t-rex"},{"codepoint":"1f433","name":"spouting whale"},{"codepoint":"1f40b","name":"whale"},{"codepoint":"1f42c","name":"dolphin"},{"codepoint":"1f9ad","name":"seal"},{"codepoint":"1f41f","name":"fish"},{"codepoint":"1f420","name":"tropical fish"},{"codepoint":"1f421","name":"blowfish"},{"codepoint":"1f988","name":"shark"},{"codepoint":"1f419","name":"octopus"},{"codepoint":"1f41a","name":"spiral shell"},{"codepoint":"1fab8","name":"coral"},{"codepoint":"1f40c","name":"snail"},{"codepoint":"1f98b","name":"butterfly"},{"codepoint":"1f41b","name":"bug"},{"codepoint":"1f41c","name":"ant"},{"codepoint":"1f41d","name":"honeybee"},{"codepoint":"1fab2","name":"beetle"},{"codepoint":"1f41e","name":"lady beetle"},{"codepoint":"1f997","name":"cricket"},{"codepoint":"1fab3","name":"cockroach"},{"codepoint":"1f577 fe0f","name":"spider"},{"codepoint":"1f578 fe0f","name":"spider web"},{"codepoint":"1f982","name":"scorpion"},{"codepoint":"1f99f","name":"mosquito"},{"codepoint":"1fab0","name":"fly"},{"codepoint":"1fab1","name":"worm"},{"codepoint":"1f9a0","name":"microbe"},{"codepoint":"1f490","name":"bouquet"},{"codepoint":"1f338","name":"cherry blossom"},{"codepoint":"1f4ae","name":"white flower"},{"codepoint":"1fab7","name":"lotus"},{"codepoint":"1f3f5 fe0f","name":"rosette"},{"codepoint":"1f339","name":"rose"},{"codepoint":"1f940","name":"wilted flower"},{"codepoint":"1f33a","name":"hibiscus"},{"codepoint":"1f33b","name":"sunflower"},{"codepoint":"1f33c","name":"blossom"},{"codepoint":"1f337","name":"tulip"},{"codepoint":"1f331","name":"seedling"},{"codepoint":"1fab4","name":"potted plant"},{"codepoint":"1f332","name":"evergreen tree"},{"codepoint":"1f333","name":"deciduous tree"},{"codepoint":"1f334","name":"palm tree"},{"codepoint":"1f335","name":"cactus"},{"codepoint":"1f33e","name":"sheaf of rice"},{"codepoint":"1f33f","name":"herb"},{"codepoint":"2618 fe0f","name":"shamrock"},{"codepoint":"1f340","name":"four leaf clover"},{"codepoint":"1f341","name":"maple leaf"},{"codepoint":"1f342","name":"fallen leaf"},{"codepoint":"1f343","name":"leaf fluttering in wind"},{"codepoint":"1fab9","name":"empty nest"},{"codepoint":"1faba","name":"nest with eggs"},{"codepoint":"1f347","name":"grapes"},{"codepoint":"1f348","name":"melon"},{"codepoint":"1f349","name":"watermelon"},{"codepoint":"1f34a","name":"tangerine"},{"codepoint":"1f34b","name":"lemon"},{"codepoint":"1f34c","name":"banana"},{"codepoint":"1f34d","name":"pineapple"},{"codepoint":"1f96d","name":"mango"},{"codepoint":"1f34e","name":"red apple"},{"codepoint":"1f34f","name":"green apple"},{"codepoint":"1f350","name":"pear"},{"codepoint":"1f351","name":"peach"},{"codepoint":"1f352","name":"cherries"},{"codepoint":"1f353","name":"strawberry"},{"codepoint":"1fad0","name":"blueberries"},{"codepoint":"1f95d","name":"kiwi fruit"},{"codepoint":"1f345","name":"tomato"},{"codepoint":"1fad2","name":"olive"},{"codepoint":"1f965","name":"coconut"},{"codepoint":"1f951","name":"avocado"},{"codepoint":"1f346","name":"eggplant"},{"codepoint":"1f954","name":"potato"},{"codepoint":"1f955","name":"carrot"},{"codepoint":"1f33d","name":"ear of corn"},{"codepoint":"1f336 fe0f","name":"hot pepper"},{"codepoint":"1fad1","name":"bell pepper"},{"codepoint":"1f952","name":"cucumber"},{"codepoint":"1f96c","name":"leafy green"},{"codepoint":"1f966","name":"broccoli"},{"codepoint":"1f9c4","name":"garlic"},{"codepoint":"1f9c5","name":"onion"},{"codepoint":"1f344","name":"mushroom"},{"codepoint":"1f95c","name":"peanuts"},{"codepoint":"1fad8","name":"beans"},{"codepoint":"1f330","name":"chestnut"},{"codepoint":"1f35e","name":"bread"},{"codepoint":"1f950","name":"croissant"},{"codepoint":"1f956","name":"baguette bread"},{"codepoint":"1fad3","name":"flatbread"},{"codepoint":"1f968","name":"pretzel"},{"codepoint":"1f96f","name":"bagel"},{"codepoint":"1f95e","name":"pancakes"},{"codepoint":"1f9c7","name":"waffle"},{"codepoint":"1f9c0","name":"cheese wedge"},{"codepoint":"1f356","name":"meat on bone"},{"codepoint":"1f357","name":"poultry leg"},{"codepoint":"1f969","name":"cut of meat"},{"codepoint":"1f953","name":"bacon"},{"codepoint":"1f354","name":"hamburger"},{"codepoint":"1f35f","name":"french fries"},{"codepoint":"1f355","name":"pizza"},{"codepoint":"1f32d","name":"hot dog"},{"codepoint":"1f96a","name":"sandwich"},{"codepoint":"1f32e","name":"taco"},{"codepoint":"1f32f","name":"burrito"},{"codepoint":"1fad4","name":"tamale"},{"codepoint":"1f959","name":"stuffed flatbread"},{"codepoint":"1f9c6","name":"falafel"},{"codepoint":"1f95a","name":"egg"},{"codepoint":"1f373","name":"cooking"},{"codepoint":"1f958","name":"shallow pan of food"},{"codepoint":"1f372","name":"pot of food"},{"codepoint":"1fad5","name":"fondue"},{"codepoint":"1f963","name":"bowl with spoon"},{"codepoint":"1f957","name":"green salad"},{"codepoint":"1f37f","name":"popcorn"},{"codepoint":"1f9c8","name":"butter"},{"codepoint":"1f9c2","name":"salt"},{"codepoint":"1f96b","name":"canned food"},{"codepoint":"1f371","name":"bento box"},{"codepoint":"1f358","name":"rice cracker"},{"codepoint":"1f359","name":"rice ball"},{"codepoint":"1f35a","name":"cooked rice"},{"codepoint":"1f35b","name":"curry rice"},{"codepoint":"1f35c","name":"steaming bowl"},{"codepoint":"1f35d","name":"spaghetti"},{"codepoint":"1f360","name":"roasted sweet potato"},{"codepoint":"1f362","name":"oden"},{"codepoint":"1f363","name":"sushi"},{"codepoint":"1f364","name":"fried shrimp"},{"codepoint":"1f365","name":"fish cake with swirl"},{"codepoint":"1f96e","name":"moon cake"},{"codepoint":"1f361","name":"dango"},{"codepoint":"1f95f","name":"dumpling"},{"codepoint":"1f960","name":"fortune cookie"},{"codepoint":"1f961","name":"takeout box"},{"codepoint":"1f980","name":"crab"},{"codepoint":"1f99e","name":"lobster"},{"codepoint":"1f990","name":"shrimp"},{"codepoint":"1f991","name":"squid"},{"codepoint":"1f9aa","name":"oyster"},{"codepoint":"1f366","name":"soft ice cream"},{"codepoint":"1f367","name":"shaved ice"},{"codepoint":"1f368","name":"ice cream"},{"codepoint":"1f369","name":"doughnut"},{"codepoint":"1f36a","name":"cookie"},{"codepoint":"1f382","name":"birthday cake"},{"codepoint":"1f370","name":"shortcake"},{"codepoint":"1f9c1","name":"cupcake"},{"codepoint":"1f967","name":"pie"},{"codepoint":"1f36b","name":"chocolate bar"},{"codepoint":"1f36c","name":"candy"},{"codepoint":"1f36d","name":"lollipop"},{"codepoint":"1f36e","name":"custard"},{"codepoint":"1f36f","name":"honey pot"},{"codepoint":"1f37c","name":"baby bottle"},{"codepoint":"1f95b","name":"glass of milk"},{"codepoint":"2615","name":"hot beverage"},{"codepoint":"1fad6","name":"teapot"},{"codepoint":"1f375","name":"teacup without handle"},{"codepoint":"1f376","name":"sake"},{"codepoint":"1f37e","name":"bottle with popping cork"},{"codepoint":"1f377","name":"wine glass"},{"codepoint":"1f378","name":"cocktail glass"},{"codepoint":"1f379","name":"tropical drink"},{"codepoint":"1f37a","name":"beer mug"},{"codepoint":"1f37b","name":"clinking beer mugs"},{"codepoint":"1f942","name":"clinking glasses"},{"codepoint":"1f943","name":"tumbler glass"},{"codepoint":"1fad7","name":"pouring liquid"},{"codepoint":"1f964","name":"cup with straw"},{"codepoint":"1f9cb","name":"bubble tea"},{"codepoint":"1f9c3","name":"beverage box"},{"codepoint":"1f9c9","name":"mate"},{"codepoint":"1f9ca","name":"ice"},{"codepoint":"1f962","name":"chopsticks"},{"codepoint":"1f37d fe0f","name":"fork and knife with plate"},{"codepoint":"1f374","name":"fork and knife"},{"codepoint":"1f944","name":"spoon"},{"codepoint":"1f52a","name":"kitchen knife"},{"codepoint":"1fad9","name":"jar"},{"codepoint":"1f3fa","name":"amphora"},{"codepoint":"1f30d","name":"globe showing europe-africa"},{"codepoint":"1f30e","name":"globe showing americas"},{"codepoint":"1f30f","name":"globe showing asia-australia"},{"codepoint":"1f310","name":"globe with meridians"},{"codepoint":"1f5fa fe0f","name":"world map"},{"codepoint":"1f5fe","name":"map of japan"},{"codepoint":"1f9ed","name":"compass"},{"codepoint":"1f3d4 fe0f","name":"snow-capped mountain"},{"codepoint":"26f0 fe0f","name":"mountain"},{"codepoint":"1f30b","name":"volcano"},{"codepoint":"1f5fb","name":"mount fuji"},{"codepoint":"1f3d5 fe0f","name":"camping"},{"codepoint":"1f3d6 fe0f","name":"beach with umbrella"},{"codepoint":"1f3dc fe0f","name":"desert"},{"codepoint":"1f3dd fe0f","name":"desert island"},{"codepoint":"1f3de fe0f","name":"national park"},{"codepoint":"1f3df fe0f","name":"stadium"},{"codepoint":"1f3db fe0f","name":"classical building"},{"codepoint":"1f3d7 fe0f","name":"building construction"},{"codepoint":"1f9f1","name":"brick"},{"codepoint":"1faa8","name":"rock"},{"codepoint":"1fab5","name":"wood"},{"codepoint":"1f6d6","name":"hut"},{"codepoint":"1f3d8 fe0f","name":"houses"},{"codepoint":"1f3da fe0f","name":"derelict house"},{"codepoint":"1f3e0","name":"house"},{"codepoint":"1f3e1","name":"house with garden"},{"codepoint":"1f3e2","name":"office building"},{"codepoint":"1f3e3","name":"japanese post office"},{"codepoint":"1f3e4","name":"post office"},{"codepoint":"1f3e5","name":"hospital"},{"codepoint":"1f3e6","name":"bank"},{"codepoint":"1f3e8","name":"hotel"},{"codepoint":"1f3e9","name":"love hotel"},{"codepoint":"1f3ea","name":"convenience store"},{"codepoint":"1f3eb","name":"school"},{"codepoint":"1f3ec","name":"department store"},{"codepoint":"1f3ed","name":"factory"},{"codepoint":"1f3ef","name":"japanese castle"},{"codepoint":"1f3f0","name":"castle"},{"codepoint":"1f492","name":"wedding"},{"codepoint":"1f5fc","name":"tokyo tower"},{"codepoint":"1f5fd","name":"statue of liberty"},{"codepoint":"26ea","name":"church"},{"codepoint":"1f54c","name":"mosque"},{"codepoint":"1f6d5","name":"hindu temple"},{"codepoint":"1f54d","name":"synagogue"},{"codepoint":"26e9 fe0f","name":"shinto shrine"},{"codepoint":"1f54b","name":"kaaba"},{"codepoint":"26f2","name":"fountain"},{"codepoint":"26fa","name":"tent"},{"codepoint":"1f301","name":"foggy"},{"codepoint":"1f303","name":"night with stars"},{"codepoint":"1f3d9 fe0f","name":"cityscape"},{"codepoint":"1f304","name":"sunrise over mountains"},{"codepoint":"1f305","name":"sunrise"},{"codepoint":"1f306","name":"cityscape at dusk"},{"codepoint":"1f307","name":"sunset"},{"codepoint":"1f309","name":"bridge at night"},{"codepoint":"2668 fe0f","name":"hot springs"},{"codepoint":"1f3a0","name":"carousel horse"},{"codepoint":"1f6dd","name":"playground slide"},{"codepoint":"1f3a1","name":"ferris wheel"},{"codepoint":"1f3a2","name":"roller coaster"},{"codepoint":"1f488","name":"barber pole"},{"codepoint":"1f3aa","name":"circus tent"},{"codepoint":"1f682","name":"locomotive"},{"codepoint":"1f683","name":"railway car"},{"codepoint":"1f684","name":"high-speed train"},{"codepoint":"1f685","name":"bullet train"},{"codepoint":"1f686","name":"train"},{"codepoint":"1f687","name":"metro"},{"codepoint":"1f688","name":"light rail"},{"codepoint":"1f689","name":"station"},{"codepoint":"1f68a","name":"tram"},{"codepoint":"1f69d","name":"monorail"},{"codepoint":"1f69e","name":"mountain railway"},{"codepoint":"1f68b","name":"tram car"},{"codepoint":"1f68c","name":"bus"},{"codepoint":"1f68d","name":"oncoming bus"},{"codepoint":"1f68e","name":"trolleybus"},{"codepoint":"1f690","name":"minibus"},{"codepoint":"1f691","name":"ambulance"},{"codepoint":"1f692","name":"fire engine"},{"codepoint":"1f693","name":"police car"},{"codepoint":"1f694","name":"oncoming police car"},{"codepoint":"1f695","name":"taxi"},{"codepoint":"1f696","name":"oncoming taxi"},{"codepoint":"1f697","name":"automobile"},{"codepoint":"1f698","name":"oncoming automobile"},{"codepoint":"1f699","name":"sport utility vehicle"},{"codepoint":"1f6fb","name":"pickup truck"},{"codepoint":"1f69a","name":"delivery truck"},{"codepoint":"1f69b","name":"articulated lorry"},{"codepoint":"1f69c","name":"tractor"},{"codepoint":"1f3ce fe0f","name":"racing car"},{"codepoint":"1f3cd fe0f","name":"motorcycle"},{"codepoint":"1f6f5","name":"motor scooter"},{"codepoint":"1f9bd","name":"manual wheelchair"},{"codepoint":"1f9bc","name":"motorized wheelchair"},{"codepoint":"1f6fa","name":"auto rickshaw"},{"codepoint":"1f6b2","name":"bicycle"},{"codepoint":"1f6f4","name":"kick scooter"},{"codepoint":"1f6f9","name":"skateboard"},{"codepoint":"1f6fc","name":"roller skate"},{"codepoint":"1f68f","name":"bus stop"},{"codepoint":"1f6e3 fe0f","name":"motorway"},{"codepoint":"1f6e4 fe0f","name":"railway track"},{"codepoint":"1f6e2 fe0f","name":"oil drum"},{"codepoint":"26fd","name":"fuel pump"},{"codepoint":"1f6de","name":"wheel"},{"codepoint":"1f6a8","name":"police car light"},{"codepoint":"1f6a5","name":"horizontal traffic light"},{"codepoint":"1f6a6","name":"vertical traffic light"},{"codepoint":"1f6d1","name":"stop sign"},{"codepoint":"1f6a7","name":"construction"},{"codepoint":"2693","name":"anchor"},{"codepoint":"1f6df","name":"ring buoy"},{"codepoint":"26f5","name":"sailboat"},{"codepoint":"1f6f6","name":"canoe"},{"codepoint":"1f6a4","name":"speedboat"},{"codepoint":"1f6f3 fe0f","name":"passenger ship"},{"codepoint":"26f4 fe0f","name":"ferry"},{"codepoint":"1f6e5 fe0f","name":"motor boat"},{"codepoint":"1f6a2","name":"ship"},{"codepoint":"2708 fe0f","name":"airplane"},{"codepoint":"1f6e9 fe0f","name":"small airplane"},{"codepoint":"1f6eb","name":"airplane departure"},{"codepoint":"1f6ec","name":"airplane arrival"},{"codepoint":"1fa82","name":"parachute"},{"codepoint":"1f4ba","name":"seat"},{"codepoint":"1f681","name":"helicopter"},{"codepoint":"1f69f","name":"suspension railway"},{"codepoint":"1f6a0","name":"mountain cableway"},{"codepoint":"1f6a1","name":"aerial tramway"},{"codepoint":"1f6f0 fe0f","name":"satellite"},{"codepoint":"1f680","name":"rocket"},{"codepoint":"1f6f8","name":"flying saucer"},{"codepoint":"1f6ce fe0f","name":"bellhop bell"},{"codepoint":"1f9f3","name":"luggage"},{"codepoint":"231b","name":"hourglass done"},{"codepoint":"23f3","name":"hourglass not done"},{"codepoint":"231a","name":"watch"},{"codepoint":"23f0","name":"alarm clock"},{"codepoint":"23f1 fe0f","name":"stopwatch"},{"codepoint":"23f2 fe0f","name":"timer clock"},{"codepoint":"1f570 fe0f","name":"mantelpiece clock"},{"codepoint":"1f55b","name":"twelve o’clock"},{"codepoint":"1f567","name":"twelve-thirty"},{"codepoint":"1f550","name":"one o’clock"},{"codepoint":"1f55c","name":"one-thirty"},{"codepoint":"1f551","name":"two o’clock"},{"codepoint":"1f55d","name":"two-thirty"},{"codepoint":"1f552","name":"three o’clock"},{"codepoint":"1f55e","name":"three-thirty"},{"codepoint":"1f553","name":"four o’clock"},{"codepoint":"1f55f","name":"four-thirty"},{"codepoint":"1f554","name":"five o’clock"},{"codepoint":"1f560","name":"five-thirty"},{"codepoint":"1f555","name":"six o’clock"},{"codepoint":"1f561","name":"six-thirty"},{"codepoint":"1f556","name":"seven o’clock"},{"codepoint":"1f562","name":"seven-thirty"},{"codepoint":"1f557","name":"eight o’clock"},{"codepoint":"1f563","name":"eight-thirty"},{"codepoint":"1f558","name":"nine o’clock"},{"codepoint":"1f564","name":"nine-thirty"},{"codepoint":"1f559","name":"ten o’clock"},{"codepoint":"1f565","name":"ten-thirty"},{"codepoint":"1f55a","name":"eleven o’clock"},{"codepoint":"1f566","name":"eleven-thirty"},{"codepoint":"1f311","name":"new moon"},{"codepoint":"1f312","name":"waxing crescent moon"},{"codepoint":"1f313","name":"first quarter moon"},{"codepoint":"1f314","name":"waxing gibbous moon"},{"codepoint":"1f315","name":"full moon"},{"codepoint":"1f316","name":"waning gibbous moon"},{"codepoint":"1f317","name":"last quarter moon"},{"codepoint":"1f318","name":"waning crescent moon"},{"codepoint":"1f319","name":"crescent moon"},{"codepoint":"1f31a","name":"new moon face"},{"codepoint":"1f31b","name":"first quarter moon face"},{"codepoint":"1f31c","name":"last quarter moon face"},{"codepoint":"1f321 fe0f","name":"thermometer"},{"codepoint":"2600 fe0f","name":"sun"},{"codepoint":"1f31d","name":"full moon face"},{"codepoint":"1f31e","name":"sun with face"},{"codepoint":"1fa90","name":"ringed planet"},{"codepoint":"2b50","name":"star"},{"codepoint":"1f31f","name":"glowing star"},{"codepoint":"1f320","name":"shooting star"},{"codepoint":"1f30c","name":"milky way"},{"codepoint":"2601 fe0f","name":"cloud"},{"codepoint":"26c5","name":"sun behind cloud"},{"codepoint":"26c8 fe0f","name":"cloud with lightning and rain"},{"codepoint":"1f324 fe0f","name":"sun behind small cloud"},{"codepoint":"1f325 fe0f","name":"sun behind large cloud"},{"codepoint":"1f326 fe0f","name":"sun behind rain cloud"},{"codepoint":"1f327 fe0f","name":"cloud with rain"},{"codepoint":"1f328 fe0f","name":"cloud with snow"},{"codepoint":"1f329 fe0f","name":"cloud with lightning"},{"codepoint":"1f32a fe0f","name":"tornado"},{"codepoint":"1f32b fe0f","name":"fog"},{"codepoint":"1f32c fe0f","name":"wind face"},{"codepoint":"1f300","name":"cyclone"},{"codepoint":"1f308","name":"rainbow"},{"codepoint":"1f302","name":"closed umbrella"},{"codepoint":"2602 fe0f","name":"umbrella"},{"codepoint":"2614","name":"umbrella with rain drops"},{"codepoint":"26f1 fe0f","name":"umbrella on ground"},{"codepoint":"26a1","name":"high voltage"},{"codepoint":"2744 fe0f","name":"snowflake"},{"codepoint":"2603 fe0f","name":"snowman"},{"codepoint":"26c4","name":"snowman without snow"},{"codepoint":"2604 fe0f","name":"comet"},{"codepoint":"1f525","name":"fire"},{"codepoint":"1f4a7","name":"droplet"},{"codepoint":"1f30a","name":"water wave"},{"codepoint":"1f383","name":"jack-o-lantern"},{"codepoint":"1f384","name":"christmas tree"},{"codepoint":"1f386","name":"fireworks"},{"codepoint":"1f387","name":"sparkler"},{"codepoint":"1f9e8","name":"firecracker"},{"codepoint":"2728","name":"sparkles"},{"codepoint":"1f388","name":"balloon"},{"codepoint":"1f389","name":"party popper"},{"codepoint":"1f38a","name":"confetti ball"},{"codepoint":"1f38b","name":"tanabata tree"},{"codepoint":"1f38d","name":"pine decoration"},{"codepoint":"1f38e","name":"japanese dolls"},{"codepoint":"1f38f","name":"carp streamer"},{"codepoint":"1f390","name":"wind chime"},{"codepoint":"1f391","name":"moon viewing ceremony"},{"codepoint":"1f9e7","name":"red envelope"},{"codepoint":"1f380","name":"ribbon"},{"codepoint":"1f381","name":"wrapped gift"},{"codepoint":"1f397 fe0f","name":"reminder ribbon"},{"codepoint":"1f39f fe0f","name":"admission tickets"},{"codepoint":"1f3ab","name":"ticket"},{"codepoint":"1f396 fe0f","name":"military medal"},{"codepoint":"1f3c6","name":"trophy"},{"codepoint":"1f3c5","name":"sports medal"},{"codepoint":"1f947","name":"1st place medal"},{"codepoint":"1f948","name":"2nd place medal"},{"codepoint":"1f949","name":"3rd place medal"},{"codepoint":"26bd","name":"soccer ball"},{"codepoint":"26be","name":"baseball"},{"codepoint":"1f94e","name":"softball"},{"codepoint":"1f3c0","name":"basketball"},{"codepoint":"1f3d0","name":"volleyball"},{"codepoint":"1f3c8","name":"american football"},{"codepoint":"1f3c9","name":"rugby football"},{"codepoint":"1f3be","name":"tennis"},{"codepoint":"1f94f","name":"flying disc"},{"codepoint":"1f3b3","name":"bowling"},{"codepoint":"1f3cf","name":"cricket game"},{"codepoint":"1f3d1","name":"field hockey"},{"codepoint":"1f3d2","name":"ice hockey"},{"codepoint":"1f94d","name":"lacrosse"},{"codepoint":"1f3d3","name":"ping pong"},{"codepoint":"1f3f8","name":"badminton"},{"codepoint":"1f94a","name":"boxing glove"},{"codepoint":"1f94b","name":"martial arts uniform"},{"codepoint":"1f945","name":"goal net"},{"codepoint":"26f3","name":"flag in hole"},{"codepoint":"26f8 fe0f","name":"ice skate"},{"codepoint":"1f3a3","name":"fishing pole"},{"codepoint":"1f93f","name":"diving mask"},{"codepoint":"1f3bd","name":"running shirt"},{"codepoint":"1f3bf","name":"skis"},{"codepoint":"1f6f7","name":"sled"},{"codepoint":"1f94c","name":"curling stone"},{"codepoint":"1f3af","name":"bullseye"},{"codepoint":"1fa80","name":"yo-yo"},{"codepoint":"1fa81","name":"kite"},{"codepoint":"1f3b1","name":"pool 8 ball"},{"codepoint":"1f52e","name":"crystal ball"},{"codepoint":"1fa84","name":"magic wand"},{"codepoint":"1f9ff","name":"nazar amulet"},{"codepoint":"1faac","name":"hamsa"},{"codepoint":"1f3ae","name":"video game"},{"codepoint":"1f579 fe0f","name":"joystick"},{"codepoint":"1f3b0","name":"slot machine"},{"codepoint":"1f3b2","name":"game die"},{"codepoint":"1f9e9","name":"puzzle piece"},{"codepoint":"1f9f8","name":"teddy bear"},{"codepoint":"1fa85","name":"piñata"},{"codepoint":"1faa9","name":"mirror ball"},{"codepoint":"1fa86","name":"nesting dolls"},{"codepoint":"2660 fe0f","name":"spade suit"},{"codepoint":"2665 fe0f","name":"heart suit"},{"codepoint":"2666 fe0f","name":"diamond suit"},{"codepoint":"2663 fe0f","name":"club suit"},{"codepoint":"265f fe0f","name":"chess pawn"},{"codepoint":"1f0cf","name":"joker"},{"codepoint":"1f004","name":"mahjong red dragon"},{"codepoint":"1f3b4","name":"flower playing cards"},{"codepoint":"1f3ad","name":"performing arts"},{"codepoint":"1f5bc fe0f","name":"framed picture"},{"codepoint":"1f3a8","name":"artist palette"},{"codepoint":"1f9f5","name":"thread"},{"codepoint":"1faa1","name":"sewing needle"},{"codepoint":"1f9f6","name":"yarn"},{"codepoint":"1faa2","name":"knot"},{"codepoint":"1f453","name":"glasses"},{"codepoint":"1f576 fe0f","name":"sunglasses"},{"codepoint":"1f97d","name":"goggles"},{"codepoint":"1f97c","name":"lab coat"},{"codepoint":"1f9ba","name":"safety vest"},{"codepoint":"1f454","name":"necktie"},{"codepoint":"1f455","name":"t-shirt"},{"codepoint":"1f456","name":"jeans"},{"codepoint":"1f9e3","name":"scarf"},{"codepoint":"1f9e4","name":"gloves"},{"codepoint":"1f9e5","name":"coat"},{"codepoint":"1f9e6","name":"socks"},{"codepoint":"1f457","name":"dress"},{"codepoint":"1f458","name":"kimono"},{"codepoint":"1f97b","name":"sari"},{"codepoint":"1fa71","name":"one-piece swimsuit"},{"codepoint":"1fa72","name":"briefs"},{"codepoint":"1fa73","name":"shorts"},{"codepoint":"1f459","name":"bikini"},{"codepoint":"1f45a","name":"woman’s clothes"},{"codepoint":"1f45b","name":"purse"},{"codepoint":"1f45c","name":"handbag"},{"codepoint":"1f45d","name":"clutch bag"},{"codepoint":"1f6cd fe0f","name":"shopping bags"},{"codepoint":"1f392","name":"backpack"},{"codepoint":"1fa74","name":"thong sandal"},{"codepoint":"1f45e","name":"man’s shoe"},{"codepoint":"1f45f","name":"running shoe"},{"codepoint":"1f97e","name":"hiking boot"},{"codepoint":"1f97f","name":"flat shoe"},{"codepoint":"1f460","name":"high-heeled shoe"},{"codepoint":"1f461","name":"woman’s sandal"},{"codepoint":"1fa70","name":"ballet shoes"},{"codepoint":"1f462","name":"woman’s boot"},{"codepoint":"1f451","name":"crown"},{"codepoint":"1f452","name":"woman’s hat"},{"codepoint":"1f3a9","name":"top hat"},{"codepoint":"1f393","name":"graduation cap"},{"codepoint":"1f9e2","name":"billed cap"},{"codepoint":"1fa96","name":"military helmet"},{"codepoint":"26d1 fe0f","name":"rescue worker’s helmet"},{"codepoint":"1f4ff","name":"prayer beads"},{"codepoint":"1f484","name":"lipstick"},{"codepoint":"1f48d","name":"ring"},{"codepoint":"1f48e","name":"gem stone"},{"codepoint":"1f507","name":"muted speaker"},{"codepoint":"1f508","name":"speaker low volume"},{"codepoint":"1f509","name":"speaker medium volume"},{"codepoint":"1f50a","name":"speaker high volume"},{"codepoint":"1f4e2","name":"loudspeaker"},{"codepoint":"1f4e3","name":"megaphone"},{"codepoint":"1f4ef","name":"postal horn"},{"codepoint":"1f514","name":"bell"},{"codepoint":"1f515","name":"bell with slash"},{"codepoint":"1f3bc","name":"musical score"},{"codepoint":"1f3b5","name":"musical note"},{"codepoint":"1f3b6","name":"musical notes"},{"codepoint":"1f399 fe0f","name":"studio microphone"},{"codepoint":"1f39a fe0f","name":"level slider"},{"codepoint":"1f39b fe0f","name":"control knobs"},{"codepoint":"1f3a4","name":"microphone"},{"codepoint":"1f3a7","name":"headphone"},{"codepoint":"1f4fb","name":"radio"},{"codepoint":"1f3b7","name":"saxophone"},{"codepoint":"1fa97","name":"accordion"},{"codepoint":"1f3b8","name":"guitar"},{"codepoint":"1f3b9","name":"musical keyboard"},{"codepoint":"1f3ba","name":"trumpet"},{"codepoint":"1f3bb","name":"violin"},{"codepoint":"1fa95","name":"banjo"},{"codepoint":"1f941","name":"drum"},{"codepoint":"1fa98","name":"long drum"},{"codepoint":"1f4f1","name":"mobile phone"},{"codepoint":"1f4f2","name":"mobile phone with arrow"},{"codepoint":"260e fe0f","name":"telephone"},{"codepoint":"1f4de","name":"telephone receiver"},{"codepoint":"1f4df","name":"pager"},{"codepoint":"1f4e0","name":"fax machine"},{"codepoint":"1f50b","name":"battery"},{"codepoint":"1faab","name":"low battery"},{"codepoint":"1f50c","name":"electric plug"},{"codepoint":"1f4bb","name":"laptop"},{"codepoint":"1f5a5 fe0f","name":"desktop computer"},{"codepoint":"1f5a8 fe0f","name":"printer"},{"codepoint":"2328 fe0f","name":"keyboard"},{"codepoint":"1f5b1 fe0f","name":"computer mouse"},{"codepoint":"1f5b2 fe0f","name":"trackball"},{"codepoint":"1f4bd","name":"computer disk"},{"codepoint":"1f4be","name":"floppy disk"},{"codepoint":"1f4bf","name":"optical disk"},{"codepoint":"1f4c0","name":"dvd"},{"codepoint":"1f9ee","name":"abacus"},{"codepoint":"1f3a5","name":"movie camera"},{"codepoint":"1f39e fe0f","name":"film frames"},{"codepoint":"1f4fd fe0f","name":"film projector"},{"codepoint":"1f3ac","name":"clapper board"},{"codepoint":"1f4fa","name":"television"},{"codepoint":"1f4f7","name":"camera"},{"codepoint":"1f4f8","name":"camera with flash"},{"codepoint":"1f4f9","name":"video camera"},{"codepoint":"1f4fc","name":"videocassette"},{"codepoint":"1f50d","name":"magnifying glass tilted left"},{"codepoint":"1f50e","name":"magnifying glass tilted right"},{"codepoint":"1f56f fe0f","name":"candle"},{"codepoint":"1f4a1","name":"light bulb"},{"codepoint":"1f526","name":"flashlight"},{"codepoint":"1f3ee","name":"red paper lantern"},{"codepoint":"1fa94","name":"diya lamp"},{"codepoint":"1f4d4","name":"notebook with decorative cover"},{"codepoint":"1f4d5","name":"closed book"},{"codepoint":"1f4d6","name":"open book"},{"codepoint":"1f4d7","name":"green book"},{"codepoint":"1f4d8","name":"blue book"},{"codepoint":"1f4d9","name":"orange book"},{"codepoint":"1f4da","name":"books"},{"codepoint":"1f4d3","name":"notebook"},{"codepoint":"1f4d2","name":"ledger"},{"codepoint":"1f4c3","name":"page with curl"},{"codepoint":"1f4dc","name":"scroll"},{"codepoint":"1f4c4","name":"page facing up"},{"codepoint":"1f4f0","name":"newspaper"},{"codepoint":"1f5de fe0f","name":"rolled-up newspaper"},{"codepoint":"1f4d1","name":"bookmark tabs"},{"codepoint":"1f516","name":"bookmark"},{"codepoint":"1f3f7 fe0f","name":"label"},{"codepoint":"1f4b0","name":"money bag"},{"codepoint":"1fa99","name":"coin"},{"codepoint":"1f4b4","name":"yen banknote"},{"codepoint":"1f4b5","name":"dollar banknote"},{"codepoint":"1f4b6","name":"euro banknote"},{"codepoint":"1f4b7","name":"pound banknote"},{"codepoint":"1f4b8","name":"money with wings"},{"codepoint":"1f4b3","name":"credit card"},{"codepoint":"1f9fe","name":"receipt"},{"codepoint":"1f4b9","name":"chart increasing with yen"},{"codepoint":"2709 fe0f","name":"envelope"},{"codepoint":"1f4e7","name":"e-mail"},{"codepoint":"1f4e8","name":"incoming envelope"},{"codepoint":"1f4e9","name":"envelope with arrow"},{"codepoint":"1f4e4","name":"outbox tray"},{"codepoint":"1f4e5","name":"inbox tray"},{"codepoint":"1f4e6","name":"package"},{"codepoint":"1f4eb","name":"closed mailbox with raised flag"},{"codepoint":"1f4ea","name":"closed mailbox with lowered flag"},{"codepoint":"1f4ec","name":"open mailbox with raised flag"},{"codepoint":"1f4ed","name":"open mailbox with lowered flag"},{"codepoint":"1f4ee","name":"postbox"},{"codepoint":"1f5f3 fe0f","name":"ballot box with ballot"},{"codepoint":"270f fe0f","name":"pencil"},{"codepoint":"2712 fe0f","name":"black nib"},{"codepoint":"1f58b fe0f","name":"fountain pen"},{"codepoint":"1f58a fe0f","name":"pen"},{"codepoint":"1f58c fe0f","name":"paintbrush"},{"codepoint":"1f58d fe0f","name":"crayon"},{"codepoint":"1f4dd","name":"memo"},{"codepoint":"1f4bc","name":"briefcase"},{"codepoint":"1f4c1","name":"file folder"},{"codepoint":"1f4c2","name":"open file folder"},{"codepoint":"1f5c2 fe0f","name":"card index dividers"},{"codepoint":"1f4c5","name":"calendar"},{"codepoint":"1f4c6","name":"tear-off calendar"},{"codepoint":"1f5d2 fe0f","name":"spiral notepad"},{"codepoint":"1f5d3 fe0f","name":"spiral calendar"},{"codepoint":"1f4c7","name":"card index"},{"codepoint":"1f4c8","name":"chart increasing"},{"codepoint":"1f4c9","name":"chart decreasing"},{"codepoint":"1f4ca","name":"bar chart"},{"codepoint":"1f4cb","name":"clipboard"},{"codepoint":"1f4cc","name":"pushpin"},{"codepoint":"1f4cd","name":"round pushpin"},{"codepoint":"1f4ce","name":"paperclip"},{"codepoint":"1f587 fe0f","name":"linked paperclips"},{"codepoint":"1f4cf","name":"straight ruler"},{"codepoint":"1f4d0","name":"triangular ruler"},{"codepoint":"2702 fe0f","name":"scissors"},{"codepoint":"1f5c3 fe0f","name":"card file box"},{"codepoint":"1f5c4 fe0f","name":"file cabinet"},{"codepoint":"1f5d1 fe0f","name":"wastebasket"},{"codepoint":"1f512","name":"locked"},{"codepoint":"1f513","name":"unlocked"},{"codepoint":"1f50f","name":"locked with pen"},{"codepoint":"1f510","name":"locked with key"},{"codepoint":"1f511","name":"key"},{"codepoint":"1f5dd fe0f","name":"old key"},{"codepoint":"1f528","name":"hammer"},{"codepoint":"1fa93","name":"axe"},{"codepoint":"26cf fe0f","name":"pick"},{"codepoint":"2692 fe0f","name":"hammer and pick"},{"codepoint":"1f6e0 fe0f","name":"hammer and wrench"},{"codepoint":"1f5e1 fe0f","name":"dagger"},{"codepoint":"2694 fe0f","name":"crossed swords"},{"codepoint":"1f52b","name":"water pistol"},{"codepoint":"1fa83","name":"boomerang"},{"codepoint":"1f3f9","name":"bow and arrow"},{"codepoint":"1f6e1 fe0f","name":"shield"},{"codepoint":"1fa9a","name":"carpentry saw"},{"codepoint":"1f527","name":"wrench"},{"codepoint":"1fa9b","name":"screwdriver"},{"codepoint":"1f529","name":"nut and bolt"},{"codepoint":"2699 fe0f","name":"gear"},{"codepoint":"1f5dc fe0f","name":"clamp"},{"codepoint":"2696 fe0f","name":"balance scale"},{"codepoint":"1f9af","name":"white cane"},{"codepoint":"1f517","name":"link"},{"codepoint":"26d3 fe0f","name":"chains"},{"codepoint":"1fa9d","name":"hook"},{"codepoint":"1f9f0","name":"toolbox"},{"codepoint":"1f9f2","name":"magnet"},{"codepoint":"1fa9c","name":"ladder"},{"codepoint":"2697 fe0f","name":"alembic"},{"codepoint":"1f9ea","name":"test tube"},{"codepoint":"1f9eb","name":"petri dish"},{"codepoint":"1f9ec","name":"dna"},{"codepoint":"1f52c","name":"microscope"},{"codepoint":"1f52d","name":"telescope"},{"codepoint":"1f4e1","name":"satellite antenna"},{"codepoint":"1f489","name":"syringe"},{"codepoint":"1fa78","name":"drop of blood"},{"codepoint":"1f48a","name":"pill"},{"codepoint":"1fa79","name":"adhesive bandage"},{"codepoint":"1fa7c","name":"crutch"},{"codepoint":"1fa7a","name":"stethoscope"},{"codepoint":"1fa7b","name":"x-ray"},{"codepoint":"1f6aa","name":"door"},{"codepoint":"1f6d7","name":"elevator"},{"codepoint":"1fa9e","name":"mirror"},{"codepoint":"1fa9f","name":"window"},{"codepoint":"1f6cf fe0f","name":"bed"},{"codepoint":"1f6cb fe0f","name":"couch and lamp"},{"codepoint":"1fa91","name":"chair"},{"codepoint":"1f6bd","name":"toilet"},{"codepoint":"1faa0","name":"plunger"},{"codepoint":"1f6bf","name":"shower"},{"codepoint":"1f6c1","name":"bathtub"},{"codepoint":"1faa4","name":"mouse trap"},{"codepoint":"1fa92","name":"razor"},{"codepoint":"1f9f4","name":"lotion bottle"},{"codepoint":"1f9f7","name":"safety pin"},{"codepoint":"1f9f9","name":"broom"},{"codepoint":"1f9fa","name":"basket"},{"codepoint":"1f9fb","name":"roll of paper"},{"codepoint":"1faa3","name":"bucket"},{"codepoint":"1f9fc","name":"soap"},{"codepoint":"1fae7","name":"bubbles"},{"codepoint":"1faa5","name":"toothbrush"},{"codepoint":"1f9fd","name":"sponge"},{"codepoint":"1f9ef","name":"fire extinguisher"},{"codepoint":"1f6d2","name":"shopping cart"},{"codepoint":"1f6ac","name":"cigarette"},{"codepoint":"26b0 fe0f","name":"coffin"},{"codepoint":"1faa6","name":"headstone"},{"codepoint":"26b1 fe0f","name":"funeral urn"},{"codepoint":"1f5ff","name":"moai"},{"codepoint":"1faa7","name":"placard"},{"codepoint":"1faaa","name":"identification card"},{"codepoint":"1f3e7","name":"atm sign"},{"codepoint":"1f6ae","name":"litter in bin sign"},{"codepoint":"1f6b0","name":"potable water"},{"codepoint":"267f","name":"wheelchair symbol"},{"codepoint":"1f6b9","name":"men’s room"},{"codepoint":"1f6ba","name":"women’s room"},{"codepoint":"1f6bb","name":"restroom"},{"codepoint":"1f6bc","name":"baby symbol"},{"codepoint":"1f6be","name":"water closet"},{"codepoint":"1f6c2","name":"passport control"},{"codepoint":"1f6c3","name":"customs"},{"codepoint":"1f6c4","name":"baggage claim"},{"codepoint":"1f6c5","name":"left luggage"},{"codepoint":"26a0 fe0f","name":"warning"},{"codepoint":"1f6b8","name":"children crossing"},{"codepoint":"26d4","name":"no entry"},{"codepoint":"1f6ab","name":"prohibited"},{"codepoint":"1f6b3","name":"no bicycles"},{"codepoint":"1f6ad","name":"no smoking"},{"codepoint":"1f6af","name":"no littering"},{"codepoint":"1f6b1","name":"non-potable water"},{"codepoint":"1f6b7","name":"no pedestrians"},{"codepoint":"1f4f5","name":"no mobile phones"},{"codepoint":"1f51e","name":"no one under eighteen"},{"codepoint":"2622 fe0f","name":"radioactive"},{"codepoint":"2623 fe0f","name":"biohazard"},{"codepoint":"2b06 fe0f","name":"up arrow"},{"codepoint":"2197 fe0f","name":"up-right arrow"},{"codepoint":"27a1 fe0f","name":"right arrow"},{"codepoint":"2198 fe0f","name":"down-right arrow"},{"codepoint":"2b07 fe0f","name":"down arrow"},{"codepoint":"2199 fe0f","name":"down-left arrow"},{"codepoint":"2b05 fe0f","name":"left arrow"},{"codepoint":"2196 fe0f","name":"up-left arrow"},{"codepoint":"2195 fe0f","name":"up-down arrow"},{"codepoint":"2194 fe0f","name":"left-right arrow"},{"codepoint":"21a9 fe0f","name":"right arrow curving left"},{"codepoint":"21aa fe0f","name":"left arrow curving right"},{"codepoint":"2934 fe0f","name":"right arrow curving up"},{"codepoint":"2935 fe0f","name":"right arrow curving down"},{"codepoint":"1f503","name":"clockwise vertical arrows"},{"codepoint":"1f504","name":"counterclockwise arrows button"},{"codepoint":"1f519","name":"back arrow"},{"codepoint":"1f51a","name":"end arrow"},{"codepoint":"1f51b","name":"on! arrow"},{"codepoint":"1f51c","name":"soon arrow"},{"codepoint":"1f51d","name":"top arrow"},{"codepoint":"1f6d0","name":"place of worship"},{"codepoint":"269b fe0f","name":"atom symbol"},{"codepoint":"1f549 fe0f","name":"om"},{"codepoint":"2721 fe0f","name":"star of david"},{"codepoint":"2638 fe0f","name":"wheel of dharma"},{"codepoint":"262f fe0f","name":"yin yang"},{"codepoint":"271d fe0f","name":"latin cross"},{"codepoint":"2626 fe0f","name":"orthodox cross"},{"codepoint":"262a fe0f","name":"star and crescent"},{"codepoint":"262e fe0f","name":"peace symbol"},{"codepoint":"1f54e","name":"menorah"},{"codepoint":"1f52f","name":"dotted six-pointed star"},{"codepoint":"2648","name":"aries"},{"codepoint":"2649","name":"taurus"},{"codepoint":"264a","name":"gemini"},{"codepoint":"264b","name":"cancer"},{"codepoint":"264c","name":"leo"},{"codepoint":"264d","name":"virgo"},{"codepoint":"264e","name":"libra"},{"codepoint":"264f","name":"scorpio"},{"codepoint":"2650","name":"sagittarius"},{"codepoint":"2651","name":"capricorn"},{"codepoint":"2652","name":"aquarius"},{"codepoint":"2653","name":"pisces"},{"codepoint":"26ce","name":"ophiuchus"},{"codepoint":"1f500","name":"shuffle tracks button"},{"codepoint":"1f501","name":"repeat button"},{"codepoint":"1f502","name":"repeat single button"},{"codepoint":"25b6 fe0f","name":"play button"},{"codepoint":"23e9","name":"fast-forward button"},{"codepoint":"23ed fe0f","name":"next track button"},{"codepoint":"23ef fe0f","name":"play or pause button"},{"codepoint":"25c0 fe0f","name":"reverse button"},{"codepoint":"23ea","name":"fast reverse button"},{"codepoint":"23ee fe0f","name":"last track button"},{"codepoint":"1f53c","name":"upwards button"},{"codepoint":"23eb","name":"fast up button"},{"codepoint":"1f53d","name":"downwards button"},{"codepoint":"23ec","name":"fast down button"},{"codepoint":"23f8 fe0f","name":"pause button"},{"codepoint":"23f9 fe0f","name":"stop button"},{"codepoint":"23fa fe0f","name":"record button"},{"codepoint":"23cf fe0f","name":"eject button"},{"codepoint":"1f3a6","name":"cinema"},{"codepoint":"1f505","name":"dim button"},{"codepoint":"1f506","name":"bright button"},{"codepoint":"1f4f6","name":"antenna bars"},{"codepoint":"1f4f3","name":"vibration mode"},{"codepoint":"1f4f4","name":"mobile phone off"},{"codepoint":"2640 fe0f","name":"female sign"},{"codepoint":"2642 fe0f","name":"male sign"},{"codepoint":"26a7 fe0f","name":"transgender symbol"},{"codepoint":"2716 fe0f","name":"multiply"},{"codepoint":"2795","name":"plus"},{"codepoint":"2796","name":"minus"},{"codepoint":"2797","name":"divide"},{"codepoint":"1f7f0","name":"heavy equals sign"},{"codepoint":"267e fe0f","name":"infinity"},{"codepoint":"203c fe0f","name":"double exclamation mark"},{"codepoint":"2049 fe0f","name":"exclamation question mark"},{"codepoint":"2753","name":"red question mark"},{"codepoint":"2754","name":"white question mark"},{"codepoint":"2755","name":"white exclamation mark"},{"codepoint":"2757","name":"red exclamation mark"},{"codepoint":"3030 fe0f","name":"wavy dash"},{"codepoint":"1f4b1","name":"currency exchange"},{"codepoint":"1f4b2","name":"heavy dollar sign"},{"codepoint":"2695 fe0f","name":"medical symbol"},{"codepoint":"267b fe0f","name":"recycling symbol"},{"codepoint":"269c fe0f","name":"fleur-de-lis"},{"codepoint":"1f531","name":"trident emblem"},{"codepoint":"1f4db","name":"name badge"},{"codepoint":"1f530","name":"japanese symbol for beginner"},{"codepoint":"2b55","name":"hollow red circle"},{"codepoint":"2705","name":"check mark button"},{"codepoint":"2611 fe0f","name":"check box with check"},{"codepoint":"2714 fe0f","name":"check mark"},{"codepoint":"274c","name":"cross mark"},{"codepoint":"274e","name":"cross mark button"},{"codepoint":"27b0","name":"curly loop"},{"codepoint":"27bf","name":"double curly loop"},{"codepoint":"303d fe0f","name":"part alternation mark"},{"codepoint":"2733 fe0f","name":"eight-spoked asterisk"},{"codepoint":"2734 fe0f","name":"eight-pointed star"},{"codepoint":"2747 fe0f","name":"sparkle"},{"codepoint":"00a9 fe0f","name":"copyright"},{"codepoint":"00ae fe0f","name":"registered"},{"codepoint":"2122 fe0f","name":"trade mark"},{"codepoint":"0023 fe0f 20e3","name":"keycap: #"},{"codepoint":"002a fe0f 20e3","name":"keycap: *"},{"codepoint":"0030 fe0f 20e3","name":"keycap: 0"},{"codepoint":"0031 fe0f 20e3","name":"keycap: 1"},{"codepoint":"0032 fe0f 20e3","name":"keycap: 2"},{"codepoint":"0033 fe0f 20e3","name":"keycap: 3"},{"codepoint":"0034 fe0f 20e3","name":"keycap: 4"},{"codepoint":"0035 fe0f 20e3","name":"keycap: 5"},{"codepoint":"0036 fe0f 20e3","name":"keycap: 6"},{"codepoint":"0037 fe0f 20e3","name":"keycap: 7"},{"codepoint":"0038 fe0f 20e3","name":"keycap: 8"},{"codepoint":"0039 fe0f 20e3","name":"keycap: 9"},{"codepoint":"1f51f","name":"keycap: 10"},{"codepoint":"1f520","name":"input latin uppercase"},{"codepoint":"1f521","name":"input latin lowercase"},{"codepoint":"1f522","name":"input numbers"},{"codepoint":"1f523","name":"input symbols"},{"codepoint":"1f524","name":"input latin letters"},{"codepoint":"1f170 fe0f","name":"a button (blood type)"},{"codepoint":"1f18e","name":"ab button (blood type)"},{"codepoint":"1f171 fe0f","name":"b button (blood type)"},{"codepoint":"1f191","name":"cl button"},{"codepoint":"1f192","name":"cool button"},{"codepoint":"1f193","name":"free button"},{"codepoint":"2139 fe0f","name":"information"},{"codepoint":"1f194","name":"id button"},{"codepoint":"24c2 fe0f","name":"circled m"},{"codepoint":"1f195","name":"new button"},{"codepoint":"1f196","name":"ng button"},{"codepoint":"1f17e fe0f","name":"o button (blood type)"},{"codepoint":"1f197","name":"ok button"},{"codepoint":"1f17f fe0f","name":"p button"},{"codepoint":"1f198","name":"sos button"},{"codepoint":"1f199","name":"up! button"},{"codepoint":"1f19a","name":"vs button"},{"codepoint":"1f201","name":"japanese “here” button"},{"codepoint":"1f202 fe0f","name":"japanese “service charge” button"},{"codepoint":"1f237 fe0f","name":"japanese “monthly amount” button"},{"codepoint":"1f236","name":"japanese “not free of charge” button"},{"codepoint":"1f22f","name":"japanese “reserved” button"},{"codepoint":"1f250","name":"japanese “bargain” button"},{"codepoint":"1f239","name":"japanese “discount” button"},{"codepoint":"1f21a","name":"japanese “free of charge” button"},{"codepoint":"1f232","name":"japanese “prohibited” button"},{"codepoint":"1f251","name":"japanese “acceptable” button"},{"codepoint":"1f238","name":"japanese “application” button"},{"codepoint":"1f234","name":"japanese “passing grade” button"},{"codepoint":"1f233","name":"japanese “vacancy” button"},{"codepoint":"3297 fe0f","name":"japanese “congratulations” button"},{"codepoint":"3299 fe0f","name":"japanese “secret” button"},{"codepoint":"1f23a","name":"japanese “open for business” button"},{"codepoint":"1f235","name":"japanese “no vacancy” button"},{"codepoint":"1f534","name":"red circle"},{"codepoint":"1f7e0","name":"orange circle"},{"codepoint":"1f7e1","name":"yellow circle"},{"codepoint":"1f7e2","name":"green circle"},{"codepoint":"1f535","name":"blue circle"},{"codepoint":"1f7e3","name":"purple circle"},{"codepoint":"1f7e4","name":"brown circle"},{"codepoint":"26ab","name":"black circle"},{"codepoint":"26aa","name":"white circle"},{"codepoint":"1f7e5","name":"red square"},{"codepoint":"1f7e7","name":"orange square"},{"codepoint":"1f7e8","name":"yellow square"},{"codepoint":"1f7e9","name":"green square"},{"codepoint":"1f7e6","name":"blue square"},{"codepoint":"1f7ea","name":"purple square"},{"codepoint":"1f7eb","name":"brown square"},{"codepoint":"2b1b","name":"black large square"},{"codepoint":"2b1c","name":"white large square"},{"codepoint":"25fc fe0f","name":"black medium square"},{"codepoint":"25fb fe0f","name":"white medium square"},{"codepoint":"25fe","name":"black medium-small square"},{"codepoint":"25fd","name":"white medium-small square"},{"codepoint":"25aa fe0f","name":"black small square"},{"codepoint":"25ab fe0f","name":"white small square"},{"codepoint":"1f536","name":"large orange diamond"},{"codepoint":"1f537","name":"large blue diamond"},{"codepoint":"1f538","name":"small orange diamond"},{"codepoint":"1f539","name":"small blue diamond"},{"codepoint":"1f53a","name":"red triangle pointed up"},{"codepoint":"1f53b","name":"red triangle pointed down"},{"codepoint":"1f4a0","name":"diamond with a dot"},{"codepoint":"1f518","name":"radio button"},{"codepoint":"1f533","name":"white square button"},{"codepoint":"1f532","name":"black square button"},{"codepoint":"1f3c1","name":"chequered flag"},{"codepoint":"1f6a9","name":"triangular flag"},{"codepoint":"1f38c","name":"crossed flags"},{"codepoint":"1f3f4","name":"black flag"},{"codepoint":"1f3f3 fe0f","name":"white flag"},{"codepoint":"1f3f3 fe0f 200d 1f308","name":"rainbow flag"},{"codepoint":"1f3f3 fe0f 200d 26a7 fe0f","name":"transgender flag"},{"codepoint":"1f3f4 200d 2620 fe0f","name":"pirate flag"},{"codepoint":"1f1ea 1f1e6","name":"flag: ceuta & melilla"},{"codepoint":"1f1ea 1f1e8","name":"flag: ecuador"},{"codepoint":"1f1ea 1f1ea","name":"flag: estonia"},{"codepoint":"1f1ea 1f1ec","name":"flag: egypt"},{"codepoint":"1f1ea 1f1ed","name":"flag: western sahara"},{"codepoint":"1f1ea 1f1f7","name":"flag: eritrea"},{"codepoint":"1f1ea 1f1f8","name":"flag: spain"},{"codepoint":"1f1ea 1f1f9","name":"flag: ethiopia"},{"codepoint":"1f1ea 1f1fa","name":"flag: european union"},{"codepoint":"1f1eb 1f1ee","name":"flag: finland"},{"codepoint":"1f1eb 1f1ef","name":"flag: fiji"},{"codepoint":"1f1eb 1f1f0","name":"flag: falkland islands"},{"codepoint":"1f1eb 1f1f2","name":"flag: micronesia"},{"codepoint":"1f1eb 1f1f4","name":"flag: faroe islands"},{"codepoint":"1f1eb 1f1f7","name":"flag: france"},{"codepoint":"1f1ec 1f1e6","name":"flag: gabon"},{"codepoint":"1f1ec 1f1e7","name":"flag: united kingdom"},{"codepoint":"1f1ec 1f1e9","name":"flag: grenada"},{"codepoint":"1f1ec 1f1ea","name":"flag: georgia"},{"codepoint":"1f1ec 1f1eb","name":"flag: french guiana"},{"codepoint":"1f1ec 1f1ec","name":"flag: guernsey"},{"codepoint":"1f1ec 1f1ed","name":"flag: ghana"},{"codepoint":"1f1ec 1f1ee","name":"flag: gibraltar"},{"codepoint":"1f1ec 1f1f1","name":"flag: greenland"},{"codepoint":"1f1ec 1f1f2","name":"flag: gambia"},{"codepoint":"1f1ec 1f1f3","name":"flag: guinea"},{"codepoint":"1f1ec 1f1f5","name":"flag: guadeloupe"},{"codepoint":"1f1ec 1f1f6","name":"flag: equatorial guinea"},{"codepoint":"1f1ec 1f1f7","name":"flag: greece"},{"codepoint":"1f1ec 1f1f8","name":"flag: south georgia & south sandwich islands"},{"codepoint":"1f1ec 1f1f9","name":"flag: guatemala"},{"codepoint":"1f1ec 1f1fa","name":"flag: guam"},{"codepoint":"1f1ec 1f1fc","name":"flag: guinea-bissau"},{"codepoint":"1f1ec 1f1fe","name":"flag: guyana"},{"codepoint":"1f1ed 1f1f0","name":"flag: hong kong sar china"},{"codepoint":"1f1ed 1f1f2","name":"flag: heard & mcdonald islands"},{"codepoint":"1f1ed 1f1f3","name":"flag: honduras"},{"codepoint":"1f1ed 1f1f7","name":"flag: croatia"},{"codepoint":"1f1ed 1f1f9","name":"flag: haiti"},{"codepoint":"1f1ed 1f1fa","name":"flag: hungary"},{"codepoint":"1f1ee 1f1e8","name":"flag: canary islands"},{"codepoint":"1f1ee 1f1e9","name":"flag: indonesia"},{"codepoint":"1f1ee 1f1ea","name":"flag: ireland"},{"codepoint":"1f1ee 1f1f1","name":"flag: israel"},{"codepoint":"1f1ee 1f1f2","name":"flag: isle of man"},{"codepoint":"1f1ee 1f1f3","name":"flag: india"},{"codepoint":"1f1ee 1f1f4","name":"flag: british indian ocean territory"},{"codepoint":"1f1ee 1f1f6","name":"flag: iraq"},{"codepoint":"1f1ee 1f1f7","name":"flag: iran"},{"codepoint":"1f1ee 1f1f8","name":"flag: iceland"},{"codepoint":"1f1ee 1f1f9","name":"flag: italy"},{"codepoint":"1f1ef 1f1ea","name":"flag: jersey"},{"codepoint":"1f1ef 1f1f2","name":"flag: jamaica"},{"codepoint":"1f1ef 1f1f4","name":"flag: jordan"},{"codepoint":"1f1ef 1f1f5","name":"flag: japan"},{"codepoint":"1f1f0 1f1ea","name":"flag: kenya"},{"codepoint":"1f1f0 1f1ec","name":"flag: kyrgyzstan"},{"codepoint":"1f1f0 1f1ed","name":"flag: cambodia"},{"codepoint":"1f1f0 1f1ee","name":"flag: kiribati"},{"codepoint":"1f1f0 1f1f2","name":"flag: comoros"},{"codepoint":"1f1f0 1f1f3","name":"flag: st. kitts & nevis"},{"codepoint":"1f1f0 1f1f5","name":"flag: north korea"},{"codepoint":"1f1f0 1f1f7","name":"flag: south korea"},{"codepoint":"1f1f0 1f1fc","name":"flag: kuwait"},{"codepoint":"1f1f0 1f1fe","name":"flag: cayman islands"},{"codepoint":"1f1f0 1f1ff","name":"flag: kazakhstan"},{"codepoint":"1f1f1 1f1e6","name":"flag: laos"},{"codepoint":"1f1f1 1f1e7","name":"flag: lebanon"},{"codepoint":"1f1f1 1f1e8","name":"flag: st. lucia"},{"codepoint":"1f1f1 1f1ee","name":"flag: liechtenstein"},{"codepoint":"1f1f1 1f1f0","name":"flag: sri lanka"},{"codepoint":"1f1f1 1f1f7","name":"flag: liberia"},{"codepoint":"1f1f1 1f1f8","name":"flag: lesotho"},{"codepoint":"1f1f1 1f1f9","name":"flag: lithuania"},{"codepoint":"1f1f1 1f1fa","name":"flag: luxembourg"},{"codepoint":"1f1f1 1f1fb","name":"flag: latvia"},{"codepoint":"1f1f1 1f1fe","name":"flag: libya"},{"codepoint":"1f1f2 1f1e6","name":"flag: morocco"},{"codepoint":"1f1f2 1f1e8","name":"flag: monaco"},{"codepoint":"1f1f2 1f1e9","name":"flag: moldova"},{"codepoint":"1f1f2 1f1ea","name":"flag: montenegro"},{"codepoint":"1f1f2 1f1eb","name":"flag: st. martin"},{"codepoint":"1f1f2 1f1ec","name":"flag: madagascar"},{"codepoint":"1f1f2 1f1ed","name":"flag: marshall islands"},{"codepoint":"1f1f2 1f1f0","name":"flag: north macedonia"},{"codepoint":"1f1f2 1f1f1","name":"flag: mali"},{"codepoint":"1f1f2 1f1f2","name":"flag: myanmar (burma)"},{"codepoint":"1f1f2 1f1f3","name":"flag: mongolia"},{"codepoint":"1f1f2 1f1f4","name":"flag: macao sar china"},{"codepoint":"1f1f2 1f1f5","name":"flag: northern mariana islands"},{"codepoint":"1f1f2 1f1f6","name":"flag: martinique"},{"codepoint":"1f1f2 1f1f7","name":"flag: mauritania"},{"codepoint":"1f1f2 1f1f8","name":"flag: montserrat"},{"codepoint":"1f1f2 1f1f9","name":"flag: malta"},{"codepoint":"1f1f2 1f1fa","name":"flag: mauritius"},{"codepoint":"1f1f2 1f1fb","name":"flag: maldives"},{"codepoint":"1f1f2 1f1fc","name":"flag: malawi"},{"codepoint":"1f1f2 1f1fd","name":"flag: mexico"},{"codepoint":"1f1f2 1f1fe","name":"flag: malaysia"},{"codepoint":"1f1f2 1f1ff","name":"flag: mozambique"},{"codepoint":"1f1f3 1f1e6","name":"flag: namibia"},{"codepoint":"1f1f3 1f1e8","name":"flag: new caledonia"},{"codepoint":"1f1f3 1f1ea","name":"flag: niger"},{"codepoint":"1f1f3 1f1eb","name":"flag: norfolk island"},{"codepoint":"1f1f3 1f1ec","name":"flag: nigeria"},{"codepoint":"1f1f3 1f1ee","name":"flag: nicaragua"},{"codepoint":"1f1f3 1f1f1","name":"flag: netherlands"},{"codepoint":"1f1f3 1f1f4","name":"flag: norway"},{"codepoint":"1f1f3 1f1f5","name":"flag: nepal"},{"codepoint":"1f1f3 1f1f7","name":"flag: nauru"},{"codepoint":"1f1f3 1f1fa","name":"flag: niue"},{"codepoint":"1f1f3 1f1ff","name":"flag: new zealand"},{"codepoint":"1f1f4 1f1f2","name":"flag: oman"},{"codepoint":"1f1f5 1f1e6","name":"flag: panama"},{"codepoint":"1f1f5 1f1ea","name":"flag: peru"},{"codepoint":"1f1f5 1f1eb","name":"flag: french polynesia"},{"codepoint":"1f1f5 1f1ec","name":"flag: papua new guinea"},{"codepoint":"1f1f5 1f1ed","name":"flag: philippines"},{"codepoint":"1f1f5 1f1f0","name":"flag: pakistan"},{"codepoint":"1f1f5 1f1f1","name":"flag: poland"},{"codepoint":"1f1f5 1f1f2","name":"flag: st. pierre & miquelon"},{"codepoint":"1f1f5 1f1f3","name":"flag: pitcairn islands"},{"codepoint":"1f1f5 1f1f7","name":"flag: puerto rico"},{"codepoint":"1f1f5 1f1f8","name":"flag: palestinian territories"},{"codepoint":"1f1f5 1f1f9","name":"flag: portugal"},{"codepoint":"1f1f5 1f1fc","name":"flag: palau"},{"codepoint":"1f1f5 1f1fe","name":"flag: paraguay"},{"codepoint":"1f1f6 1f1e6","name":"flag: qatar"},{"codepoint":"1f1f7 1f1ea","name":"flag: réunion"},{"codepoint":"1f1f7 1f1f4","name":"flag: romania"},{"codepoint":"1f1f7 1f1f8","name":"flag: serbia"},{"codepoint":"1f1f7 1f1fa","name":"flag: russia"},{"codepoint":"1f1f7 1f1fc","name":"flag: rwanda"},{"codepoint":"1f1f8 1f1e6","name":"flag: saudi arabia"},{"codepoint":"1f1f8 1f1e7","name":"flag: solomon islands"},{"codepoint":"1f1f8 1f1e8","name":"flag: seychelles"},{"codepoint":"1f1f8 1f1e9","name":"flag: sudan"},{"codepoint":"1f1f8 1f1ea","name":"flag: sweden"},{"codepoint":"1f1f8 1f1ec","name":"flag: singapore"},{"codepoint":"1f1f8 1f1ed","name":"flag: st. helena"},{"codepoint":"1f1f8 1f1ee","name":"flag: slovenia"},{"codepoint":"1f1f8 1f1ef","name":"flag: svalbard & jan mayen"},{"codepoint":"1f1f8 1f1f0","name":"flag: slovakia"},{"codepoint":"1f1f8 1f1f1","name":"flag: sierra leone"},{"codepoint":"1f1f8 1f1f2","name":"flag: san marino"},{"codepoint":"1f1f8 1f1f3","name":"flag: senegal"},{"codepoint":"1f1f8 1f1f4","name":"flag: somalia"},{"codepoint":"1f1f8 1f1f7","name":"flag: suriname"},{"codepoint":"1f1f8 1f1f8","name":"flag: south sudan"},{"codepoint":"1f1f8 1f1f9","name":"flag: são tomé & príncipe"},{"codepoint":"1f1f8 1f1fb","name":"flag: el salvador"},{"codepoint":"1f1f8 1f1fd","name":"flag: sint maarten"},{"codepoint":"1f1f8 1f1fe","name":"flag: syria"},{"codepoint":"1f1f8 1f1ff","name":"flag: eswatini"},{"codepoint":"1f1f9 1f1e6","name":"flag: tristan da cunha"},{"codepoint":"1f1f9 1f1e8","name":"flag: turks & caicos islands"},{"codepoint":"1f1f9 1f1e9","name":"flag: chad"},{"codepoint":"1f1f9 1f1eb","name":"flag: french southern territories"},{"codepoint":"1f1f9 1f1ec","name":"flag: togo"},{"codepoint":"1f1f9 1f1ed","name":"flag: thailand"},{"codepoint":"1f1f9 1f1ef","name":"flag: tajikistan"},{"codepoint":"1f1f9 1f1f0","name":"flag: tokelau"},{"codepoint":"1f1f9 1f1f1","name":"flag: timor-leste"},{"codepoint":"1f1f9 1f1f2","name":"flag: turkmenistan"},{"codepoint":"1f1f9 1f1f3","name":"flag: tunisia"},{"codepoint":"1f1f9 1f1f4","name":"flag: tonga"},{"codepoint":"1f1f9 1f1f7","name":"flag: turkey"},{"codepoint":"1f1f9 1f1f9","name":"flag: trinidad & tobago"},{"codepoint":"1f1f9 1f1fb","name":"flag: tuvalu"},{"codepoint":"1f1f9 1f1fc","name":"flag: taiwan"},{"codepoint":"1f1f9 1f1ff","name":"flag: tanzania"},{"codepoint":"1f1fa 1f1e6","name":"flag: ukraine"},{"codepoint":"1f1fa 1f1ec","name":"flag: uganda"},{"codepoint":"1f1fa 1f1f2","name":"flag: u.s. outlying islands"},{"codepoint":"1f1fa 1f1f3","name":"flag: united nations"},{"codepoint":"1f1fa 1f1f8","name":"flag: united states"},{"codepoint":"1f1fa 1f1fe","name":"flag: uruguay"},{"codepoint":"1f1fa 1f1ff","name":"flag: uzbekistan"},{"codepoint":"1f1fb 1f1e6","name":"flag: vatican city"},{"codepoint":"1f1fb 1f1e8","name":"flag: st. vincent & grenadines"},{"codepoint":"1f1fb 1f1ea","name":"flag: venezuela"},{"codepoint":"1f1fb 1f1ec","name":"flag: british virgin islands"},{"codepoint":"1f1fb 1f1ee","name":"flag: u.s. virgin islands"},{"codepoint":"1f1fb 1f1f3","name":"flag: vietnam"},{"codepoint":"1f1fb 1f1fa","name":"flag: vanuatu"},{"codepoint":"1f1fc 1f1eb","name":"flag: wallis & futuna"},{"codepoint":"1f1fc 1f1f8","name":"flag: samoa"},{"codepoint":"1f1fd 1f1f0","name":"flag: kosovo"},{"codepoint":"1f1fe 1f1ea","name":"flag: yemen"},{"codepoint":"1f1fe 1f1f9","name":"flag: mayotte"},{"codepoint":"1f1ff 1f1e6","name":"flag: south africa"},{"codepoint":"1f1ff 1f1f2","name":"flag: zambia"},{"codepoint":"1f1ff 1f1fc","name":"flag: zimbabwe"}]')}}); +//# sourceMappingURL=app.751de567.js.map \ No newline at end of file diff --git a/js/app.751de567.js.map b/js/app.751de567.js.map new file mode 100644 index 0000000..6e42ba9 --- /dev/null +++ b/js/app.751de567.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/unavailable.svg","webpack:///./src/assets/social-icons/twitter.svg","webpack:///./src/views/Home.vue","webpack:///./src/components/TheNavbar.vue","webpack:///./src/components/TheNavbar.vue?bbf1","webpack:///./src/components/TheMainContentFrame.vue","webpack:///./src/components/TheMainContentFrame.vue?dc4f","webpack:///./src/components/TheFooter.vue","webpack:///./src/components/TheFooter.vue?3cef","webpack:///./src/components/EmojiGrid.vue","webpack:///./src/components/EmojiGrid.vue?b79e","webpack:///./src/components/EmojiDownloadModal.vue","webpack:///./src/components/EmojiDownloadSubModal.vue","webpack:///./src/components/downloadForce.js","webpack:///./src/components/downloadResource.js","webpack:///./src/components/converterSvgToPng.js","webpack:///./src/components/EmojiDownloadSubModal.vue?79ea","webpack:///./src/components/EmojiDownloadModal.vue?37e1","webpack:///./src/components/SearchBar.vue","webpack:///./src/components/SearchBar.vue?5922","webpack:///./src/components/Pagination/PaginationIndicator.vue","webpack:///./src/components/Pagination/PaginationIndicatorButton.vue","webpack:///./src/components/Pagination/PaginationIndicatorButton.vue?d61b","webpack:///./src/components/Pagination/PaginationMobileButton.vue","webpack:///./src/components/Pagination/PaginationMobileButton.vue?c7ff","webpack:///./src/components/Pagination/PaginationIndicator.vue?7c90","webpack:///./src/views/Home.vue?f63c","webpack:///./src/views/Page404.vue","webpack:///./src/components/ErrorMessagePage.vue","webpack:///./src/components/ErrorMessagePage.vue?e564","webpack:///./src/views/Page404.vue?042d","webpack:///./src/main.js","webpack:///./src/assets/logo/logo-full-color-light.svg","webpack:///./src/assets/social-icons/github.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","navigation","searchText","label","paginatedEmojiList","filteredEmojiList","$refs","modal","openModal","$event","hiddenItems","products","currentPage","numberOfPages","ref","href","src","alt","as","open","aria-hidden","item","aria-current","current","undefined","components","Disclosure","DisclosureButton","DisclosurePanel","MenuIcon","XIcon","props","type","Array","required","validator","__exports__","target","product","codepoint","$emit","emits","methods","capitalize","string","charAt","toUpperCase","show","isOpen","closeModal","enter","enter-from","enter-to","leave","leave-from","leave-to","replace","copied","submodal","forceDownload","blob","filename","a","document","createElement","download","body","appendChild","click","remove","downloadResource","url","split","pop","fetch","headers","Headers","Origin","location","origin","then","response","blobUrl","URL","createObjectURL","catch","e","console","error","vector","pngFromURL","width","height","ogWidth","ogHeight","canvas","OffscreenCanvas","ctx","getContext","Canvg","from","resize","render","convertToBlob","pngUrl","TransitionRoot","TransitionChild","Dialog","DialogOverlay","DialogTitle","setup","code","this","downloadEmojiPngFromUrl","copyToClipboard","content","isSecureContext","navigator","clipboard","writeText","alert","EmojiDownloadSubModal","ChevronDownIcon","ClipboardCopyIcon","CheckIcon","args","fallbackImage","for","autocomplete","id","modelValue","placeholder","aria-label","setPageIndex","currentPageUserVersion","min-width","index","active","showPage","link","activityClass","minWidth","Number","Boolean","default","String","computed","ChevronLeftIcon","ChevronRightIcon","ChevronDoubleLeftIcon","ChevronDoubleRightIcon","PaginationIndicatorButton","PaginationMobileButton","TheNavbar","TheMainContentFrame","TheFooter","EmojiGrid","EmojiDownloadModal","SearchBar","PaginationIndicator","gridData","itemsPerPage","watch","filter","includes","toLowerCase","Math","floor","errorCode","header","description","ErrorMessagePage","routes","path","component","Home","Page404","router","createRouter","history","createWebHistory","createApp","use","mount"],"mappings":"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","file":"js/app.751de567.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/unavailable.f5da4bf5.svg\";","module.exports = __webpack_public_path__ + \"img/twitter.fb08dd7a.svg\";","\n\n","\n\n","import { render } from \"./TheNavbar.vue?vue&type=template&id=3ccf90cc\"\nimport script from \"./TheNavbar.vue?vue&type=script&lang=js\"\nexport * from \"./TheNavbar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./TheMainContentFrame.vue?vue&type=template&id=5d9ec06b\"\nimport script from \"./TheMainContentFrame.vue?vue&type=script&lang=js\"\nexport * from \"./TheMainContentFrame.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./TheFooter.vue?vue&type=template&id=c82ea92c\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=js\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./EmojiGrid.vue?vue&type=template&id=b64dce0c\"\nimport script from \"./EmojiGrid.vue?vue&type=script&lang=js\"\nexport * from \"./EmojiGrid.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","\n\n\n","function forceDownload(blob, filename) {\n var a = document.createElement(\"a\");\n a.download = filename;\n a.href = blob;\n document.body.appendChild(a); // For Firefox\n a.click();\n a.remove();\n}\n\nexport default forceDownload","import forceDownload from \"./downloadForce.js\"\n\nfunction downloadResource(url, filename) {\n if (!filename) filename = url.split(\"\\\\\").pop().split(\"/\").pop();\n fetch(url, {\n headers: new Headers({\n Origin: location.origin,\n }),\n mode: \"cors\",\n })\n .then((response) => response.blob())\n .then((blob) => {\n let blobUrl = window.URL.createObjectURL(blob);\n forceDownload(blobUrl, filename);\n })\n .catch((e) => console.error(e));\n}\n\nexport default downloadResource;","import Canvg from 'canvg';\n\nlet vector = null;\n\nasync function pngFromURL(url, width, height, ogWidth = 72, ogHeight = 72) {\n // Create canvas with original SVG\n const canvas = new OffscreenCanvas(ogWidth, ogHeight);\n const ctx = canvas.getContext('2d');\n vector = await Canvg.from(ctx, url);\n\n // Rezise and render\n vector.resize(width, height, 'xMidYMid meet');\n await vector.render();\n\n // Get URL (pngUrl) for png\n const blob = await canvas.convertToBlob();\n const pngUrl = URL.createObjectURL(blob);\n return pngUrl;\n}\n\nexport default pngFromURL","import { render } from \"./EmojiDownloadSubModal.vue?vue&type=template&id=7c7fa825\"\nimport script from \"./EmojiDownloadSubModal.vue?vue&type=script&lang=js\"\nexport * from \"./EmojiDownloadSubModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./EmojiDownloadModal.vue?vue&type=template&id=d2ed90bc\"\nimport script from \"./EmojiDownloadModal.vue?vue&type=script&lang=js\"\nexport * from \"./EmojiDownloadModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./SearchBar.vue?vue&type=template&id=0686aa19\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","\n\n\n","import { render } from \"./PaginationIndicatorButton.vue?vue&type=template&id=66c4c3f9\"\nimport script from \"./PaginationIndicatorButton.vue?vue&type=script&lang=js\"\nexport * from \"./PaginationIndicatorButton.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./PaginationMobileButton.vue?vue&type=template&id=11fcc12e\"\nimport script from \"./PaginationMobileButton.vue?vue&type=script&lang=js\"\nexport * from \"./PaginationMobileButton.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./PaginationIndicator.vue?vue&type=template&id=0495ba2c\"\nimport script from \"./PaginationIndicator.vue?vue&type=script&lang=js\"\nexport * from \"./PaginationIndicator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Home.vue?vue&type=template&id=6bd9f3fa\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","\n\n","import { render } from \"./ErrorMessagePage.vue?vue&type=template&id=1b8235d8\"\nimport script from \"./ErrorMessagePage.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorMessagePage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Page404.vue?vue&type=template&id=2bdff92e\"\nimport script from \"./Page404.vue?vue&type=script&lang=js\"\nexport * from \"./Page404.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue/dist/vue.esm-bundler'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport Home from '@/views/Home.vue'\nimport Page404 from '@/views/Page404.vue'\nimport '@/index.css'\nimport '@/assets/tailwind.css'\n\n\nconst routes = [\n { path: '/', component: Home },\n { path: '/:pathMatch(.*)*', component: Page404 }\n]\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n})\n\n\ncreateApp({})\n .use(router)\n .mount('#app')\n","module.exports = __webpack_public_path__ + \"img/logo-full-color-light.9c76f026.svg\";","module.exports = __webpack_public_path__ + \"img/github.93125ad9.svg\";"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.b39286ec.js b/js/app.b39286ec.js deleted file mode 100644 index ca095ca..0000000 --- a/js/app.b39286ec.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function n(n){for(var o,d,t=n[0],m=n[1],c=n[2],s=0,r=[];s=1}}}},P=f("6b0d"),z=f.n(P);const q=z()(O,[["render",v]]);var I=q,C={class:"max-w-2xl mx-auto py-12 px-4 sm:py-20 sm:px-6 lg:max-w-7xl lg:px-8"};function B(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",C,[Object(a["A"])(e.$slots,"default")])}var D={};const T=z()(D,[["render",B]]);var M=T,_=f("e9e1"),S=f.n(_),E=f("4208"),R=f.n(E),L={class:"text-gray-300 bg-gray-800 bottom-0"},U=Object(a["h"])("div",{class:"grid gap-8 sm:grid-cols-4 max-w-2xl mx-auto py-12 px-4 sm:px-6 lg:max-w-7xl lg:px-8"},[Object(a["h"])("div",null,[Object(a["h"])("img",{class:"h-8",src:c.a,alt:"Twemoji Utils logotype"})]),Object(a["h"])("div",{class:"text-sm col-span-2"},[Object(a["i"])(" Thanks to the creators of "),Object(a["h"])("a",{href:"https://twemoji.twitter.com",target:"_blank",class:"underline hover:text-gray-50"},"Twemoji"),Object(a["i"])(" for making this set of emojis "),Object(a["h"])("a",{href:"https://creativecommons.org/licenses/by/4.0/",target:"_blank",class:"underline hover:text-gray-50"},"free to use"),Object(a["i"])(". This site was made by "),Object(a["h"])("a",{href:"https://github.com/gustavwilliam/",target:"_blank",class:"underline hover:text-gray-50"},"Gustav Odinger"),Object(a["i"])(". ")]),Object(a["h"])("div",{class:"flex flex-col items-start sm:items-end max-w-screen-xl"},[Object(a["h"])("div",{class:"flex items-center space-x-2"},[Object(a["h"])("a",{href:"https://github.com/gustavwilliam",target:"_blank",class:"hover:text-gray-50 flex flex-row space-x-3"},[Object(a["h"])("img",{class:"w-6 h-6","aria-hidden":"true",src:S.a,alt:"GitHub logo"}),Object(a["h"])("span",{class:"sr-only"},"GitHub")]),Object(a["h"])("a",{href:"https://twitter.com/gustavodinger",target:"_blank",class:"hover:text-gray-50 flex flex-row space-x-3"},[Object(a["h"])("img",{class:"w-6 h-6","aria-hidden":"true",src:R.a,alt:"Twitter logo"}),Object(a["h"])("span",{class:"sr-only"},"Twitter")])])])],-1),F=[U];function N(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("footer",L,F)}var V={};const G=z()(V,[["render",N]]);var H=G,$=(f("ac1f"),f("5319"),{class:"my-12"}),A=Object(a["h"])("h2",{class:"sr-only"},"Products",-1),J={class:"grid grid-cols-3 gap-y-10 sm:grid-cols-5 gap-x-6 lg:grid-cols-8 xl:grid-cols-9 xl:gap-x-8"},W=["onClick"],X={class:"w-full aspect-w-1 aspect-h-1 rounded-xl overflow-hidden"},Y=["src","onError","alt"],K={class:"mt-4 text-sm text-gray-700 dark:text-gray-400"},Q={class:"mt-1 text-lg font-medium text-gray-900 dark:text-gray-100"};function Z(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",$,[A,Object(a["h"])("div",J,[(Object(a["v"])(!0),Object(a["g"])(a["a"],null,Object(a["z"])(f.products,(function(n){return Object(a["v"])(),Object(a["g"])("a",{key:n.codepoint,href:"#/",class:"group",onClick:function(f){return e.$emit("open-modal",n.codepoint)}},[Object(a["h"])("div",X,[Object(a["h"])("img",{src:"https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+n.codepoint.replace(/\s+/g,"-")+".svg",onError:function(f){return e.$emit("hide-item",n.codepoint)},alt:n.name,class:"w-full h-full object-center object-cover group-hover:opacity-75"},null,40,Y)]),Object(a["h"])("h3",K,Object(a["D"])(d.capitalize(n.name)),1),Object(a["h"])("p",Q,Object(a["D"])(n.codepoint.toUpperCase()),1)],8,W)})),128))])])}var ee={props:{products:{type:Array,required:!0,validator:function(e){return e.length>=1}}},emits:["open-modal","hide-item"],methods:{capitalize:function(e){return e.charAt(0).toUpperCase()+e.slice(1)}}};const ne=z()(ee,[["render",Z]]);var fe=ne,oe={class:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"},ie=Object(a["h"])("span",{class:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true"},"​",-1),ae={class:"inline-block align-bottom bg-white dark:bg-gray-900 rounded-xl text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"},de={class:"bg-white dark:bg-gray-900 px-4 pt-5 pb-4 sm:p-6 sm:pb-4"},te={class:"sm:flex flex-col items-center"},me={class:"mx-auto flex-shrink-0 flex items-center justify-center h-24 w-24 sm:mx-0"},ce=["src"],pe={class:"mt-3 text-center"},se=Object(a["i"])(" Download emoji "),re=Object(a["h"])("div",{class:"mt-2"},[Object(a["h"])("p",{class:"text-sm text-gray-500"}," Select your preferred format to begin the download. ")],-1),le={class:"bg-gray-50 dark:bg-gray-800 px-4 py-3 sm:px-6 sm:flex sm:flex-row sm:justify-center"};function ke(e,n,f,o,i,d){var t=this,m=Object(a["B"])("DialogOverlay"),c=Object(a["B"])("TransitionChild"),p=Object(a["B"])("DialogTitle"),s=Object(a["B"])("EmojiDownloadSubModal"),r=Object(a["B"])("Dialog"),l=Object(a["B"])("TransitionRoot");return Object(a["v"])(),Object(a["e"])(l,{as:"template",show:o.isOpen},{default:Object(a["I"])((function(){return[Object(a["j"])(r,{as:"div",class:"fixed z-10 inset-0 overflow-y-auto",onClose:o.closeModal},{default:Object(a["I"])((function(){return[Object(a["h"])("div",oe,[Object(a["j"])(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0","enter-to":"opacity-100",leave:"ease-in duration-200","leave-from":"opacity-100","leave-to":"opacity-0"},{default:Object(a["I"])((function(){return[Object(a["j"])(m,{class:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})]})),_:1}),ie,Object(a["j"])(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:Object(a["I"])((function(){return[Object(a["h"])("div",ae,[Object(a["h"])("div",de,[Object(a["h"])("div",te,[Object(a["h"])("div",me,[Object(a["h"])("img",{src:"https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg",onError:n[0]||(n[0]=function(e){e.target.src=i.fallbackImage,o.closeModal()}),alt:"Emoji",class:"w-full h-full"},null,40,ce)]),Object(a["h"])("div",pe,[Object(a["j"])(p,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900 dark:text-gray-50"},{default:Object(a["I"])((function(){return[se]})),_:1}),re])])]),Object(a["h"])("div",le,[Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:ml-3 sm:w-auto sm:text-sm",href:"#/",onClick:n[1]||(n[1]=function(e){d.downloadResource("https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg"),o.closeModal()})}," SVG "),Object(a["h"])("a",{class:"cursor-pointer mt-3 w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm",href:"#/",onClick:n[2]||(n[2]=function(e){return t.$refs.submodal.openModal(o.codepoint)})}," PNG "),Object(a["h"])("button",{type:"button",class:"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 dark:border-gray-600 shadow-sm px-4 py-2 bg-white dark:bg-gray-700 text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm",onClick:n[3]||(n[3]=function(){return o.closeModal&&o.closeModal.apply(o,arguments)}),ref:"cancelButtonRef"}," Cancel ",512)])])]})),_:1})]),Object(a["j"])(s,{ref:"submodal"},null,512)]})),_:1},8,["onClose"])]})),_:1},8,["show"])}var ge=f("b8b6"),ue=f("f247"),he={class:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"},be=Object(a["h"])("span",{class:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true"},"​",-1),we={class:"inline-block align-bottom bg-white dark:bg-gray-900 rounded-xl text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-sm sm:w-full"},ye={class:"bg-white dark:bg-gray-900 px-4 pt-5 pb-4 sm:p-6 sm:pb-4"},ve={class:"sm:flex flex-col items-center"},je={class:"text-center"},xe=Object(a["i"])(" Choose size "),Oe=Object(a["h"])("div",{class:"mt-2"},[Object(a["h"])("p",{class:"text-sm text-gray-500"},"Select a resolution.")],-1),Pe={class:"bg-gray-50 dark:bg-gray-800 px-4 py-3 sm:px-6 sm:flex sm:flex-row sm:justify-center"};function ze(e,n,f,o,i,d){var t=Object(a["B"])("DialogOverlay"),m=Object(a["B"])("TransitionChild"),c=Object(a["B"])("DialogTitle"),p=Object(a["B"])("Dialog"),s=Object(a["B"])("TransitionRoot");return Object(a["v"])(),Object(a["e"])(s,{as:"template",show:o.isOpen},{default:Object(a["I"])((function(){return[Object(a["j"])(p,{as:"div",class:"fixed z-20 inset-0 overflow-y-auto",onClose:o.closeModal},{default:Object(a["I"])((function(){return[Object(a["h"])("div",he,[Object(a["j"])(m,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0","enter-to":"opacity-100",leave:"ease-in duration-200","leave-from":"opacity-100","leave-to":"opacity-0"},{default:Object(a["I"])((function(){return[Object(a["j"])(t,{class:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})]})),_:1}),be,Object(a["j"])(m,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:Object(a["I"])((function(){return[Object(a["h"])("div",we,[Object(a["h"])("div",ye,[Object(a["h"])("div",ve,[Object(a["h"])("div",je,[Object(a["j"])(c,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900 dark:text-gray-50"},{default:Object(a["I"])((function(){return[xe]})),_:1}),Oe])])]),Object(a["h"])("div",Pe,[Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:ml-3 sm:w-auto sm:text-sm",href:"#/",onClick:n[0]||(n[0]=function(e){d.downloadResource("https://raw.githubusercontent.com/twitter/twemoji/master/assets/72x72/"+o.codepoint.replace(/\s+/g,"-")+".png"),o.closeModal()})}," 72x72 "),Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm sm:ml-3 mt-3 px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:w-auto sm:text-sm",href:"#/",onClick:n[1]||(n[1]=function(e){d.downloadEmojiPngFromUrl("https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg",256,256,o.codepoint+".png"),o.closeModal()})}," 256x256 "),Object(a["h"])("a",{class:"cursor-pointer w-full inline-flex justify-center rounded-md border border-transparent shadow-sm sm:ml-3 mt-3 px-4 py-2 bg-blue-twitter text-base font-medium text-white hover:bg-blue-twitter-dark focus:outline-none focus:ring-2 focus:ring-offset-2 dark:ring-offset-gray-800 focus:ring-blue-twitter sm:mt-0 sm:w-auto sm:text-sm",href:"#/",onClick:n[2]||(n[2]=function(e){d.downloadEmojiPngFromUrl("https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/"+o.codepoint.replace(/\s+/g,"-")+".svg",512,512,o.codepoint+".png"),o.closeModal()})}," 512x512 ")])])]})),_:1})])]})),_:1},8,["onClose"])]})),_:1},8,["show"])}var qe=f("1da1");f("96cf"),f("1276"),f("3ca3"),f("ddb0"),f("2b3d"),f("9861");function Ie(e,n){var f=document.createElement("a");f.download=n,f.href=e,document.body.appendChild(f),f.click(),f.remove()}var Ce=Ie;function Be(e,n){n||(n=e.split("\\").pop().split("/").pop()),fetch(e,{headers:new Headers({Origin:location.origin}),mode:"cors"}).then((function(e){return e.blob()})).then((function(e){var f=window.URL.createObjectURL(e);Ce(f,n)})).catch((function(e){return console.error(e)}))}var De=Be,Te=f("0d73"),Me=null;function _e(e,n,f){return Se.apply(this,arguments)}function Se(){return Se=Object(qe["a"])(regeneratorRuntime.mark((function e(n,f,o){var i,a,d,t,m,c,p=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return i=p.length>3&&void 0!==p[3]?p[3]:72,a=p.length>4&&void 0!==p[4]?p[4]:72,d=new OffscreenCanvas(i,a),t=d.getContext("2d"),e.next=6,Te["a"].from(t,n);case 6:return Me=e.sent,Me.resize(f,o,"xMidYMid meet"),e.next=10,Me.render();case 10:return e.next=12,d.convertToBlob();case 12:return m=e.sent,c=URL.createObjectURL(m),e.abrupt("return",c);case 15:case"end":return e.stop()}}),e)}))),Se.apply(this,arguments)}var Ee=_e,Re={components:{TransitionRoot:ue["b"],TransitionChild:ue["a"],Dialog:ge["a"],DialogOverlay:ge["b"],DialogTitle:ge["c"]},setup:function(){var e=Object(a["y"])(!1),n=Object(a["y"])("");return{isOpen:e,codepoint:n,closeModal:function(){e.value=!1},openModal:function(n){e.value=!0,this.codepoint=n}}},methods:{downloadResource:De,pngFromURL:Ee,forceDownload:Ce,downloadEmojiPngFromUrl:function(e,n,f,o){return Object(qe["a"])(regeneratorRuntime.mark((function i(){return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:return i.t0=Ce,i.next=3,Ee(e,n,f);case 3:i.t1=i.sent,i.t2=o,(0,i.t0)(i.t1,i.t2);case 6:case"end":return i.stop()}}),i)})))()}}};const Le=z()(Re,[["render",ze]]);var Ue=Le,Fe={components:{Dialog:ge["a"],DialogOverlay:ge["b"],DialogTitle:ge["c"],TransitionChild:ue["a"],TransitionRoot:ue["b"],EmojiDownloadSubModal:Ue},setup:function(){var e=Object(a["y"])(!1),n=Object(a["y"])("");return{isOpen:e,codepoint:n,closeModal:function(){e.value=!1},openModal:function(n){e.value=!0,this.codepoint=n}}},data:function(){return{fallbackImage:f("15d8")}},methods:{downloadResource:De}};const Ne=z()(Fe,[["render",ke]]);var Ve=Ne,Ge={class:"my-3"},He={for:"searchBar",class:"ml-1 block text-sm font-medium text-gray-700 dark:text-gray-300"},$e={class:"mt-2 relative rounded-md shadow-sm max-w-sm"},Ae=["value"];function Je(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",Ge,[Object(a["h"])("label",He,Object(a["D"])(f.label),1),Object(a["h"])("div",$e,[Object(a["h"])("input",{type:"text",autocomplete:"off",name:"searchBar",id:"searchBar",value:f.modelValue,onInput:n[0]||(n[0]=function(n){return e.$emit("update:modelValue",n.target.value)}),class:"focus:ring-blue-twitter focus:border-blue-twitter block w-full sm:text-sm dark:text-gray-50 dark:bg-gray-800 border-gray-300 dark:border-gray-700 rounded-md",placeholder:"Search..."},null,40,Ae)])])}var We={props:["modelValue","label"],emits:["update:modelValue"]};const Xe=z()(We,[["render",Je]]);var Ye=Xe,Ke={class:"px-2 py-3 flex items-center justify-between sm:px-6"},Qe={class:"flex-1 flex justify-between items-center sm:hidden"},Ze={class:"text-gray-500 text-sm"},en={class:"hidden sm:flex-1 sm:flex sm:items-center sm:justify-around"},nn={class:"relative z-0 inline-flex rounded-md shadow-sm -space-x-px","aria-label":"Pagination"},fn=Object(a["h"])("span",{class:"sr-only"},"First",-1),on=Object(a["h"])("span",{class:"sr-only"},"Previous",-1),an=Object(a["h"])("span",{class:"sr-only"},"Next",-1),dn=Object(a["h"])("span",{class:"sr-only"},"Last",-1);function tn(e,n,f,o,i,d){var t=Object(a["B"])("PaginationMobileButton"),m=Object(a["B"])("ChevronDoubleLeftIcon"),c=Object(a["B"])("PaginationIndicatorButton"),p=Object(a["B"])("ChevronLeftIcon"),s=Object(a["B"])("ChevronRightIcon"),r=Object(a["B"])("ChevronDoubleRightIcon");return Object(a["v"])(),Object(a["g"])("div",Ke,[Object(a["h"])("div",Qe,[0!==f.currentPage?(Object(a["v"])(),Object(a["e"])(t,{key:0,content:"Previous",onClick:n[0]||(n[0]=function(e){return d.setPageIndex(f.currentPage-1)})})):Object(a["f"])("",!0),Object(a["h"])("p",Ze," Page "+Object(a["D"])(d.currentPageUserVersion)+" of "+Object(a["D"])(f.numberOfPages),1),f.currentPage!==f.numberOfPages-1?(Object(a["v"])(),Object(a["e"])(t,{key:1,content:"Next",onClick:n[1]||(n[1]=function(e){return d.setPageIndex(f.currentPage+1)})})):Object(a["f"])("",!0)]),Object(a["h"])("div",en,[Object(a["h"])("div",null,[Object(a["h"])("nav",nn,[0!==f.currentPage?(Object(a["v"])(),Object(a["e"])(c,{key:0,"min-width":!0,onClick:n[2]||(n[2]=function(e){return d.setPageIndex(0)})},{default:Object(a["I"])((function(){return[fn,Object(a["j"])(m,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0),0!==f.currentPage?(Object(a["v"])(),Object(a["e"])(c,{key:1,"min-width":!0,onClick:n[3]||(n[3]=function(e){return d.setPageIndex(f.currentPage-1)})},{default:Object(a["I"])((function(){return[on,Object(a["j"])(p,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0),(Object(a["v"])(!0),Object(a["g"])(a["a"],null,Object(a["z"])(f.numberOfPages,(function(e){return Object(a["J"])((Object(a["v"])(),Object(a["e"])(c,{key:e,index:e,active:e===d.currentPageUserVersion,onClick:function(n){return d.setPageIndex(e-1)}},null,8,["index","active","onClick"])),[[a["F"],d.showPage(e-1)]])})),128)),f.currentPage!==f.numberOfPages-1?(Object(a["v"])(),Object(a["e"])(c,{key:2,onClick:n[4]||(n[4]=function(e){return d.setPageIndex(f.currentPage+1)}),"min-width":!0},{default:Object(a["I"])((function(){return[an,Object(a["j"])(s,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0),f.currentPage!==f.numberOfPages-1?(Object(a["v"])(),Object(a["e"])(c,{key:3,onClick:n[5]||(n[5]=function(e){return d.setPageIndex(f.numberOfPages-1)}),"min-width":!0},{default:Object(a["I"])((function(){return[dn,Object(a["j"])(r,{class:"h-5 w-5","aria-hidden":"true"})]})),_:1})):Object(a["f"])("",!0)])])])])}f("a9e3");var mn=f("fd7f"),cn=(f("9911"),["href"]);function pn(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("a",{href:f.link,class:Object(a["p"])(["relative items-center py-2 border text-sm font-medium first:rounded-l-md last:rounded-r-md",d.activityClass+" "+(f.minWidth?"px-2":"px-4")])},[Object(a["i"])(Object(a["D"])(f.index)+" ",1),Object(a["A"])(e.$slots,"default")],10,cn)}var sn={props:{index:{type:Number,required:!1},active:{type:Boolean,required:!1,default:!1},link:{type:String,required:!1,default:"#"},minWidth:{type:Boolean,required:!1,default:!1}},computed:{activityClass:function(){return this.active?"bg-blue-50 dark:bg-blue-900 border-blue-twitter text-blue-twitter-dark dark:text-blue-twitter dark:border-blue-twitter-dark z-10":"bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"}}};const rn=z()(sn,[["render",pn]]);var ln=rn,kn=["href"];function gn(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("a",{href:f.link,class:"relative inline-flex items-center px-4 py-2 border border-gray-300 dark:border-gray-700 text-sm font-medium rounded-md text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700"},[Object(a["i"])(Object(a["D"])(f.content)+" ",1),Object(a["A"])(e.$slots,"default")],8,kn)}var un={props:{content:{type:String,required:!1,validator:function(e){return e.length<15}},link:{type:String,required:!1,default:"#"}}};const hn=z()(un,[["render",gn]]);var bn=hn,wn={components:{ChevronLeftIcon:mn["c"],ChevronRightIcon:mn["d"],ChevronDoubleLeftIcon:mn["a"],ChevronDoubleRightIcon:mn["b"],PaginationIndicatorButton:ln,PaginationMobileButton:bn},props:{currentPage:{type:Number,required:!0,validator:function(e){return e>=0}},numberOfPages:{type:Number,required:!0,validator:function(e){return e>=0}}},emits:["set-pagination-index"],computed:{currentPageUserVersion:function(){return this.currentPage+1}},methods:{setPageIndex:function(e){this.$emit("set-pagination-index",e)},showPage:function(e){return this.currentPage<=1&&e<=4||this.numberOfPages-this.currentPage<=2&&e>=this.numberOfPages-5||this.currentPage-2<=e&&e<=this.currentPage+2}}};const yn=z()(wn,[["render",tn]]);var vn=yn,jn=f("fc30"),xn={name:"Home",components:{TheNavbar:I,TheMainContentFrame:M,TheFooter:H,EmojiGrid:fe,EmojiDownloadModal:Ve,SearchBar:Ye,PaginationIndicator:vn},data:function(){return{gridData:jn,hiddenItems:[],searchText:"",itemsPerPage:45,currentPage:0}},watch:{searchText:function(){this.currentPage=0}},computed:{filteredEmojiList:function(){var e=this;return this.gridData.filter((function(n){return(n.name.includes(e.searchText.toLowerCase())||n.codepoint.includes(e.searchText.toLowerCase()))&&!e.hiddenItems.includes(n.codepoint)}))},numberOfPages:function(){return Math.floor(this.filteredEmojiList.length/this.itemsPerPage)||1},paginatedEmojiList:function(){return this.filteredEmojiList.slice(this.itemsPerPage*this.currentPage,this.itemsPerPage*(this.currentPage+1))}}};const On=z()(xn,[["render",t]]);var Pn=On;function zn(e,n,f,o,i,d){var t=Object(a["B"])("TheNavbar"),m=Object(a["B"])("ErrorMessagePage"),c=Object(a["B"])("TheFooter");return Object(a["v"])(),Object(a["g"])(a["a"],null,[Object(a["j"])(t,{navigation:[{name:"Home",href:"/",current:!1},{name:"GitHub",href:"https://github.com/gustavwilliam/twemoji-utils",current:!1}]},null,8,["navigation"]),Object(a["h"])("div",null,[Object(a["j"])(m,{errorCode:"404",header:"Page not found",description:"Sorry, but the page you're looking for doesn't seem to exist."})]),Object(a["j"])(c)],64)}f("a4d3"),f("e01a");var qn={class:"max-w-7xl py-16 px-4 mx-auto sm:px-6 lg:px-8 sm:py-24"},In={class:"text-blue-twitter text-sm uppercase font-semibold"},Cn={class:"text-5xl font-extrabold text-gray-900 dark:text-gray-100 py-3"},Bn={class:"opacity-50 dark:text-white"};function Dn(e,n,f,o,i,d){return Object(a["v"])(),Object(a["g"])("div",qn,[Object(a["h"])("h2",In,Object(a["D"])(f.errorCode)+" error ",1),Object(a["h"])("h1",Cn,Object(a["D"])(f.header),1),Object(a["h"])("p",Bn,Object(a["D"])(f.description),1)])}var Tn={name:"ErrorMessagePage",props:{errorCode:{type:String,required:!1,default:"Unknown"},header:{type:String,required:!1,default:"Something went wrong"},description:{type:String,required:!1,default:"An unexpected error occurred. Sorry for the inconvenience."}}};const Mn=z()(Tn,[["render",Dn]]);var _n=Mn,Sn={name:"Page404",components:{TheNavbar:I,ErrorMessagePage:_n,TheFooter:H}};const En=z()(Sn,[["render",zn]]);var Rn=En,Ln=(f("a766"),f("ba8c"),[{path:"/",component:Pn},{path:"/:pathMatch(.*)*",component:Rn}]),Un=Object(i["a"])({history:Object(i["b"])(),routes:Ln});Object(o["a"])({}).use(Un).mount("#app")},"8f70":function(e,n,f){e.exports=f.p+"img/logo-full-color-light.9c76f026.svg"},a766:function(e,n,f){},ba8c:function(e,n,f){},e9e1:function(e,n,f){e.exports=f.p+"img/github.93125ad9.svg"},fc30:function(e){e.exports=JSON.parse('[{"codepoint":"1f600","name":"grinning face"},{"codepoint":"1f603","name":"grinning face with big eyes"},{"codepoint":"1f604","name":"grinning face with smiling eyes"},{"codepoint":"1f601","name":"beaming face with smiling eyes"},{"codepoint":"1f606","name":"grinning squinting face"},{"codepoint":"1f605","name":"grinning face with sweat"},{"codepoint":"1f923","name":"rolling on the floor laughing"},{"codepoint":"1f602","name":"face with tears of joy"},{"codepoint":"1f642","name":"slightly smiling face"},{"codepoint":"1f643","name":"upside-down face"},{"codepoint":"1fae0","name":"melting face"},{"codepoint":"1f609","name":"winking face"},{"codepoint":"1f60a","name":"smiling face with smiling eyes"},{"codepoint":"1f607","name":"smiling face with halo"},{"codepoint":"1f970","name":"smiling face with hearts"},{"codepoint":"1f60d","name":"smiling face with heart-eyes"},{"codepoint":"1f929","name":"star-struck"},{"codepoint":"1f618","name":"face blowing a kiss"},{"codepoint":"1f617","name":"kissing face"},{"codepoint":"263a fe0f","name":"smiling face"},{"codepoint":"1f61a","name":"kissing face with closed eyes"},{"codepoint":"1f619","name":"kissing face with smiling eyes"},{"codepoint":"1f972","name":"smiling face with tear"},{"codepoint":"1f60b","name":"face savoring food"},{"codepoint":"1f61b","name":"face with tongue"},{"codepoint":"1f61c","name":"winking face with tongue"},{"codepoint":"1f92a","name":"zany face"},{"codepoint":"1f61d","name":"squinting face with tongue"},{"codepoint":"1f911","name":"money-mouth face"},{"codepoint":"1f917","name":"smiling face with open hands"},{"codepoint":"1f92d","name":"face with hand over mouth"},{"codepoint":"1fae2","name":"face with open eyes and hand over mouth"},{"codepoint":"1fae3","name":"face with peeking eye"},{"codepoint":"1f92b","name":"shushing face"},{"codepoint":"1f914","name":"thinking face"},{"codepoint":"1fae1","name":"saluting face"},{"codepoint":"1f910","name":"zipper-mouth face"},{"codepoint":"1f928","name":"face with raised eyebrow"},{"codepoint":"1f610","name":"neutral face"},{"codepoint":"1f611","name":"expressionless face"},{"codepoint":"1f636","name":"face without mouth"},{"codepoint":"1fae5","name":"dotted line face"},{"codepoint":"1f636 200d 1f32b fe0f","name":"face in clouds"},{"codepoint":"1f60f","name":"smirking face"},{"codepoint":"1f612","name":"unamused face"},{"codepoint":"1f644","name":"face with rolling eyes"},{"codepoint":"1f62c","name":"grimacing face"},{"codepoint":"1f62e 200d 1f4a8","name":"face exhaling"},{"codepoint":"1f925","name":"lying face"},{"codepoint":"1f60c","name":"relieved face"},{"codepoint":"1f614","name":"pensive face"},{"codepoint":"1f62a","name":"sleepy face"},{"codepoint":"1f924","name":"drooling face"},{"codepoint":"1f634","name":"sleeping face"},{"codepoint":"1f637","name":"face with medical mask"},{"codepoint":"1f912","name":"face with thermometer"},{"codepoint":"1f915","name":"face with head-bandage"},{"codepoint":"1f922","name":"nauseated face"},{"codepoint":"1f92e","name":"face vomiting"},{"codepoint":"1f927","name":"sneezing face"},{"codepoint":"1f975","name":"hot face"},{"codepoint":"1f976","name":"cold face"},{"codepoint":"1f974","name":"woozy face"},{"codepoint":"1f635","name":"face with crossed-out eyes"},{"codepoint":"1f635 200d 1f4ab","name":"face with spiral eyes"},{"codepoint":"1f92f","name":"exploding head"},{"codepoint":"1f920","name":"cowboy hat face"},{"codepoint":"1f973","name":"partying face"},{"codepoint":"1f978","name":"disguised face"},{"codepoint":"1f60e","name":"smiling face with sunglasses"},{"codepoint":"1f913","name":"nerd face"},{"codepoint":"1f9d0","name":"face with monocle"},{"codepoint":"1f615","name":"confused face"},{"codepoint":"1fae4","name":"face with diagonal mouth"},{"codepoint":"1f61f","name":"worried face"},{"codepoint":"1f641","name":"slightly frowning face"},{"codepoint":"2639 fe0f","name":"frowning face"},{"codepoint":"1f62e","name":"face with open mouth"},{"codepoint":"1f62f","name":"hushed face"},{"codepoint":"1f632","name":"astonished face"},{"codepoint":"1f633","name":"flushed face"},{"codepoint":"1f97a","name":"pleading face"},{"codepoint":"1f979","name":"face holding back tears"},{"codepoint":"1f626","name":"frowning face with open mouth"},{"codepoint":"1f627","name":"anguished face"},{"codepoint":"1f628","name":"fearful face"},{"codepoint":"1f630","name":"anxious face with sweat"},{"codepoint":"1f625","name":"sad but relieved face"},{"codepoint":"1f622","name":"crying face"},{"codepoint":"1f62d","name":"loudly crying face"},{"codepoint":"1f631","name":"face screaming in fear"},{"codepoint":"1f616","name":"confounded face"},{"codepoint":"1f623","name":"persevering face"},{"codepoint":"1f61e","name":"disappointed face"},{"codepoint":"1f613","name":"downcast face with sweat"},{"codepoint":"1f629","name":"weary face"},{"codepoint":"1f62b","name":"tired face"},{"codepoint":"1f971","name":"yawning face"},{"codepoint":"1f624","name":"face with steam from nose"},{"codepoint":"1f621","name":"pouting face"},{"codepoint":"1f620","name":"angry face"},{"codepoint":"1f92c","name":"face with symbols on mouth"},{"codepoint":"1f608","name":"smiling face with horns"},{"codepoint":"1f47f","name":"angry face with horns"},{"codepoint":"1f480","name":"skull"},{"codepoint":"2620 fe0f","name":"skull and crossbones"},{"codepoint":"1f4a9","name":"pile of poo"},{"codepoint":"1f921","name":"clown face"},{"codepoint":"1f479","name":"ogre"},{"codepoint":"1f47a","name":"goblin"},{"codepoint":"1f47b","name":"ghost"},{"codepoint":"1f47d","name":"alien"},{"codepoint":"1f47e","name":"alien monster"},{"codepoint":"1f916","name":"robot"},{"codepoint":"1f63a","name":"grinning cat"},{"codepoint":"1f638","name":"grinning cat with smiling eyes"},{"codepoint":"1f639","name":"cat with tears of joy"},{"codepoint":"1f63b","name":"smiling cat with heart-eyes"},{"codepoint":"1f63c","name":"cat with wry smile"},{"codepoint":"1f63d","name":"kissing cat"},{"codepoint":"1f640","name":"weary cat"},{"codepoint":"1f63f","name":"crying cat"},{"codepoint":"1f63e","name":"pouting cat"},{"codepoint":"1f648","name":"see-no-evil monkey"},{"codepoint":"1f649","name":"hear-no-evil monkey"},{"codepoint":"1f64a","name":"speak-no-evil monkey"},{"codepoint":"1f48b","name":"kiss mark"},{"codepoint":"1f48c","name":"love letter"},{"codepoint":"1f498","name":"heart with arrow"},{"codepoint":"1f49d","name":"heart with ribbon"},{"codepoint":"1f496","name":"sparkling heart"},{"codepoint":"1f497","name":"growing heart"},{"codepoint":"1f493","name":"beating heart"},{"codepoint":"1f49e","name":"revolving hearts"},{"codepoint":"1f495","name":"two hearts"},{"codepoint":"1f49f","name":"heart decoration"},{"codepoint":"2763 fe0f","name":"heart exclamation"},{"codepoint":"1f494","name":"broken heart"},{"codepoint":"2764 fe0f 200d 1f525","name":"heart on fire"},{"codepoint":"2764 fe0f 200d 1fa79","name":"mending heart"},{"codepoint":"2764 fe0f","name":"red heart"},{"codepoint":"1f9e1","name":"orange heart"},{"codepoint":"1f49b","name":"yellow heart"},{"codepoint":"1f49a","name":"green heart"},{"codepoint":"1f499","name":"blue heart"},{"codepoint":"1f49c","name":"purple heart"},{"codepoint":"1f90e","name":"brown heart"},{"codepoint":"1f5a4","name":"black heart"},{"codepoint":"1f90d","name":"white heart"},{"codepoint":"1f4af","name":"hundred points"},{"codepoint":"1f4a2","name":"anger symbol"},{"codepoint":"1f4a5","name":"collision"},{"codepoint":"1f4ab","name":"dizzy"},{"codepoint":"1f4a6","name":"sweat droplets"},{"codepoint":"1f4a8","name":"dashing away"},{"codepoint":"1f573 fe0f","name":"hole"},{"codepoint":"1f4a3","name":"bomb"},{"codepoint":"1f4ac","name":"speech balloon"},{"codepoint":"1f441 fe0f 200d 1f5e8 fe0f","name":"eye in speech bubble"},{"codepoint":"1f5e8 fe0f","name":"left speech bubble"},{"codepoint":"1f5ef fe0f","name":"right anger bubble"},{"codepoint":"1f4ad","name":"thought balloon"},{"codepoint":"1f4a4","name":"zzz"},{"codepoint":"1f44b","name":"waving hand"},{"codepoint":"1f44b 1f3fb","name":"waving hand: light skin tone"},{"codepoint":"1f44b 1f3fc","name":"waving hand: medium-light skin tone"},{"codepoint":"1f44b 1f3fd","name":"waving hand: medium skin tone"},{"codepoint":"1f44b 1f3fe","name":"waving hand: medium-dark skin tone"},{"codepoint":"1f44b 1f3ff","name":"waving hand: dark skin tone"},{"codepoint":"1f91a","name":"raised back of hand"},{"codepoint":"1f91a 1f3fb","name":"raised back of hand: light skin tone"},{"codepoint":"1f91a 1f3fc","name":"raised back of hand: medium-light skin tone"},{"codepoint":"1f91a 1f3fd","name":"raised back of hand: medium skin tone"},{"codepoint":"1f91a 1f3fe","name":"raised back of hand: medium-dark skin tone"},{"codepoint":"1f91a 1f3ff","name":"raised back of hand: dark skin tone"},{"codepoint":"1f590 fe0f","name":"hand with fingers splayed"},{"codepoint":"1f590 1f3fb","name":"hand with fingers splayed: light skin tone"},{"codepoint":"1f590 1f3fc","name":"hand with fingers splayed: medium-light skin tone"},{"codepoint":"1f590 1f3fd","name":"hand with fingers splayed: medium skin tone"},{"codepoint":"1f590 1f3fe","name":"hand with fingers splayed: medium-dark skin tone"},{"codepoint":"1f590 1f3ff","name":"hand with fingers splayed: dark skin tone"},{"codepoint":"270b","name":"raised hand"},{"codepoint":"270b 1f3fb","name":"raised hand: light skin tone"},{"codepoint":"270b 1f3fc","name":"raised hand: medium-light skin tone"},{"codepoint":"270b 1f3fd","name":"raised hand: medium skin tone"},{"codepoint":"270b 1f3fe","name":"raised hand: medium-dark skin tone"},{"codepoint":"270b 1f3ff","name":"raised hand: dark skin tone"},{"codepoint":"1f596","name":"vulcan salute"},{"codepoint":"1f596 1f3fb","name":"vulcan salute: light skin tone"},{"codepoint":"1f596 1f3fc","name":"vulcan salute: medium-light skin tone"},{"codepoint":"1f596 1f3fd","name":"vulcan salute: medium skin tone"},{"codepoint":"1f596 1f3fe","name":"vulcan salute: medium-dark skin tone"},{"codepoint":"1f596 1f3ff","name":"vulcan salute: dark skin tone"},{"codepoint":"1faf1","name":"rightwards hand"},{"codepoint":"1faf1 1f3fb","name":"rightwards hand: light skin tone"},{"codepoint":"1faf1 1f3fc","name":"rightwards hand: medium-light skin tone"},{"codepoint":"1faf1 1f3fd","name":"rightwards hand: medium skin tone"},{"codepoint":"1faf1 1f3fe","name":"rightwards hand: medium-dark skin tone"},{"codepoint":"1faf1 1f3ff","name":"rightwards hand: dark skin tone"},{"codepoint":"1faf2","name":"leftwards hand"},{"codepoint":"1faf2 1f3fb","name":"leftwards hand: light skin tone"},{"codepoint":"1faf2 1f3fc","name":"leftwards hand: medium-light skin tone"},{"codepoint":"1faf2 1f3fd","name":"leftwards hand: medium skin tone"},{"codepoint":"1faf2 1f3fe","name":"leftwards hand: medium-dark skin tone"},{"codepoint":"1faf2 1f3ff","name":"leftwards hand: dark skin tone"},{"codepoint":"1faf3","name":"palm down hand"},{"codepoint":"1faf3 1f3fb","name":"palm down hand: light skin tone"},{"codepoint":"1faf3 1f3fc","name":"palm down hand: medium-light skin tone"},{"codepoint":"1faf3 1f3fd","name":"palm down hand: medium skin tone"},{"codepoint":"1faf3 1f3fe","name":"palm down hand: medium-dark skin tone"},{"codepoint":"1faf3 1f3ff","name":"palm down hand: dark skin tone"},{"codepoint":"1faf4","name":"palm up hand"},{"codepoint":"1faf4 1f3fb","name":"palm up hand: light skin tone"},{"codepoint":"1faf4 1f3fc","name":"palm up hand: medium-light skin tone"},{"codepoint":"1faf4 1f3fd","name":"palm up hand: medium skin tone"},{"codepoint":"1faf4 1f3fe","name":"palm up hand: medium-dark skin tone"},{"codepoint":"1faf4 1f3ff","name":"palm up hand: dark skin tone"},{"codepoint":"1f44c","name":"ok hand"},{"codepoint":"1f44c 1f3fb","name":"ok hand: light skin tone"},{"codepoint":"1f44c 1f3fc","name":"ok hand: medium-light skin tone"},{"codepoint":"1f44c 1f3fd","name":"ok hand: medium skin tone"},{"codepoint":"1f44c 1f3fe","name":"ok hand: medium-dark skin tone"},{"codepoint":"1f44c 1f3ff","name":"ok hand: dark skin tone"},{"codepoint":"1f90c","name":"pinched fingers"},{"codepoint":"1f90c 1f3fb","name":"pinched fingers: light skin tone"},{"codepoint":"1f90c 1f3fc","name":"pinched fingers: medium-light skin tone"},{"codepoint":"1f90c 1f3fd","name":"pinched fingers: medium skin tone"},{"codepoint":"1f90c 1f3fe","name":"pinched fingers: medium-dark skin tone"},{"codepoint":"1f90c 1f3ff","name":"pinched fingers: dark skin tone"},{"codepoint":"1f90f","name":"pinching hand"},{"codepoint":"1f90f 1f3fb","name":"pinching hand: light skin tone"},{"codepoint":"1f90f 1f3fc","name":"pinching hand: medium-light skin tone"},{"codepoint":"1f90f 1f3fd","name":"pinching hand: medium skin tone"},{"codepoint":"1f90f 1f3fe","name":"pinching hand: medium-dark skin tone"},{"codepoint":"1f90f 1f3ff","name":"pinching hand: dark skin tone"},{"codepoint":"270c fe0f","name":"victory hand"},{"codepoint":"270c 1f3fb","name":"victory hand: light skin tone"},{"codepoint":"270c 1f3fc","name":"victory hand: medium-light skin tone"},{"codepoint":"270c 1f3fd","name":"victory hand: medium skin tone"},{"codepoint":"270c 1f3fe","name":"victory hand: medium-dark skin tone"},{"codepoint":"270c 1f3ff","name":"victory hand: dark skin tone"},{"codepoint":"1f91e","name":"crossed fingers"},{"codepoint":"1f91e 1f3fb","name":"crossed fingers: light skin tone"},{"codepoint":"1f91e 1f3fc","name":"crossed fingers: medium-light skin tone"},{"codepoint":"1f91e 1f3fd","name":"crossed fingers: medium skin tone"},{"codepoint":"1f91e 1f3fe","name":"crossed fingers: medium-dark skin tone"},{"codepoint":"1f91e 1f3ff","name":"crossed fingers: dark skin tone"},{"codepoint":"1faf0","name":"hand with index finger and thumb crossed"},{"codepoint":"1faf0 1f3fb","name":"hand with index finger and thumb crossed: light skin tone"},{"codepoint":"1faf0 1f3fc","name":"hand with index finger and thumb crossed: medium-light skin tone"},{"codepoint":"1faf0 1f3fd","name":"hand with index finger and thumb crossed: medium skin tone"},{"codepoint":"1faf0 1f3fe","name":"hand with index finger and thumb crossed: medium-dark skin tone"},{"codepoint":"1faf0 1f3ff","name":"hand with index finger and thumb crossed: dark skin tone"},{"codepoint":"1f91f","name":"love-you gesture"},{"codepoint":"1f91f 1f3fb","name":"love-you gesture: light skin tone"},{"codepoint":"1f91f 1f3fc","name":"love-you gesture: medium-light skin tone"},{"codepoint":"1f91f 1f3fd","name":"love-you gesture: medium skin tone"},{"codepoint":"1f91f 1f3fe","name":"love-you gesture: medium-dark skin tone"},{"codepoint":"1f91f 1f3ff","name":"love-you gesture: dark skin tone"},{"codepoint":"1f918","name":"sign of the horns"},{"codepoint":"1f918 1f3fb","name":"sign of the horns: light skin tone"},{"codepoint":"1f918 1f3fc","name":"sign of the horns: medium-light skin tone"},{"codepoint":"1f918 1f3fd","name":"sign of the horns: medium skin tone"},{"codepoint":"1f918 1f3fe","name":"sign of the horns: medium-dark skin tone"},{"codepoint":"1f918 1f3ff","name":"sign of the horns: dark skin tone"},{"codepoint":"1f919","name":"call me hand"},{"codepoint":"1f919 1f3fb","name":"call me hand: light skin tone"},{"codepoint":"1f919 1f3fc","name":"call me hand: medium-light skin tone"},{"codepoint":"1f919 1f3fd","name":"call me hand: medium skin tone"},{"codepoint":"1f919 1f3fe","name":"call me hand: medium-dark skin tone"},{"codepoint":"1f919 1f3ff","name":"call me hand: dark skin tone"},{"codepoint":"1f448","name":"backhand index pointing left"},{"codepoint":"1f448 1f3fb","name":"backhand index pointing left: light skin tone"},{"codepoint":"1f448 1f3fc","name":"backhand index pointing left: medium-light skin tone"},{"codepoint":"1f448 1f3fd","name":"backhand index pointing left: medium skin tone"},{"codepoint":"1f448 1f3fe","name":"backhand index pointing left: medium-dark skin tone"},{"codepoint":"1f448 1f3ff","name":"backhand index pointing left: dark skin tone"},{"codepoint":"1f449","name":"backhand index pointing right"},{"codepoint":"1f449 1f3fb","name":"backhand index pointing right: light skin tone"},{"codepoint":"1f449 1f3fc","name":"backhand index pointing right: medium-light skin tone"},{"codepoint":"1f449 1f3fd","name":"backhand index pointing right: medium skin tone"},{"codepoint":"1f449 1f3fe","name":"backhand index pointing right: medium-dark skin tone"},{"codepoint":"1f449 1f3ff","name":"backhand index pointing right: dark skin tone"},{"codepoint":"1f446","name":"backhand index pointing up"},{"codepoint":"1f446 1f3fb","name":"backhand index pointing up: light skin tone"},{"codepoint":"1f446 1f3fc","name":"backhand index pointing up: medium-light skin tone"},{"codepoint":"1f446 1f3fd","name":"backhand index pointing up: medium skin tone"},{"codepoint":"1f446 1f3fe","name":"backhand index pointing up: medium-dark skin tone"},{"codepoint":"1f446 1f3ff","name":"backhand index pointing up: dark skin tone"},{"codepoint":"1f595","name":"middle finger"},{"codepoint":"1f595 1f3fb","name":"middle finger: light skin tone"},{"codepoint":"1f595 1f3fc","name":"middle finger: medium-light skin tone"},{"codepoint":"1f595 1f3fd","name":"middle finger: medium skin tone"},{"codepoint":"1f595 1f3fe","name":"middle finger: medium-dark skin tone"},{"codepoint":"1f595 1f3ff","name":"middle finger: dark skin tone"},{"codepoint":"1f447","name":"backhand index pointing down"},{"codepoint":"1f447 1f3fb","name":"backhand index pointing down: light skin tone"},{"codepoint":"1f447 1f3fc","name":"backhand index pointing down: medium-light skin tone"},{"codepoint":"1f447 1f3fd","name":"backhand index pointing down: medium skin tone"},{"codepoint":"1f447 1f3fe","name":"backhand index pointing down: medium-dark skin tone"},{"codepoint":"1f447 1f3ff","name":"backhand index pointing down: dark skin tone"},{"codepoint":"261d fe0f","name":"index pointing up"},{"codepoint":"261d 1f3fb","name":"index pointing up: light skin tone"},{"codepoint":"261d 1f3fc","name":"index pointing up: medium-light skin tone"},{"codepoint":"261d 1f3fd","name":"index pointing up: medium skin tone"},{"codepoint":"261d 1f3fe","name":"index pointing up: medium-dark skin tone"},{"codepoint":"261d 1f3ff","name":"index pointing up: dark skin tone"},{"codepoint":"1faf5","name":"index pointing at the viewer"},{"codepoint":"1faf5 1f3fb","name":"index pointing at the viewer: light skin tone"},{"codepoint":"1faf5 1f3fc","name":"index pointing at the viewer: medium-light skin tone"},{"codepoint":"1faf5 1f3fd","name":"index pointing at the viewer: medium skin tone"},{"codepoint":"1faf5 1f3fe","name":"index pointing at the viewer: medium-dark skin tone"},{"codepoint":"1faf5 1f3ff","name":"index pointing at the viewer: dark skin tone"},{"codepoint":"1f44d","name":"thumbs up"},{"codepoint":"1f44d 1f3fb","name":"thumbs up: light skin tone"},{"codepoint":"1f44d 1f3fc","name":"thumbs up: medium-light skin tone"},{"codepoint":"1f44d 1f3fd","name":"thumbs up: medium skin tone"},{"codepoint":"1f44d 1f3fe","name":"thumbs up: medium-dark skin tone"},{"codepoint":"1f44d 1f3ff","name":"thumbs up: dark skin tone"},{"codepoint":"1f44e","name":"thumbs down"},{"codepoint":"1f44e 1f3fb","name":"thumbs down: light skin tone"},{"codepoint":"1f44e 1f3fc","name":"thumbs down: medium-light skin tone"},{"codepoint":"1f44e 1f3fd","name":"thumbs down: medium skin tone"},{"codepoint":"1f44e 1f3fe","name":"thumbs down: medium-dark skin tone"},{"codepoint":"1f44e 1f3ff","name":"thumbs down: dark skin tone"},{"codepoint":"270a","name":"raised fist"},{"codepoint":"270a 1f3fb","name":"raised fist: light skin tone"},{"codepoint":"270a 1f3fc","name":"raised fist: medium-light skin tone"},{"codepoint":"270a 1f3fd","name":"raised fist: medium skin tone"},{"codepoint":"270a 1f3fe","name":"raised fist: medium-dark skin tone"},{"codepoint":"270a 1f3ff","name":"raised fist: dark skin tone"},{"codepoint":"1f44a","name":"oncoming fist"},{"codepoint":"1f44a 1f3fb","name":"oncoming fist: light skin tone"},{"codepoint":"1f44a 1f3fc","name":"oncoming fist: medium-light skin tone"},{"codepoint":"1f44a 1f3fd","name":"oncoming fist: medium skin tone"},{"codepoint":"1f44a 1f3fe","name":"oncoming fist: medium-dark skin tone"},{"codepoint":"1f44a 1f3ff","name":"oncoming fist: dark skin tone"},{"codepoint":"1f91b","name":"left-facing fist"},{"codepoint":"1f91b 1f3fb","name":"left-facing fist: light skin tone"},{"codepoint":"1f91b 1f3fc","name":"left-facing fist: medium-light skin tone"},{"codepoint":"1f91b 1f3fd","name":"left-facing fist: medium skin tone"},{"codepoint":"1f91b 1f3fe","name":"left-facing fist: medium-dark skin tone"},{"codepoint":"1f91b 1f3ff","name":"left-facing fist: dark skin tone"},{"codepoint":"1f91c","name":"right-facing fist"},{"codepoint":"1f91c 1f3fb","name":"right-facing fist: light skin tone"},{"codepoint":"1f91c 1f3fc","name":"right-facing fist: medium-light skin tone"},{"codepoint":"1f91c 1f3fd","name":"right-facing fist: medium skin tone"},{"codepoint":"1f91c 1f3fe","name":"right-facing fist: medium-dark skin tone"},{"codepoint":"1f91c 1f3ff","name":"right-facing fist: dark skin tone"},{"codepoint":"1f44f","name":"clapping hands"},{"codepoint":"1f44f 1f3fb","name":"clapping hands: light skin tone"},{"codepoint":"1f44f 1f3fc","name":"clapping hands: medium-light skin tone"},{"codepoint":"1f44f 1f3fd","name":"clapping hands: medium skin tone"},{"codepoint":"1f44f 1f3fe","name":"clapping hands: medium-dark skin tone"},{"codepoint":"1f44f 1f3ff","name":"clapping hands: dark skin tone"},{"codepoint":"1f64c","name":"raising hands"},{"codepoint":"1f64c 1f3fb","name":"raising hands: light skin tone"},{"codepoint":"1f64c 1f3fc","name":"raising hands: medium-light skin tone"},{"codepoint":"1f64c 1f3fd","name":"raising hands: medium skin tone"},{"codepoint":"1f64c 1f3fe","name":"raising hands: medium-dark skin tone"},{"codepoint":"1f64c 1f3ff","name":"raising hands: dark skin tone"},{"codepoint":"1faf6","name":"heart hands"},{"codepoint":"1faf6 1f3fb","name":"heart hands: light skin tone"},{"codepoint":"1faf6 1f3fc","name":"heart hands: medium-light skin tone"},{"codepoint":"1faf6 1f3fd","name":"heart hands: medium skin tone"},{"codepoint":"1faf6 1f3fe","name":"heart hands: medium-dark skin tone"},{"codepoint":"1faf6 1f3ff","name":"heart hands: dark skin tone"},{"codepoint":"1f450","name":"open hands"},{"codepoint":"1f450 1f3fb","name":"open hands: light skin tone"},{"codepoint":"1f450 1f3fc","name":"open hands: medium-light skin tone"},{"codepoint":"1f450 1f3fd","name":"open hands: medium skin tone"},{"codepoint":"1f450 1f3fe","name":"open hands: medium-dark skin tone"},{"codepoint":"1f450 1f3ff","name":"open hands: dark skin tone"},{"codepoint":"1f932","name":"palms up together"},{"codepoint":"1f932 1f3fb","name":"palms up together: light skin tone"},{"codepoint":"1f932 1f3fc","name":"palms up together: medium-light skin tone"},{"codepoint":"1f932 1f3fd","name":"palms up together: medium skin tone"},{"codepoint":"1f932 1f3fe","name":"palms up together: medium-dark skin tone"},{"codepoint":"1f932 1f3ff","name":"palms up together: dark skin tone"},{"codepoint":"1f91d","name":"handshake"},{"codepoint":"1f91d 1f3fb","name":"handshake: light skin tone"},{"codepoint":"1f91d 1f3fc","name":"handshake: medium-light skin tone"},{"codepoint":"1f91d 1f3fd","name":"handshake: medium skin tone"},{"codepoint":"1f91d 1f3fe","name":"handshake: medium-dark skin tone"},{"codepoint":"1f91d 1f3ff","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3fc","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3fd","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3fe","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fb 200d 1faf2 1f3ff","name":"handshake: light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3fb","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3fd","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3fe","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fc 200d 1faf2 1f3ff","name":"handshake: medium-light skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3fb","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3fc","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3fe","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fd 200d 1faf2 1f3ff","name":"handshake: medium skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3fb","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3fc","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3fd","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3fe 200d 1faf2 1f3ff","name":"handshake: medium-dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fb","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fc","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fd","name":"handshake: dark skin tone"},{"codepoint":"1faf1 1f3ff 200d 1faf2 1f3fe","name":"handshake: dark skin tone"},{"codepoint":"1f64f","name":"folded hands"},{"codepoint":"1f64f 1f3fb","name":"folded hands: light skin tone"},{"codepoint":"1f64f 1f3fc","name":"folded hands: medium-light skin tone"},{"codepoint":"1f64f 1f3fd","name":"folded hands: medium skin tone"},{"codepoint":"1f64f 1f3fe","name":"folded hands: medium-dark skin tone"},{"codepoint":"1f64f 1f3ff","name":"folded hands: dark skin tone"},{"codepoint":"270d fe0f","name":"writing hand"},{"codepoint":"270d 1f3fb","name":"writing hand: light skin tone"},{"codepoint":"270d 1f3fc","name":"writing hand: medium-light skin tone"},{"codepoint":"270d 1f3fd","name":"writing hand: medium skin tone"},{"codepoint":"270d 1f3fe","name":"writing hand: medium-dark skin tone"},{"codepoint":"270d 1f3ff","name":"writing hand: dark skin tone"},{"codepoint":"1f485","name":"nail polish"},{"codepoint":"1f485 1f3fb","name":"nail polish: light skin tone"},{"codepoint":"1f485 1f3fc","name":"nail polish: medium-light skin tone"},{"codepoint":"1f485 1f3fd","name":"nail polish: medium skin tone"},{"codepoint":"1f485 1f3fe","name":"nail polish: medium-dark skin tone"},{"codepoint":"1f485 1f3ff","name":"nail polish: dark skin tone"},{"codepoint":"1f933","name":"selfie"},{"codepoint":"1f933 1f3fb","name":"selfie: light skin tone"},{"codepoint":"1f933 1f3fc","name":"selfie: medium-light skin tone"},{"codepoint":"1f933 1f3fd","name":"selfie: medium skin tone"},{"codepoint":"1f933 1f3fe","name":"selfie: medium-dark skin tone"},{"codepoint":"1f933 1f3ff","name":"selfie: dark skin tone"},{"codepoint":"1f4aa","name":"flexed biceps"},{"codepoint":"1f4aa 1f3fb","name":"flexed biceps: light skin tone"},{"codepoint":"1f4aa 1f3fc","name":"flexed biceps: medium-light skin tone"},{"codepoint":"1f4aa 1f3fd","name":"flexed biceps: medium skin tone"},{"codepoint":"1f4aa 1f3fe","name":"flexed biceps: medium-dark skin tone"},{"codepoint":"1f4aa 1f3ff","name":"flexed biceps: dark skin tone"},{"codepoint":"1f9be","name":"mechanical arm"},{"codepoint":"1f9bf","name":"mechanical leg"},{"codepoint":"1f9b5","name":"leg"},{"codepoint":"1f9b5 1f3fb","name":"leg: light skin tone"},{"codepoint":"1f9b5 1f3fc","name":"leg: medium-light skin tone"},{"codepoint":"1f9b5 1f3fd","name":"leg: medium skin tone"},{"codepoint":"1f9b5 1f3fe","name":"leg: medium-dark skin tone"},{"codepoint":"1f9b5 1f3ff","name":"leg: dark skin tone"},{"codepoint":"1f9b6","name":"foot"},{"codepoint":"1f9b6 1f3fb","name":"foot: light skin tone"},{"codepoint":"1f9b6 1f3fc","name":"foot: medium-light skin tone"},{"codepoint":"1f9b6 1f3fd","name":"foot: medium skin tone"},{"codepoint":"1f9b6 1f3fe","name":"foot: medium-dark skin tone"},{"codepoint":"1f9b6 1f3ff","name":"foot: dark skin tone"},{"codepoint":"1f442","name":"ear"},{"codepoint":"1f442 1f3fb","name":"ear: light skin tone"},{"codepoint":"1f442 1f3fc","name":"ear: medium-light skin tone"},{"codepoint":"1f442 1f3fd","name":"ear: medium skin tone"},{"codepoint":"1f442 1f3fe","name":"ear: medium-dark skin tone"},{"codepoint":"1f442 1f3ff","name":"ear: dark skin tone"},{"codepoint":"1f9bb","name":"ear with hearing aid"},{"codepoint":"1f9bb 1f3fb","name":"ear with hearing aid: light skin tone"},{"codepoint":"1f9bb 1f3fc","name":"ear with hearing aid: medium-light skin tone"},{"codepoint":"1f9bb 1f3fd","name":"ear with hearing aid: medium skin tone"},{"codepoint":"1f9bb 1f3fe","name":"ear with hearing aid: medium-dark skin tone"},{"codepoint":"1f9bb 1f3ff","name":"ear with hearing aid: dark skin tone"},{"codepoint":"1f443","name":"nose"},{"codepoint":"1f443 1f3fb","name":"nose: light skin tone"},{"codepoint":"1f443 1f3fc","name":"nose: medium-light skin tone"},{"codepoint":"1f443 1f3fd","name":"nose: medium skin tone"},{"codepoint":"1f443 1f3fe","name":"nose: medium-dark skin tone"},{"codepoint":"1f443 1f3ff","name":"nose: dark skin tone"},{"codepoint":"1f9e0","name":"brain"},{"codepoint":"1fac0","name":"anatomical heart"},{"codepoint":"1fac1","name":"lungs"},{"codepoint":"1f9b7","name":"tooth"},{"codepoint":"1f9b4","name":"bone"},{"codepoint":"1f440","name":"eyes"},{"codepoint":"1f441 fe0f","name":"eye"},{"codepoint":"1f445","name":"tongue"},{"codepoint":"1f444","name":"mouth"},{"codepoint":"1fae6","name":"biting lip"},{"codepoint":"1f476","name":"baby"},{"codepoint":"1f476 1f3fb","name":"baby: light skin tone"},{"codepoint":"1f476 1f3fc","name":"baby: medium-light skin tone"},{"codepoint":"1f476 1f3fd","name":"baby: medium skin tone"},{"codepoint":"1f476 1f3fe","name":"baby: medium-dark skin tone"},{"codepoint":"1f476 1f3ff","name":"baby: dark skin tone"},{"codepoint":"1f9d2","name":"child"},{"codepoint":"1f9d2 1f3fb","name":"child: light skin tone"},{"codepoint":"1f9d2 1f3fc","name":"child: medium-light skin tone"},{"codepoint":"1f9d2 1f3fd","name":"child: medium skin tone"},{"codepoint":"1f9d2 1f3fe","name":"child: medium-dark skin tone"},{"codepoint":"1f9d2 1f3ff","name":"child: dark skin tone"},{"codepoint":"1f466","name":"boy"},{"codepoint":"1f466 1f3fb","name":"boy: light skin tone"},{"codepoint":"1f466 1f3fc","name":"boy: medium-light skin tone"},{"codepoint":"1f466 1f3fd","name":"boy: medium skin tone"},{"codepoint":"1f466 1f3fe","name":"boy: medium-dark skin tone"},{"codepoint":"1f466 1f3ff","name":"boy: dark skin tone"},{"codepoint":"1f467","name":"girl"},{"codepoint":"1f467 1f3fb","name":"girl: light skin tone"},{"codepoint":"1f467 1f3fc","name":"girl: medium-light skin tone"},{"codepoint":"1f467 1f3fd","name":"girl: medium skin tone"},{"codepoint":"1f467 1f3fe","name":"girl: medium-dark skin tone"},{"codepoint":"1f467 1f3ff","name":"girl: dark skin tone"},{"codepoint":"1f9d1","name":"person"},{"codepoint":"1f9d1 1f3fb","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff","name":"person: dark skin tone"},{"codepoint":"1f471","name":"person: blond hair"},{"codepoint":"1f471 1f3fb","name":"person: light skin tone"},{"codepoint":"1f471 1f3fc","name":"person: medium-light skin tone"},{"codepoint":"1f471 1f3fd","name":"person: medium skin tone"},{"codepoint":"1f471 1f3fe","name":"person: medium-dark skin tone"},{"codepoint":"1f471 1f3ff","name":"person: dark skin tone"},{"codepoint":"1f468","name":"man"},{"codepoint":"1f468 1f3fb","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff","name":"man: dark skin tone"},{"codepoint":"1f9d4","name":"person: beard"},{"codepoint":"1f9d4 1f3fb","name":"person: light skin tone"},{"codepoint":"1f9d4 1f3fc","name":"person: medium-light skin tone"},{"codepoint":"1f9d4 1f3fd","name":"person: medium skin tone"},{"codepoint":"1f9d4 1f3fe","name":"person: medium-dark skin tone"},{"codepoint":"1f9d4 1f3ff","name":"person: dark skin tone"},{"codepoint":"1f9d4 200d 2642 fe0f","name":"man: beard"},{"codepoint":"1f9d4 1f3fb 200d 2642 fe0f","name":"man: light skin tone"},{"codepoint":"1f9d4 1f3fc 200d 2642 fe0f","name":"man: medium-light skin tone"},{"codepoint":"1f9d4 1f3fd 200d 2642 fe0f","name":"man: medium skin tone"},{"codepoint":"1f9d4 1f3fe 200d 2642 fe0f","name":"man: medium-dark skin tone"},{"codepoint":"1f9d4 1f3ff 200d 2642 fe0f","name":"man: dark skin tone"},{"codepoint":"1f9d4 200d 2640 fe0f","name":"woman: beard"},{"codepoint":"1f9d4 1f3fb 200d 2640 fe0f","name":"woman: light skin tone"},{"codepoint":"1f9d4 1f3fc 200d 2640 fe0f","name":"woman: medium-light skin tone"},{"codepoint":"1f9d4 1f3fd 200d 2640 fe0f","name":"woman: medium skin tone"},{"codepoint":"1f9d4 1f3fe 200d 2640 fe0f","name":"woman: medium-dark skin tone"},{"codepoint":"1f9d4 1f3ff 200d 2640 fe0f","name":"woman: dark skin tone"},{"codepoint":"1f468 200d 1f9b0","name":"man: red hair"},{"codepoint":"1f468 1f3fb 200d 1f9b0","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b0","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b0","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b0","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b0","name":"man: dark skin tone"},{"codepoint":"1f468 200d 1f9b1","name":"man: curly hair"},{"codepoint":"1f468 1f3fb 200d 1f9b1","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b1","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b1","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b1","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b1","name":"man: dark skin tone"},{"codepoint":"1f468 200d 1f9b3","name":"man: white hair"},{"codepoint":"1f468 1f3fb 200d 1f9b3","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b3","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b3","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b3","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b3","name":"man: dark skin tone"},{"codepoint":"1f468 200d 1f9b2","name":"man: bald"},{"codepoint":"1f468 1f3fb 200d 1f9b2","name":"man: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9b2","name":"man: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9b2","name":"man: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9b2","name":"man: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9b2","name":"man: dark skin tone"},{"codepoint":"1f469","name":"woman"},{"codepoint":"1f469 1f3fb","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff","name":"woman: dark skin tone"},{"codepoint":"1f469 200d 1f9b0","name":"woman: red hair"},{"codepoint":"1f469 1f3fb 200d 1f9b0","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b0","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b0","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b0","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b0","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b0","name":"person: red hair"},{"codepoint":"1f9d1 1f3fb 200d 1f9b0","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b0","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b0","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b0","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b0","name":"person: dark skin tone"},{"codepoint":"1f469 200d 1f9b1","name":"woman: curly hair"},{"codepoint":"1f469 1f3fb 200d 1f9b1","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b1","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b1","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b1","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b1","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b1","name":"person: curly hair"},{"codepoint":"1f9d1 1f3fb 200d 1f9b1","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b1","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b1","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b1","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b1","name":"person: dark skin tone"},{"codepoint":"1f469 200d 1f9b3","name":"woman: white hair"},{"codepoint":"1f469 1f3fb 200d 1f9b3","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b3","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b3","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b3","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b3","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b3","name":"person: white hair"},{"codepoint":"1f9d1 1f3fb 200d 1f9b3","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b3","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b3","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b3","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b3","name":"person: dark skin tone"},{"codepoint":"1f469 200d 1f9b2","name":"woman: bald"},{"codepoint":"1f469 1f3fb 200d 1f9b2","name":"woman: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9b2","name":"woman: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9b2","name":"woman: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9b2","name":"woman: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9b2","name":"woman: dark skin tone"},{"codepoint":"1f9d1 200d 1f9b2","name":"person: bald"},{"codepoint":"1f9d1 1f3fb 200d 1f9b2","name":"person: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9b2","name":"person: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9b2","name":"person: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9b2","name":"person: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9b2","name":"person: dark skin tone"},{"codepoint":"1f471 200d 2640 fe0f","name":"woman: blond hair"},{"codepoint":"1f471 1f3fb 200d 2640 fe0f","name":"woman: light skin tone"},{"codepoint":"1f471 1f3fc 200d 2640 fe0f","name":"woman: medium-light skin tone"},{"codepoint":"1f471 1f3fd 200d 2640 fe0f","name":"woman: medium skin tone"},{"codepoint":"1f471 1f3fe 200d 2640 fe0f","name":"woman: medium-dark skin tone"},{"codepoint":"1f471 1f3ff 200d 2640 fe0f","name":"woman: dark skin tone"},{"codepoint":"1f471 200d 2642 fe0f","name":"man: blond hair"},{"codepoint":"1f471 1f3fb 200d 2642 fe0f","name":"man: light skin tone"},{"codepoint":"1f471 1f3fc 200d 2642 fe0f","name":"man: medium-light skin tone"},{"codepoint":"1f471 1f3fd 200d 2642 fe0f","name":"man: medium skin tone"},{"codepoint":"1f471 1f3fe 200d 2642 fe0f","name":"man: medium-dark skin tone"},{"codepoint":"1f471 1f3ff 200d 2642 fe0f","name":"man: dark skin tone"},{"codepoint":"1f9d3","name":"older person"},{"codepoint":"1f9d3 1f3fb","name":"older person: light skin tone"},{"codepoint":"1f9d3 1f3fc","name":"older person: medium-light skin tone"},{"codepoint":"1f9d3 1f3fd","name":"older person: medium skin tone"},{"codepoint":"1f9d3 1f3fe","name":"older person: medium-dark skin tone"},{"codepoint":"1f9d3 1f3ff","name":"older person: dark skin tone"},{"codepoint":"1f474","name":"old man"},{"codepoint":"1f474 1f3fb","name":"old man: light skin tone"},{"codepoint":"1f474 1f3fc","name":"old man: medium-light skin tone"},{"codepoint":"1f474 1f3fd","name":"old man: medium skin tone"},{"codepoint":"1f474 1f3fe","name":"old man: medium-dark skin tone"},{"codepoint":"1f474 1f3ff","name":"old man: dark skin tone"},{"codepoint":"1f475","name":"old woman"},{"codepoint":"1f475 1f3fb","name":"old woman: light skin tone"},{"codepoint":"1f475 1f3fc","name":"old woman: medium-light skin tone"},{"codepoint":"1f475 1f3fd","name":"old woman: medium skin tone"},{"codepoint":"1f475 1f3fe","name":"old woman: medium-dark skin tone"},{"codepoint":"1f475 1f3ff","name":"old woman: dark skin tone"},{"codepoint":"1f64d","name":"person frowning"},{"codepoint":"1f64d 1f3fb","name":"person frowning: light skin tone"},{"codepoint":"1f64d 1f3fc","name":"person frowning: medium-light skin tone"},{"codepoint":"1f64d 1f3fd","name":"person frowning: medium skin tone"},{"codepoint":"1f64d 1f3fe","name":"person frowning: medium-dark skin tone"},{"codepoint":"1f64d 1f3ff","name":"person frowning: dark skin tone"},{"codepoint":"1f64d 200d 2642 fe0f","name":"man frowning"},{"codepoint":"1f64d 1f3fb 200d 2642 fe0f","name":"man frowning: light skin tone"},{"codepoint":"1f64d 1f3fc 200d 2642 fe0f","name":"man frowning: medium-light skin tone"},{"codepoint":"1f64d 1f3fd 200d 2642 fe0f","name":"man frowning: medium skin tone"},{"codepoint":"1f64d 1f3fe 200d 2642 fe0f","name":"man frowning: medium-dark skin tone"},{"codepoint":"1f64d 1f3ff 200d 2642 fe0f","name":"man frowning: dark skin tone"},{"codepoint":"1f64d 200d 2640 fe0f","name":"woman frowning"},{"codepoint":"1f64d 1f3fb 200d 2640 fe0f","name":"woman frowning: light skin tone"},{"codepoint":"1f64d 1f3fc 200d 2640 fe0f","name":"woman frowning: medium-light skin tone"},{"codepoint":"1f64d 1f3fd 200d 2640 fe0f","name":"woman frowning: medium skin tone"},{"codepoint":"1f64d 1f3fe 200d 2640 fe0f","name":"woman frowning: medium-dark skin tone"},{"codepoint":"1f64d 1f3ff 200d 2640 fe0f","name":"woman frowning: dark skin tone"},{"codepoint":"1f64e","name":"person pouting"},{"codepoint":"1f64e 1f3fb","name":"person pouting: light skin tone"},{"codepoint":"1f64e 1f3fc","name":"person pouting: medium-light skin tone"},{"codepoint":"1f64e 1f3fd","name":"person pouting: medium skin tone"},{"codepoint":"1f64e 1f3fe","name":"person pouting: medium-dark skin tone"},{"codepoint":"1f64e 1f3ff","name":"person pouting: dark skin tone"},{"codepoint":"1f64e 200d 2642 fe0f","name":"man pouting"},{"codepoint":"1f64e 1f3fb 200d 2642 fe0f","name":"man pouting: light skin tone"},{"codepoint":"1f64e 1f3fc 200d 2642 fe0f","name":"man pouting: medium-light skin tone"},{"codepoint":"1f64e 1f3fd 200d 2642 fe0f","name":"man pouting: medium skin tone"},{"codepoint":"1f64e 1f3fe 200d 2642 fe0f","name":"man pouting: medium-dark skin tone"},{"codepoint":"1f64e 1f3ff 200d 2642 fe0f","name":"man pouting: dark skin tone"},{"codepoint":"1f64e 200d 2640 fe0f","name":"woman pouting"},{"codepoint":"1f64e 1f3fb 200d 2640 fe0f","name":"woman pouting: light skin tone"},{"codepoint":"1f64e 1f3fc 200d 2640 fe0f","name":"woman pouting: medium-light skin tone"},{"codepoint":"1f64e 1f3fd 200d 2640 fe0f","name":"woman pouting: medium skin tone"},{"codepoint":"1f64e 1f3fe 200d 2640 fe0f","name":"woman pouting: medium-dark skin tone"},{"codepoint":"1f64e 1f3ff 200d 2640 fe0f","name":"woman pouting: dark skin tone"},{"codepoint":"1f645","name":"person gesturing no"},{"codepoint":"1f645 1f3fb","name":"person gesturing no: light skin tone"},{"codepoint":"1f645 1f3fc","name":"person gesturing no: medium-light skin tone"},{"codepoint":"1f645 1f3fd","name":"person gesturing no: medium skin tone"},{"codepoint":"1f645 1f3fe","name":"person gesturing no: medium-dark skin tone"},{"codepoint":"1f645 1f3ff","name":"person gesturing no: dark skin tone"},{"codepoint":"1f645 200d 2642 fe0f","name":"man gesturing no"},{"codepoint":"1f645 1f3fb 200d 2642 fe0f","name":"man gesturing no: light skin tone"},{"codepoint":"1f645 1f3fc 200d 2642 fe0f","name":"man gesturing no: medium-light skin tone"},{"codepoint":"1f645 1f3fd 200d 2642 fe0f","name":"man gesturing no: medium skin tone"},{"codepoint":"1f645 1f3fe 200d 2642 fe0f","name":"man gesturing no: medium-dark skin tone"},{"codepoint":"1f645 1f3ff 200d 2642 fe0f","name":"man gesturing no: dark skin tone"},{"codepoint":"1f645 200d 2640 fe0f","name":"woman gesturing no"},{"codepoint":"1f645 1f3fb 200d 2640 fe0f","name":"woman gesturing no: light skin tone"},{"codepoint":"1f645 1f3fc 200d 2640 fe0f","name":"woman gesturing no: medium-light skin tone"},{"codepoint":"1f645 1f3fd 200d 2640 fe0f","name":"woman gesturing no: medium skin tone"},{"codepoint":"1f645 1f3fe 200d 2640 fe0f","name":"woman gesturing no: medium-dark skin tone"},{"codepoint":"1f645 1f3ff 200d 2640 fe0f","name":"woman gesturing no: dark skin tone"},{"codepoint":"1f646","name":"person gesturing ok"},{"codepoint":"1f646 1f3fb","name":"person gesturing ok: light skin tone"},{"codepoint":"1f646 1f3fc","name":"person gesturing ok: medium-light skin tone"},{"codepoint":"1f646 1f3fd","name":"person gesturing ok: medium skin tone"},{"codepoint":"1f646 1f3fe","name":"person gesturing ok: medium-dark skin tone"},{"codepoint":"1f646 1f3ff","name":"person gesturing ok: dark skin tone"},{"codepoint":"1f646 200d 2642 fe0f","name":"man gesturing ok"},{"codepoint":"1f646 1f3fb 200d 2642 fe0f","name":"man gesturing ok: light skin tone"},{"codepoint":"1f646 1f3fc 200d 2642 fe0f","name":"man gesturing ok: medium-light skin tone"},{"codepoint":"1f646 1f3fd 200d 2642 fe0f","name":"man gesturing ok: medium skin tone"},{"codepoint":"1f646 1f3fe 200d 2642 fe0f","name":"man gesturing ok: medium-dark skin tone"},{"codepoint":"1f646 1f3ff 200d 2642 fe0f","name":"man gesturing ok: dark skin tone"},{"codepoint":"1f646 200d 2640 fe0f","name":"woman gesturing ok"},{"codepoint":"1f646 1f3fb 200d 2640 fe0f","name":"woman gesturing ok: light skin tone"},{"codepoint":"1f646 1f3fc 200d 2640 fe0f","name":"woman gesturing ok: medium-light skin tone"},{"codepoint":"1f646 1f3fd 200d 2640 fe0f","name":"woman gesturing ok: medium skin tone"},{"codepoint":"1f646 1f3fe 200d 2640 fe0f","name":"woman gesturing ok: medium-dark skin tone"},{"codepoint":"1f646 1f3ff 200d 2640 fe0f","name":"woman gesturing ok: dark skin tone"},{"codepoint":"1f481","name":"person tipping hand"},{"codepoint":"1f481 1f3fb","name":"person tipping hand: light skin tone"},{"codepoint":"1f481 1f3fc","name":"person tipping hand: medium-light skin tone"},{"codepoint":"1f481 1f3fd","name":"person tipping hand: medium skin tone"},{"codepoint":"1f481 1f3fe","name":"person tipping hand: medium-dark skin tone"},{"codepoint":"1f481 1f3ff","name":"person tipping hand: dark skin tone"},{"codepoint":"1f481 200d 2642 fe0f","name":"man tipping hand"},{"codepoint":"1f481 1f3fb 200d 2642 fe0f","name":"man tipping hand: light skin tone"},{"codepoint":"1f481 1f3fc 200d 2642 fe0f","name":"man tipping hand: medium-light skin tone"},{"codepoint":"1f481 1f3fd 200d 2642 fe0f","name":"man tipping hand: medium skin tone"},{"codepoint":"1f481 1f3fe 200d 2642 fe0f","name":"man tipping hand: medium-dark skin tone"},{"codepoint":"1f481 1f3ff 200d 2642 fe0f","name":"man tipping hand: dark skin tone"},{"codepoint":"1f481 200d 2640 fe0f","name":"woman tipping hand"},{"codepoint":"1f481 1f3fb 200d 2640 fe0f","name":"woman tipping hand: light skin tone"},{"codepoint":"1f481 1f3fc 200d 2640 fe0f","name":"woman tipping hand: medium-light skin tone"},{"codepoint":"1f481 1f3fd 200d 2640 fe0f","name":"woman tipping hand: medium skin tone"},{"codepoint":"1f481 1f3fe 200d 2640 fe0f","name":"woman tipping hand: medium-dark skin tone"},{"codepoint":"1f481 1f3ff 200d 2640 fe0f","name":"woman tipping hand: dark skin tone"},{"codepoint":"1f64b","name":"person raising hand"},{"codepoint":"1f64b 1f3fb","name":"person raising hand: light skin tone"},{"codepoint":"1f64b 1f3fc","name":"person raising hand: medium-light skin tone"},{"codepoint":"1f64b 1f3fd","name":"person raising hand: medium skin tone"},{"codepoint":"1f64b 1f3fe","name":"person raising hand: medium-dark skin tone"},{"codepoint":"1f64b 1f3ff","name":"person raising hand: dark skin tone"},{"codepoint":"1f64b 200d 2642 fe0f","name":"man raising hand"},{"codepoint":"1f64b 1f3fb 200d 2642 fe0f","name":"man raising hand: light skin tone"},{"codepoint":"1f64b 1f3fc 200d 2642 fe0f","name":"man raising hand: medium-light skin tone"},{"codepoint":"1f64b 1f3fd 200d 2642 fe0f","name":"man raising hand: medium skin tone"},{"codepoint":"1f64b 1f3fe 200d 2642 fe0f","name":"man raising hand: medium-dark skin tone"},{"codepoint":"1f64b 1f3ff 200d 2642 fe0f","name":"man raising hand: dark skin tone"},{"codepoint":"1f64b 200d 2640 fe0f","name":"woman raising hand"},{"codepoint":"1f64b 1f3fb 200d 2640 fe0f","name":"woman raising hand: light skin tone"},{"codepoint":"1f64b 1f3fc 200d 2640 fe0f","name":"woman raising hand: medium-light skin tone"},{"codepoint":"1f64b 1f3fd 200d 2640 fe0f","name":"woman raising hand: medium skin tone"},{"codepoint":"1f64b 1f3fe 200d 2640 fe0f","name":"woman raising hand: medium-dark skin tone"},{"codepoint":"1f64b 1f3ff 200d 2640 fe0f","name":"woman raising hand: dark skin tone"},{"codepoint":"1f9cf","name":"deaf person"},{"codepoint":"1f9cf 1f3fb","name":"deaf person: light skin tone"},{"codepoint":"1f9cf 1f3fc","name":"deaf person: medium-light skin tone"},{"codepoint":"1f9cf 1f3fd","name":"deaf person: medium skin tone"},{"codepoint":"1f9cf 1f3fe","name":"deaf person: medium-dark skin tone"},{"codepoint":"1f9cf 1f3ff","name":"deaf person: dark skin tone"},{"codepoint":"1f9cf 200d 2642 fe0f","name":"deaf man"},{"codepoint":"1f9cf 1f3fb 200d 2642 fe0f","name":"deaf man: light skin tone"},{"codepoint":"1f9cf 1f3fc 200d 2642 fe0f","name":"deaf man: medium-light skin tone"},{"codepoint":"1f9cf 1f3fd 200d 2642 fe0f","name":"deaf man: medium skin tone"},{"codepoint":"1f9cf 1f3fe 200d 2642 fe0f","name":"deaf man: medium-dark skin tone"},{"codepoint":"1f9cf 1f3ff 200d 2642 fe0f","name":"deaf man: dark skin tone"},{"codepoint":"1f9cf 200d 2640 fe0f","name":"deaf woman"},{"codepoint":"1f9cf 1f3fb 200d 2640 fe0f","name":"deaf woman: light skin tone"},{"codepoint":"1f9cf 1f3fc 200d 2640 fe0f","name":"deaf woman: medium-light skin tone"},{"codepoint":"1f9cf 1f3fd 200d 2640 fe0f","name":"deaf woman: medium skin tone"},{"codepoint":"1f9cf 1f3fe 200d 2640 fe0f","name":"deaf woman: medium-dark skin tone"},{"codepoint":"1f9cf 1f3ff 200d 2640 fe0f","name":"deaf woman: dark skin tone"},{"codepoint":"1f647","name":"person bowing"},{"codepoint":"1f647 1f3fb","name":"person bowing: light skin tone"},{"codepoint":"1f647 1f3fc","name":"person bowing: medium-light skin tone"},{"codepoint":"1f647 1f3fd","name":"person bowing: medium skin tone"},{"codepoint":"1f647 1f3fe","name":"person bowing: medium-dark skin tone"},{"codepoint":"1f647 1f3ff","name":"person bowing: dark skin tone"},{"codepoint":"1f647 200d 2642 fe0f","name":"man bowing"},{"codepoint":"1f647 1f3fb 200d 2642 fe0f","name":"man bowing: light skin tone"},{"codepoint":"1f647 1f3fc 200d 2642 fe0f","name":"man bowing: medium-light skin tone"},{"codepoint":"1f647 1f3fd 200d 2642 fe0f","name":"man bowing: medium skin tone"},{"codepoint":"1f647 1f3fe 200d 2642 fe0f","name":"man bowing: medium-dark skin tone"},{"codepoint":"1f647 1f3ff 200d 2642 fe0f","name":"man bowing: dark skin tone"},{"codepoint":"1f647 200d 2640 fe0f","name":"woman bowing"},{"codepoint":"1f647 1f3fb 200d 2640 fe0f","name":"woman bowing: light skin tone"},{"codepoint":"1f647 1f3fc 200d 2640 fe0f","name":"woman bowing: medium-light skin tone"},{"codepoint":"1f647 1f3fd 200d 2640 fe0f","name":"woman bowing: medium skin tone"},{"codepoint":"1f647 1f3fe 200d 2640 fe0f","name":"woman bowing: medium-dark skin tone"},{"codepoint":"1f647 1f3ff 200d 2640 fe0f","name":"woman bowing: dark skin tone"},{"codepoint":"1f926","name":"person facepalming"},{"codepoint":"1f926 1f3fb","name":"person facepalming: light skin tone"},{"codepoint":"1f926 1f3fc","name":"person facepalming: medium-light skin tone"},{"codepoint":"1f926 1f3fd","name":"person facepalming: medium skin tone"},{"codepoint":"1f926 1f3fe","name":"person facepalming: medium-dark skin tone"},{"codepoint":"1f926 1f3ff","name":"person facepalming: dark skin tone"},{"codepoint":"1f926 200d 2642 fe0f","name":"man facepalming"},{"codepoint":"1f926 1f3fb 200d 2642 fe0f","name":"man facepalming: light skin tone"},{"codepoint":"1f926 1f3fc 200d 2642 fe0f","name":"man facepalming: medium-light skin tone"},{"codepoint":"1f926 1f3fd 200d 2642 fe0f","name":"man facepalming: medium skin tone"},{"codepoint":"1f926 1f3fe 200d 2642 fe0f","name":"man facepalming: medium-dark skin tone"},{"codepoint":"1f926 1f3ff 200d 2642 fe0f","name":"man facepalming: dark skin tone"},{"codepoint":"1f926 200d 2640 fe0f","name":"woman facepalming"},{"codepoint":"1f926 1f3fb 200d 2640 fe0f","name":"woman facepalming: light skin tone"},{"codepoint":"1f926 1f3fc 200d 2640 fe0f","name":"woman facepalming: medium-light skin tone"},{"codepoint":"1f926 1f3fd 200d 2640 fe0f","name":"woman facepalming: medium skin tone"},{"codepoint":"1f926 1f3fe 200d 2640 fe0f","name":"woman facepalming: medium-dark skin tone"},{"codepoint":"1f926 1f3ff 200d 2640 fe0f","name":"woman facepalming: dark skin tone"},{"codepoint":"1f937","name":"person shrugging"},{"codepoint":"1f937 1f3fb","name":"person shrugging: light skin tone"},{"codepoint":"1f937 1f3fc","name":"person shrugging: medium-light skin tone"},{"codepoint":"1f937 1f3fd","name":"person shrugging: medium skin tone"},{"codepoint":"1f937 1f3fe","name":"person shrugging: medium-dark skin tone"},{"codepoint":"1f937 1f3ff","name":"person shrugging: dark skin tone"},{"codepoint":"1f937 200d 2642 fe0f","name":"man shrugging"},{"codepoint":"1f937 1f3fb 200d 2642 fe0f","name":"man shrugging: light skin tone"},{"codepoint":"1f937 1f3fc 200d 2642 fe0f","name":"man shrugging: medium-light skin tone"},{"codepoint":"1f937 1f3fd 200d 2642 fe0f","name":"man shrugging: medium skin tone"},{"codepoint":"1f937 1f3fe 200d 2642 fe0f","name":"man shrugging: medium-dark skin tone"},{"codepoint":"1f937 1f3ff 200d 2642 fe0f","name":"man shrugging: dark skin tone"},{"codepoint":"1f937 200d 2640 fe0f","name":"woman shrugging"},{"codepoint":"1f937 1f3fb 200d 2640 fe0f","name":"woman shrugging: light skin tone"},{"codepoint":"1f937 1f3fc 200d 2640 fe0f","name":"woman shrugging: medium-light skin tone"},{"codepoint":"1f937 1f3fd 200d 2640 fe0f","name":"woman shrugging: medium skin tone"},{"codepoint":"1f937 1f3fe 200d 2640 fe0f","name":"woman shrugging: medium-dark skin tone"},{"codepoint":"1f937 1f3ff 200d 2640 fe0f","name":"woman shrugging: dark skin tone"},{"codepoint":"1f9d1 200d 2695 fe0f","name":"health worker"},{"codepoint":"1f9d1 1f3fb 200d 2695 fe0f","name":"health worker: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 2695 fe0f","name":"health worker: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 2695 fe0f","name":"health worker: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 2695 fe0f","name":"health worker: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 2695 fe0f","name":"health worker: dark skin tone"},{"codepoint":"1f468 200d 2695 fe0f","name":"man health worker"},{"codepoint":"1f468 1f3fb 200d 2695 fe0f","name":"man health worker: light skin tone"},{"codepoint":"1f468 1f3fc 200d 2695 fe0f","name":"man health worker: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 2695 fe0f","name":"man health worker: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 2695 fe0f","name":"man health worker: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 2695 fe0f","name":"man health worker: dark skin tone"},{"codepoint":"1f469 200d 2695 fe0f","name":"woman health worker"},{"codepoint":"1f469 1f3fb 200d 2695 fe0f","name":"woman health worker: light skin tone"},{"codepoint":"1f469 1f3fc 200d 2695 fe0f","name":"woman health worker: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 2695 fe0f","name":"woman health worker: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 2695 fe0f","name":"woman health worker: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 2695 fe0f","name":"woman health worker: dark skin tone"},{"codepoint":"1f9d1 200d 1f393","name":"student"},{"codepoint":"1f9d1 1f3fb 200d 1f393","name":"student: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f393","name":"student: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f393","name":"student: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f393","name":"student: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f393","name":"student: dark skin tone"},{"codepoint":"1f468 200d 1f393","name":"man student"},{"codepoint":"1f468 1f3fb 200d 1f393","name":"man student: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f393","name":"man student: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f393","name":"man student: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f393","name":"man student: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f393","name":"man student: dark skin tone"},{"codepoint":"1f469 200d 1f393","name":"woman student"},{"codepoint":"1f469 1f3fb 200d 1f393","name":"woman student: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f393","name":"woman student: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f393","name":"woman student: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f393","name":"woman student: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f393","name":"woman student: dark skin tone"},{"codepoint":"1f9d1 200d 1f3eb","name":"teacher"},{"codepoint":"1f9d1 1f3fb 200d 1f3eb","name":"teacher: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3eb","name":"teacher: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3eb","name":"teacher: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3eb","name":"teacher: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3eb","name":"teacher: dark skin tone"},{"codepoint":"1f468 200d 1f3eb","name":"man teacher"},{"codepoint":"1f468 1f3fb 200d 1f3eb","name":"man teacher: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3eb","name":"man teacher: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3eb","name":"man teacher: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3eb","name":"man teacher: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3eb","name":"man teacher: dark skin tone"},{"codepoint":"1f469 200d 1f3eb","name":"woman teacher"},{"codepoint":"1f469 1f3fb 200d 1f3eb","name":"woman teacher: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3eb","name":"woman teacher: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3eb","name":"woman teacher: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3eb","name":"woman teacher: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3eb","name":"woman teacher: dark skin tone"},{"codepoint":"1f9d1 200d 2696 fe0f","name":"judge"},{"codepoint":"1f9d1 1f3fb 200d 2696 fe0f","name":"judge: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 2696 fe0f","name":"judge: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 2696 fe0f","name":"judge: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 2696 fe0f","name":"judge: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 2696 fe0f","name":"judge: dark skin tone"},{"codepoint":"1f468 200d 2696 fe0f","name":"man judge"},{"codepoint":"1f468 1f3fb 200d 2696 fe0f","name":"man judge: light skin tone"},{"codepoint":"1f468 1f3fc 200d 2696 fe0f","name":"man judge: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 2696 fe0f","name":"man judge: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 2696 fe0f","name":"man judge: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 2696 fe0f","name":"man judge: dark skin tone"},{"codepoint":"1f469 200d 2696 fe0f","name":"woman judge"},{"codepoint":"1f469 1f3fb 200d 2696 fe0f","name":"woman judge: light skin tone"},{"codepoint":"1f469 1f3fc 200d 2696 fe0f","name":"woman judge: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 2696 fe0f","name":"woman judge: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 2696 fe0f","name":"woman judge: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 2696 fe0f","name":"woman judge: dark skin tone"},{"codepoint":"1f9d1 200d 1f33e","name":"farmer"},{"codepoint":"1f9d1 1f3fb 200d 1f33e","name":"farmer: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f33e","name":"farmer: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f33e","name":"farmer: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f33e","name":"farmer: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f33e","name":"farmer: dark skin tone"},{"codepoint":"1f468 200d 1f33e","name":"man farmer"},{"codepoint":"1f468 1f3fb 200d 1f33e","name":"man farmer: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f33e","name":"man farmer: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f33e","name":"man farmer: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f33e","name":"man farmer: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f33e","name":"man farmer: dark skin tone"},{"codepoint":"1f469 200d 1f33e","name":"woman farmer"},{"codepoint":"1f469 1f3fb 200d 1f33e","name":"woman farmer: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f33e","name":"woman farmer: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f33e","name":"woman farmer: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f33e","name":"woman farmer: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f33e","name":"woman farmer: dark skin tone"},{"codepoint":"1f9d1 200d 1f373","name":"cook"},{"codepoint":"1f9d1 1f3fb 200d 1f373","name":"cook: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f373","name":"cook: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f373","name":"cook: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f373","name":"cook: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f373","name":"cook: dark skin tone"},{"codepoint":"1f468 200d 1f373","name":"man cook"},{"codepoint":"1f468 1f3fb 200d 1f373","name":"man cook: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f373","name":"man cook: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f373","name":"man cook: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f373","name":"man cook: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f373","name":"man cook: dark skin tone"},{"codepoint":"1f469 200d 1f373","name":"woman cook"},{"codepoint":"1f469 1f3fb 200d 1f373","name":"woman cook: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f373","name":"woman cook: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f373","name":"woman cook: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f373","name":"woman cook: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f373","name":"woman cook: dark skin tone"},{"codepoint":"1f9d1 200d 1f527","name":"mechanic"},{"codepoint":"1f9d1 1f3fb 200d 1f527","name":"mechanic: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f527","name":"mechanic: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f527","name":"mechanic: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f527","name":"mechanic: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f527","name":"mechanic: dark skin tone"},{"codepoint":"1f468 200d 1f527","name":"man mechanic"},{"codepoint":"1f468 1f3fb 200d 1f527","name":"man mechanic: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f527","name":"man mechanic: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f527","name":"man mechanic: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f527","name":"man mechanic: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f527","name":"man mechanic: dark skin tone"},{"codepoint":"1f469 200d 1f527","name":"woman mechanic"},{"codepoint":"1f469 1f3fb 200d 1f527","name":"woman mechanic: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f527","name":"woman mechanic: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f527","name":"woman mechanic: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f527","name":"woman mechanic: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f527","name":"woman mechanic: dark skin tone"},{"codepoint":"1f9d1 200d 1f3ed","name":"factory worker"},{"codepoint":"1f9d1 1f3fb 200d 1f3ed","name":"factory worker: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3ed","name":"factory worker: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3ed","name":"factory worker: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3ed","name":"factory worker: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3ed","name":"factory worker: dark skin tone"},{"codepoint":"1f468 200d 1f3ed","name":"man factory worker"},{"codepoint":"1f468 1f3fb 200d 1f3ed","name":"man factory worker: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3ed","name":"man factory worker: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3ed","name":"man factory worker: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3ed","name":"man factory worker: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3ed","name":"man factory worker: dark skin tone"},{"codepoint":"1f469 200d 1f3ed","name":"woman factory worker"},{"codepoint":"1f469 1f3fb 200d 1f3ed","name":"woman factory worker: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3ed","name":"woman factory worker: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3ed","name":"woman factory worker: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3ed","name":"woman factory worker: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3ed","name":"woman factory worker: dark skin tone"},{"codepoint":"1f9d1 200d 1f4bc","name":"office worker"},{"codepoint":"1f9d1 1f3fb 200d 1f4bc","name":"office worker: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f4bc","name":"office worker: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f4bc","name":"office worker: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f4bc","name":"office worker: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f4bc","name":"office worker: dark skin tone"},{"codepoint":"1f468 200d 1f4bc","name":"man office worker"},{"codepoint":"1f468 1f3fb 200d 1f4bc","name":"man office worker: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f4bc","name":"man office worker: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f4bc","name":"man office worker: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f4bc","name":"man office worker: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f4bc","name":"man office worker: dark skin tone"},{"codepoint":"1f469 200d 1f4bc","name":"woman office worker"},{"codepoint":"1f469 1f3fb 200d 1f4bc","name":"woman office worker: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f4bc","name":"woman office worker: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f4bc","name":"woman office worker: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f4bc","name":"woman office worker: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f4bc","name":"woman office worker: dark skin tone"},{"codepoint":"1f9d1 200d 1f52c","name":"scientist"},{"codepoint":"1f9d1 1f3fb 200d 1f52c","name":"scientist: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f52c","name":"scientist: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f52c","name":"scientist: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f52c","name":"scientist: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f52c","name":"scientist: dark skin tone"},{"codepoint":"1f468 200d 1f52c","name":"man scientist"},{"codepoint":"1f468 1f3fb 200d 1f52c","name":"man scientist: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f52c","name":"man scientist: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f52c","name":"man scientist: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f52c","name":"man scientist: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f52c","name":"man scientist: dark skin tone"},{"codepoint":"1f469 200d 1f52c","name":"woman scientist"},{"codepoint":"1f469 1f3fb 200d 1f52c","name":"woman scientist: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f52c","name":"woman scientist: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f52c","name":"woman scientist: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f52c","name":"woman scientist: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f52c","name":"woman scientist: dark skin tone"},{"codepoint":"1f9d1 200d 1f4bb","name":"technologist"},{"codepoint":"1f9d1 1f3fb 200d 1f4bb","name":"technologist: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f4bb","name":"technologist: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f4bb","name":"technologist: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f4bb","name":"technologist: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f4bb","name":"technologist: dark skin tone"},{"codepoint":"1f468 200d 1f4bb","name":"man technologist"},{"codepoint":"1f468 1f3fb 200d 1f4bb","name":"man technologist: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f4bb","name":"man technologist: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f4bb","name":"man technologist: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f4bb","name":"man technologist: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f4bb","name":"man technologist: dark skin tone"},{"codepoint":"1f469 200d 1f4bb","name":"woman technologist"},{"codepoint":"1f469 1f3fb 200d 1f4bb","name":"woman technologist: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f4bb","name":"woman technologist: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f4bb","name":"woman technologist: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f4bb","name":"woman technologist: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f4bb","name":"woman technologist: dark skin tone"},{"codepoint":"1f9d1 200d 1f3a4","name":"singer"},{"codepoint":"1f9d1 1f3fb 200d 1f3a4","name":"singer: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3a4","name":"singer: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3a4","name":"singer: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3a4","name":"singer: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3a4","name":"singer: dark skin tone"},{"codepoint":"1f468 200d 1f3a4","name":"man singer"},{"codepoint":"1f468 1f3fb 200d 1f3a4","name":"man singer: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3a4","name":"man singer: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3a4","name":"man singer: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3a4","name":"man singer: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3a4","name":"man singer: dark skin tone"},{"codepoint":"1f469 200d 1f3a4","name":"woman singer"},{"codepoint":"1f469 1f3fb 200d 1f3a4","name":"woman singer: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3a4","name":"woman singer: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3a4","name":"woman singer: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3a4","name":"woman singer: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3a4","name":"woman singer: dark skin tone"},{"codepoint":"1f9d1 200d 1f3a8","name":"artist"},{"codepoint":"1f9d1 1f3fb 200d 1f3a8","name":"artist: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f3a8","name":"artist: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f3a8","name":"artist: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f3a8","name":"artist: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f3a8","name":"artist: dark skin tone"},{"codepoint":"1f468 200d 1f3a8","name":"man artist"},{"codepoint":"1f468 1f3fb 200d 1f3a8","name":"man artist: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f3a8","name":"man artist: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f3a8","name":"man artist: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f3a8","name":"man artist: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f3a8","name":"man artist: dark skin tone"},{"codepoint":"1f469 200d 1f3a8","name":"woman artist"},{"codepoint":"1f469 1f3fb 200d 1f3a8","name":"woman artist: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f3a8","name":"woman artist: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f3a8","name":"woman artist: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f3a8","name":"woman artist: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f3a8","name":"woman artist: dark skin tone"},{"codepoint":"1f9d1 200d 2708 fe0f","name":"pilot"},{"codepoint":"1f9d1 1f3fb 200d 2708 fe0f","name":"pilot: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 2708 fe0f","name":"pilot: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 2708 fe0f","name":"pilot: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 2708 fe0f","name":"pilot: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 2708 fe0f","name":"pilot: dark skin tone"},{"codepoint":"1f468 200d 2708 fe0f","name":"man pilot"},{"codepoint":"1f468 1f3fb 200d 2708 fe0f","name":"man pilot: light skin tone"},{"codepoint":"1f468 1f3fc 200d 2708 fe0f","name":"man pilot: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 2708 fe0f","name":"man pilot: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 2708 fe0f","name":"man pilot: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 2708 fe0f","name":"man pilot: dark skin tone"},{"codepoint":"1f469 200d 2708 fe0f","name":"woman pilot"},{"codepoint":"1f469 1f3fb 200d 2708 fe0f","name":"woman pilot: light skin tone"},{"codepoint":"1f469 1f3fc 200d 2708 fe0f","name":"woman pilot: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 2708 fe0f","name":"woman pilot: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 2708 fe0f","name":"woman pilot: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 2708 fe0f","name":"woman pilot: dark skin tone"},{"codepoint":"1f9d1 200d 1f680","name":"astronaut"},{"codepoint":"1f9d1 1f3fb 200d 1f680","name":"astronaut: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f680","name":"astronaut: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f680","name":"astronaut: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f680","name":"astronaut: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f680","name":"astronaut: dark skin tone"},{"codepoint":"1f468 200d 1f680","name":"man astronaut"},{"codepoint":"1f468 1f3fb 200d 1f680","name":"man astronaut: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f680","name":"man astronaut: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f680","name":"man astronaut: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f680","name":"man astronaut: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f680","name":"man astronaut: dark skin tone"},{"codepoint":"1f469 200d 1f680","name":"woman astronaut"},{"codepoint":"1f469 1f3fb 200d 1f680","name":"woman astronaut: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f680","name":"woman astronaut: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f680","name":"woman astronaut: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f680","name":"woman astronaut: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f680","name":"woman astronaut: dark skin tone"},{"codepoint":"1f9d1 200d 1f692","name":"firefighter"},{"codepoint":"1f9d1 1f3fb 200d 1f692","name":"firefighter: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f692","name":"firefighter: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f692","name":"firefighter: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f692","name":"firefighter: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f692","name":"firefighter: dark skin tone"},{"codepoint":"1f468 200d 1f692","name":"man firefighter"},{"codepoint":"1f468 1f3fb 200d 1f692","name":"man firefighter: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f692","name":"man firefighter: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f692","name":"man firefighter: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f692","name":"man firefighter: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f692","name":"man firefighter: dark skin tone"},{"codepoint":"1f469 200d 1f692","name":"woman firefighter"},{"codepoint":"1f469 1f3fb 200d 1f692","name":"woman firefighter: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f692","name":"woman firefighter: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f692","name":"woman firefighter: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f692","name":"woman firefighter: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f692","name":"woman firefighter: dark skin tone"},{"codepoint":"1f46e","name":"police officer"},{"codepoint":"1f46e 1f3fb","name":"police officer: light skin tone"},{"codepoint":"1f46e 1f3fc","name":"police officer: medium-light skin tone"},{"codepoint":"1f46e 1f3fd","name":"police officer: medium skin tone"},{"codepoint":"1f46e 1f3fe","name":"police officer: medium-dark skin tone"},{"codepoint":"1f46e 1f3ff","name":"police officer: dark skin tone"},{"codepoint":"1f46e 200d 2642 fe0f","name":"man police officer"},{"codepoint":"1f46e 1f3fb 200d 2642 fe0f","name":"man police officer: light skin tone"},{"codepoint":"1f46e 1f3fc 200d 2642 fe0f","name":"man police officer: medium-light skin tone"},{"codepoint":"1f46e 1f3fd 200d 2642 fe0f","name":"man police officer: medium skin tone"},{"codepoint":"1f46e 1f3fe 200d 2642 fe0f","name":"man police officer: medium-dark skin tone"},{"codepoint":"1f46e 1f3ff 200d 2642 fe0f","name":"man police officer: dark skin tone"},{"codepoint":"1f46e 200d 2640 fe0f","name":"woman police officer"},{"codepoint":"1f46e 1f3fb 200d 2640 fe0f","name":"woman police officer: light skin tone"},{"codepoint":"1f46e 1f3fc 200d 2640 fe0f","name":"woman police officer: medium-light skin tone"},{"codepoint":"1f46e 1f3fd 200d 2640 fe0f","name":"woman police officer: medium skin tone"},{"codepoint":"1f46e 1f3fe 200d 2640 fe0f","name":"woman police officer: medium-dark skin tone"},{"codepoint":"1f46e 1f3ff 200d 2640 fe0f","name":"woman police officer: dark skin tone"},{"codepoint":"1f575 fe0f","name":"detective"},{"codepoint":"1f575 1f3fb","name":"detective: light skin tone"},{"codepoint":"1f575 1f3fc","name":"detective: medium-light skin tone"},{"codepoint":"1f575 1f3fd","name":"detective: medium skin tone"},{"codepoint":"1f575 1f3fe","name":"detective: medium-dark skin tone"},{"codepoint":"1f575 1f3ff","name":"detective: dark skin tone"},{"codepoint":"1f575 fe0f 200d 2642 fe0f","name":"man detective"},{"codepoint":"1f575 1f3fb 200d 2642 fe0f","name":"man detective: light skin tone"},{"codepoint":"1f575 1f3fc 200d 2642 fe0f","name":"man detective: medium-light skin tone"},{"codepoint":"1f575 1f3fd 200d 2642 fe0f","name":"man detective: medium skin tone"},{"codepoint":"1f575 1f3fe 200d 2642 fe0f","name":"man detective: medium-dark skin tone"},{"codepoint":"1f575 1f3ff 200d 2642 fe0f","name":"man detective: dark skin tone"},{"codepoint":"1f575 fe0f 200d 2640 fe0f","name":"woman detective"},{"codepoint":"1f575 1f3fb 200d 2640 fe0f","name":"woman detective: light skin tone"},{"codepoint":"1f575 1f3fc 200d 2640 fe0f","name":"woman detective: medium-light skin tone"},{"codepoint":"1f575 1f3fd 200d 2640 fe0f","name":"woman detective: medium skin tone"},{"codepoint":"1f575 1f3fe 200d 2640 fe0f","name":"woman detective: medium-dark skin tone"},{"codepoint":"1f575 1f3ff 200d 2640 fe0f","name":"woman detective: dark skin tone"},{"codepoint":"1f482","name":"guard"},{"codepoint":"1f482 1f3fb","name":"guard: light skin tone"},{"codepoint":"1f482 1f3fc","name":"guard: medium-light skin tone"},{"codepoint":"1f482 1f3fd","name":"guard: medium skin tone"},{"codepoint":"1f482 1f3fe","name":"guard: medium-dark skin tone"},{"codepoint":"1f482 1f3ff","name":"guard: dark skin tone"},{"codepoint":"1f482 200d 2642 fe0f","name":"man guard"},{"codepoint":"1f482 1f3fb 200d 2642 fe0f","name":"man guard: light skin tone"},{"codepoint":"1f482 1f3fc 200d 2642 fe0f","name":"man guard: medium-light skin tone"},{"codepoint":"1f482 1f3fd 200d 2642 fe0f","name":"man guard: medium skin tone"},{"codepoint":"1f482 1f3fe 200d 2642 fe0f","name":"man guard: medium-dark skin tone"},{"codepoint":"1f482 1f3ff 200d 2642 fe0f","name":"man guard: dark skin tone"},{"codepoint":"1f482 200d 2640 fe0f","name":"woman guard"},{"codepoint":"1f482 1f3fb 200d 2640 fe0f","name":"woman guard: light skin tone"},{"codepoint":"1f482 1f3fc 200d 2640 fe0f","name":"woman guard: medium-light skin tone"},{"codepoint":"1f482 1f3fd 200d 2640 fe0f","name":"woman guard: medium skin tone"},{"codepoint":"1f482 1f3fe 200d 2640 fe0f","name":"woman guard: medium-dark skin tone"},{"codepoint":"1f482 1f3ff 200d 2640 fe0f","name":"woman guard: dark skin tone"},{"codepoint":"1f977","name":"ninja"},{"codepoint":"1f977 1f3fb","name":"ninja: light skin tone"},{"codepoint":"1f977 1f3fc","name":"ninja: medium-light skin tone"},{"codepoint":"1f977 1f3fd","name":"ninja: medium skin tone"},{"codepoint":"1f977 1f3fe","name":"ninja: medium-dark skin tone"},{"codepoint":"1f977 1f3ff","name":"ninja: dark skin tone"},{"codepoint":"1f477","name":"construction worker"},{"codepoint":"1f477 1f3fb","name":"construction worker: light skin tone"},{"codepoint":"1f477 1f3fc","name":"construction worker: medium-light skin tone"},{"codepoint":"1f477 1f3fd","name":"construction worker: medium skin tone"},{"codepoint":"1f477 1f3fe","name":"construction worker: medium-dark skin tone"},{"codepoint":"1f477 1f3ff","name":"construction worker: dark skin tone"},{"codepoint":"1f477 200d 2642 fe0f","name":"man construction worker"},{"codepoint":"1f477 1f3fb 200d 2642 fe0f","name":"man construction worker: light skin tone"},{"codepoint":"1f477 1f3fc 200d 2642 fe0f","name":"man construction worker: medium-light skin tone"},{"codepoint":"1f477 1f3fd 200d 2642 fe0f","name":"man construction worker: medium skin tone"},{"codepoint":"1f477 1f3fe 200d 2642 fe0f","name":"man construction worker: medium-dark skin tone"},{"codepoint":"1f477 1f3ff 200d 2642 fe0f","name":"man construction worker: dark skin tone"},{"codepoint":"1f477 200d 2640 fe0f","name":"woman construction worker"},{"codepoint":"1f477 1f3fb 200d 2640 fe0f","name":"woman construction worker: light skin tone"},{"codepoint":"1f477 1f3fc 200d 2640 fe0f","name":"woman construction worker: medium-light skin tone"},{"codepoint":"1f477 1f3fd 200d 2640 fe0f","name":"woman construction worker: medium skin tone"},{"codepoint":"1f477 1f3fe 200d 2640 fe0f","name":"woman construction worker: medium-dark skin tone"},{"codepoint":"1f477 1f3ff 200d 2640 fe0f","name":"woman construction worker: dark skin tone"},{"codepoint":"1fac5","name":"person with crown"},{"codepoint":"1fac5 1f3fb","name":"person with crown: light skin tone"},{"codepoint":"1fac5 1f3fc","name":"person with crown: medium-light skin tone"},{"codepoint":"1fac5 1f3fd","name":"person with crown: medium skin tone"},{"codepoint":"1fac5 1f3fe","name":"person with crown: medium-dark skin tone"},{"codepoint":"1fac5 1f3ff","name":"person with crown: dark skin tone"},{"codepoint":"1f934","name":"prince"},{"codepoint":"1f934 1f3fb","name":"prince: light skin tone"},{"codepoint":"1f934 1f3fc","name":"prince: medium-light skin tone"},{"codepoint":"1f934 1f3fd","name":"prince: medium skin tone"},{"codepoint":"1f934 1f3fe","name":"prince: medium-dark skin tone"},{"codepoint":"1f934 1f3ff","name":"prince: dark skin tone"},{"codepoint":"1f478","name":"princess"},{"codepoint":"1f478 1f3fb","name":"princess: light skin tone"},{"codepoint":"1f478 1f3fc","name":"princess: medium-light skin tone"},{"codepoint":"1f478 1f3fd","name":"princess: medium skin tone"},{"codepoint":"1f478 1f3fe","name":"princess: medium-dark skin tone"},{"codepoint":"1f478 1f3ff","name":"princess: dark skin tone"},{"codepoint":"1f473","name":"person wearing turban"},{"codepoint":"1f473 1f3fb","name":"person wearing turban: light skin tone"},{"codepoint":"1f473 1f3fc","name":"person wearing turban: medium-light skin tone"},{"codepoint":"1f473 1f3fd","name":"person wearing turban: medium skin tone"},{"codepoint":"1f473 1f3fe","name":"person wearing turban: medium-dark skin tone"},{"codepoint":"1f473 1f3ff","name":"person wearing turban: dark skin tone"},{"codepoint":"1f473 200d 2642 fe0f","name":"man wearing turban"},{"codepoint":"1f473 1f3fb 200d 2642 fe0f","name":"man wearing turban: light skin tone"},{"codepoint":"1f473 1f3fc 200d 2642 fe0f","name":"man wearing turban: medium-light skin tone"},{"codepoint":"1f473 1f3fd 200d 2642 fe0f","name":"man wearing turban: medium skin tone"},{"codepoint":"1f473 1f3fe 200d 2642 fe0f","name":"man wearing turban: medium-dark skin tone"},{"codepoint":"1f473 1f3ff 200d 2642 fe0f","name":"man wearing turban: dark skin tone"},{"codepoint":"1f473 200d 2640 fe0f","name":"woman wearing turban"},{"codepoint":"1f473 1f3fb 200d 2640 fe0f","name":"woman wearing turban: light skin tone"},{"codepoint":"1f473 1f3fc 200d 2640 fe0f","name":"woman wearing turban: medium-light skin tone"},{"codepoint":"1f473 1f3fd 200d 2640 fe0f","name":"woman wearing turban: medium skin tone"},{"codepoint":"1f473 1f3fe 200d 2640 fe0f","name":"woman wearing turban: medium-dark skin tone"},{"codepoint":"1f473 1f3ff 200d 2640 fe0f","name":"woman wearing turban: dark skin tone"},{"codepoint":"1f472","name":"person with skullcap"},{"codepoint":"1f472 1f3fb","name":"person with skullcap: light skin tone"},{"codepoint":"1f472 1f3fc","name":"person with skullcap: medium-light skin tone"},{"codepoint":"1f472 1f3fd","name":"person with skullcap: medium skin tone"},{"codepoint":"1f472 1f3fe","name":"person with skullcap: medium-dark skin tone"},{"codepoint":"1f472 1f3ff","name":"person with skullcap: dark skin tone"},{"codepoint":"1f9d5","name":"woman with headscarf"},{"codepoint":"1f9d5 1f3fb","name":"woman with headscarf: light skin tone"},{"codepoint":"1f9d5 1f3fc","name":"woman with headscarf: medium-light skin tone"},{"codepoint":"1f9d5 1f3fd","name":"woman with headscarf: medium skin tone"},{"codepoint":"1f9d5 1f3fe","name":"woman with headscarf: medium-dark skin tone"},{"codepoint":"1f9d5 1f3ff","name":"woman with headscarf: dark skin tone"},{"codepoint":"1f935","name":"person in tuxedo"},{"codepoint":"1f935 1f3fb","name":"person in tuxedo: light skin tone"},{"codepoint":"1f935 1f3fc","name":"person in tuxedo: medium-light skin tone"},{"codepoint":"1f935 1f3fd","name":"person in tuxedo: medium skin tone"},{"codepoint":"1f935 1f3fe","name":"person in tuxedo: medium-dark skin tone"},{"codepoint":"1f935 1f3ff","name":"person in tuxedo: dark skin tone"},{"codepoint":"1f935 200d 2642 fe0f","name":"man in tuxedo"},{"codepoint":"1f935 1f3fb 200d 2642 fe0f","name":"man in tuxedo: light skin tone"},{"codepoint":"1f935 1f3fc 200d 2642 fe0f","name":"man in tuxedo: medium-light skin tone"},{"codepoint":"1f935 1f3fd 200d 2642 fe0f","name":"man in tuxedo: medium skin tone"},{"codepoint":"1f935 1f3fe 200d 2642 fe0f","name":"man in tuxedo: medium-dark skin tone"},{"codepoint":"1f935 1f3ff 200d 2642 fe0f","name":"man in tuxedo: dark skin tone"},{"codepoint":"1f935 200d 2640 fe0f","name":"woman in tuxedo"},{"codepoint":"1f935 1f3fb 200d 2640 fe0f","name":"woman in tuxedo: light skin tone"},{"codepoint":"1f935 1f3fc 200d 2640 fe0f","name":"woman in tuxedo: medium-light skin tone"},{"codepoint":"1f935 1f3fd 200d 2640 fe0f","name":"woman in tuxedo: medium skin tone"},{"codepoint":"1f935 1f3fe 200d 2640 fe0f","name":"woman in tuxedo: medium-dark skin tone"},{"codepoint":"1f935 1f3ff 200d 2640 fe0f","name":"woman in tuxedo: dark skin tone"},{"codepoint":"1f470","name":"person with veil"},{"codepoint":"1f470 1f3fb","name":"person with veil: light skin tone"},{"codepoint":"1f470 1f3fc","name":"person with veil: medium-light skin tone"},{"codepoint":"1f470 1f3fd","name":"person with veil: medium skin tone"},{"codepoint":"1f470 1f3fe","name":"person with veil: medium-dark skin tone"},{"codepoint":"1f470 1f3ff","name":"person with veil: dark skin tone"},{"codepoint":"1f470 200d 2642 fe0f","name":"man with veil"},{"codepoint":"1f470 1f3fb 200d 2642 fe0f","name":"man with veil: light skin tone"},{"codepoint":"1f470 1f3fc 200d 2642 fe0f","name":"man with veil: medium-light skin tone"},{"codepoint":"1f470 1f3fd 200d 2642 fe0f","name":"man with veil: medium skin tone"},{"codepoint":"1f470 1f3fe 200d 2642 fe0f","name":"man with veil: medium-dark skin tone"},{"codepoint":"1f470 1f3ff 200d 2642 fe0f","name":"man with veil: dark skin tone"},{"codepoint":"1f470 200d 2640 fe0f","name":"woman with veil"},{"codepoint":"1f470 1f3fb 200d 2640 fe0f","name":"woman with veil: light skin tone"},{"codepoint":"1f470 1f3fc 200d 2640 fe0f","name":"woman with veil: medium-light skin tone"},{"codepoint":"1f470 1f3fd 200d 2640 fe0f","name":"woman with veil: medium skin tone"},{"codepoint":"1f470 1f3fe 200d 2640 fe0f","name":"woman with veil: medium-dark skin tone"},{"codepoint":"1f470 1f3ff 200d 2640 fe0f","name":"woman with veil: dark skin tone"},{"codepoint":"1f930","name":"pregnant woman"},{"codepoint":"1f930 1f3fb","name":"pregnant woman: light skin tone"},{"codepoint":"1f930 1f3fc","name":"pregnant woman: medium-light skin tone"},{"codepoint":"1f930 1f3fd","name":"pregnant woman: medium skin tone"},{"codepoint":"1f930 1f3fe","name":"pregnant woman: medium-dark skin tone"},{"codepoint":"1f930 1f3ff","name":"pregnant woman: dark skin tone"},{"codepoint":"1fac3","name":"pregnant man"},{"codepoint":"1fac3 1f3fb","name":"pregnant man: light skin tone"},{"codepoint":"1fac3 1f3fc","name":"pregnant man: medium-light skin tone"},{"codepoint":"1fac3 1f3fd","name":"pregnant man: medium skin tone"},{"codepoint":"1fac3 1f3fe","name":"pregnant man: medium-dark skin tone"},{"codepoint":"1fac3 1f3ff","name":"pregnant man: dark skin tone"},{"codepoint":"1fac4","name":"pregnant person"},{"codepoint":"1fac4 1f3fb","name":"pregnant person: light skin tone"},{"codepoint":"1fac4 1f3fc","name":"pregnant person: medium-light skin tone"},{"codepoint":"1fac4 1f3fd","name":"pregnant person: medium skin tone"},{"codepoint":"1fac4 1f3fe","name":"pregnant person: medium-dark skin tone"},{"codepoint":"1fac4 1f3ff","name":"pregnant person: dark skin tone"},{"codepoint":"1f931","name":"breast-feeding"},{"codepoint":"1f931 1f3fb","name":"breast-feeding: light skin tone"},{"codepoint":"1f931 1f3fc","name":"breast-feeding: medium-light skin tone"},{"codepoint":"1f931 1f3fd","name":"breast-feeding: medium skin tone"},{"codepoint":"1f931 1f3fe","name":"breast-feeding: medium-dark skin tone"},{"codepoint":"1f931 1f3ff","name":"breast-feeding: dark skin tone"},{"codepoint":"1f469 200d 1f37c","name":"woman feeding baby"},{"codepoint":"1f469 1f3fb 200d 1f37c","name":"woman feeding baby: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f37c","name":"woman feeding baby: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f37c","name":"woman feeding baby: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f37c","name":"woman feeding baby: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f37c","name":"woman feeding baby: dark skin tone"},{"codepoint":"1f468 200d 1f37c","name":"man feeding baby"},{"codepoint":"1f468 1f3fb 200d 1f37c","name":"man feeding baby: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f37c","name":"man feeding baby: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f37c","name":"man feeding baby: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f37c","name":"man feeding baby: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f37c","name":"man feeding baby: dark skin tone"},{"codepoint":"1f9d1 200d 1f37c","name":"person feeding baby"},{"codepoint":"1f9d1 1f3fb 200d 1f37c","name":"person feeding baby: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f37c","name":"person feeding baby: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f37c","name":"person feeding baby: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f37c","name":"person feeding baby: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f37c","name":"person feeding baby: dark skin tone"},{"codepoint":"1f47c","name":"baby angel"},{"codepoint":"1f47c 1f3fb","name":"baby angel: light skin tone"},{"codepoint":"1f47c 1f3fc","name":"baby angel: medium-light skin tone"},{"codepoint":"1f47c 1f3fd","name":"baby angel: medium skin tone"},{"codepoint":"1f47c 1f3fe","name":"baby angel: medium-dark skin tone"},{"codepoint":"1f47c 1f3ff","name":"baby angel: dark skin tone"},{"codepoint":"1f385","name":"santa claus"},{"codepoint":"1f385 1f3fb","name":"santa claus: light skin tone"},{"codepoint":"1f385 1f3fc","name":"santa claus: medium-light skin tone"},{"codepoint":"1f385 1f3fd","name":"santa claus: medium skin tone"},{"codepoint":"1f385 1f3fe","name":"santa claus: medium-dark skin tone"},{"codepoint":"1f385 1f3ff","name":"santa claus: dark skin tone"},{"codepoint":"1f936","name":"mrs. claus"},{"codepoint":"1f936 1f3fb","name":"mrs. claus: light skin tone"},{"codepoint":"1f936 1f3fc","name":"mrs. claus: medium-light skin tone"},{"codepoint":"1f936 1f3fd","name":"mrs. claus: medium skin tone"},{"codepoint":"1f936 1f3fe","name":"mrs. claus: medium-dark skin tone"},{"codepoint":"1f936 1f3ff","name":"mrs. claus: dark skin tone"},{"codepoint":"1f9d1 200d 1f384","name":"mx claus"},{"codepoint":"1f9d1 1f3fb 200d 1f384","name":"mx claus: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f384","name":"mx claus: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f384","name":"mx claus: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f384","name":"mx claus: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f384","name":"mx claus: dark skin tone"},{"codepoint":"1f9b8","name":"superhero"},{"codepoint":"1f9b8 1f3fb","name":"superhero: light skin tone"},{"codepoint":"1f9b8 1f3fc","name":"superhero: medium-light skin tone"},{"codepoint":"1f9b8 1f3fd","name":"superhero: medium skin tone"},{"codepoint":"1f9b8 1f3fe","name":"superhero: medium-dark skin tone"},{"codepoint":"1f9b8 1f3ff","name":"superhero: dark skin tone"},{"codepoint":"1f9b8 200d 2642 fe0f","name":"man superhero"},{"codepoint":"1f9b8 1f3fb 200d 2642 fe0f","name":"man superhero: light skin tone"},{"codepoint":"1f9b8 1f3fc 200d 2642 fe0f","name":"man superhero: medium-light skin tone"},{"codepoint":"1f9b8 1f3fd 200d 2642 fe0f","name":"man superhero: medium skin tone"},{"codepoint":"1f9b8 1f3fe 200d 2642 fe0f","name":"man superhero: medium-dark skin tone"},{"codepoint":"1f9b8 1f3ff 200d 2642 fe0f","name":"man superhero: dark skin tone"},{"codepoint":"1f9b8 200d 2640 fe0f","name":"woman superhero"},{"codepoint":"1f9b8 1f3fb 200d 2640 fe0f","name":"woman superhero: light skin tone"},{"codepoint":"1f9b8 1f3fc 200d 2640 fe0f","name":"woman superhero: medium-light skin tone"},{"codepoint":"1f9b8 1f3fd 200d 2640 fe0f","name":"woman superhero: medium skin tone"},{"codepoint":"1f9b8 1f3fe 200d 2640 fe0f","name":"woman superhero: medium-dark skin tone"},{"codepoint":"1f9b8 1f3ff 200d 2640 fe0f","name":"woman superhero: dark skin tone"},{"codepoint":"1f9b9","name":"supervillain"},{"codepoint":"1f9b9 1f3fb","name":"supervillain: light skin tone"},{"codepoint":"1f9b9 1f3fc","name":"supervillain: medium-light skin tone"},{"codepoint":"1f9b9 1f3fd","name":"supervillain: medium skin tone"},{"codepoint":"1f9b9 1f3fe","name":"supervillain: medium-dark skin tone"},{"codepoint":"1f9b9 1f3ff","name":"supervillain: dark skin tone"},{"codepoint":"1f9b9 200d 2642 fe0f","name":"man supervillain"},{"codepoint":"1f9b9 1f3fb 200d 2642 fe0f","name":"man supervillain: light skin tone"},{"codepoint":"1f9b9 1f3fc 200d 2642 fe0f","name":"man supervillain: medium-light skin tone"},{"codepoint":"1f9b9 1f3fd 200d 2642 fe0f","name":"man supervillain: medium skin tone"},{"codepoint":"1f9b9 1f3fe 200d 2642 fe0f","name":"man supervillain: medium-dark skin tone"},{"codepoint":"1f9b9 1f3ff 200d 2642 fe0f","name":"man supervillain: dark skin tone"},{"codepoint":"1f9b9 200d 2640 fe0f","name":"woman supervillain"},{"codepoint":"1f9b9 1f3fb 200d 2640 fe0f","name":"woman supervillain: light skin tone"},{"codepoint":"1f9b9 1f3fc 200d 2640 fe0f","name":"woman supervillain: medium-light skin tone"},{"codepoint":"1f9b9 1f3fd 200d 2640 fe0f","name":"woman supervillain: medium skin tone"},{"codepoint":"1f9b9 1f3fe 200d 2640 fe0f","name":"woman supervillain: medium-dark skin tone"},{"codepoint":"1f9b9 1f3ff 200d 2640 fe0f","name":"woman supervillain: dark skin tone"},{"codepoint":"1f9d9","name":"mage"},{"codepoint":"1f9d9 1f3fb","name":"mage: light skin tone"},{"codepoint":"1f9d9 1f3fc","name":"mage: medium-light skin tone"},{"codepoint":"1f9d9 1f3fd","name":"mage: medium skin tone"},{"codepoint":"1f9d9 1f3fe","name":"mage: medium-dark skin tone"},{"codepoint":"1f9d9 1f3ff","name":"mage: dark skin tone"},{"codepoint":"1f9d9 200d 2642 fe0f","name":"man mage"},{"codepoint":"1f9d9 1f3fb 200d 2642 fe0f","name":"man mage: light skin tone"},{"codepoint":"1f9d9 1f3fc 200d 2642 fe0f","name":"man mage: medium-light skin tone"},{"codepoint":"1f9d9 1f3fd 200d 2642 fe0f","name":"man mage: medium skin tone"},{"codepoint":"1f9d9 1f3fe 200d 2642 fe0f","name":"man mage: medium-dark skin tone"},{"codepoint":"1f9d9 1f3ff 200d 2642 fe0f","name":"man mage: dark skin tone"},{"codepoint":"1f9d9 200d 2640 fe0f","name":"woman mage"},{"codepoint":"1f9d9 1f3fb 200d 2640 fe0f","name":"woman mage: light skin tone"},{"codepoint":"1f9d9 1f3fc 200d 2640 fe0f","name":"woman mage: medium-light skin tone"},{"codepoint":"1f9d9 1f3fd 200d 2640 fe0f","name":"woman mage: medium skin tone"},{"codepoint":"1f9d9 1f3fe 200d 2640 fe0f","name":"woman mage: medium-dark skin tone"},{"codepoint":"1f9d9 1f3ff 200d 2640 fe0f","name":"woman mage: dark skin tone"},{"codepoint":"1f9da","name":"fairy"},{"codepoint":"1f9da 1f3fb","name":"fairy: light skin tone"},{"codepoint":"1f9da 1f3fc","name":"fairy: medium-light skin tone"},{"codepoint":"1f9da 1f3fd","name":"fairy: medium skin tone"},{"codepoint":"1f9da 1f3fe","name":"fairy: medium-dark skin tone"},{"codepoint":"1f9da 1f3ff","name":"fairy: dark skin tone"},{"codepoint":"1f9da 200d 2642 fe0f","name":"man fairy"},{"codepoint":"1f9da 1f3fb 200d 2642 fe0f","name":"man fairy: light skin tone"},{"codepoint":"1f9da 1f3fc 200d 2642 fe0f","name":"man fairy: medium-light skin tone"},{"codepoint":"1f9da 1f3fd 200d 2642 fe0f","name":"man fairy: medium skin tone"},{"codepoint":"1f9da 1f3fe 200d 2642 fe0f","name":"man fairy: medium-dark skin tone"},{"codepoint":"1f9da 1f3ff 200d 2642 fe0f","name":"man fairy: dark skin tone"},{"codepoint":"1f9da 200d 2640 fe0f","name":"woman fairy"},{"codepoint":"1f9da 1f3fb 200d 2640 fe0f","name":"woman fairy: light skin tone"},{"codepoint":"1f9da 1f3fc 200d 2640 fe0f","name":"woman fairy: medium-light skin tone"},{"codepoint":"1f9da 1f3fd 200d 2640 fe0f","name":"woman fairy: medium skin tone"},{"codepoint":"1f9da 1f3fe 200d 2640 fe0f","name":"woman fairy: medium-dark skin tone"},{"codepoint":"1f9da 1f3ff 200d 2640 fe0f","name":"woman fairy: dark skin tone"},{"codepoint":"1f9db","name":"vampire"},{"codepoint":"1f9db 1f3fb","name":"vampire: light skin tone"},{"codepoint":"1f9db 1f3fc","name":"vampire: medium-light skin tone"},{"codepoint":"1f9db 1f3fd","name":"vampire: medium skin tone"},{"codepoint":"1f9db 1f3fe","name":"vampire: medium-dark skin tone"},{"codepoint":"1f9db 1f3ff","name":"vampire: dark skin tone"},{"codepoint":"1f9db 200d 2642 fe0f","name":"man vampire"},{"codepoint":"1f9db 1f3fb 200d 2642 fe0f","name":"man vampire: light skin tone"},{"codepoint":"1f9db 1f3fc 200d 2642 fe0f","name":"man vampire: medium-light skin tone"},{"codepoint":"1f9db 1f3fd 200d 2642 fe0f","name":"man vampire: medium skin tone"},{"codepoint":"1f9db 1f3fe 200d 2642 fe0f","name":"man vampire: medium-dark skin tone"},{"codepoint":"1f9db 1f3ff 200d 2642 fe0f","name":"man vampire: dark skin tone"},{"codepoint":"1f9db 200d 2640 fe0f","name":"woman vampire"},{"codepoint":"1f9db 1f3fb 200d 2640 fe0f","name":"woman vampire: light skin tone"},{"codepoint":"1f9db 1f3fc 200d 2640 fe0f","name":"woman vampire: medium-light skin tone"},{"codepoint":"1f9db 1f3fd 200d 2640 fe0f","name":"woman vampire: medium skin tone"},{"codepoint":"1f9db 1f3fe 200d 2640 fe0f","name":"woman vampire: medium-dark skin tone"},{"codepoint":"1f9db 1f3ff 200d 2640 fe0f","name":"woman vampire: dark skin tone"},{"codepoint":"1f9dc","name":"merperson"},{"codepoint":"1f9dc 1f3fb","name":"merperson: light skin tone"},{"codepoint":"1f9dc 1f3fc","name":"merperson: medium-light skin tone"},{"codepoint":"1f9dc 1f3fd","name":"merperson: medium skin tone"},{"codepoint":"1f9dc 1f3fe","name":"merperson: medium-dark skin tone"},{"codepoint":"1f9dc 1f3ff","name":"merperson: dark skin tone"},{"codepoint":"1f9dc 200d 2642 fe0f","name":"merman"},{"codepoint":"1f9dc 1f3fb 200d 2642 fe0f","name":"merman: light skin tone"},{"codepoint":"1f9dc 1f3fc 200d 2642 fe0f","name":"merman: medium-light skin tone"},{"codepoint":"1f9dc 1f3fd 200d 2642 fe0f","name":"merman: medium skin tone"},{"codepoint":"1f9dc 1f3fe 200d 2642 fe0f","name":"merman: medium-dark skin tone"},{"codepoint":"1f9dc 1f3ff 200d 2642 fe0f","name":"merman: dark skin tone"},{"codepoint":"1f9dc 200d 2640 fe0f","name":"mermaid"},{"codepoint":"1f9dc 1f3fb 200d 2640 fe0f","name":"mermaid: light skin tone"},{"codepoint":"1f9dc 1f3fc 200d 2640 fe0f","name":"mermaid: medium-light skin tone"},{"codepoint":"1f9dc 1f3fd 200d 2640 fe0f","name":"mermaid: medium skin tone"},{"codepoint":"1f9dc 1f3fe 200d 2640 fe0f","name":"mermaid: medium-dark skin tone"},{"codepoint":"1f9dc 1f3ff 200d 2640 fe0f","name":"mermaid: dark skin tone"},{"codepoint":"1f9dd","name":"elf"},{"codepoint":"1f9dd 1f3fb","name":"elf: light skin tone"},{"codepoint":"1f9dd 1f3fc","name":"elf: medium-light skin tone"},{"codepoint":"1f9dd 1f3fd","name":"elf: medium skin tone"},{"codepoint":"1f9dd 1f3fe","name":"elf: medium-dark skin tone"},{"codepoint":"1f9dd 1f3ff","name":"elf: dark skin tone"},{"codepoint":"1f9dd 200d 2642 fe0f","name":"man elf"},{"codepoint":"1f9dd 1f3fb 200d 2642 fe0f","name":"man elf: light skin tone"},{"codepoint":"1f9dd 1f3fc 200d 2642 fe0f","name":"man elf: medium-light skin tone"},{"codepoint":"1f9dd 1f3fd 200d 2642 fe0f","name":"man elf: medium skin tone"},{"codepoint":"1f9dd 1f3fe 200d 2642 fe0f","name":"man elf: medium-dark skin tone"},{"codepoint":"1f9dd 1f3ff 200d 2642 fe0f","name":"man elf: dark skin tone"},{"codepoint":"1f9dd 200d 2640 fe0f","name":"woman elf"},{"codepoint":"1f9dd 1f3fb 200d 2640 fe0f","name":"woman elf: light skin tone"},{"codepoint":"1f9dd 1f3fc 200d 2640 fe0f","name":"woman elf: medium-light skin tone"},{"codepoint":"1f9dd 1f3fd 200d 2640 fe0f","name":"woman elf: medium skin tone"},{"codepoint":"1f9dd 1f3fe 200d 2640 fe0f","name":"woman elf: medium-dark skin tone"},{"codepoint":"1f9dd 1f3ff 200d 2640 fe0f","name":"woman elf: dark skin tone"},{"codepoint":"1f9de","name":"genie"},{"codepoint":"1f9de 200d 2642 fe0f","name":"man genie"},{"codepoint":"1f9de 200d 2640 fe0f","name":"woman genie"},{"codepoint":"1f9df","name":"zombie"},{"codepoint":"1f9df 200d 2642 fe0f","name":"man zombie"},{"codepoint":"1f9df 200d 2640 fe0f","name":"woman zombie"},{"codepoint":"1f9cc","name":"troll"},{"codepoint":"1f486","name":"person getting massage"},{"codepoint":"1f486 1f3fb","name":"person getting massage: light skin tone"},{"codepoint":"1f486 1f3fc","name":"person getting massage: medium-light skin tone"},{"codepoint":"1f486 1f3fd","name":"person getting massage: medium skin tone"},{"codepoint":"1f486 1f3fe","name":"person getting massage: medium-dark skin tone"},{"codepoint":"1f486 1f3ff","name":"person getting massage: dark skin tone"},{"codepoint":"1f486 200d 2642 fe0f","name":"man getting massage"},{"codepoint":"1f486 1f3fb 200d 2642 fe0f","name":"man getting massage: light skin tone"},{"codepoint":"1f486 1f3fc 200d 2642 fe0f","name":"man getting massage: medium-light skin tone"},{"codepoint":"1f486 1f3fd 200d 2642 fe0f","name":"man getting massage: medium skin tone"},{"codepoint":"1f486 1f3fe 200d 2642 fe0f","name":"man getting massage: medium-dark skin tone"},{"codepoint":"1f486 1f3ff 200d 2642 fe0f","name":"man getting massage: dark skin tone"},{"codepoint":"1f486 200d 2640 fe0f","name":"woman getting massage"},{"codepoint":"1f486 1f3fb 200d 2640 fe0f","name":"woman getting massage: light skin tone"},{"codepoint":"1f486 1f3fc 200d 2640 fe0f","name":"woman getting massage: medium-light skin tone"},{"codepoint":"1f486 1f3fd 200d 2640 fe0f","name":"woman getting massage: medium skin tone"},{"codepoint":"1f486 1f3fe 200d 2640 fe0f","name":"woman getting massage: medium-dark skin tone"},{"codepoint":"1f486 1f3ff 200d 2640 fe0f","name":"woman getting massage: dark skin tone"},{"codepoint":"1f487","name":"person getting haircut"},{"codepoint":"1f487 1f3fb","name":"person getting haircut: light skin tone"},{"codepoint":"1f487 1f3fc","name":"person getting haircut: medium-light skin tone"},{"codepoint":"1f487 1f3fd","name":"person getting haircut: medium skin tone"},{"codepoint":"1f487 1f3fe","name":"person getting haircut: medium-dark skin tone"},{"codepoint":"1f487 1f3ff","name":"person getting haircut: dark skin tone"},{"codepoint":"1f487 200d 2642 fe0f","name":"man getting haircut"},{"codepoint":"1f487 1f3fb 200d 2642 fe0f","name":"man getting haircut: light skin tone"},{"codepoint":"1f487 1f3fc 200d 2642 fe0f","name":"man getting haircut: medium-light skin tone"},{"codepoint":"1f487 1f3fd 200d 2642 fe0f","name":"man getting haircut: medium skin tone"},{"codepoint":"1f487 1f3fe 200d 2642 fe0f","name":"man getting haircut: medium-dark skin tone"},{"codepoint":"1f487 1f3ff 200d 2642 fe0f","name":"man getting haircut: dark skin tone"},{"codepoint":"1f487 200d 2640 fe0f","name":"woman getting haircut"},{"codepoint":"1f487 1f3fb 200d 2640 fe0f","name":"woman getting haircut: light skin tone"},{"codepoint":"1f487 1f3fc 200d 2640 fe0f","name":"woman getting haircut: medium-light skin tone"},{"codepoint":"1f487 1f3fd 200d 2640 fe0f","name":"woman getting haircut: medium skin tone"},{"codepoint":"1f487 1f3fe 200d 2640 fe0f","name":"woman getting haircut: medium-dark skin tone"},{"codepoint":"1f487 1f3ff 200d 2640 fe0f","name":"woman getting haircut: dark skin tone"},{"codepoint":"1f6b6","name":"person walking"},{"codepoint":"1f6b6 1f3fb","name":"person walking: light skin tone"},{"codepoint":"1f6b6 1f3fc","name":"person walking: medium-light skin tone"},{"codepoint":"1f6b6 1f3fd","name":"person walking: medium skin tone"},{"codepoint":"1f6b6 1f3fe","name":"person walking: medium-dark skin tone"},{"codepoint":"1f6b6 1f3ff","name":"person walking: dark skin tone"},{"codepoint":"1f6b6 200d 2642 fe0f","name":"man walking"},{"codepoint":"1f6b6 1f3fb 200d 2642 fe0f","name":"man walking: light skin tone"},{"codepoint":"1f6b6 1f3fc 200d 2642 fe0f","name":"man walking: medium-light skin tone"},{"codepoint":"1f6b6 1f3fd 200d 2642 fe0f","name":"man walking: medium skin tone"},{"codepoint":"1f6b6 1f3fe 200d 2642 fe0f","name":"man walking: medium-dark skin tone"},{"codepoint":"1f6b6 1f3ff 200d 2642 fe0f","name":"man walking: dark skin tone"},{"codepoint":"1f6b6 200d 2640 fe0f","name":"woman walking"},{"codepoint":"1f6b6 1f3fb 200d 2640 fe0f","name":"woman walking: light skin tone"},{"codepoint":"1f6b6 1f3fc 200d 2640 fe0f","name":"woman walking: medium-light skin tone"},{"codepoint":"1f6b6 1f3fd 200d 2640 fe0f","name":"woman walking: medium skin tone"},{"codepoint":"1f6b6 1f3fe 200d 2640 fe0f","name":"woman walking: medium-dark skin tone"},{"codepoint":"1f6b6 1f3ff 200d 2640 fe0f","name":"woman walking: dark skin tone"},{"codepoint":"1f9cd","name":"person standing"},{"codepoint":"1f9cd 1f3fb","name":"person standing: light skin tone"},{"codepoint":"1f9cd 1f3fc","name":"person standing: medium-light skin tone"},{"codepoint":"1f9cd 1f3fd","name":"person standing: medium skin tone"},{"codepoint":"1f9cd 1f3fe","name":"person standing: medium-dark skin tone"},{"codepoint":"1f9cd 1f3ff","name":"person standing: dark skin tone"},{"codepoint":"1f9cd 200d 2642 fe0f","name":"man standing"},{"codepoint":"1f9cd 1f3fb 200d 2642 fe0f","name":"man standing: light skin tone"},{"codepoint":"1f9cd 1f3fc 200d 2642 fe0f","name":"man standing: medium-light skin tone"},{"codepoint":"1f9cd 1f3fd 200d 2642 fe0f","name":"man standing: medium skin tone"},{"codepoint":"1f9cd 1f3fe 200d 2642 fe0f","name":"man standing: medium-dark skin tone"},{"codepoint":"1f9cd 1f3ff 200d 2642 fe0f","name":"man standing: dark skin tone"},{"codepoint":"1f9cd 200d 2640 fe0f","name":"woman standing"},{"codepoint":"1f9cd 1f3fb 200d 2640 fe0f","name":"woman standing: light skin tone"},{"codepoint":"1f9cd 1f3fc 200d 2640 fe0f","name":"woman standing: medium-light skin tone"},{"codepoint":"1f9cd 1f3fd 200d 2640 fe0f","name":"woman standing: medium skin tone"},{"codepoint":"1f9cd 1f3fe 200d 2640 fe0f","name":"woman standing: medium-dark skin tone"},{"codepoint":"1f9cd 1f3ff 200d 2640 fe0f","name":"woman standing: dark skin tone"},{"codepoint":"1f9ce","name":"person kneeling"},{"codepoint":"1f9ce 1f3fb","name":"person kneeling: light skin tone"},{"codepoint":"1f9ce 1f3fc","name":"person kneeling: medium-light skin tone"},{"codepoint":"1f9ce 1f3fd","name":"person kneeling: medium skin tone"},{"codepoint":"1f9ce 1f3fe","name":"person kneeling: medium-dark skin tone"},{"codepoint":"1f9ce 1f3ff","name":"person kneeling: dark skin tone"},{"codepoint":"1f9ce 200d 2642 fe0f","name":"man kneeling"},{"codepoint":"1f9ce 1f3fb 200d 2642 fe0f","name":"man kneeling: light skin tone"},{"codepoint":"1f9ce 1f3fc 200d 2642 fe0f","name":"man kneeling: medium-light skin tone"},{"codepoint":"1f9ce 1f3fd 200d 2642 fe0f","name":"man kneeling: medium skin tone"},{"codepoint":"1f9ce 1f3fe 200d 2642 fe0f","name":"man kneeling: medium-dark skin tone"},{"codepoint":"1f9ce 1f3ff 200d 2642 fe0f","name":"man kneeling: dark skin tone"},{"codepoint":"1f9ce 200d 2640 fe0f","name":"woman kneeling"},{"codepoint":"1f9ce 1f3fb 200d 2640 fe0f","name":"woman kneeling: light skin tone"},{"codepoint":"1f9ce 1f3fc 200d 2640 fe0f","name":"woman kneeling: medium-light skin tone"},{"codepoint":"1f9ce 1f3fd 200d 2640 fe0f","name":"woman kneeling: medium skin tone"},{"codepoint":"1f9ce 1f3fe 200d 2640 fe0f","name":"woman kneeling: medium-dark skin tone"},{"codepoint":"1f9ce 1f3ff 200d 2640 fe0f","name":"woman kneeling: dark skin tone"},{"codepoint":"1f9d1 200d 1f9af","name":"person with white cane"},{"codepoint":"1f9d1 1f3fb 200d 1f9af","name":"person with white cane: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9af","name":"person with white cane: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9af","name":"person with white cane: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9af","name":"person with white cane: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9af","name":"person with white cane: dark skin tone"},{"codepoint":"1f468 200d 1f9af","name":"man with white cane"},{"codepoint":"1f468 1f3fb 200d 1f9af","name":"man with white cane: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9af","name":"man with white cane: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9af","name":"man with white cane: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9af","name":"man with white cane: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9af","name":"man with white cane: dark skin tone"},{"codepoint":"1f469 200d 1f9af","name":"woman with white cane"},{"codepoint":"1f469 1f3fb 200d 1f9af","name":"woman with white cane: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9af","name":"woman with white cane: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9af","name":"woman with white cane: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9af","name":"woman with white cane: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9af","name":"woman with white cane: dark skin tone"},{"codepoint":"1f9d1 200d 1f9bc","name":"person in motorized wheelchair"},{"codepoint":"1f9d1 1f3fb 200d 1f9bc","name":"person in motorized wheelchair: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9bc","name":"person in motorized wheelchair: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9bc","name":"person in motorized wheelchair: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9bc","name":"person in motorized wheelchair: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9bc","name":"person in motorized wheelchair: dark skin tone"},{"codepoint":"1f468 200d 1f9bc","name":"man in motorized wheelchair"},{"codepoint":"1f468 1f3fb 200d 1f9bc","name":"man in motorized wheelchair: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9bc","name":"man in motorized wheelchair: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9bc","name":"man in motorized wheelchair: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9bc","name":"man in motorized wheelchair: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9bc","name":"man in motorized wheelchair: dark skin tone"},{"codepoint":"1f469 200d 1f9bc","name":"woman in motorized wheelchair"},{"codepoint":"1f469 1f3fb 200d 1f9bc","name":"woman in motorized wheelchair: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9bc","name":"woman in motorized wheelchair: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9bc","name":"woman in motorized wheelchair: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9bc","name":"woman in motorized wheelchair: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9bc","name":"woman in motorized wheelchair: dark skin tone"},{"codepoint":"1f9d1 200d 1f9bd","name":"person in manual wheelchair"},{"codepoint":"1f9d1 1f3fb 200d 1f9bd","name":"person in manual wheelchair: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f9bd","name":"person in manual wheelchair: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f9bd","name":"person in manual wheelchair: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f9bd","name":"person in manual wheelchair: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f9bd","name":"person in manual wheelchair: dark skin tone"},{"codepoint":"1f468 200d 1f9bd","name":"man in manual wheelchair"},{"codepoint":"1f468 1f3fb 200d 1f9bd","name":"man in manual wheelchair: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f9bd","name":"man in manual wheelchair: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f9bd","name":"man in manual wheelchair: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f9bd","name":"man in manual wheelchair: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f9bd","name":"man in manual wheelchair: dark skin tone"},{"codepoint":"1f469 200d 1f9bd","name":"woman in manual wheelchair"},{"codepoint":"1f469 1f3fb 200d 1f9bd","name":"woman in manual wheelchair: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f9bd","name":"woman in manual wheelchair: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f9bd","name":"woman in manual wheelchair: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f9bd","name":"woman in manual wheelchair: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f9bd","name":"woman in manual wheelchair: dark skin tone"},{"codepoint":"1f3c3","name":"person running"},{"codepoint":"1f3c3 1f3fb","name":"person running: light skin tone"},{"codepoint":"1f3c3 1f3fc","name":"person running: medium-light skin tone"},{"codepoint":"1f3c3 1f3fd","name":"person running: medium skin tone"},{"codepoint":"1f3c3 1f3fe","name":"person running: medium-dark skin tone"},{"codepoint":"1f3c3 1f3ff","name":"person running: dark skin tone"},{"codepoint":"1f3c3 200d 2642 fe0f","name":"man running"},{"codepoint":"1f3c3 1f3fb 200d 2642 fe0f","name":"man running: light skin tone"},{"codepoint":"1f3c3 1f3fc 200d 2642 fe0f","name":"man running: medium-light skin tone"},{"codepoint":"1f3c3 1f3fd 200d 2642 fe0f","name":"man running: medium skin tone"},{"codepoint":"1f3c3 1f3fe 200d 2642 fe0f","name":"man running: medium-dark skin tone"},{"codepoint":"1f3c3 1f3ff 200d 2642 fe0f","name":"man running: dark skin tone"},{"codepoint":"1f3c3 200d 2640 fe0f","name":"woman running"},{"codepoint":"1f3c3 1f3fb 200d 2640 fe0f","name":"woman running: light skin tone"},{"codepoint":"1f3c3 1f3fc 200d 2640 fe0f","name":"woman running: medium-light skin tone"},{"codepoint":"1f3c3 1f3fd 200d 2640 fe0f","name":"woman running: medium skin tone"},{"codepoint":"1f3c3 1f3fe 200d 2640 fe0f","name":"woman running: medium-dark skin tone"},{"codepoint":"1f3c3 1f3ff 200d 2640 fe0f","name":"woman running: dark skin tone"},{"codepoint":"1f483","name":"woman dancing"},{"codepoint":"1f483 1f3fb","name":"woman dancing: light skin tone"},{"codepoint":"1f483 1f3fc","name":"woman dancing: medium-light skin tone"},{"codepoint":"1f483 1f3fd","name":"woman dancing: medium skin tone"},{"codepoint":"1f483 1f3fe","name":"woman dancing: medium-dark skin tone"},{"codepoint":"1f483 1f3ff","name":"woman dancing: dark skin tone"},{"codepoint":"1f57a","name":"man dancing"},{"codepoint":"1f57a 1f3fb","name":"man dancing: light skin tone"},{"codepoint":"1f57a 1f3fc","name":"man dancing: medium-light skin tone"},{"codepoint":"1f57a 1f3fd","name":"man dancing: medium skin tone"},{"codepoint":"1f57a 1f3fe","name":"man dancing: medium-dark skin tone"},{"codepoint":"1f57a 1f3ff","name":"man dancing: dark skin tone"},{"codepoint":"1f574 fe0f","name":"person in suit levitating"},{"codepoint":"1f574 1f3fb","name":"person in suit levitating: light skin tone"},{"codepoint":"1f574 1f3fc","name":"person in suit levitating: medium-light skin tone"},{"codepoint":"1f574 1f3fd","name":"person in suit levitating: medium skin tone"},{"codepoint":"1f574 1f3fe","name":"person in suit levitating: medium-dark skin tone"},{"codepoint":"1f574 1f3ff","name":"person in suit levitating: dark skin tone"},{"codepoint":"1f46f","name":"people with bunny ears"},{"codepoint":"1f46f 200d 2642 fe0f","name":"men with bunny ears"},{"codepoint":"1f46f 200d 2640 fe0f","name":"women with bunny ears"},{"codepoint":"1f9d6","name":"person in steamy room"},{"codepoint":"1f9d6 1f3fb","name":"person in steamy room: light skin tone"},{"codepoint":"1f9d6 1f3fc","name":"person in steamy room: medium-light skin tone"},{"codepoint":"1f9d6 1f3fd","name":"person in steamy room: medium skin tone"},{"codepoint":"1f9d6 1f3fe","name":"person in steamy room: medium-dark skin tone"},{"codepoint":"1f9d6 1f3ff","name":"person in steamy room: dark skin tone"},{"codepoint":"1f9d6 200d 2642 fe0f","name":"man in steamy room"},{"codepoint":"1f9d6 1f3fb 200d 2642 fe0f","name":"man in steamy room: light skin tone"},{"codepoint":"1f9d6 1f3fc 200d 2642 fe0f","name":"man in steamy room: medium-light skin tone"},{"codepoint":"1f9d6 1f3fd 200d 2642 fe0f","name":"man in steamy room: medium skin tone"},{"codepoint":"1f9d6 1f3fe 200d 2642 fe0f","name":"man in steamy room: medium-dark skin tone"},{"codepoint":"1f9d6 1f3ff 200d 2642 fe0f","name":"man in steamy room: dark skin tone"},{"codepoint":"1f9d6 200d 2640 fe0f","name":"woman in steamy room"},{"codepoint":"1f9d6 1f3fb 200d 2640 fe0f","name":"woman in steamy room: light skin tone"},{"codepoint":"1f9d6 1f3fc 200d 2640 fe0f","name":"woman in steamy room: medium-light skin tone"},{"codepoint":"1f9d6 1f3fd 200d 2640 fe0f","name":"woman in steamy room: medium skin tone"},{"codepoint":"1f9d6 1f3fe 200d 2640 fe0f","name":"woman in steamy room: medium-dark skin tone"},{"codepoint":"1f9d6 1f3ff 200d 2640 fe0f","name":"woman in steamy room: dark skin tone"},{"codepoint":"1f9d7","name":"person climbing"},{"codepoint":"1f9d7 1f3fb","name":"person climbing: light skin tone"},{"codepoint":"1f9d7 1f3fc","name":"person climbing: medium-light skin tone"},{"codepoint":"1f9d7 1f3fd","name":"person climbing: medium skin tone"},{"codepoint":"1f9d7 1f3fe","name":"person climbing: medium-dark skin tone"},{"codepoint":"1f9d7 1f3ff","name":"person climbing: dark skin tone"},{"codepoint":"1f9d7 200d 2642 fe0f","name":"man climbing"},{"codepoint":"1f9d7 1f3fb 200d 2642 fe0f","name":"man climbing: light skin tone"},{"codepoint":"1f9d7 1f3fc 200d 2642 fe0f","name":"man climbing: medium-light skin tone"},{"codepoint":"1f9d7 1f3fd 200d 2642 fe0f","name":"man climbing: medium skin tone"},{"codepoint":"1f9d7 1f3fe 200d 2642 fe0f","name":"man climbing: medium-dark skin tone"},{"codepoint":"1f9d7 1f3ff 200d 2642 fe0f","name":"man climbing: dark skin tone"},{"codepoint":"1f9d7 200d 2640 fe0f","name":"woman climbing"},{"codepoint":"1f9d7 1f3fb 200d 2640 fe0f","name":"woman climbing: light skin tone"},{"codepoint":"1f9d7 1f3fc 200d 2640 fe0f","name":"woman climbing: medium-light skin tone"},{"codepoint":"1f9d7 1f3fd 200d 2640 fe0f","name":"woman climbing: medium skin tone"},{"codepoint":"1f9d7 1f3fe 200d 2640 fe0f","name":"woman climbing: medium-dark skin tone"},{"codepoint":"1f9d7 1f3ff 200d 2640 fe0f","name":"woman climbing: dark skin tone"},{"codepoint":"1f93a","name":"person fencing"},{"codepoint":"1f3c7","name":"horse racing"},{"codepoint":"1f3c7 1f3fb","name":"horse racing: light skin tone"},{"codepoint":"1f3c7 1f3fc","name":"horse racing: medium-light skin tone"},{"codepoint":"1f3c7 1f3fd","name":"horse racing: medium skin tone"},{"codepoint":"1f3c7 1f3fe","name":"horse racing: medium-dark skin tone"},{"codepoint":"1f3c7 1f3ff","name":"horse racing: dark skin tone"},{"codepoint":"26f7 fe0f","name":"skier"},{"codepoint":"1f3c2","name":"snowboarder"},{"codepoint":"1f3c2 1f3fb","name":"snowboarder: light skin tone"},{"codepoint":"1f3c2 1f3fc","name":"snowboarder: medium-light skin tone"},{"codepoint":"1f3c2 1f3fd","name":"snowboarder: medium skin tone"},{"codepoint":"1f3c2 1f3fe","name":"snowboarder: medium-dark skin tone"},{"codepoint":"1f3c2 1f3ff","name":"snowboarder: dark skin tone"},{"codepoint":"1f3cc fe0f","name":"person golfing"},{"codepoint":"1f3cc 1f3fb","name":"person golfing: light skin tone"},{"codepoint":"1f3cc 1f3fc","name":"person golfing: medium-light skin tone"},{"codepoint":"1f3cc 1f3fd","name":"person golfing: medium skin tone"},{"codepoint":"1f3cc 1f3fe","name":"person golfing: medium-dark skin tone"},{"codepoint":"1f3cc 1f3ff","name":"person golfing: dark skin tone"},{"codepoint":"1f3cc fe0f 200d 2642 fe0f","name":"man golfing"},{"codepoint":"1f3cc 1f3fb 200d 2642 fe0f","name":"man golfing: light skin tone"},{"codepoint":"1f3cc 1f3fc 200d 2642 fe0f","name":"man golfing: medium-light skin tone"},{"codepoint":"1f3cc 1f3fd 200d 2642 fe0f","name":"man golfing: medium skin tone"},{"codepoint":"1f3cc 1f3fe 200d 2642 fe0f","name":"man golfing: medium-dark skin tone"},{"codepoint":"1f3cc 1f3ff 200d 2642 fe0f","name":"man golfing: dark skin tone"},{"codepoint":"1f3cc fe0f 200d 2640 fe0f","name":"woman golfing"},{"codepoint":"1f3cc 1f3fb 200d 2640 fe0f","name":"woman golfing: light skin tone"},{"codepoint":"1f3cc 1f3fc 200d 2640 fe0f","name":"woman golfing: medium-light skin tone"},{"codepoint":"1f3cc 1f3fd 200d 2640 fe0f","name":"woman golfing: medium skin tone"},{"codepoint":"1f3cc 1f3fe 200d 2640 fe0f","name":"woman golfing: medium-dark skin tone"},{"codepoint":"1f3cc 1f3ff 200d 2640 fe0f","name":"woman golfing: dark skin tone"},{"codepoint":"1f3c4","name":"person surfing"},{"codepoint":"1f3c4 1f3fb","name":"person surfing: light skin tone"},{"codepoint":"1f3c4 1f3fc","name":"person surfing: medium-light skin tone"},{"codepoint":"1f3c4 1f3fd","name":"person surfing: medium skin tone"},{"codepoint":"1f3c4 1f3fe","name":"person surfing: medium-dark skin tone"},{"codepoint":"1f3c4 1f3ff","name":"person surfing: dark skin tone"},{"codepoint":"1f3c4 200d 2642 fe0f","name":"man surfing"},{"codepoint":"1f3c4 1f3fb 200d 2642 fe0f","name":"man surfing: light skin tone"},{"codepoint":"1f3c4 1f3fc 200d 2642 fe0f","name":"man surfing: medium-light skin tone"},{"codepoint":"1f3c4 1f3fd 200d 2642 fe0f","name":"man surfing: medium skin tone"},{"codepoint":"1f3c4 1f3fe 200d 2642 fe0f","name":"man surfing: medium-dark skin tone"},{"codepoint":"1f3c4 1f3ff 200d 2642 fe0f","name":"man surfing: dark skin tone"},{"codepoint":"1f3c4 200d 2640 fe0f","name":"woman surfing"},{"codepoint":"1f3c4 1f3fb 200d 2640 fe0f","name":"woman surfing: light skin tone"},{"codepoint":"1f3c4 1f3fc 200d 2640 fe0f","name":"woman surfing: medium-light skin tone"},{"codepoint":"1f3c4 1f3fd 200d 2640 fe0f","name":"woman surfing: medium skin tone"},{"codepoint":"1f3c4 1f3fe 200d 2640 fe0f","name":"woman surfing: medium-dark skin tone"},{"codepoint":"1f3c4 1f3ff 200d 2640 fe0f","name":"woman surfing: dark skin tone"},{"codepoint":"1f6a3","name":"person rowing boat"},{"codepoint":"1f6a3 1f3fb","name":"person rowing boat: light skin tone"},{"codepoint":"1f6a3 1f3fc","name":"person rowing boat: medium-light skin tone"},{"codepoint":"1f6a3 1f3fd","name":"person rowing boat: medium skin tone"},{"codepoint":"1f6a3 1f3fe","name":"person rowing boat: medium-dark skin tone"},{"codepoint":"1f6a3 1f3ff","name":"person rowing boat: dark skin tone"},{"codepoint":"1f6a3 200d 2642 fe0f","name":"man rowing boat"},{"codepoint":"1f6a3 1f3fb 200d 2642 fe0f","name":"man rowing boat: light skin tone"},{"codepoint":"1f6a3 1f3fc 200d 2642 fe0f","name":"man rowing boat: medium-light skin tone"},{"codepoint":"1f6a3 1f3fd 200d 2642 fe0f","name":"man rowing boat: medium skin tone"},{"codepoint":"1f6a3 1f3fe 200d 2642 fe0f","name":"man rowing boat: medium-dark skin tone"},{"codepoint":"1f6a3 1f3ff 200d 2642 fe0f","name":"man rowing boat: dark skin tone"},{"codepoint":"1f6a3 200d 2640 fe0f","name":"woman rowing boat"},{"codepoint":"1f6a3 1f3fb 200d 2640 fe0f","name":"woman rowing boat: light skin tone"},{"codepoint":"1f6a3 1f3fc 200d 2640 fe0f","name":"woman rowing boat: medium-light skin tone"},{"codepoint":"1f6a3 1f3fd 200d 2640 fe0f","name":"woman rowing boat: medium skin tone"},{"codepoint":"1f6a3 1f3fe 200d 2640 fe0f","name":"woman rowing boat: medium-dark skin tone"},{"codepoint":"1f6a3 1f3ff 200d 2640 fe0f","name":"woman rowing boat: dark skin tone"},{"codepoint":"1f3ca","name":"person swimming"},{"codepoint":"1f3ca 1f3fb","name":"person swimming: light skin tone"},{"codepoint":"1f3ca 1f3fc","name":"person swimming: medium-light skin tone"},{"codepoint":"1f3ca 1f3fd","name":"person swimming: medium skin tone"},{"codepoint":"1f3ca 1f3fe","name":"person swimming: medium-dark skin tone"},{"codepoint":"1f3ca 1f3ff","name":"person swimming: dark skin tone"},{"codepoint":"1f3ca 200d 2642 fe0f","name":"man swimming"},{"codepoint":"1f3ca 1f3fb 200d 2642 fe0f","name":"man swimming: light skin tone"},{"codepoint":"1f3ca 1f3fc 200d 2642 fe0f","name":"man swimming: medium-light skin tone"},{"codepoint":"1f3ca 1f3fd 200d 2642 fe0f","name":"man swimming: medium skin tone"},{"codepoint":"1f3ca 1f3fe 200d 2642 fe0f","name":"man swimming: medium-dark skin tone"},{"codepoint":"1f3ca 1f3ff 200d 2642 fe0f","name":"man swimming: dark skin tone"},{"codepoint":"1f3ca 200d 2640 fe0f","name":"woman swimming"},{"codepoint":"1f3ca 1f3fb 200d 2640 fe0f","name":"woman swimming: light skin tone"},{"codepoint":"1f3ca 1f3fc 200d 2640 fe0f","name":"woman swimming: medium-light skin tone"},{"codepoint":"1f3ca 1f3fd 200d 2640 fe0f","name":"woman swimming: medium skin tone"},{"codepoint":"1f3ca 1f3fe 200d 2640 fe0f","name":"woman swimming: medium-dark skin tone"},{"codepoint":"1f3ca 1f3ff 200d 2640 fe0f","name":"woman swimming: dark skin tone"},{"codepoint":"26f9 fe0f","name":"person bouncing ball"},{"codepoint":"26f9 1f3fb","name":"person bouncing ball: light skin tone"},{"codepoint":"26f9 1f3fc","name":"person bouncing ball: medium-light skin tone"},{"codepoint":"26f9 1f3fd","name":"person bouncing ball: medium skin tone"},{"codepoint":"26f9 1f3fe","name":"person bouncing ball: medium-dark skin tone"},{"codepoint":"26f9 1f3ff","name":"person bouncing ball: dark skin tone"},{"codepoint":"26f9 fe0f 200d 2642 fe0f","name":"man bouncing ball"},{"codepoint":"26f9 1f3fb 200d 2642 fe0f","name":"man bouncing ball: light skin tone"},{"codepoint":"26f9 1f3fc 200d 2642 fe0f","name":"man bouncing ball: medium-light skin tone"},{"codepoint":"26f9 1f3fd 200d 2642 fe0f","name":"man bouncing ball: medium skin tone"},{"codepoint":"26f9 1f3fe 200d 2642 fe0f","name":"man bouncing ball: medium-dark skin tone"},{"codepoint":"26f9 1f3ff 200d 2642 fe0f","name":"man bouncing ball: dark skin tone"},{"codepoint":"26f9 fe0f 200d 2640 fe0f","name":"woman bouncing ball"},{"codepoint":"26f9 1f3fb 200d 2640 fe0f","name":"woman bouncing ball: light skin tone"},{"codepoint":"26f9 1f3fc 200d 2640 fe0f","name":"woman bouncing ball: medium-light skin tone"},{"codepoint":"26f9 1f3fd 200d 2640 fe0f","name":"woman bouncing ball: medium skin tone"},{"codepoint":"26f9 1f3fe 200d 2640 fe0f","name":"woman bouncing ball: medium-dark skin tone"},{"codepoint":"26f9 1f3ff 200d 2640 fe0f","name":"woman bouncing ball: dark skin tone"},{"codepoint":"1f3cb fe0f","name":"person lifting weights"},{"codepoint":"1f3cb 1f3fb","name":"person lifting weights: light skin tone"},{"codepoint":"1f3cb 1f3fc","name":"person lifting weights: medium-light skin tone"},{"codepoint":"1f3cb 1f3fd","name":"person lifting weights: medium skin tone"},{"codepoint":"1f3cb 1f3fe","name":"person lifting weights: medium-dark skin tone"},{"codepoint":"1f3cb 1f3ff","name":"person lifting weights: dark skin tone"},{"codepoint":"1f3cb fe0f 200d 2642 fe0f","name":"man lifting weights"},{"codepoint":"1f3cb 1f3fb 200d 2642 fe0f","name":"man lifting weights: light skin tone"},{"codepoint":"1f3cb 1f3fc 200d 2642 fe0f","name":"man lifting weights: medium-light skin tone"},{"codepoint":"1f3cb 1f3fd 200d 2642 fe0f","name":"man lifting weights: medium skin tone"},{"codepoint":"1f3cb 1f3fe 200d 2642 fe0f","name":"man lifting weights: medium-dark skin tone"},{"codepoint":"1f3cb 1f3ff 200d 2642 fe0f","name":"man lifting weights: dark skin tone"},{"codepoint":"1f3cb fe0f 200d 2640 fe0f","name":"woman lifting weights"},{"codepoint":"1f3cb 1f3fb 200d 2640 fe0f","name":"woman lifting weights: light skin tone"},{"codepoint":"1f3cb 1f3fc 200d 2640 fe0f","name":"woman lifting weights: medium-light skin tone"},{"codepoint":"1f3cb 1f3fd 200d 2640 fe0f","name":"woman lifting weights: medium skin tone"},{"codepoint":"1f3cb 1f3fe 200d 2640 fe0f","name":"woman lifting weights: medium-dark skin tone"},{"codepoint":"1f3cb 1f3ff 200d 2640 fe0f","name":"woman lifting weights: dark skin tone"},{"codepoint":"1f6b4","name":"person biking"},{"codepoint":"1f6b4 1f3fb","name":"person biking: light skin tone"},{"codepoint":"1f6b4 1f3fc","name":"person biking: medium-light skin tone"},{"codepoint":"1f6b4 1f3fd","name":"person biking: medium skin tone"},{"codepoint":"1f6b4 1f3fe","name":"person biking: medium-dark skin tone"},{"codepoint":"1f6b4 1f3ff","name":"person biking: dark skin tone"},{"codepoint":"1f6b4 200d 2642 fe0f","name":"man biking"},{"codepoint":"1f6b4 1f3fb 200d 2642 fe0f","name":"man biking: light skin tone"},{"codepoint":"1f6b4 1f3fc 200d 2642 fe0f","name":"man biking: medium-light skin tone"},{"codepoint":"1f6b4 1f3fd 200d 2642 fe0f","name":"man biking: medium skin tone"},{"codepoint":"1f6b4 1f3fe 200d 2642 fe0f","name":"man biking: medium-dark skin tone"},{"codepoint":"1f6b4 1f3ff 200d 2642 fe0f","name":"man biking: dark skin tone"},{"codepoint":"1f6b4 200d 2640 fe0f","name":"woman biking"},{"codepoint":"1f6b4 1f3fb 200d 2640 fe0f","name":"woman biking: light skin tone"},{"codepoint":"1f6b4 1f3fc 200d 2640 fe0f","name":"woman biking: medium-light skin tone"},{"codepoint":"1f6b4 1f3fd 200d 2640 fe0f","name":"woman biking: medium skin tone"},{"codepoint":"1f6b4 1f3fe 200d 2640 fe0f","name":"woman biking: medium-dark skin tone"},{"codepoint":"1f6b4 1f3ff 200d 2640 fe0f","name":"woman biking: dark skin tone"},{"codepoint":"1f6b5","name":"person mountain biking"},{"codepoint":"1f6b5 1f3fb","name":"person mountain biking: light skin tone"},{"codepoint":"1f6b5 1f3fc","name":"person mountain biking: medium-light skin tone"},{"codepoint":"1f6b5 1f3fd","name":"person mountain biking: medium skin tone"},{"codepoint":"1f6b5 1f3fe","name":"person mountain biking: medium-dark skin tone"},{"codepoint":"1f6b5 1f3ff","name":"person mountain biking: dark skin tone"},{"codepoint":"1f6b5 200d 2642 fe0f","name":"man mountain biking"},{"codepoint":"1f6b5 1f3fb 200d 2642 fe0f","name":"man mountain biking: light skin tone"},{"codepoint":"1f6b5 1f3fc 200d 2642 fe0f","name":"man mountain biking: medium-light skin tone"},{"codepoint":"1f6b5 1f3fd 200d 2642 fe0f","name":"man mountain biking: medium skin tone"},{"codepoint":"1f6b5 1f3fe 200d 2642 fe0f","name":"man mountain biking: medium-dark skin tone"},{"codepoint":"1f6b5 1f3ff 200d 2642 fe0f","name":"man mountain biking: dark skin tone"},{"codepoint":"1f6b5 200d 2640 fe0f","name":"woman mountain biking"},{"codepoint":"1f6b5 1f3fb 200d 2640 fe0f","name":"woman mountain biking: light skin tone"},{"codepoint":"1f6b5 1f3fc 200d 2640 fe0f","name":"woman mountain biking: medium-light skin tone"},{"codepoint":"1f6b5 1f3fd 200d 2640 fe0f","name":"woman mountain biking: medium skin tone"},{"codepoint":"1f6b5 1f3fe 200d 2640 fe0f","name":"woman mountain biking: medium-dark skin tone"},{"codepoint":"1f6b5 1f3ff 200d 2640 fe0f","name":"woman mountain biking: dark skin tone"},{"codepoint":"1f938","name":"person cartwheeling"},{"codepoint":"1f938 1f3fb","name":"person cartwheeling: light skin tone"},{"codepoint":"1f938 1f3fc","name":"person cartwheeling: medium-light skin tone"},{"codepoint":"1f938 1f3fd","name":"person cartwheeling: medium skin tone"},{"codepoint":"1f938 1f3fe","name":"person cartwheeling: medium-dark skin tone"},{"codepoint":"1f938 1f3ff","name":"person cartwheeling: dark skin tone"},{"codepoint":"1f938 200d 2642 fe0f","name":"man cartwheeling"},{"codepoint":"1f938 1f3fb 200d 2642 fe0f","name":"man cartwheeling: light skin tone"},{"codepoint":"1f938 1f3fc 200d 2642 fe0f","name":"man cartwheeling: medium-light skin tone"},{"codepoint":"1f938 1f3fd 200d 2642 fe0f","name":"man cartwheeling: medium skin tone"},{"codepoint":"1f938 1f3fe 200d 2642 fe0f","name":"man cartwheeling: medium-dark skin tone"},{"codepoint":"1f938 1f3ff 200d 2642 fe0f","name":"man cartwheeling: dark skin tone"},{"codepoint":"1f938 200d 2640 fe0f","name":"woman cartwheeling"},{"codepoint":"1f938 1f3fb 200d 2640 fe0f","name":"woman cartwheeling: light skin tone"},{"codepoint":"1f938 1f3fc 200d 2640 fe0f","name":"woman cartwheeling: medium-light skin tone"},{"codepoint":"1f938 1f3fd 200d 2640 fe0f","name":"woman cartwheeling: medium skin tone"},{"codepoint":"1f938 1f3fe 200d 2640 fe0f","name":"woman cartwheeling: medium-dark skin tone"},{"codepoint":"1f938 1f3ff 200d 2640 fe0f","name":"woman cartwheeling: dark skin tone"},{"codepoint":"1f93c","name":"people wrestling"},{"codepoint":"1f93c 200d 2642 fe0f","name":"men wrestling"},{"codepoint":"1f93c 200d 2640 fe0f","name":"women wrestling"},{"codepoint":"1f93d","name":"person playing water polo"},{"codepoint":"1f93d 1f3fb","name":"person playing water polo: light skin tone"},{"codepoint":"1f93d 1f3fc","name":"person playing water polo: medium-light skin tone"},{"codepoint":"1f93d 1f3fd","name":"person playing water polo: medium skin tone"},{"codepoint":"1f93d 1f3fe","name":"person playing water polo: medium-dark skin tone"},{"codepoint":"1f93d 1f3ff","name":"person playing water polo: dark skin tone"},{"codepoint":"1f93d 200d 2642 fe0f","name":"man playing water polo"},{"codepoint":"1f93d 1f3fb 200d 2642 fe0f","name":"man playing water polo: light skin tone"},{"codepoint":"1f93d 1f3fc 200d 2642 fe0f","name":"man playing water polo: medium-light skin tone"},{"codepoint":"1f93d 1f3fd 200d 2642 fe0f","name":"man playing water polo: medium skin tone"},{"codepoint":"1f93d 1f3fe 200d 2642 fe0f","name":"man playing water polo: medium-dark skin tone"},{"codepoint":"1f93d 1f3ff 200d 2642 fe0f","name":"man playing water polo: dark skin tone"},{"codepoint":"1f93d 200d 2640 fe0f","name":"woman playing water polo"},{"codepoint":"1f93d 1f3fb 200d 2640 fe0f","name":"woman playing water polo: light skin tone"},{"codepoint":"1f93d 1f3fc 200d 2640 fe0f","name":"woman playing water polo: medium-light skin tone"},{"codepoint":"1f93d 1f3fd 200d 2640 fe0f","name":"woman playing water polo: medium skin tone"},{"codepoint":"1f93d 1f3fe 200d 2640 fe0f","name":"woman playing water polo: medium-dark skin tone"},{"codepoint":"1f93d 1f3ff 200d 2640 fe0f","name":"woman playing water polo: dark skin tone"},{"codepoint":"1f93e","name":"person playing handball"},{"codepoint":"1f93e 1f3fb","name":"person playing handball: light skin tone"},{"codepoint":"1f93e 1f3fc","name":"person playing handball: medium-light skin tone"},{"codepoint":"1f93e 1f3fd","name":"person playing handball: medium skin tone"},{"codepoint":"1f93e 1f3fe","name":"person playing handball: medium-dark skin tone"},{"codepoint":"1f93e 1f3ff","name":"person playing handball: dark skin tone"},{"codepoint":"1f93e 200d 2642 fe0f","name":"man playing handball"},{"codepoint":"1f93e 1f3fb 200d 2642 fe0f","name":"man playing handball: light skin tone"},{"codepoint":"1f93e 1f3fc 200d 2642 fe0f","name":"man playing handball: medium-light skin tone"},{"codepoint":"1f93e 1f3fd 200d 2642 fe0f","name":"man playing handball: medium skin tone"},{"codepoint":"1f93e 1f3fe 200d 2642 fe0f","name":"man playing handball: medium-dark skin tone"},{"codepoint":"1f93e 1f3ff 200d 2642 fe0f","name":"man playing handball: dark skin tone"},{"codepoint":"1f93e 200d 2640 fe0f","name":"woman playing handball"},{"codepoint":"1f93e 1f3fb 200d 2640 fe0f","name":"woman playing handball: light skin tone"},{"codepoint":"1f93e 1f3fc 200d 2640 fe0f","name":"woman playing handball: medium-light skin tone"},{"codepoint":"1f93e 1f3fd 200d 2640 fe0f","name":"woman playing handball: medium skin tone"},{"codepoint":"1f93e 1f3fe 200d 2640 fe0f","name":"woman playing handball: medium-dark skin tone"},{"codepoint":"1f93e 1f3ff 200d 2640 fe0f","name":"woman playing handball: dark skin tone"},{"codepoint":"1f939","name":"person juggling"},{"codepoint":"1f939 1f3fb","name":"person juggling: light skin tone"},{"codepoint":"1f939 1f3fc","name":"person juggling: medium-light skin tone"},{"codepoint":"1f939 1f3fd","name":"person juggling: medium skin tone"},{"codepoint":"1f939 1f3fe","name":"person juggling: medium-dark skin tone"},{"codepoint":"1f939 1f3ff","name":"person juggling: dark skin tone"},{"codepoint":"1f939 200d 2642 fe0f","name":"man juggling"},{"codepoint":"1f939 1f3fb 200d 2642 fe0f","name":"man juggling: light skin tone"},{"codepoint":"1f939 1f3fc 200d 2642 fe0f","name":"man juggling: medium-light skin tone"},{"codepoint":"1f939 1f3fd 200d 2642 fe0f","name":"man juggling: medium skin tone"},{"codepoint":"1f939 1f3fe 200d 2642 fe0f","name":"man juggling: medium-dark skin tone"},{"codepoint":"1f939 1f3ff 200d 2642 fe0f","name":"man juggling: dark skin tone"},{"codepoint":"1f939 200d 2640 fe0f","name":"woman juggling"},{"codepoint":"1f939 1f3fb 200d 2640 fe0f","name":"woman juggling: light skin tone"},{"codepoint":"1f939 1f3fc 200d 2640 fe0f","name":"woman juggling: medium-light skin tone"},{"codepoint":"1f939 1f3fd 200d 2640 fe0f","name":"woman juggling: medium skin tone"},{"codepoint":"1f939 1f3fe 200d 2640 fe0f","name":"woman juggling: medium-dark skin tone"},{"codepoint":"1f939 1f3ff 200d 2640 fe0f","name":"woman juggling: dark skin tone"},{"codepoint":"1f9d8","name":"person in lotus position"},{"codepoint":"1f9d8 1f3fb","name":"person in lotus position: light skin tone"},{"codepoint":"1f9d8 1f3fc","name":"person in lotus position: medium-light skin tone"},{"codepoint":"1f9d8 1f3fd","name":"person in lotus position: medium skin tone"},{"codepoint":"1f9d8 1f3fe","name":"person in lotus position: medium-dark skin tone"},{"codepoint":"1f9d8 1f3ff","name":"person in lotus position: dark skin tone"},{"codepoint":"1f9d8 200d 2642 fe0f","name":"man in lotus position"},{"codepoint":"1f9d8 1f3fb 200d 2642 fe0f","name":"man in lotus position: light skin tone"},{"codepoint":"1f9d8 1f3fc 200d 2642 fe0f","name":"man in lotus position: medium-light skin tone"},{"codepoint":"1f9d8 1f3fd 200d 2642 fe0f","name":"man in lotus position: medium skin tone"},{"codepoint":"1f9d8 1f3fe 200d 2642 fe0f","name":"man in lotus position: medium-dark skin tone"},{"codepoint":"1f9d8 1f3ff 200d 2642 fe0f","name":"man in lotus position: dark skin tone"},{"codepoint":"1f9d8 200d 2640 fe0f","name":"woman in lotus position"},{"codepoint":"1f9d8 1f3fb 200d 2640 fe0f","name":"woman in lotus position: light skin tone"},{"codepoint":"1f9d8 1f3fc 200d 2640 fe0f","name":"woman in lotus position: medium-light skin tone"},{"codepoint":"1f9d8 1f3fd 200d 2640 fe0f","name":"woman in lotus position: medium skin tone"},{"codepoint":"1f9d8 1f3fe 200d 2640 fe0f","name":"woman in lotus position: medium-dark skin tone"},{"codepoint":"1f9d8 1f3ff 200d 2640 fe0f","name":"woman in lotus position: dark skin tone"},{"codepoint":"1f6c0","name":"person taking bath"},{"codepoint":"1f6c0 1f3fb","name":"person taking bath: light skin tone"},{"codepoint":"1f6c0 1f3fc","name":"person taking bath: medium-light skin tone"},{"codepoint":"1f6c0 1f3fd","name":"person taking bath: medium skin tone"},{"codepoint":"1f6c0 1f3fe","name":"person taking bath: medium-dark skin tone"},{"codepoint":"1f6c0 1f3ff","name":"person taking bath: dark skin tone"},{"codepoint":"1f6cc","name":"person in bed"},{"codepoint":"1f6cc 1f3fb","name":"person in bed: light skin tone"},{"codepoint":"1f6cc 1f3fc","name":"person in bed: medium-light skin tone"},{"codepoint":"1f6cc 1f3fd","name":"person in bed: medium skin tone"},{"codepoint":"1f6cc 1f3fe","name":"person in bed: medium-dark skin tone"},{"codepoint":"1f6cc 1f3ff","name":"person in bed: dark skin tone"},{"codepoint":"1f9d1 200d 1f91d 200d 1f9d1","name":"people holding hands"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fb 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fc 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: medium-light skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fd 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: medium skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3fe 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: medium-dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fb","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fc","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fd","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3fe","name":"people holding hands: dark skin tone"},{"codepoint":"1f9d1 1f3ff 200d 1f91d 200d 1f9d1 1f3ff","name":"people holding hands: dark skin tone"},{"codepoint":"1f46d","name":"women holding hands"},{"codepoint":"1f46d 1f3fb","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f46d 1f3fc","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: medium skin tone"},{"codepoint":"1f46d 1f3fd","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f46d 1f3fe","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f469 1f3ff","name":"women holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fb","name":"women holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fc","name":"women holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fd","name":"women holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f469 1f3fe","name":"women holding hands: dark skin tone"},{"codepoint":"1f46d 1f3ff","name":"women holding hands: dark skin tone"},{"codepoint":"1f46b","name":"woman and man holding hands"},{"codepoint":"1f46b 1f3fb","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fb 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f46b 1f3fc","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fc 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: medium-light skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f46b 1f3fd","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fd 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: medium skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f46b 1f3fe","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3fe 200d 1f91d 200d 1f468 1f3ff","name":"woman and man holding hands: medium-dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fb","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fc","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fd","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f469 1f3ff 200d 1f91d 200d 1f468 1f3fe","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f46b 1f3ff","name":"woman and man holding hands: dark skin tone"},{"codepoint":"1f46c","name":"men holding hands"},{"codepoint":"1f46c 1f3fb","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fb 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f46c 1f3fc","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fc 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: medium-light skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: medium skin tone"},{"codepoint":"1f46c 1f3fd","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fd 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: medium skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f46c 1f3fe","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3fe 200d 1f91d 200d 1f468 1f3ff","name":"men holding hands: medium-dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fb","name":"men holding hands: dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fc","name":"men holding hands: dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fd","name":"men holding hands: dark skin tone"},{"codepoint":"1f468 1f3ff 200d 1f91d 200d 1f468 1f3fe","name":"men holding hands: dark skin tone"},{"codepoint":"1f46c 1f3ff","name":"men holding hands: dark skin tone"},{"codepoint":"1f48f","name":"kiss"},{"codepoint":"1f48f 1f3fb","name":"kiss: light skin tone"},{"codepoint":"1f48f 1f3fc","name":"kiss: medium-light skin tone"},{"codepoint":"1f48f 1f3fd","name":"kiss: medium skin tone"},{"codepoint":"1f48f 1f3fe","name":"kiss: medium-dark skin tone"},{"codepoint":"1f48f 1f3ff","name":"kiss: dark skin tone"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3ff","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fb","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fc","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fd","name":"kiss: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f9d1 1f3fe","name":"kiss: person"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f48b 200d 1f468","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: woman"},{"codepoint":"1f468 200d 2764 fe0f 200d 1f48b 200d 1f468","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fb","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fc","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fd","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3fe","name":"kiss: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f468 1f3ff","name":"kiss: man"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f48b 200d 1f469","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fb","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fc","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fd","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3fe","name":"kiss: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f48b 200d 1f469 1f3ff","name":"kiss: woman"},{"codepoint":"1f491","name":"couple with heart"},{"codepoint":"1f491 1f3fb","name":"couple with heart: light skin tone"},{"codepoint":"1f491 1f3fc","name":"couple with heart: medium-light skin tone"},{"codepoint":"1f491 1f3fd","name":"couple with heart: medium skin tone"},{"codepoint":"1f491 1f3fe","name":"couple with heart: medium-dark skin tone"},{"codepoint":"1f491 1f3ff","name":"couple with heart: dark skin tone"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fb 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fc 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fd 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3fe 200d 2764 fe0f 200d 1f9d1 1f3ff","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fb","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fc","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fd","name":"couple with heart: person"},{"codepoint":"1f9d1 1f3ff 200d 2764 fe0f 200d 1f9d1 1f3fe","name":"couple with heart: person"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f468","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f468 200d 2764 fe0f 200d 1f468","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fb 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fc 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fd 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3fe 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fb","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fc","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fd","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3fe","name":"couple with heart: man"},{"codepoint":"1f468 1f3ff 200d 2764 fe0f 200d 1f468 1f3ff","name":"couple with heart: man"},{"codepoint":"1f469 200d 2764 fe0f 200d 1f469","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fb 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fc 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fd 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3fe 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fb","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fc","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fd","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3fe","name":"couple with heart: woman"},{"codepoint":"1f469 1f3ff 200d 2764 fe0f 200d 1f469 1f3ff","name":"couple with heart: woman"},{"codepoint":"1f46a","name":"family"},{"codepoint":"1f468 200d 1f469 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f467 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f466 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f469 200d 1f467 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f467 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f466 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f468 200d 1f467 200d 1f467","name":"family: man"},{"codepoint":"1f469 200d 1f469 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f467","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f467 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f466 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f469 200d 1f467 200d 1f467","name":"family: woman"},{"codepoint":"1f468 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f466 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f467","name":"family: man"},{"codepoint":"1f468 200d 1f467 200d 1f466","name":"family: man"},{"codepoint":"1f468 200d 1f467 200d 1f467","name":"family: man"},{"codepoint":"1f469 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f466 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f467","name":"family: woman"},{"codepoint":"1f469 200d 1f467 200d 1f466","name":"family: woman"},{"codepoint":"1f469 200d 1f467 200d 1f467","name":"family: woman"},{"codepoint":"1f5e3 fe0f","name":"speaking head"},{"codepoint":"1f464","name":"bust in silhouette"},{"codepoint":"1f465","name":"busts in silhouette"},{"codepoint":"1fac2","name":"people hugging"},{"codepoint":"1f463","name":"footprints"},{"codepoint":"1f3fb","name":"light skin tone"},{"codepoint":"1f3fc","name":"medium-light skin tone"},{"codepoint":"1f3fd","name":"medium skin tone"},{"codepoint":"1f3fe","name":"medium-dark skin tone"},{"codepoint":"1f3ff","name":"dark skin tone"},{"codepoint":"1f9b0","name":"red hair"},{"codepoint":"1f9b1","name":"curly hair"},{"codepoint":"1f9b3","name":"white hair"},{"codepoint":"1f9b2","name":"bald"},{"codepoint":"1f435","name":"monkey face"},{"codepoint":"1f412","name":"monkey"},{"codepoint":"1f98d","name":"gorilla"},{"codepoint":"1f9a7","name":"orangutan"},{"codepoint":"1f436","name":"dog face"},{"codepoint":"1f415","name":"dog"},{"codepoint":"1f9ae","name":"guide dog"},{"codepoint":"1f415 200d 1f9ba","name":"service dog"},{"codepoint":"1f429","name":"poodle"},{"codepoint":"1f43a","name":"wolf"},{"codepoint":"1f98a","name":"fox"},{"codepoint":"1f99d","name":"raccoon"},{"codepoint":"1f431","name":"cat face"},{"codepoint":"1f408","name":"cat"},{"codepoint":"1f408 200d 2b1b","name":"black cat"},{"codepoint":"1f981","name":"lion"},{"codepoint":"1f42f","name":"tiger face"},{"codepoint":"1f405","name":"tiger"},{"codepoint":"1f406","name":"leopard"},{"codepoint":"1f434","name":"horse face"},{"codepoint":"1f40e","name":"horse"},{"codepoint":"1f984","name":"unicorn"},{"codepoint":"1f993","name":"zebra"},{"codepoint":"1f98c","name":"deer"},{"codepoint":"1f9ac","name":"bison"},{"codepoint":"1f42e","name":"cow face"},{"codepoint":"1f402","name":"ox"},{"codepoint":"1f403","name":"water buffalo"},{"codepoint":"1f404","name":"cow"},{"codepoint":"1f437","name":"pig face"},{"codepoint":"1f416","name":"pig"},{"codepoint":"1f417","name":"boar"},{"codepoint":"1f43d","name":"pig nose"},{"codepoint":"1f40f","name":"ram"},{"codepoint":"1f411","name":"ewe"},{"codepoint":"1f410","name":"goat"},{"codepoint":"1f42a","name":"camel"},{"codepoint":"1f42b","name":"two-hump camel"},{"codepoint":"1f999","name":"llama"},{"codepoint":"1f992","name":"giraffe"},{"codepoint":"1f418","name":"elephant"},{"codepoint":"1f9a3","name":"mammoth"},{"codepoint":"1f98f","name":"rhinoceros"},{"codepoint":"1f99b","name":"hippopotamus"},{"codepoint":"1f42d","name":"mouse face"},{"codepoint":"1f401","name":"mouse"},{"codepoint":"1f400","name":"rat"},{"codepoint":"1f439","name":"hamster"},{"codepoint":"1f430","name":"rabbit face"},{"codepoint":"1f407","name":"rabbit"},{"codepoint":"1f43f fe0f","name":"chipmunk"},{"codepoint":"1f9ab","name":"beaver"},{"codepoint":"1f994","name":"hedgehog"},{"codepoint":"1f987","name":"bat"},{"codepoint":"1f43b","name":"bear"},{"codepoint":"1f43b 200d 2744 fe0f","name":"polar bear"},{"codepoint":"1f428","name":"koala"},{"codepoint":"1f43c","name":"panda"},{"codepoint":"1f9a5","name":"sloth"},{"codepoint":"1f9a6","name":"otter"},{"codepoint":"1f9a8","name":"skunk"},{"codepoint":"1f998","name":"kangaroo"},{"codepoint":"1f9a1","name":"badger"},{"codepoint":"1f43e","name":"paw prints"},{"codepoint":"1f983","name":"turkey"},{"codepoint":"1f414","name":"chicken"},{"codepoint":"1f413","name":"rooster"},{"codepoint":"1f423","name":"hatching chick"},{"codepoint":"1f424","name":"baby chick"},{"codepoint":"1f425","name":"front-facing baby chick"},{"codepoint":"1f426","name":"bird"},{"codepoint":"1f427","name":"penguin"},{"codepoint":"1f54a fe0f","name":"dove"},{"codepoint":"1f985","name":"eagle"},{"codepoint":"1f986","name":"duck"},{"codepoint":"1f9a2","name":"swan"},{"codepoint":"1f989","name":"owl"},{"codepoint":"1f9a4","name":"dodo"},{"codepoint":"1fab6","name":"feather"},{"codepoint":"1f9a9","name":"flamingo"},{"codepoint":"1f99a","name":"peacock"},{"codepoint":"1f99c","name":"parrot"},{"codepoint":"1f438","name":"frog"},{"codepoint":"1f40a","name":"crocodile"},{"codepoint":"1f422","name":"turtle"},{"codepoint":"1f98e","name":"lizard"},{"codepoint":"1f40d","name":"snake"},{"codepoint":"1f432","name":"dragon face"},{"codepoint":"1f409","name":"dragon"},{"codepoint":"1f995","name":"sauropod"},{"codepoint":"1f996","name":"t-rex"},{"codepoint":"1f433","name":"spouting whale"},{"codepoint":"1f40b","name":"whale"},{"codepoint":"1f42c","name":"dolphin"},{"codepoint":"1f9ad","name":"seal"},{"codepoint":"1f41f","name":"fish"},{"codepoint":"1f420","name":"tropical fish"},{"codepoint":"1f421","name":"blowfish"},{"codepoint":"1f988","name":"shark"},{"codepoint":"1f419","name":"octopus"},{"codepoint":"1f41a","name":"spiral shell"},{"codepoint":"1fab8","name":"coral"},{"codepoint":"1f40c","name":"snail"},{"codepoint":"1f98b","name":"butterfly"},{"codepoint":"1f41b","name":"bug"},{"codepoint":"1f41c","name":"ant"},{"codepoint":"1f41d","name":"honeybee"},{"codepoint":"1fab2","name":"beetle"},{"codepoint":"1f41e","name":"lady beetle"},{"codepoint":"1f997","name":"cricket"},{"codepoint":"1fab3","name":"cockroach"},{"codepoint":"1f577 fe0f","name":"spider"},{"codepoint":"1f578 fe0f","name":"spider web"},{"codepoint":"1f982","name":"scorpion"},{"codepoint":"1f99f","name":"mosquito"},{"codepoint":"1fab0","name":"fly"},{"codepoint":"1fab1","name":"worm"},{"codepoint":"1f9a0","name":"microbe"},{"codepoint":"1f490","name":"bouquet"},{"codepoint":"1f338","name":"cherry blossom"},{"codepoint":"1f4ae","name":"white flower"},{"codepoint":"1fab7","name":"lotus"},{"codepoint":"1f3f5 fe0f","name":"rosette"},{"codepoint":"1f339","name":"rose"},{"codepoint":"1f940","name":"wilted flower"},{"codepoint":"1f33a","name":"hibiscus"},{"codepoint":"1f33b","name":"sunflower"},{"codepoint":"1f33c","name":"blossom"},{"codepoint":"1f337","name":"tulip"},{"codepoint":"1f331","name":"seedling"},{"codepoint":"1fab4","name":"potted plant"},{"codepoint":"1f332","name":"evergreen tree"},{"codepoint":"1f333","name":"deciduous tree"},{"codepoint":"1f334","name":"palm tree"},{"codepoint":"1f335","name":"cactus"},{"codepoint":"1f33e","name":"sheaf of rice"},{"codepoint":"1f33f","name":"herb"},{"codepoint":"2618 fe0f","name":"shamrock"},{"codepoint":"1f340","name":"four leaf clover"},{"codepoint":"1f341","name":"maple leaf"},{"codepoint":"1f342","name":"fallen leaf"},{"codepoint":"1f343","name":"leaf fluttering in wind"},{"codepoint":"1fab9","name":"empty nest"},{"codepoint":"1faba","name":"nest with eggs"},{"codepoint":"1f347","name":"grapes"},{"codepoint":"1f348","name":"melon"},{"codepoint":"1f349","name":"watermelon"},{"codepoint":"1f34a","name":"tangerine"},{"codepoint":"1f34b","name":"lemon"},{"codepoint":"1f34c","name":"banana"},{"codepoint":"1f34d","name":"pineapple"},{"codepoint":"1f96d","name":"mango"},{"codepoint":"1f34e","name":"red apple"},{"codepoint":"1f34f","name":"green apple"},{"codepoint":"1f350","name":"pear"},{"codepoint":"1f351","name":"peach"},{"codepoint":"1f352","name":"cherries"},{"codepoint":"1f353","name":"strawberry"},{"codepoint":"1fad0","name":"blueberries"},{"codepoint":"1f95d","name":"kiwi fruit"},{"codepoint":"1f345","name":"tomato"},{"codepoint":"1fad2","name":"olive"},{"codepoint":"1f965","name":"coconut"},{"codepoint":"1f951","name":"avocado"},{"codepoint":"1f346","name":"eggplant"},{"codepoint":"1f954","name":"potato"},{"codepoint":"1f955","name":"carrot"},{"codepoint":"1f33d","name":"ear of corn"},{"codepoint":"1f336 fe0f","name":"hot pepper"},{"codepoint":"1fad1","name":"bell pepper"},{"codepoint":"1f952","name":"cucumber"},{"codepoint":"1f96c","name":"leafy green"},{"codepoint":"1f966","name":"broccoli"},{"codepoint":"1f9c4","name":"garlic"},{"codepoint":"1f9c5","name":"onion"},{"codepoint":"1f344","name":"mushroom"},{"codepoint":"1f95c","name":"peanuts"},{"codepoint":"1fad8","name":"beans"},{"codepoint":"1f330","name":"chestnut"},{"codepoint":"1f35e","name":"bread"},{"codepoint":"1f950","name":"croissant"},{"codepoint":"1f956","name":"baguette bread"},{"codepoint":"1fad3","name":"flatbread"},{"codepoint":"1f968","name":"pretzel"},{"codepoint":"1f96f","name":"bagel"},{"codepoint":"1f95e","name":"pancakes"},{"codepoint":"1f9c7","name":"waffle"},{"codepoint":"1f9c0","name":"cheese wedge"},{"codepoint":"1f356","name":"meat on bone"},{"codepoint":"1f357","name":"poultry leg"},{"codepoint":"1f969","name":"cut of meat"},{"codepoint":"1f953","name":"bacon"},{"codepoint":"1f354","name":"hamburger"},{"codepoint":"1f35f","name":"french fries"},{"codepoint":"1f355","name":"pizza"},{"codepoint":"1f32d","name":"hot dog"},{"codepoint":"1f96a","name":"sandwich"},{"codepoint":"1f32e","name":"taco"},{"codepoint":"1f32f","name":"burrito"},{"codepoint":"1fad4","name":"tamale"},{"codepoint":"1f959","name":"stuffed flatbread"},{"codepoint":"1f9c6","name":"falafel"},{"codepoint":"1f95a","name":"egg"},{"codepoint":"1f373","name":"cooking"},{"codepoint":"1f958","name":"shallow pan of food"},{"codepoint":"1f372","name":"pot of food"},{"codepoint":"1fad5","name":"fondue"},{"codepoint":"1f963","name":"bowl with spoon"},{"codepoint":"1f957","name":"green salad"},{"codepoint":"1f37f","name":"popcorn"},{"codepoint":"1f9c8","name":"butter"},{"codepoint":"1f9c2","name":"salt"},{"codepoint":"1f96b","name":"canned food"},{"codepoint":"1f371","name":"bento box"},{"codepoint":"1f358","name":"rice cracker"},{"codepoint":"1f359","name":"rice ball"},{"codepoint":"1f35a","name":"cooked rice"},{"codepoint":"1f35b","name":"curry rice"},{"codepoint":"1f35c","name":"steaming bowl"},{"codepoint":"1f35d","name":"spaghetti"},{"codepoint":"1f360","name":"roasted sweet potato"},{"codepoint":"1f362","name":"oden"},{"codepoint":"1f363","name":"sushi"},{"codepoint":"1f364","name":"fried shrimp"},{"codepoint":"1f365","name":"fish cake with swirl"},{"codepoint":"1f96e","name":"moon cake"},{"codepoint":"1f361","name":"dango"},{"codepoint":"1f95f","name":"dumpling"},{"codepoint":"1f960","name":"fortune cookie"},{"codepoint":"1f961","name":"takeout box"},{"codepoint":"1f980","name":"crab"},{"codepoint":"1f99e","name":"lobster"},{"codepoint":"1f990","name":"shrimp"},{"codepoint":"1f991","name":"squid"},{"codepoint":"1f9aa","name":"oyster"},{"codepoint":"1f366","name":"soft ice cream"},{"codepoint":"1f367","name":"shaved ice"},{"codepoint":"1f368","name":"ice cream"},{"codepoint":"1f369","name":"doughnut"},{"codepoint":"1f36a","name":"cookie"},{"codepoint":"1f382","name":"birthday cake"},{"codepoint":"1f370","name":"shortcake"},{"codepoint":"1f9c1","name":"cupcake"},{"codepoint":"1f967","name":"pie"},{"codepoint":"1f36b","name":"chocolate bar"},{"codepoint":"1f36c","name":"candy"},{"codepoint":"1f36d","name":"lollipop"},{"codepoint":"1f36e","name":"custard"},{"codepoint":"1f36f","name":"honey pot"},{"codepoint":"1f37c","name":"baby bottle"},{"codepoint":"1f95b","name":"glass of milk"},{"codepoint":"2615","name":"hot beverage"},{"codepoint":"1fad6","name":"teapot"},{"codepoint":"1f375","name":"teacup without handle"},{"codepoint":"1f376","name":"sake"},{"codepoint":"1f37e","name":"bottle with popping cork"},{"codepoint":"1f377","name":"wine glass"},{"codepoint":"1f378","name":"cocktail glass"},{"codepoint":"1f379","name":"tropical drink"},{"codepoint":"1f37a","name":"beer mug"},{"codepoint":"1f37b","name":"clinking beer mugs"},{"codepoint":"1f942","name":"clinking glasses"},{"codepoint":"1f943","name":"tumbler glass"},{"codepoint":"1fad7","name":"pouring liquid"},{"codepoint":"1f964","name":"cup with straw"},{"codepoint":"1f9cb","name":"bubble tea"},{"codepoint":"1f9c3","name":"beverage box"},{"codepoint":"1f9c9","name":"mate"},{"codepoint":"1f9ca","name":"ice"},{"codepoint":"1f962","name":"chopsticks"},{"codepoint":"1f37d fe0f","name":"fork and knife with plate"},{"codepoint":"1f374","name":"fork and knife"},{"codepoint":"1f944","name":"spoon"},{"codepoint":"1f52a","name":"kitchen knife"},{"codepoint":"1fad9","name":"jar"},{"codepoint":"1f3fa","name":"amphora"},{"codepoint":"1f30d","name":"globe showing europe-africa"},{"codepoint":"1f30e","name":"globe showing americas"},{"codepoint":"1f30f","name":"globe showing asia-australia"},{"codepoint":"1f310","name":"globe with meridians"},{"codepoint":"1f5fa fe0f","name":"world map"},{"codepoint":"1f5fe","name":"map of japan"},{"codepoint":"1f9ed","name":"compass"},{"codepoint":"1f3d4 fe0f","name":"snow-capped mountain"},{"codepoint":"26f0 fe0f","name":"mountain"},{"codepoint":"1f30b","name":"volcano"},{"codepoint":"1f5fb","name":"mount fuji"},{"codepoint":"1f3d5 fe0f","name":"camping"},{"codepoint":"1f3d6 fe0f","name":"beach with umbrella"},{"codepoint":"1f3dc fe0f","name":"desert"},{"codepoint":"1f3dd fe0f","name":"desert island"},{"codepoint":"1f3de fe0f","name":"national park"},{"codepoint":"1f3df fe0f","name":"stadium"},{"codepoint":"1f3db fe0f","name":"classical building"},{"codepoint":"1f3d7 fe0f","name":"building construction"},{"codepoint":"1f9f1","name":"brick"},{"codepoint":"1faa8","name":"rock"},{"codepoint":"1fab5","name":"wood"},{"codepoint":"1f6d6","name":"hut"},{"codepoint":"1f3d8 fe0f","name":"houses"},{"codepoint":"1f3da fe0f","name":"derelict house"},{"codepoint":"1f3e0","name":"house"},{"codepoint":"1f3e1","name":"house with garden"},{"codepoint":"1f3e2","name":"office building"},{"codepoint":"1f3e3","name":"japanese post office"},{"codepoint":"1f3e4","name":"post office"},{"codepoint":"1f3e5","name":"hospital"},{"codepoint":"1f3e6","name":"bank"},{"codepoint":"1f3e8","name":"hotel"},{"codepoint":"1f3e9","name":"love hotel"},{"codepoint":"1f3ea","name":"convenience store"},{"codepoint":"1f3eb","name":"school"},{"codepoint":"1f3ec","name":"department store"},{"codepoint":"1f3ed","name":"factory"},{"codepoint":"1f3ef","name":"japanese castle"},{"codepoint":"1f3f0","name":"castle"},{"codepoint":"1f492","name":"wedding"},{"codepoint":"1f5fc","name":"tokyo tower"},{"codepoint":"1f5fd","name":"statue of liberty"},{"codepoint":"26ea","name":"church"},{"codepoint":"1f54c","name":"mosque"},{"codepoint":"1f6d5","name":"hindu temple"},{"codepoint":"1f54d","name":"synagogue"},{"codepoint":"26e9 fe0f","name":"shinto shrine"},{"codepoint":"1f54b","name":"kaaba"},{"codepoint":"26f2","name":"fountain"},{"codepoint":"26fa","name":"tent"},{"codepoint":"1f301","name":"foggy"},{"codepoint":"1f303","name":"night with stars"},{"codepoint":"1f3d9 fe0f","name":"cityscape"},{"codepoint":"1f304","name":"sunrise over mountains"},{"codepoint":"1f305","name":"sunrise"},{"codepoint":"1f306","name":"cityscape at dusk"},{"codepoint":"1f307","name":"sunset"},{"codepoint":"1f309","name":"bridge at night"},{"codepoint":"2668 fe0f","name":"hot springs"},{"codepoint":"1f3a0","name":"carousel horse"},{"codepoint":"1f6dd","name":"playground slide"},{"codepoint":"1f3a1","name":"ferris wheel"},{"codepoint":"1f3a2","name":"roller coaster"},{"codepoint":"1f488","name":"barber pole"},{"codepoint":"1f3aa","name":"circus tent"},{"codepoint":"1f682","name":"locomotive"},{"codepoint":"1f683","name":"railway car"},{"codepoint":"1f684","name":"high-speed train"},{"codepoint":"1f685","name":"bullet train"},{"codepoint":"1f686","name":"train"},{"codepoint":"1f687","name":"metro"},{"codepoint":"1f688","name":"light rail"},{"codepoint":"1f689","name":"station"},{"codepoint":"1f68a","name":"tram"},{"codepoint":"1f69d","name":"monorail"},{"codepoint":"1f69e","name":"mountain railway"},{"codepoint":"1f68b","name":"tram car"},{"codepoint":"1f68c","name":"bus"},{"codepoint":"1f68d","name":"oncoming bus"},{"codepoint":"1f68e","name":"trolleybus"},{"codepoint":"1f690","name":"minibus"},{"codepoint":"1f691","name":"ambulance"},{"codepoint":"1f692","name":"fire engine"},{"codepoint":"1f693","name":"police car"},{"codepoint":"1f694","name":"oncoming police car"},{"codepoint":"1f695","name":"taxi"},{"codepoint":"1f696","name":"oncoming taxi"},{"codepoint":"1f697","name":"automobile"},{"codepoint":"1f698","name":"oncoming automobile"},{"codepoint":"1f699","name":"sport utility vehicle"},{"codepoint":"1f6fb","name":"pickup truck"},{"codepoint":"1f69a","name":"delivery truck"},{"codepoint":"1f69b","name":"articulated lorry"},{"codepoint":"1f69c","name":"tractor"},{"codepoint":"1f3ce fe0f","name":"racing car"},{"codepoint":"1f3cd fe0f","name":"motorcycle"},{"codepoint":"1f6f5","name":"motor scooter"},{"codepoint":"1f9bd","name":"manual wheelchair"},{"codepoint":"1f9bc","name":"motorized wheelchair"},{"codepoint":"1f6fa","name":"auto rickshaw"},{"codepoint":"1f6b2","name":"bicycle"},{"codepoint":"1f6f4","name":"kick scooter"},{"codepoint":"1f6f9","name":"skateboard"},{"codepoint":"1f6fc","name":"roller skate"},{"codepoint":"1f68f","name":"bus stop"},{"codepoint":"1f6e3 fe0f","name":"motorway"},{"codepoint":"1f6e4 fe0f","name":"railway track"},{"codepoint":"1f6e2 fe0f","name":"oil drum"},{"codepoint":"26fd","name":"fuel pump"},{"codepoint":"1f6de","name":"wheel"},{"codepoint":"1f6a8","name":"police car light"},{"codepoint":"1f6a5","name":"horizontal traffic light"},{"codepoint":"1f6a6","name":"vertical traffic light"},{"codepoint":"1f6d1","name":"stop sign"},{"codepoint":"1f6a7","name":"construction"},{"codepoint":"2693","name":"anchor"},{"codepoint":"1f6df","name":"ring buoy"},{"codepoint":"26f5","name":"sailboat"},{"codepoint":"1f6f6","name":"canoe"},{"codepoint":"1f6a4","name":"speedboat"},{"codepoint":"1f6f3 fe0f","name":"passenger ship"},{"codepoint":"26f4 fe0f","name":"ferry"},{"codepoint":"1f6e5 fe0f","name":"motor boat"},{"codepoint":"1f6a2","name":"ship"},{"codepoint":"2708 fe0f","name":"airplane"},{"codepoint":"1f6e9 fe0f","name":"small airplane"},{"codepoint":"1f6eb","name":"airplane departure"},{"codepoint":"1f6ec","name":"airplane arrival"},{"codepoint":"1fa82","name":"parachute"},{"codepoint":"1f4ba","name":"seat"},{"codepoint":"1f681","name":"helicopter"},{"codepoint":"1f69f","name":"suspension railway"},{"codepoint":"1f6a0","name":"mountain cableway"},{"codepoint":"1f6a1","name":"aerial tramway"},{"codepoint":"1f6f0 fe0f","name":"satellite"},{"codepoint":"1f680","name":"rocket"},{"codepoint":"1f6f8","name":"flying saucer"},{"codepoint":"1f6ce fe0f","name":"bellhop bell"},{"codepoint":"1f9f3","name":"luggage"},{"codepoint":"231b","name":"hourglass done"},{"codepoint":"23f3","name":"hourglass not done"},{"codepoint":"231a","name":"watch"},{"codepoint":"23f0","name":"alarm clock"},{"codepoint":"23f1 fe0f","name":"stopwatch"},{"codepoint":"23f2 fe0f","name":"timer clock"},{"codepoint":"1f570 fe0f","name":"mantelpiece clock"},{"codepoint":"1f55b","name":"twelve o’clock"},{"codepoint":"1f567","name":"twelve-thirty"},{"codepoint":"1f550","name":"one o’clock"},{"codepoint":"1f55c","name":"one-thirty"},{"codepoint":"1f551","name":"two o’clock"},{"codepoint":"1f55d","name":"two-thirty"},{"codepoint":"1f552","name":"three o’clock"},{"codepoint":"1f55e","name":"three-thirty"},{"codepoint":"1f553","name":"four o’clock"},{"codepoint":"1f55f","name":"four-thirty"},{"codepoint":"1f554","name":"five o’clock"},{"codepoint":"1f560","name":"five-thirty"},{"codepoint":"1f555","name":"six o’clock"},{"codepoint":"1f561","name":"six-thirty"},{"codepoint":"1f556","name":"seven o’clock"},{"codepoint":"1f562","name":"seven-thirty"},{"codepoint":"1f557","name":"eight o’clock"},{"codepoint":"1f563","name":"eight-thirty"},{"codepoint":"1f558","name":"nine o’clock"},{"codepoint":"1f564","name":"nine-thirty"},{"codepoint":"1f559","name":"ten o’clock"},{"codepoint":"1f565","name":"ten-thirty"},{"codepoint":"1f55a","name":"eleven o’clock"},{"codepoint":"1f566","name":"eleven-thirty"},{"codepoint":"1f311","name":"new moon"},{"codepoint":"1f312","name":"waxing crescent moon"},{"codepoint":"1f313","name":"first quarter moon"},{"codepoint":"1f314","name":"waxing gibbous moon"},{"codepoint":"1f315","name":"full moon"},{"codepoint":"1f316","name":"waning gibbous moon"},{"codepoint":"1f317","name":"last quarter moon"},{"codepoint":"1f318","name":"waning crescent moon"},{"codepoint":"1f319","name":"crescent moon"},{"codepoint":"1f31a","name":"new moon face"},{"codepoint":"1f31b","name":"first quarter moon face"},{"codepoint":"1f31c","name":"last quarter moon face"},{"codepoint":"1f321 fe0f","name":"thermometer"},{"codepoint":"2600 fe0f","name":"sun"},{"codepoint":"1f31d","name":"full moon face"},{"codepoint":"1f31e","name":"sun with face"},{"codepoint":"1fa90","name":"ringed planet"},{"codepoint":"2b50","name":"star"},{"codepoint":"1f31f","name":"glowing star"},{"codepoint":"1f320","name":"shooting star"},{"codepoint":"1f30c","name":"milky way"},{"codepoint":"2601 fe0f","name":"cloud"},{"codepoint":"26c5","name":"sun behind cloud"},{"codepoint":"26c8 fe0f","name":"cloud with lightning and rain"},{"codepoint":"1f324 fe0f","name":"sun behind small cloud"},{"codepoint":"1f325 fe0f","name":"sun behind large cloud"},{"codepoint":"1f326 fe0f","name":"sun behind rain cloud"},{"codepoint":"1f327 fe0f","name":"cloud with rain"},{"codepoint":"1f328 fe0f","name":"cloud with snow"},{"codepoint":"1f329 fe0f","name":"cloud with lightning"},{"codepoint":"1f32a fe0f","name":"tornado"},{"codepoint":"1f32b fe0f","name":"fog"},{"codepoint":"1f32c fe0f","name":"wind face"},{"codepoint":"1f300","name":"cyclone"},{"codepoint":"1f308","name":"rainbow"},{"codepoint":"1f302","name":"closed umbrella"},{"codepoint":"2602 fe0f","name":"umbrella"},{"codepoint":"2614","name":"umbrella with rain drops"},{"codepoint":"26f1 fe0f","name":"umbrella on ground"},{"codepoint":"26a1","name":"high voltage"},{"codepoint":"2744 fe0f","name":"snowflake"},{"codepoint":"2603 fe0f","name":"snowman"},{"codepoint":"26c4","name":"snowman without snow"},{"codepoint":"2604 fe0f","name":"comet"},{"codepoint":"1f525","name":"fire"},{"codepoint":"1f4a7","name":"droplet"},{"codepoint":"1f30a","name":"water wave"},{"codepoint":"1f383","name":"jack-o-lantern"},{"codepoint":"1f384","name":"christmas tree"},{"codepoint":"1f386","name":"fireworks"},{"codepoint":"1f387","name":"sparkler"},{"codepoint":"1f9e8","name":"firecracker"},{"codepoint":"2728","name":"sparkles"},{"codepoint":"1f388","name":"balloon"},{"codepoint":"1f389","name":"party popper"},{"codepoint":"1f38a","name":"confetti ball"},{"codepoint":"1f38b","name":"tanabata tree"},{"codepoint":"1f38d","name":"pine decoration"},{"codepoint":"1f38e","name":"japanese dolls"},{"codepoint":"1f38f","name":"carp streamer"},{"codepoint":"1f390","name":"wind chime"},{"codepoint":"1f391","name":"moon viewing ceremony"},{"codepoint":"1f9e7","name":"red envelope"},{"codepoint":"1f380","name":"ribbon"},{"codepoint":"1f381","name":"wrapped gift"},{"codepoint":"1f397 fe0f","name":"reminder ribbon"},{"codepoint":"1f39f fe0f","name":"admission tickets"},{"codepoint":"1f3ab","name":"ticket"},{"codepoint":"1f396 fe0f","name":"military medal"},{"codepoint":"1f3c6","name":"trophy"},{"codepoint":"1f3c5","name":"sports medal"},{"codepoint":"1f947","name":"1st place medal"},{"codepoint":"1f948","name":"2nd place medal"},{"codepoint":"1f949","name":"3rd place medal"},{"codepoint":"26bd","name":"soccer ball"},{"codepoint":"26be","name":"baseball"},{"codepoint":"1f94e","name":"softball"},{"codepoint":"1f3c0","name":"basketball"},{"codepoint":"1f3d0","name":"volleyball"},{"codepoint":"1f3c8","name":"american football"},{"codepoint":"1f3c9","name":"rugby football"},{"codepoint":"1f3be","name":"tennis"},{"codepoint":"1f94f","name":"flying disc"},{"codepoint":"1f3b3","name":"bowling"},{"codepoint":"1f3cf","name":"cricket game"},{"codepoint":"1f3d1","name":"field hockey"},{"codepoint":"1f3d2","name":"ice hockey"},{"codepoint":"1f94d","name":"lacrosse"},{"codepoint":"1f3d3","name":"ping pong"},{"codepoint":"1f3f8","name":"badminton"},{"codepoint":"1f94a","name":"boxing glove"},{"codepoint":"1f94b","name":"martial arts uniform"},{"codepoint":"1f945","name":"goal net"},{"codepoint":"26f3","name":"flag in hole"},{"codepoint":"26f8 fe0f","name":"ice skate"},{"codepoint":"1f3a3","name":"fishing pole"},{"codepoint":"1f93f","name":"diving mask"},{"codepoint":"1f3bd","name":"running shirt"},{"codepoint":"1f3bf","name":"skis"},{"codepoint":"1f6f7","name":"sled"},{"codepoint":"1f94c","name":"curling stone"},{"codepoint":"1f3af","name":"bullseye"},{"codepoint":"1fa80","name":"yo-yo"},{"codepoint":"1fa81","name":"kite"},{"codepoint":"1f3b1","name":"pool 8 ball"},{"codepoint":"1f52e","name":"crystal ball"},{"codepoint":"1fa84","name":"magic wand"},{"codepoint":"1f9ff","name":"nazar amulet"},{"codepoint":"1faac","name":"hamsa"},{"codepoint":"1f3ae","name":"video game"},{"codepoint":"1f579 fe0f","name":"joystick"},{"codepoint":"1f3b0","name":"slot machine"},{"codepoint":"1f3b2","name":"game die"},{"codepoint":"1f9e9","name":"puzzle piece"},{"codepoint":"1f9f8","name":"teddy bear"},{"codepoint":"1fa85","name":"piñata"},{"codepoint":"1faa9","name":"mirror ball"},{"codepoint":"1fa86","name":"nesting dolls"},{"codepoint":"2660 fe0f","name":"spade suit"},{"codepoint":"2665 fe0f","name":"heart suit"},{"codepoint":"2666 fe0f","name":"diamond suit"},{"codepoint":"2663 fe0f","name":"club suit"},{"codepoint":"265f fe0f","name":"chess pawn"},{"codepoint":"1f0cf","name":"joker"},{"codepoint":"1f004","name":"mahjong red dragon"},{"codepoint":"1f3b4","name":"flower playing cards"},{"codepoint":"1f3ad","name":"performing arts"},{"codepoint":"1f5bc fe0f","name":"framed picture"},{"codepoint":"1f3a8","name":"artist palette"},{"codepoint":"1f9f5","name":"thread"},{"codepoint":"1faa1","name":"sewing needle"},{"codepoint":"1f9f6","name":"yarn"},{"codepoint":"1faa2","name":"knot"},{"codepoint":"1f453","name":"glasses"},{"codepoint":"1f576 fe0f","name":"sunglasses"},{"codepoint":"1f97d","name":"goggles"},{"codepoint":"1f97c","name":"lab coat"},{"codepoint":"1f9ba","name":"safety vest"},{"codepoint":"1f454","name":"necktie"},{"codepoint":"1f455","name":"t-shirt"},{"codepoint":"1f456","name":"jeans"},{"codepoint":"1f9e3","name":"scarf"},{"codepoint":"1f9e4","name":"gloves"},{"codepoint":"1f9e5","name":"coat"},{"codepoint":"1f9e6","name":"socks"},{"codepoint":"1f457","name":"dress"},{"codepoint":"1f458","name":"kimono"},{"codepoint":"1f97b","name":"sari"},{"codepoint":"1fa71","name":"one-piece swimsuit"},{"codepoint":"1fa72","name":"briefs"},{"codepoint":"1fa73","name":"shorts"},{"codepoint":"1f459","name":"bikini"},{"codepoint":"1f45a","name":"woman’s clothes"},{"codepoint":"1f45b","name":"purse"},{"codepoint":"1f45c","name":"handbag"},{"codepoint":"1f45d","name":"clutch bag"},{"codepoint":"1f6cd fe0f","name":"shopping bags"},{"codepoint":"1f392","name":"backpack"},{"codepoint":"1fa74","name":"thong sandal"},{"codepoint":"1f45e","name":"man’s shoe"},{"codepoint":"1f45f","name":"running shoe"},{"codepoint":"1f97e","name":"hiking boot"},{"codepoint":"1f97f","name":"flat shoe"},{"codepoint":"1f460","name":"high-heeled shoe"},{"codepoint":"1f461","name":"woman’s sandal"},{"codepoint":"1fa70","name":"ballet shoes"},{"codepoint":"1f462","name":"woman’s boot"},{"codepoint":"1f451","name":"crown"},{"codepoint":"1f452","name":"woman’s hat"},{"codepoint":"1f3a9","name":"top hat"},{"codepoint":"1f393","name":"graduation cap"},{"codepoint":"1f9e2","name":"billed cap"},{"codepoint":"1fa96","name":"military helmet"},{"codepoint":"26d1 fe0f","name":"rescue worker’s helmet"},{"codepoint":"1f4ff","name":"prayer beads"},{"codepoint":"1f484","name":"lipstick"},{"codepoint":"1f48d","name":"ring"},{"codepoint":"1f48e","name":"gem stone"},{"codepoint":"1f507","name":"muted speaker"},{"codepoint":"1f508","name":"speaker low volume"},{"codepoint":"1f509","name":"speaker medium volume"},{"codepoint":"1f50a","name":"speaker high volume"},{"codepoint":"1f4e2","name":"loudspeaker"},{"codepoint":"1f4e3","name":"megaphone"},{"codepoint":"1f4ef","name":"postal horn"},{"codepoint":"1f514","name":"bell"},{"codepoint":"1f515","name":"bell with slash"},{"codepoint":"1f3bc","name":"musical score"},{"codepoint":"1f3b5","name":"musical note"},{"codepoint":"1f3b6","name":"musical notes"},{"codepoint":"1f399 fe0f","name":"studio microphone"},{"codepoint":"1f39a fe0f","name":"level slider"},{"codepoint":"1f39b fe0f","name":"control knobs"},{"codepoint":"1f3a4","name":"microphone"},{"codepoint":"1f3a7","name":"headphone"},{"codepoint":"1f4fb","name":"radio"},{"codepoint":"1f3b7","name":"saxophone"},{"codepoint":"1fa97","name":"accordion"},{"codepoint":"1f3b8","name":"guitar"},{"codepoint":"1f3b9","name":"musical keyboard"},{"codepoint":"1f3ba","name":"trumpet"},{"codepoint":"1f3bb","name":"violin"},{"codepoint":"1fa95","name":"banjo"},{"codepoint":"1f941","name":"drum"},{"codepoint":"1fa98","name":"long drum"},{"codepoint":"1f4f1","name":"mobile phone"},{"codepoint":"1f4f2","name":"mobile phone with arrow"},{"codepoint":"260e fe0f","name":"telephone"},{"codepoint":"1f4de","name":"telephone receiver"},{"codepoint":"1f4df","name":"pager"},{"codepoint":"1f4e0","name":"fax machine"},{"codepoint":"1f50b","name":"battery"},{"codepoint":"1faab","name":"low battery"},{"codepoint":"1f50c","name":"electric plug"},{"codepoint":"1f4bb","name":"laptop"},{"codepoint":"1f5a5 fe0f","name":"desktop computer"},{"codepoint":"1f5a8 fe0f","name":"printer"},{"codepoint":"2328 fe0f","name":"keyboard"},{"codepoint":"1f5b1 fe0f","name":"computer mouse"},{"codepoint":"1f5b2 fe0f","name":"trackball"},{"codepoint":"1f4bd","name":"computer disk"},{"codepoint":"1f4be","name":"floppy disk"},{"codepoint":"1f4bf","name":"optical disk"},{"codepoint":"1f4c0","name":"dvd"},{"codepoint":"1f9ee","name":"abacus"},{"codepoint":"1f3a5","name":"movie camera"},{"codepoint":"1f39e fe0f","name":"film frames"},{"codepoint":"1f4fd fe0f","name":"film projector"},{"codepoint":"1f3ac","name":"clapper board"},{"codepoint":"1f4fa","name":"television"},{"codepoint":"1f4f7","name":"camera"},{"codepoint":"1f4f8","name":"camera with flash"},{"codepoint":"1f4f9","name":"video camera"},{"codepoint":"1f4fc","name":"videocassette"},{"codepoint":"1f50d","name":"magnifying glass tilted left"},{"codepoint":"1f50e","name":"magnifying glass tilted right"},{"codepoint":"1f56f fe0f","name":"candle"},{"codepoint":"1f4a1","name":"light bulb"},{"codepoint":"1f526","name":"flashlight"},{"codepoint":"1f3ee","name":"red paper lantern"},{"codepoint":"1fa94","name":"diya lamp"},{"codepoint":"1f4d4","name":"notebook with decorative cover"},{"codepoint":"1f4d5","name":"closed book"},{"codepoint":"1f4d6","name":"open book"},{"codepoint":"1f4d7","name":"green book"},{"codepoint":"1f4d8","name":"blue book"},{"codepoint":"1f4d9","name":"orange book"},{"codepoint":"1f4da","name":"books"},{"codepoint":"1f4d3","name":"notebook"},{"codepoint":"1f4d2","name":"ledger"},{"codepoint":"1f4c3","name":"page with curl"},{"codepoint":"1f4dc","name":"scroll"},{"codepoint":"1f4c4","name":"page facing up"},{"codepoint":"1f4f0","name":"newspaper"},{"codepoint":"1f5de fe0f","name":"rolled-up newspaper"},{"codepoint":"1f4d1","name":"bookmark tabs"},{"codepoint":"1f516","name":"bookmark"},{"codepoint":"1f3f7 fe0f","name":"label"},{"codepoint":"1f4b0","name":"money bag"},{"codepoint":"1fa99","name":"coin"},{"codepoint":"1f4b4","name":"yen banknote"},{"codepoint":"1f4b5","name":"dollar banknote"},{"codepoint":"1f4b6","name":"euro banknote"},{"codepoint":"1f4b7","name":"pound banknote"},{"codepoint":"1f4b8","name":"money with wings"},{"codepoint":"1f4b3","name":"credit card"},{"codepoint":"1f9fe","name":"receipt"},{"codepoint":"1f4b9","name":"chart increasing with yen"},{"codepoint":"2709 fe0f","name":"envelope"},{"codepoint":"1f4e7","name":"e-mail"},{"codepoint":"1f4e8","name":"incoming envelope"},{"codepoint":"1f4e9","name":"envelope with arrow"},{"codepoint":"1f4e4","name":"outbox tray"},{"codepoint":"1f4e5","name":"inbox tray"},{"codepoint":"1f4e6","name":"package"},{"codepoint":"1f4eb","name":"closed mailbox with raised flag"},{"codepoint":"1f4ea","name":"closed mailbox with lowered flag"},{"codepoint":"1f4ec","name":"open mailbox with raised flag"},{"codepoint":"1f4ed","name":"open mailbox with lowered flag"},{"codepoint":"1f4ee","name":"postbox"},{"codepoint":"1f5f3 fe0f","name":"ballot box with ballot"},{"codepoint":"270f fe0f","name":"pencil"},{"codepoint":"2712 fe0f","name":"black nib"},{"codepoint":"1f58b fe0f","name":"fountain pen"},{"codepoint":"1f58a fe0f","name":"pen"},{"codepoint":"1f58c fe0f","name":"paintbrush"},{"codepoint":"1f58d fe0f","name":"crayon"},{"codepoint":"1f4dd","name":"memo"},{"codepoint":"1f4bc","name":"briefcase"},{"codepoint":"1f4c1","name":"file folder"},{"codepoint":"1f4c2","name":"open file folder"},{"codepoint":"1f5c2 fe0f","name":"card index dividers"},{"codepoint":"1f4c5","name":"calendar"},{"codepoint":"1f4c6","name":"tear-off calendar"},{"codepoint":"1f5d2 fe0f","name":"spiral notepad"},{"codepoint":"1f5d3 fe0f","name":"spiral calendar"},{"codepoint":"1f4c7","name":"card index"},{"codepoint":"1f4c8","name":"chart increasing"},{"codepoint":"1f4c9","name":"chart decreasing"},{"codepoint":"1f4ca","name":"bar chart"},{"codepoint":"1f4cb","name":"clipboard"},{"codepoint":"1f4cc","name":"pushpin"},{"codepoint":"1f4cd","name":"round pushpin"},{"codepoint":"1f4ce","name":"paperclip"},{"codepoint":"1f587 fe0f","name":"linked paperclips"},{"codepoint":"1f4cf","name":"straight ruler"},{"codepoint":"1f4d0","name":"triangular ruler"},{"codepoint":"2702 fe0f","name":"scissors"},{"codepoint":"1f5c3 fe0f","name":"card file box"},{"codepoint":"1f5c4 fe0f","name":"file cabinet"},{"codepoint":"1f5d1 fe0f","name":"wastebasket"},{"codepoint":"1f512","name":"locked"},{"codepoint":"1f513","name":"unlocked"},{"codepoint":"1f50f","name":"locked with pen"},{"codepoint":"1f510","name":"locked with key"},{"codepoint":"1f511","name":"key"},{"codepoint":"1f5dd fe0f","name":"old key"},{"codepoint":"1f528","name":"hammer"},{"codepoint":"1fa93","name":"axe"},{"codepoint":"26cf fe0f","name":"pick"},{"codepoint":"2692 fe0f","name":"hammer and pick"},{"codepoint":"1f6e0 fe0f","name":"hammer and wrench"},{"codepoint":"1f5e1 fe0f","name":"dagger"},{"codepoint":"2694 fe0f","name":"crossed swords"},{"codepoint":"1f52b","name":"water pistol"},{"codepoint":"1fa83","name":"boomerang"},{"codepoint":"1f3f9","name":"bow and arrow"},{"codepoint":"1f6e1 fe0f","name":"shield"},{"codepoint":"1fa9a","name":"carpentry saw"},{"codepoint":"1f527","name":"wrench"},{"codepoint":"1fa9b","name":"screwdriver"},{"codepoint":"1f529","name":"nut and bolt"},{"codepoint":"2699 fe0f","name":"gear"},{"codepoint":"1f5dc fe0f","name":"clamp"},{"codepoint":"2696 fe0f","name":"balance scale"},{"codepoint":"1f9af","name":"white cane"},{"codepoint":"1f517","name":"link"},{"codepoint":"26d3 fe0f","name":"chains"},{"codepoint":"1fa9d","name":"hook"},{"codepoint":"1f9f0","name":"toolbox"},{"codepoint":"1f9f2","name":"magnet"},{"codepoint":"1fa9c","name":"ladder"},{"codepoint":"2697 fe0f","name":"alembic"},{"codepoint":"1f9ea","name":"test tube"},{"codepoint":"1f9eb","name":"petri dish"},{"codepoint":"1f9ec","name":"dna"},{"codepoint":"1f52c","name":"microscope"},{"codepoint":"1f52d","name":"telescope"},{"codepoint":"1f4e1","name":"satellite antenna"},{"codepoint":"1f489","name":"syringe"},{"codepoint":"1fa78","name":"drop of blood"},{"codepoint":"1f48a","name":"pill"},{"codepoint":"1fa79","name":"adhesive bandage"},{"codepoint":"1fa7c","name":"crutch"},{"codepoint":"1fa7a","name":"stethoscope"},{"codepoint":"1fa7b","name":"x-ray"},{"codepoint":"1f6aa","name":"door"},{"codepoint":"1f6d7","name":"elevator"},{"codepoint":"1fa9e","name":"mirror"},{"codepoint":"1fa9f","name":"window"},{"codepoint":"1f6cf fe0f","name":"bed"},{"codepoint":"1f6cb fe0f","name":"couch and lamp"},{"codepoint":"1fa91","name":"chair"},{"codepoint":"1f6bd","name":"toilet"},{"codepoint":"1faa0","name":"plunger"},{"codepoint":"1f6bf","name":"shower"},{"codepoint":"1f6c1","name":"bathtub"},{"codepoint":"1faa4","name":"mouse trap"},{"codepoint":"1fa92","name":"razor"},{"codepoint":"1f9f4","name":"lotion bottle"},{"codepoint":"1f9f7","name":"safety pin"},{"codepoint":"1f9f9","name":"broom"},{"codepoint":"1f9fa","name":"basket"},{"codepoint":"1f9fb","name":"roll of paper"},{"codepoint":"1faa3","name":"bucket"},{"codepoint":"1f9fc","name":"soap"},{"codepoint":"1fae7","name":"bubbles"},{"codepoint":"1faa5","name":"toothbrush"},{"codepoint":"1f9fd","name":"sponge"},{"codepoint":"1f9ef","name":"fire extinguisher"},{"codepoint":"1f6d2","name":"shopping cart"},{"codepoint":"1f6ac","name":"cigarette"},{"codepoint":"26b0 fe0f","name":"coffin"},{"codepoint":"1faa6","name":"headstone"},{"codepoint":"26b1 fe0f","name":"funeral urn"},{"codepoint":"1f5ff","name":"moai"},{"codepoint":"1faa7","name":"placard"},{"codepoint":"1faaa","name":"identification card"},{"codepoint":"1f3e7","name":"atm sign"},{"codepoint":"1f6ae","name":"litter in bin sign"},{"codepoint":"1f6b0","name":"potable water"},{"codepoint":"267f","name":"wheelchair symbol"},{"codepoint":"1f6b9","name":"men’s room"},{"codepoint":"1f6ba","name":"women’s room"},{"codepoint":"1f6bb","name":"restroom"},{"codepoint":"1f6bc","name":"baby symbol"},{"codepoint":"1f6be","name":"water closet"},{"codepoint":"1f6c2","name":"passport control"},{"codepoint":"1f6c3","name":"customs"},{"codepoint":"1f6c4","name":"baggage claim"},{"codepoint":"1f6c5","name":"left luggage"},{"codepoint":"26a0 fe0f","name":"warning"},{"codepoint":"1f6b8","name":"children crossing"},{"codepoint":"26d4","name":"no entry"},{"codepoint":"1f6ab","name":"prohibited"},{"codepoint":"1f6b3","name":"no bicycles"},{"codepoint":"1f6ad","name":"no smoking"},{"codepoint":"1f6af","name":"no littering"},{"codepoint":"1f6b1","name":"non-potable water"},{"codepoint":"1f6b7","name":"no pedestrians"},{"codepoint":"1f4f5","name":"no mobile phones"},{"codepoint":"1f51e","name":"no one under eighteen"},{"codepoint":"2622 fe0f","name":"radioactive"},{"codepoint":"2623 fe0f","name":"biohazard"},{"codepoint":"2b06 fe0f","name":"up arrow"},{"codepoint":"2197 fe0f","name":"up-right arrow"},{"codepoint":"27a1 fe0f","name":"right arrow"},{"codepoint":"2198 fe0f","name":"down-right arrow"},{"codepoint":"2b07 fe0f","name":"down arrow"},{"codepoint":"2199 fe0f","name":"down-left arrow"},{"codepoint":"2b05 fe0f","name":"left arrow"},{"codepoint":"2196 fe0f","name":"up-left arrow"},{"codepoint":"2195 fe0f","name":"up-down arrow"},{"codepoint":"2194 fe0f","name":"left-right arrow"},{"codepoint":"21a9 fe0f","name":"right arrow curving left"},{"codepoint":"21aa fe0f","name":"left arrow curving right"},{"codepoint":"2934 fe0f","name":"right arrow curving up"},{"codepoint":"2935 fe0f","name":"right arrow curving down"},{"codepoint":"1f503","name":"clockwise vertical arrows"},{"codepoint":"1f504","name":"counterclockwise arrows button"},{"codepoint":"1f519","name":"back arrow"},{"codepoint":"1f51a","name":"end arrow"},{"codepoint":"1f51b","name":"on! arrow"},{"codepoint":"1f51c","name":"soon arrow"},{"codepoint":"1f51d","name":"top arrow"},{"codepoint":"1f6d0","name":"place of worship"},{"codepoint":"269b fe0f","name":"atom symbol"},{"codepoint":"1f549 fe0f","name":"om"},{"codepoint":"2721 fe0f","name":"star of david"},{"codepoint":"2638 fe0f","name":"wheel of dharma"},{"codepoint":"262f fe0f","name":"yin yang"},{"codepoint":"271d fe0f","name":"latin cross"},{"codepoint":"2626 fe0f","name":"orthodox cross"},{"codepoint":"262a fe0f","name":"star and crescent"},{"codepoint":"262e fe0f","name":"peace symbol"},{"codepoint":"1f54e","name":"menorah"},{"codepoint":"1f52f","name":"dotted six-pointed star"},{"codepoint":"2648","name":"aries"},{"codepoint":"2649","name":"taurus"},{"codepoint":"264a","name":"gemini"},{"codepoint":"264b","name":"cancer"},{"codepoint":"264c","name":"leo"},{"codepoint":"264d","name":"virgo"},{"codepoint":"264e","name":"libra"},{"codepoint":"264f","name":"scorpio"},{"codepoint":"2650","name":"sagittarius"},{"codepoint":"2651","name":"capricorn"},{"codepoint":"2652","name":"aquarius"},{"codepoint":"2653","name":"pisces"},{"codepoint":"26ce","name":"ophiuchus"},{"codepoint":"1f500","name":"shuffle tracks button"},{"codepoint":"1f501","name":"repeat button"},{"codepoint":"1f502","name":"repeat single button"},{"codepoint":"25b6 fe0f","name":"play button"},{"codepoint":"23e9","name":"fast-forward button"},{"codepoint":"23ed fe0f","name":"next track button"},{"codepoint":"23ef fe0f","name":"play or pause button"},{"codepoint":"25c0 fe0f","name":"reverse button"},{"codepoint":"23ea","name":"fast reverse button"},{"codepoint":"23ee fe0f","name":"last track button"},{"codepoint":"1f53c","name":"upwards button"},{"codepoint":"23eb","name":"fast up button"},{"codepoint":"1f53d","name":"downwards button"},{"codepoint":"23ec","name":"fast down button"},{"codepoint":"23f8 fe0f","name":"pause button"},{"codepoint":"23f9 fe0f","name":"stop button"},{"codepoint":"23fa fe0f","name":"record button"},{"codepoint":"23cf fe0f","name":"eject button"},{"codepoint":"1f3a6","name":"cinema"},{"codepoint":"1f505","name":"dim button"},{"codepoint":"1f506","name":"bright button"},{"codepoint":"1f4f6","name":"antenna bars"},{"codepoint":"1f4f3","name":"vibration mode"},{"codepoint":"1f4f4","name":"mobile phone off"},{"codepoint":"2640 fe0f","name":"female sign"},{"codepoint":"2642 fe0f","name":"male sign"},{"codepoint":"26a7 fe0f","name":"transgender symbol"},{"codepoint":"2716 fe0f","name":"multiply"},{"codepoint":"2795","name":"plus"},{"codepoint":"2796","name":"minus"},{"codepoint":"2797","name":"divide"},{"codepoint":"1f7f0","name":"heavy equals sign"},{"codepoint":"267e fe0f","name":"infinity"},{"codepoint":"203c fe0f","name":"double exclamation mark"},{"codepoint":"2049 fe0f","name":"exclamation question mark"},{"codepoint":"2753","name":"red question mark"},{"codepoint":"2754","name":"white question mark"},{"codepoint":"2755","name":"white exclamation mark"},{"codepoint":"2757","name":"red exclamation mark"},{"codepoint":"3030 fe0f","name":"wavy dash"},{"codepoint":"1f4b1","name":"currency exchange"},{"codepoint":"1f4b2","name":"heavy dollar sign"},{"codepoint":"2695 fe0f","name":"medical symbol"},{"codepoint":"267b fe0f","name":"recycling symbol"},{"codepoint":"269c fe0f","name":"fleur-de-lis"},{"codepoint":"1f531","name":"trident emblem"},{"codepoint":"1f4db","name":"name badge"},{"codepoint":"1f530","name":"japanese symbol for beginner"},{"codepoint":"2b55","name":"hollow red circle"},{"codepoint":"2705","name":"check mark button"},{"codepoint":"2611 fe0f","name":"check box with check"},{"codepoint":"2714 fe0f","name":"check mark"},{"codepoint":"274c","name":"cross mark"},{"codepoint":"274e","name":"cross mark button"},{"codepoint":"27b0","name":"curly loop"},{"codepoint":"27bf","name":"double curly loop"},{"codepoint":"303d fe0f","name":"part alternation mark"},{"codepoint":"2733 fe0f","name":"eight-spoked asterisk"},{"codepoint":"2734 fe0f","name":"eight-pointed star"},{"codepoint":"2747 fe0f","name":"sparkle"},{"codepoint":"00a9 fe0f","name":"copyright"},{"codepoint":"00ae fe0f","name":"registered"},{"codepoint":"2122 fe0f","name":"trade mark"},{"codepoint":"0023 fe0f 20e3","name":"keycap: #"},{"codepoint":"002a fe0f 20e3","name":"keycap: *"},{"codepoint":"0030 fe0f 20e3","name":"keycap: 0"},{"codepoint":"0031 fe0f 20e3","name":"keycap: 1"},{"codepoint":"0032 fe0f 20e3","name":"keycap: 2"},{"codepoint":"0033 fe0f 20e3","name":"keycap: 3"},{"codepoint":"0034 fe0f 20e3","name":"keycap: 4"},{"codepoint":"0035 fe0f 20e3","name":"keycap: 5"},{"codepoint":"0036 fe0f 20e3","name":"keycap: 6"},{"codepoint":"0037 fe0f 20e3","name":"keycap: 7"},{"codepoint":"0038 fe0f 20e3","name":"keycap: 8"},{"codepoint":"0039 fe0f 20e3","name":"keycap: 9"},{"codepoint":"1f51f","name":"keycap: 10"},{"codepoint":"1f520","name":"input latin uppercase"},{"codepoint":"1f521","name":"input latin lowercase"},{"codepoint":"1f522","name":"input numbers"},{"codepoint":"1f523","name":"input symbols"},{"codepoint":"1f524","name":"input latin letters"},{"codepoint":"1f170 fe0f","name":"a button (blood type)"},{"codepoint":"1f18e","name":"ab button (blood type)"},{"codepoint":"1f171 fe0f","name":"b button (blood type)"},{"codepoint":"1f191","name":"cl button"},{"codepoint":"1f192","name":"cool button"},{"codepoint":"1f193","name":"free button"},{"codepoint":"2139 fe0f","name":"information"},{"codepoint":"1f194","name":"id button"},{"codepoint":"24c2 fe0f","name":"circled m"},{"codepoint":"1f195","name":"new button"},{"codepoint":"1f196","name":"ng button"},{"codepoint":"1f17e fe0f","name":"o button (blood type)"},{"codepoint":"1f197","name":"ok button"},{"codepoint":"1f17f fe0f","name":"p button"},{"codepoint":"1f198","name":"sos button"},{"codepoint":"1f199","name":"up! button"},{"codepoint":"1f19a","name":"vs button"},{"codepoint":"1f201","name":"japanese “here” button"},{"codepoint":"1f202 fe0f","name":"japanese “service charge” button"},{"codepoint":"1f237 fe0f","name":"japanese “monthly amount” button"},{"codepoint":"1f236","name":"japanese “not free of charge” button"},{"codepoint":"1f22f","name":"japanese “reserved” button"},{"codepoint":"1f250","name":"japanese “bargain” button"},{"codepoint":"1f239","name":"japanese “discount” button"},{"codepoint":"1f21a","name":"japanese “free of charge” button"},{"codepoint":"1f232","name":"japanese “prohibited” button"},{"codepoint":"1f251","name":"japanese “acceptable” button"},{"codepoint":"1f238","name":"japanese “application” button"},{"codepoint":"1f234","name":"japanese “passing grade” button"},{"codepoint":"1f233","name":"japanese “vacancy” button"},{"codepoint":"3297 fe0f","name":"japanese “congratulations” button"},{"codepoint":"3299 fe0f","name":"japanese “secret” button"},{"codepoint":"1f23a","name":"japanese “open for business” button"},{"codepoint":"1f235","name":"japanese “no vacancy” button"},{"codepoint":"1f534","name":"red circle"},{"codepoint":"1f7e0","name":"orange circle"},{"codepoint":"1f7e1","name":"yellow circle"},{"codepoint":"1f7e2","name":"green circle"},{"codepoint":"1f535","name":"blue circle"},{"codepoint":"1f7e3","name":"purple circle"},{"codepoint":"1f7e4","name":"brown circle"},{"codepoint":"26ab","name":"black circle"},{"codepoint":"26aa","name":"white circle"},{"codepoint":"1f7e5","name":"red square"},{"codepoint":"1f7e7","name":"orange square"},{"codepoint":"1f7e8","name":"yellow square"},{"codepoint":"1f7e9","name":"green square"},{"codepoint":"1f7e6","name":"blue square"},{"codepoint":"1f7ea","name":"purple square"},{"codepoint":"1f7eb","name":"brown square"},{"codepoint":"2b1b","name":"black large square"},{"codepoint":"2b1c","name":"white large square"},{"codepoint":"25fc fe0f","name":"black medium square"},{"codepoint":"25fb fe0f","name":"white medium square"},{"codepoint":"25fe","name":"black medium-small square"},{"codepoint":"25fd","name":"white medium-small square"},{"codepoint":"25aa fe0f","name":"black small square"},{"codepoint":"25ab fe0f","name":"white small square"},{"codepoint":"1f536","name":"large orange diamond"},{"codepoint":"1f537","name":"large blue diamond"},{"codepoint":"1f538","name":"small orange diamond"},{"codepoint":"1f539","name":"small blue diamond"},{"codepoint":"1f53a","name":"red triangle pointed up"},{"codepoint":"1f53b","name":"red triangle pointed down"},{"codepoint":"1f4a0","name":"diamond with a dot"},{"codepoint":"1f518","name":"radio button"},{"codepoint":"1f533","name":"white square button"},{"codepoint":"1f532","name":"black square button"},{"codepoint":"1f3c1","name":"chequered flag"},{"codepoint":"1f6a9","name":"triangular flag"},{"codepoint":"1f38c","name":"crossed flags"},{"codepoint":"1f3f4","name":"black flag"},{"codepoint":"1f3f3 fe0f","name":"white flag"},{"codepoint":"1f3f3 fe0f 200d 1f308","name":"rainbow flag"},{"codepoint":"1f3f3 fe0f 200d 26a7 fe0f","name":"transgender flag"},{"codepoint":"1f3f4 200d 2620 fe0f","name":"pirate flag"},{"codepoint":"1f1ea 1f1e6","name":"flag: ceuta & melilla"},{"codepoint":"1f1ea 1f1e8","name":"flag: ecuador"},{"codepoint":"1f1ea 1f1ea","name":"flag: estonia"},{"codepoint":"1f1ea 1f1ec","name":"flag: egypt"},{"codepoint":"1f1ea 1f1ed","name":"flag: western sahara"},{"codepoint":"1f1ea 1f1f7","name":"flag: eritrea"},{"codepoint":"1f1ea 1f1f8","name":"flag: spain"},{"codepoint":"1f1ea 1f1f9","name":"flag: ethiopia"},{"codepoint":"1f1ea 1f1fa","name":"flag: european union"},{"codepoint":"1f1eb 1f1ee","name":"flag: finland"},{"codepoint":"1f1eb 1f1ef","name":"flag: fiji"},{"codepoint":"1f1eb 1f1f0","name":"flag: falkland islands"},{"codepoint":"1f1eb 1f1f2","name":"flag: micronesia"},{"codepoint":"1f1eb 1f1f4","name":"flag: faroe islands"},{"codepoint":"1f1eb 1f1f7","name":"flag: france"},{"codepoint":"1f1ec 1f1e6","name":"flag: gabon"},{"codepoint":"1f1ec 1f1e7","name":"flag: united kingdom"},{"codepoint":"1f1ec 1f1e9","name":"flag: grenada"},{"codepoint":"1f1ec 1f1ea","name":"flag: georgia"},{"codepoint":"1f1ec 1f1eb","name":"flag: french guiana"},{"codepoint":"1f1ec 1f1ec","name":"flag: guernsey"},{"codepoint":"1f1ec 1f1ed","name":"flag: ghana"},{"codepoint":"1f1ec 1f1ee","name":"flag: gibraltar"},{"codepoint":"1f1ec 1f1f1","name":"flag: greenland"},{"codepoint":"1f1ec 1f1f2","name":"flag: gambia"},{"codepoint":"1f1ec 1f1f3","name":"flag: guinea"},{"codepoint":"1f1ec 1f1f5","name":"flag: guadeloupe"},{"codepoint":"1f1ec 1f1f6","name":"flag: equatorial guinea"},{"codepoint":"1f1ec 1f1f7","name":"flag: greece"},{"codepoint":"1f1ec 1f1f8","name":"flag: south georgia & south sandwich islands"},{"codepoint":"1f1ec 1f1f9","name":"flag: guatemala"},{"codepoint":"1f1ec 1f1fa","name":"flag: guam"},{"codepoint":"1f1ec 1f1fc","name":"flag: guinea-bissau"},{"codepoint":"1f1ec 1f1fe","name":"flag: guyana"},{"codepoint":"1f1ed 1f1f0","name":"flag: hong kong sar china"},{"codepoint":"1f1ed 1f1f2","name":"flag: heard & mcdonald islands"},{"codepoint":"1f1ed 1f1f3","name":"flag: honduras"},{"codepoint":"1f1ed 1f1f7","name":"flag: croatia"},{"codepoint":"1f1ed 1f1f9","name":"flag: haiti"},{"codepoint":"1f1ed 1f1fa","name":"flag: hungary"},{"codepoint":"1f1ee 1f1e8","name":"flag: canary islands"},{"codepoint":"1f1ee 1f1e9","name":"flag: indonesia"},{"codepoint":"1f1ee 1f1ea","name":"flag: ireland"},{"codepoint":"1f1ee 1f1f1","name":"flag: israel"},{"codepoint":"1f1ee 1f1f2","name":"flag: isle of man"},{"codepoint":"1f1ee 1f1f3","name":"flag: india"},{"codepoint":"1f1ee 1f1f4","name":"flag: british indian ocean territory"},{"codepoint":"1f1ee 1f1f6","name":"flag: iraq"},{"codepoint":"1f1ee 1f1f7","name":"flag: iran"},{"codepoint":"1f1ee 1f1f8","name":"flag: iceland"},{"codepoint":"1f1ee 1f1f9","name":"flag: italy"},{"codepoint":"1f1ef 1f1ea","name":"flag: jersey"},{"codepoint":"1f1ef 1f1f2","name":"flag: jamaica"},{"codepoint":"1f1ef 1f1f4","name":"flag: jordan"},{"codepoint":"1f1ef 1f1f5","name":"flag: japan"},{"codepoint":"1f1f0 1f1ea","name":"flag: kenya"},{"codepoint":"1f1f0 1f1ec","name":"flag: kyrgyzstan"},{"codepoint":"1f1f0 1f1ed","name":"flag: cambodia"},{"codepoint":"1f1f0 1f1ee","name":"flag: kiribati"},{"codepoint":"1f1f0 1f1f2","name":"flag: comoros"},{"codepoint":"1f1f0 1f1f3","name":"flag: st. kitts & nevis"},{"codepoint":"1f1f0 1f1f5","name":"flag: north korea"},{"codepoint":"1f1f0 1f1f7","name":"flag: south korea"},{"codepoint":"1f1f0 1f1fc","name":"flag: kuwait"},{"codepoint":"1f1f0 1f1fe","name":"flag: cayman islands"},{"codepoint":"1f1f0 1f1ff","name":"flag: kazakhstan"},{"codepoint":"1f1f1 1f1e6","name":"flag: laos"},{"codepoint":"1f1f1 1f1e7","name":"flag: lebanon"},{"codepoint":"1f1f1 1f1e8","name":"flag: st. lucia"},{"codepoint":"1f1f1 1f1ee","name":"flag: liechtenstein"},{"codepoint":"1f1f1 1f1f0","name":"flag: sri lanka"},{"codepoint":"1f1f1 1f1f7","name":"flag: liberia"},{"codepoint":"1f1f1 1f1f8","name":"flag: lesotho"},{"codepoint":"1f1f1 1f1f9","name":"flag: lithuania"},{"codepoint":"1f1f1 1f1fa","name":"flag: luxembourg"},{"codepoint":"1f1f1 1f1fb","name":"flag: latvia"},{"codepoint":"1f1f1 1f1fe","name":"flag: libya"},{"codepoint":"1f1f2 1f1e6","name":"flag: morocco"},{"codepoint":"1f1f2 1f1e8","name":"flag: monaco"},{"codepoint":"1f1f2 1f1e9","name":"flag: moldova"},{"codepoint":"1f1f2 1f1ea","name":"flag: montenegro"},{"codepoint":"1f1f2 1f1eb","name":"flag: st. martin"},{"codepoint":"1f1f2 1f1ec","name":"flag: madagascar"},{"codepoint":"1f1f2 1f1ed","name":"flag: marshall islands"},{"codepoint":"1f1f2 1f1f0","name":"flag: north macedonia"},{"codepoint":"1f1f2 1f1f1","name":"flag: mali"},{"codepoint":"1f1f2 1f1f2","name":"flag: myanmar (burma)"},{"codepoint":"1f1f2 1f1f3","name":"flag: mongolia"},{"codepoint":"1f1f2 1f1f4","name":"flag: macao sar china"},{"codepoint":"1f1f2 1f1f5","name":"flag: northern mariana islands"},{"codepoint":"1f1f2 1f1f6","name":"flag: martinique"},{"codepoint":"1f1f2 1f1f7","name":"flag: mauritania"},{"codepoint":"1f1f2 1f1f8","name":"flag: montserrat"},{"codepoint":"1f1f2 1f1f9","name":"flag: malta"},{"codepoint":"1f1f2 1f1fa","name":"flag: mauritius"},{"codepoint":"1f1f2 1f1fb","name":"flag: maldives"},{"codepoint":"1f1f2 1f1fc","name":"flag: malawi"},{"codepoint":"1f1f2 1f1fd","name":"flag: mexico"},{"codepoint":"1f1f2 1f1fe","name":"flag: malaysia"},{"codepoint":"1f1f2 1f1ff","name":"flag: mozambique"},{"codepoint":"1f1f3 1f1e6","name":"flag: namibia"},{"codepoint":"1f1f3 1f1e8","name":"flag: new caledonia"},{"codepoint":"1f1f3 1f1ea","name":"flag: niger"},{"codepoint":"1f1f3 1f1eb","name":"flag: norfolk island"},{"codepoint":"1f1f3 1f1ec","name":"flag: nigeria"},{"codepoint":"1f1f3 1f1ee","name":"flag: nicaragua"},{"codepoint":"1f1f3 1f1f1","name":"flag: netherlands"},{"codepoint":"1f1f3 1f1f4","name":"flag: norway"},{"codepoint":"1f1f3 1f1f5","name":"flag: nepal"},{"codepoint":"1f1f3 1f1f7","name":"flag: nauru"},{"codepoint":"1f1f3 1f1fa","name":"flag: niue"},{"codepoint":"1f1f3 1f1ff","name":"flag: new zealand"},{"codepoint":"1f1f4 1f1f2","name":"flag: oman"},{"codepoint":"1f1f5 1f1e6","name":"flag: panama"},{"codepoint":"1f1f5 1f1ea","name":"flag: peru"},{"codepoint":"1f1f5 1f1eb","name":"flag: french polynesia"},{"codepoint":"1f1f5 1f1ec","name":"flag: papua new guinea"},{"codepoint":"1f1f5 1f1ed","name":"flag: philippines"},{"codepoint":"1f1f5 1f1f0","name":"flag: pakistan"},{"codepoint":"1f1f5 1f1f1","name":"flag: poland"},{"codepoint":"1f1f5 1f1f2","name":"flag: st. pierre & miquelon"},{"codepoint":"1f1f5 1f1f3","name":"flag: pitcairn islands"},{"codepoint":"1f1f5 1f1f7","name":"flag: puerto rico"},{"codepoint":"1f1f5 1f1f8","name":"flag: palestinian territories"},{"codepoint":"1f1f5 1f1f9","name":"flag: portugal"},{"codepoint":"1f1f5 1f1fc","name":"flag: palau"},{"codepoint":"1f1f5 1f1fe","name":"flag: paraguay"},{"codepoint":"1f1f6 1f1e6","name":"flag: qatar"},{"codepoint":"1f1f7 1f1ea","name":"flag: réunion"},{"codepoint":"1f1f7 1f1f4","name":"flag: romania"},{"codepoint":"1f1f7 1f1f8","name":"flag: serbia"},{"codepoint":"1f1f7 1f1fa","name":"flag: russia"},{"codepoint":"1f1f7 1f1fc","name":"flag: rwanda"},{"codepoint":"1f1f8 1f1e6","name":"flag: saudi arabia"},{"codepoint":"1f1f8 1f1e7","name":"flag: solomon islands"},{"codepoint":"1f1f8 1f1e8","name":"flag: seychelles"},{"codepoint":"1f1f8 1f1e9","name":"flag: sudan"},{"codepoint":"1f1f8 1f1ea","name":"flag: sweden"},{"codepoint":"1f1f8 1f1ec","name":"flag: singapore"},{"codepoint":"1f1f8 1f1ed","name":"flag: st. helena"},{"codepoint":"1f1f8 1f1ee","name":"flag: slovenia"},{"codepoint":"1f1f8 1f1ef","name":"flag: svalbard & jan mayen"},{"codepoint":"1f1f8 1f1f0","name":"flag: slovakia"},{"codepoint":"1f1f8 1f1f1","name":"flag: sierra leone"},{"codepoint":"1f1f8 1f1f2","name":"flag: san marino"},{"codepoint":"1f1f8 1f1f3","name":"flag: senegal"},{"codepoint":"1f1f8 1f1f4","name":"flag: somalia"},{"codepoint":"1f1f8 1f1f7","name":"flag: suriname"},{"codepoint":"1f1f8 1f1f8","name":"flag: south sudan"},{"codepoint":"1f1f8 1f1f9","name":"flag: são tomé & príncipe"},{"codepoint":"1f1f8 1f1fb","name":"flag: el salvador"},{"codepoint":"1f1f8 1f1fd","name":"flag: sint maarten"},{"codepoint":"1f1f8 1f1fe","name":"flag: syria"},{"codepoint":"1f1f8 1f1ff","name":"flag: eswatini"},{"codepoint":"1f1f9 1f1e6","name":"flag: tristan da cunha"},{"codepoint":"1f1f9 1f1e8","name":"flag: turks & caicos islands"},{"codepoint":"1f1f9 1f1e9","name":"flag: chad"},{"codepoint":"1f1f9 1f1eb","name":"flag: french southern territories"},{"codepoint":"1f1f9 1f1ec","name":"flag: togo"},{"codepoint":"1f1f9 1f1ed","name":"flag: thailand"},{"codepoint":"1f1f9 1f1ef","name":"flag: tajikistan"},{"codepoint":"1f1f9 1f1f0","name":"flag: tokelau"},{"codepoint":"1f1f9 1f1f1","name":"flag: timor-leste"},{"codepoint":"1f1f9 1f1f2","name":"flag: turkmenistan"},{"codepoint":"1f1f9 1f1f3","name":"flag: tunisia"},{"codepoint":"1f1f9 1f1f4","name":"flag: tonga"},{"codepoint":"1f1f9 1f1f7","name":"flag: turkey"},{"codepoint":"1f1f9 1f1f9","name":"flag: trinidad & tobago"},{"codepoint":"1f1f9 1f1fb","name":"flag: tuvalu"},{"codepoint":"1f1f9 1f1fc","name":"flag: taiwan"},{"codepoint":"1f1f9 1f1ff","name":"flag: tanzania"},{"codepoint":"1f1fa 1f1e6","name":"flag: ukraine"},{"codepoint":"1f1fa 1f1ec","name":"flag: uganda"},{"codepoint":"1f1fa 1f1f2","name":"flag: u.s. outlying islands"},{"codepoint":"1f1fa 1f1f3","name":"flag: united nations"},{"codepoint":"1f1fa 1f1f8","name":"flag: united states"},{"codepoint":"1f1fa 1f1fe","name":"flag: uruguay"},{"codepoint":"1f1fa 1f1ff","name":"flag: uzbekistan"},{"codepoint":"1f1fb 1f1e6","name":"flag: vatican city"},{"codepoint":"1f1fb 1f1e8","name":"flag: st. vincent & grenadines"},{"codepoint":"1f1fb 1f1ea","name":"flag: venezuela"},{"codepoint":"1f1fb 1f1ec","name":"flag: british virgin islands"},{"codepoint":"1f1fb 1f1ee","name":"flag: u.s. virgin islands"},{"codepoint":"1f1fb 1f1f3","name":"flag: vietnam"},{"codepoint":"1f1fb 1f1fa","name":"flag: vanuatu"},{"codepoint":"1f1fc 1f1eb","name":"flag: wallis & futuna"},{"codepoint":"1f1fc 1f1f8","name":"flag: samoa"},{"codepoint":"1f1fd 1f1f0","name":"flag: kosovo"},{"codepoint":"1f1fe 1f1ea","name":"flag: yemen"},{"codepoint":"1f1fe 1f1f9","name":"flag: mayotte"},{"codepoint":"1f1ff 1f1e6","name":"flag: south africa"},{"codepoint":"1f1ff 1f1f2","name":"flag: zambia"},{"codepoint":"1f1ff 1f1fc","name":"flag: zimbabwe"}]')}}); -//# sourceMappingURL=app.b39286ec.js.map \ No newline at end of file diff --git a/js/app.b39286ec.js.map b/js/app.b39286ec.js.map deleted file mode 100644 index 3b83aca..0000000 --- a/js/app.b39286ec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/unavailable.svg","webpack:///./src/assets/social-icons/twitter.svg","webpack:///./src/views/Home.vue","webpack:///./src/components/TheNavbar.vue","webpack:///./src/components/TheNavbar.vue?bbf1","webpack:///./src/components/TheMainContentFrame.vue","webpack:///./src/components/TheMainContentFrame.vue?dc4f","webpack:///./src/components/TheFooter.vue","webpack:///./src/components/TheFooter.vue?3cef","webpack:///./src/components/EmojiGrid.vue","webpack:///./src/components/EmojiGrid.vue?b79e","webpack:///./src/components/EmojiDownloadModal.vue","webpack:///./src/components/EmojiDownloadSubModal.vue","webpack:///./src/components/downloadForce.js","webpack:///./src/components/downloadResource.js","webpack:///./src/components/converterSvgToPng.js","webpack:///./src/components/EmojiDownloadSubModal.vue?79ea","webpack:///./src/components/EmojiDownloadModal.vue?37e1","webpack:///./src/components/SearchBar.vue","webpack:///./src/components/SearchBar.vue?5922","webpack:///./src/components/Pagination/PaginationIndicator.vue","webpack:///./src/components/Pagination/PaginationIndicatorButton.vue","webpack:///./src/components/Pagination/PaginationIndicatorButton.vue?d61b","webpack:///./src/components/Pagination/PaginationMobileButton.vue","webpack:///./src/components/Pagination/PaginationMobileButton.vue?c7ff","webpack:///./src/components/Pagination/PaginationIndicator.vue?7c90","webpack:///./src/views/Home.vue?f63c","webpack:///./src/views/Page404.vue","webpack:///./src/components/ErrorMessagePage.vue","webpack:///./src/components/ErrorMessagePage.vue?e564","webpack:///./src/views/Page404.vue?042d","webpack:///./src/main.js","webpack:///./src/assets/logo/logo-full-color-light.svg","webpack:///./src/assets/social-icons/github.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","navigation","searchText","label","paginatedEmojiList","filteredEmojiList","$refs","modal","openModal","$event","hiddenItems","products","currentPage","numberOfPages","ref","href","src","alt","as","open","aria-hidden","item","aria-current","current","undefined","components","Disclosure","DisclosureButton","DisclosurePanel","MenuIcon","XIcon","props","type","Array","required","validator","__exports__","target","product","codepoint","$emit","capitalize","toUpperCase","emits","methods","string","charAt","show","isOpen","closeModal","enter","enter-from","enter-to","leave","leave-from","leave-to","submodal","forceDownload","blob","filename","a","document","createElement","download","body","appendChild","click","remove","downloadResource","url","split","pop","fetch","headers","Headers","Origin","location","origin","then","response","blobUrl","URL","createObjectURL","catch","e","console","error","vector","pngFromURL","width","height","ogWidth","ogHeight","canvas","OffscreenCanvas","ctx","getContext","Canvg","from","resize","render","convertToBlob","pngUrl","TransitionRoot","TransitionChild","Dialog","DialogOverlay","DialogTitle","setup","code","this","downloadEmojiPngFromUrl","EmojiDownloadSubModal","fallbackImage","for","autocomplete","id","modelValue","placeholder","aria-label","content","setPageIndex","currentPageUserVersion","min-width","index","active","showPage","link","activityClass","minWidth","Number","Boolean","default","String","computed","ChevronLeftIcon","ChevronRightIcon","ChevronDoubleLeftIcon","ChevronDoubleRightIcon","PaginationIndicatorButton","PaginationMobileButton","TheNavbar","TheMainContentFrame","TheFooter","EmojiGrid","EmojiDownloadModal","SearchBar","PaginationIndicator","gridData","itemsPerPage","watch","filter","includes","toLowerCase","Math","floor","errorCode","header","description","ErrorMessagePage","routes","path","component","Home","Page404","router","createRouter","history","createWebHistory","createApp","use","mount"],"mappings":"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","file":"js/app.b39286ec.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/unavailable.f5da4bf5.svg\";","module.exports = __webpack_public_path__ + \"img/twitter.fb08dd7a.svg\";","\n\n","\n\n","import { render } from \"./TheNavbar.vue?vue&type=template&id=3ccf90cc\"\nimport script from \"./TheNavbar.vue?vue&type=script&lang=js\"\nexport * from \"./TheNavbar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./TheMainContentFrame.vue?vue&type=template&id=5d9ec06b\"\nimport script from \"./TheMainContentFrame.vue?vue&type=script&lang=js\"\nexport * from \"./TheMainContentFrame.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./TheFooter.vue?vue&type=template&id=c82ea92c\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=js\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./EmojiGrid.vue?vue&type=template&id=fee965c0\"\nimport script from \"./EmojiGrid.vue?vue&type=script&lang=js\"\nexport * from \"./EmojiGrid.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","\n\n\n","function forceDownload(blob, filename) {\n var a = document.createElement(\"a\");\n a.download = filename;\n a.href = blob;\n document.body.appendChild(a); // For Firefox\n a.click();\n a.remove();\n}\n\nexport default forceDownload","import forceDownload from \"./downloadForce.js\"\n\nfunction downloadResource(url, filename) {\n if (!filename) filename = url.split(\"\\\\\").pop().split(\"/\").pop();\n fetch(url, {\n headers: new Headers({\n Origin: location.origin,\n }),\n mode: \"cors\",\n })\n .then((response) => response.blob())\n .then((blob) => {\n let blobUrl = window.URL.createObjectURL(blob);\n forceDownload(blobUrl, filename);\n })\n .catch((e) => console.error(e));\n}\n\nexport default downloadResource;","import Canvg from 'canvg';\n\nlet vector = null;\n\nasync function pngFromURL(url, width, height, ogWidth = 72, ogHeight = 72) {\n // Create canvas with original SVG\n const canvas = new OffscreenCanvas(ogWidth, ogHeight);\n const ctx = canvas.getContext('2d');\n vector = await Canvg.from(ctx, url);\n\n // Rezise and render\n vector.resize(width, height, 'xMidYMid meet');\n await vector.render();\n\n // Get URL (pngUrl) for png\n const blob = await canvas.convertToBlob();\n const pngUrl = URL.createObjectURL(blob);\n return pngUrl;\n}\n\nexport default pngFromURL","import { render } from \"./EmojiDownloadSubModal.vue?vue&type=template&id=7c7fa825\"\nimport script from \"./EmojiDownloadSubModal.vue?vue&type=script&lang=js\"\nexport * from \"./EmojiDownloadSubModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./EmojiDownloadModal.vue?vue&type=template&id=7315f702\"\nimport script from \"./EmojiDownloadModal.vue?vue&type=script&lang=js\"\nexport * from \"./EmojiDownloadModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./SearchBar.vue?vue&type=template&id=0686aa19\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","\n\n\n","import { render } from \"./PaginationIndicatorButton.vue?vue&type=template&id=66c4c3f9\"\nimport script from \"./PaginationIndicatorButton.vue?vue&type=script&lang=js\"\nexport * from \"./PaginationIndicatorButton.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./PaginationMobileButton.vue?vue&type=template&id=11fcc12e\"\nimport script from \"./PaginationMobileButton.vue?vue&type=script&lang=js\"\nexport * from \"./PaginationMobileButton.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./PaginationIndicator.vue?vue&type=template&id=0495ba2c\"\nimport script from \"./PaginationIndicator.vue?vue&type=script&lang=js\"\nexport * from \"./PaginationIndicator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Home.vue?vue&type=template&id=277811d2\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","\n\n","import { render } from \"./ErrorMessagePage.vue?vue&type=template&id=1b8235d8\"\nimport script from \"./ErrorMessagePage.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorMessagePage.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Page404.vue?vue&type=template&id=2bdff92e\"\nimport script from \"./Page404.vue?vue&type=script&lang=js\"\nexport * from \"./Page404.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/gustav/dev/twemoji-utils/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue/dist/vue.esm-bundler'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport Home from '@/views/Home.vue'\nimport Page404 from '@/views/Page404.vue'\nimport '@/index.css'\nimport '@/assets/tailwind.css'\n\n\nconst routes = [\n { path: '/', component: Home },\n { path: '/:pathMatch(.*)*', component: Page404 }\n]\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n})\n\n\ncreateApp({})\n .use(router)\n .mount('#app')\n","module.exports = __webpack_public_path__ + \"img/logo-full-color-light.9c76f026.svg\";","module.exports = __webpack_public_path__ + \"img/github.93125ad9.svg\";"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-vendors.3bec54da.js.map b/js/chunk-vendors.3bec54da.js.map deleted file mode 100644 index 81c4f5f..0000000 --- a/js/chunk-vendors.3bec54da.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/canvg/lib/index.es.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/@headlessui/vue/dist/utils/match.esm.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/@headlessui/vue/dist/utils/dom.esm.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/vue-loader-v16/dist/exportHelper.js","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/vue/dist/vue.runtime.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@headlessui/vue/dist/internal/open-closed.esm.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@heroicons/vue/outline/esm/MenuIcon.js","webpack:///./node_modules/@heroicons/vue/outline/esm/XIcon.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/@headlessui/vue/dist/utils/render.esm.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/@headlessui/vue/dist/hooks/use-id.esm.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/@headlessui/vue/dist/hooks/use-window-event.esm.js","webpack:///./node_modules/@headlessui/vue/dist/internal/dom-containers.esm.js","webpack:///./node_modules/@headlessui/vue/dist/utils/focus-management.esm.js","webpack:///./node_modules/@headlessui/vue/dist/hooks/use-focus-trap.esm.js","webpack:///./node_modules/@headlessui/vue/dist/hooks/use-inert-others.esm.js","webpack:///./node_modules/@headlessui/vue/dist/internal/stack-context.esm.js","webpack:///./node_modules/@headlessui/vue/dist/internal/portal-force-root.esm.js","webpack:///./node_modules/@headlessui/vue/dist/components/portal/portal.esm.js","webpack:///./node_modules/@headlessui/vue/dist/components/description/description.esm.js","webpack:///./node_modules/@headlessui/vue/dist/components/dialog/dialog.esm.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/@headlessui/vue/dist/keyboard.esm.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/@headlessui/vue/dist/components/transitions/utils/transition.esm.js","webpack:///./node_modules/@headlessui/vue/dist/utils/once.esm.js","webpack:///./node_modules/@headlessui/vue/dist/utils/disposables.esm.js","webpack:///./node_modules/@headlessui/vue/dist/components/transitions/transition.esm.js","webpack:///./node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","webpack:///./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","webpack:///./node_modules/vue/dist/vue.esm-bundler.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/@heroicons/vue/solid/esm/ChevronDoubleLeftIcon.js","webpack:///./node_modules/@heroicons/vue/solid/esm/ChevronDoubleRightIcon.js","webpack:///./node_modules/@heroicons/vue/solid/esm/ChevronLeftIcon.js","webpack:///./node_modules/@heroicons/vue/solid/esm/ChevronRightIcon.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@headlessui/vue/dist/components/disclosure/disclosure.esm.js","webpack:///./node_modules/@headlessui/vue/dist/hooks/use-resolve-button-type.esm.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/@headlessui/vue/dist/_virtual/_rollupPluginBabelHelpers.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","uncurryThis","aCallable","bind","fn","that","undefined","apply","arguments","classof","toIndexedObject","$getOwnPropertyNames","f","arraySlice","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","DESCRIPTORS","call","propertyIsEnumerableModule","createPropertyDescriptor","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","toLength","obj","length","global","isArray","isConstructor","isObject","SPECIES","Array","originalArray","C","constructor","prototype","toObject","floor","Math","charAt","replace","stringSlice","slice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","n","fails","createElement","defineProperty","get","a","IS_PURE","ITERATOR","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","URLSearchParams","username","host","hash","argument","compressSpaces","trimLeft","trimRight","toNumbers","matches","map","parseFloat","allUppercase","normalizeAttributeName","name","toLowerCase","parseExternalUrl","urlMatch","exec","normalizeColor","color","startsWith","rgbParts","normalizedColor","num","isFloat","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","Property","document","this","isNormalizedColor","separator","getString","trim","split","zeroIsValue","regexp","isString","hasValue","asString","endsWith","def","rootEmSize","emSize","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","getNumber","min","computeSize","max","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","len","commas","i","ok","alpha","toRGBA","ViewPort","viewPorts","width","height","push","pop","getCurrent","d","Point","x","y","point","defaultValue","scale","path","points","pathPoints","atan2","transform","xp","yp","Mouse","working","events","eventElements","onClick","onMouseMove","canvas","onclick","onmousemove","style","cursor","_ref","run","parent","_ref2","isPointInPath","boundingBox","_ref3","isPointInBox","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","mapXY","clientX","clientY","type","eventTarget","defaultWindow","defaultFetch$1","fetch","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","Promise","resolve","every","_","resolveReady","strokeStyle","lineCap","lineJoin","miterLimit","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","translate","getPixels","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreMouse","ignoreAnimation","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","isReady","render","now","Date","then","tick","shouldUpdate","runEvents","start","cancel","stop","reduce","animation","update","hasEvents","clear","setCurrent","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","isNaN","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","DOMParser","Parser","resource","_this","parseFromString","load","xml","parser","checkDocument","err","parserError","getElementsByTagName","Error","textContent","_this2","response","text","Translate","parse","applyTransform","Rotate","rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","getRadians","rad","cos","sin","Scale","scaleSize","parseScale","Matrix","matrix","b","c","e","g","h","det","Skew","skew","super","SkewX","tan","SkewY","parseTransforms","parseTransform","Transform","transforms","data","TransformType","transformTypes","transformOriginXProperty","transformOriginYProperty","unapply","applyToPoint","skewX","skewY","Element","node","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","from","attribute","nodeName","addStylesFromStyleDefinition","id","childNodes","childNode","addChild","textNode","createTextNode","getText","createIfNotExists","attr","_attr","empty","skipAncestors","parentStyle","_style","save","mask","applyEffects","getValue","filter","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","ignoreChildTypes","includes","styleClasses","some","styleClass","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","process","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","set","part","variants","weights","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","p0","p1","p2","p3","forX","b2ac","t1","addX","sumCubic","addY","t2","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","bezierCurveAdd","cp1x","cp1y","cp2x","cp2y","addBezierCurve","PathParser","control","current","command","commands","previousCommand","angles","xProp","yProp","makeAbsolute","getPoint","CURVE_TO","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ox","oy","relative","priorTo","angleTo","addMarkerAngle","j","RenderedElement","modifiedEmSizeStack","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","isUrlDefinition","fillStyle","getFillStyleDefinition","_fillStyle","_fillStyle2","addOpacity","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","toString","isPixels","globalAlpha","calculateOpacity","popEmSize","PathElement","pathParser","reset","isEnd","next","MOVE_TO","pathM","LINE_TO","pathL","HORIZ_LINE_TO","pathH","VERT_LINE_TO","pathV","pathC","pathS","pathQ","pathT","ARC","pathA","CLOSE_PATH","pathZ","getMarkerPoints","getMarkerAngles","markers","checkPath","fillRuleStyleProp","fill","setTransform","stroke","getMarkers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","getAsCurrentPoint","addMarker","controlPoint","getAsControlPoint","currentPoint","bezierCurveTo","getReflectedControlPoint","addQuadraticCurve","quadraticCurveTo","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","r","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","getTextBaseline","dxAttr","dyAttr","getAnchorDelta","getTElementBoundingBox","initializeCoordinates","childBoundingBox","getChildBoundingBox","addBoundingBox","inheritFontSize","getFontSize","measureText","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","parentNode","index","indexOf","lastIndex","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","reverse","dx","getGlyph","lw","fillText","strokeText","startI","textAnchor","measureTextRecursive","textParent","xAttr","yAttr","_width","adjustChildCoordinates","measure","measureTargetText","targetText","_measure","TSpanElement","getTextFromNode","TextNode","SVGElement","root","_this$node$parentNode","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","setViewBox","removeCurrent","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","rx","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","getPoints","PolylineElement","parsePath","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","createCanvas","patternCtx","getContext","Reflect","deleteProperty","pattern","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","getGradientUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","getMilliseconds","maxDuration","to","values","valuesAttr","attributeType","attributeName","progress","getProgress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","p","lb","ub","ceil","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","object","enumerableOnly","keys","getOwnPropertySymbols","sym","enumerable","_objectSpread$2","target","source","getOwnPropertyDescriptors","defineProperties","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","getLetterSpacingAt","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","findSegmentToFitChar","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","end","inc","abs","getPointOnEllipticalArc","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","currentT","getPointOnLine","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","step","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","dataUriRegex","ImageElement","loaded","isSvg","images","loadSvg","loadImage","image","createImage","console","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","props","cssProp","substr","srcs","src","UseElement","tempSvg","oldParent","cachedElement","imGet","img","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","_x","_y","srcData","getImageData","nr","ng","nb","na","putImageData","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","noop","ClipPathElement","contextProto","getPrototypeOf","elementTransform","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","appendChild","removeChild","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","options","createDocumentElement","_arguments","fromString","ready","_arguments2","baseOptions","resize","$RegExp","RegExp","re","groups","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","getMethod","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","maybeCallNative","internalSplit","limit","string","lim","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","separatorCopy","splitter","S","res","done","unicodeMatching","q","A","z","$","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","STRICT_METHOD","CHROME_BUG","proto","forced","callbackfn","isCallable","TypeError","R","isPrototypeOf","Prototype","hasOwnProperty","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","self","args","V8_VERSION","METHOD_NAME","array","foo","tryToString","isArrayIteratorMethod","lengthOfArrayLike","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterator","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","toIntegerOrInfinity","integer","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","PROPER_FUNCTION_NAME","PROPER","$toString","regExpFlags","TO_STRING","RegExpPrototype","n$ToString","getFlags","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","Constructor","configurable","un$Reverse","kind","innerResult","innerError","EOF","USE_NATIVE_URL","anInstance","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","setInternalState","getInternalURLState","getterFor","getInternalSearchParamsState","getState","NativeURL","parseInt","numberToString","shift","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","radix","number","ipv4","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","state","buffer","seenAt","seenBracket","seenPasswordToken","port","query","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","URLPrototype","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","accessorDescriptor","getter","setter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","FunctionPrototype","Function","un$StartsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","writable","location","defer","channel","html","IS_IOS","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","runner","listener","post","postMessage","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","version","Deno","versions","v8","Iterators","objectKeys","Properties","defineIterator","STRING_ITERATOR","getInternalState","iterated","setupDevtoolsPlugin","pluginDescriptor","setupFn","hook","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","list","__VUE_DEVTOOLS_PLUGINS__","proxiedTarget","emit","valueOf","platform","arch","execPath","title","pid","browser","env","argv","binding","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","propertyIsEnumerable","create","UNSCOPABLES","ArrayPrototype","MATCH","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","aConstructor","defaultConstructor","pref","symbol","Symbol","$trim","forcedStringTrimMethod","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","createProperty","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","getSubstitution","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","nativeReplace","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","store","mode","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","lookup","returnValue","_len","_key","captureStackTrace","whitespaces","whitespace","ltrim","rtrim","TYPE","color_string","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","example","bits","processor","channels","toRGB","toHex","getHelpXML","examples","sc","setAttribute","list_item","list_color","RGBColor","example_div","cssText","list_item_value","Set","devtools","devtoolsNotInstalled","setDevtoolsHook","enabled","navigator","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","emit$1","instance","rawArgs","vnode","isModelListener","modelArg","modifiersKey","handlerName","handler","callWithAsyncErrorHandling","onceHandler","emitted","normalizeEmitsOptions","comp","appContext","asMixin","cache","emitsCache","cached","raw","emits","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","renderCache","setupState","inheritAttrs","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","handleError","createVNode","Comment","filterModelListeners","cloneVNode","dirs","transition","filterSingleRoot","singleRoot","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","SuspenseImpl","n1","n2","container","parentComponent","parentSuspense","isSVG","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalize","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","o","hiddenContainer","suspense","pendingBranch","ssContent","deps","ssFallback","setActiveBranch","um","unmount","newBranch","newFallback","activeBranch","isInFallback","isHydrating","isSameVNodeType","pendingId","effects","timeout","fallback","move","remove","isUnmounted","resume","delayEnter","afterLeave","hasUnresolvedAncestor","queuePostFlushCb","fallbackVNode","mountFallback","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","catch","asyncSetupResult","suspenseId","asyncResolved","handleSetupResult","placeholder","doRemove","hydrateNode","isSlotChildren","normalizeSuspenseSlot","default","block","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","provide","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","hooks","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","isKeepAlive","clone","keepComment","ret","keyedFragmentCount","Fragment","defineComponent","setup","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","retry","thisRequest","userRetry","userFail","__esModule","toStringTag","createInnerComp","delayed","queueJob","ref","__isKeepAlive","KeepAliveImpl","include","exclude","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","delete","activate","queuePostRenderEffect","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","watch","flush","deep","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","__asyncResolved","cachedVNode","add","size","KeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","setCurrentInstance","unsetCurrentInstance","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","shouldCacheAccess","applyOptions","resolveMergedOptions","publicThis","beforeCreate","dataOptions","computed","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","directives","filters","checkDuplicateProperties","resolveInjections","unwrapInjectedRef","methodHandler","opt","createWatcher","registerLifecycleHook","register","_hook","exposed","unwrapRef","normalizeInject","createPathGetter","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","mergeOptions","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","initProps","isStateful","isSSR","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","findIndex","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","internalInstance","bindings","modifiers","traverse","oldValue","invokeDirectiveHook","oldBindings","createAppContext","app","isNativeTag","performance","globalProperties","errorHandler","warnHandler","compilerOptions","WeakMap","uid","createAppAPI","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","_instance","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","getExposeProxy","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","createHydrationFunctions","mt","mountComponent","patchProp","nextSibling","insert","createComment","hasChildNodes","flushPostFlushCbs","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","previousSibling","lastChild","createTextVNode","hydrateChildren","setRef","forcePatchValue","vnodeHooks","onVnodeBeforeMount","innerHTML","parentVNode","fragmentSlotScopeIds","isFragment","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","is","mountChildren","unmountChildren","scopeId","needCallTransitionHooks","beforeEnter","enter","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","class","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","registerDep","updateComponentPreRender","invalidateJob","componentUpdateFn","bu","originNext","effect","allowRecurse","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","scope","flushPreFlushCbs","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","leave","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","active","_vnode","mc","pc","pbc","createApp","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","refs","doSet","callWithErrorHandling","shallow","ch1","ch2","arr","arrI","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","resolveTarget","select","targetSelector","TeleportImpl","querySelector","mainAnchor","targetAnchor","mount","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","disableTracking","vnodeArgsTransformer","setupBlock","createElementBlock","createBaseVNode","createBlock","__v_isVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","_createVNode","cloned","isClassComponent","__vccOpts","guardReactiveProps","klass","extraProps","mergeRef","mergedProps","mergeProps","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","memo","slot","slotFlag","toMerge","existing","incoming","renderList","renderItem","item","createSlots","dynamicSlots","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","vnodes","toHandlers","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$slots","$refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","$watch","instanceWatch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","exposeProxy","setupContext","bc","rtg","rtc","ec","sp","ce","on","off","compile","installWithProxy","setupResult","setupStatefulComponent","Proxy","createSetupContext","resolvedResult","finishComponentSetup","__ssrInlineRender","ssrRender","registerRuntimeCompiler","_compile","_rc","isRuntimeOnly","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","classifyRE","classify","toUpperCase","displayName","formatComponentName","isRoot","__file","inferFromRegistry","stack","warn","msg","appWarnHandler","trace","getComponentTrace","warnArgs","formatTrace","currentVNode","normalizedStack","last","recurseCount","parentInstance","logs","entry","formatTraceEntry","postfix","close","formatProps","formatProp","JSON","stringify","throwInDev","contextVNode","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","findInsertionIndex","middle","middleJobId","getId","job","splice","queueFlush","flushJobs","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","seen","parentJob","deduped","Infinity","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","immediate","onTrack","onTrigger","cleanup","forceTrigger","isMultiSource","_shallow","onInvalidate","baseGetter","onStop","scheduler","segments","defineProps","defineEmits","defineExpose","withDefaults","defaults","useSlots","useAttrs","mergeDefaults","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","propsOrChildren","ssrContextKey","useSSRContext","initCustomFormatter","withMemo","isMemoSame","_ssrUtils","ssrUtils","resolveFilter","compatUtils","bitmap","getDescriptor","EXISTS","CONFIGURABLE","_typeof","_classCallCheck","mulTable","shgTable","getImageDataFromCanvas","topX","topY","getElementById","processCanvasRGBA","radius","imageData","processImageDataRGBA","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_p2","maxInt","tMin","tMax","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","RangeError","fromCharCode","charCodeAt","ucs2decode","extra","digitToBasic","digit","adapt","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","IndexedObject","$assign","B","alphabet","T","dom","_ref$value$$el","CONVERT_TO_STRING","pos","first","arraySpeciesConstructor","inspectSource","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","enforce","wmget","wmhas","wmset","metadata","facade","STATE","sfc","hasSymbol","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","applyToParams","params","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseQuery","currentLocation","searchPos","hashPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","toPosition","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","docRect","getBoundingClientRect","elRect","behavior","top","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","scrollTo","getScrollKey","history","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","listeners","teardowns","pauseState","popStateHandler","fromState","direction","forward","back","unknown","pauseListeners","listen","callback","teardown","beforeUnloadListener","replaceState","destroy","removeEventListener","buildState","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","meta","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","strict","REGEX_CHARS_RE","tokensToParser","extraOptions","score","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","message","subPattern","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","tokens","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","paramsFromLocation","find","parentMatcher","mergeMetaFields","redirect","normalizeRecordProps","instances","leaveGuards","updateGuards","enterCallbacks","propsObject","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","hasLeadingIM","searchParam","eqPos","normalizeQuery","normalizedQuery","useCallbacks","handlers","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","required","activeClass","exactActiveClass","custom","ariaCurrentValue","link","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","RouterLink","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","depth","matchedRouteRef","viewRef","oldInstance","oldName","matchedRoute","ViewComponent","currentName","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","handleScroll","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","_from","readyHandlers","errorHandlers","started","installedApps","beforeEach","beforeResolve","afterEach","$router","reactiveRoute","unmountApp","promise","recordFrom","recordTo","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","getTime","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","TEMPLATE","simple","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","documentCreateElement","classList","DOMTokenListPrototype","activeXDocument","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","F","NullProtoObject","ActiveXObject","domain","State","Context","hasOpenClosed","useOpenClosed","useOpenClosedProvider","FunctionName","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","svgNS","doc","staticTemplateCache","nodeOps","insertBefore","tag","createElementNS","multiple","nodeValue","_value","before","wrapper","patchClass","transitionClasses","_vtc","removeAttribute","className","patchStyle","isCssString","setStyle","currentDisplay","importantRE","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","_getNow","skipTimestampCheck","createEvent","timeStamp","ffMatch","cachedNow","getNow","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydate","Comp","VueCustomElement","VueElement","initialProps","defineSSRCustomElement","BaseClass","HTMLElement","_def","_connected","_resolved","_numberProps","shadowRoot","attachShadow","_resolveDef","_setAttr","MutationObserver","mutations","observe","hasOptions","rawKeys","numberProps","_setProp","_getProp","_applyStyles","_update","asyncDef","shouldReflect","dispatchEvent","CustomEvent","detail","useCssModule","modules","mod","useCssVars","setVars","setVarsOnVNode","ob","childList","disconnect","vars","setVarsOnNode","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","offsetHeight","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","webkitTransform","transitionDuration","_moveCb","propertyName","cssTransitionProps","TransitionGroup","oldPos","newPos","getModelAssigner","onCompositionStart","composing","onCompositionEnd","trigger","initEvent","vModelText","lazy","_assign","castToNumber","domValue","activeElement","vModelCheckbox","modelValue","_modelValue","elementValue","checked","found","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","selected","setSelected","_binding","isMultiple","option","optionValue","selectedIndex","vModelDynamic","callModelHook","modelToUse","initVModelForSSR","getSSRProps","systemModifiers","modifierGuards","stopPropagation","prevent","ctrl","alt","right","exact","withModifiers","keyNames","esc","space","up","down","withKeys","eventKey","vShow","_vod","setDisplay","initVShowForSSR","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","propertyKey","quot","functionToString","un$EndsWith","endPosition","random","regexpFlags","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","feature","detection","POLYFILL","NATIVE","_cache","xmlns","_defineProperty","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","mark","__proto__","awrap","async","iter","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","redefineAll","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","serialize","parseSearchParams","validateArgumentsLength","passed","URLSearchParamsIterator","URLSearchParamsConstructor","URLSearchParamsPrototype","entryIterator","entryNext","init","append","getAll","boundFunction","headersHas","headersSet","wrapRequestOptions","headers","RequestConstructor","Request","createHTML","forcedStringHTMLMethod","usingIterator","$defineProperty","Attributes","makeMap","expectsLowerCase","PatchFlagNames","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","range","generateCodeFrame","lines","newlineSequences","count","line","repeat","lineLength","newLineSeqLength","pad","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","parseStringStyle","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","normalizeProps","HTML_TAGS","SVG_TAGS","VOID_TAGS","isHTMLTag","isSVGTag","isVoidTag","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","objectToString","isFunction","__v_isRef","isMap","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","toTypeString","isSymbol","isPromise","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","hit","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","toNumber","_globalThis","getGlobalThis","toPrimitive","Features","RenderStrategy","_ref$visible","visible","_ref$features","None","main","_render","_main$props$unmount","_match","strategy","Unmount","Hidden","hidden","_omit","omit","as","passThroughProps","other","isValidElement","keysToOmit","_step","_iterator","activeEffectScope","effectScopeStack","EffectScope","detached","cleanups","scopes","fromParent","effectScope","recordEffectScope","getCurrentScope","onScopeDispose","createDep","dep","w","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","enableTracking","cleanupEffect","resetTracking","_effect","shouldTrack","trackStack","pauseTracking","track","isTracking","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","oldTarget","triggerEffects","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","isReadonly","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","createSetter","shallowSet","hadKey","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","get$1","isShallow","rawTarget","rawKey","toReadonly","toReactive","has$1","set$1","deleteEntry","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isReactive","isProxy","markRaw","trackRefValue","triggerRefValue","newVal","createRef","shallowRef","rawValue","RefImpl","_rawValue","triggerRef","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","toRefs","toRef","ObjectRefImpl","_object","ComputedRefImpl","_setter","_dirty","getterOrOptions","debugOptions","onlyGetter","cRef","NATIVE_SYMBOL","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","$forEach","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","SymbolPrototype","QObject","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","names","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","hint","generateId","useId","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","inheritIfRequired","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","maxCode","digits","NumberWrapper","error1","error2","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","dotAll","mergeSort","comparefn","insertionSort","merge","llength","rlength","lindex","rindex","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","head","notify","toggle","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","characterData","task","USE_SYMBOL_AS_UID","symbolFor","createWellKnownSymbol","withoutSetter","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","filterReject","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","useWindowEvent","contains","containers","Focus","FocusResult","Direction","FocusableMode","focusableSelector","getFocusableElements","querySelectorAll","focusElement","focus","preventScroll","focusIn","First","Next","Previous","Last","startIndex","focusOptions","NoScroll","total","nextIdx","WrapAround","Underflow","Overflow","hasAttribute","Success","useFocusTrap","restoreElement","previousActiveElement","handleFocus","initialFocus","couldFocus","Tab","_step2","_iterator2","previous","toElement","CHILDREN_SELECTOR","interactables","originals","inert","original","useInertOthers","interactable","_step3","_iterator3","_step4","_iterator4","_element","StackMessage","StackContext","useStackContext","useElemenStack","domElement","AddElement","RemoveElement","useStackProvider","onUpdate","parentUpdate","ForcePortalRootContext","usePortalRoot","ForcePortalRoot","getPortalRoot","existingRoot","Portal","forcePortalRoot","groupContext","PortalGroupContext","myTarget","_myTarget$value$paren","parentElement","propsWeControl","PortalGroup","api","DescriptionContext","useDescriptions","_temp","_ref$slot","_ref$name","_ref$props","descriptionIds","DialogStates","DialogContext","useDialogContext","Missing","Dialog","_close","role","dialogState","Open","titleId","describedby","handleClick","_this$$props","dialogRef","usesOpenClosedState","Closed","hasOpen","internalDialogRef","focusTrapOptions","_match2","setTitleId","Escape","paddingRight","scrollbarWidth","innerWidth","observer","IntersectionObserver","boundingClientRect","DialogOverlay","DialogTitle","ordinaryToPrimitive","exoticToPrim","vendors","suffix","raf","caf","_now","cp","polyfill","cancelAnimationFrame","SHARED","non","Keys","$IndexOf","un$IndexOf","NEGATIVE_ZERO","searchElement","$includes","addToUnscopables","newPromiseCapability","promiseCapability","cX","cY","phi1","phi2","N","E","M","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","maxY","DRAWING_COMMANDS","U","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","xSymmetry","ySymmetry","annotateArcs","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","SyntaxError","getBounds","aFunction","namespace","NASHORN_BUG","1","aPossiblePrototype","CORRECT_SETTER","TAG","Pebble","IS_RIGHT","SHAM","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","check","func","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","paths","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","desc","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","Arguments","callBind","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","iterate","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","reason","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","PromiseCapability","$$resolve","$$reject","Reason","once","disposables","_requestAnimationFrame","_setTimeout","timer","clearTimeout","dispose","addClasses","_node$classList","classes","removeClasses","_node$classList2","_len2","_key2","waitForTransition","_getComputedStyle","transitionDelay","_map","_value$split$filter$m","_value$split$filter$m2","resolvedValue","durationMs","delaysMs","Finished","Cancelled","entered","_done","splitClasses","TreeStates","TransitionContext","hasTransitionContext","useTransitionContext","useParentNesting","NestingContext","hasChildren","bag","Visible","useNesting","transitionableChildren","unregister","childId","TransitionChildRenderFeatures","TransitionChild","show","enterFrom","enterTo","leaveFrom","leaveTo","afterEnter","beforeLeave","renderAsRoot","TransitionRoot","rest","passthroughProps","_ref4","_useTransitionContext","_useParentNesting","initial","isTransitioning","nesting","enterClasses","enterFromClasses","enterToClasses","enteredClasses","leaveClasses","leaveFromClasses","leaveToClasses","executeTransition","skip","isEmptyDOMNode","_oldValues","_newValues","_match3","_this$$props2","sharedProps","_match4","nestingBag","transitionBag","defaultOnError","defaultOnWarn","createCompilerError","messages","additionalMessage","TELEPORT","SUSPENSE","KEEP_ALIVE","BASE_TRANSITION","OPEN_BLOCK","CREATE_BLOCK","CREATE_ELEMENT_BLOCK","CREATE_VNODE","CREATE_ELEMENT_VNODE","CREATE_COMMENT","CREATE_TEXT","CREATE_STATIC","RESOLVE_COMPONENT","RESOLVE_DYNAMIC_COMPONENT","RESOLVE_DIRECTIVE","RESOLVE_FILTER","WITH_DIRECTIVES","RENDER_LIST","RENDER_SLOT","CREATE_SLOTS","TO_DISPLAY_STRING","MERGE_PROPS","NORMALIZE_CLASS","NORMALIZE_STYLE","NORMALIZE_PROPS","GUARD_REACTIVE_PROPS","TO_HANDLERS","CAMELIZE","CAPITALIZE","TO_HANDLER_KEY","SET_BLOCK_TRACKING","PUSH_SCOPE_ID","POP_SCOPE_ID","WITH_CTX","UNREF","IS_REF","WITH_MEMO","IS_MEMO_SAME","helperNameMap","registerRuntimeHelpers","helpers","locStub","column","createRoot","hoists","imports","temps","codegenNode","createVNodeCall","isBlock","isComponent","helper","getVNodeBlockHelper","inSSR","getVNodeHelper","createArrayExpression","createObjectExpression","createObjectProperty","createSimpleExpression","isStatic","constType","createCompoundExpression","createCallExpression","callee","createFunctionExpression","returns","newline","isSlot","createConditionalExpression","consequent","alternate","createCacheExpression","createBlockStatement","isStaticExp","isBuiltInType","expected","isCoreComponent","nonIdentifierRE","isSimpleIdentifier","validFirstIdentCharRE","validIdentCharRE","whitespaceRE","isMemberExpressionBrowser","stateStack","currentOpenBracketCount","currentOpenParensCount","currentStringType","isMemberExpression","getInnerRange","newLoc","advancePositionWithClone","numberOfCharacters","advancePositionWithMutation","linesCount","lastNewLinePos","findDir","allowEmpty","exp","findProp","dynamicOnly","isBindKey","hasDynamicKeyVBind","isText","isVSlot","isTemplateNode","tagType","isSlotOutlet","ssr","propsHelperSet","getUnnormalizedProps","callPath","injectProp","propsWithInjection","originalProps","parentCall","alreadyExists","propKeyName","toValidAssetId","getMemoedVNodeCall","makeBlock","removeHelper","getCompatValue","compatConfig","isCompatEnabled","checkCompatEnabled","decodeRE","decodeMap","gt","lt","amp","apos","defaultParserOptions","getNamespace","getTextMode","isPreTag","decodeEntities","rawText","onWarn","comments","baseParse","createParserContext","getCursor","parseChildren","getSelection","rawOptions","originalSource","inPre","inVPre","ancestors","ns","nodes","parseInterpolation","emitError","parseComment","parseBogusComment","parseCDATA","advanceBy","parseTag","parseElement","isSpecialTemplateDirective","parseText","pushNode","removedWhitespace","shouldCondense","prevIndex","nestedIndex","contentStart","closeIndex","wasInPre","wasInVPre","isPreBoundary","isVPreBoundary","isSelfClosing","inlineTemplateProp","startsWithEndTagOpen","advanceSpaces","currentSource","parseAttributes","isBuiltInComponent","attributeNames","parseAttribute","nameSet","parseAttributeValue","isPropShorthand","dirName","lastIndexOf","getNewPosition","isQuoted","valueLoc","quote","endIndex","parseTextData","unexpectedChars","innerStart","innerEnd","rawContentLength","rawContent","preTrimContent","endOffset","endTokens","walk","isSingleElementRoot","doNotHoistNode","canStringify","originalCount","hoistedCount","constantType","getConstantType","hoist","getPatchFlag","getGeneratedPropsConstantType","getNodeProps","contentType","vSlot","branches","transformHoist","constantCache","returnType","generatedPropsType","childType","expType","allowHoistedHelperSet","getConstantTypeOfHelperCall","keyType","valueType","createTransformContext","filename","prefixIdentifiers","hoistStatic","cacheHandlers","nodeTransforms","directiveTransforms","expressionPlugins","slotted","ssrCssVars","bindingMetadata","inline","isTS","nameMatch","identifiers","vFor","vPre","vOnce","currentNode","childIndex","inVOnce","currentCount","removalIndex","onNodeRemoved","identifier","hoisted","traverseNode","createRootCodegen","traverseChildren","nodeRemoved","exitFns","onExit","createStructuralDirectiveTransform","PURE_ANNOTATION","createCodegenContext","ast","sourceMap","optimizeImports","runtimeGlobalName","runtimeModuleName","ssrRuntimeModuleName","indentLevel","pure","withoutNewLine","generate","onContextCreated","indent","deindent","hasHelpers","useWithBlock","preambleContext","genFunctionPreamble","functionName","signature","genAssets","genNode","preamble","VueBinding","aliasHelper","staticHelpers","genHoists","assets","resolver","genNodeListAsArray","multilines","genNodeList","comma","genText","genExpression","genInterpolation","genCompoundExpression","genComment","genVNodeCall","genCallExpression","genObjectExpression","genArrayExpression","genFunctionExpression","genConditionalExpression","genCacheExpression","genExpressionAsPropertyKey","callHelper","genNullableArgs","needNewline","needsParens","isNested","transformIf","processIf","ifNode","siblings","sibling","createCodegenNodeForBranch","parentCondition","getParentCondition","processCodegen","createIfBranch","replaceNode","removeNode","userKey","keyIndex","createChildrenCodegenNode","keyProperty","needFragmentWrapper","vnodeCall","transformFor","processFor","forNode","renderExp","keyProp","keyExp","isStableFragment","fragmentFlag","childBlock","isTemplate","slotOutlet","loop","createForLoopParams","parseResult","helperString","parseForExpression","addIdentifiers","removeIdentifiers","valueAlias","keyAlias","objectIndexAlias","forAliasRE","forIteratorRE","stripParensRE","inMatch","LHS","RHS","createAliasExpression","valueContent","trimmedOffset","iteratorMatch","keyContent","keyOffset","indexContent","memoArgs","createParamsList","defaultFallback","trackSlotScopes","buildClientSlotFn","buildSlots","buildSlotFn","slotsProperties","hasDynamicSlots","onComponentSlot","hasTemplateSlots","hasNamedDefaultSlot","implicitDefaultChildren","seenSlotNames","slotElement","slotDir","slotChildren","slotLoc","slotName","slotProps","dirLoc","staticSlotName","slotFunction","vIf","vElse","buildDynamicSlot","conditional","buildDefaultSlotProperty","isNonWhitespaceContent","hasForwardedSlots","directiveImportMap","transformElement","vnodeTag","resolveComponentType","isDynamicComponent","vnodeProps","vnodeChildren","vnodePatchFlag","vnodeDynamicProps","dynamicPropNames","vnodeDirectives","shouldUseBlock","propsBuildResult","buildProps","buildDirectiveArgs","shouldBuildAsSlots","hasDynamicTextChild","stringifyDynamicPropNames","isExplicitDynamic","isComponentTag","isProp","isDir","builtIn","elementLoc","mergeArgs","runtimeDirectives","hasRef","hasClassBinding","hasStyleBinding","hasHydrationEventBinding","hasDynamicKeys","hasVnodeHook","analyzePatchFlag","isEventHandler","valueNode","isVBind","isVOn","dedupeProperties","directiveTransform","needRuntime","propsExpression","classKeyIndex","styleKeyIndex","hasDynamicKey","isHandlerKey","classProp","knownProps","dirArgs","trueExpression","modifier","propsNamesString","transformSlotOutlet","processSlotOutlet","slotArgs","expectedLen","nonNameProps","fnExpRE","transformOn","augmentor","eventName","shouldCache","isMemberExp","isInlineStatement","hasMultipleStatements","transformBind","_node","injectPrefix","prefix","transformText","callArgs","WeakSet","transformOnce","transformModel","createTransformProps","rawExp","expString","maybeRef","propName","assignmentExp","eventArg","validDivisionCharRE","transformFilter","rewriteFilter","parseFilter","expression","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","seen$1","transformMemo","getBaseTransformPreset","model","baseCompile","isModuleMode","noopDirectiveTransform","V_MODEL_RADIO","V_MODEL_CHECKBOX","V_MODEL_TEXT","V_MODEL_SELECT","V_MODEL_DYNAMIC","V_ON_WITH_MODIFIERS","V_ON_WITH_KEYS","V_SHOW","TRANSITION_GROUP","decoder","decodeHtmlBrowser","asAttr","isRawTextContainer","parserOptions","parseInlineCSS","createDOMCompilerError","transformVHtml","transformVText","baseResult","directiveToUse","isInvalidType","isEventOptionModifier","isNonKeyModifier","maybeKeyModifier","isKeyboardEvent","resolveModifiers","keyModifiers","nonKeyModifiers","eventOptionModifiers","transformClick","isStaticClick","handlerExp","modifierPostfix","transformShow","ignoreSideEffectTags","DOMNodeTransforms","DOMDirectiveTransforms","cloak","compileCache","compileToFunction","ApiProxy","targetQueue","onQueue","defaultSettings","settings","localSettingsSaveId","currentSettings","localStorage","getItem","fallbacks","setItem","pluginId","setSettings","proxiedOn","_target","classofRaw","CORRECT_ARGUMENTS","tryGet","un$Slice","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","DisclosureStates","resolveType","useResolveButtonType","refElement","_dom","HTMLButtonElement","DisclosureContext","useDisclosureContext","DisclosurePanelContext","useDisclosurePanelContext","Disclosure","defaultOpen","buttonId","panelId","disclosureState","panelRef","buttonRef","panel","toggleDisclosure","closeDisclosure","focusableElement","DisclosureButton","isWithinPanel","onKeydown","handleKeyDown","onKeyup","handleKeyUp","panelContext","elementRef","_dom2","Space","Enter","DisclosurePanel","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr2","_createForOfIteratorHelperLoose","allowArrayLike"],"mappings":"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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAA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","file":"js/chunk-vendors.3bec54da.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = node.getAttribute('class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach((_ref) => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates(ctx) {\n this.x = this.getAttribute('x').getPixels('x');\n this.y = this.getAttribute('y').getPixels('y');\n var dxAttr = this.getAttribute('dx');\n var dyAttr = this.getAttribute('dy');\n\n if (dxAttr.hasValue()) {\n this.x += dxAttr.getPixels('x');\n }\n\n if (dyAttr.hasValue()) {\n this.y += dyAttr.getPixels('y');\n }\n\n this.x += this.getAnchorDelta(ctx, this, 0);\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n }\n\n this.initializeCoordinates(ctx);\n var boundingBox = null;\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 2 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 2 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n }\n\n this.initializeCoordinates(ctx);\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n getAnchorDelta(ctx, parent, startI) {\n var textAnchor = this.getStyle('text-anchor').getString('start');\n\n if (textAnchor !== 'start') {\n var {\n children\n } = parent;\n var len = children.length;\n var child = null;\n var width = 0;\n\n for (var i = startI; i < len; i++) {\n child = children[i];\n\n if (i > startI && child.getAttribute('x').hasValue() || child.getAttribute('text-anchor').hasValue()) {\n break; // new group\n }\n\n width += child.measureTextRecursive(ctx);\n }\n\n return -1 * (textAnchor === 'end' ? width : width / 2.0);\n }\n\n return 0;\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var textAnchor = child.getAttribute('text-anchor').getString('start');\n\n if (i === 0 && child.type !== 'textNode') {\n if (!xAttr.hasValue()) {\n xAttr.setValue(textParent.getAttribute('x').getValue('0'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(textParent.getAttribute('y').getValue('0'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(textParent.getAttribute('dx').getValue('0'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(textParent.getAttribute('dy').getValue('0'));\n }\n }\n\n if (xAttr.hasValue()) {\n child.x = xAttr.getPixels('x') + textParent.getAnchorDelta(ctx, parent, i);\n\n if (textAnchor !== 'start') {\n var width = child.measureTextRecursive(ctx);\n child.x += -1 * (textAnchor === 'end' ? width : width / 2.0);\n }\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (textAnchor !== 'start') {\n var _width = child.measureTextRecursive(ctx);\n\n textParent.x += -1 * (textAnchor === 'end' ? _width : _width / 2.0);\n }\n\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x + child.measureText(ctx);\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y;\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = this.adjustChildCoordinates(ctx, textParent, parent, i); // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = this.adjustChildCoordinates(ctx, textParent, parent, i);\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureTextRecursive(ctx) {\n var width = this.children.reduce((width, child) => width + child.measureTextRecursive(ctx), this.measureText(ctx));\n return width;\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach((_ref) => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach((_ref) => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\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) { _defineProperty(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/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport default Canvg;\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar un$Reverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return un$Reverse(this);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return hasOwn(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (isSpecial(url) != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (chr != '/' && !(chr == '\\\\' && isSpecial(url))) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && isSpecial(url))) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && isSpecial(url)) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = $toString(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n try {\n baseState = getInternalURLState(base);\n } catch (error) {\n failure = parseURL(baseState = {}, $toString(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = $toString(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = call(serializeURL, that);\n that.origin = call(getOrigin, that);\n that.protocol = call(getProtocol, that);\n that.username = call(getUsername, that);\n that.password = call(getPassword, that);\n that.host = call(getHost, that);\n that.hostname = call(getHostname, that);\n that.port = call(getPort, that);\n that.pathname = call(getPathname, that);\n that.search = call(getSearch, that);\n that.searchParams = call(getSearchParams, that);\n that.hash = call(getHash, that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : $toString(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = $toString(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, $toString(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = $toString(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, $toString(pathname), PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = $toString(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = $toString(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return call(serializeURL, this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return call(serializeURL, this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(isCallable(fn) ? fn : Function(fn), undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env';\nimport { HOOK_SETUP } from './const';\nimport { ApiProxy } from './proxy';\nexport * from './api';\nexport * from './plugin';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && pluginDescriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(pluginDescriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","function match(value, lookup) {\n if (value in lookup) {\n var returnValue = lookup[value];\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return typeof returnValue === 'function' ? returnValue.apply(void 0, args) : returnValue;\n }\n\n var error = new Error(\"Tried to handle \\\"\" + value + \"\\\" but there is no handler defined. Only defined handlers are: \" + Object.keys(lookup).map(function (key) {\n return \"\\\"\" + key + \"\\\"\";\n }).join(', ') + \".\");\n if (Error.captureStackTrace) Error.captureStackTrace(error, match);\n throw error;\n}\n\nexport { match };\n//# sourceMappingURL=match.esm.js.map\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","import { toRaw, ref, pauseTracking, resetTracking, reactive, computed, isRef, shallowReactive, trigger, ReactiveEffect, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, isReactive, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, computed, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, isFunction, toNumber, hyphenate, camelize, isArray, isOn, hasOwn, isModelListener, isObject, remove, isString, invokeArrayFns, isPromise, NOOP, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, NO, normalizeClass, normalizeStyle, isGloballyWhitelisted, hasChanged, isSet, isMap, isPlainObject } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n // eslint-disable-next-line no-restricted-globals\r\n typeof window !== 'undefined' &&\r\n !navigator.userAgent.includes('jsdom')) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the intance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (isInSSRComponentSetup)) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\nfunction createDuplicateChecker() {\r\n const cache = Object.create(null);\r\n return (type, key) => {\r\n if (cache[key]) {\r\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\r\n }\r\n else {\r\n cache[key] = type;\r\n }\r\n };\r\n}\r\nlet shouldCacheAccess = true;\r\nfunction applyOptions(instance) {\r\n const options = resolveMergedOptions(instance);\r\n const publicThis = instance.proxy;\r\n const ctx = instance.ctx;\r\n // do not cache property access on public proxy during state initialization\r\n shouldCacheAccess = false;\r\n // call beforeCreate first before accessing other options since\r\n // the hook may mutate resolved options (#2791)\r\n if (options.beforeCreate) {\r\n callHook(options.beforeCreate, instance, \"bc\" /* BEFORE_CREATE */);\r\n }\r\n const { \r\n // state\r\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \r\n // lifecycle\r\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \r\n // public API\r\n expose, inheritAttrs, \r\n // assets\r\n components, directives, filters } = options;\r\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const [propsOptions] = instance.propsOptions;\r\n if (propsOptions) {\r\n for (const key in propsOptions) {\r\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\r\n }\r\n }\r\n }\r\n // options initialization order (to be consistent with Vue 2):\r\n // - props (already done outside of this function)\r\n // - inject\r\n // - methods\r\n // - data (deferred since it relies on `this` access)\r\n // - computed\r\n // - watch (deferred since it relies on `this` access)\r\n if (injectOptions) {\r\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\r\n }\r\n if (methods) {\r\n for (const key in methods) {\r\n const methodHandler = methods[key];\r\n if (isFunction(methodHandler)) {\r\n // In dev mode, we use the `createRenderContext` function to define\r\n // methods to the proxy target, and those are read-only but\r\n // reconfigurable, so it needs to be redefined here\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n Object.defineProperty(ctx, key, {\r\n value: methodHandler.bind(publicThis),\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n });\r\n }\r\n else {\r\n ctx[key] = methodHandler.bind(publicThis);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\r\n `Did you reference the function correctly?`);\r\n }\r\n }\r\n }\r\n if (dataOptions) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\r\n warn(`The data option must be a function. ` +\r\n `Plain object usage is no longer supported.`);\r\n }\r\n const data = dataOptions.call(publicThis, publicThis);\r\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\r\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\r\n `intend to perform data fetching before component renders, use ` +\r\n `async setup() + .`);\r\n }\r\n if (!isObject(data)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\r\n }\r\n else {\r\n instance.data = reactive(data);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n for (const key in data) {\r\n checkDuplicateProperties(\"Data\" /* DATA */, key);\r\n // expose data on ctx during dev\r\n if (key[0] !== '$' && key[0] !== '_') {\r\n Object.defineProperty(ctx, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => data[key],\r\n set: NOOP\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state initialization complete at this point - start caching access\r\n shouldCacheAccess = true;\r\n if (computedOptions) {\r\n for (const key in computedOptions) {\r\n const opt = computedOptions[key];\r\n const get = isFunction(opt)\r\n ? opt.bind(publicThis, publicThis)\r\n : isFunction(opt.get)\r\n ? opt.get.bind(publicThis, publicThis)\r\n : NOOP;\r\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\r\n warn(`Computed property \"${key}\" has no getter.`);\r\n }\r\n const set = !isFunction(opt) && isFunction(opt.set)\r\n ? opt.set.bind(publicThis)\r\n : (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\r\n }\r\n : NOOP;\r\n const c = computed({\r\n get,\r\n set\r\n });\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => c.value,\r\n set: v => (c.value = v)\r\n });\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\r\n }\r\n }\r\n }\r\n if (watchOptions) {\r\n for (const key in watchOptions) {\r\n createWatcher(watchOptions[key], ctx, publicThis, key);\r\n }\r\n }\r\n if (provideOptions) {\r\n const provides = isFunction(provideOptions)\r\n ? provideOptions.call(publicThis)\r\n : provideOptions;\r\n Reflect.ownKeys(provides).forEach(key => {\r\n provide(key, provides[key]);\r\n });\r\n }\r\n if (created) {\r\n callHook(created, instance, \"c\" /* CREATED */);\r\n }\r\n function registerLifecycleHook(register, hook) {\r\n if (isArray(hook)) {\r\n hook.forEach(_hook => register(_hook.bind(publicThis)));\r\n }\r\n else if (hook) {\r\n register(hook.bind(publicThis));\r\n }\r\n }\r\n registerLifecycleHook(onBeforeMount, beforeMount);\r\n registerLifecycleHook(onMounted, mounted);\r\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\r\n registerLifecycleHook(onUpdated, updated);\r\n registerLifecycleHook(onActivated, activated);\r\n registerLifecycleHook(onDeactivated, deactivated);\r\n registerLifecycleHook(onErrorCaptured, errorCaptured);\r\n registerLifecycleHook(onRenderTracked, renderTracked);\r\n registerLifecycleHook(onRenderTriggered, renderTriggered);\r\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\r\n registerLifecycleHook(onUnmounted, unmounted);\r\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\r\n if (isArray(expose)) {\r\n if (expose.length) {\r\n const exposed = instance.exposed || (instance.exposed = {});\r\n expose.forEach(key => {\r\n Object.defineProperty(exposed, key, {\r\n get: () => publicThis[key],\r\n set: val => (publicThis[key] = val)\r\n });\r\n });\r\n }\r\n else if (!instance.exposed) {\r\n instance.exposed = {};\r\n }\r\n }\r\n // options that are handled when creating the instance but also need to be\r\n // applied from mixins\r\n if (render && instance.render === NOOP) {\r\n instance.render = render;\r\n }\r\n if (inheritAttrs != null) {\r\n instance.inheritAttrs = inheritAttrs;\r\n }\r\n // asset options.\r\n if (components)\r\n instance.components = components;\r\n if (directives)\r\n instance.directives = directives;\r\n}\r\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\r\n if (isArray(injectOptions)) {\r\n injectOptions = normalizeInject(injectOptions);\r\n }\r\n for (const key in injectOptions) {\r\n const opt = injectOptions[key];\r\n let injected;\r\n if (isObject(opt)) {\r\n if ('default' in opt) {\r\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\r\n }\r\n else {\r\n injected = inject(opt.from || key);\r\n }\r\n }\r\n else {\r\n injected = inject(opt);\r\n }\r\n if (isRef(injected)) {\r\n // TODO remove the check in 3.3\r\n if (unwrapRef) {\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => injected.value,\r\n set: v => (injected.value = v)\r\n });\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\r\n `and no longer needs \\`.value\\` in the next minor release. ` +\r\n `To opt-in to the new behavior now, ` +\r\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\r\n `temporary and will not be needed in the future.)`);\r\n }\r\n ctx[key] = injected;\r\n }\r\n }\r\n else {\r\n ctx[key] = injected;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\r\n }\r\n }\r\n}\r\nfunction callHook(hook, instance, type) {\r\n callWithAsyncErrorHandling(isArray(hook)\r\n ? hook.map(h => h.bind(instance.proxy))\r\n : hook.bind(instance.proxy), instance, type);\r\n}\r\nfunction createWatcher(raw, ctx, publicThis, key) {\r\n const getter = key.includes('.')\r\n ? createPathGetter(publicThis, key)\r\n : () => publicThis[key];\r\n if (isString(raw)) {\r\n const handler = ctx[raw];\r\n if (isFunction(handler)) {\r\n watch(getter, handler);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\r\n }\r\n }\r\n else if (isFunction(raw)) {\r\n watch(getter, raw.bind(publicThis));\r\n }\r\n else if (isObject(raw)) {\r\n if (isArray(raw)) {\r\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\r\n }\r\n else {\r\n const handler = isFunction(raw.handler)\r\n ? raw.handler.bind(publicThis)\r\n : ctx[raw.handler];\r\n if (isFunction(handler)) {\r\n watch(getter, handler, raw);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\r\n }\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch option: \"${key}\"`, raw);\r\n }\r\n}\r\n/**\r\n * Resolve merged options and cache it on the component.\r\n * This is done only once per-component since the merging does not involve\r\n * instances.\r\n */\r\nfunction resolveMergedOptions(instance) {\r\n const base = instance.type;\r\n const { mixins, extends: extendsOptions } = base;\r\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\r\n const cached = cache.get(base);\r\n let resolved;\r\n if (cached) {\r\n resolved = cached;\r\n }\r\n else if (!globalMixins.length && !mixins && !extendsOptions) {\r\n {\r\n resolved = base;\r\n }\r\n }\r\n else {\r\n resolved = {};\r\n if (globalMixins.length) {\r\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\r\n }\r\n mergeOptions(resolved, base, optionMergeStrategies);\r\n }\r\n cache.set(base, resolved);\r\n return resolved;\r\n}\r\nfunction mergeOptions(to, from, strats, asMixin = false) {\r\n const { mixins, extends: extendsOptions } = from;\r\n if (extendsOptions) {\r\n mergeOptions(to, extendsOptions, strats, true);\r\n }\r\n if (mixins) {\r\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\r\n }\r\n for (const key in from) {\r\n if (asMixin && key === 'expose') {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\r\n `It should only be declared in the base component itself.`);\r\n }\r\n else {\r\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\r\n to[key] = strat ? strat(to[key], from[key]) : from[key];\r\n }\r\n }\r\n return to;\r\n}\r\nconst internalOptionMergeStrats = {\r\n data: mergeDataFn,\r\n props: mergeObjectOptions,\r\n emits: mergeObjectOptions,\r\n // objects\r\n methods: mergeObjectOptions,\r\n computed: mergeObjectOptions,\r\n // lifecycle\r\n beforeCreate: mergeAsArray,\r\n created: mergeAsArray,\r\n beforeMount: mergeAsArray,\r\n mounted: mergeAsArray,\r\n beforeUpdate: mergeAsArray,\r\n updated: mergeAsArray,\r\n beforeDestroy: mergeAsArray,\r\n beforeUnmount: mergeAsArray,\r\n destroyed: mergeAsArray,\r\n unmounted: mergeAsArray,\r\n activated: mergeAsArray,\r\n deactivated: mergeAsArray,\r\n errorCaptured: mergeAsArray,\r\n serverPrefetch: mergeAsArray,\r\n // assets\r\n components: mergeObjectOptions,\r\n directives: mergeObjectOptions,\r\n // watch\r\n watch: mergeWatchOptions,\r\n // provide / inject\r\n provide: mergeDataFn,\r\n inject: mergeInject\r\n};\r\nfunction mergeDataFn(to, from) {\r\n if (!from) {\r\n return to;\r\n }\r\n if (!to) {\r\n return from;\r\n }\r\n return function mergedDataFn() {\r\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\r\n };\r\n}\r\nfunction mergeInject(to, from) {\r\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\r\n}\r\nfunction normalizeInject(raw) {\r\n if (isArray(raw)) {\r\n const res = {};\r\n for (let i = 0; i < raw.length; i++) {\r\n res[raw[i]] = raw[i];\r\n }\r\n return res;\r\n }\r\n return raw;\r\n}\r\nfunction mergeAsArray(to, from) {\r\n return to ? [...new Set([].concat(to, from))] : from;\r\n}\r\nfunction mergeObjectOptions(to, from) {\r\n return to ? extend(extend(Object.create(null), to), from) : from;\r\n}\r\nfunction mergeWatchOptions(to, from) {\r\n if (!to)\r\n return from;\r\n if (!from)\r\n return to;\r\n const merged = extend(Object.create(null), to);\r\n for (const key in from) {\r\n merged[key] = mergeAsArray(to[key], from[key]);\r\n }\r\n return merged;\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // ensure all declared prop keys are present\r\n for (const key in instance.propsOptions[0]) {\r\n if (!(key in props)) {\r\n props[key] = undefined;\r\n }\r\n }\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n let key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\r\n }\r\n }\r\n else {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n if (setFullProps(instance, rawProps, props, attrs)) {\r\n hasAttrsChanged = true;\r\n }\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n if (hasAttrsChanged) {\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n let rawCastValues;\r\n if (rawProps) {\r\n for (let key in rawProps) {\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n const value = rawProps[key];\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\r\n props[camelKey] = value;\r\n }\r\n else {\r\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\r\n }\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n const castValues = rawCastValues || EMPTY_OBJ;\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\r\n }\r\n }\r\n return hasAttrsChanged;\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue.call(null, props);\r\n unsetCurrentInstance();\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (isAbsent && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.propsCache;\r\n const cached = cache.get(comp);\r\n if (cached) {\r\n return cached;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, EMPTY_ARR);\r\n return EMPTY_ARR;\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const res = [normalized, needCastKeys];\r\n cache.set(comp, res);\r\n return res;\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : ctor === null ? 'null' : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else if (expectedType === 'null') {\r\n valid = value === null;\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => {\r\n const normalized = withCtx((...args) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(...args));\r\n }, ctx);\r\n normalized._c = false;\r\n return normalized;\r\n};\r\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !(false )) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !isKeepAlive(instance.vnode) &&\r\n !(false )) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // users can get the shallow readonly version of the slots object through `this.$slots`,\r\n // we should avoid the proxy object polluting the slots of the internal instance\r\n instance.slots = toRaw(children);\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: undefined,\r\n warnHandler: undefined,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null),\r\n optionsCache: new WeakMap(),\r\n propsCache: new WeakMap(),\r\n emitsCache: new WeakMap()\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = vnode.component;\r\n devtoolsInitApp(app, version);\r\n }\r\n return getExposeProxy(vnode.component) || vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = null;\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if (!container.hasChildNodes()) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n flushPostFlushCbs();\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n // #3787\r\n // if component is async, it may get moved / unmounted before its\r\n // inner component is loaded, so we need to give it a placeholder\r\n // vnode that matches its adopted DOM.\r\n if (isAsyncWrapper(vnode)) {\r\n let subTree;\r\n if (isFragmentStart) {\r\n subTree = createVNode(Fragment);\r\n subTree.anchor = nextNode\r\n ? nextNode.previousSibling\r\n : container.lastChild;\r\n }\r\n else {\r\n subTree =\r\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\r\n }\r\n subTree.el = node;\r\n vnode.component.subTree = subTree;\r\n }\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\r\n // #4006 for form elements with non-string v-model value bindings\r\n // e.g.