diff --git a/404.html b/404.html index 9040734..2b43ab0 100644 --- a/404.html +++ b/404.html @@ -1,7 +1,7 @@ -Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/about/index.html b/about/index.html index 7b29a17..2c383d0 100644 --- a/about/index.html +++ b/about/index.html @@ -1,7 +1,7 @@ -About · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 9e9a85d..ac169d4 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,7 +1,7 @@ -Categories · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/css/coder.min.c8e4eea149ae1dc7c61ba9b0781793711a4e657f7e07a4413f9abc46d52dffc4.css b/css/coder.min.f03d6359cf766772af14fbe07ce6aca734b321c2e15acba0bbf4e2254941c460.css similarity index 98% rename from css/coder.min.c8e4eea149ae1dc7c61ba9b0781793711a4e657f7e07a4413f9abc46d52dffc4.css rename to css/coder.min.f03d6359cf766772af14fbe07ce6aca734b321c2e15acba0bbf4e2254941c460.css index bc5d081..a932868 100644 --- a/css/coder.min.c8e4eea149ae1dc7c61ba9b0781793711a4e657f7e07a4413f9abc46d52dffc4.css +++ b/css/coder.min.f03d6359cf766772af14fbe07ce6aca734b321c2e15acba0bbf4e2254941c460.css @@ -1,4 +1,4 @@ -@charset "UTF-8";/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;word-wrap:break-word}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,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}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}/*!* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com +@charset "UTF-8";/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:initial;word-wrap:break-word}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,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}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}/*!* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * Copyright 2024 Fonticons, Inc.*/.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fas,.far,.fab,.fa-solid,.content article a:where(.external-link):not(:has(img)):after,.fa-regular,.fa-brands,.fa{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fas::before,.far::before,.fab::before,.fa-solid::before,.fa-regular::before,.fa-brands::before,.fa::before{content:var(--fa)}.fa-classic,.fas,.fa-solid,.content article a:where(.external-link):not(:has(img)):after,.far,.fa-regular{font-family:'font awesome 6 free'}.fa-brands,.fab{font-family:'font awesome 6 brands'}.content article a:where(.external-link):not(:has(img)):after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-style:normal;font-variant:normal;font-weight:400;line-height:1}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07142857em;vertical-align:.05357143em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04166667em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(-1 * var(--fa-li-width,2em));position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media(prefers-reduced-motion:reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1)translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0)}57%{transform:scale(1,1)translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1,1)translateY(0)}100%{transform:scale(1,1)translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,100%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scale(-1,1)}.fa-flip-vertical{transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1,-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0{--fa:"\30"}.fa-1{--fa:"\31"}.fa-2{--fa:"\32"}.fa-3{--fa:"\33"}.fa-4{--fa:"\34"}.fa-5{--fa:"\35"}.fa-6{--fa:"\36"}.fa-7{--fa:"\37"}.fa-8{--fa:"\38"}.fa-9{--fa:"\39"}.fa-fill-drip{--fa:"\f576"}.fa-arrows-to-circle{--fa:"\e4bd"}.fa-circle-chevron-right{--fa:"\f138"}.fa-chevron-circle-right{--fa:"\f138"}.fa-at{--fa:"\40"}.fa-trash-can{--fa:"\f2ed"}.fa-trash-alt{--fa:"\f2ed"}.fa-text-height{--fa:"\f034"}.fa-user-xmark{--fa:"\f235"}.fa-user-times{--fa:"\f235"}.fa-stethoscope{--fa:"\f0f1"}.fa-message{--fa:"\f27a"}.fa-comment-alt{--fa:"\f27a"}.fa-info{--fa:"\f129"}.fa-down-left-and-up-right-to-center{--fa:"\f422"}.fa-compress-alt{--fa:"\f422"}.fa-explosion{--fa:"\e4e9"}.fa-file-lines{--fa:"\f15c"}.fa-file-alt{--fa:"\f15c"}.fa-file-text{--fa:"\f15c"}.fa-wave-square{--fa:"\f83e"}.fa-ring{--fa:"\f70b"}.fa-building-un{--fa:"\e4d9"}.fa-dice-three{--fa:"\f527"}.fa-calendar-days{--fa:"\f073"}.fa-calendar-alt{--fa:"\f073"}.fa-anchor-circle-check{--fa:"\e4aa"}.fa-building-circle-arrow-right{--fa:"\e4d1"}.fa-volleyball{--fa:"\f45f"}.fa-volleyball-ball{--fa:"\f45f"}.fa-arrows-up-to-line{--fa:"\e4c2"}.fa-sort-down{--fa:"\f0dd"}.fa-sort-desc{--fa:"\f0dd"}.fa-circle-minus{--fa:"\f056"}.fa-minus-circle{--fa:"\f056"}.fa-door-open{--fa:"\f52b"}.fa-right-from-bracket{--fa:"\f2f5"}.fa-sign-out-alt{--fa:"\f2f5"}.fa-atom{--fa:"\f5d2"}.fa-soap{--fa:"\e06e"}.fa-icons{--fa:"\f86d"}.fa-heart-music-camera-bolt{--fa:"\f86d"}.fa-microphone-lines-slash{--fa:"\f539"}.fa-microphone-alt-slash{--fa:"\f539"}.fa-bridge-circle-check{--fa:"\e4c9"}.fa-pump-medical{--fa:"\e06a"}.fa-fingerprint{--fa:"\f577"}.fa-hand-point-right{--fa:"\f0a4"}.fa-magnifying-glass-location{--fa:"\f689"}.fa-search-location{--fa:"\f689"}.fa-forward-step{--fa:"\f051"}.fa-step-forward{--fa:"\f051"}.fa-face-smile-beam{--fa:"\f5b8"}.fa-smile-beam{--fa:"\f5b8"}.fa-flag-checkered{--fa:"\f11e"}.fa-football{--fa:"\f44e"}.fa-football-ball{--fa:"\f44e"}.fa-school-circle-exclamation{--fa:"\e56c"}.fa-crop{--fa:"\f125"}.fa-angles-down{--fa:"\f103"}.fa-angle-double-down{--fa:"\f103"}.fa-users-rectangle{--fa:"\e594"}.fa-people-roof{--fa:"\e537"}.fa-people-line{--fa:"\e534"}.fa-beer-mug-empty{--fa:"\f0fc"}.fa-beer{--fa:"\f0fc"}.fa-diagram-predecessor{--fa:"\e477"}.fa-arrow-up-long{--fa:"\f176"}.fa-long-arrow-up{--fa:"\f176"}.fa-fire-flame-simple{--fa:"\f46a"}.fa-burn{--fa:"\f46a"}.fa-person{--fa:"\f183"}.fa-male{--fa:"\f183"}.fa-laptop{--fa:"\f109"}.fa-file-csv{--fa:"\f6dd"}.fa-menorah{--fa:"\f676"}.fa-truck-plane{--fa:"\e58f"}.fa-record-vinyl{--fa:"\f8d9"}.fa-face-grin-stars{--fa:"\f587"}.fa-grin-stars{--fa:"\f587"}.fa-bong{--fa:"\f55c"}.fa-spaghetti-monster-flying{--fa:"\f67b"}.fa-pastafarianism{--fa:"\f67b"}.fa-arrow-down-up-across-line{--fa:"\e4af"}.fa-spoon{--fa:"\f2e5"}.fa-utensil-spoon{--fa:"\f2e5"}.fa-jar-wheat{--fa:"\e517"}.fa-envelopes-bulk{--fa:"\f674"}.fa-mail-bulk{--fa:"\f674"}.fa-file-circle-exclamation{--fa:"\e4eb"}.fa-circle-h{--fa:"\f47e"}.fa-hospital-symbol{--fa:"\f47e"}.fa-pager{--fa:"\f815"}.fa-address-book{--fa:"\f2b9"}.fa-contact-book{--fa:"\f2b9"}.fa-strikethrough{--fa:"\f0cc"}.fa-k{--fa:"\4b"}.fa-landmark-flag{--fa:"\e51c"}.fa-pencil{--fa:"\f303"}.fa-pencil-alt{--fa:"\f303"}.fa-backward{--fa:"\f04a"}.fa-caret-right{--fa:"\f0da"}.fa-comments{--fa:"\f086"}.fa-paste{--fa:"\f0ea"}.fa-file-clipboard{--fa:"\f0ea"}.fa-code-pull-request{--fa:"\e13c"}.fa-clipboard-list{--fa:"\f46d"}.fa-truck-ramp-box{--fa:"\f4de"}.fa-truck-loading{--fa:"\f4de"}.fa-user-check{--fa:"\f4fc"}.fa-vial-virus{--fa:"\e597"}.fa-sheet-plastic{--fa:"\e571"}.fa-blog{--fa:"\f781"}.fa-user-ninja{--fa:"\f504"}.fa-person-arrow-up-from-line{--fa:"\e539"}.fa-scroll-torah{--fa:"\f6a0"}.fa-torah{--fa:"\f6a0"}.fa-broom-ball{--fa:"\f458"}.fa-quidditch{--fa:"\f458"}.fa-quidditch-broom-ball{--fa:"\f458"}.fa-toggle-off{--fa:"\f204"}.fa-box-archive{--fa:"\f187"}.fa-archive{--fa:"\f187"}.fa-person-drowning{--fa:"\e545"}.fa-arrow-down-9-1{--fa:"\f886"}.fa-sort-numeric-desc{--fa:"\f886"}.fa-sort-numeric-down-alt{--fa:"\f886"}.fa-face-grin-tongue-squint{--fa:"\f58a"}.fa-grin-tongue-squint{--fa:"\f58a"}.fa-spray-can{--fa:"\f5bd"}.fa-truck-monster{--fa:"\f63b"}.fa-w{--fa:"\57"}.fa-earth-africa{--fa:"\f57c"}.fa-globe-africa{--fa:"\f57c"}.fa-rainbow{--fa:"\f75b"}.fa-circle-notch{--fa:"\f1ce"}.fa-tablet-screen-button{--fa:"\f3fa"}.fa-tablet-alt{--fa:"\f3fa"}.fa-paw{--fa:"\f1b0"}.fa-cloud{--fa:"\f0c2"}.fa-trowel-bricks{--fa:"\e58a"}.fa-face-flushed{--fa:"\f579"}.fa-flushed{--fa:"\f579"}.fa-hospital-user{--fa:"\f80d"}.fa-tent-arrow-left-right{--fa:"\e57f"}.fa-gavel{--fa:"\f0e3"}.fa-legal{--fa:"\f0e3"}.fa-binoculars{--fa:"\f1e5"}.fa-microphone-slash{--fa:"\f131"}.fa-box-tissue{--fa:"\e05b"}.fa-motorcycle{--fa:"\f21c"}.fa-bell-concierge{--fa:"\f562"}.fa-concierge-bell{--fa:"\f562"}.fa-pen-ruler{--fa:"\f5ae"}.fa-pencil-ruler{--fa:"\f5ae"}.fa-people-arrows{--fa:"\e068"}.fa-people-arrows-left-right{--fa:"\e068"}.fa-mars-and-venus-burst{--fa:"\e523"}.fa-square-caret-right{--fa:"\f152"}.fa-caret-square-right{--fa:"\f152"}.fa-scissors{--fa:"\f0c4"}.fa-cut{--fa:"\f0c4"}.fa-sun-plant-wilt{--fa:"\e57a"}.fa-toilets-portable{--fa:"\e584"}.fa-hockey-puck{--fa:"\f453"}.fa-table{--fa:"\f0ce"}.fa-magnifying-glass-arrow-right{--fa:"\e521"}.fa-tachograph-digital{--fa:"\f566"}.fa-digital-tachograph{--fa:"\f566"}.fa-users-slash{--fa:"\e073"}.fa-clover{--fa:"\e139"}.fa-reply{--fa:"\f3e5"}.fa-mail-reply{--fa:"\f3e5"}.fa-star-and-crescent{--fa:"\f699"}.fa-house-fire{--fa:"\e50c"}.fa-square-minus{--fa:"\f146"}.fa-minus-square{--fa:"\f146"}.fa-helicopter{--fa:"\f533"}.fa-compass{--fa:"\f14e"}.fa-square-caret-down{--fa:"\f150"}.fa-caret-square-down{--fa:"\f150"}.fa-file-circle-question{--fa:"\e4ef"}.fa-laptop-code{--fa:"\f5fc"}.fa-swatchbook{--fa:"\f5c3"}.fa-prescription-bottle{--fa:"\f485"}.fa-bars{--fa:"\f0c9"}.fa-navicon{--fa:"\f0c9"}.fa-people-group{--fa:"\e533"}.fa-hourglass-end{--fa:"\f253"}.fa-hourglass-3{--fa:"\f253"}.fa-heart-crack{--fa:"\f7a9"}.fa-heart-broken{--fa:"\f7a9"}.fa-square-up-right{--fa:"\f360"}.fa-external-link-square-alt{--fa:"\f360"}.fa-face-kiss-beam{--fa:"\f597"}.fa-kiss-beam{--fa:"\f597"}.fa-film{--fa:"\f008"}.fa-ruler-horizontal{--fa:"\f547"}.fa-people-robbery{--fa:"\e536"}.fa-lightbulb{--fa:"\f0eb"}.fa-caret-left{--fa:"\f0d9"}.fa-circle-exclamation{--fa:"\f06a"}.fa-exclamation-circle{--fa:"\f06a"}.fa-school-circle-xmark{--fa:"\e56d"}.fa-arrow-right-from-bracket{--fa:"\f08b"}.fa-sign-out{--fa:"\f08b"}.fa-circle-chevron-down{--fa:"\f13a"}.fa-chevron-circle-down{--fa:"\f13a"}.fa-unlock-keyhole{--fa:"\f13e"}.fa-unlock-alt{--fa:"\f13e"}.fa-cloud-showers-heavy{--fa:"\f740"}.fa-headphones-simple{--fa:"\f58f"}.fa-headphones-alt{--fa:"\f58f"}.fa-sitemap{--fa:"\f0e8"}.fa-circle-dollar-to-slot{--fa:"\f4b9"}.fa-donate{--fa:"\f4b9"}.fa-memory{--fa:"\f538"}.fa-road-spikes{--fa:"\e568"}.fa-fire-burner{--fa:"\e4f1"}.fa-flag{--fa:"\f024"}.fa-hanukiah{--fa:"\f6e6"}.fa-feather{--fa:"\f52d"}.fa-volume-low{--fa:"\f027"}.fa-volume-down{--fa:"\f027"}.fa-comment-slash{--fa:"\f4b3"}.fa-cloud-sun-rain{--fa:"\f743"}.fa-compress{--fa:"\f066"}.fa-wheat-awn{--fa:"\e2cd"}.fa-wheat-alt{--fa:"\e2cd"}.fa-ankh{--fa:"\f644"}.fa-hands-holding-child{--fa:"\e4fa"}.fa-asterisk{--fa:"\2a"}.fa-square-check{--fa:"\f14a"}.fa-check-square{--fa:"\f14a"}.fa-peseta-sign{--fa:"\e221"}.fa-heading{--fa:"\f1dc"}.fa-header{--fa:"\f1dc"}.fa-ghost{--fa:"\f6e2"}.fa-list{--fa:"\f03a"}.fa-list-squares{--fa:"\f03a"}.fa-square-phone-flip{--fa:"\f87b"}.fa-phone-square-alt{--fa:"\f87b"}.fa-cart-plus{--fa:"\f217"}.fa-gamepad{--fa:"\f11b"}.fa-circle-dot{--fa:"\f192"}.fa-dot-circle{--fa:"\f192"}.fa-face-dizzy{--fa:"\f567"}.fa-dizzy{--fa:"\f567"}.fa-egg{--fa:"\f7fb"}.fa-house-medical-circle-xmark{--fa:"\e513"}.fa-campground{--fa:"\f6bb"}.fa-folder-plus{--fa:"\f65e"}.fa-futbol{--fa:"\f1e3"}.fa-futbol-ball{--fa:"\f1e3"}.fa-soccer-ball{--fa:"\f1e3"}.fa-paintbrush{--fa:"\f1fc"}.fa-paint-brush{--fa:"\f1fc"}.fa-lock{--fa:"\f023"}.fa-gas-pump{--fa:"\f52f"}.fa-hot-tub-person{--fa:"\f593"}.fa-hot-tub{--fa:"\f593"}.fa-map-location{--fa:"\f59f"}.fa-map-marked{--fa:"\f59f"}.fa-house-flood-water{--fa:"\e50e"}.fa-tree{--fa:"\f1bb"}.fa-bridge-lock{--fa:"\e4cc"}.fa-sack-dollar{--fa:"\f81d"}.fa-pen-to-square{--fa:"\f044"}.fa-edit{--fa:"\f044"}.fa-car-side{--fa:"\f5e4"}.fa-share-nodes{--fa:"\f1e0"}.fa-share-alt{--fa:"\f1e0"}.fa-heart-circle-minus{--fa:"\e4ff"}.fa-hourglass-half{--fa:"\f252"}.fa-hourglass-2{--fa:"\f252"}.fa-microscope{--fa:"\f610"}.fa-sink{--fa:"\e06d"}.fa-bag-shopping{--fa:"\f290"}.fa-shopping-bag{--fa:"\f290"}.fa-arrow-down-z-a{--fa:"\f881"}.fa-sort-alpha-desc{--fa:"\f881"}.fa-sort-alpha-down-alt{--fa:"\f881"}.fa-mitten{--fa:"\f7b5"}.fa-person-rays{--fa:"\e54d"}.fa-users{--fa:"\f0c0"}.fa-eye-slash{--fa:"\f070"}.fa-flask-vial{--fa:"\e4f3"}.fa-hand{--fa:"\f256"}.fa-hand-paper{--fa:"\f256"}.fa-om{--fa:"\f679"}.fa-worm{--fa:"\e599"}.fa-house-circle-xmark{--fa:"\e50b"}.fa-plug{--fa:"\f1e6"}.fa-chevron-up{--fa:"\f077"}.fa-hand-spock{--fa:"\f259"}.fa-stopwatch{--fa:"\f2f2"}.fa-face-kiss{--fa:"\f596"}.fa-kiss{--fa:"\f596"}.fa-bridge-circle-xmark{--fa:"\e4cb"}.fa-face-grin-tongue{--fa:"\f589"}.fa-grin-tongue{--fa:"\f589"}.fa-chess-bishop{--fa:"\f43a"}.fa-face-grin-wink{--fa:"\f58c"}.fa-grin-wink{--fa:"\f58c"}.fa-ear-deaf{--fa:"\f2a4"}.fa-deaf{--fa:"\f2a4"}.fa-deafness{--fa:"\f2a4"}.fa-hard-of-hearing{--fa:"\f2a4"}.fa-road-circle-check{--fa:"\e564"}.fa-dice-five{--fa:"\f523"}.fa-square-rss{--fa:"\f143"}.fa-rss-square{--fa:"\f143"}.fa-land-mine-on{--fa:"\e51b"}.fa-i-cursor{--fa:"\f246"}.fa-stamp{--fa:"\f5bf"}.fa-stairs{--fa:"\e289"}.fa-i{--fa:"\49"}.fa-hryvnia-sign{--fa:"\f6f2"}.fa-hryvnia{--fa:"\f6f2"}.fa-pills{--fa:"\f484"}.fa-face-grin-wide{--fa:"\f581"}.fa-grin-alt{--fa:"\f581"}.fa-tooth{--fa:"\f5c9"}.fa-v{--fa:"\56"}.fa-bangladeshi-taka-sign{--fa:"\e2e6"}.fa-bicycle{--fa:"\f206"}.fa-staff-snake{--fa:"\e579"}.fa-rod-asclepius{--fa:"\e579"}.fa-rod-snake{--fa:"\e579"}.fa-staff-aesculapius{--fa:"\e579"}.fa-head-side-cough-slash{--fa:"\e062"}.fa-truck-medical{--fa:"\f0f9"}.fa-ambulance{--fa:"\f0f9"}.fa-wheat-awn-circle-exclamation{--fa:"\e598"}.fa-snowman{--fa:"\f7d0"}.fa-mortar-pestle{--fa:"\f5a7"}.fa-road-barrier{--fa:"\e562"}.fa-school{--fa:"\f549"}.fa-igloo{--fa:"\f7ae"}.fa-joint{--fa:"\f595"}.fa-angle-right{--fa:"\f105"}.fa-horse{--fa:"\f6f0"}.fa-q{--fa:"\51"}.fa-g{--fa:"\47"}.fa-notes-medical{--fa:"\f481"}.fa-temperature-half{--fa:"\f2c9"}.fa-temperature-2{--fa:"\f2c9"}.fa-thermometer-2{--fa:"\f2c9"}.fa-thermometer-half{--fa:"\f2c9"}.fa-dong-sign{--fa:"\e169"}.fa-capsules{--fa:"\f46b"}.fa-poo-storm{--fa:"\f75a"}.fa-poo-bolt{--fa:"\f75a"}.fa-face-frown-open{--fa:"\f57a"}.fa-frown-open{--fa:"\f57a"}.fa-hand-point-up{--fa:"\f0a6"}.fa-money-bill{--fa:"\f0d6"}.fa-bookmark{--fa:"\f02e"}.fa-align-justify{--fa:"\f039"}.fa-umbrella-beach{--fa:"\f5ca"}.fa-helmet-un{--fa:"\e503"}.fa-bullseye{--fa:"\f140"}.fa-bacon{--fa:"\f7e5"}.fa-hand-point-down{--fa:"\f0a7"}.fa-arrow-up-from-bracket{--fa:"\e09a"}.fa-folder{--fa:"\f07b"}.fa-folder-blank{--fa:"\f07b"}.fa-file-waveform{--fa:"\f478"}.fa-file-medical-alt{--fa:"\f478"}.fa-radiation{--fa:"\f7b9"}.fa-chart-simple{--fa:"\e473"}.fa-mars-stroke{--fa:"\f229"}.fa-vial{--fa:"\f492"}.fa-gauge{--fa:"\f624"}.fa-dashboard{--fa:"\f624"}.fa-gauge-med{--fa:"\f624"}.fa-tachometer-alt-average{--fa:"\f624"}.fa-wand-magic-sparkles{--fa:"\e2ca"}.fa-magic-wand-sparkles{--fa:"\e2ca"}.fa-e{--fa:"\45"}.fa-pen-clip{--fa:"\f305"}.fa-pen-alt{--fa:"\f305"}.fa-bridge-circle-exclamation{--fa:"\e4ca"}.fa-user{--fa:"\f007"}.fa-school-circle-check{--fa:"\e56b"}.fa-dumpster{--fa:"\f793"}.fa-van-shuttle{--fa:"\f5b6"}.fa-shuttle-van{--fa:"\f5b6"}.fa-building-user{--fa:"\e4da"}.fa-square-caret-left{--fa:"\f191"}.fa-caret-square-left{--fa:"\f191"}.fa-highlighter{--fa:"\f591"}.fa-key{--fa:"\f084"}.fa-bullhorn{--fa:"\f0a1"}.fa-globe{--fa:"\f0ac"}.fa-synagogue{--fa:"\f69b"}.fa-person-half-dress{--fa:"\e548"}.fa-road-bridge{--fa:"\e563"}.fa-location-arrow{--fa:"\f124"}.fa-c{--fa:"\43"}.fa-tablet-button{--fa:"\f10a"}.fa-building-lock{--fa:"\e4d6"}.fa-pizza-slice{--fa:"\f818"}.fa-money-bill-wave{--fa:"\f53a"}.fa-chart-area{--fa:"\f1fe"}.fa-area-chart{--fa:"\f1fe"}.fa-house-flag{--fa:"\e50d"}.fa-person-circle-minus{--fa:"\e540"}.fa-ban{--fa:"\f05e"}.fa-cancel{--fa:"\f05e"}.fa-camera-rotate{--fa:"\e0d8"}.fa-spray-can-sparkles{--fa:"\f5d0"}.fa-air-freshener{--fa:"\f5d0"}.fa-star{--fa:"\f005"}.fa-repeat{--fa:"\f363"}.fa-cross{--fa:"\f654"}.fa-box{--fa:"\f466"}.fa-venus-mars{--fa:"\f228"}.fa-arrow-pointer{--fa:"\f245"}.fa-mouse-pointer{--fa:"\f245"}.fa-maximize{--fa:"\f31e"}.fa-expand-arrows-alt{--fa:"\f31e"}.fa-charging-station{--fa:"\f5e7"}.fa-shapes{--fa:"\f61f"}.fa-triangle-circle-square{--fa:"\f61f"}.fa-shuffle{--fa:"\f074"}.fa-random{--fa:"\f074"}.fa-person-running{--fa:"\f70c"}.fa-running{--fa:"\f70c"}.fa-mobile-retro{--fa:"\e527"}.fa-grip-lines-vertical{--fa:"\f7a5"}.fa-spider{--fa:"\f717"}.fa-hands-bound{--fa:"\e4f9"}.fa-file-invoice-dollar{--fa:"\f571"}.fa-plane-circle-exclamation{--fa:"\e556"}.fa-x-ray{--fa:"\f497"}.fa-spell-check{--fa:"\f891"}.fa-slash{--fa:"\f715"}.fa-computer-mouse{--fa:"\f8cc"}.fa-mouse{--fa:"\f8cc"}.fa-arrow-right-to-bracket{--fa:"\f090"}.fa-sign-in{--fa:"\f090"}.fa-shop-slash{--fa:"\e070"}.fa-store-alt-slash{--fa:"\e070"}.fa-server{--fa:"\f233"}.fa-virus-covid-slash{--fa:"\e4a9"}.fa-shop-lock{--fa:"\e4a5"}.fa-hourglass-start{--fa:"\f251"}.fa-hourglass-1{--fa:"\f251"}.fa-blender-phone{--fa:"\f6b6"}.fa-building-wheat{--fa:"\e4db"}.fa-person-breastfeeding{--fa:"\e53a"}.fa-right-to-bracket{--fa:"\f2f6"}.fa-sign-in-alt{--fa:"\f2f6"}.fa-venus{--fa:"\f221"}.fa-passport{--fa:"\f5ab"}.fa-thumbtack-slash{--fa:"\e68f"}.fa-thumb-tack-slash{--fa:"\e68f"}.fa-heart-pulse{--fa:"\f21e"}.fa-heartbeat{--fa:"\f21e"}.fa-people-carry-box{--fa:"\f4ce"}.fa-people-carry{--fa:"\f4ce"}.fa-temperature-high{--fa:"\f769"}.fa-microchip{--fa:"\f2db"}.fa-crown{--fa:"\f521"}.fa-weight-hanging{--fa:"\f5cd"}.fa-xmarks-lines{--fa:"\e59a"}.fa-file-prescription{--fa:"\f572"}.fa-weight-scale{--fa:"\f496"}.fa-weight{--fa:"\f496"}.fa-user-group{--fa:"\f500"}.fa-user-friends{--fa:"\f500"}.fa-arrow-up-a-z{--fa:"\f15e"}.fa-sort-alpha-up{--fa:"\f15e"}.fa-chess-knight{--fa:"\f441"}.fa-face-laugh-squint{--fa:"\f59b"}.fa-laugh-squint{--fa:"\f59b"}.fa-wheelchair{--fa:"\f193"}.fa-circle-arrow-up{--fa:"\f0aa"}.fa-arrow-circle-up{--fa:"\f0aa"}.fa-toggle-on{--fa:"\f205"}.fa-person-walking{--fa:"\f554"}.fa-walking{--fa:"\f554"}.fa-l{--fa:"\4c"}.fa-fire{--fa:"\f06d"}.fa-bed-pulse{--fa:"\f487"}.fa-procedures{--fa:"\f487"}.fa-shuttle-space{--fa:"\f197"}.fa-space-shuttle{--fa:"\f197"}.fa-face-laugh{--fa:"\f599"}.fa-laugh{--fa:"\f599"}.fa-folder-open{--fa:"\f07c"}.fa-heart-circle-plus{--fa:"\e500"}.fa-code-fork{--fa:"\e13b"}.fa-city{--fa:"\f64f"}.fa-microphone-lines{--fa:"\f3c9"}.fa-microphone-alt{--fa:"\f3c9"}.fa-pepper-hot{--fa:"\f816"}.fa-unlock{--fa:"\f09c"}.fa-colon-sign{--fa:"\e140"}.fa-headset{--fa:"\f590"}.fa-store-slash{--fa:"\e071"}.fa-road-circle-xmark{--fa:"\e566"}.fa-user-minus{--fa:"\f503"}.fa-mars-stroke-up{--fa:"\f22a"}.fa-mars-stroke-v{--fa:"\f22a"}.fa-champagne-glasses{--fa:"\f79f"}.fa-glass-cheers{--fa:"\f79f"}.fa-clipboard{--fa:"\f328"}.fa-house-circle-exclamation{--fa:"\e50a"}.fa-file-arrow-up{--fa:"\f574"}.fa-file-upload{--fa:"\f574"}.fa-wifi{--fa:"\f1eb"}.fa-wifi-3{--fa:"\f1eb"}.fa-wifi-strong{--fa:"\f1eb"}.fa-bath{--fa:"\f2cd"}.fa-bathtub{--fa:"\f2cd"}.fa-underline{--fa:"\f0cd"}.fa-user-pen{--fa:"\f4ff"}.fa-user-edit{--fa:"\f4ff"}.fa-signature{--fa:"\f5b7"}.fa-stroopwafel{--fa:"\f551"}.fa-bold{--fa:"\f032"}.fa-anchor-lock{--fa:"\e4ad"}.fa-building-ngo{--fa:"\e4d7"}.fa-manat-sign{--fa:"\e1d5"}.fa-not-equal{--fa:"\f53e"}.fa-border-top-left{--fa:"\f853"}.fa-border-style{--fa:"\f853"}.fa-map-location-dot{--fa:"\f5a0"}.fa-map-marked-alt{--fa:"\f5a0"}.fa-jedi{--fa:"\f669"}.fa-square-poll-vertical{--fa:"\f681"}.fa-poll{--fa:"\f681"}.fa-mug-hot{--fa:"\f7b6"}.fa-car-battery{--fa:"\f5df"}.fa-battery-car{--fa:"\f5df"}.fa-gift{--fa:"\f06b"}.fa-dice-two{--fa:"\f528"}.fa-chess-queen{--fa:"\f445"}.fa-glasses{--fa:"\f530"}.fa-chess-board{--fa:"\f43c"}.fa-building-circle-check{--fa:"\e4d2"}.fa-person-chalkboard{--fa:"\e53d"}.fa-mars-stroke-right{--fa:"\f22b"}.fa-mars-stroke-h{--fa:"\f22b"}.fa-hand-back-fist{--fa:"\f255"}.fa-hand-rock{--fa:"\f255"}.fa-square-caret-up{--fa:"\f151"}.fa-caret-square-up{--fa:"\f151"}.fa-cloud-showers-water{--fa:"\e4e4"}.fa-chart-bar{--fa:"\f080"}.fa-bar-chart{--fa:"\f080"}.fa-hands-bubbles{--fa:"\e05e"}.fa-hands-wash{--fa:"\e05e"}.fa-less-than-equal{--fa:"\f537"}.fa-train{--fa:"\f238"}.fa-eye-low-vision{--fa:"\f2a8"}.fa-low-vision{--fa:"\f2a8"}.fa-crow{--fa:"\f520"}.fa-sailboat{--fa:"\e445"}.fa-window-restore{--fa:"\f2d2"}.fa-square-plus{--fa:"\f0fe"}.fa-plus-square{--fa:"\f0fe"}.fa-torii-gate{--fa:"\f6a1"}.fa-frog{--fa:"\f52e"}.fa-bucket{--fa:"\e4cf"}.fa-image{--fa:"\f03e"}.fa-microphone{--fa:"\f130"}.fa-cow{--fa:"\f6c8"}.fa-caret-up{--fa:"\f0d8"}.fa-screwdriver{--fa:"\f54a"}.fa-folder-closed{--fa:"\e185"}.fa-house-tsunami{--fa:"\e515"}.fa-square-nfi{--fa:"\e576"}.fa-arrow-up-from-ground-water{--fa:"\e4b5"}.fa-martini-glass{--fa:"\f57b"}.fa-glass-martini-alt{--fa:"\f57b"}.fa-square-binary{--fa:"\e69b"}.fa-rotate-left{--fa:"\f2ea"}.fa-rotate-back{--fa:"\f2ea"}.fa-rotate-backward{--fa:"\f2ea"}.fa-undo-alt{--fa:"\f2ea"}.fa-table-columns{--fa:"\f0db"}.fa-columns{--fa:"\f0db"}.fa-lemon{--fa:"\f094"}.fa-head-side-mask{--fa:"\e063"}.fa-handshake{--fa:"\f2b5"}.fa-gem{--fa:"\f3a5"}.fa-dolly{--fa:"\f472"}.fa-dolly-box{--fa:"\f472"}.fa-smoking{--fa:"\f48d"}.fa-minimize{--fa:"\f78c"}.fa-compress-arrows-alt{--fa:"\f78c"}.fa-monument{--fa:"\f5a6"}.fa-snowplow{--fa:"\f7d2"}.fa-angles-right{--fa:"\f101"}.fa-angle-double-right{--fa:"\f101"}.fa-cannabis{--fa:"\f55f"}.fa-circle-play{--fa:"\f144"}.fa-play-circle{--fa:"\f144"}.fa-tablets{--fa:"\f490"}.fa-ethernet{--fa:"\f796"}.fa-euro-sign{--fa:"\f153"}.fa-eur{--fa:"\f153"}.fa-euro{--fa:"\f153"}.fa-chair{--fa:"\f6c0"}.fa-circle-check{--fa:"\f058"}.fa-check-circle{--fa:"\f058"}.fa-circle-stop{--fa:"\f28d"}.fa-stop-circle{--fa:"\f28d"}.fa-compass-drafting{--fa:"\f568"}.fa-drafting-compass{--fa:"\f568"}.fa-plate-wheat{--fa:"\e55a"}.fa-icicles{--fa:"\f7ad"}.fa-person-shelter{--fa:"\e54f"}.fa-neuter{--fa:"\f22c"}.fa-id-badge{--fa:"\f2c1"}.fa-marker{--fa:"\f5a1"}.fa-face-laugh-beam{--fa:"\f59a"}.fa-laugh-beam{--fa:"\f59a"}.fa-helicopter-symbol{--fa:"\e502"}.fa-universal-access{--fa:"\f29a"}.fa-circle-chevron-up{--fa:"\f139"}.fa-chevron-circle-up{--fa:"\f139"}.fa-lari-sign{--fa:"\e1c8"}.fa-volcano{--fa:"\f770"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553"}.fa-sterling-sign{--fa:"\f154"}.fa-gbp{--fa:"\f154"}.fa-pound-sign{--fa:"\f154"}.fa-viruses{--fa:"\e076"}.fa-square-person-confined{--fa:"\e577"}.fa-user-tie{--fa:"\f508"}.fa-arrow-down-long{--fa:"\f175"}.fa-long-arrow-down{--fa:"\f175"}.fa-tent-arrow-down-to-line{--fa:"\e57e"}.fa-certificate{--fa:"\f0a3"}.fa-reply-all{--fa:"\f122"}.fa-mail-reply-all{--fa:"\f122"}.fa-suitcase{--fa:"\f0f2"}.fa-person-skating{--fa:"\f7c5"}.fa-skating{--fa:"\f7c5"}.fa-filter-circle-dollar{--fa:"\f662"}.fa-funnel-dollar{--fa:"\f662"}.fa-camera-retro{--fa:"\f083"}.fa-circle-arrow-down{--fa:"\f0ab"}.fa-arrow-circle-down{--fa:"\f0ab"}.fa-file-import{--fa:"\f56f"}.fa-arrow-right-to-file{--fa:"\f56f"}.fa-square-arrow-up-right{--fa:"\f14c"}.fa-external-link-square{--fa:"\f14c"}.fa-box-open{--fa:"\f49e"}.fa-scroll{--fa:"\f70e"}.fa-spa{--fa:"\f5bb"}.fa-location-pin-lock{--fa:"\e51f"}.fa-pause{--fa:"\f04c"}.fa-hill-avalanche{--fa:"\e507"}.fa-temperature-empty{--fa:"\f2cb"}.fa-temperature-0{--fa:"\f2cb"}.fa-thermometer-0{--fa:"\f2cb"}.fa-thermometer-empty{--fa:"\f2cb"}.fa-bomb{--fa:"\f1e2"}.fa-registered{--fa:"\f25d"}.fa-address-card{--fa:"\f2bb"}.fa-contact-card{--fa:"\f2bb"}.fa-vcard{--fa:"\f2bb"}.fa-scale-unbalanced-flip{--fa:"\f516"}.fa-balance-scale-right{--fa:"\f516"}.fa-subscript{--fa:"\f12c"}.fa-diamond-turn-right{--fa:"\f5eb"}.fa-directions{--fa:"\f5eb"}.fa-burst{--fa:"\e4dc"}.fa-house-laptop{--fa:"\e066"}.fa-laptop-house{--fa:"\e066"}.fa-face-tired{--fa:"\f5c8"}.fa-tired{--fa:"\f5c8"}.fa-money-bills{--fa:"\e1f3"}.fa-smog{--fa:"\f75f"}.fa-crutch{--fa:"\f7f7"}.fa-cloud-arrow-up{--fa:"\f0ee"}.fa-cloud-upload{--fa:"\f0ee"}.fa-cloud-upload-alt{--fa:"\f0ee"}.fa-palette{--fa:"\f53f"}.fa-arrows-turn-right{--fa:"\e4c0"}.fa-vest{--fa:"\e085"}.fa-ferry{--fa:"\e4ea"}.fa-arrows-down-to-people{--fa:"\e4b9"}.fa-seedling{--fa:"\f4d8"}.fa-sprout{--fa:"\f4d8"}.fa-left-right{--fa:"\f337"}.fa-arrows-alt-h{--fa:"\f337"}.fa-boxes-packing{--fa:"\e4c7"}.fa-circle-arrow-left{--fa:"\f0a8"}.fa-arrow-circle-left{--fa:"\f0a8"}.fa-group-arrows-rotate{--fa:"\e4f6"}.fa-bowl-food{--fa:"\e4c6"}.fa-candy-cane{--fa:"\f786"}.fa-arrow-down-wide-short{--fa:"\f160"}.fa-sort-amount-asc{--fa:"\f160"}.fa-sort-amount-down{--fa:"\f160"}.fa-cloud-bolt{--fa:"\f76c"}.fa-thunderstorm{--fa:"\f76c"}.fa-text-slash{--fa:"\f87d"}.fa-remove-format{--fa:"\f87d"}.fa-face-smile-wink{--fa:"\f4da"}.fa-smile-wink{--fa:"\f4da"}.fa-file-word{--fa:"\f1c2"}.fa-file-powerpoint{--fa:"\f1c4"}.fa-arrows-left-right{--fa:"\f07e"}.fa-arrows-h{--fa:"\f07e"}.fa-house-lock{--fa:"\e510"}.fa-cloud-arrow-down{--fa:"\f0ed"}.fa-cloud-download{--fa:"\f0ed"}.fa-cloud-download-alt{--fa:"\f0ed"}.fa-children{--fa:"\e4e1"}.fa-chalkboard{--fa:"\f51b"}.fa-blackboard{--fa:"\f51b"}.fa-user-large-slash{--fa:"\f4fa"}.fa-user-alt-slash{--fa:"\f4fa"}.fa-envelope-open{--fa:"\f2b6"}.fa-handshake-simple-slash{--fa:"\e05f"}.fa-handshake-alt-slash{--fa:"\e05f"}.fa-mattress-pillow{--fa:"\e525"}.fa-guarani-sign{--fa:"\e19a"}.fa-arrows-rotate{--fa:"\f021"}.fa-refresh{--fa:"\f021"}.fa-sync{--fa:"\f021"}.fa-fire-extinguisher{--fa:"\f134"}.fa-cruzeiro-sign{--fa:"\e152"}.fa-greater-than-equal{--fa:"\f532"}.fa-shield-halved{--fa:"\f3ed"}.fa-shield-alt{--fa:"\f3ed"}.fa-book-atlas{--fa:"\f558"}.fa-atlas{--fa:"\f558"}.fa-virus{--fa:"\e074"}.fa-envelope-circle-check{--fa:"\e4e8"}.fa-layer-group{--fa:"\f5fd"}.fa-arrows-to-dot{--fa:"\e4be"}.fa-archway{--fa:"\f557"}.fa-heart-circle-check{--fa:"\e4fd"}.fa-house-chimney-crack{--fa:"\f6f1"}.fa-house-damage{--fa:"\f6f1"}.fa-file-zipper{--fa:"\f1c6"}.fa-file-archive{--fa:"\f1c6"}.fa-square{--fa:"\f0c8"}.fa-martini-glass-empty{--fa:"\f000"}.fa-glass-martini{--fa:"\f000"}.fa-couch{--fa:"\f4b8"}.fa-cedi-sign{--fa:"\e0df"}.fa-italic{--fa:"\f033"}.fa-table-cells-column-lock{--fa:"\e678"}.fa-church{--fa:"\f51d"}.fa-comments-dollar{--fa:"\f653"}.fa-democrat{--fa:"\f747"}.fa-z{--fa:"\5a"}.fa-person-skiing{--fa:"\f7c9"}.fa-skiing{--fa:"\f7c9"}.fa-road-lock{--fa:"\e567"}.fa-a{--fa:"\41"}.fa-temperature-arrow-down{--fa:"\e03f"}.fa-temperature-down{--fa:"\e03f"}.fa-feather-pointed{--fa:"\f56b"}.fa-feather-alt{--fa:"\f56b"}.fa-p{--fa:"\50"}.fa-snowflake{--fa:"\f2dc"}.fa-newspaper{--fa:"\f1ea"}.fa-rectangle-ad{--fa:"\f641"}.fa-ad{--fa:"\f641"}.fa-circle-arrow-right{--fa:"\f0a9"}.fa-arrow-circle-right{--fa:"\f0a9"}.fa-filter-circle-xmark{--fa:"\e17b"}.fa-locust{--fa:"\e520"}.fa-sort{--fa:"\f0dc"}.fa-unsorted{--fa:"\f0dc"}.fa-list-ol{--fa:"\f0cb"}.fa-list-1-2{--fa:"\f0cb"}.fa-list-numeric{--fa:"\f0cb"}.fa-person-dress-burst{--fa:"\e544"}.fa-money-check-dollar{--fa:"\f53d"}.fa-money-check-alt{--fa:"\f53d"}.fa-vector-square{--fa:"\f5cb"}.fa-bread-slice{--fa:"\f7ec"}.fa-language{--fa:"\f1ab"}.fa-face-kiss-wink-heart{--fa:"\f598"}.fa-kiss-wink-heart{--fa:"\f598"}.fa-filter{--fa:"\f0b0"}.fa-question{--fa:"\3f"}.fa-file-signature{--fa:"\f573"}.fa-up-down-left-right{--fa:"\f0b2"}.fa-arrows-alt{--fa:"\f0b2"}.fa-house-chimney-user{--fa:"\e065"}.fa-hand-holding-heart{--fa:"\f4be"}.fa-puzzle-piece{--fa:"\f12e"}.fa-money-check{--fa:"\f53c"}.fa-star-half-stroke{--fa:"\f5c0"}.fa-star-half-alt{--fa:"\f5c0"}.fa-code{--fa:"\f121"}.fa-whiskey-glass{--fa:"\f7a0"}.fa-glass-whiskey{--fa:"\f7a0"}.fa-building-circle-exclamation{--fa:"\e4d3"}.fa-magnifying-glass-chart{--fa:"\e522"}.fa-arrow-up-right-from-square{--fa:"\f08e"}.fa-external-link{--fa:"\f08e"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-won-sign{--fa:"\f159"}.fa-krw{--fa:"\f159"}.fa-won{--fa:"\f159"}.fa-virus-covid{--fa:"\e4a8"}.fa-austral-sign{--fa:"\e0a9"}.fa-f{--fa:"\46"}.fa-leaf{--fa:"\f06c"}.fa-road{--fa:"\f018"}.fa-taxi{--fa:"\f1ba"}.fa-cab{--fa:"\f1ba"}.fa-person-circle-plus{--fa:"\e541"}.fa-chart-pie{--fa:"\f200"}.fa-pie-chart{--fa:"\f200"}.fa-bolt-lightning{--fa:"\e0b7"}.fa-sack-xmark{--fa:"\e56a"}.fa-file-excel{--fa:"\f1c3"}.fa-file-contract{--fa:"\f56c"}.fa-fish-fins{--fa:"\e4f2"}.fa-building-flag{--fa:"\e4d5"}.fa-face-grin-beam{--fa:"\f582"}.fa-grin-beam{--fa:"\f582"}.fa-object-ungroup{--fa:"\f248"}.fa-poop{--fa:"\f619"}.fa-location-pin{--fa:"\f041"}.fa-map-marker{--fa:"\f041"}.fa-kaaba{--fa:"\f66b"}.fa-toilet-paper{--fa:"\f71e"}.fa-helmet-safety{--fa:"\f807"}.fa-hard-hat{--fa:"\f807"}.fa-hat-hard{--fa:"\f807"}.fa-eject{--fa:"\f052"}.fa-circle-right{--fa:"\f35a"}.fa-arrow-alt-circle-right{--fa:"\f35a"}.fa-plane-circle-check{--fa:"\e555"}.fa-face-rolling-eyes{--fa:"\f5a5"}.fa-meh-rolling-eyes{--fa:"\f5a5"}.fa-object-group{--fa:"\f247"}.fa-chart-line{--fa:"\f201"}.fa-line-chart{--fa:"\f201"}.fa-mask-ventilator{--fa:"\e524"}.fa-arrow-right{--fa:"\f061"}.fa-signs-post{--fa:"\f277"}.fa-map-signs{--fa:"\f277"}.fa-cash-register{--fa:"\f788"}.fa-person-circle-question{--fa:"\e542"}.fa-h{--fa:"\48"}.fa-tarp{--fa:"\e57b"}.fa-screwdriver-wrench{--fa:"\f7d9"}.fa-tools{--fa:"\f7d9"}.fa-arrows-to-eye{--fa:"\e4bf"}.fa-plug-circle-bolt{--fa:"\e55b"}.fa-heart{--fa:"\f004"}.fa-mars-and-venus{--fa:"\f224"}.fa-house-user{--fa:"\e1b0"}.fa-home-user{--fa:"\e1b0"}.fa-dumpster-fire{--fa:"\f794"}.fa-house-crack{--fa:"\e3b1"}.fa-martini-glass-citrus{--fa:"\f561"}.fa-cocktail{--fa:"\f561"}.fa-face-surprise{--fa:"\f5c2"}.fa-surprise{--fa:"\f5c2"}.fa-bottle-water{--fa:"\e4c5"}.fa-circle-pause{--fa:"\f28b"}.fa-pause-circle{--fa:"\f28b"}.fa-toilet-paper-slash{--fa:"\e072"}.fa-apple-whole{--fa:"\f5d1"}.fa-apple-alt{--fa:"\f5d1"}.fa-kitchen-set{--fa:"\e51a"}.fa-r{--fa:"\52"}.fa-temperature-quarter{--fa:"\f2ca"}.fa-temperature-1{--fa:"\f2ca"}.fa-thermometer-1{--fa:"\f2ca"}.fa-thermometer-quarter{--fa:"\f2ca"}.fa-cube{--fa:"\f1b2"}.fa-bitcoin-sign{--fa:"\e0b4"}.fa-shield-dog{--fa:"\e573"}.fa-solar-panel{--fa:"\f5ba"}.fa-lock-open{--fa:"\f3c1"}.fa-elevator{--fa:"\e16d"}.fa-money-bill-transfer{--fa:"\e528"}.fa-money-bill-trend-up{--fa:"\e529"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f"}.fa-square-poll-horizontal{--fa:"\f682"}.fa-poll-h{--fa:"\f682"}.fa-circle{--fa:"\f111"}.fa-backward-fast{--fa:"\f049"}.fa-fast-backward{--fa:"\f049"}.fa-recycle{--fa:"\f1b8"}.fa-user-astronaut{--fa:"\f4fb"}.fa-plane-slash{--fa:"\e069"}.fa-trademark{--fa:"\f25c"}.fa-basketball{--fa:"\f434"}.fa-basketball-ball{--fa:"\f434"}.fa-satellite-dish{--fa:"\f7c0"}.fa-circle-up{--fa:"\f35b"}.fa-arrow-alt-circle-up{--fa:"\f35b"}.fa-mobile-screen-button{--fa:"\f3cd"}.fa-mobile-alt{--fa:"\f3cd"}.fa-volume-high{--fa:"\f028"}.fa-volume-up{--fa:"\f028"}.fa-users-rays{--fa:"\e593"}.fa-wallet{--fa:"\f555"}.fa-clipboard-check{--fa:"\f46c"}.fa-file-audio{--fa:"\f1c7"}.fa-burger{--fa:"\f805"}.fa-hamburger{--fa:"\f805"}.fa-wrench{--fa:"\f0ad"}.fa-bugs{--fa:"\e4d0"}.fa-rupee-sign{--fa:"\f156"}.fa-rupee{--fa:"\f156"}.fa-file-image{--fa:"\f1c5"}.fa-circle-question{--fa:"\f059"}.fa-question-circle{--fa:"\f059"}.fa-plane-departure{--fa:"\f5b0"}.fa-handshake-slash{--fa:"\e060"}.fa-book-bookmark{--fa:"\e0bb"}.fa-code-branch{--fa:"\f126"}.fa-hat-cowboy{--fa:"\f8c0"}.fa-bridge{--fa:"\e4c8"}.fa-phone-flip{--fa:"\f879"}.fa-phone-alt{--fa:"\f879"}.fa-truck-front{--fa:"\e2b7"}.fa-cat{--fa:"\f6be"}.fa-anchor-circle-exclamation{--fa:"\e4ab"}.fa-truck-field{--fa:"\e58d"}.fa-route{--fa:"\f4d7"}.fa-clipboard-question{--fa:"\e4e3"}.fa-panorama{--fa:"\e209"}.fa-comment-medical{--fa:"\f7f5"}.fa-teeth-open{--fa:"\f62f"}.fa-file-circle-minus{--fa:"\e4ed"}.fa-tags{--fa:"\f02c"}.fa-wine-glass{--fa:"\f4e3"}.fa-forward-fast{--fa:"\f050"}.fa-fast-forward{--fa:"\f050"}.fa-face-meh-blank{--fa:"\f5a4"}.fa-meh-blank{--fa:"\f5a4"}.fa-square-parking{--fa:"\f540"}.fa-parking{--fa:"\f540"}.fa-house-signal{--fa:"\e012"}.fa-bars-progress{--fa:"\f828"}.fa-tasks-alt{--fa:"\f828"}.fa-faucet-drip{--fa:"\e006"}.fa-cart-flatbed{--fa:"\f474"}.fa-dolly-flatbed{--fa:"\f474"}.fa-ban-smoking{--fa:"\f54d"}.fa-smoking-ban{--fa:"\f54d"}.fa-terminal{--fa:"\f120"}.fa-mobile-button{--fa:"\f10b"}.fa-house-medical-flag{--fa:"\e514"}.fa-basket-shopping{--fa:"\f291"}.fa-shopping-basket{--fa:"\f291"}.fa-tape{--fa:"\f4db"}.fa-bus-simple{--fa:"\f55e"}.fa-bus-alt{--fa:"\f55e"}.fa-eye{--fa:"\f06e"}.fa-face-sad-cry{--fa:"\f5b3"}.fa-sad-cry{--fa:"\f5b3"}.fa-audio-description{--fa:"\f29e"}.fa-person-military-to-person{--fa:"\e54c"}.fa-file-shield{--fa:"\e4f0"}.fa-user-slash{--fa:"\f506"}.fa-pen{--fa:"\f304"}.fa-tower-observation{--fa:"\e586"}.fa-file-code{--fa:"\f1c9"}.fa-signal{--fa:"\f012"}.fa-signal-5{--fa:"\f012"}.fa-signal-perfect{--fa:"\f012"}.fa-bus{--fa:"\f207"}.fa-heart-circle-xmark{--fa:"\e501"}.fa-house-chimney{--fa:"\e3af"}.fa-home-lg{--fa:"\e3af"}.fa-window-maximize{--fa:"\f2d0"}.fa-face-frown{--fa:"\f119"}.fa-frown{--fa:"\f119"}.fa-prescription{--fa:"\f5b1"}.fa-shop{--fa:"\f54f"}.fa-store-alt{--fa:"\f54f"}.fa-floppy-disk{--fa:"\f0c7"}.fa-save{--fa:"\f0c7"}.fa-vihara{--fa:"\f6a7"}.fa-scale-unbalanced{--fa:"\f515"}.fa-balance-scale-left{--fa:"\f515"}.fa-sort-up{--fa:"\f0de"}.fa-sort-asc{--fa:"\f0de"}.fa-comment-dots{--fa:"\f4ad"}.fa-commenting{--fa:"\f4ad"}.fa-plant-wilt{--fa:"\e5aa"}.fa-diamond{--fa:"\f219"}.fa-face-grin-squint{--fa:"\f585"}.fa-grin-squint{--fa:"\f585"}.fa-hand-holding-dollar{--fa:"\f4c0"}.fa-hand-holding-usd{--fa:"\f4c0"}.fa-chart-diagram{--fa:"\e695"}.fa-bacterium{--fa:"\e05a"}.fa-hand-pointer{--fa:"\f25a"}.fa-drum-steelpan{--fa:"\f56a"}.fa-hand-scissors{--fa:"\f257"}.fa-hands-praying{--fa:"\f684"}.fa-praying-hands{--fa:"\f684"}.fa-arrow-rotate-right{--fa:"\f01e"}.fa-arrow-right-rotate{--fa:"\f01e"}.fa-arrow-rotate-forward{--fa:"\f01e"}.fa-redo{--fa:"\f01e"}.fa-biohazard{--fa:"\f780"}.fa-location-crosshairs{--fa:"\f601"}.fa-location{--fa:"\f601"}.fa-mars-double{--fa:"\f227"}.fa-child-dress{--fa:"\e59c"}.fa-users-between-lines{--fa:"\e591"}.fa-lungs-virus{--fa:"\e067"}.fa-face-grin-tears{--fa:"\f588"}.fa-grin-tears{--fa:"\f588"}.fa-phone{--fa:"\f095"}.fa-calendar-xmark{--fa:"\f273"}.fa-calendar-times{--fa:"\f273"}.fa-child-reaching{--fa:"\e59d"}.fa-head-side-virus{--fa:"\e064"}.fa-user-gear{--fa:"\f4fe"}.fa-user-cog{--fa:"\f4fe"}.fa-arrow-up-1-9{--fa:"\f163"}.fa-sort-numeric-up{--fa:"\f163"}.fa-door-closed{--fa:"\f52a"}.fa-shield-virus{--fa:"\e06c"}.fa-dice-six{--fa:"\f526"}.fa-mosquito-net{--fa:"\e52c"}.fa-file-fragment{--fa:"\e697"}.fa-bridge-water{--fa:"\e4ce"}.fa-person-booth{--fa:"\f756"}.fa-text-width{--fa:"\f035"}.fa-hat-wizard{--fa:"\f6e8"}.fa-pen-fancy{--fa:"\f5ac"}.fa-person-digging{--fa:"\f85e"}.fa-digging{--fa:"\f85e"}.fa-trash{--fa:"\f1f8"}.fa-gauge-simple{--fa:"\f629"}.fa-gauge-simple-med{--fa:"\f629"}.fa-tachometer-average{--fa:"\f629"}.fa-book-medical{--fa:"\f7e6"}.fa-poo{--fa:"\f2fe"}.fa-quote-right{--fa:"\f10e"}.fa-quote-right-alt{--fa:"\f10e"}.fa-shirt{--fa:"\f553"}.fa-t-shirt{--fa:"\f553"}.fa-tshirt{--fa:"\f553"}.fa-cubes{--fa:"\f1b3"}.fa-divide{--fa:"\f529"}.fa-tenge-sign{--fa:"\f7d7"}.fa-tenge{--fa:"\f7d7"}.fa-headphones{--fa:"\f025"}.fa-hands-holding{--fa:"\f4c2"}.fa-hands-clapping{--fa:"\e1a8"}.fa-republican{--fa:"\f75e"}.fa-arrow-left{--fa:"\f060"}.fa-person-circle-xmark{--fa:"\e543"}.fa-ruler{--fa:"\f545"}.fa-align-left{--fa:"\f036"}.fa-dice-d6{--fa:"\f6d1"}.fa-restroom{--fa:"\f7bd"}.fa-j{--fa:"\4a"}.fa-users-viewfinder{--fa:"\e595"}.fa-file-video{--fa:"\f1c8"}.fa-up-right-from-square{--fa:"\f35d"}.fa-external-link-alt{--fa:"\f35d"}.fa-table-cells{--fa:"\f00a"}.fa-th{--fa:"\f00a"}.fa-file-pdf{--fa:"\f1c1"}.fa-book-bible{--fa:"\f647"}.fa-bible{--fa:"\f647"}.fa-o{--fa:"\4f"}.fa-suitcase-medical{--fa:"\f0fa"}.fa-medkit{--fa:"\f0fa"}.fa-user-secret{--fa:"\f21b"}.fa-otter{--fa:"\f700"}.fa-person-dress{--fa:"\f182"}.fa-female{--fa:"\f182"}.fa-comment-dollar{--fa:"\f651"}.fa-business-time{--fa:"\f64a"}.fa-briefcase-clock{--fa:"\f64a"}.fa-table-cells-large{--fa:"\f009"}.fa-th-large{--fa:"\f009"}.fa-book-tanakh{--fa:"\f827"}.fa-tanakh{--fa:"\f827"}.fa-phone-volume{--fa:"\f2a0"}.fa-volume-control-phone{--fa:"\f2a0"}.fa-hat-cowboy-side{--fa:"\f8c1"}.fa-clipboard-user{--fa:"\f7f3"}.fa-child{--fa:"\f1ae"}.fa-lira-sign{--fa:"\f195"}.fa-satellite{--fa:"\f7bf"}.fa-plane-lock{--fa:"\e558"}.fa-tag{--fa:"\f02b"}.fa-comment{--fa:"\f075"}.fa-cake-candles{--fa:"\f1fd"}.fa-birthday-cake{--fa:"\f1fd"}.fa-cake{--fa:"\f1fd"}.fa-envelope{--fa:"\f0e0"}.fa-angles-up{--fa:"\f102"}.fa-angle-double-up{--fa:"\f102"}.fa-paperclip{--fa:"\f0c6"}.fa-arrow-right-to-city{--fa:"\e4b3"}.fa-ribbon{--fa:"\f4d6"}.fa-lungs{--fa:"\f604"}.fa-arrow-up-9-1{--fa:"\f887"}.fa-sort-numeric-up-alt{--fa:"\f887"}.fa-litecoin-sign{--fa:"\e1d3"}.fa-border-none{--fa:"\f850"}.fa-circle-nodes{--fa:"\e4e2"}.fa-parachute-box{--fa:"\f4cd"}.fa-indent{--fa:"\f03c"}.fa-truck-field-un{--fa:"\e58e"}.fa-hourglass{--fa:"\f254"}.fa-hourglass-empty{--fa:"\f254"}.fa-mountain{--fa:"\f6fc"}.fa-user-doctor{--fa:"\f0f0"}.fa-user-md{--fa:"\f0f0"}.fa-circle-info{--fa:"\f05a"}.fa-info-circle{--fa:"\f05a"}.fa-cloud-meatball{--fa:"\f73b"}.fa-camera{--fa:"\f030"}.fa-camera-alt{--fa:"\f030"}.fa-square-virus{--fa:"\e578"}.fa-meteor{--fa:"\f753"}.fa-car-on{--fa:"\e4dd"}.fa-sleigh{--fa:"\f7cc"}.fa-arrow-down-1-9{--fa:"\f162"}.fa-sort-numeric-asc{--fa:"\f162"}.fa-sort-numeric-down{--fa:"\f162"}.fa-hand-holding-droplet{--fa:"\f4c1"}.fa-hand-holding-water{--fa:"\f4c1"}.fa-water{--fa:"\f773"}.fa-calendar-check{--fa:"\f274"}.fa-braille{--fa:"\f2a1"}.fa-prescription-bottle-medical{--fa:"\f486"}.fa-prescription-bottle-alt{--fa:"\f486"}.fa-landmark{--fa:"\f66f"}.fa-truck{--fa:"\f0d1"}.fa-crosshairs{--fa:"\f05b"}.fa-person-cane{--fa:"\e53c"}.fa-tent{--fa:"\e57d"}.fa-vest-patches{--fa:"\e086"}.fa-check-double{--fa:"\f560"}.fa-arrow-down-a-z{--fa:"\f15d"}.fa-sort-alpha-asc{--fa:"\f15d"}.fa-sort-alpha-down{--fa:"\f15d"}.fa-money-bill-wheat{--fa:"\e52a"}.fa-cookie{--fa:"\f563"}.fa-arrow-rotate-left{--fa:"\f0e2"}.fa-arrow-left-rotate{--fa:"\f0e2"}.fa-arrow-rotate-back{--fa:"\f0e2"}.fa-arrow-rotate-backward{--fa:"\f0e2"}.fa-undo{--fa:"\f0e2"}.fa-hard-drive{--fa:"\f0a0"}.fa-hdd{--fa:"\f0a0"}.fa-face-grin-squint-tears{--fa:"\f586"}.fa-grin-squint-tears{--fa:"\f586"}.fa-dumbbell{--fa:"\f44b"}.fa-rectangle-list{--fa:"\f022"}.fa-list-alt{--fa:"\f022"}.fa-tarp-droplet{--fa:"\e57c"}.fa-house-medical-circle-check{--fa:"\e511"}.fa-person-skiing-nordic{--fa:"\f7ca"}.fa-skiing-nordic{--fa:"\f7ca"}.fa-calendar-plus{--fa:"\f271"}.fa-plane-arrival{--fa:"\f5af"}.fa-circle-left{--fa:"\f359"}.fa-arrow-alt-circle-left{--fa:"\f359"}.fa-train-subway{--fa:"\f239"}.fa-subway{--fa:"\f239"}.fa-chart-gantt{--fa:"\e0e4"}.fa-indian-rupee-sign{--fa:"\e1bc"}.fa-indian-rupee{--fa:"\e1bc"}.fa-inr{--fa:"\e1bc"}.fa-crop-simple{--fa:"\f565"}.fa-crop-alt{--fa:"\f565"}.fa-money-bill-1{--fa:"\f3d1"}.fa-money-bill-alt{--fa:"\f3d1"}.fa-left-long{--fa:"\f30a"}.fa-long-arrow-alt-left{--fa:"\f30a"}.fa-dna{--fa:"\f471"}.fa-virus-slash{--fa:"\e075"}.fa-minus{--fa:"\f068"}.fa-subtract{--fa:"\f068"}.fa-chess{--fa:"\f439"}.fa-arrow-left-long{--fa:"\f177"}.fa-long-arrow-left{--fa:"\f177"}.fa-plug-circle-check{--fa:"\e55c"}.fa-street-view{--fa:"\f21d"}.fa-franc-sign{--fa:"\e18f"}.fa-volume-off{--fa:"\f026"}.fa-hands-asl-interpreting{--fa:"\f2a3"}.fa-american-sign-language-interpreting{--fa:"\f2a3"}.fa-asl-interpreting{--fa:"\f2a3"}.fa-hands-american-sign-language-interpreting{--fa:"\f2a3"}.fa-gear{--fa:"\f013"}.fa-cog{--fa:"\f013"}.fa-droplet-slash{--fa:"\f5c7"}.fa-tint-slash{--fa:"\f5c7"}.fa-mosque{--fa:"\f678"}.fa-mosquito{--fa:"\e52b"}.fa-star-of-david{--fa:"\f69a"}.fa-person-military-rifle{--fa:"\e54b"}.fa-cart-shopping{--fa:"\f07a"}.fa-shopping-cart{--fa:"\f07a"}.fa-vials{--fa:"\f493"}.fa-plug-circle-plus{--fa:"\e55f"}.fa-place-of-worship{--fa:"\f67f"}.fa-grip-vertical{--fa:"\f58e"}.fa-hexagon-nodes{--fa:"\e699"}.fa-arrow-turn-up{--fa:"\f148"}.fa-level-up{--fa:"\f148"}.fa-u{--fa:"\55"}.fa-square-root-variable{--fa:"\f698"}.fa-square-root-alt{--fa:"\f698"}.fa-clock{--fa:"\f017"}.fa-clock-four{--fa:"\f017"}.fa-backward-step{--fa:"\f048"}.fa-step-backward{--fa:"\f048"}.fa-pallet{--fa:"\f482"}.fa-faucet{--fa:"\e005"}.fa-baseball-bat-ball{--fa:"\f432"}.fa-s{--fa:"\53"}.fa-timeline{--fa:"\e29c"}.fa-keyboard{--fa:"\f11c"}.fa-caret-down{--fa:"\f0d7"}.fa-house-chimney-medical{--fa:"\f7f2"}.fa-clinic-medical{--fa:"\f7f2"}.fa-temperature-three-quarters{--fa:"\f2c8"}.fa-temperature-3{--fa:"\f2c8"}.fa-thermometer-3{--fa:"\f2c8"}.fa-thermometer-three-quarters{--fa:"\f2c8"}.fa-mobile-screen{--fa:"\f3cf"}.fa-mobile-android-alt{--fa:"\f3cf"}.fa-plane-up{--fa:"\e22d"}.fa-piggy-bank{--fa:"\f4d3"}.fa-battery-half{--fa:"\f242"}.fa-battery-3{--fa:"\f242"}.fa-mountain-city{--fa:"\e52e"}.fa-coins{--fa:"\f51e"}.fa-khanda{--fa:"\f66d"}.fa-sliders{--fa:"\f1de"}.fa-sliders-h{--fa:"\f1de"}.fa-folder-tree{--fa:"\f802"}.fa-network-wired{--fa:"\f6ff"}.fa-map-pin{--fa:"\f276"}.fa-hamsa{--fa:"\f665"}.fa-cent-sign{--fa:"\e3f5"}.fa-flask{--fa:"\f0c3"}.fa-person-pregnant{--fa:"\e31e"}.fa-wand-sparkles{--fa:"\f72b"}.fa-ellipsis-vertical{--fa:"\f142"}.fa-ellipsis-v{--fa:"\f142"}.fa-ticket{--fa:"\f145"}.fa-power-off{--fa:"\f011"}.fa-right-long{--fa:"\f30b"}.fa-long-arrow-alt-right{--fa:"\f30b"}.fa-flag-usa{--fa:"\f74d"}.fa-laptop-file{--fa:"\e51d"}.fa-tty{--fa:"\f1e4"}.fa-teletype{--fa:"\f1e4"}.fa-diagram-next{--fa:"\e476"}.fa-person-rifle{--fa:"\e54e"}.fa-house-medical-circle-exclamation{--fa:"\e512"}.fa-closed-captioning{--fa:"\f20a"}.fa-person-hiking{--fa:"\f6ec"}.fa-hiking{--fa:"\f6ec"}.fa-venus-double{--fa:"\f226"}.fa-images{--fa:"\f302"}.fa-calculator{--fa:"\f1ec"}.fa-people-pulling{--fa:"\e535"}.fa-n{--fa:"\4e"}.fa-cable-car{--fa:"\f7da"}.fa-tram{--fa:"\f7da"}.fa-cloud-rain{--fa:"\f73d"}.fa-building-circle-xmark{--fa:"\e4d4"}.fa-ship{--fa:"\f21a"}.fa-arrows-down-to-line{--fa:"\e4b8"}.fa-download{--fa:"\f019"}.fa-face-grin{--fa:"\f580"}.fa-grin{--fa:"\f580"}.fa-delete-left{--fa:"\f55a"}.fa-backspace{--fa:"\f55a"}.fa-eye-dropper{--fa:"\f1fb"}.fa-eye-dropper-empty{--fa:"\f1fb"}.fa-eyedropper{--fa:"\f1fb"}.fa-file-circle-check{--fa:"\e5a0"}.fa-forward{--fa:"\f04e"}.fa-mobile{--fa:"\f3ce"}.fa-mobile-android{--fa:"\f3ce"}.fa-mobile-phone{--fa:"\f3ce"}.fa-face-meh{--fa:"\f11a"}.fa-meh{--fa:"\f11a"}.fa-align-center{--fa:"\f037"}.fa-book-skull{--fa:"\f6b7"}.fa-book-dead{--fa:"\f6b7"}.fa-id-card{--fa:"\f2c2"}.fa-drivers-license{--fa:"\f2c2"}.fa-outdent{--fa:"\f03b"}.fa-dedent{--fa:"\f03b"}.fa-heart-circle-exclamation{--fa:"\e4fe"}.fa-house{--fa:"\f015"}.fa-home{--fa:"\f015"}.fa-home-alt{--fa:"\f015"}.fa-home-lg-alt{--fa:"\f015"}.fa-calendar-week{--fa:"\f784"}.fa-laptop-medical{--fa:"\f812"}.fa-b{--fa:"\42"}.fa-file-medical{--fa:"\f477"}.fa-dice-one{--fa:"\f525"}.fa-kiwi-bird{--fa:"\f535"}.fa-arrow-right-arrow-left{--fa:"\f0ec"}.fa-exchange{--fa:"\f0ec"}.fa-rotate-right{--fa:"\f2f9"}.fa-redo-alt{--fa:"\f2f9"}.fa-rotate-forward{--fa:"\f2f9"}.fa-utensils{--fa:"\f2e7"}.fa-cutlery{--fa:"\f2e7"}.fa-arrow-up-wide-short{--fa:"\f161"}.fa-sort-amount-up{--fa:"\f161"}.fa-mill-sign{--fa:"\e1ed"}.fa-bowl-rice{--fa:"\e2eb"}.fa-skull{--fa:"\f54c"}.fa-tower-broadcast{--fa:"\f519"}.fa-broadcast-tower{--fa:"\f519"}.fa-truck-pickup{--fa:"\f63c"}.fa-up-long{--fa:"\f30c"}.fa-long-arrow-alt-up{--fa:"\f30c"}.fa-stop{--fa:"\f04d"}.fa-code-merge{--fa:"\f387"}.fa-upload{--fa:"\f093"}.fa-hurricane{--fa:"\f751"}.fa-mound{--fa:"\e52d"}.fa-toilet-portable{--fa:"\e583"}.fa-compact-disc{--fa:"\f51f"}.fa-file-arrow-down{--fa:"\f56d"}.fa-file-download{--fa:"\f56d"}.fa-caravan{--fa:"\f8ff"}.fa-shield-cat{--fa:"\e572"}.fa-bolt{--fa:"\f0e7"}.fa-zap{--fa:"\f0e7"}.fa-glass-water{--fa:"\e4f4"}.fa-oil-well{--fa:"\e532"}.fa-vault{--fa:"\e2c5"}.fa-mars{--fa:"\f222"}.fa-toilet{--fa:"\f7d8"}.fa-plane-circle-xmark{--fa:"\e557"}.fa-yen-sign{--fa:"\f157"}.fa-cny{--fa:"\f157"}.fa-jpy{--fa:"\f157"}.fa-rmb{--fa:"\f157"}.fa-yen{--fa:"\f157"}.fa-ruble-sign{--fa:"\f158"}.fa-rouble{--fa:"\f158"}.fa-rub{--fa:"\f158"}.fa-ruble{--fa:"\f158"}.fa-sun{--fa:"\f185"}.fa-guitar{--fa:"\f7a6"}.fa-face-laugh-wink{--fa:"\f59c"}.fa-laugh-wink{--fa:"\f59c"}.fa-horse-head{--fa:"\f7ab"}.fa-bore-hole{--fa:"\e4c3"}.fa-industry{--fa:"\f275"}.fa-circle-down{--fa:"\f358"}.fa-arrow-alt-circle-down{--fa:"\f358"}.fa-arrows-turn-to-dots{--fa:"\e4c1"}.fa-florin-sign{--fa:"\e184"}.fa-arrow-down-short-wide{--fa:"\f884"}.fa-sort-amount-desc{--fa:"\f884"}.fa-sort-amount-down-alt{--fa:"\f884"}.fa-less-than{--fa:"\3c"}.fa-angle-down{--fa:"\f107"}.fa-car-tunnel{--fa:"\e4de"}.fa-head-side-cough{--fa:"\e061"}.fa-grip-lines{--fa:"\f7a4"}.fa-thumbs-down{--fa:"\f165"}.fa-user-lock{--fa:"\f502"}.fa-arrow-right-long{--fa:"\f178"}.fa-long-arrow-right{--fa:"\f178"}.fa-anchor-circle-xmark{--fa:"\e4ac"}.fa-ellipsis{--fa:"\f141"}.fa-ellipsis-h{--fa:"\f141"}.fa-chess-pawn{--fa:"\f443"}.fa-kit-medical{--fa:"\f479"}.fa-first-aid{--fa:"\f479"}.fa-person-through-window{--fa:"\e5a9"}.fa-toolbox{--fa:"\f552"}.fa-hands-holding-circle{--fa:"\e4fb"}.fa-bug{--fa:"\f188"}.fa-credit-card{--fa:"\f09d"}.fa-credit-card-alt{--fa:"\f09d"}.fa-car{--fa:"\f1b9"}.fa-automobile{--fa:"\f1b9"}.fa-hand-holding-hand{--fa:"\e4f7"}.fa-book-open-reader{--fa:"\f5da"}.fa-book-reader{--fa:"\f5da"}.fa-mountain-sun{--fa:"\e52f"}.fa-arrows-left-right-to-line{--fa:"\e4ba"}.fa-dice-d20{--fa:"\f6cf"}.fa-truck-droplet{--fa:"\e58c"}.fa-file-circle-xmark{--fa:"\e5a1"}.fa-temperature-arrow-up{--fa:"\e040"}.fa-temperature-up{--fa:"\e040"}.fa-medal{--fa:"\f5a2"}.fa-bed{--fa:"\f236"}.fa-square-h{--fa:"\f0fd"}.fa-h-square{--fa:"\f0fd"}.fa-podcast{--fa:"\f2ce"}.fa-temperature-full{--fa:"\f2c7"}.fa-temperature-4{--fa:"\f2c7"}.fa-thermometer-4{--fa:"\f2c7"}.fa-thermometer-full{--fa:"\f2c7"}.fa-bell{--fa:"\f0f3"}.fa-superscript{--fa:"\f12b"}.fa-plug-circle-xmark{--fa:"\e560"}.fa-star-of-life{--fa:"\f621"}.fa-phone-slash{--fa:"\f3dd"}.fa-paint-roller{--fa:"\f5aa"}.fa-handshake-angle{--fa:"\f4c4"}.fa-hands-helping{--fa:"\f4c4"}.fa-location-dot{--fa:"\f3c5"}.fa-map-marker-alt{--fa:"\f3c5"}.fa-file{--fa:"\f15b"}.fa-greater-than{--fa:"\3e"}.fa-person-swimming{--fa:"\f5c4"}.fa-swimmer{--fa:"\f5c4"}.fa-arrow-down{--fa:"\f063"}.fa-droplet{--fa:"\f043"}.fa-tint{--fa:"\f043"}.fa-eraser{--fa:"\f12d"}.fa-earth-americas{--fa:"\f57d"}.fa-earth{--fa:"\f57d"}.fa-earth-america{--fa:"\f57d"}.fa-globe-americas{--fa:"\f57d"}.fa-person-burst{--fa:"\e53b"}.fa-dove{--fa:"\f4ba"}.fa-battery-empty{--fa:"\f244"}.fa-battery-0{--fa:"\f244"}.fa-socks{--fa:"\f696"}.fa-inbox{--fa:"\f01c"}.fa-section{--fa:"\e447"}.fa-gauge-high{--fa:"\f625"}.fa-tachometer-alt{--fa:"\f625"}.fa-tachometer-alt-fast{--fa:"\f625"}.fa-envelope-open-text{--fa:"\f658"}.fa-hospital{--fa:"\f0f8"}.fa-hospital-alt{--fa:"\f0f8"}.fa-hospital-wide{--fa:"\f0f8"}.fa-wine-bottle{--fa:"\f72f"}.fa-chess-rook{--fa:"\f447"}.fa-bars-staggered{--fa:"\f550"}.fa-reorder{--fa:"\f550"}.fa-stream{--fa:"\f550"}.fa-dharmachakra{--fa:"\f655"}.fa-hotdog{--fa:"\f80f"}.fa-person-walking-with-cane{--fa:"\f29d"}.fa-blind{--fa:"\f29d"}.fa-drum{--fa:"\f569"}.fa-ice-cream{--fa:"\f810"}.fa-heart-circle-bolt{--fa:"\e4fc"}.fa-fax{--fa:"\f1ac"}.fa-paragraph{--fa:"\f1dd"}.fa-check-to-slot{--fa:"\f772"}.fa-vote-yea{--fa:"\f772"}.fa-star-half{--fa:"\f089"}.fa-boxes-stacked{--fa:"\f468"}.fa-boxes{--fa:"\f468"}.fa-boxes-alt{--fa:"\f468"}.fa-link{--fa:"\f0c1"}.fa-chain{--fa:"\f0c1"}.fa-ear-listen{--fa:"\f2a2"}.fa-assistive-listening-systems{--fa:"\f2a2"}.fa-tree-city{--fa:"\e587"}.fa-play{--fa:"\f04b"}.fa-font{--fa:"\f031"}.fa-table-cells-row-lock{--fa:"\e67a"}.fa-rupiah-sign{--fa:"\e23d"}.fa-magnifying-glass{--fa:"\f002"}.fa-search{--fa:"\f002"}.fa-table-tennis-paddle-ball{--fa:"\f45d"}.fa-ping-pong-paddle-ball{--fa:"\f45d"}.fa-table-tennis{--fa:"\f45d"}.fa-person-dots-from-line{--fa:"\f470"}.fa-diagnoses{--fa:"\f470"}.fa-trash-can-arrow-up{--fa:"\f82a"}.fa-trash-restore-alt{--fa:"\f82a"}.fa-naira-sign{--fa:"\e1f6"}.fa-cart-arrow-down{--fa:"\f218"}.fa-walkie-talkie{--fa:"\f8ef"}.fa-file-pen{--fa:"\f31c"}.fa-file-edit{--fa:"\f31c"}.fa-receipt{--fa:"\f543"}.fa-square-pen{--fa:"\f14b"}.fa-pen-square{--fa:"\f14b"}.fa-pencil-square{--fa:"\f14b"}.fa-suitcase-rolling{--fa:"\f5c1"}.fa-person-circle-exclamation{--fa:"\e53f"}.fa-chevron-down{--fa:"\f078"}.fa-battery-full{--fa:"\f240"}.fa-battery{--fa:"\f240"}.fa-battery-5{--fa:"\f240"}.fa-skull-crossbones{--fa:"\f714"}.fa-code-compare{--fa:"\e13a"}.fa-list-ul{--fa:"\f0ca"}.fa-list-dots{--fa:"\f0ca"}.fa-school-lock{--fa:"\e56f"}.fa-tower-cell{--fa:"\e585"}.fa-down-long{--fa:"\f309"}.fa-long-arrow-alt-down{--fa:"\f309"}.fa-ranking-star{--fa:"\e561"}.fa-chess-king{--fa:"\f43f"}.fa-person-harassing{--fa:"\e549"}.fa-brazilian-real-sign{--fa:"\e46c"}.fa-landmark-dome{--fa:"\f752"}.fa-landmark-alt{--fa:"\f752"}.fa-arrow-up{--fa:"\f062"}.fa-tv{--fa:"\f26c"}.fa-television{--fa:"\f26c"}.fa-tv-alt{--fa:"\f26c"}.fa-shrimp{--fa:"\e448"}.fa-list-check{--fa:"\f0ae"}.fa-tasks{--fa:"\f0ae"}.fa-jug-detergent{--fa:"\e519"}.fa-circle-user{--fa:"\f2bd"}.fa-user-circle{--fa:"\f2bd"}.fa-user-shield{--fa:"\f505"}.fa-wind{--fa:"\f72e"}.fa-car-burst{--fa:"\f5e1"}.fa-car-crash{--fa:"\f5e1"}.fa-y{--fa:"\59"}.fa-person-snowboarding{--fa:"\f7ce"}.fa-snowboarding{--fa:"\f7ce"}.fa-truck-fast{--fa:"\f48b"}.fa-shipping-fast{--fa:"\f48b"}.fa-fish{--fa:"\f578"}.fa-user-graduate{--fa:"\f501"}.fa-circle-half-stroke{--fa:"\f042"}.fa-adjust{--fa:"\f042"}.fa-clapperboard{--fa:"\e131"}.fa-circle-radiation{--fa:"\f7ba"}.fa-radiation-alt{--fa:"\f7ba"}.fa-baseball{--fa:"\f433"}.fa-baseball-ball{--fa:"\f433"}.fa-jet-fighter-up{--fa:"\e518"}.fa-diagram-project{--fa:"\f542"}.fa-project-diagram{--fa:"\f542"}.fa-copy{--fa:"\f0c5"}.fa-volume-xmark{--fa:"\f6a9"}.fa-volume-mute{--fa:"\f6a9"}.fa-volume-times{--fa:"\f6a9"}.fa-hand-sparkles{--fa:"\e05d"}.fa-grip{--fa:"\f58d"}.fa-grip-horizontal{--fa:"\f58d"}.fa-share-from-square{--fa:"\f14d"}.fa-share-square{--fa:"\f14d"}.fa-child-combatant{--fa:"\e4e0"}.fa-child-rifle{--fa:"\e4e0"}.fa-gun{--fa:"\e19b"}.fa-square-phone{--fa:"\f098"}.fa-phone-square{--fa:"\f098"}.fa-plus{--fa:"\2b"}.fa-add{--fa:"\2b"}.fa-expand{--fa:"\f065"}.fa-computer{--fa:"\e4e5"}.fa-xmark{--fa:"\f00d"}.fa-close{--fa:"\f00d"}.fa-multiply{--fa:"\f00d"}.fa-remove{--fa:"\f00d"}.fa-times{--fa:"\f00d"}.fa-arrows-up-down-left-right{--fa:"\f047"}.fa-arrows{--fa:"\f047"}.fa-chalkboard-user{--fa:"\f51c"}.fa-chalkboard-teacher{--fa:"\f51c"}.fa-peso-sign{--fa:"\e222"}.fa-building-shield{--fa:"\e4d8"}.fa-baby{--fa:"\f77c"}.fa-users-line{--fa:"\e592"}.fa-quote-left{--fa:"\f10d"}.fa-quote-left-alt{--fa:"\f10d"}.fa-tractor{--fa:"\f722"}.fa-trash-arrow-up{--fa:"\f829"}.fa-trash-restore{--fa:"\f829"}.fa-arrow-down-up-lock{--fa:"\e4b0"}.fa-lines-leaning{--fa:"\e51e"}.fa-ruler-combined{--fa:"\f546"}.fa-copyright{--fa:"\f1f9"}.fa-equals{--fa:"\3d"}.fa-blender{--fa:"\f517"}.fa-teeth{--fa:"\f62e"}.fa-shekel-sign{--fa:"\f20b"}.fa-ils{--fa:"\f20b"}.fa-shekel{--fa:"\f20b"}.fa-sheqel{--fa:"\f20b"}.fa-sheqel-sign{--fa:"\f20b"}.fa-map{--fa:"\f279"}.fa-rocket{--fa:"\f135"}.fa-photo-film{--fa:"\f87c"}.fa-photo-video{--fa:"\f87c"}.fa-folder-minus{--fa:"\f65d"}.fa-hexagon-nodes-bolt{--fa:"\e69a"}.fa-store{--fa:"\f54e"}.fa-arrow-trend-up{--fa:"\e098"}.fa-plug-circle-minus{--fa:"\e55e"}.fa-sign-hanging{--fa:"\f4d9"}.fa-sign{--fa:"\f4d9"}.fa-bezier-curve{--fa:"\f55b"}.fa-bell-slash{--fa:"\f1f6"}.fa-tablet{--fa:"\f3fb"}.fa-tablet-android{--fa:"\f3fb"}.fa-school-flag{--fa:"\e56e"}.fa-fill{--fa:"\f575"}.fa-angle-up{--fa:"\f106"}.fa-drumstick-bite{--fa:"\f6d7"}.fa-holly-berry{--fa:"\f7aa"}.fa-chevron-left{--fa:"\f053"}.fa-bacteria{--fa:"\e059"}.fa-hand-lizard{--fa:"\f258"}.fa-notdef{--fa:"\e1fe"}.fa-disease{--fa:"\f7fa"}.fa-briefcase-medical{--fa:"\f469"}.fa-genderless{--fa:"\f22d"}.fa-chevron-right{--fa:"\f054"}.fa-retweet{--fa:"\f079"}.fa-car-rear{--fa:"\f5de"}.fa-car-alt{--fa:"\f5de"}.fa-pump-soap{--fa:"\e06b"}.fa-video-slash{--fa:"\f4e2"}.fa-battery-quarter{--fa:"\f243"}.fa-battery-2{--fa:"\f243"}.fa-radio{--fa:"\f8d7"}.fa-baby-carriage{--fa:"\f77d"}.fa-carriage-baby{--fa:"\f77d"}.fa-traffic-light{--fa:"\f637"}.fa-thermometer{--fa:"\f491"}.fa-vr-cardboard{--fa:"\f729"}.fa-hand-middle-finger{--fa:"\f806"}.fa-percent{--fa:"\25"}.fa-percentage{--fa:"\25"}.fa-truck-moving{--fa:"\f4df"}.fa-glass-water-droplet{--fa:"\e4f5"}.fa-display{--fa:"\e163"}.fa-face-smile{--fa:"\f118"}.fa-smile{--fa:"\f118"}.fa-thumbtack{--fa:"\f08d"}.fa-thumb-tack{--fa:"\f08d"}.fa-trophy{--fa:"\f091"}.fa-person-praying{--fa:"\f683"}.fa-pray{--fa:"\f683"}.fa-hammer{--fa:"\f6e3"}.fa-hand-peace{--fa:"\f25b"}.fa-rotate{--fa:"\f2f1"}.fa-sync-alt{--fa:"\f2f1"}.fa-spinner{--fa:"\f110"}.fa-robot{--fa:"\f544"}.fa-peace{--fa:"\f67c"}.fa-gears{--fa:"\f085"}.fa-cogs{--fa:"\f085"}.fa-warehouse{--fa:"\f494"}.fa-arrow-up-right-dots{--fa:"\e4b7"}.fa-splotch{--fa:"\f5bc"}.fa-face-grin-hearts{--fa:"\f584"}.fa-grin-hearts{--fa:"\f584"}.fa-dice-four{--fa:"\f524"}.fa-sim-card{--fa:"\f7c4"}.fa-transgender{--fa:"\f225"}.fa-transgender-alt{--fa:"\f225"}.fa-mercury{--fa:"\f223"}.fa-arrow-turn-down{--fa:"\f149"}.fa-level-down{--fa:"\f149"}.fa-person-falling-burst{--fa:"\e547"}.fa-award{--fa:"\f559"}.fa-ticket-simple{--fa:"\f3ff"}.fa-ticket-alt{--fa:"\f3ff"}.fa-building{--fa:"\f1ad"}.fa-angles-left{--fa:"\f100"}.fa-angle-double-left{--fa:"\f100"}.fa-qrcode{--fa:"\f029"}.fa-clock-rotate-left{--fa:"\f1da"}.fa-history{--fa:"\f1da"}.fa-face-grin-beam-sweat{--fa:"\f583"}.fa-grin-beam-sweat{--fa:"\f583"}.fa-file-export{--fa:"\f56e"}.fa-arrow-right-from-file{--fa:"\f56e"}.fa-shield{--fa:"\f132"}.fa-shield-blank{--fa:"\f132"}.fa-arrow-up-short-wide{--fa:"\f885"}.fa-sort-amount-up-alt{--fa:"\f885"}.fa-comment-nodes{--fa:"\e696"}.fa-house-medical{--fa:"\e3b2"}.fa-golf-ball-tee{--fa:"\f450"}.fa-golf-ball{--fa:"\f450"}.fa-circle-chevron-left{--fa:"\f137"}.fa-chevron-circle-left{--fa:"\f137"}.fa-house-chimney-window{--fa:"\e00d"}.fa-pen-nib{--fa:"\f5ad"}.fa-tent-arrow-turn-left{--fa:"\e580"}.fa-tents{--fa:"\e582"}.fa-wand-magic{--fa:"\f0d0"}.fa-magic{--fa:"\f0d0"}.fa-dog{--fa:"\f6d3"}.fa-carrot{--fa:"\f787"}.fa-moon{--fa:"\f186"}.fa-wine-glass-empty{--fa:"\f5ce"}.fa-wine-glass-alt{--fa:"\f5ce"}.fa-cheese{--fa:"\f7ef"}.fa-yin-yang{--fa:"\f6ad"}.fa-music{--fa:"\f001"}.fa-code-commit{--fa:"\f386"}.fa-temperature-low{--fa:"\f76b"}.fa-person-biking{--fa:"\f84a"}.fa-biking{--fa:"\f84a"}.fa-broom{--fa:"\f51a"}.fa-shield-heart{--fa:"\e574"}.fa-gopuram{--fa:"\f664"}.fa-earth-oceania{--fa:"\e47b"}.fa-globe-oceania{--fa:"\e47b"}.fa-square-xmark{--fa:"\f2d3"}.fa-times-square{--fa:"\f2d3"}.fa-xmark-square{--fa:"\f2d3"}.fa-hashtag{--fa:"\23"}.fa-up-right-and-down-left-from-center{--fa:"\f424"}.fa-expand-alt{--fa:"\f424"}.fa-oil-can{--fa:"\f613"}.fa-t{--fa:"\54"}.fa-hippo{--fa:"\f6ed"}.fa-chart-column{--fa:"\e0e3"}.fa-infinity{--fa:"\f534"}.fa-vial-circle-check{--fa:"\e596"}.fa-person-arrow-down-to-line{--fa:"\e538"}.fa-voicemail{--fa:"\f897"}.fa-fan{--fa:"\f863"}.fa-person-walking-luggage{--fa:"\e554"}.fa-up-down{--fa:"\f338"}.fa-arrows-alt-v{--fa:"\f338"}.fa-cloud-moon-rain{--fa:"\f73c"}.fa-calendar{--fa:"\f133"}.fa-trailer{--fa:"\e041"}.fa-bahai{--fa:"\f666"}.fa-haykal{--fa:"\f666"}.fa-sd-card{--fa:"\f7c2"}.fa-dragon{--fa:"\f6d5"}.fa-shoe-prints{--fa:"\f54b"}.fa-circle-plus{--fa:"\f055"}.fa-plus-circle{--fa:"\f055"}.fa-face-grin-tongue-wink{--fa:"\f58b"}.fa-grin-tongue-wink{--fa:"\f58b"}.fa-hand-holding{--fa:"\f4bd"}.fa-plug-circle-exclamation{--fa:"\e55d"}.fa-link-slash{--fa:"\f127"}.fa-chain-broken{--fa:"\f127"}.fa-chain-slash{--fa:"\f127"}.fa-unlink{--fa:"\f127"}.fa-clone{--fa:"\f24d"}.fa-person-walking-arrow-loop-left{--fa:"\e551"}.fa-arrow-up-z-a{--fa:"\f882"}.fa-sort-alpha-up-alt{--fa:"\f882"}.fa-fire-flame-curved{--fa:"\f7e4"}.fa-fire-alt{--fa:"\f7e4"}.fa-tornado{--fa:"\f76f"}.fa-file-circle-plus{--fa:"\e494"}.fa-book-quran{--fa:"\f687"}.fa-quran{--fa:"\f687"}.fa-anchor{--fa:"\f13d"}.fa-border-all{--fa:"\f84c"}.fa-face-angry{--fa:"\f556"}.fa-angry{--fa:"\f556"}.fa-cookie-bite{--fa:"\f564"}.fa-arrow-trend-down{--fa:"\e097"}.fa-rss{--fa:"\f09e"}.fa-feed{--fa:"\f09e"}.fa-draw-polygon{--fa:"\f5ee"}.fa-scale-balanced{--fa:"\f24e"}.fa-balance-scale{--fa:"\f24e"}.fa-gauge-simple-high{--fa:"\f62a"}.fa-tachometer{--fa:"\f62a"}.fa-tachometer-fast{--fa:"\f62a"}.fa-shower{--fa:"\f2cc"}.fa-desktop{--fa:"\f390"}.fa-desktop-alt{--fa:"\f390"}.fa-m{--fa:"\4d"}.fa-table-list{--fa:"\f00b"}.fa-th-list{--fa:"\f00b"}.fa-comment-sms{--fa:"\f7cd"}.fa-sms{--fa:"\f7cd"}.fa-book{--fa:"\f02d"}.fa-user-plus{--fa:"\f234"}.fa-check{--fa:"\f00c"}.fa-battery-three-quarters{--fa:"\f241"}.fa-battery-4{--fa:"\f241"}.fa-house-circle-check{--fa:"\e509"}.fa-angle-left{--fa:"\f104"}.fa-diagram-successor{--fa:"\e47a"}.fa-truck-arrow-right{--fa:"\e58b"}.fa-arrows-split-up-and-left{--fa:"\e4bc"}.fa-hand-fist{--fa:"\f6de"}.fa-fist-raised{--fa:"\f6de"}.fa-cloud-moon{--fa:"\f6c3"}.fa-briefcase{--fa:"\f0b1"}.fa-person-falling{--fa:"\e546"}.fa-image-portrait{--fa:"\f3e0"}.fa-portrait{--fa:"\f3e0"}.fa-user-tag{--fa:"\f507"}.fa-rug{--fa:"\e569"}.fa-earth-europe{--fa:"\f7a2"}.fa-globe-europe{--fa:"\f7a2"}.fa-cart-flatbed-suitcase{--fa:"\f59d"}.fa-luggage-cart{--fa:"\f59d"}.fa-rectangle-xmark{--fa:"\f410"}.fa-rectangle-times{--fa:"\f410"}.fa-times-rectangle{--fa:"\f410"}.fa-window-close{--fa:"\f410"}.fa-baht-sign{--fa:"\e0ac"}.fa-book-open{--fa:"\f518"}.fa-book-journal-whills{--fa:"\f66a"}.fa-journal-whills{--fa:"\f66a"}.fa-handcuffs{--fa:"\e4f8"}.fa-triangle-exclamation{--fa:"\f071"}.fa-exclamation-triangle{--fa:"\f071"}.fa-warning{--fa:"\f071"}.fa-database{--fa:"\f1c0"}.fa-share{--fa:"\f064"}.fa-mail-forward{--fa:"\f064"}.fa-bottle-droplet{--fa:"\e4c4"}.fa-mask-face{--fa:"\e1d7"}.fa-hill-rockslide{--fa:"\e508"}.fa-right-left{--fa:"\f362"}.fa-exchange-alt{--fa:"\f362"}.fa-paper-plane{--fa:"\f1d8"}.fa-road-circle-exclamation{--fa:"\e565"}.fa-dungeon{--fa:"\f6d9"}.fa-align-right{--fa:"\f038"}.fa-money-bill-1-wave{--fa:"\f53b"}.fa-money-bill-wave-alt{--fa:"\f53b"}.fa-life-ring{--fa:"\f1cd"}.fa-hands{--fa:"\f2a7"}.fa-sign-language{--fa:"\f2a7"}.fa-signing{--fa:"\f2a7"}.fa-calendar-day{--fa:"\f783"}.fa-water-ladder{--fa:"\f5c5"}.fa-ladder-water{--fa:"\f5c5"}.fa-swimming-pool{--fa:"\f5c5"}.fa-arrows-up-down{--fa:"\f07d"}.fa-arrows-v{--fa:"\f07d"}.fa-face-grimace{--fa:"\f57f"}.fa-grimace{--fa:"\f57f"}.fa-wheelchair-move{--fa:"\e2ce"}.fa-wheelchair-alt{--fa:"\e2ce"}.fa-turn-down{--fa:"\f3be"}.fa-level-down-alt{--fa:"\f3be"}.fa-person-walking-arrow-right{--fa:"\e552"}.fa-square-envelope{--fa:"\f199"}.fa-envelope-square{--fa:"\f199"}.fa-dice{--fa:"\f522"}.fa-bowling-ball{--fa:"\f436"}.fa-brain{--fa:"\f5dc"}.fa-bandage{--fa:"\f462"}.fa-band-aid{--fa:"\f462"}.fa-calendar-minus{--fa:"\f272"}.fa-circle-xmark{--fa:"\f057"}.fa-times-circle{--fa:"\f057"}.fa-xmark-circle{--fa:"\f057"}.fa-gifts{--fa:"\f79c"}.fa-hotel{--fa:"\f594"}.fa-earth-asia{--fa:"\f57e"}.fa-globe-asia{--fa:"\f57e"}.fa-id-card-clip{--fa:"\f47f"}.fa-id-card-alt{--fa:"\f47f"}.fa-magnifying-glass-plus{--fa:"\f00e"}.fa-search-plus{--fa:"\f00e"}.fa-thumbs-up{--fa:"\f164"}.fa-user-clock{--fa:"\f4fd"}.fa-hand-dots{--fa:"\f461"}.fa-allergies{--fa:"\f461"}.fa-file-invoice{--fa:"\f570"}.fa-window-minimize{--fa:"\f2d1"}.fa-mug-saucer{--fa:"\f0f4"}.fa-coffee{--fa:"\f0f4"}.fa-brush{--fa:"\f55d"}.fa-file-half-dashed{--fa:"\e698"}.fa-mask{--fa:"\f6fa"}.fa-magnifying-glass-minus{--fa:"\f010"}.fa-search-minus{--fa:"\f010"}.fa-ruler-vertical{--fa:"\f548"}.fa-user-large{--fa:"\f406"}.fa-user-alt{--fa:"\f406"}.fa-train-tram{--fa:"\e5b4"}.fa-user-nurse{--fa:"\f82f"}.fa-syringe{--fa:"\f48e"}.fa-cloud-sun{--fa:"\f6c4"}.fa-stopwatch-20{--fa:"\e06f"}.fa-square-full{--fa:"\f45c"}.fa-magnet{--fa:"\f076"}.fa-jar{--fa:"\e516"}.fa-note-sticky{--fa:"\f249"}.fa-sticky-note{--fa:"\f249"}.fa-bug-slash{--fa:"\e490"}.fa-arrow-up-from-water-pump{--fa:"\e4b6"}.fa-bone{--fa:"\f5d7"}.fa-table-cells-row-unlock{--fa:"\e691"}.fa-user-injured{--fa:"\f728"}.fa-face-sad-tear{--fa:"\f5b4"}.fa-sad-tear{--fa:"\f5b4"}.fa-plane{--fa:"\f072"}.fa-tent-arrows-down{--fa:"\e581"}.fa-exclamation{--fa:"\21"}.fa-arrows-spin{--fa:"\e4bb"}.fa-print{--fa:"\f02f"}.fa-turkish-lira-sign{--fa:"\e2bb"}.fa-try{--fa:"\e2bb"}.fa-turkish-lira{--fa:"\e2bb"}.fa-dollar-sign{--fa:"\24"}.fa-dollar{--fa:"\24"}.fa-usd{--fa:"\24"}.fa-x{--fa:"\58"}.fa-magnifying-glass-dollar{--fa:"\f688"}.fa-search-dollar{--fa:"\f688"}.fa-users-gear{--fa:"\f509"}.fa-users-cog{--fa:"\f509"}.fa-person-military-pointing{--fa:"\e54a"}.fa-building-columns{--fa:"\f19c"}.fa-bank{--fa:"\f19c"}.fa-institution{--fa:"\f19c"}.fa-museum{--fa:"\f19c"}.fa-university{--fa:"\f19c"}.fa-umbrella{--fa:"\f0e9"}.fa-trowel{--fa:"\e589"}.fa-d{--fa:"\44"}.fa-stapler{--fa:"\e5af"}.fa-masks-theater{--fa:"\f630"}.fa-theater-masks{--fa:"\f630"}.fa-kip-sign{--fa:"\e1c4"}.fa-hand-point-left{--fa:"\f0a5"}.fa-handshake-simple{--fa:"\f4c6"}.fa-handshake-alt{--fa:"\f4c6"}.fa-jet-fighter{--fa:"\f0fb"}.fa-fighter-jet{--fa:"\f0fb"}.fa-square-share-nodes{--fa:"\f1e1"}.fa-share-alt-square{--fa:"\f1e1"}.fa-barcode{--fa:"\f02a"}.fa-plus-minus{--fa:"\e43c"}.fa-video{--fa:"\f03d"}.fa-video-camera{--fa:"\f03d"}.fa-graduation-cap{--fa:"\f19d"}.fa-mortar-board{--fa:"\f19d"}.fa-hand-holding-medical{--fa:"\e05c"}.fa-person-circle-check{--fa:"\e53e"}.fa-turn-up{--fa:"\f3bf"}.fa-level-up-alt{--fa:"\f3bf"}.sr-only,.fa-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}.sr-only-focusable:not(:focus),.fa-sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}/*!* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) diff --git a/images/benchmarking-llms-on-jetson-orin-nano/388f43c3f800483aae5ea487e8f45922.png b/images/benchmarking-llms-on-jetson-orin-nano/388f43c3f800483aae5ea487e8f45922.png new file mode 100644 index 0000000..66ee8b0 Binary files /dev/null and b/images/benchmarking-llms-on-jetson-orin-nano/388f43c3f800483aae5ea487e8f45922.png differ diff --git a/images/benchmarking-llms-on-jetson-orin-nano/ee04876d75d247f9b27a647462555777.png b/images/benchmarking-llms-on-jetson-orin-nano/ee04876d75d247f9b27a647462555777.png new file mode 100644 index 0000000..602feab Binary files /dev/null and b/images/benchmarking-llms-on-jetson-orin-nano/ee04876d75d247f9b27a647462555777.png differ diff --git a/index.html b/index.html index f75135c..a37be37 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ -Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/index.xml b/index.xml index 1278cda..b94ca25 100644 --- a/index.xml +++ b/index.xml @@ -1,4 +1,12 @@ -Eric X. Liu's Personal Page/Recent content on Eric X. Liu's Personal PageHugoenThu, 02 Oct 2025 08:42:39 +0000Flashing Jetson Orin Nano in Virtualized Environments/posts/flashing-jetson-orin-nano-in-virtualized-environments/Thu, 02 Oct 2025 00:00:00 +0000/posts/flashing-jetson-orin-nano-in-virtualized-environments/<h1 id="flashing-jetson-orin-nano-in-virtualized-environments"> +Eric X. Liu's Personal Page/Recent content on Eric X. Liu's Personal PageHugoenSat, 04 Oct 2025 05:52:46 +0000Why Your Jetson Orin Nano's 40 TOPS Goes Unused (And What That Means for Edge AI)/posts/benchmarking-llms-on-jetson-orin-nano/Sat, 04 Oct 2025 00:00:00 +0000/posts/benchmarking-llms-on-jetson-orin-nano/<h2 id="introduction"> + Introduction + <a class="heading-link" href="#introduction"> + <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i> + <span class="sr-only">Link to heading</span> + </a> +</h2> +<p>NVIDIA&rsquo;s Jetson Orin Nano promises impressive specs: 1024 CUDA cores, 32 Tensor Cores, and 40 TOPS of INT8 compute performance packed into a compact, power-efficient edge device. On paper, it looks like a capable platform for running Large Language Models locally. But there&rsquo;s a catch—one that reveals a fundamental tension in modern edge AI hardware design.</p> +<p>After running 66 inference tests across seven different language models ranging from 0.5B to 5.4B parameters, I discovered something counterintuitive: the device&rsquo;s computational muscle sits largely idle during LLM inference. The bottleneck isn&rsquo;t computation—it&rsquo;s memory bandwidth. This isn&rsquo;t just a quirk of one device; it&rsquo;s a reality that affects how we should think about deploying LLMs at the edge.</p>Flashing Jetson Orin Nano in Virtualized Environments/posts/flashing-jetson-orin-nano-in-virtualized-environments/Thu, 02 Oct 2025 00:00:00 +0000/posts/flashing-jetson-orin-nano-in-virtualized-environments/<h1 id="flashing-jetson-orin-nano-in-virtualized-environments"> Flashing Jetson Orin Nano in Virtualized Environments <a class="heading-link" href="#flashing-jetson-orin-nano-in-virtualized-environments"> <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i> diff --git a/posts/benchmarking-llms-on-jetson-orin-nano/index.html b/posts/benchmarking-llms-on-jetson-orin-nano/index.html new file mode 100644 index 0000000..305610a --- /dev/null +++ b/posts/benchmarking-llms-on-jetson-orin-nano/index.html @@ -0,0 +1,65 @@ +Why Your Jetson Orin Nano's 40 TOPS Goes Unused (And What That Means for Edge AI) · Eric X. Liu's Personal Page

Why Your Jetson Orin Nano's 40 TOPS Goes Unused (And What That Means for Edge AI)

Introduction + +Link to heading

NVIDIA’s Jetson Orin Nano promises impressive specs: 1024 CUDA cores, 32 Tensor Cores, and 40 TOPS of INT8 compute performance packed into a compact, power-efficient edge device. On paper, it looks like a capable platform for running Large Language Models locally. But there’s a catch—one that reveals a fundamental tension in modern edge AI hardware design.

After running 66 inference tests across seven different language models ranging from 0.5B to 5.4B parameters, I discovered something counterintuitive: the device’s computational muscle sits largely idle during LLM inference. The bottleneck isn’t computation—it’s memory bandwidth. This isn’t just a quirk of one device; it’s a reality that affects how we should think about deploying LLMs at the edge.

The Hardware: What We’re Working With + +Link to heading

The NVIDIA Jetson Orin Nano 8GB I tested features:

  • GPU: NVIDIA Ampere architecture with 1024 CUDA cores and 32 Tensor Cores
  • Compute Performance: 40 TOPS (INT8), 10 TFLOPS (FP16), 5 TFLOPS (FP32)
  • Memory: 8GB LPDDR5 unified memory with 68 GB/s bandwidth
  • Available VRAM: Approximately 5.2GB after OS overhead
  • CPU: 6-core ARM Cortex-A78AE (ARMv8.2, 64-bit)
  • TDP: 7-25W configurable

The unified memory architecture is a double-edged sword: CPU and GPU share the same physical memory pool, which eliminates PCIe transfer overhead but also means you’re working with just 5.2GB of usable VRAM after the OS takes its share. This constraint shapes everything about LLM deployment on this device.

Testing Methodology + +Link to heading

The Models + +Link to heading

I tested seven models ranging from 0.5B to 5.4B parameters—essentially the entire practical deployment range for this hardware. The selection covered two inference backends (Ollama and vLLM) and various quantization strategies:

Ollama-served models (with quantization):

  • Gemma 3 1B (Q4_K_M, 815MB)
  • Gemma 3n E2B (bfloat16, 11GB, 5.44B total params, 2B effective)
  • Qwen 2.5 0.5B (Q4_K_M, 350MB)
  • Qwen 3 0.6B (FP8, 600MB)

vLLM-served models (minimal/no quantization):

  • google/gemma-3-1b-it (FP16, 2GB)
  • Qwen/Qwen2.5-0.5B-Instruct (FP16, 1GB)
  • Qwen/Qwen3-0.6B-FP8 (FP8, 600MB)

The Testing Process + +Link to heading

Each model faced 10-12 prompts of varying complexity—from simple arithmetic to technical explanations about LLMs themselves. Out of 84 planned tests, 66 completed successfully (78.6% success rate). The failures? Mostly out-of-memory crashes on larger models and occasional inference engine instability.

Understanding the Limits: Roofline Analysis + +Link to heading

To understand where performance hits its ceiling, I applied roofline analysis—a method that reveals whether a workload is compute-bound (limited by processing power) or memory-bound (limited by data transfer speed). For each model, I calculated:

  • FLOPs per token: Approximately 2 × total_parameters (accounting for matrix multiplications in forward pass)
  • Bytes per token: model_size × 1.1 (including 10% overhead for activations and KV cache)
  • Operational Intensity (OI): FLOPs per token / Bytes per token
  • Theoretical performance: min(compute_limit, bandwidth_limit)

The roofline model works by comparing a workload’s operational intensity (how many calculations you do per byte of data moved) against the device’s balance point. If your operational intensity is too low, you’re bottlenecked by memory bandwidth—and as we’ll see, that’s exactly what happens with LLM inference.

S3 File

The Results: Speed and Efficiency + +Link to heading

What Actually Runs Fast + +Link to heading

Here’s how the models ranked by token generation speed:

RankModelBackendAvg Speed (t/s)Std DevSuccess Rate
1qwen3:0.6bOllama38.841.42100%
2qwen2.5:0.5bOllama35.242.72100%
3gemma3:1bOllama26.332.56100%
4Qwen/Qwen2.5-0.5B-InstructvLLM15.182.15100%
5Qwen/Qwen3-0.6B-FP8vLLM12.810.36100%
6gemma3n:e2bOllama8.981.22100%
7google/gemma-3-1b-itvLLM4.591.52100%

The standout finding: quantized sub-1B models hit 25-40 tokens/second, with Ollama consistently outperforming vLLM by 2-6× thanks to aggressive quantization and edge-optimized execution. These numbers align well with independent benchmarks from NVIDIA’s Jetson AI Lab (Llama 3.2 3B at 27.7 t/s, SmolLM2 at 41 t/s), confirming this is typical performance for the hardware class. +S3 File

Responsiveness: First Token Latency + +Link to heading

The time to generate the first output token—a critical metric for interactive applications—varied significantly:

  • qwen3:0.6b (Ollama): 0.522 seconds
  • gemma3:1b (Ollama): 1.000 seconds
  • qwen2.5:0.5b (Ollama): 1.415 seconds
  • gemma3n:e2b (Ollama): 1.998 seconds

Smaller, quantized models get to that first token faster—exactly what you want for a chatbot or interactive assistant where perceived responsiveness matters as much as raw throughput.

The Memory Bottleneck Revealed + +Link to heading

When I compared actual performance against theoretical limits, the results were striking:

ModelTheoretical (t/s)Actual (t/s)EfficiencyBottleneckOI (FLOPs/byte)
gemma3:1b109.9026.3324.0%Memory3.23
qwen3:0.6b103.0338.8437.7%Memory1.82
qwen2.5:0.5b219.8035.2416.0%Memory3.23
gemma3n:e2b15.458.9858.1%Memory0.91
google/gemma-3-1b-it30.914.5914.9%Memory0.91
Qwen/Qwen3-0.6B-FP8103.0312.8112.4%Memory1.82
Qwen/Qwen2.5-0.5B-Instruct61.8215.1824.6%Memory0.91

Every single model is memory-bound. Average hardware efficiency sits at just 26.8%—meaning the computational units spend most of their time waiting for data rather than crunching numbers. That advertised 40 TOPS? Largely untapped. +S3 File

What This Actually Means + +Link to heading

Why Memory Bandwidth Dominates + +Link to heading

The roofline numbers tell a clear story: operational intensity ranges from 0.91 to 3.23 FLOPs/byte across all tested models. To actually saturate those 1024 CUDA cores and hit compute-bound operation, you’d need an operational intensity around 147 FLOPs/byte at the device’s 68 GB/s memory bandwidth.

In practice, for a model to actually become compute-bound on this device, it would need an operational intensity exceeding:

OI_threshold = Peak_Compute / Memory_Bandwidth
+             = (40 × 10^12 ops/s) / (68 × 10^9 bytes/s)
+             = 588 FLOPs/byte
+

Current LLM architectures fall 100-600× short of this threshold during autoregressive decoding. The compute units are idle most of the time, simply waiting for model weights and activations to arrive from memory.

Interestingly, the largest model tested—gemma3n:e2b at 11GB and 5.44B parameters—achieved the highest efficiency at 58.1%. This makes sense: its massive 4.4 GB/token memory requirement means it’s saturating the memory bandwidth, so actual performance approaches the theoretical ceiling. The model’s Mixture-of-Experts architecture helps too, since it only activates a subset of parameters per token, reducing memory movement while maintaining model capacity.

What This Means for Deployment + +Link to heading

The performance gap between Ollama and vLLM (2.3-5.7×) tells us something important about optimization priorities for edge devices:

Qwen 2.5 0.5B: Ollama (Q4_K_M, 350MB) at 35.24 t/s vs vLLM (FP16, 1GB) at 15.18 t/s—2.32× faster +Qwen 3 0.6B: Ollama (FP8) at 38.84 t/s vs vLLM (FP8) at 12.81 t/s—3.03× faster despite identical quantization +Gemma 3 1B: Ollama (Q4_K_M, 815MB) at 26.33 t/s vs vLLM (FP16, 2GB) at 4.59 t/s—5.74× faster

Quantization delivers near-linear performance gains by directly attacking the memory bandwidth bottleneck. Q4_K_M quantization (4.5 bits/parameter) hits a sweet spot between model quality and speed. Going lower to INT2 might help further, but you’ll need to carefully evaluate output quality.

The real insight: Ollama’s edge-first design philosophy (GGUF format, streamlined execution, optimized kernels from llama.cpp) is fundamentally better aligned with single-stream, memory-constrained edge scenarios. vLLM’s datacenter features—continuous batching, PagedAttention, tensor parallelism—add overhead without providing benefits on unified memory architectures serving single users.

What you should actually do: Stick with Ollama or TensorRT-LLM using Q4_K_M/INT4 quantized models in GGUF format. Target the 0.5-1B parameter range (under 3GB) to leave headroom for KV cache. Focus your optimization efforts on memory access patterns and bandwidth reduction. Watch for emerging techniques like INT4 AWQ, sparse attention, and quantized KV caches.

Room for Improvement + +Link to heading

The 26.8% average efficiency might sound terrible, but it’s actually typical for edge AI devices. Datacenter GPUs hit 60-80% on optimized workloads, while edge devices commonly land in the 30-50% range due to architectural tradeoffs.

Three factors explain the gap:

  1. Architecture: Unified memory sacrifices bandwidth for integration simplicity. The 4MB L2 cache and 7-15W TDP limit further constrain performance.
  2. Software maturity: Edge inference frameworks lag behind their datacenter counterparts in optimization.
  3. Runtime overhead: Quantization/dequantization operations, Python abstractions, and non-optimized kernels all add up.

The gemma3n:e2b model proving that 58.1% is achievable suggests smaller models could see 2-3× speedups through better software. But fundamental performance leaps will require hardware changes—specifically, prioritizing memory bandwidth (200+ GB/s) over raw compute capability in future edge AI chips.

Where to Go From Here + +Link to heading

Software Optimizations Worth Pursuing + +Link to heading

  • Optimize memory access patterns in attention and MLP kernels
  • Implement quantized KV cache (8-bit or lower)
  • Tune for small batch sizes (2-4) to improve memory bus utilization
  • Overlap CPU-GPU pipeline operations to hide latency

Research Directions + +Link to heading

  • Architectures with higher operational intensity (fewer memory accesses per compute operation)
  • Sparse attention patterns to reduce memory movement
  • On-device LoRA fine-tuning with frozen, quantized base weights
  • Multi-model serving with shared base model weights

What Hardware Designers Should Focus On + +Link to heading

Future edge AI devices need a fundamental shift in priorities: memory bandwidth over raw compute capability. Specifically:

  • 200+ GB/s memory bandwidth (3× current Jetson Orin Nano)
  • HBM integration for higher bandwidth density
  • 16GB+ capacity to support 7B+ parameter models
  • Purpose-built INT4/INT8 accelerators with larger on-chip caches to reduce DRAM traffic

References + +Link to heading

  1. Williams, S., Waterman, A., & Patterson, D. (2009). “Roofline: An Insightful Visual Performance Model for Multicore Architectures.” Communications of the ACM, 52(4), 65-76.

  2. NVIDIA Corporation. (2024). “Jetson Orin Nano Developer Kit Technical Specifications.” https://developer.nvidia.com/embedded/jetson-orin-nano-developer-kit

  3. “Jetson AI Lab Benchmarks.” NVIDIA Jetson AI Lab. https://www.jetson-ai-lab.com/benchmarks.html

  4. Gerganov, G., et al. (2023). “GGML - AI at the edge.” GitHub. https://github.com/ggerganov/ggml

  5. Kwon, W., et al. (2023). “Efficient Memory Management for Large Language Model Serving with PagedAttention.” Proceedings of SOSP 2023.

  6. Team, G., Mesnard, T., et al. (2025). “Gemma 3: Technical Report.” arXiv preprint arXiv:2503.19786v1. https://arxiv.org/html/2503.19786v1

  7. Yang, A., et al. (2025). “Qwen3 Technical Report.” arXiv preprint arXiv:2505.09388. https://arxiv.org/pdf/2505.09388

  8. DeepSeek-AI. (2025). “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning.” arXiv preprint arXiv:2501.12948v1. https://arxiv.org/html/2501.12948v1

  9. “Running LLMs with TensorRT-LLM on NVIDIA Jetson Orin Nano Super.” Collabnix. https://collabnix.com/running-llms-with-tensorrt-llm-on-nvidia-jetson-orin-nano-super/

  10. Pope, R., et al. (2022). “Efficiently Scaling Transformer Inference.” Proceedings of MLSys 2022.

  11. Frantar, E., et al. (2023). “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers.” Proceedings of ICLR 2023.

  12. Dettmers, T., et al. (2023). “QLoRA: Efficient Finetuning of Quantized LLMs.” Proceedings of NeurIPS 2023.

  13. Lin, J., et al. (2023). “AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration.” arXiv preprint arXiv:2306.00978.

\ No newline at end of file diff --git a/posts/breville-barista-pro-maintenance/index.html b/posts/breville-barista-pro-maintenance/index.html index a8ced57..bf0c862 100644 --- a/posts/breville-barista-pro-maintenance/index.html +++ b/posts/breville-barista-pro-maintenance/index.html @@ -8,7 +8,7 @@ The Breville Barista Pro has two distinct, automated maintenance procedures: the Cleaning (Flush) Cycle and the Descale Cycle. It is important to understand that these are not interchangeable, as they address different types of buildup within the machine.">
\ No newline at end of file diff --git a/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html b/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html index c1103d0..a92c518 100644 --- a/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html +++ b/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/index.html @@ -1,7 +1,7 @@ Mastering Your Breville Barista Pro: The Ultimate Guide to Dialing In Espresso · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html b/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html index 9fcd19a..7b3afbc 100644 --- a/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html +++ b/posts/flashing-jetson-orin-nano-in-virtualized-environments/index.html @@ -12,7 +12,7 @@ Link to heading -Flashing NVIDIA Jetson devices remotely presents unique challenges when the host machine is virtualized. This article documents the technical challenges, failures, and eventual success of flashing a Jetson Orin Nano Super developer kit using NVIDIA SDK Manager in various virtualized environments, specifically focusing on QEMU/KVM virtual machines and LXC containers on Proxmox VE.">
\ No newline at end of file diff --git a/posts/how-rvq-teaches-llms-to-see-and-hear/index.html b/posts/how-rvq-teaches-llms-to-see-and-hear/index.html index 1571b84..872f173 100644 --- a/posts/how-rvq-teaches-llms-to-see-and-hear/index.html +++ b/posts/how-rvq-teaches-llms-to-see-and-hear/index.html @@ -1,7 +1,7 @@ Beyond Words: How RVQ Teaches LLMs to See and Hear · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/posts/index.html b/posts/index.html index 0ae9fb5..b5881f9 100644 --- a/posts/index.html +++ b/posts/index.html @@ -1,6 +1,7 @@ -Posts · Eric X. Liu's Personal Page
\ No newline at end of file +[0e4b419] \ No newline at end of file diff --git a/posts/index.xml b/posts/index.xml index b8c5c04..278ae03 100644 --- a/posts/index.xml +++ b/posts/index.xml @@ -1,4 +1,12 @@ -Posts on Eric X. Liu's Personal Page/posts/Recent content in Posts on Eric X. Liu's Personal PageHugoenThu, 02 Oct 2025 08:42:39 +0000Flashing Jetson Orin Nano in Virtualized Environments/posts/flashing-jetson-orin-nano-in-virtualized-environments/Thu, 02 Oct 2025 00:00:00 +0000/posts/flashing-jetson-orin-nano-in-virtualized-environments/<h1 id="flashing-jetson-orin-nano-in-virtualized-environments"> +Posts on Eric X. Liu's Personal Page/posts/Recent content in Posts on Eric X. Liu's Personal PageHugoenSat, 04 Oct 2025 05:52:46 +0000Why Your Jetson Orin Nano's 40 TOPS Goes Unused (And What That Means for Edge AI)/posts/benchmarking-llms-on-jetson-orin-nano/Sat, 04 Oct 2025 00:00:00 +0000/posts/benchmarking-llms-on-jetson-orin-nano/<h2 id="introduction"> + Introduction + <a class="heading-link" href="#introduction"> + <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i> + <span class="sr-only">Link to heading</span> + </a> +</h2> +<p>NVIDIA&rsquo;s Jetson Orin Nano promises impressive specs: 1024 CUDA cores, 32 Tensor Cores, and 40 TOPS of INT8 compute performance packed into a compact, power-efficient edge device. On paper, it looks like a capable platform for running Large Language Models locally. But there&rsquo;s a catch—one that reveals a fundamental tension in modern edge AI hardware design.</p> +<p>After running 66 inference tests across seven different language models ranging from 0.5B to 5.4B parameters, I discovered something counterintuitive: the device&rsquo;s computational muscle sits largely idle during LLM inference. The bottleneck isn&rsquo;t computation—it&rsquo;s memory bandwidth. This isn&rsquo;t just a quirk of one device; it&rsquo;s a reality that affects how we should think about deploying LLMs at the edge.</p>Flashing Jetson Orin Nano in Virtualized Environments/posts/flashing-jetson-orin-nano-in-virtualized-environments/Thu, 02 Oct 2025 00:00:00 +0000/posts/flashing-jetson-orin-nano-in-virtualized-environments/<h1 id="flashing-jetson-orin-nano-in-virtualized-environments"> Flashing Jetson Orin Nano in Virtualized Environments <a class="heading-link" href="#flashing-jetson-orin-nano-in-virtualized-environments"> <i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"></i> diff --git a/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html b/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html index 8bd25a7..efcfeae 100644 --- a/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html +++ b/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/index.html @@ -9,7 +9,7 @@ The Problem: Many routing mechanisms, especially “Top-K routing,” involve a discrete, hard selection process. A common function is KeepTopK(v, k), which selects the top k scoring elements from a vector v and sets others to $-\infty$ or $0$.">
\ No newline at end of file diff --git a/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html b/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html index e190d23..4d94fb3 100644 --- a/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html +++ b/posts/openwrt-mwan3-wireguard-endpoint-exclusion/index.html @@ -5,7 +5,7 @@ Link to heading -When using WireGuard together with MWAN3 on OpenWrt, the tunnel can fail to establish or flap when the peer’s IP is routed into the tunnel itself. This is a classic routing bootstrap problem: WireGuard wants to route 0.0.0.0/0 into the tunnel, but the UDP packets to the peer’s public endpoint also get captured, so they never reach the Internet to bring the tunnel up.">
\ No newline at end of file diff --git a/posts/page/2/index.html b/posts/page/2/index.html index 7da3a73..6a872d9 100644 --- a/posts/page/2/index.html +++ b/posts/page/2/index.html @@ -1,6 +1,7 @@ -Posts · Eric X. Liu's Personal Page
\ No newline at end of file +[0e4b419] \ No newline at end of file diff --git a/posts/ppo-for-language-models/index.html b/posts/ppo-for-language-models/index.html index 5acb6f4..e07b51b 100644 --- a/posts/ppo-for-language-models/index.html +++ b/posts/ppo-for-language-models/index.html @@ -2,7 +2,7 @@ You may have seen diagrams like the one below, which outlines the RLHF training process. It can look intimidating, with a web of interconnected models, losses, and data flows. ">
\ No newline at end of file diff --git a/posts/quantization-in-llms/index.html b/posts/quantization-in-llms/index.html index 53934bf..108042a 100644 --- a/posts/quantization-in-llms/index.html +++ b/posts/quantization-in-llms/index.html @@ -1,4 +1,4 @@ -Quantization in LLMs · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html b/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html index 9883b31..870e01f 100644 --- a/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html +++ b/posts/secure-boot-dkms-and-mok-on-proxmox-debian/index.html @@ -5,7 +5,7 @@ modprobe nvidia → “Key was rejected by service” That message is the tell: Secure Boot is enabled and the kernel refuses to load modules not signed by a trusted key.">
\ No newline at end of file diff --git a/posts/supabase-deep-dive/index.html b/posts/supabase-deep-dive/index.html index d9196fb..659adaf 100644 --- a/posts/supabase-deep-dive/index.html +++ b/posts/supabase-deep-dive/index.html @@ -1,7 +1,7 @@ Supabase Deep Dive: It's Not Magic, It's Just Postgres · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html b/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html index 9e42e01..c14f931 100644 --- a/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html +++ b/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/index.html @@ -1,7 +1,7 @@ An Architectural Deep Dive of T5 · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/posts/transformer-s-core-mechanics/index.html b/posts/transformer-s-core-mechanics/index.html index 69ad6e9..b7f5cf9 100644 --- a/posts/transformer-s-core-mechanics/index.html +++ b/posts/transformer-s-core-mechanics/index.html @@ -8,7 +8,7 @@ In deep learning, a “channel” can be thought of as a feature dimension. While this term is common in Convolutional Neural Networks for images (e.g., Red, Green, Blue channels), in LLMs, the analogous concept is the model’s primary embedding dimension, commonly referred to as d_model.">
\ No newline at end of file diff --git a/posts/unifi-vlan-migration-to-zone-based-architecture/index.html b/posts/unifi-vlan-migration-to-zone-based-architecture/index.html index 468e466..a7bdc48 100644 --- a/posts/unifi-vlan-migration-to-zone-based-architecture/index.html +++ b/posts/unifi-vlan-migration-to-zone-based-architecture/index.html @@ -1,7 +1,7 @@ UniFi VLAN Migration to Zone-Based Architecture · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/posts/useful/index.html b/posts/useful/index.html index aa5fc27..a3c3ae2 100644 --- a/posts/useful/index.html +++ b/posts/useful/index.html @@ -1,6 +1,6 @@ Some useful files · Eric X. Liu's Personal Page
\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index f8eb817..919524e 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -/2025-10-02T08:42:39+00:00weekly0.5/posts/flashing-jetson-orin-nano-in-virtualized-environments/2025-10-02T08:42:39+00:00weekly0.5/posts/2025-10-02T08:42:39+00:00weekly0.5/posts/openwrt-mwan3-wireguard-endpoint-exclusion/2025-10-02T08:34:05+00:00weekly0.5/posts/unifi-vlan-migration-to-zone-based-architecture/2025-10-02T08:42:39+00:00weekly0.5/posts/quantization-in-llms/2025-08-20T06:02:35+00:00weekly0.5/posts/breville-barista-pro-maintenance/2025-08-20T06:04:36+00:00weekly0.5/posts/secure-boot-dkms-and-mok-on-proxmox-debian/2025-08-14T06:50:22+00:00weekly0.5/posts/how-rvq-teaches-llms-to-see-and-hear/2025-08-08T17:36:52+00:00weekly0.5/posts/supabase-deep-dive/2025-08-04T03:59:37+00:00weekly0.5/posts/ppo-for-language-models/2025-10-02T08:42:39+00:00weekly0.5/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/2025-08-03T06:02:48+00:00weekly0.5/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/2025-08-03T03:41:10+00:00weekly0.5/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/2025-08-03T04:20:20+00:00weekly0.5/posts/transformer-s-core-mechanics/2025-10-02T08:42:39+00:00weekly0.5/posts/useful/2025-08-03T08:37:28-07:00weekly0.5/about/2020-06-16T23:30:17-07:00weekly0.5/categories/weekly0.5/tags/weekly0.5 \ No newline at end of file +/2025-10-04T05:52:46+00:00weekly0.5/posts/2025-10-04T05:52:46+00:00weekly0.5/posts/benchmarking-llms-on-jetson-orin-nano/2025-10-04T05:52:46+00:00weekly0.5/posts/flashing-jetson-orin-nano-in-virtualized-environments/2025-10-02T08:42:39+00:00weekly0.5/posts/openwrt-mwan3-wireguard-endpoint-exclusion/2025-10-02T08:34:05+00:00weekly0.5/posts/unifi-vlan-migration-to-zone-based-architecture/2025-10-02T08:42:39+00:00weekly0.5/posts/quantization-in-llms/2025-08-20T06:02:35+00:00weekly0.5/posts/breville-barista-pro-maintenance/2025-08-20T06:04:36+00:00weekly0.5/posts/secure-boot-dkms-and-mok-on-proxmox-debian/2025-08-14T06:50:22+00:00weekly0.5/posts/how-rvq-teaches-llms-to-see-and-hear/2025-08-08T17:36:52+00:00weekly0.5/posts/supabase-deep-dive/2025-08-04T03:59:37+00:00weekly0.5/posts/ppo-for-language-models/2025-10-02T08:42:39+00:00weekly0.5/posts/mixture-of-experts-moe-models-challenges-solutions-in-practice/2025-08-03T06:02:48+00:00weekly0.5/posts/t5-the-transformer-that-zigged-when-others-zagged-an-architectural-deep-dive/2025-08-03T03:41:10+00:00weekly0.5/posts/espresso-theory-application-a-guide-for-the-breville-barista-pro/2025-08-03T04:20:20+00:00weekly0.5/posts/transformer-s-core-mechanics/2025-10-02T08:42:39+00:00weekly0.5/posts/useful/2025-08-03T08:37:28-07:00weekly0.5/about/2020-06-16T23:30:17-07:00weekly0.5/categories/weekly0.5/tags/weekly0.5 \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 967adf4..4698950 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,7 +1,7 @@ -Tags · Eric X. Liu's Personal Page
\ No newline at end of file