diff --git a/css/plugins.css b/css/plugins.css
new file mode 100644
index 0000000000000000000000000000000000000000..911751d147f41f1c5c2dbb5d6ff3104f7a49c3b1
--- /dev/null
+++ b/css/plugins.css
@@ -0,0 +1,1044 @@
+/*
+	List of plugins
+
+	1. Base CSS (made by SRBThemes)
+
+*/
+
+/*------------------------------------------------------------------*/
+
+/*	1. Base CSS
+/*------------------------------------------------------------------*/
+
+a,
+abbr,
+acronym,
+address,
+applet,
+b,
+big,
+blockquote,
+body,
+caption,
+center,
+cite,
+code,
+dd,
+del,
+dfn,
+div,
+dl,
+dt,
+em,
+fieldset,
+font,
+form,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+html,
+i,
+iframe,
+ins,
+kbd,
+label,
+legend,
+li,
+object,
+ol,
+p,
+pre,
+q,
+s,
+samp,
+small,
+span,
+strike,
+strong,
+sub,
+sup,
+table,
+tbody,
+td,
+tfoot,
+th,
+thead,
+tr,
+tt,
+u,
+ul,
+var {
+    background: 0 0;
+    border: 0;
+    margin: 0;
+    padding: 0;
+    vertical-align: baseline;
+    outline: 0
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+    display: block
+}
+
+blockquote {
+    quotes: none
+}
+
+blockquote:after,
+blockquote:before {
+    content: '';
+    content: none
+}
+
+ol,
+ul {
+    margin: 30px
+}
+
+ol li,
+ul li {
+    margin-bottom: 5px
+}
+
+img {
+    vertical-align: middle;
+    max-width: 100%
+}
+
+iframe {
+    max-width: 100%
+}
+
+del {
+    text-decoration: line-through
+}
+
+a,
+i {
+    -webkit-transition: all .3s ease;
+    -moz-transition: all .3s ease;
+    -ms-transition: all .3s ease;
+    -o-transition: all .3s ease;
+    transition: all .3s ease;
+    border: none
+}
+
+a:hover {
+    text-decoration: none
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    font-weight: 400;
+    margin-bottom: 20px
+}
+
+h1 {
+    font-size: 45px
+}
+
+h2 {
+    font-size: 36px
+}
+
+h3 {
+    font-size: 30px
+}
+
+h4 {
+    font-size: 24px
+}
+
+h5 {
+    font-size: 20px
+}
+
+h6 {
+    font-size: 16px
+}
+
+table {
+    width: 100%;
+    max-width: 100%;
+    text-align: left;
+    border-collapse: collapse;
+    border-spacing: 0px;
+    margin-bottom: 15px;
+    color: var(--techwave-body-color);
+    border: 1px solid var(--techwave-border-color)
+}
+
+table tr {
+    border: 1px solid var(--techwave-border-color)
+}
+
+table th {
+    vertical-align: top;
+    color: var(--techwave-heading-color);
+    background: 0 0;
+    font-size: 16px;
+    font-weight: 400;
+    padding: 15px 10px;
+    border: 1px solid var(--techwave-border-color)
+}
+
+table td {
+    vertical-align: top;
+    padding: 10px;
+    border: 1px solid var(--techwave-border-color)
+}
+
+code,
+pre {
+    padding: 10px;
+    border-left: 3px solid var(--techwave-main-color);
+    border-bottom: 1px solid transparent;
+    background: var(--techwave-some-a-bg-color);
+    overflow-x: auto;
+}
+
+pre {
+    display: block;
+    word-break: break-all;
+    word-wrap: break-word
+}
+
+pre code {
+    white-space: pre-wrap
+}
+
+textarea {
+    outline: none;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    resize: vertical;
+    font-family: var(--techwave-heading-font-family);
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -ms-box-sizing: border-box;
+    box-sizing: border-box;
+    line-height: 1.4;
+    padding: 10px;
+    width: 100%;
+    border-radius: 5px;
+    border: 2px solid var(--techwave-border-color);
+    -webkit-transition: all .3s ease;
+    -moz-transition: all .3s ease;
+    -ms-transition: all .3s ease;
+    -o-transition: all .3s ease;
+    transition: all .3s ease;
+    background-color: transparent;
+}
+
+.uneditable-input,
+input[type=color],
+input[type=date],
+input[type=datetime-local],
+input[type=datetime],
+input[type=email],
+input[type=month],
+input[type=number],
+input[type=password],
+input[type=search],
+input[type=tel],
+input[type=text],
+input[type=time],
+input[type=url],
+input[type=week] {
+    font-size: 16px;
+    min-width: 220px;
+    color: var(--techwave-heading-color);
+    letter-spacing: .5px;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -ms-box-sizing: border-box;
+    box-sizing: border-box;
+    font-family: var(--techwave-heading-font-family);
+    line-height: 1.6;
+    padding: 10px 20px;
+    height: 40px;
+    vertical-align: middle;
+    border: 2px solid var(--techwave-border-color);
+    -webkit-transition: all .3s ease;
+    -moz-transition: all .3s ease;
+    -ms-transition: all .3s ease;
+    -o-transition: all .3s ease;
+    transition: all .3s ease;
+    background-color: transparent;
+    border-radius: 20px;
+    outline: none;
+}
+
+.uneditable-input:focus,
+input[type=color]:focus,
+input[type=date]:focus,
+input[type=datetime-local]:focus,
+input[type=datetime]:focus,
+input[type=email]:focus,
+input[type=month]:focus,
+input[type=number]:focus,
+input[type=password]:focus,
+input[type=search]:focus,
+input[type=tel]:focus,
+input[type=text]:focus,
+input[type=time]:focus,
+input[type=url]:focus,
+input[type=week]:focus,
+textarea:focus {
+    border-color: var(--techwave-main-color);
+}
+
+input[type=submit] {
+    padding: 13px 15px;
+    height: 40px;
+    line-height: 1;
+    text-transform: uppercase;
+    font-size: 13px;
+    font-weight: 600;
+    text-decoration: none;
+    letter-spacing: .5px;
+    border: none;
+    cursor: pointer;
+    color: #fff;
+    background: #777;
+    -webkit-transition: all .3s ease;
+    -moz-transition: all .3s ease;
+    -ms-transition: all .3s ease;
+    -o-transition: all .3s ease;
+    transition: all .3s ease
+}
+
+input[type=submit]:hover {
+    background: #444
+}
+
+select {
+    padding: 8px;
+    border: 2px solid var(--techwave-border-color)
+}
+
+input[type=button] {
+    cursor: pointer;
+    -webkit-transition: all .3s ease;
+    -moz-transition: all .3s ease;
+    -ms-transition: all .3s ease;
+    -o-transition: all .3s ease;
+    transition: all .3s ease
+}
+
+[class^="fn__space__"]:after,
+[class^="fn__space__"]:before {
+    clear: both;
+    display: table;
+    content: '';
+}
+
+.fn__space__10 {
+    margin-bottom: 10px;
+}
+
+.fn__space__20 {
+    margin-bottom: 20px;
+}
+
+.fn__space__30 {
+    margin-bottom: 30px;
+}
+
+.fn__space__40 {
+    margin-bottom: 40px;
+}
+
+.fn__space__50 {
+    margin-bottom: 50px;
+}
+
+.fn__space__60 {
+    margin-bottom: 60px;
+}
+
+.fn__space__70 {
+    margin-bottom: 70px;
+}
+
+.fn__space__80 {
+    margin-bottom: 80px;
+}
+
+.fn__space__90 {
+    margin-bottom: 90px;
+}
+
+.fn__space__100 {
+    margin-bottom: 100px;
+}
+
+.fn__space__150 {
+    margin-bottom: 150px;
+}
+
+.fn__space__200 {
+    margin-bottom: 200px;
+}
+
+/* TOOLTIPSTER BUNDLE MIN */
+
+.tooltipster-fall,
+.tooltipster-grow.tooltipster-show {
+    -webkit-transition-timing-function: cubic-bezier(.175, .885, .32, 1);
+    -moz-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    -ms-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    -o-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15)
+}
+
+.tooltipster-base {
+    display: flex;
+    pointer-events: none;
+    position: absolute
+}
+
+.tooltipster-box {
+    flex: 1 1 auto
+}
+
+.tooltipster-content {
+    box-sizing: border-box;
+    max-height: 100%;
+    max-width: 100%;
+    overflow: auto
+}
+
+.tooltipster-ruler {
+    bottom: 0;
+    left: 0;
+    overflow: hidden;
+    position: fixed;
+    right: 0;
+    top: 0;
+    visibility: hidden
+}
+
+.tooltipster-fade {
+    opacity: 0;
+    -webkit-transition-property: opacity;
+    -moz-transition-property: opacity;
+    -o-transition-property: opacity;
+    -ms-transition-property: opacity;
+    transition-property: opacity
+}
+
+.tooltipster-fade.tooltipster-show {
+    opacity: 1
+}
+
+.tooltipster-grow {
+    -webkit-transform: scale(0, 0);
+    -moz-transform: scale(0, 0);
+    -o-transform: scale(0, 0);
+    -ms-transform: scale(0, 0);
+    transform: scale(0, 0);
+    -webkit-transition-property: -webkit-transform;
+    -moz-transition-property: -moz-transform;
+    -o-transition-property: -o-transform;
+    -ms-transition-property: -ms-transform;
+    transition-property: transform;
+    -webkit-backface-visibility: hidden
+}
+
+.tooltipster-grow.tooltipster-show {
+    -webkit-transform: scale(1, 1);
+    -moz-transform: scale(1, 1);
+    -o-transform: scale(1, 1);
+    -ms-transform: scale(1, 1);
+    transform: scale(1, 1);
+    -webkit-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    transition-timing-function: cubic-bezier(.175, .885, .32, 1.15)
+}
+
+.tooltipster-swing {
+    opacity: 0;
+    -webkit-transform: rotateZ(4deg);
+    -moz-transform: rotateZ(4deg);
+    -o-transform: rotateZ(4deg);
+    -ms-transform: rotateZ(4deg);
+    transform: rotateZ(4deg);
+    -webkit-transition-property: -webkit-transform, opacity;
+    -moz-transition-property: -moz-transform;
+    -o-transition-property: -o-transform;
+    -ms-transition-property: -ms-transform;
+    transition-property: transform
+}
+
+.tooltipster-swing.tooltipster-show {
+    opacity: 1;
+    -webkit-transform: rotateZ(0);
+    -moz-transform: rotateZ(0);
+    -o-transform: rotateZ(0);
+    -ms-transform: rotateZ(0);
+    transform: rotateZ(0);
+    -webkit-transition-timing-function: cubic-bezier(.23, .635, .495, 1);
+    -webkit-transition-timing-function: cubic-bezier(.23, .635, .495, 2.4);
+    -moz-transition-timing-function: cubic-bezier(.23, .635, .495, 2.4);
+    -ms-transition-timing-function: cubic-bezier(.23, .635, .495, 2.4);
+    -o-transition-timing-function: cubic-bezier(.23, .635, .495, 2.4);
+    transition-timing-function: cubic-bezier(.23, .635, .495, 2.4)
+}
+
+.tooltipster-fall {
+    -webkit-transition-property: top;
+    -moz-transition-property: top;
+    -o-transition-property: top;
+    -ms-transition-property: top;
+    transition-property: top;
+    -webkit-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    transition-timing-function: cubic-bezier(.175, .885, .32, 1.15)
+}
+
+.tooltipster-fall.tooltipster-initial {
+    top: 0 !important
+}
+
+.tooltipster-fall.tooltipster-dying {
+    -webkit-transition-property: all;
+    -moz-transition-property: all;
+    -o-transition-property: all;
+    -ms-transition-property: all;
+    transition-property: all;
+    top: 0 !important;
+    opacity: 0
+}
+
+.tooltipster-slide {
+    -webkit-transition-property: left;
+    -moz-transition-property: left;
+    -o-transition-property: left;
+    -ms-transition-property: left;
+    transition-property: left;
+    -webkit-transition-timing-function: cubic-bezier(.175, .885, .32, 1);
+    -webkit-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    -moz-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    -ms-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    -o-transition-timing-function: cubic-bezier(.175, .885, .32, 1.15);
+    transition-timing-function: cubic-bezier(.175, .885, .32, 1.15)
+}
+
+.tooltipster-slide.tooltipster-initial {
+    left: -40px !important
+}
+
+.tooltipster-slide.tooltipster-dying {
+    -webkit-transition-property: all;
+    -moz-transition-property: all;
+    -o-transition-property: all;
+    -ms-transition-property: all;
+    transition-property: all;
+    left: 0 !important;
+    opacity: 0
+}
+
+@keyframes tooltipster-fading {
+    0% {
+        opacity: 0
+    }
+    100% {
+        opacity: 1
+    }
+}
+
+.tooltipster-update-fade {
+    animation: tooltipster-fading .4s
+}
+
+@keyframes tooltipster-rotating {
+    25% {
+        transform: rotate(-2deg)
+    }
+    75% {
+        transform: rotate(2deg)
+    }
+    100% {
+        transform: rotate(0)
+    }
+}
+
+.tooltipster-update-rotate {
+    animation: tooltipster-rotating .6s
+}
+
+@keyframes tooltipster-scaling {
+    50% {
+        transform: scale(1.1)
+    }
+    100% {
+        transform: scale(1)
+    }
+}
+
+.tooltipster-update-scale {
+    animation: tooltipster-scaling .6s
+}
+
+.tooltipster-sidetip .tooltipster-box {
+    background: #565656;
+    border: 2px solid #000;
+    border-radius: 4px
+}
+
+.tooltipster-sidetip.tooltipster-bottom .tooltipster-box {
+    margin-top: 8px
+}
+
+.tooltipster-sidetip.tooltipster-left .tooltipster-box {
+    margin-right: 8px
+}
+
+.tooltipster-sidetip.tooltipster-right .tooltipster-box {
+    margin-left: 8px
+}
+
+.tooltipster-sidetip.tooltipster-top .tooltipster-box {
+    margin-bottom: 8px
+}
+
+.tooltipster-sidetip .tooltipster-content {
+    color: #fff;
+    line-height: 18px;
+    padding: 6px 14px
+}
+
+.tooltipster-sidetip .tooltipster-arrow {
+    overflow: hidden;
+    position: absolute
+}
+
+.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
+    height: 10px;
+    margin-left: -10px;
+    top: 0;
+    width: 20px
+}
+
+.tooltipster-sidetip.tooltipster-left .tooltipster-arrow {
+    height: 20px;
+    margin-top: -10px;
+    right: 0;
+    top: 0;
+    width: 10px
+}
+
+.tooltipster-sidetip.tooltipster-right .tooltipster-arrow {
+    height: 20px;
+    margin-top: -10px;
+    left: 0;
+    top: 0;
+    width: 10px
+}
+
+.tooltipster-sidetip.tooltipster-top .tooltipster-arrow {
+    bottom: 0;
+    height: 10px;
+    margin-left: -10px;
+    width: 20px
+}
+
+.tooltipster-sidetip .tooltipster-arrow-background,
+.tooltipster-sidetip .tooltipster-arrow-border {
+    height: 0;
+    position: absolute;
+    width: 0
+}
+
+.tooltipster-sidetip .tooltipster-arrow-background {
+    border: 10px solid transparent
+}
+
+.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background {
+    border-bottom-color: #565656;
+    left: 0;
+    top: 3px
+}
+
+.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background {
+    border-left-color: #565656;
+    left: -3px;
+    top: 0
+}
+
+.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background {
+    border-right-color: #565656;
+    left: 3px;
+    top: 0
+}
+
+.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background {
+    border-top-color: #565656;
+    left: 0;
+    top: -3px
+}
+
+.tooltipster-sidetip .tooltipster-arrow-border {
+    border: 10px solid transparent;
+    left: 0;
+    top: 0
+}
+
+.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border {
+    border-bottom-color: #000
+}
+
+.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border {
+    border-left-color: #000
+}
+
+.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border {
+    border-right-color: #000
+}
+
+.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border {
+    border-top-color: #000
+}
+
+.tooltipster-sidetip .tooltipster-arrow-uncropped {
+    position: relative
+}
+
+.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped {
+    top: -10px
+}
+
+.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped {
+    left: -10px
+}
+
+.tooltipster-sidetip.tooltipster-borderless .tooltipster-box {
+    border: none;
+    background: #1b1b1b;
+    background: rgba(10, 10, 10, .9)
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-bottom .tooltipster-box {
+    margin-top: 8px
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-left .tooltipster-box {
+    margin-right: 8px
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-box {
+    margin-left: 8px
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-top .tooltipster-box {
+    margin-bottom: 8px
+}
+
+.tooltipster-sidetip.tooltipster-borderless .tooltipster-arrow {
+    height: 8px;
+    margin-left: -8px;
+    width: 16px
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-left .tooltipster-arrow,
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-arrow {
+    height: 16px;
+    margin-left: 0;
+    margin-top: -8px;
+    width: 8px
+}
+
+.tooltipster-sidetip.tooltipster-borderless .tooltipster-arrow-background {
+    display: none
+}
+
+.tooltipster-sidetip.tooltipster-borderless .tooltipster-arrow-border {
+    border: 8px solid transparent
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-bottom .tooltipster-arrow-border {
+    border-bottom-color: #1b1b1b;
+    border-bottom-color: rgba(10, 10, 10, .9)
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-left .tooltipster-arrow-border {
+    border-left-color: #1b1b1b;
+    border-left-color: rgba(10, 10, 10, .9)
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-arrow-border {
+    border-right-color: #1b1b1b;
+    border-right-color: rgba(10, 10, 10, .9)
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-top .tooltipster-arrow-border {
+    border-top-color: #1b1b1b;
+    border-top-color: rgba(10, 10, 10, .9)
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-bottom .tooltipster-arrow-uncropped {
+    top: -8px
+}
+
+.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-arrow-uncropped {
+    left: -8px
+}
+
+.tooltipster-sidetip.tooltipster-light .tooltipster-box {
+    border-radius: 3px;
+    border: 1px solid #ccc;
+    background: #ededed
+}
+
+.tooltipster-sidetip.tooltipster-light .tooltipster-content {
+    color: #666
+}
+
+.tooltipster-sidetip.tooltipster-light .tooltipster-arrow {
+    height: 9px;
+    margin-left: -9px;
+    width: 18px
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-left .tooltipster-arrow,
+.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow {
+    height: 18px;
+    margin-left: 0;
+    margin-top: -9px;
+    width: 9px
+}
+
+.tooltipster-sidetip.tooltipster-light .tooltipster-arrow-background {
+    border: 9px solid transparent
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-bottom .tooltipster-arrow-background {
+    border-bottom-color: #ededed;
+    top: 1px
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-left .tooltipster-arrow-background {
+    border-left-color: #ededed;
+    left: -1px
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow-background {
+    border-right-color: #ededed;
+    left: 1px
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-top .tooltipster-arrow-background {
+    border-top-color: #ededed;
+    top: -1px
+}
+
+.tooltipster-sidetip.tooltipster-light .tooltipster-arrow-border {
+    border: 9px solid transparent
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-bottom .tooltipster-arrow-border {
+    border-bottom-color: #ccc
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-left .tooltipster-arrow-border {
+    border-left-color: #ccc
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow-border {
+    border-right-color: #ccc
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-top .tooltipster-arrow-border {
+    border-top-color: #ccc
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-bottom .tooltipster-arrow-uncropped {
+    top: -9px
+}
+
+.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow-uncropped {
+    left: -9px
+}
+
+.tooltipster-sidetip.tooltipster-noir .tooltipster-box {
+    border-radius: 0;
+    border: 3px solid #000;
+    background: #fff
+}
+
+.tooltipster-sidetip.tooltipster-noir .tooltipster-content {
+    color: #000
+}
+
+.tooltipster-sidetip.tooltipster-noir .tooltipster-arrow {
+    height: 11px;
+    margin-left: -11px;
+    width: 22px
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-left .tooltipster-arrow,
+.tooltipster-sidetip.tooltipster-noir.tooltipster-right .tooltipster-arrow {
+    height: 22px;
+    margin-left: 0;
+    margin-top: -11px;
+    width: 11px
+}
+
+.tooltipster-sidetip.tooltipster-noir .tooltipster-arrow-background {
+    border: 11px solid transparent
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-bottom .tooltipster-arrow-background {
+    border-bottom-color: #fff;
+    top: 4px
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-left .tooltipster-arrow-background {
+    border-left-color: #fff;
+    left: -4px
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-right .tooltipster-arrow-background {
+    border-right-color: #fff;
+    left: 4px
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-top .tooltipster-arrow-background {
+    border-top-color: #fff;
+    top: -4px
+}
+
+.tooltipster-sidetip.tooltipster-noir .tooltipster-arrow-border {
+    border-width: 11px
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-bottom .tooltipster-arrow-uncropped {
+    top: -11px
+}
+
+.tooltipster-sidetip.tooltipster-noir.tooltipster-right .tooltipster-arrow-uncropped {
+    left: -11px
+}
+
+.tooltipster-sidetip.tooltipster-punk .tooltipster-box {
+    border-radius: 5px;
+    border: none;
+    border-bottom: 3px solid var(--techwave-main-color);
+    background: #2a2a2a
+}
+
+.tooltipster-sidetip.tooltipster-punk.tooltipster-top .tooltipster-box {
+    margin-bottom: 7px
+}
+
+.tooltipster-sidetip.tooltipster-punk .tooltipster-content {
+    color: #fff;
+    padding: 8px 16px
+}
+
+.tooltipster-sidetip.tooltipster-punk .tooltipster-arrow-background {
+    display: none
+}
+
+.tooltipster-sidetip.tooltipster-punk.tooltipster-bottom .tooltipster-arrow-border {
+    border-bottom-color: #2a2a2a
+}
+
+.tooltipster-sidetip.tooltipster-punk.tooltipster-left .tooltipster-arrow-border {
+    border-left-color: #2a2a2a
+}
+
+.tooltipster-sidetip.tooltipster-punk.tooltipster-right .tooltipster-arrow-border {
+    border-right-color: #2a2a2a
+}
+
+.tooltipster-sidetip.tooltipster-punk.tooltipster-top .tooltipster-arrow-border {
+    border-top-color: var(--techwave-main-color)
+}
+
+.tooltipster-sidetip.tooltipster-shadow .tooltipster-box {
+    border: none;
+    border-radius: 5px;
+    background: #fff;
+    box-shadow: 0 0 10px 6px rgba(0, 0, 0, .1)
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-box {
+    margin-top: 6px
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-box {
+    margin-right: 6px
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-box {
+    margin-left: 6px
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-top .tooltipster-box {
+    margin-bottom: 6px
+}
+
+.tooltipster-sidetip.tooltipster-shadow .tooltipster-content {
+    color: #8d8d8d
+}
+
+.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow {
+    height: 6px;
+    margin-left: -6px;
+    width: 12px
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-arrow,
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow {
+    height: 12px;
+    margin-left: 0;
+    margin-top: -6px;
+    width: 6px
+}
+
+.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-background {
+    display: none
+}
+
+.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-border {
+    border: 6px solid transparent
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-border {
+    border-bottom-color: #fff
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-arrow-border {
+    border-left-color: #fff
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow-border {
+    border-right-color: #fff
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-top .tooltipster-arrow-border {
+    border-top-color: #fff
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-uncropped {
+    top: -6px
+}
+
+.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow-uncropped {
+    left: -6px
+}
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..3c56ad54a463718806339980e15fd582bcddf046
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,8330 @@
+@charset "utf-8";
+/*
+/*	Copyright (c) 2024 SRBThemes
+/*	Author: SRBThemes
+/*	Item URL: https://themeforest.net/item/techwave-ai-html-dashboard-for-image-generation-chat-bot/46197058
+/*	This file is made for CURRENT TEMPLATE
+/*
+
+
+	List of CSS codes:
+	
+	01) ROOT
+	02) Base
+	03) PRELOADER
+	04) Container
+	05) New tags and some custom codes
+	06) Site Structure
+	07) Main Button
+	08) Left Panel
+	09) Header
+	10) Footer
+	11) Page: Home (index)
+	12) Shortcode: Title
+	13) Shortcode: Interactive List
+	14) Shortcode: Members
+	15) Shortcode: Animated Title
+	16) Page Title
+	17) Page: Changelog
+	18) Searchbar
+	19) Shortcode: Accordion
+	20) Page: Community Feed
+	21) Tabs
+	22) Page: Personal Feed
+	23) Shortcode: Gallery Items
+	24) Like Button
+	25) Checkbox
+	26) Image Lightbox
+	27) Follow Button
+	28) Icon Button
+	29) Model Button (used in image lightbox)
+	30) Prompt Details (used in image lightbox)
+	31) Detailed list (used in image lightbox)
+	32) Grid Items (used in image lightbox)
+	33) Reportbox
+	34) Ajax Loader (Loading)
+	35) Page: Sign In and Sign Up
+	36) Select Filter (personal feed page)
+	37) Page: Notifications
+	38) Back To button (notification single page)
+	39) Page: Pricing
+	40) Shortcode: Pricing Mobile
+	41) Page: User Profile
+	42) Shortcode: Options list (used in user profile page)
+	43) Page: User Settings
+	44) Upload Button
+	45) Page: User Billing
+	46) Page: AI Chat Bot
+	47) Page: Documentation
+	48) Page: Image Generation
+	49) Icon Options (icon lightbox)
+	50) Generation Item (used in image generation page)
+	51) Generation List (used in image generation page)
+	52) Input Toggle (custom)
+	53) Select Model (used in image generation page)
+	53) Page: Image Generation
+	54) Input quantity (custom)
+	55) Input Range (custom)
+	56) Page: Privacy Policy
+	57) Contact Form
+	58) Page: Contact
+	59) Page: Models
+	60) Model Items (used in model page)
+	61) Bookmark button
+	62) Font Trigger (used in AI chat bot page)
+	63) Font Trigger Lightbox
+	64) Tooltipster custom theme named: tooltipster-techwave (it can be changed in init.js)
+	65) Page: Intro
+	66) Media Queries (Responsive)
+
+
+
+
+/*------------------------------------------------------------------*/
+
+/*	01) ROOT
+/*------------------------------------------------------------------*/
+
+:root {
+    color-scheme: dark;
+    --techwave-site-bg-color: #0f0e11;
+    --techwave-header-bg-color: #17151b;
+    --techwave-some-r-bg-color: #17151b;
+    --techwave-some-a-bg-color: #2b2830;
+    --techwave-main-color: #7c5fe3;
+    --techwave-main-color1: #8768f8;
+    --techwave-main-color2: #b7a4fb;
+    --techwave-heading-color: #c0bcca;
+    --techwave-body-color: #7e7a86;
+    --techwave-border-color: #312e37;
+    --techwave-button-bg-color: #1c1925;
+    --techwave-hover-color: #fff;
+    --techwave-heading-font-family: 'Heebo', sans-serif;
+    --techwave-body-font-family: 'Work Sans', sans-serif;
+    --techwave-left-panel-width: 300px;
+    --techwave-header-height: 100px;
+}
+
+@media(min-width: 1041px) {
+    .panel-opened:root {
+        --techwave-left-panel-width: 76px;
+    }
+}
+
+@media(max-width: 1040px) {
+    :root {
+        --techwave-header-height: 80px;
+    }
+}
+
+[data-techwave-skin="light"]:root {
+    color-scheme: light;
+    --techwave-site-bg-color: #fff;
+    --techwave-header-bg-color: #f5f5f5;
+    --techwave-some-r-bg-color: #f5f5f5;
+    --techwave-some-a-bg-color: #e7e7e7;
+    --techwave-main-color: #7c5fe3;
+    --techwave-main-color1: #8768f8;
+    --techwave-main-color2: #b7a4fb;
+    --techwave-heading-color: #333;
+    --techwave-body-color: #444;
+    --techwave-border-color: #ddd;
+    --techwave-button-bg-color: #f5f5f5;
+    --techwave-hover-color: #000;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	02) Base
+/*------------------------------------------------------------------*/
+
+html {
+    overflow-x: hidden;
+    padding: 0px;
+    margin: 0px;
+}
+
+*:after,
+*:before,
+* {
+    box-sizing: border-box;
+}
+
+body {
+    font-family: var(--techwave-body-font-family);
+    font-size: 16px;
+    letter-spacing: 0;
+    line-height: 1.5;
+    font-weight: 400;
+    color: var(--techwave-body-color);
+    position: relative;
+    word-break: break-word;
+    background-color: var(--techwave-site-bg-color);
+}
+
+.fn__svg {
+    fill: currentcolor;
+    width: 18px;
+    height: 18px;
+}
+
+.replaced-svg {
+    opacity: 1;
+}
+
+p {
+    letter-spacing: 0;
+    margin-bottom: 20px;
+}
+
+ol li {
+    margin-bottom: 17px;
+}
+
+ol li:last-child {
+    margin-bottom: 0;
+}
+
+.heading_color {
+    color: var(--techwave-heading-color);
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    line-height: 1.22;
+    letter-spacing: 0;
+}
+
+h1>a,
+h2>a,
+h3>a,
+h4>a,
+h5>a,
+h6>a {
+    text-decoration: none;
+    color: var(--techwave-heading-color);
+}
+
+h1>a:hover,
+h2>a:hover,
+h3>a:hover,
+h4>a:hover,
+h5>a:hover,
+h6>a:hover {
+    color: var(--techwave-main-color);
+}
+
+select:focus {
+    border-color: var(--techwave-main-color);
+}
+
+select {
+    display: block;
+    height: 40px;
+    width: 100%;
+    padding: 0 14px;
+    background-color: var(--techwave-some-a-bg-color);
+    border: 2px solid transparent;
+    border-radius: 5px;
+    outline: none;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 16px;
+    position: relative;
+    line-height: 40px;
+}
+
+hr {
+    outline: none;
+    border: none;
+    border-top: 1px solid var(--techwave-border-color);
+    margin: 0;
+    margin-bottom: 20px;
+}
+
+hr[data-h="2"] {
+    border-top-width: 2px;
+}
+
+hr[data-h="3"] {
+    border-top-width: 3px;
+}
+
+hr[data-h="4"] {
+    border-top-width: 4px;
+}
+
+hr[data-h="5"] {
+    border-top-width: 5px;
+}
+
+hr[data-h="6"] {
+    border-top-width: 6px;
+}
+
+hr[data-h="7"] {
+    border-top-width: 7px;
+}
+
+hr[data-h="8"] {
+    border-top-width: 8px;
+}
+
+hr[data-h="9"] {
+    border-top-width: 9px;
+}
+
+hr[data-h="10"] {
+    border-top-width: 10px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	03) PRELOADER
+/*------------------------------------------------------------------*/
+
+.techwave_fn_preloader.fn_ready {
+    opacity: 0;
+    visibility: hidden;
+    pointer-events: none;
+}
+
+.techwave_fn_preloader.enabled {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+.techwave_fn_preloader {
+    position: fixed;
+    padding: 0;
+    margin: 0;
+    z-index: 1000;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    top: 0;
+    background-color: var(--techwave-site-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    display: none;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    transition: all .3s ease;
+}
+
+.techwave_fn_preloader svg {
+    width: 240px;
+    height: 240px;
+    border-radius: 100%;
+    position: relative;
+}
+
+.techwave_fn_preloader .first_circle {
+    fill: none;
+    stroke-width: 10px;
+    stroke: #080808;
+}
+
+.techwave_fn_preloader .second_circle {
+    fill: none;
+    stroke-width: 10px;
+    stroke-linecap: round;
+    transform: rotate(-90deg);
+    transform-origin: 50% 50%;
+    stroke-dasharray: 360;
+    stroke-dashoffset: 100;
+    stroke: var(--techwave-main-color);
+    animation: techwave_fn_preloader 10s infinite;
+    position: relative;
+    z-index: 1;
+}
+
+@keyframes techwave_fn_preloader {
+    0% {
+        stroke-dasharray: 360;
+    }
+    50% {
+        stroke-dasharray: 1;
+    }
+    100% {
+        stroke-dasharray: 360;
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	04) Container
+/*------------------------------------------------------------------*/
+
+.container {
+    width: 100%;
+    max-width: 1400px;
+    padding: 0 40px;
+    margin: 0 auto;
+}
+
+.container.wide {
+    max-width: 1680px;
+}
+
+.container.small {
+    max-width: 780px;
+}
+
+.container.medium {
+    max-width: 980px;
+}
+
+.container:after,
+.clearfix:after,
+.clearfix:before {
+    content: '';
+    clear: both;
+    display: table;
+}
+
+@media(max-width: 1040px) {
+    .container {
+        padding: 0 20px;
+    }
+}
+
+@media(max-width: 480px) {
+    .container {
+        padding: 0 10px;
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	05) New tags and some custom codes
+/*------------------------------------------------------------------*/
+
+.fn__full_link {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+frenify_main {
+    color: var(--techwave-main-color);
+    -webkit-user-select: all;
+    -moz-user-select: all;
+    -ms-user-select: all;
+    -o-user-select: all;
+    user-select: all;
+}
+
+frenify_uselect {
+    -webkit-user-select: all;
+    -moz-user-select: all;
+    -ms-user-select: all;
+    -o-user-select: all;
+    user-select: all;
+}
+
+frenify_typing {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+frenify_typing h3 {
+    margin: 0;
+    font-size: 16px;
+    font-weight: 400;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+frenify_typing span {
+    color: var(--techwave-heading-color);
+    overflow: hidden;
+    border-right: 2px solid var(--techwave-main-color);
+    white-space: nowrap;
+    -webkit-animation: frenify_typing_animation 1s steps(150, end), frenify_blink_caret .5s step-end infinite;
+    animation: frenify_typing_animation 1s steps(150, end), frenify_blink_caret .5s step-end infinite;
+}
+
+@keyframes frenify_typing_animation {
+    from {
+        width: 0
+    }
+    to {
+        width: 100%
+    }
+}
+
+@keyframes frenify_blink_caret {
+    from,
+    to {
+        border-color: transparent
+    }
+    50% {
+        border-color: var(--techwave-main-color);
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	06) Site Structure
+/*------------------------------------------------------------------*/
+
+.techwave_fn_wrapper,
+.techwave_fn_wrapper * {
+    box-sizing: border-box;
+}
+
+.techwave_fn_wrapper:not(.fn__has_sidebar) .techwave_fn_image_generation_page .sidebar__trigger {
+    color: var(--techwave-main-color);
+}
+
+.techwave_fn_wrapper.fn__has_sidebar .techwave_fn_content {
+    margin-right: 300px;
+}
+
+.techwave_fn_content {
+    position: relative;
+    margin-left: var(--techwave-left-panel-width);
+    margin-top: var(--techwave-header-height);
+    min-height: calc(100vh - var(--techwave-header-height));
+    transition: all .2s ease;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	07) Main Button
+/*------------------------------------------------------------------*/
+
+.fn__submit {
+    display: block;
+    position: relative;
+    background-color: var(--techwave-button-bg-color);
+    border-radius: 20px;
+}
+
+.fn__submit input,
+.techwave_fn_button {
+    display: block;
+    width: fit-content;
+    max-width: 100%;
+    text-decoration: none;
+    font-weight: 500;
+    font-size: 14px;
+    letter-spacing: .5px;
+    font-family: var(--techwave-heading-font-family);
+    height: 40px;
+    line-height: 40px;
+    padding: 0 34px;
+    position: relative;
+    color: var(--techwave-heading-color);
+    text-transform: uppercase;
+    text-align: center;
+    white-space: nowrap;
+    background-color: var(--techwave-button-bg-color);
+    outline: none;
+    outline-color: transparent;
+    border-radius: 20px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.fn__submit input {
+    width: 100%;
+    background-color: transparent !important;
+}
+
+.techwave_fn_button.medium {
+    padding: 0 97px;
+    height: 60px;
+    line-height: 60px;
+    border-radius: 30px;
+    font-size: 18px;
+}
+
+.techwave_fn_button.medium:after,
+.techwave_fn_button.medium:before {
+    border-radius: 30px;
+}
+
+.techwave_fn_button.small__border:after,
+.techwave_fn_button.small__border:before,
+.techwave_fn_button.small__border {
+    border-radius: 5px;
+}
+
+.techwave_fn_button.small__border {
+    background-color: var(--techwave-some-a-bg-color);
+    padding: 0 20px;
+}
+
+.techwave_fn_button.has__icon {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_button.has__icon .fn__svg {
+    width: 16px;
+    height: 16px;
+    margin-right: 5px;
+}
+
+.fn__submit input,
+.techwave_fn_button span {
+    position: relative;
+    z-index: 5;
+}
+
+.techwave_fn_button span {
+    top: 1px;
+}
+
+.fn__submit:hover:after,
+.techwave_fn_button:hover:after {
+    animation-duration: 2s;
+}
+
+.fn__submit:hover,
+.techwave_fn_button:hover {
+    color: var(--techwave-hover-color);
+}
+
+.fn__submit:after,
+.techwave_fn_button:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    border-radius: 20px;
+    border: 2px solid transparent;
+    background: -moz-linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    background: -webkit-linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    background: linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
+    -webkit-mask-composite: destination-out;
+    -webkit-mask-composite: source-out;
+    mask-composite: exclude;
+    background-size: 300% 300%;
+    -webkit-animation: animatedgradient 4s ease alternate infinite;
+    animation: animatedgradient 4s ease alternate infinite;
+}
+
+.fn__submit:before,
+.techwave_fn_button:before {
+    right: 0;
+    bottom: 0;
+    top: 0;
+    left: 0;
+    position: absolute;
+    color: var(--techwave-main-color1);
+    content: '';
+    opacity: .1;
+    border-radius: 20px;
+    box-shadow: 0px 5px 15px;
+}
+
+.techwave_fn_button.enabled:after {
+    display: block;
+}
+
+.techwave_fn_button.disabled {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.techwave_fn_button.disabled:after {
+    display: none;
+}
+
+@keyframes animatedgradient {
+    0% {
+        background-position: 0% 50%;
+    }
+    50% {
+        background-position: 100% 50%;
+    }
+    100% {
+        background-position: 0% 50%;
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	08) Left Panel
+/*------------------------------------------------------------------*/
+
+.short_logo {
+    display: none;
+}
+
+.retina_logo {
+    display: none;
+}
+
+@media (-webkit-min-device-pixel-ratio: 1.1),
+(min-device-pixel-ratio: 1.1),
+(min-resolution: 120dpi) {
+    .retina_logo {
+        display: block;
+    }
+    .desktop_logo {
+        display: none;
+    }
+}
+
+.techwave_fn_leftpanel {
+    z-index: 101;
+    position: fixed;
+    background-color: var(--techwave-some-r-bg-color);
+    width: var(--techwave-left-panel-width);
+    left: 0;
+    top: 0;
+    bottom: 0;
+    border-right: 1px solid var(--techwave-border-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    transition: all .2s ease;
+}
+
+.techwave_fn_leftpanel .leftpanel_logo {
+    min-height: var(--techwave-header-height);
+    height: var(--techwave-header-height);
+    border-bottom: 1px solid var(--techwave-border-color);
+    padding: 20px 70px 20px 30px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    position: relative;
+}
+
+.techwave_fn_leftpanel .mobile_closer {
+    display: none;
+}
+
+.techwave_fn_leftpanel .fn__icon_button {
+    position: absolute;
+    top: 50%;
+    margin-top: -15px;
+    right: 20px;
+    z-index: 4;
+}
+
+.techwave_fn_leftpanel .fn__icon_button .fn__svg {
+    transform: rotate(180deg);
+}
+
+.techwave_fn_leftpanel .leftpanel_content {
+    flex: 1 0 auto;
+    padding: 48px 20px;
+    overflow-y: auto;
+    height: calc(100% - var(--techwave-header-height));
+}
+
+.techwave_fn_leftpanel .leftpanel_content {
+    scrollbar-width: thin;
+    scrollbar-color: #999 #fff;
+}
+
+.techwave_fn_leftpanel .leftpanel_content::-webkit-scrollbar {
+    width: 4px;
+}
+
+.techwave_fn_leftpanel .leftpanel_content:-webkit-scrollbar-track {
+    background: var(--techwave-some-a-bg-color);
+}
+
+.techwave_fn_leftpanel .leftpanel_content::-webkit-scrollbar-thumb {
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 6px;
+}
+
+.techwave_fn_leftpanel .nav_group {
+    margin-bottom: 38px;
+}
+
+.techwave_fn_leftpanel .nav_group:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_leftpanel .group__title {
+    margin: 0;
+    padding: 0 10px;
+    text-transform: uppercase;
+    font-weight: 500;
+    font-size: 11px;
+    letter-spacing: .5px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 12px;
+}
+
+.techwave_fn_leftpanel .group__list {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.techwave_fn_leftpanel .group__list li {
+    margin-bottom: 4px;
+    position: relative;
+}
+
+.techwave_fn_leftpanel .group__list li:last-child {
+    margin-bottom: 0px;
+}
+
+.techwave_fn_leftpanel .group__list a {
+    font-weight: 400;
+    border-radius: 5px;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    text-decoration: none;
+    min-height: 36px;
+    padding: 5px 10px 5px 42px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    position: relative;
+}
+
+.techwave_fn_leftpanel .group__list .menu-item-has-children>a {
+    padding-right: 22px;
+}
+
+.techwave_fn_leftpanel .group__list .hovered>a,
+.techwave_fn_leftpanel .group__list a.active,
+.techwave_fn_leftpanel .group__list a:hover {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.techwave_fn_leftpanel .group__list a.active .text {
+    color: var(--techwave-hover-color);
+}
+
+.techwave_fn_leftpanel .group__list .icon {
+    position: absolute;
+    left: 10px;
+    top: 50%;
+    margin-top: -8px;
+    display: block;
+}
+
+.techwave_fn_leftpanel .group__list .icon .fn__svg {
+    width: 16px;
+    height: 16px;
+    display: block;
+}
+
+.techwave_fn_leftpanel .group__list .text {
+    line-height: 24px;
+    position: relative;
+    top: 1px;
+}
+
+.techwave_fn_leftpanel .group__list .trigger {
+    right: 5px;
+    top: 50%;
+    margin-top: -6px;
+    position: absolute;
+    display: block;
+    color: var(--techwave-heading-color);
+    transform: rotate(90deg);
+    transition: all .2s ease;
+}
+
+.techwave_fn_leftpanel .group__list .closed .trigger {
+    transform: rotate(-90deg);
+}
+
+.techwave_fn_leftpanel .group__list .trigger .fn__svg {
+    width: 12px;
+    height: 12px;
+    display: block;
+}
+
+.techwave_fn_leftpanel .group__list .count {
+    width: 24px;
+    margin-left: 10px;
+    display: inline-block;
+    height: 24px;
+    background-color: #ab0cdf;
+    color: #fff;
+    font-weight: 500;
+    line-height: 25px;
+    text-align: center;
+    font-size: 11px;
+    font-family: var(--techwave-heading-font-family);
+    border-radius: 100%;
+    vertical-align: top;
+}
+
+.fn__sup {
+    color: var(--techwave-main-color);
+    vertical-align: super;
+    text-transform: uppercase;
+    font-weight: 500;
+    font-size: 11px;
+    letter-spacing: .5px;
+    margin-left: 2px;
+}
+
+.techwave_fn_leftpanel .group__list ul {
+    margin: 0;
+    list-style-type: none;
+    padding: 0;
+    margin-left: 26px;
+    margin-top: 4px;
+    overflow: hidden;
+}
+
+.techwave_fn_leftpanel .group__list ul a {
+    padding-left: 17px;
+}
+
+.techwave_fn_leftpanel .group__list ul a:after {
+    width: 5px;
+    height: 2px;
+    background-color: var(--techwave-heading-color);
+    position: absolute;
+    left: 6px;
+    top: 50%;
+    margin-top: -1px;
+    content: '';
+}
+
+@media(min-width: 1041px) {
+    .panel-opened .techwave_fn_leftpanel .group__list .icon .fn__svg {
+        width: 18px;
+        height: 18px;
+    }
+    .panel-opened .techwave_fn_leftpanel .group__list a {
+        width: 36px;
+        padding: 0;
+    }
+    .panel-opened .techwave_fn_leftpanel .group__list .menu-item-has-children>a:after {
+        content: '';
+        position: absolute;
+        width: 10px;
+        height: 10px;
+        background-color: #f1416c;
+        left: 50%;
+        bottom: 50%;
+        margin-left: 2px;
+        margin-bottom: 2px;
+        border-radius: 100%;
+    }
+    .panel-opened .techwave_fn_leftpanel .leftpanel_logo {
+        padding: 0;
+        justify-content: center;
+    }
+    .panel-opened .techwave_fn_leftpanel .short_logo {
+        display: block;
+    }
+    .panel-opened .techwave_fn_leftpanel .fn__closer {
+        right: -15px;
+        transform: rotate(180deg);
+    }
+    .panel-opened .techwave_fn_leftpanel .full_logo,
+    .panel-opened .techwave_fn_leftpanel .group__title,
+    .panel-opened .techwave_fn_leftpanel .group__list .trigger,
+    .panel-opened .techwave_fn_leftpanel .group__list .text {
+        display: none;
+    }
+    .panel-opened .techwave_fn_leftpanel .group__list ul {
+        display: none !important;
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	09) Header
+/*------------------------------------------------------------------*/
+
+.techwave_fn_header {
+    position: fixed;
+    top: 0;
+    left: var(--techwave-left-panel-width);
+    right: 0;
+    height: var(--techwave-header-height);
+    background-color: var(--techwave-header-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+    padding: 0 40px;
+    z-index: 100;
+    transition: all .2s ease;
+}
+
+.techwave_fn_header:after {
+    content: '';
+    pointer-events: none;
+    position: absolute;
+    bottom: 0;
+    z-index: 1;
+    left: 0;
+    right: 0;
+    height: 1px;
+    background-color: var(--techwave-border-color);
+}
+
+.fn__token_info {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    height: var(--techwave-header-height);
+    position: relative;
+}
+
+.fn__token_info:hover .token__popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__token_info .token__popup {
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    width: 200px;
+    position: absolute;
+    left: 0;
+    top: 100%;
+    background-color: var(--techwave-header-bg-color);
+    padding: 12px 15px;
+    border-radius: 0 0 5px 5px;
+    border: 1px solid var(--techwave-border-color);
+    ;
+    margin-top: -1px;
+    font-family: var(--techwave-heading-font-family);
+    font-size: 12px;
+    letter-spacing: .5px;
+    transition: all .2s ease;
+}
+
+.fn__token_info .token__popup span {
+    color: var(--techwave-heading-color);
+}
+
+.fn__token_info .token_summary {
+    border-radius: 5px;
+    background-color: var(--techwave-some-a-bg-color);
+    font-family: var(--techwave-heading-font-family);
+    line-height: 16px;
+    height: 40px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    padding: 5px 12px;
+    margin-right: 20px;
+}
+
+.fn__token_info .count {
+    font-weight: 600;
+    font-size: 18px;
+    color: var(--techwave-heading-color);
+    padding-right: 25px;
+    position: relative;
+}
+
+.fn__token_info .text {
+    line-height: 16px;
+    font-size: 12px;
+}
+
+.fn__token_info .count:after {
+    content: '';
+    position: absolute;
+    right: 12px;
+    top: 50%;
+    margin-top: -15px;
+    height: 30px;
+    background-color: #413e45;
+    width: 1px;
+}
+
+.fn__nav_bar {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+.fn__nav_bar .bar__item {
+    height: var(--techwave-header-height);
+    position: relative;
+    margin-right: 10px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.fn__nav_bar .bar__item:last-child {
+    margin-right: 0;
+}
+
+.fn__nav_bar .item_opener {
+    width: 50px;
+    height: 50px;
+    text-decoration: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 100%;
+    color: var(--techwave-heading-color);
+    position: relative;
+}
+
+.fn__nav_bar .item_opener:hover {
+    opacity: 0.8;
+}
+
+.fn__nav_bar .item_opener.full_screen .f_screen {
+    opacity: 0;
+    transform: scale(0.7);
+}
+
+.fn__nav_bar .item_opener.full_screen .s_screen {
+    opacity: 1;
+    transform: scale(1);
+}
+
+.fn__nav_bar .item_opener .fn__svg {
+    width: 24px;
+    height: 24px;
+    transition: all .3s ease;
+}
+
+.fn__nav_bar .item_opener .dark_mode {
+    opacity: 0;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    margin: -12px 0 0 -12px;
+    transform: scale(0.7) rotate(-90deg);
+}
+
+[data-techwave-skin="light"] .fn__nav_bar .item_opener .dark_mode {
+    opacity: 1;
+    transform: scale(1) rotate(0deg);
+}
+
+[data-techwave-skin="light"] .fn__nav_bar .item_opener .light_mode {
+    opacity: 0;
+    transform: scale(0.7) rotate(90deg);
+}
+
+[data-techwave-skin="dark"] .fn__nav_bar .item_opener .light_mode {
+    opacity: 1;
+    transform: scale(1) rotate(0deg);
+}
+
+[data-techwave-skin="dark"] .fn__nav_bar .item_opener .dark_mode {
+    opacity: 0;
+    transform: scale(0.7) rotate(-90deg);
+}
+
+.fn__nav_bar .item_opener .s_screen {
+    opacity: 0;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    margin: -9px 0 0 -9px;
+    transform: scale(0.7);
+    width: 18px;
+    height: 18px;
+}
+
+.fn__nav_bar .bar__item_user {
+    margin-left: 10px;
+}
+
+.fn__nav_bar .user_opener {
+    width: 60px;
+    height: 60px;
+    border: 2px solid var(--techwave-border-color);
+    border-radius: 5px;
+    overflow: hidden;
+}
+
+.fn__nav_bar .user_opener img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    aspect-ratio: 1 / 1;
+    border-radius: 3px;
+}
+
+.fn__nav_bar .item_popup {
+    position: absolute;
+    right: 0;
+    top: 100%;
+    background-color: var(--techwave-header-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 0 0 5px 5px;
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    transition: all .2s ease;
+    margin-top: -1px;
+}
+
+.fn__nav_bar .item_popup[data-position="left"] {
+    right: auto;
+    left: 0;
+}
+
+.fn__nav_bar .bar__item_user .item_popup {
+    padding: 20px;
+    width: 300px;
+    max-width: calc(100vw - 80px);
+}
+
+.fn__nav_bar .bar__item_user.opened .item_popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__nav_bar .bar__item_user:hover .user_opener,
+.fn__nav_bar .bar__item_user.opened .user_opener {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__nav_bar .bar__item_user .user_profile {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    padding: 0 10px 20px 10px;
+    border-bottom: 1px solid var(--techwave-border-color);
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__nav_bar .bar__item_user .user_img {
+    margin-right: 15px;
+    width: 60px;
+    min-width: 60px;
+}
+
+.fn__nav_bar .bar__item_user .user_img img {
+    width: 100%;
+    object-fit: cover;
+    aspect-ratio: 1 / 1;
+    border: 2px solid var(--techwave-border-color);
+    border-radius: 5px;
+}
+
+.fn__nav_bar .bar__item_user .user_name {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    font-size: 16px;
+}
+
+.fn__nav_bar .bar__item_user .user_name span {
+    height: 16px;
+    line-height: 16px;
+    display: inline-block;
+    padding: 0 5px;
+    border-radius: 5px;
+    background-color: #ab0cdf;
+    color: #fff;
+    font-weight: 500;
+    font-size: 11px;
+    text-transform: uppercase;
+    font-family: var(--techwave-heading-font-family);
+    margin-left: 10px;
+    vertical-align: middle;
+    position: relative;
+    top: -2px;
+}
+
+.fn__nav_bar .bar__item_user .user_profile p {
+    margin: 0;
+    padding: 0;
+    font-family: var(--techwave-heading-font-family);
+    font-size: 12px;
+    letter-spacing: 0;
+}
+
+.fn__nav_bar .bar__item_user .user_profile a {
+    text-decoration: none;
+    color: var(--techwave-heading-color);
+}
+
+.fn__nav_bar .bar__item_user .user_profile a:hover {
+    color: var(--techwave-main-color);
+}
+
+.fn__nav_bar .bar__item_user .user_nav {
+    padding-top: 20px;
+}
+
+.fn__nav_bar .bar__item_user .user_nav li {
+    margin-bottom: 4px;
+}
+
+.fn__nav_bar .bar__item_user .user_nav li:last-child {
+    margin-bottom: 0px;
+}
+
+.fn__nav_bar .bar__item_user .user_nav ul {
+    list-style-type: none;
+    margin: 0;
+    padding: 0;
+}
+
+.fn__nav_bar .bar__item_user .user_nav a {
+    font-weight: 400;
+    border-radius: 5px;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    text-decoration: none;
+    height: 36px;
+    padding: 0 10px 0 42px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    position: relative;
+}
+
+.fn__nav_bar .bar__item_user .user_nav .icon {
+    position: absolute;
+    left: 10px;
+    top: 50%;
+    margin-top: -8px;
+    display: block;
+}
+
+.fn__nav_bar .bar__item_user .user_nav .icon .fn__svg {
+    width: 16px;
+    height: 16px;
+    display: block;
+}
+
+.fn__nav_bar .bar__item_user .user_nav a.active,
+.fn__nav_bar .bar__item_user .user_nav a:hover {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.fn__nav_bar .bar__item_user .user_nav .text {
+    position: relative;
+    top: 1px;
+}
+
+.fn__nav_bar .bar__item_language.opened .item_popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__nav_bar .bar__item_language.opened .item_opener {
+    color: var(--techwave-main-color);
+}
+
+.fn__nav_bar .bar__item_language .item_popup {
+    padding: 20px;
+    width: 200px;
+    max-width: calc(100vw - 80px);
+}
+
+.fn__nav_bar .bar__item_language .item_popup li {
+    margin-bottom: 4px;
+}
+
+.fn__nav_bar .bar__item_language .item_popup li:last-child {
+    margin-bottom: 0px;
+}
+
+.fn__nav_bar .bar__item_language .item_popup ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.fn__nav_bar .bar__item_language .item_popup span,
+.fn__nav_bar .bar__item_language .item_popup a {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    height: 36px;
+    padding: 0 15px;
+    border-radius: 5px;
+    text-decoration: none;
+    font-size: 16px;
+    letter-spacing: 0;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    transition: all .3s ease;
+}
+
+.fn__nav_bar .bar__item_language .item_popup a:hover,
+.fn__nav_bar .bar__item_language .item_popup .active {
+    background-color: var(--techwave-some-a-bg-color);
+    color: var(--techwave-hover-color);
+}
+
+.fn__nav_bar .bar__item_notification .item_opener:after {
+    content: '';
+    position: absolute;
+    width: 12px;
+    height: 12px;
+    background-color: #f1416c;
+    border-radius: 100%;
+    top: 9px;
+    right: 10px;
+    opacity: 0;
+    visibility: hidden;
+}
+
+.fn__nav_bar .bar__item_notification.has_notification .item_opener:after {
+    opacity: 1;
+    visibility: visible;
+}
+
+.fn__nav_bar .bar__item_notification .item_popup {
+    width: 340px;
+    padding: 20px;
+    max-width: calc(100vw - 80px);
+}
+
+.fn__nav_bar .bar__item_notification.opened .item_popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_header {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: space-between;
+    column-gap: 20px;
+    padding: 1px 15px 20px;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_title {
+    font-size: 12px;
+    font-weight: 500;
+    margin: 0;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-body-color);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_header a {
+    text-decoration: none;
+    font-size: 12px;
+    font-weight: 400;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-body-color);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_header a:hover {
+    color: var(--techwave-main-color);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list {
+    padding: 25px 15px 0;
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list li {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    margin-bottom: 20px;
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list li:last-child {
+    margin-bottom: 0;
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list p {
+    margin: 0;
+    padding: 0;
+    font-size: 16px;
+    font-weight: 400;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list p a {
+    color: var(--techwave-heading-color);
+    text-decoration: none;
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list p a:hover {
+    color: var(--techwave-main-color);
+}
+
+.fn__nav_bar .bar__item_notification .ntfc_list span {
+    font-size: 12px;
+    font-weight: 400;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-body-color);
+    margin-top: -1px;
+}
+
+.fn__nav_bar .bar__item_search .item_popup {
+    width: 200px;
+    padding: 20px;
+    max-width: calc(100vw - 80px);
+}
+
+.techwave_fn_fixedsub {
+    opacity: 0;
+    visibility: hidden;
+    position: fixed;
+    left: var(--techwave-left-panel-width);
+    top: var(--techwave-header-height);
+    z-index: 101;
+    display: none;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    border-left: none;
+    margin-top: calc(var(--techwave-header-height) - 21px);
+    /* 20px = padding-top and 1px = border-top */
+    padding: 20px;
+    transition: all .2s ease;
+}
+
+.panel-opened .techwave_fn_fixedsub {
+    display: block;
+}
+
+.techwave_fn_fixedsub.opened {
+    opacity: 1;
+    visibility: visible;
+}
+
+.techwave_fn_fixedsub ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.techwave_fn_fixedsub li {
+    margin-bottom: 4px;
+    position: relative;
+}
+
+.techwave_fn_fixedsub li:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_fixedsub a {
+    font-weight: 400;
+    border-radius: 5px;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    text-decoration: none;
+    min-height: 36px;
+    padding: 5px 10px 5px 17px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    position: relative;
+}
+
+.techwave_fn_fixedsub a:after {
+    width: 5px;
+    height: 2px;
+    background-color: var(--techwave-heading-color);
+    position: absolute;
+    left: 6px;
+    top: 50%;
+    margin-top: -1px;
+    content: '';
+}
+
+.techwave_fn_fixedsub a.active,
+.techwave_fn_fixedsub a:hover {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	10) Footer
+/*------------------------------------------------------------------*/
+
+.techwave_fn_footer {
+    margin-top: auto;
+    min-height: 71px;
+    padding: 18px 40px;
+    border-top: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_footer_content {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_footer .copyright p {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    letter-spacing: .5px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_footer .menu_items ul {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    margin-left: -30px;
+}
+
+.techwave_fn_footer .menu_items li {
+    margin: 5px 0 5px 30px;
+}
+
+.techwave_fn_footer .menu_items a {
+    text-decoration: none;
+    font-size: 14px;
+    letter-spacing: .5px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_footer .menu_items a:hover {
+    color: var(--techwave-main-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	11) Page: Home (index)
+/*------------------------------------------------------------------*/
+
+.section_home {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    min-height: calc(100vh - var(--techwave-header-height) - 71px);
+}
+
+.section_home .section_left {
+    padding: 93px 40px 80px;
+    border-right: 1px solid var(--techwave-border-color);
+    width: 60%;
+}
+
+.section_home .section_right {
+    width: 40%;
+    padding: 155px 40px;
+}
+
+.section_home .company_info {
+    margin: 0 auto;
+    max-width: 350px;
+}
+
+.section_home .company_info hr {
+    margin-bottom: 24px;
+}
+
+.section_home .company_info p {
+    margin-bottom: 23px;
+}
+
+.section_home .company_info img {
+    margin-bottom: 25px;
+}
+
+.section_home .techwave_fn_title_holder {
+    margin-bottom: 43px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	12) Shortcode: Title
+/*------------------------------------------------------------------*/
+
+.techwave_fn_title_holder {
+    text-align: center;
+}
+
+.techwave_fn_title_holder .title {
+    margin: 0;
+    padding: 0;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    margin-bottom: -1px;
+    font-size: 40px;
+}
+
+.techwave_fn_title_holder .desc {
+    margin: 0;
+    padding: 0;
+    font-size: 18px;
+    font-weight: 400;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-body-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	13) Shortcode: Interactive List
+/*------------------------------------------------------------------*/
+
+.techwave_fn_interactive_list ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    margin-left: -20px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: center;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_interactive_list li {
+    width: 360px;
+    max-width: 50%;
+    padding-left: 20px;
+    margin-bottom: 20px;
+}
+
+.techwave_fn_interactive_list .item {
+    border: 2px solid var(--techwave-border-color);
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    min-height: 100%;
+    text-align: center;
+    transition: all .2s ease;
+}
+
+.techwave_fn_interactive_list .item:hover {
+    background-color: var(--techwave-some-a-bg-color);
+    border-color: var(--techwave-main-color);
+}
+
+.techwave_fn_interactive_list a {
+    text-decoration: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    justify-content: center;
+    -ms-align-items: center;
+    align-items: center;
+    padding: 48px 30px;
+    min-height: 100%;
+}
+
+.techwave_fn_interactive_list .icon {
+    width: 120px;
+    height: 120px;
+    border-radius: 100%;
+    background-color: var(--techwave-main-color);
+    position: relative;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    color: #fff;
+    margin-bottom: 26px;
+}
+
+.techwave_fn_interactive_list .icon .fn__svg {
+    width: 50px;
+    height: 50px;
+    display: block;
+}
+
+.techwave_fn_interactive_list .title {
+    margin: 0;
+    padding: 0;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    font-weight: 400;
+    font-size: 24px;
+    margin-bottom: 20px;
+}
+
+.techwave_fn_interactive_list .desc {
+    margin: 0;
+    padding: 0;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-body-color);
+    font-weight: 400;
+    font-size: 16px;
+    line-height: 20px;
+    margin-bottom: 22px;
+}
+
+.techwave_fn_interactive_list .arrow {
+    display: block;
+    width: 50px;
+    height: 14px;
+    color: var(--techwave-heading-color);
+    position: relative;
+}
+
+.techwave_fn_interactive_list .arrow:after {
+    position: absolute;
+    content: '';
+    height: 2px;
+    top: 50%;
+    margin-top: -1px;
+    background-color: var(--techwave-heading-color);
+    transition: all .3s ease;
+    right: 100%;
+    left: 0%;
+    margin-right: 0
+}
+
+.techwave_fn_interactive_list .item:hover .arrow:after {
+    right: 0;
+    margin-right: 4px;
+    left: 0;
+}
+
+.techwave_fn_interactive_list .item:hover .arrow .fn__svg {
+    right: 0;
+    margin-right: 0;
+}
+
+.techwave_fn_interactive_list .arrow .fn__svg {
+    width: 14px;
+    height: 14px;
+    display: block;
+    position: absolute;
+    right: 50%;
+    margin-right: -7px;
+    transition: all .3s ease;
+}
+
+.techwave_fn_interactive_list.modern {
+    max-width: 700px;
+    margin: 0 auto;
+}
+
+.techwave_fn_interactive_list.modern li {
+    width: 100%;
+    max-width: 100%;
+}
+
+.techwave_fn_interactive_list.modern a {
+    -webkit-flex-direction: row;
+    -moz-flex-direction: row;
+    -ms-flex-direction: row;
+    -o-flex-direction: row;
+    flex-direction: row;
+    justify-content: flex-start;
+    padding: 18px 38px;
+}
+
+.techwave_fn_interactive_list.modern .desc {
+    display: none;
+}
+
+.techwave_fn_interactive_list.modern .icon {
+    margin-bottom: 0;
+    margin-right: 20px;
+    min-width: 60px;
+    width: 60px;
+    height: 60px;
+}
+
+.techwave_fn_interactive_list.modern .icon .fn__svg {
+    width: 24px;
+    height: 24px;
+}
+
+.techwave_fn_interactive_list.modern .title {
+    margin-bottom: 0;
+    margin-right: 20px;
+    font-size: 20px;
+}
+
+.techwave_fn_interactive_list.modern .arrow {
+    margin-left: auto;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	14) Shortcode: Members
+/*------------------------------------------------------------------*/
+
+.fn__members .item {
+    position: relative;
+    padding-left: 22px;
+    font-size: 16px;
+    line-height: 24px;
+    min-height: 24px;
+}
+
+.fn__members .item {
+    margin-bottom: 8px;
+}
+
+.fn__members .item:last-child {
+    margin-bottom: 0;
+}
+
+.fn__members .circle {
+    width: 12px;
+    height: 12px;
+    border-radius: 100%;
+    display: block;
+    background-color: var(--techwave-body-color);
+    position: absolute;
+    top: 6px;
+    left: 0;
+}
+
+.fn__members .active .circle {
+    background-color: #45c569;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	15) Shortcode: Animated Title
+/*------------------------------------------------------------------*/
+
+.fn__animated_text {
+    opacity: 0;
+}
+
+.fn__animated_text.ready {
+    opacity: 1;
+}
+
+.fn__animated_text span {
+    animation: fn__animated_text 0.8s both;
+}
+
+.fn__animated_text em {
+    opacity: 0;
+}
+
+@keyframes fn__animated_text {
+    0% {
+        opacity: 0;
+    }
+    65% {
+        opacity: 1;
+        text-shadow: 0 0 25px white;
+    }
+    75% {
+        opacity: 0.7;
+    }
+    100% {
+        opacity: 1
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	16) Page Title
+/*------------------------------------------------------------------*/
+
+.techwave_fn_pagetitle {
+    padding: 34px 40px;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_pagetitle .title {
+    margin: 0;
+    padding: 0;
+    font-size: 22px;
+    line-height: 1.364;
+    font-weight: 600;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_pagetitle span {
+    color: var(--techwave-body-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	17) Page: Changelog
+/*------------------------------------------------------------------*/
+
+.change_log {
+    padding: 40px 0;
+}
+
+.faq {
+    padding: 40px 0;
+}
+
+.techwave_fn_changelog .changelog__item {
+    border-radius: 5px;
+    border: 1px solid var(--techwave-border-color);
+    background-color: var(--techwave-some-r-bg-color);
+    margin-bottom: 40px;
+}
+
+.techwave_fn_changelog .changelog__item:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_changelog .item__header {
+    padding: 24px 30px;
+    border-bottom: 1px solid var(--techwave-border-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 20px;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_changelog .item__ver {
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 20px;
+    font-weight: 400;
+}
+
+.techwave_fn_changelog .item__date {
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 11px;
+    font-weight: 500;
+    text-transform: uppercase;
+}
+
+.techwave_fn_changelog .item__content {
+    padding: 40px 30px 34px;
+}
+
+.techwave_fn_changelog .item__group {
+    margin-bottom: 34px;
+}
+
+.techwave_fn_changelog .item__group:last-child {
+    margin-bottom: 0px;
+}
+
+.techwave_fn_changelog .item__title {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    margin-bottom: 15px;
+}
+
+.techwave_fn_changelog .item__title span {
+    height: 18px;
+    line-height: 18px;
+    padding: 0 10px;
+    border-radius: 9px;
+    font-weight: 500;
+    max-width: 100%;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    text-align: center;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-transform: uppercase;
+    font-size: 11px;
+    background-color: var(--techwave-some-a-bg-color);
+    padding-top: 1px;
+}
+
+.techwave_fn_changelog .item__list {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.techwave_fn_changelog .item__list li {
+    position: relative;
+    min-height: 24px;
+    line-height: 24px;
+    font-size: 18px;
+    color: var(--techwave-body-color);
+    font-weight: 400;
+    padding-left: 15px;
+    margin-bottom: 8px;
+}
+
+.techwave_fn_changelog .item__list li:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_changelog .item__list li:after {
+    content: '';
+    position: absolute;
+    left: 0;
+    top: 11px;
+    height: 2px;
+    background-color: var(--techwave-body-color);
+    width: 5px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	18) Searchbar
+/*------------------------------------------------------------------*/
+
+.techwave_fn_searchbar {
+    opacity: 0;
+    visibility: hidden;
+    transform: translateX(100px);
+    position: fixed;
+    top: 0;
+    left: var(--techwave-left-panel-width);
+    right: 0;
+    height: var(--techwave-header-height);
+    background-color: var(--techwave-header-bg-color);
+    padding: 0 40px;
+    z-index: 102;
+    transition: all .3s ease;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_searchbar.opened {
+    opacity: 1;
+    visibility: visible;
+    transform: translateX(0);
+}
+
+.techwave_fn_searchbar .search__results {
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    position: absolute;
+    top: 100%;
+    left: 0;
+    right: 0;
+    border-bottom: 1px solid var(--techwave-border-color);
+    background-color: var(--techwave-header-bg-color);
+    margin-top: 1px;
+    padding: 46px 40px;
+    transition: all .2s ease;
+}
+
+.techwave_fn_searchbar .search__results.opened {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.techwave_fn_searchbar .search__input {
+    height: var(--techwave-header-height);
+    padding: 0 50px 0 45px;
+    display: block;
+    width: 100%;
+    background-color: transparent !important;
+    border: none !important;
+    font-size: 16px;
+    font-weight: 400;
+    letter-spacing: 0;
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_searchbar .results__title {
+    font-weight: 500;
+    text-transform: uppercase;
+    font-size: 11px;
+    margin: 0;
+    margin-bottom: 19px;
+}
+
+.techwave_fn_searchbar .search__icon {
+    width: 24px;
+    height: 24px;
+    display: block;
+    position: absolute;
+    top: 50%;
+    margin-top: -12px;
+    left: 40px;
+    pointer-events: none;
+}
+
+.techwave_fn_searchbar .search__closer {
+    text-decoration: none;
+    width: 30px;
+    height: 30px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    border-radius: 5px;
+    background-color: var(--techwave-some-a-bg-color);
+    position: absolute;
+    right: 40px;
+    top: 50%;
+    margin-top: -15px;
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_searchbar .search__closer .fn__svg {
+    width: 12px;
+    height: 12px;
+}
+
+.techwave_fn_searchbar .search__results ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.techwave_fn_searchbar .search__results li {
+    font-weight: 400;
+    font-family: var(--techwave-heading-font-family);
+    font-size: 16px;
+    letter-spacing: 0;
+    color: var(--techwave-heading-color);
+    margin-bottom: 13px;
+}
+
+.techwave_fn_searchbar .search__results li:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_searchbar .search__results a {
+    text-decoration: none;
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_searchbar .search__results a:hover {
+    color: var(--techwave-main-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	19) Shortcode: Accordion
+/*------------------------------------------------------------------*/
+
+.techwave_fn_accordion.small .acc__item {
+    border-width: 1px;
+}
+
+.techwave_fn_accordion.small .acc__header {
+    padding: 15px 20px;
+}
+
+.techwave_fn_accordion.small .acc__icon:after {
+    width: 11px;
+    height: 1px;
+    right: 20px;
+    margin-top: -1px;
+}
+
+.techwave_fn_accordion.small .acc__icon:before {
+    width: 1px;
+    height: 11px;
+    right: 25px;
+    margin-top: -6px;
+}
+
+.techwave_fn_accordion.small .acc__title {
+    font-size: 14px;
+    text-transform: uppercase;
+    line-height: 20px;
+}
+
+.techwave_fn_accordion.small .acc__content {
+    padding: 14px 20px;
+}
+
+.techwave_fn_accordion .acc__item {
+    border: 2px solid var(--techwave-border-color);
+    background-color: var(--techwave-some-r-bg-color);
+    border-radius: 5px;
+    margin-bottom: 10px;
+}
+
+.techwave_fn_accordion .acc__item.opened .acc__header,
+.techwave_fn_accordion .acc__item .acc__header:hover {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.techwave_fn_accordion .acc__item:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_accordion .acc__header {
+    padding: 26px 30px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 20px;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+    position: relative;
+    cursor: pointer;
+    transition: all .3s ease;
+}
+
+.techwave_fn_accordion .acc__title {
+    margin: 0;
+    padding: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 20px;
+    font-weight: 400;
+    line-height: 1.25;
+    padding-right: 23px;
+    top: 1px;
+}
+
+.techwave_fn_accordion .acc__icon:after {
+    width: 18px;
+    height: 2px;
+    background-color: var(--techwave-heading-color);
+    content: '';
+    position: absolute;
+    right: 30px;
+    top: 50%;
+    margin-top: -1px;
+}
+
+.techwave_fn_accordion .opened .acc__icon:before {
+    transform: scale(0) rotate(90deg);
+}
+
+.techwave_fn_accordion .acc__icon:before {
+    width: 2px;
+    height: 18px;
+    background-color: var(--techwave-heading-color);
+    content: '';
+    position: absolute;
+    right: 38px;
+    top: 50%;
+    margin-top: -9px;
+    transition: all .3s ease;
+}
+
+.techwave_fn_accordion .acc__content {
+    padding: 24px 30px;
+    display: none;
+    overflow: hidden;
+    border-top: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_accordion .acc__content p {
+    margin-bottom: 18px;
+}
+
+.techwave_fn_accordion .acc__content>*:last-child {
+    margin-bottom: 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	20) Page: Community Feed
+/*------------------------------------------------------------------*/
+
+.techwave_fn_community_page {
+    padding: 36px 0 40px 0;
+}
+
+.techwave_fn_community_page .fn__title_holder {
+    margin-bottom: 28px;
+}
+
+.fn__title_holder .title {
+    margin: 0;
+    padding: 0;
+    font-size: 22px;
+    font-weight: 600;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	21) Tabs
+/*------------------------------------------------------------------*/
+
+.fn__tabs {
+    border-bottom: 1px solid var(--techwave-border-color);
+    margin-bottom: 30px;
+}
+
+.fn__tabs .tab_in {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    width: 100%;
+    flex-wrap: wrap;
+}
+
+.fn__tabs a {
+    text-decoration: none;
+    font-size: 14px;
+    font-weight: 500;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-right: 30px;
+    line-height: 40px;
+    position: relative;
+}
+
+.fn__tabs a:after {
+    content: '';
+    opacity: 0;
+    position: absolute;
+    left: 50%;
+    bottom: -1px;
+    height: 2px;
+    background-color: var(--techwave-main-color);
+    right: 50%;
+    transition: all .3s ease;
+}
+
+.fn__tabs a.active:after {
+    left: 0;
+    right: 0;
+    opacity: 1;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	22) Page: Personal Feed
+/*------------------------------------------------------------------*/
+
+.techwave_fn_feed .feed__filter {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    column-gap: 50px;
+    margin-bottom: 30px;
+    position: relative;
+    -ms-align-items: center;
+    align-items: center;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_feed .filter__left {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    margin: 5px 0;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_feed .filter__upscaled {
+    margin: 5px 0;
+}
+
+.techwave_fn_feed .filter__left>* {
+    margin-right: 30px;
+}
+
+.techwave_fn_feed .filter__left>*:last-child {
+    margin-right: 0;
+}
+
+.techwave_fn_feed .filter__search {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_feed .filter__search a {
+    margin: 5px 0;
+}
+
+.techwave_fn_feed .filter__search input {
+    margin: 5px 10px 5px 0;
+}
+
+.techwave_fn_feed .filter__sorting {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    margin-left: -10px;
+}
+
+.techwave_fn_feed .filter__sorting a {
+    margin: 5px 0 5px 10px;
+}
+
+.fn__selection_box {
+    display: none;
+    border-top: 1px solid var(--techwave-border-color);
+    border-bottom: 1px solid var(--techwave-border-color);
+    padding: 25px 0;
+    margin-bottom: 30px;
+    position: sticky;
+    top: var(--techwave-header-height);
+    z-index: 5;
+    background: var(--techwave-site-bg-color);
+}
+
+.fn__selection_box .desc {
+    margin: 0;
+    padding: 0;
+}
+
+.fn__selection_box .selection_in {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__selection_box .actions {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+.fn__selection_box .actions a {
+    margin: 5px 0 5px 10px;
+}
+
+.techwave_fn_feed .feed__results {
+    margin-bottom: 60px;
+    position: relative;
+}
+
+.techwave_fn_feed .feed__results.loading .fn__gallery_items {
+    opacity: 0;
+    visibility: hidden;
+}
+
+.techwave_fn_feed .feed__results.loading .fn__preloader {
+    opacity: 1;
+    visibility: visible;
+}
+
+.techwave_fn_feed .feed__more {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: center;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	23) Shortcode: Gallery Items
+/*------------------------------------------------------------------*/
+
+.fn__gallery_items {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    margin-left: -20px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+}
+
+.fn__gallery_items .item.select__ready .item__info {
+    display: none;
+}
+
+.fn__gallery_items .item.select__ready .fn__selectable_item {
+    opacity: 1;
+    visibility: visible;
+    pointer-events: all;
+}
+
+.fn__selectable_item {
+    opacity: 0;
+    visibility: hidden;
+    pointer-events: none;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    z-index: 3;
+    color: var(--techwave-hover-color);
+    border: 2px solid transparent;
+    border-radius: 5px;
+    cursor: pointer;
+}
+
+.fn__selectable_item.selected {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__selectable_item.selected .icon {
+    background-color: var(--techwave-main-color);
+}
+
+.fn__selectable_item.selected:after {
+    opacity: 0.1;
+}
+
+.fn__selectable_item:after {
+    background-color: var(--techwave-site-bg-color);
+    opacity: .6;
+    position: absolute;
+    top: -2px;
+    left: -2px;
+    right: -2px;
+    bottom: -2px;
+    content: '';
+}
+
+.fn__selectable_item .icon {
+    width: 50px;
+    height: 50px;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 100%;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: center;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__selectable_item .fn__svg {
+    position: relative;
+    z-index: 3;
+}
+
+.fn__gallery_item {
+    margin: 0;
+    padding: 0;
+    padding-left: 20px;
+    width: 25%;
+    margin-bottom: 20px;
+}
+
+.fn__gallery_items .item {
+    position: relative;
+    width: 100%;
+    overflow: hidden;
+    cursor: pointer;
+}
+
+.fn__gallery_items .img img {
+    border-radius: 5px;
+    width: 100%;
+    height: 100%;
+}
+
+.fn__gallery_items .item:hover .item__info {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__gallery_items .item__info {
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    position: absolute;
+    bottom: 10px;
+    left: 10px;
+    right: 10px;
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    padding: 20px 15px 19px;
+    transition: all .3s ease;
+}
+
+.fn__gallery_items .info__header {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 14px;
+    -ms-align-items: center;
+    align-items: center;
+    column-gap: 15px;
+}
+
+.fn__gallery_items .user__info {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    max-width: 60%;
+}
+
+.fn__gallery_items .author_name {
+    margin: 0;
+    padding: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 14px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.fn__gallery_items .user__info img {
+    width: 20px;
+    height: 20px;
+    object-fit: cover;
+    border-radius: 100%;
+    margin-right: 7px;
+}
+
+.fn__gallery_items .item__info .desc {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-line-clamp: 3;
+    line-clamp: 3;
+    -webkit-box-orient: vertical;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	24) Like Button
+/*------------------------------------------------------------------*/
+
+a.fn__like {
+    text-decoration: none;
+    font-size: 14px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    overflow: hidden;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    position: relative;
+    z-index: 25;
+    padding: 0 18px;
+    padding-right: 42px;
+    height: 40px;
+    border: 2px solid var(--techwave-some-a-bg-color);
+    border-radius: 20px;
+    line-height: 36px;
+}
+
+a.fn__like .count {
+    position: relative;
+    top: 1px;
+}
+
+a.fn__like .fn__svg {
+    position: absolute;
+    width: 18px;
+    height: 18px;
+    right: 18px;
+    top: 50%;
+    margin-top: -9px;
+    opacity: 0;
+}
+
+a.fn__like .empty__like {
+    opacity: 1;
+}
+
+a.fn__like.has__like .empty__like {
+    opacity: 0;
+}
+
+a.fn__like.has__like .full__like {
+    opacity: 1;
+    color: var(--techwave-main-color);
+}
+
+a.fn__like:hover {
+    opacity: .8;
+}
+
+a.fn__like.has__like {
+    border-color: var(--techwave-main-color);
+}
+
+a.fn__like.no_border {
+    border: none;
+    padding: 0 24px 0 0;
+    line-height: 16px;
+    border-radius: 0;
+    height: 16px;
+}
+
+a.fn__like.no_border .fn__svg {
+    right: 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	25) Checkbox
+/*------------------------------------------------------------------*/
+
+.fn__checkbox {
+    margin: 0;
+    padding: 0;
+    position: relative;
+    min-height: 20px;
+    line-height: 20px;
+    padding-left: 27px;
+    font-size: 16px;
+    font-weight: 400;
+    border: none;
+    outline: none;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    cursor: pointer;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    -o-user-select: none;
+    user-select: none;
+}
+
+.fn__checkbox .fn__svg {
+    opacity: 0;
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    left: 4px;
+    top: 50%;
+    margin-top: -6px;
+    border-color: var(--techwave-main-color);
+}
+
+.fn__checkbox input {
+    position: absolute;
+    opacity: 0;
+    cursor: pointer;
+    height: 0;
+    width: 0;
+}
+
+.fn__checkbox input:checked~.fn__svg {
+    opacity: 1;
+}
+
+.fn__checkbox input:checked~.checkmark {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__checkbox .checkmark {
+    width: 20px;
+    height: 20px;
+    display: block;
+    position: absolute;
+    top: 50%;
+    margin-top: -10px;
+    left: 0;
+    border: 2px solid var(--techwave-border-color);
+    border-radius: 3px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	26) Image Lightbox
+/*------------------------------------------------------------------*/
+
+.techwave_fn_img_lightbox {
+    opacity: 0;
+    visibility: hidden;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 105;
+    background-color: var(--techwave-site-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    overflow-y: auto;
+    pointer-events: none;
+    transition: all .3s ease;
+}
+
+.techwave_fn_img_lightbox.opened {
+    opacity: 1;
+    visibility: visible;
+    pointer-events: all;
+}
+
+.techwave_fn_img_lightbox .lightbox__top {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_img_lightbox .lightbox__tl {
+    width: 70%;
+    width: calc(100% - 440px);
+}
+
+.techwave_fn_img_lightbox .lightbox__tr {
+    width: 30%;
+    width: 440px;
+    border-left: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_img_lightbox .lightbox__tlbar {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    padding: 20px;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_img_lightbox .lightbox__tlbar_left {
+    flex: 3;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_img_lightbox .lightbox__tlbar_left .item {
+    margin: 2.5px 5px 2.5px 0;
+}
+
+.techwave_fn_img_lightbox .lightbox__tlbar_center {
+    flex: 2;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    column-gap: 5px;
+}
+
+.techwave_fn_img_lightbox .lightbox__tlbar_right {
+    flex: 3;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: flex-end;
+}
+
+.techwave_fn_img_lightbox .img_nav {
+    text-decoration: none;
+    width: 40px;
+    height: 40px;
+    border: 2px solid var(--techwave-some-a-bg-color);
+    border-radius: 100%;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_img_lightbox .img_nav:hover {
+    border-color: var(--techwave-main-color);
+}
+
+.techwave_fn_img_lightbox .img_nav .fn__svg {
+    width: 12px;
+    height: 12px;
+}
+
+.techwave_fn_img_lightbox .img_nav.nav_prev .fn__svg {
+    transform: rotate(180deg);
+}
+
+.techwave_fn_img_lightbox .lightbox__tlimg {
+    padding: 0 40px 60px;
+    text-align: center;
+}
+
+.techwave_fn_img_lightbox .user__profile {
+    padding: 20px 70px 20px 20px;
+    position: relative;
+    position: sticky;
+    top: 0;
+    background-color: var(--techwave-site-bg-color);
+    z-index: 2;
+    border-bottom: 1px solid var(--techwave-border-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    width: 100%;
+}
+
+.techwave_fn_img_lightbox .user__profile .profile_link {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    text-decoration: none;
+    -ms-align-items: center;
+    align-items: center;
+    margin-right: 10px;
+    max-width: 55%;
+}
+
+.techwave_fn_img_lightbox .user__profile .profile_link .user_name {
+    margin: 0;
+    padding: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    font-size: 16px;
+}
+
+.techwave_fn_img_lightbox .user__profile .profile_link img {
+    min-width: 40px;
+    width: 40px;
+    height: 40px;
+    border-radius: 100%;
+    margin-right: 10px;
+    object-fit: cover;
+}
+
+.techwave_fn_img_lightbox .fn__closer {
+    position: absolute;
+    right: 20px;
+    top: 50%;
+    margin-top: -15px;
+}
+
+.techwave_fn_img_lightbox .item__details {
+    padding: 20px;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_img_lightbox .item__details>* {
+    margin-bottom: 10px;
+}
+
+.techwave_fn_img_lightbox .item__details>*:last-child {
+    margin-bottom: 0px;
+}
+
+.techwave_fn_img_lightbox .lightbox__related {
+    padding: 36px 40px 20px;
+}
+
+.techwave_fn_img_lightbox .lightbox__related .fn__title_holder {
+    margin-bottom: 33px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	27) Follow Button
+/*------------------------------------------------------------------*/
+
+.fn__follow {
+    padding: 0 10px;
+    position: relative;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    height: 24px;
+    white-space: nowrap;
+    max-width: 100%;
+    text-decoration: none;
+    background-color: var(--techwave-some-a-bg-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 11px;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    border-radius: 12px;
+    line-height: 24px;
+    color: var(--techwave-body-color);
+    font-weight: 400;
+}
+
+.fn__follow:hover {
+    opacity: .8;
+}
+
+.fn__follow.has__follow {
+    background-color: #f1416c;
+    color: #fff;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	28) Icon Button
+/*------------------------------------------------------------------*/
+
+.fn__icon_button {
+    width: 30px;
+    height: 30px;
+    border-radius: 5px;
+    background-color: var(--techwave-some-a-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    color: var(--techwave-heading-color);
+}
+
+.fn__icon_button .dots {
+    display: block;
+    position: relative;
+    width: 15px;
+    height: 3px;
+    border-left: 3px solid var(--techwave-heading-color);
+    border-right: 3px solid var(--techwave-heading-color);
+}
+
+.fn__icon_button .dots:after {
+    width: 3px;
+    top: 0;
+    bottom: 0;
+    left: 3px;
+    content: '';
+    position: absolute;
+    background-color: var(--techwave-heading-color);
+}
+
+.fn__icon_button:hover {
+    opacity: .8;
+}
+
+.fn__icon_button .fn__svg {
+    width: 12px;
+    height: 12px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	29) Model Button (used in image lightbox)
+/*------------------------------------------------------------------*/
+
+.fn__model {
+    position: relative;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    padding: 10px 70px 10px 20px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__model .fn__icon_button {
+    position: absolute;
+    right: 20px;
+    top: 50%;
+    margin-top: -15px;
+}
+
+.fn__model .model_img img {
+    width: 60px;
+    height: 60px;
+    object-fit: cover;
+    border-radius: 5px;
+    margin-right: 15px;
+}
+
+.fn__model .model_subtitle {
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    letter-spacing: .5px;
+    font-size: 11px;
+    text-transform: uppercase;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    margin-bottom: 5px;
+}
+
+.fn__model .model_title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	30) Prompt Details (used in image lightbox)
+/*------------------------------------------------------------------*/
+
+.fn__prompt_details {
+    position: relative;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+}
+
+.fn__prompt_details .prompt__content {
+    padding: 0 20px 15px 20px;
+}
+
+.fn__prompt_details .prompt__content p {
+    margin: 0;
+    font-size: 16px;
+    line-height: 20px;
+}
+
+.fn__prompt_details .prompt__text {
+    margin: 0;
+    padding: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 14px;
+    font-weight: 400;
+    line-height: 20px;
+    text-transform: uppercase;
+}
+
+.fn__prompt_details .prompt__options:hover .prompt__popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__prompt_details .prompt__popup {
+    right: 0;
+    position: absolute;
+    top: 100%;
+    padding-top: 5px;
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    transition: all .3s ease;
+}
+
+.fn__prompt_details .prompt__popup ul {
+    width: 180px;
+    list-style-type: none;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+    margin: 0;
+    padding: 15px 20px;
+}
+
+.fn__prompt_details .prompt__popup a {
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-decoration: none;
+    overflow: hidden;
+}
+
+.fn__prompt_details .prompt__popup a:hover {
+    color: var(--techwave-main-color);
+}
+
+.fn__prompt_details .prompt__popup li {
+    margin: 0;
+    margin-bottom: 3px;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__prompt_details .prompt__popup li:last-child {
+    margin-bottom: 0;
+}
+
+.fn__prompt_details .prompt__options {
+    position: absolute;
+    top: 50%;
+    right: 20px;
+    margin-top: -15px;
+}
+
+.fn__prompt_details .prompt__header {
+    position: relative;
+    padding: 15px 70px 10px 20px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	31) Detailed list (used in image lightbox)
+/*------------------------------------------------------------------*/
+
+.fn__details_list {
+    padding: 27px 30px 3px;
+}
+
+.fn__details_list ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    margin-left: -30px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+}
+
+.fn__details_list li {
+    padding-left: 30px;
+    margin-bottom: 20px;
+    width: 50%;
+}
+
+.fn__details_list .sub_title {
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    letter-spacing: .5px;
+    font-size: 11px;
+    text-transform: uppercase;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    margin-bottom: 1px;
+}
+
+.fn__details_list .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	32) Grid Items (used in image lightbox)
+/*------------------------------------------------------------------*/
+
+.fn__grid_items ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin-left: -20px;
+}
+
+.fn__grid_items li {
+    padding-left: 20px;
+    margin-bottom: 20px;
+    width: 16.6666%;
+}
+
+.fn__grid_items img {
+    border-radius: 5px;
+    display: block;
+    width: 100%;
+    height: 100%;
+    aspect-ratio: 1 / 1;
+    object-fit: cover;
+    transition: all .3s ease;
+}
+
+.fn__grid_items img:hover {
+    -webkit-filter: brightness(.5);
+    filter: brightness(.5);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	33) Reportbox
+/*------------------------------------------------------------------*/
+
+.techwave_fn_report {
+    pointer-events: none;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 110;
+    opacity: 0;
+    visibility: hidden;
+    background-color: var(--techwave-site-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    overflow-y: auto;
+    padding: 40px;
+}
+
+.techwave_fn_report.opened {
+    pointer-events: all;
+    opacity: 1;
+    visibility: visible;
+}
+
+.techwave_fn_report .report__closer {
+    z-index: 1;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.techwave_fn_report .report__content {
+    width: 600px;
+    max-width: 100%;
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    padding: 30px;
+    padding-bottom: 25px;
+    position: relative;
+    border: 1px solid var(--techwave-border-color);
+    z-index: 3;
+}
+
+.techwave_fn_report .fn__closer {
+    position: absolute;
+    right: 30px;
+    top: 30px;
+    z-index: 2;
+}
+
+.techwave_fn_report .title {
+    text-align: center;
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    font-size: 24px;
+    letter-spacing: 0;
+    margin-bottom: 4px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_report .subtitle {
+    display: block;
+    margin: 0;
+    padding: 0;
+    font-size: 16px;
+    font-weight: 400;
+    line-height: 40px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_report .reason_field {
+    display: block;
+    width: 100%;
+    margin-bottom: 15px;
+    height: 50px;
+    border-radius: 5px;
+}
+
+.techwave_fn_report .btns {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+.techwave_fn_report .btns .cancel {
+    opacity: .6;
+}
+
+.techwave_fn_report .btns a {
+    margin: 5px 10px 5px 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	34) Ajax Loader (Loading)
+/*------------------------------------------------------------------*/
+
+.fn__preloader {
+    opacity: 0;
+    visibility: hidden;
+    position: absolute;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    width: 100%;
+    height: 150px;
+    border: 2px solid var(--techwave-border-color);
+    top: 0;
+    left: 0;
+    z-index: 1;
+}
+
+.fn__preloader .text {
+    display: block;
+    font-size: 18px;
+    letter-spacing: .25px;
+    text-transform: uppercase;
+    font-family: var(--techwave-heading-font-family);
+    font-weight: 600;
+    color: var(--techwave-heading-color);
+}
+
+.fn__preloader .icon {
+    width: 60px;
+    height: 60px;
+    display: block;
+    border: 4px solid transparent;
+    border-top-color: var(--techwave-hover-color);
+    border-right-color: var(--techwave-hover-color);
+    border-bottom-color: var(--techwave-hover-color);
+    border-radius: 100%;
+    animation: techwave_spin 1s linear infinite;
+    margin-bottom: 15px;
+}
+
+.fn__preloader.loading {
+    opacity: 1;
+    visibility: visible;
+}
+
+@keyframes techwave_spin {
+    0% {
+        -webkit-transform: rotate(0deg);
+        -ms-transform: rotate(0deg);
+        transform: rotate(0deg);
+    }
+    100% {
+        -webkit-transform: rotate(360deg);
+        -ms-transform: rotate(360deg);
+        transform: rotate(360deg);
+    }
+}
+
+/*------------------------------------------------------------------*/
+
+/*	35) Page: Sign In and Sign Up
+/*------------------------------------------------------------------*/
+
+.techwave_fn_sign {
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 110;
+    background-color: var(--techwave-site-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    overflow-y: auto;
+    padding: 50px 40px;
+}
+
+.techwave_fn_sign .logo {
+    background-image: none, url(../img/logo-desktop-full.png);
+    background-size: 141px;
+    background-position: center top;
+    background-repeat: no-repeat;
+    color: #3c434a;
+    height: 17px;
+    font-size: 20px;
+    font-weight: 400;
+    line-height: 1.3;
+    margin: 0 auto 50px;
+    padding: 0;
+    text-decoration: none;
+    width: 141px;
+    text-indent: -9999px;
+    outline: 0;
+    overflow: hidden;
+    display: block;
+}
+
+.techwave_fn_sign .sign__desc p {
+    margin: 0;
+    margin-top: 25px;
+    text-align: center;
+    font-size: 14px;
+    line-height: 18px;
+    letter-spacing: 0;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-body-color);
+}
+
+.techwave_fn_sign .sign__desc p a {
+    text-decoration: none;
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_sign .sign__desc p a:hover {
+    text-decoration: underline;
+}
+
+.techwave_fn_sign .sign__content {
+    width: 500px;
+    max-width: 100%;
+}
+
+.techwave_fn_sign .form__content {
+    width: 100%;
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    padding: 36px 50px 40px 50px;
+    position: relative;
+    border: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_sign .form__email,
+.techwave_fn_sign .form__name,
+.techwave_fn_sign .form__username {
+    margin-bottom: 17px;
+}
+
+.techwave_fn_sign .pass_lab {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: space-between;
+}
+
+.techwave_fn_sign .pass_lab a {
+    font-size: 16px;
+    text-decoration: none;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-main-color);
+    line-height: 40px;
+}
+
+.techwave_fn_sign .pass_lab a:hover {
+    text-decoration: underline;
+}
+
+.techwave_fn_sign .form__title {
+    text-align: center;
+    font-size: 24px;
+    margin: 0;
+    font-weight: 500;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-heading-color);
+    line-height: 1;
+    margin-bottom: 3px;
+}
+
+.techwave_fn_sign label {
+    display: block;
+    font-size: 16px;
+    font-weight: 400;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-heading-color);
+    line-height: 40px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.techwave_fn_sign input[type="text"],
+.techwave_fn_sign input[type="password"] {
+    display: block;
+    width: 100%;
+    border-radius: 5px;
+    height: 60px;
+    min-width: 100%;
+}
+
+.techwave_fn_sign .fn__lined_text {
+    margin-bottom: 14px;
+}
+
+.fn__lined_text {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    width: 100%;
+}
+
+.fn__lined_text .line {
+    width: 50%;
+    height: 1px;
+    background-color: var(--techwave-border-color);
+}
+
+.fn__lined_text .text {
+    white-space: nowrap;
+    font-size: 14px;
+    text-transform: uppercase;
+    margin: 0;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-body-font-family);
+    padding: 0 10px;
+}
+
+.techwave_fn_sign .form__alternative a {
+    width: 100%;
+}
+
+.techwave_fn_sign .form__submit {
+    margin-bottom: 14px;
+}
+
+.techwave_fn_sign .form__pass {
+    margin-bottom: 30px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	36) Select Filter (personal feed page)
+/*------------------------------------------------------------------*/
+
+.filter__select {
+    position: relative;
+    z-index: 5;
+}
+
+.filter__select .item__popup {
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    position: absolute;
+    right: 0;
+    top: 100%;
+    width: 140px;
+    margin: 0;
+    padding: 0;
+    padding-top: 5px;
+    transition: all .3s ease;
+}
+
+.filter__select:hover .item__popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.filter__select .item__popup ul {
+    list-style-type: none;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+    margin: 0;
+    padding: 15px 20px;
+}
+
+.filter__select .item__popup li:last-child {
+    margin-bottom: 0;
+}
+
+.filter__select .item__popup li {
+    margin: 0;
+    margin-bottom: 3px;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.filter__select .item__popup a {
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-decoration: none;
+    overflow: hidden;
+}
+
+.filter__select .item__popup a:hover {
+    color: var(--techwave-main-color);
+    opacity: .9;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	37) Page: Notifications
+/*------------------------------------------------------------------*/
+
+.techwave_fn_notifications_content {
+    padding: 40px 0;
+}
+
+.techwave_fn_notifications_list .notification__item:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_notifications_list .notification__item {
+    padding: 24px 30px;
+    border-radius: 5px;
+    border: 1px solid var(--techwave-border-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 20px;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+    background-color: var(--techwave-some-r-bg-color);
+    margin-bottom: 10px;
+    position: relative;
+    transition: all .3s ease;
+}
+
+.techwave_fn_notifications_list .notification__item:hover {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.techwave_fn_notifications_list .item__title {
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 20px;
+    font-weight: 400;
+    margin: 0;
+    padding: 0;
+}
+
+.techwave_fn_notifications_list .item__date {
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 11px;
+    font-weight: 500;
+    text-transform: uppercase;
+}
+
+.techwave_fn_notification_single_content {
+    padding: 40px 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	38) Back To button (notification single page)
+/*------------------------------------------------------------------*/
+
+.fn__backto {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.fn__backto a {
+    text-decoration: none;
+    height: 30px;
+    line-height: 30px;
+    position: relative;
+    padding-left: 30px;
+    padding-right: 13px;
+    border-radius: 5px;
+    font-size: 16px;
+    letter-spacing: 0;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    font-weight: 400;
+    display: block;
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.fn__backto a:hover {
+    color: var(--techwave-main-color);
+}
+
+.fn__backto a .text {
+    position: relative;
+    top: 1px;
+}
+
+.fn__backto a .fn__svg {
+    transform: rotate(180deg);
+    width: 12px;
+    height: 12px;
+    left: 10px;
+    top: 50%;
+    margin-top: -6px;
+    position: absolute;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	39) Page: Pricing
+/*------------------------------------------------------------------*/
+
+.techwave_fn_pricing_page {
+    padding: 93px 0px 100px;
+}
+
+.techwave_fn_pricing_page .techwave_fn_title_holder {
+    margin-bottom: 43px;
+}
+
+.techwave_fn_pricing_page .techwave_fn_pricing {
+    margin-bottom: 111px;
+}
+
+.techwave_fn_pricing .pricing__tab {
+    display: none;
+}
+
+.techwave_fn_pricing .pricing__tab.active {
+    display: block;
+}
+
+.techwave_fn_pricing .pricing__toggle {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    margin-bottom: 40px;
+}
+
+.techwave_fn_pricing .pricing__toggle .bg {
+    position: absolute;
+    height: 40px;
+    top: 9px;
+    left: 50%;
+    border-radius: 20px;
+    background-color: var(--techwave-some-a-bg-color);
+    z-index: 1;
+    transition: all .3s ease;
+    width: 0;
+}
+
+.techwave_fn_pricing .pricing__toggle .toggle_in {
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 60px;
+    padding: 9px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    position: relative;
+}
+
+.techwave_fn_pricing .pricing__toggle a {
+    text-decoration: none;
+    height: 40px;
+    line-height: 40px;
+    padding: 0 35px;
+    font-size: 14px;
+    margin: 0;
+    font-weight: 500;
+    text-transform: uppercase;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    position: relative;
+    z-index: 2;
+}
+
+.techwave_fn_pricing .pricing__toggle a:hover {
+    color: var(--techwave-main-color);
+}
+
+.techwave_fn_pricing .pricing__content {
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+}
+
+.techwave_fn_pricing .popular {
+    position: absolute;
+    top: 0;
+    margin-top: -16px;
+    background-color: #ab0cdf;
+    height: 30px;
+    border-radius: 15px;
+    font-weight: 500;
+    color: #fff;
+    letter-spacing: 0;
+    text-transform: uppercase;
+    font-family: var(--techwave-heading-font-family);
+    padding: 0 18px;
+    font-size: 14px;
+    line-height: 30px;
+    left: 50%;
+    transform: translateX(-50%);
+    text-align: center;
+    z-index: 3;
+}
+
+.techwave_fn_pricing .popular * {
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    max-width: 100%;
+    display: block;
+}
+
+.techwave_fn_pricing .popular:after {
+    content: '';
+    left: 50%;
+    margin-left: -6px;
+    top: 100%;
+    width: 0;
+    height: 0;
+    border-style: solid;
+    border-width: 4px 6px 0 6px;
+    border-color: #ab0cdf transparent transparent transparent;
+    position: absolute;
+}
+
+.techwave_fn_pricing .item_row {
+    margin-left: -1px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    text-align: center;
+}
+
+.techwave_fn_pricing .item_row .item_col:nth-child(1) {
+    width: 31%;
+    max-width: 31%;
+    text-align: left;
+    justify-content: flex-start;
+}
+
+.techwave_fn_pricing .item_row .item_col {
+    width: 23%;
+    max-width: 23%;
+    border-left: 1px solid var(--techwave-border-color);
+    position: relative;
+}
+
+.techwave_fn_pricing .pricing__header .title {
+    margin: 0;
+    padding: 0;
+    font-size: 24px;
+    letter-spacing: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 10px;
+}
+
+.techwave_fn_pricing .pricing__header .price {
+    margin: 0;
+    padding: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 14px;
+    font-weight: 500;
+    margin-bottom: 11px;
+}
+
+.techwave_fn_pricing .pricing__header .price span {
+    font-size: 36px;
+    font-weight: 500;
+}
+
+.techwave_fn_pricing .pricing__header .desc {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    letter-spacing: 0;
+    line-height: 20px;
+    font-weight: 400;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 24px;
+}
+
+.techwave_fn_pricing .pricing__header .desc span {
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_pricing .pricing__header .purchase {
+    padding: 0;
+    margin: 0;
+}
+
+.techwave_fn_pricing .pricing__header .purchase a {
+    width: 100%;
+}
+
+.techwave_fn_pricing .pricing__header .item_col {
+    padding: 35px 30px 40px 30px;
+}
+
+.techwave_fn_pricing .pricing__heading {
+    background-color: var(--techwave-some-a-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    margin: 0 -1px;
+}
+
+.techwave_fn_pricing .pricing__heading .item.wide {
+    width: 69%;
+    max-width: 69%;
+}
+
+.techwave_fn_pricing .pricing__heading .item {
+    height: 54px;
+    position: relative;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    padding: 0 30px;
+}
+
+.techwave_fn_pricing .pricing__heading .item {
+    width: 31%;
+    max-width: 31%;
+}
+
+.techwave_fn_pricing .pricing__heading .title {
+    font-size: 14px;
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_pricing .pricing__heading .item_col:first-child {
+    padding: 0 40px;
+}
+
+.techwave_fn_pricing .pricing__heading .item.wide:after {
+    content: '';
+    left: 30px;
+    right: 30px;
+    position: absolute;
+    height: 4px;
+    border-radius: 5px;
+    top: 50%;
+    margin-top: -2px;
+    background-color: var(--techwave-site-bg-color);
+}
+
+.techwave_fn_pricing .pricing__fields .item_row:nth-child(1) .item_col {
+    padding-top: 35px;
+}
+
+.techwave_fn_pricing .pricing__fields .item_row:last-child .item_col {
+    padding-bottom: 24px;
+}
+
+.techwave_fn_pricing .pricing__fields .item_col {
+    padding: 9px 30px;
+    line-height: 24px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.techwave_fn_pricing .pricing__fields .option_text {
+    font-size: 16px;
+    margin: 0;
+    padding: 0;
+    letter-spacing: .5px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_pricing .pricing__fields .heading_text {
+    font-size: 16px;
+    margin: 0;
+    padding: 0;
+    letter-spacing: .5px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_pricing .pricing__footer {
+    border-top: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_pricing .pricing__footer .item_col {
+    padding: 40px 30px;
+}
+
+.techwave_fn_pricing .pricing__footer a {
+    width: 100%;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	40) Shortcode: Pricing Mobile
+/*------------------------------------------------------------------*/
+
+.fn__mobile_pricing {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    display: none;
+    flex-wrap: wrap;
+    margin-left: -20px;
+    text-align: center;
+}
+
+.fn__mobile_pricing .pricing__item {
+    width: 33.3333%;
+    padding-left: 20px;
+    margin-bottom: 20px;
+}
+
+.fn__mobile_pricing .pricing__item_holder {
+    width: 100%;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    position: relative;
+}
+
+.fn__mobile_pricing .pricing__item__header {
+    padding: 35px 10px 40px 10px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    justify-content: center;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__mobile_pricing .pricing__item__header .title {
+    margin: 0;
+    padding: 0;
+    font-size: 24px;
+    letter-spacing: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 10px;
+}
+
+.fn__mobile_pricing .pricing__item__header .price {
+    margin: 0;
+    padding: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 14px;
+    font-weight: 500;
+    margin-bottom: 11px;
+}
+
+.fn__mobile_pricing .pricing__item__header .price span {
+    font-size: 36px;
+    font-weight: 500;
+}
+
+.fn__mobile_pricing .pricing__item__header .desc {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    letter-spacing: 0;
+    line-height: 20px;
+    font-weight: 400;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 24px;
+}
+
+.fn__mobile_pricing .pricing__item__header .desc span {
+    color: var(--techwave-heading-color);
+}
+
+.fn__mobile_pricing .pricing__item__header .purchase {
+    padding: 0;
+    margin: 0;
+}
+
+.fn__mobile_pricing .pricing__item__header .purchase a {
+    width: 100%;
+}
+
+.fn__mobile_pricing .pricing__item__heading {
+    background-color: var(--techwave-some-a-bg-color);
+    padding: 0 10px;
+    text-align: center;
+    height: 40px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.fn__mobile_pricing .pricing__item__heading .title {
+    font-size: 14px;
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__mobile_pricing .pricing__item_list {
+    padding: 10px 0px;
+}
+
+.fn__mobile_pricing .pricing__item_list_item {
+    padding: 7px 10px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: space-between;
+    column-gap: 20px;
+}
+
+.fn__mobile_pricing .pricing__item_list .title {
+    font-size: 14px;
+    margin: 0;
+    padding: 0;
+    letter-spacing: .5px;
+    font-weight: 400;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    text-align: left;
+}
+
+.fn__mobile_pricing .pricing__item_list .desc {
+    font-size: 16px;
+    margin: 0;
+    padding: 0;
+    letter-spacing: .5px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-align: right;
+    white-space: nowrap;
+}
+
+.fn__mobile_pricing .pricing__item_footer {
+    padding: 30px 10px;
+    border-top: 1px solid var(--techwave-border-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	41) Page: User Profile
+/*------------------------------------------------------------------*/
+
+.techwave_fn_user_profile {
+    padding: 40px 0;
+}
+
+.techwave_fn_user_profile .user__profile {
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    position: relative;
+    padding: 30px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    margin-bottom: 10px;
+}
+
+.techwave_fn_user_profile .user__profile .user_edit {
+    position: absolute;
+    top: 30px;
+    right: 30px;
+}
+
+.techwave_fn_user_profile .user__profile .user_edit .fn__svg {
+    width: 16px;
+    height: 16px;
+}
+
+.techwave_fn_user_profile .user__profile .user_avatar {
+    width: 200px;
+    min-width: 200px;
+    margin-right: 30px;
+}
+
+.techwave_fn_user_profile .user__profile .user_avatar img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    aspect-ratio: 1 / 1;
+    border-radius: 5px;
+}
+
+.techwave_fn_user_profile .user__profile .user_details ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin-left: -20px;
+}
+
+.techwave_fn_user_profile .user__profile .user_details li {
+    margin: 11px 0;
+    padding: 0;
+    width: 50%;
+    padding-left: 20px;
+}
+
+.techwave_fn_user_profile .user__profile .subtitle {
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    letter-spacing: .5px;
+    font-size: 11px;
+    text-transform: uppercase;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    margin-bottom: 7px;
+}
+
+.techwave_fn_user_profile .user__profile .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_user_profile .user__plan {
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    position: relative;
+    padding: 38px 30px 33px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: space-between;
+    margin-bottom: 38px;
+    column-gap: 30px;
+}
+
+.techwave_fn_user_profile .user__plan .subtitle {
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    letter-spacing: .5px;
+    font-size: 11px;
+    text-transform: uppercase;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    margin-bottom: 4px;
+}
+
+.techwave_fn_user_profile .user__plan .info {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_user_profile .user__plan .info span {
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_user_profile .user__interests .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 14px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	42) Shortcode: Options list (used in user profile page)
+/*------------------------------------------------------------------*/
+
+.fn__options_list ul {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    margin-left: -10px;
+}
+
+.fn__options_list li {
+    padding-left: 10px;
+    margin-bottom: 10px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	43) Page: User Settings
+/*------------------------------------------------------------------*/
+
+.techwave_fn_user_settings {
+    padding: 40px 0;
+}
+
+.techwave_fn_user_settings .user__settings {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 40px;
+}
+
+.techwave_fn_user_settings .settings_left {
+    width: 300px;
+    max-width: 50%;
+}
+
+.techwave_fn_user_settings .settings_right {
+    flex: auto;
+    max-width: 50%;
+}
+
+.techwave_fn_user_settings .input_label {
+    display: block;
+    font-size: 16px;
+    font-weight: 400;
+    font-family: var(--techwave-body-font-family);
+    color: var(--techwave-heading-color);
+    line-height: 40px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.techwave_fn_user_settings .input_item {
+    position: relative;
+}
+
+.techwave_fn_user_settings .input_item .email {
+    margin: 0;
+    padding: 0;
+    position: absolute;
+    top: 50%;
+    margin-top: -15px;
+    border-radius: 5px;
+    display: block;
+    width: 30px;
+    height: 30px;
+    background-color: var(--techwave-some-a-bg-color);
+    left: 12px;
+    color: var(--techwave-main-color);
+    line-height: 30px;
+    text-align: center;
+    font-size: 16px;
+    font-family: var(--techwave-body-font-family);
+    pointer-events: none;
+}
+
+.techwave_fn_user_settings .input {
+    display: block;
+    width: 100%;
+    border-radius: 5px;
+    height: 60px;
+}
+
+.techwave_fn_user_settings .settings_right .fn__checkbox {
+    margin: 30px 0;
+    display: block;
+    width: fit-content;
+    max-width: 100%;
+}
+
+.techwave_fn_user_settings .settings_right .item {
+    margin-bottom: 17px;
+}
+
+.techwave_fn_user_settings .settings_right .item:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_user_settings #username {
+    padding-left: 50px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	44) Upload Button
+/*------------------------------------------------------------------*/
+
+.fn__upload {
+    cursor: pointer;
+    text-align: center;
+    width: 100%;
+    aspect-ratio: 1 / 1;
+    border: 2px dashed var(--techwave-border-color);
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    padding: 46px;
+    transition: all .3s ease;
+    position: relative;
+    display: block;
+    overflow: hidden;
+}
+
+.fn__upload .upload_content {
+    width: 100%;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    justify-content: center;
+    -ms-align-items: center;
+    align-items: center;
+    min-height: 100%;
+}
+
+.fn__upload.has_img {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__upload.has_img .upload_content {
+    opacity: 0;
+}
+
+.fn__upload .upload_preview {
+    opacity: 0;
+    visibility: hidden;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.fn__upload.has_img .upload_preview {
+    opacity: 1;
+    visibility: visible;
+}
+
+.fn__upload:hover {
+    opacity: .8;
+}
+
+.fn__upload .preview_img {
+    object-fit: cover;
+}
+
+.fn__upload .preview_img[src="#"] {
+    opacity: 0;
+}
+
+.fn__upload input[type="file"] {
+    z-index: 2;
+    position: absolute;
+    top: 0;
+    left: 0;
+    opacity: 0;
+    width: 100%;
+    height: 100%;
+    display: block;
+    cursor: pointer;
+}
+
+.fn__upload .upload_content .fn__svg {
+    width: 70px;
+    height: auto;
+    color: var(--techwave-heading-color);
+    margin-bottom: 15px;
+}
+
+.fn__upload .upload_content .fn__lined_text {
+    margin-bottom: 4px;
+}
+
+.fn__upload .upload_content .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 3px;
+}
+
+.fn__upload .upload_content .desc {
+    margin: 0;
+    padding: 0;
+    padding-top: 6px;
+    font-size: 12px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__upload .fn__closer {
+    position: absolute;
+    right: 10px;
+    top: 10px;
+    z-index: 3;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	45) Page: User Billing
+/*------------------------------------------------------------------*/
+
+.techwave_fn_user_billing {
+    padding: 40px 0;
+}
+
+.techwave_fn_user_billing .billing__plan {
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    position: relative;
+    padding: 28px 30px 23px;
+    margin-bottom: 10px;
+}
+
+.techwave_fn_user_billing .billing__plan .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 4px;
+}
+
+.techwave_fn_user_billing .billing__plan .desc {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_user_billing .billing__plan .plan {
+    position: absolute;
+    left: 30px;
+    top: -10px;
+    display: block;
+    height: 20px;
+    padding: 0 15px;
+    background-color: var(--techwave-main-color);
+    color: #fff;
+    font-family: var(--techwave-heading-font-family);
+    font-weight: 500;
+    font-size: 11px;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    line-height: 20px;
+    border-radius: 10px;
+}
+
+.techwave_fn_user_billing .billing__plan .plan * {
+    position: relative;
+    top: 1px;
+}
+
+.techwave_fn_user_billing .billing__activation {
+    margin-bottom: 39px;
+}
+
+.techwave_fn_user_billing .billing__activation .activation_status .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 5px;
+}
+
+.techwave_fn_user_billing .billing__activation .activation_status .desc {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_user_billing .billing__activation .activation_status {
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    position: relative;
+    padding: 28px 30px 23px;
+    margin-bottom: 15px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    column-gap: 30px;
+}
+
+.techwave_fn_user_billing .billing__activation .status_right {
+    width: 150px;
+    max-width: 50%;
+    text-align: right;
+}
+
+.techwave_fn_user_billing .billing__activation .status_right .info {
+    display: block;
+    font-size: 11px;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    font-weight: 500;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    line-height: 1;
+    margin-bottom: 6px;
+}
+
+.techwave_fn_user_billing .billing__activation .status_right .progress {
+    display: block;
+    width: 100%;
+    height: 4px;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 4px;
+    position: relative;
+}
+
+.techwave_fn_user_billing .billing__activation .status_right .progress.active:after {
+    width: var(--frenify-progress);
+}
+
+.techwave_fn_user_billing .billing__activation .status_right .progress:after {
+    right: 0;
+    top: 0;
+    position: absolute;
+    bottom: 0;
+    background-color: var(--techwave-main-color);
+    border-radius: 4px;
+    width: 0;
+    transition: all .3s ease;
+    content: '';
+}
+
+.techwave_fn_user_billing .billing__activation .activation_actions {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_user_billing .billing__activation .activation_actions a {
+    margin: 5px 10px 5px 0;
+}
+
+.techwave_fn_user_billing .payment__methods .title {
+    margin: 0;
+    padding: 0;
+    font-size: 22px;
+    line-height: 1.364;
+    font-weight: 600;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 22px;
+}
+
+.techwave_fn_user_billing .payment__methods .payment__list {
+    margin: 0;
+    list-style-type: none;
+    padding: 0;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin-left: -20px;
+}
+
+.techwave_fn_user_billing .payment__methods .payment__list_item {
+    margin: 0;
+    padding: 0;
+    width: 50%;
+    padding-left: 20px;
+    margin-bottom: 20px;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .item {
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    position: relative;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .item_header {
+    padding: 17px 15px 13px;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 3px;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .subtitle {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .action {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    width: 100%;
+    justify-content: space-between;
+    height: 40px;
+    padding: 0 15px;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper {
+    position: relative;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .options {
+    width: 30px;
+    height: 30px;
+    border-radius: 30px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .dots {
+    display: block;
+    position: relative;
+    width: 15px;
+    height: 3px;
+    border-left: 3px solid var(--techwave-heading-color);
+    border-right: 3px solid var(--techwave-heading-color);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .dots:after {
+    width: 3px;
+    top: 0;
+    bottom: 0;
+    left: 3px;
+    content: '';
+    position: absolute;
+    background-color: var(--techwave-heading-color);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper:hover .edit__popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0px);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .edit__popup {
+    position: absolute;
+    left: 100%;
+    bottom: 0;
+    width: 140px;
+    opacity: 0;
+    visibility: hidden;
+    transition: all .3s ease;
+    transform: translateY(-20px);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .edit__popup a {
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-decoration: none;
+    overflow: hidden;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .edit__popup a:hover {
+    color: var(--techwave-main-color);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .edit__popup ul {
+    list-style-type: none;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+    margin: 0;
+    padding: 15px 20px;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .edit__popup li {
+    margin: 0;
+    margin-bottom: 3px;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_user_billing .payment__methods .ready .edit_wrapper .edit__popup li:last-child {
+    margin-bottom: 0;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .primary {
+    display: block;
+    height: 20px;
+    padding: 0 15px;
+    background-color: var(--techwave-main-color);
+    color: #fff;
+    font-family: var(--techwave-heading-font-family);
+    font-weight: 500;
+    font-size: 11px;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    line-height: 20px;
+    border-radius: 15px;
+}
+
+.techwave_fn_user_billing .payment__methods .ready .primary span {
+    position: relative;
+    top: 1px;
+}
+
+.techwave_fn_user_billing .payment__methods .new .item {
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    position: relative;
+    padding: 30px 15px 27px;
+    text-align: center;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.techwave_fn_user_billing .payment__methods .new .item a {
+    z-index: 2;
+}
+
+.techwave_fn_user_billing .payment__methods .new .add {
+    height: 40px;
+    width: 40px;
+    position: relative;
+    margin-bottom: 9px;
+}
+
+.techwave_fn_user_billing .payment__methods .new .add:after {
+    width: 2px;
+    height: 40px;
+    position: absolute;
+    content: '';
+    left: 50%;
+    margin-left: -1px;
+    background-color: var(--techwave-border-color);
+    top: 50%;
+    margin-top: -20px;
+}
+
+.techwave_fn_user_billing .payment__methods .new .add:before {
+    width: 40px;
+    height: 2px;
+    position: absolute;
+    content: '';
+    top: 50%;
+    left: 50%;
+    margin-left: -20px;
+    margin-top: -1px;
+    background-color: var(--techwave-border-color);
+}
+
+.techwave_fn_user_billing .payment__methods .new .text {
+    font-weight: 500;
+    font-size: 14px;
+    line-height: 1;
+    text-transform: uppercase;
+    letter-spacing: .5px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	46) Page: AI Chat Bot
+/*------------------------------------------------------------------*/
+
+.techwave_fn_aichatbot_page {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    min-height: calc(100vh - var(--techwave-header-height) - 71px);
+}
+
+.techwave_fn_aichatbot_page .chat__page {
+    width: 100%;
+    padding-top: 38px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    position: relative;
+    z-index: 3;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar,
+.techwave_fn_doc_page .docsidebar,
+.techwave_fn_aichatbot_page .chat__sidebar {
+    width: 300px;
+    min-width: 300px;
+    border-left: 1px solid var(--techwave-border-color);
+    background-color: var(--techwave-header-bg-color);
+    top: var(--techwave-header-height);
+    position: fixed;
+    z-index: 1;
+    right: 0;
+    bottom: 0;
+    transform: translateX(105%);
+    transition: all .2s ease;
+}
+
+.techwave_fn_wrapper.fn__has_sidebar .techwave_fn_image_generation_page .generation__sidebar,
+.techwave_fn_wrapper.fn__has_sidebar .techwave_fn_doc_page .docsidebar,
+.techwave_fn_wrapper.fn__has_sidebar .techwave_fn_aichatbot_page .chat__sidebar {
+    transform: translateX(0);
+}
+
+.techwave_fn_aichatbot_page .chat__sidebar .sidebar_header {
+    padding: 20px;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_aichatbot_page .chat__sidebar .sidebar_content {
+    padding: 20px;
+}
+
+.techwave_fn_aichatbot_page .chat__sidebar .sidebar_content ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.fn__chat_link {
+    text-decoration: none;
+    display: block;
+    height: 40px;
+    line-height: 40px;
+    padding: 0 20px;
+    padding-right: 40px;
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    font-size: 16px;
+    font-weight: 400;
+    letter-spacing: 0;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-body-color);
+    position: relative;
+    cursor: pointer;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    -o-user-select: none;
+    user-select: none;
+}
+
+.fn__chat_link:hover {
+    border-color: var(--techwave-body-color);
+}
+
+.fn__chat_link.active {
+    border-color: var(--techwave-main-color);
+    color: var(--techwave-heading-color);
+}
+
+.fn__chat_link a:hover {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__chat_link .text {
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.fn__chat_link .options {
+    position: absolute;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    display: block;
+}
+
+.fn__chat_link.opened .trigger span:after {
+    background-color: var(--techwave-heading-color);
+}
+
+.fn__chat_link.opened .trigger span {
+    border-left-color: var(--techwave-heading-color);
+    border-right-color: var(--techwave-heading-color);
+}
+
+.fn__chat_link.opened .trigger {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.fn__chat_link .trigger {
+    background-color: transparent;
+    padding: 0;
+    margin: 0;
+    outline: none;
+    border: none;
+    width: 38px;
+    height: 38px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    cursor: pointer;
+    border-radius: 0 4px 4px 0;
+}
+
+.fn__chat_link .trigger:hover {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.fn__chat_link .trigger span {
+    display: block;
+    position: relative;
+    width: 15px;
+    height: 3px;
+    border-left: 3px solid var(--techwave-body-color);
+    border-right: 3px solid var(--techwave-body-color);
+}
+
+.fn__chat_link .trigger span:after {
+    width: 3px;
+    top: 0;
+    bottom: 0;
+    left: 3px;
+    content: '';
+    position: absolute;
+    background-color: var(--techwave-body-color);
+}
+
+.fn__chat_link.opened {
+    z-index: 10;
+}
+
+.fn__chat_link.opened .options__popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.fn__chat_link .options__popup {
+    position: absolute;
+    top: 100%;
+    right: -1px;
+    width: 140px;
+    transition: all .3s ease;
+    padding-top: 6px;
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+}
+
+.fn__chat_link .options__list {
+    list-style-type: none;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+    margin: 0;
+    padding: 15px 20px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+}
+
+.fn__chat_link .options__list button:last-child {
+    margin-bottom: 0;
+}
+
+.fn__chat_link .options__list button:hover {
+    color: var(--techwave-main-color);
+}
+
+.fn__chat_link .options__list button {
+    background-color: transparent;
+    outline: none;
+    border: none;
+    padding: 0;
+    margin: 0;
+    text-align: left;
+    cursor: pointer;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-decoration: none;
+    overflow: hidden;
+    margin-bottom: 3px;
+    transition: all .3s ease;
+}
+
+.fn__chat_link.live_edit .save_options,
+.fn__chat_link.live_edit input {
+    opacity: 1;
+    visibility: visible;
+}
+
+.fn__chat_link.live_edit .options,
+.fn__chat_link.live_edit .text {
+    opacity: 0;
+    visibility: hidden;
+}
+
+.fn__chat_link input {
+    position: absolute;
+    height: 24px;
+    left: 12px;
+    right: 63px;
+    margin: 0;
+    padding: 0 7px;
+    top: 50%;
+    margin-top: -11px;
+    font-size: 16px;
+    font-weight: 400;
+    letter-spacing: 0;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-body-color);
+    background-color: transparent;
+    outline: none;
+    opacity: 0;
+    visibility: hidden;
+    min-width: inherit;
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+}
+
+.fn__chat_link .save_options {
+    position: absolute;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    opacity: 0;
+    visibility: hidden;
+}
+
+.fn__chat_link .save_options button {
+    width: 24px;
+    height: 24px;
+    border: none;
+    cursor: pointer;
+    outline: none;
+    border-radius: 5px;
+    background-color: var(--techwave-some-a-bg-color);
+    margin-right: 5px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    color: var(--techwave-heading-color);
+}
+
+.fn__chat_link .save_options button:hover {
+    background-color: var(--techwave-main-color);
+    color: #fff;
+}
+
+.fn__chat_link .save_options .fn__svg {
+    width: 10px;
+    height: 10px;
+}
+
+.techwave_fn_aichatbot_page .chat__sidebar .group__title {
+    margin: 0;
+    padding: 0 10px;
+    text-transform: uppercase;
+    font-weight: 500;
+    font-size: 11px;
+    letter-spacing: .5px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 12px;
+}
+
+.techwave_fn_aichatbot_page .chat__comment {
+    margin-top: auto;
+    position: sticky;
+    bottom: 0;
+    padding: 20px 0;
+    background-color: var(--techwave-site-bg-color)
+}
+
+.fn__chat_comment {
+    position: relative;
+}
+
+.fn__chat_comment .new__chat {
+    position: absolute;
+    width: 500px;
+    max-width: 100%;
+    bottom: 100%;
+    margin-bottom: 53px;
+    left: 50%;
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    padding: 35px 40px 33px;
+    text-align: center;
+    transform: translateY(-20px) translateX(-50%) translateZ(0);
+    opacity: 0;
+    visibility: hidden;
+    pointer-events: none;
+    transition: all .3s ease;
+}
+
+.fn__chat_comment.neww .new__chat {
+    transform: translateY(0px) translateX(-50%) translateZ(0);
+    opacity: 1;
+    visibility: visible;
+}
+
+.fn__chat_comment .new__chat:after {
+    position: absolute;
+    left: 50%;
+    margin-left: -19px;
+    top: 100%;
+    margin-top: -1px;
+    width: 0;
+    height: 0;
+    border-style: solid;
+    border-width: 14px 19px 0 19px;
+    border-color: var(--techwave-some-r-bg-color) transparent transparent transparent;
+    content: '';
+    filter: drop-shadow(0px 1px var(--techwave-border-color));
+}
+
+.fn__chat_comment .new__chat * {
+    margin: 0;
+    padding: 0;
+    font-size: 16px;
+    line-height: 1.5;
+    letter-spacing: .5px;
+    font-weight: 500;
+    text-transform: uppercase;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__hidden_textarea {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    max-height: inherit;
+    opacity: 0;
+    pointer-events: none;
+    overflow-y: scroll;
+}
+
+.fn__chat_comment textarea {
+    border: 2px solid var(--techwave-border-color);
+    background-color: transparent;
+    border-radius: 5px;
+    outline: none;
+    display: block;
+    width: 100%;
+    padding: 18px 20px 16px;
+    padding-right: 72px;
+    font-size: 16px;
+    font-weight: 400;
+    line-height: 22px;
+    max-height: 170px;
+    font-family: var(--techwave-heading-font-family);
+    resize: none;
+    overflow-y: hidden;
+    color: var(--techwave-heading-color);
+}
+
+#fn__chat_textarea::-webkit-scrollbar {
+    width: 0;
+}
+
+.fn__chat_comment textarea:focus {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__chat_comment button {
+    position: absolute;
+    width: 60px;
+    height: 44px;
+    bottom: 8px;
+    right: 8px;
+    padding: 0;
+    margin: 0;
+    border-radius: 5px;
+    outline: none;
+    cursor: pointer;
+    border: none;
+    background-color: var(--techwave-some-a-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    color: var(--techwave-heading-color);
+    transition: all .3s ease;
+}
+
+.fn__chat_comment button.disabled {
+    cursor: not-allowed;
+    opacity: .5;
+}
+
+.fn__chat_comment button:hover {
+    opacity: .8;
+}
+
+.fn__chat_comment .fn__svg {
+    width: 21px;
+    height: 21px;
+}
+
+.fn__new_chat_link {
+    text-decoration: none;
+    display: block;
+    width: 100%;
+    height: 40px;
+    line-height: 40px;
+    padding: 0 10px 0 44px;
+    position: relative;
+    font-weight: 500;
+    text-transform: uppercase;
+    font-size: 14px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+}
+
+.fn__new_chat_link:hover {
+    opacity: .8;
+}
+
+.fn__new_chat_link .text {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    position: relative;
+    top: 1px;
+}
+
+.fn__new_chat_link .icon {
+    position: absolute;
+    width: 24px;
+    height: 24px;
+    display: block;
+    border-radius: 100%;
+    background-color: #454449;
+    left: 10px;
+    top: 50%;
+    margin-top: -12px;
+}
+
+.fn__new_chat_link .icon:before {
+    content: '';
+    position: absolute;
+    width: 2px;
+    height: 8px;
+    background-color: #b3aac7;
+    top: 50%;
+    left: 50%;
+    margin: -4px 0 0 -1px;
+}
+
+.fn__new_chat_link .icon:after {
+    content: '';
+    position: absolute;
+    width: 8px;
+    height: 2px;
+    background-color: #b3aac7;
+    top: 50%;
+    left: 50%;
+    margin: -1px 0 0 -4px;
+}
+
+.techwave_fn_aichatbot_page .fn__title_holder {
+    margin-bottom: 23px;
+}
+
+.techwave_fn_aichatbot_page .chat__item {
+    display: none;
+}
+
+.techwave_fn_aichatbot_page .chat__item.active {
+    display: block;
+}
+
+.fn__chatbot .chat__box {
+    position: relative;
+    margin-bottom: 20px;
+}
+
+.fn__chatbot .chat__box:last-child {
+    margin-bottom: 0;
+}
+
+.fn__chatbot .author {
+    position: absolute;
+    left: 30px;
+    top: -10px;
+    display: block;
+    height: 20px;
+    padding: 0 15px;
+    background-color: var(--techwave-main-color);
+    color: #fff;
+    font-family: var(--techwave-heading-font-family);
+    font-weight: 500;
+    font-size: 11px;
+    letter-spacing: .5px;
+    text-transform: uppercase;
+    line-height: 20px;
+    border-radius: 10px;
+}
+
+.fn__chatbot .author * {
+    position: relative;
+    top: 1px;
+}
+
+.fn__chatbot .chat {
+    padding: 30px;
+    border-radius: 5px;
+    font-size: 16px;
+    font-weight: 400;
+    line-height: 1.375;
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__chatbot .chat a {
+    text-decoration: underline;
+    color: var(--techwave-main-color);
+}
+
+.fn__chatbot .chat a:hover {
+    text-decoration: none;
+}
+
+.fn__chatbot .your__chat .chat {
+    background-color: var(--techwave-some-a-bg-color);
+    color: var(--techwave-heading-color);
+}
+
+.fn__chatbot .bot__chat .author {
+    background-color: var(--techwave-some-a-bg-color);
+    color: var(--techwave-body-color);
+}
+
+.fn__chatbot .bot__chat .chat {
+    background-color: var(--techwave-some-r-bg-color);
+    border: 1px solid var(--techwave-border-color);
+}
+
+.fn__chatbot .chat>*:last-child:not(ul) {
+    margin-bottom: 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	47) Page: Documentation
+/*------------------------------------------------------------------*/
+
+.techwave_fn_doc_page .doccontent {
+    padding: 40px 0;
+}
+
+.techwave_fn_doc_page .doccontent * {
+    margin-bottom: 20px;
+}
+
+.rounded {
+    border-radius: 5px;
+}
+
+.techwave_fn_doc_page .docsidebar {
+    padding: 20px;
+}
+
+.techwave_fn_doc_page .docsidebar .trigger {
+    right: 5px;
+    top: 50%;
+    margin-top: -6px;
+    position: absolute;
+    display: block;
+    color: var(--techwave-heading-color);
+    transform: rotate(90deg);
+    transition: all .2s ease;
+}
+
+.techwave_fn_doc_page .docsidebar ul ul {
+    margin: 0;
+    list-style-type: none;
+    padding: 0;
+    margin-left: 26px;
+    margin-top: 4px;
+    overflow: hidden;
+}
+
+.techwave_fn_doc_page .docsidebar .trigger .fn__svg {
+    width: 12px;
+    height: 12px;
+    display: block;
+}
+
+.techwave_fn_doc_page .docsidebar li {
+    position: relative;
+    margin-bottom: 4px;
+}
+
+.techwave_fn_doc_page .docsidebar ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+.techwave_fn_doc_page .docsidebar ul ul a {
+    padding-left: 17px;
+}
+
+.techwave_fn_doc_page .docsidebar ul ul a:after {
+    width: 5px;
+    height: 2px;
+    background-color: var(--techwave-heading-color);
+    position: absolute;
+    left: 6px;
+    top: 50%;
+    margin-top: -1px;
+    content: '';
+}
+
+.techwave_fn_doc_page .docsidebar li:hover>a,
+.techwave_fn_doc_page .docsidebar .current>a {
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.techwave_fn_doc_page .docsidebar a {
+    font-weight: 400;
+    border-radius: 5px;
+    font-family: var(--techwave-heading-font-family);
+    color: var(--techwave-heading-color);
+    text-decoration: none;
+    min-height: 36px;
+    padding: 5px 20px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    position: relative;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	48) Page: Image Generation
+/*------------------------------------------------------------------*/
+
+.techwave_fn_image_generation_page .generation__page {
+    position: relative;
+    z-index: 2;
+}
+
+.techwave_fn_image_generation_page .generation_more {
+    padding: 60px 40px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.techwave_fn_image_generation_page .generation_more .techwave_fn_button {
+    padding: 0 57px;
+}
+
+.techwave_fn_image_generation_page .generation_header {
+    padding: 40px;
+    border-bottom: 1px solid var(--techwave-border-color);
+}
+
+.techwave_fn_image_generation_page .generation_header .title {
+    margin: 0;
+    padding: 0;
+    font-size: 22px;
+    font-weight: 600;
+}
+
+.techwave_fn_image_generation_page .generation_header .header_top {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    column-gap: 20px;
+    -ms-align-items: center;
+    align-items: center;
+    margin-bottom: 25px;
+}
+
+.techwave_fn_image_generation_page .generation_header .setup {
+    -ms-align-items: center;
+    align-items: center;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 15px;
+}
+
+.techwave_fn_image_generation_page .generation_header .info {
+    margin: 0;
+    padding: 0;
+    font-size: 12px;
+    font-weight: 400;
+    letter-spacing: 0;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_image_generation_page .sidebar__trigger {
+    min-width: 50px;
+    width: 50px;
+    height: 50px;
+    text-decoration: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 100%;
+    color: var(--techwave-heading-color);
+    position: relative;
+}
+
+.techwave_fn_image_generation_page .sidebar__trigger .fn__svg {
+    width: 24px;
+    height: 24px;
+    transition: all .3s ease;
+}
+
+.techwave_fn_image_generation_page .header_bottom textarea {
+    border: 2px solid var(--techwave-border-color);
+    background-color: transparent;
+    border-radius: 5px;
+    outline: none;
+    display: block;
+    width: 100%;
+    padding: 18px 20px 16px;
+    font-size: 16px;
+    font-weight: 400;
+    line-height: 22px;
+    max-height: 170px;
+    font-family: var(--techwave-heading-font-family);
+    resize: none;
+    overflow-y: hidden;
+    color: var(--techwave-heading-color);
+}
+
+.techwave_fn_image_generation_page .header_bottom textarea:focus {
+    border-color: var(--techwave-main-color);
+}
+
+.techwave_fn_image_generation_page .include_area {
+    margin-bottom: 10px;
+    position: relative;
+}
+
+.techwave_fn_image_generation_page .exclude_area {
+    position: relative;
+    overflow: hidden;
+}
+
+.techwave_fn_image_generation_page .generate_section {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: flex-end;
+}
+
+.techwave_fn_image_generation_page .generate_section #generate_it {
+    margin: 10px 0 10px 20px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .sidebar_details {
+    padding: 20px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .sidebar_details .title {
+    margin: 0;
+    padding: 0;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .sidebar_details .title .fn__tooltip {
+    margin-left: 8px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .sidebar_details .title .fn__svg {
+    display: block;
+    width: 14px;
+    height: 14px;
+    color: var(--techwave-body-color);
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .sidebar_model {
+    padding: 30px 20px;
+    border-bottom: 1px solid var(--techwave-border-color);
+    position: relative;
+    z-index: 5;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .contrast_switcher,
+.techwave_fn_image_generation_page .generation__sidebar .prompt_magic_switcher {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .number_of_images {
+    margin-bottom: 29px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .number_of_images .title {
+    margin-bottom: 9px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .img_sizes {
+    margin-bottom: 28px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .img_sizes .title {
+    margin-bottom: 10px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .guidance_scale .title {
+    margin-bottom: 4px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .guidance_scale {
+    margin-bottom: 23px;
+}
+
+.techwave_fn_image_generation_page .generation__sidebar .prompt_magic_switcher {
+    margin-bottom: 30px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	49) Icon Options (icon lightbox)
+/*------------------------------------------------------------------*/
+
+.fn__icon_options {
+    position: relative;
+}
+
+.fn__icon_options.align_right .fn__icon_popup {
+    left: auto;
+    right: 0;
+}
+
+.fn__icon_options .fn__icon_popup {
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    position: absolute;
+    left: 0;
+    top: 100%;
+    width: 240px;
+    margin: 0;
+    padding: 0;
+    padding-top: 5px;
+    transition: all .3s ease;
+    pointer-events: none;
+}
+
+.fn__icon_options.medium_size .fn__icon_button {
+    width: 40px;
+    height: 40px;
+}
+
+.fn__icon_options.medium_size .fn__icon_button .fn__svg {
+    width: 16px;
+    height: 16px;
+}
+
+.fn__icon_options:hover .fn__icon_popup {
+    opacity: 1;
+    visibility: visible;
+    transform: translateY(0);
+    pointer-events: all;
+}
+
+.fn__icon_options .fn__icon_popup ul {
+    list-style-type: none;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+    margin: 0;
+    padding: 15px 20px;
+}
+
+.fn__icon_options .fn__icon_popup li:last-child {
+    margin-bottom: 0;
+}
+
+.fn__icon_options .fn__icon_popup li {
+    margin: 0;
+    margin-bottom: 3px;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__icon_options .fn__icon_popup a {
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-decoration: none;
+    overflow: hidden;
+}
+
+.fn__icon_options .fn__icon_popup a:hover {
+    color: var(--techwave-main-color);
+    opacity: .9;
+}
+
+.fn__icon_options .fn__icon_popup .high_priorety a {
+    color: #f1416c;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	50) Generation Item (used in image generation page)
+/*------------------------------------------------------------------*/
+
+.fn__generation_item {
+    padding: 31px 40px 10px;
+    border-bottom: 1px solid var(--techwave-border-color);
+    position: relative;
+}
+
+.fn__generation_item:hover {
+    z-index: 10;
+}
+
+.fn__generation_item .item_header {
+    padding: 0 0 20px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    column-gap: 20px;
+    -ms-align-items: center;
+    align-items: center;
+    width: 100%;
+    position: relative;
+    z-index: 1;
+}
+
+.fn__generation_item .item_header .item_options {
+    width: 100%;
+    width: auto;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 5px;
+}
+
+.fn__generation_item .item_header .title_holder {
+    width: 100%;
+}
+
+.fn__generation_item .item_header .prompt_title {
+    margin: 0;
+    padding: 0;
+    font-size: 16px;
+    line-height: 22px;
+    font-weight: 400;
+    letter-spacing: 0;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    align-self: flex-end;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 1;
+    --chakra-line-clamp: 1;
+}
+
+.fn__generation_item .item_header .negative_prompt_title {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    line-height: 22px;
+    font-weight: 400;
+    letter-spacing: 0;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+    align-self: flex-end;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 1;
+    --chakra-line-clamp: 1;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	51) Generation List (used in image generation page)
+/*------------------------------------------------------------------*/
+
+.fn__generation_list {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin-left: -20px;
+}
+
+.fn__generation_list .fn__gl_item {
+    margin: 0;
+    padding: 0;
+    padding-left: 20px;
+    width: 25%;
+    margin-bottom: 20px;
+}
+
+.fn__generation_list .fn__gl__item {
+    width: 100%;
+    position: relative;
+}
+
+.fn__generation_list .fn__gl__item:before {
+    content: "";
+    height: 0px;
+    display: block;
+    padding-bottom: 100%;
+}
+
+.fn__generation_list .abs_item {
+    position: absolute;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    right: 0;
+}
+
+.fn__generation_list .abs_item img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    border-radius: 5px;
+}
+
+.fn__generation_list .fn__gl__item:hover .all_options {
+    transform: translateY(0);
+    opacity: 1;
+    visibility: visible;
+    pointer-events: all;
+}
+
+.fn__generation_list .all_options {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    position: absolute;
+    bottom: 5px;
+    left: 10px;
+    right: 10px;
+    flex-wrap: wrap;
+    transform: translateY(20px);
+    opacity: 0;
+    visibility: hidden;
+    pointer-events: none;
+    transition: all .3s ease;
+}
+
+.fn__generation_list .all_options .fn__icon_options {
+    margin: 0 5px 5px 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	52) Input Toggle (custom)
+/*------------------------------------------------------------------*/
+
+.fn__toggle {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    column-gap: 7px;
+    cursor: pointer;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    -o-user-select: none;
+    user-select: none;
+    font-size: 16px;
+    font-weight: 400;
+    letter-spacing: 0;
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__toggle .t_in {
+    position: relative;
+    width: 34px;
+    height: 20px;
+}
+
+.fn__toggle .t_content:before {
+    right: 0;
+    bottom: 0;
+    top: 0;
+    left: 0;
+    position: absolute;
+    color: var(--techwave-main-color1);
+    content: '';
+    opacity: .1;
+    border-radius: 20px;
+    box-shadow: 0px 5px 15px;
+}
+
+.fn__toggle .t_content:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    border-radius: 20px;
+    border: 2px solid transparent;
+    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
+    -webkit-mask-composite: destination-out;
+    -webkit-mask-composite: source-out;
+    mask-composite: exclude;
+    background-size: 300% 300%;
+    -webkit-animation: animatedgradient 4s ease alternate infinite;
+    animation: animatedgradient 4s ease alternate infinite;
+}
+
+.fn__toggle input {
+    opacity: 0;
+    width: 0;
+    height: 0;
+}
+
+.fn__toggle .t_slider {
+    position: absolute;
+    cursor: pointer;
+    width: 12px;
+    height: 12px;
+    background-color: var(--techwave-main-color);
+    left: 4px;
+    top: 50%;
+    margin-top: -6px;
+    border-radius: 100%;
+    -webkit-transition: .4s;
+    transition: .4s;
+}
+
+.fn__toggle .t_content:after {
+    background: #454449;
+}
+
+.fn__toggle .t_slider {
+    background-color: #454449;
+}
+
+.fn__toggle input:checked+.t_slider {
+    -webkit-transform: translateX(14px);
+    -ms-transform: translateX(14px);
+    transform: translateX(14px);
+    background-color: var(--techwave-main-color);
+}
+
+.fn__toggle input:checked~.t_content:after {
+    background: -moz-linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    background: -webkit-linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    background: linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+}
+
+.fn__toggle .t_in {
+    border-radius: 34px;
+}
+
+.fn__toggle .t_in:before {
+    border-radius: 50%;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	53) Select Model (used in image generation page)
+/*------------------------------------------------------------------*/
+
+.fn__select_model {
+    position: relative;
+}
+
+.fn__select_model .all_models {
+    position: absolute;
+    width: 100%;
+    left: 0;
+    top: 100%;
+    right: 0;
+    padding-top: 5px;
+    opacity: 0;
+    visibility: hidden;
+    transform: translateY(20px);
+    transition: all .3s ease;
+    pointer-events: none;
+}
+
+.fn__select_model.opened .all_models {
+    opacity: 1;
+    visibility: visible;
+    pointer-events: all;
+    transform: translateY(0);
+}
+
+.fn__select_model .all_models ul {
+    list-style-type: none;
+    background-color: var(--techwave-some-a-bg-color);
+    border-radius: 5px;
+    margin: 0;
+    padding: 15px 20px;
+}
+
+.fn__select_model .all_models li:last-child {
+    margin-bottom: 0;
+}
+
+.fn__select_model .all_models li {
+    margin: 0;
+    margin-bottom: 3px;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__select_model .all_models a.selected {
+    color: var(--techwave-body-color);
+}
+
+.fn__select_model .all_models a {
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    text-decoration: none;
+    overflow: hidden;
+}
+
+.fn__select_model .all_models a:hover {
+    color: var(--techwave-main-color);
+    opacity: .9;
+}
+
+.fn__select_model .model_open {
+    text-decoration: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    padding-right: 50px;
+    position: relative;
+    cursor: pointer;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    -o-user-select: none;
+    user-select: none;
+}
+
+.fn__select_model .fn__icon_button {
+    position: absolute;
+    top: 50%;
+    margin-top: -15px;
+    right: 0;
+}
+
+.fn__select_model .user_img {
+    margin-right: 15px;
+    width: 40px;
+    height: 40px;
+    border-radius: 5px;
+    object-fit: cover;
+}
+
+.fn__select_model .subtitle {
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    text-transform: uppercase;
+    letter-spacing: .5px;
+    font-size: 11px;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__select_model .title {
+    margin: 0;
+    padding: 0;
+    font-weight: 400;
+    letter-spacing: 0px;
+    font-size: 16px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	54) Input quantity (custom)
+/*------------------------------------------------------------------*/
+
+.fn__quantity {
+    width: 120px;
+    height: 40px;
+    position: relative;
+}
+
+.fn__quantity a {
+    display: block;
+    position: absolute;
+    width: 24px;
+    height: 24px;
+    text-decoration: none;
+    border-radius: 100%;
+    background-color: var(--techwave-border-color);
+    top: 50%;
+    margin-top: -12px;
+}
+
+.fn__quantity a:after {
+    content: '';
+    position: absolute;
+    background-color: var(--techwave-heading-color);
+    top: 50%;
+    left: 50%;
+    width: 8px;
+    height: 2px;
+    margin: -1px 0 0 -4px;
+}
+
+.fn__quantity a.increase:before {
+    content: '';
+    position: absolute;
+    background-color: var(--techwave-heading-color);
+    top: 50%;
+    left: 50%;
+    width: 2px;
+    height: 8px;
+    margin: -4px 0 0 -1px;
+}
+
+.fn__quantity .decrease {
+    left: 8px;
+}
+
+.fn__quantity .increase {
+    right: 8px;
+}
+
+.fn__quantity input {
+    width: 100%;
+    max-width: 100%;
+    min-width: 100%;
+    border-radius: 20px;
+    height: 40px;
+    display: block;
+    text-align: center;
+    font-size: 16px;
+    font-weight: 400;
+    padding: 0 34px;
+    border: 2px solid var(--techwave-border-color);
+    color: var(--techwave-heading-color);
+}
+
+.fn__quantity input::-webkit-outer-spin-button,
+.fn__quantity input::-webkit-inner-spin-button {
+    -webkit-appearance: none;
+    margin: 0;
+}
+
+.fn__quantity input[type=number] {
+    -moz-appearance: textfield;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	55) Input Range (custom)
+/*------------------------------------------------------------------*/
+
+.fn__range {
+    position: relative;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__range .range_in {
+    position: relative;
+    width: 100%;
+}
+
+.fn__range .slider {
+    width: 0;
+    display: block;
+    position: absolute;
+    left: 0;
+    border-radius: 5px;
+    height: 4px;
+    top: 50%;
+    margin-top: -2px;
+    pointer-events: none;
+}
+
+.fn__range .slider:after {
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    position: absolute;
+    content: '';
+    border-radius: 5px 0 0 5px;
+    background-color: var(--techwave-main-color);
+}
+
+.fn__range .slider:before {
+    width: 14px;
+    height: 14px;
+    background: var(--techwave-heading-color);
+    cursor: pointer;
+    border-radius: 100%;
+    position: absolute;
+    display: block;
+    right: 0;
+    top: 50%;
+    margin-top: -7px;
+    content: '';
+    z-index: 2;
+}
+
+.fn__range .value {
+    flex: auto;
+    width: 40px;
+    text-align: right;
+    padding-left: 10px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    font-size: 16px;
+}
+
+.fn__range input {
+    -webkit-appearance: none;
+    display: block;
+    width: 100%;
+    margin: 0;
+    height: 4px;
+    border-radius: 5px;
+    outline: none;
+    border: none;
+    background-color: var(--techwave-some-a-bg-color);
+}
+
+.fn__range input::-webkit-slider-thumb {
+    -webkit-appearance: none;
+    appearance: none;
+    width: 14px;
+    height: 14px;
+    background: var(--techwave-heading-color);
+    cursor: pointer;
+    border-radius: 100%;
+    opacity: 0;
+}
+
+.fn__range input::-moz-range-thumb {
+    width: 14px;
+    height: 14px;
+    background: var(--techwave-heading-color);
+    cursor: pointer;
+    border-radius: 100%;
+    z-index: 3;
+    opacity: 0;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	56) Page: Privacy Policy
+/*------------------------------------------------------------------*/
+
+.techwave_fn_privacy_page .privacypage {
+    padding: 40px 0;
+}
+
+.techwave_fn_privacy_page .privacypage hr {
+    margin: 30px 0;
+}
+
+.techwave_fn_privacy_page .privacypage h4 {
+    font-weight: 500;
+    font-size: 22px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	57) Contact Form
+/*------------------------------------------------------------------*/
+
+.fn_contact_form .input_list ul {
+    margin: 0;
+    padding: 0;
+    margin-left: -10px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    list-style-type: none;
+}
+
+.fn_contact_form .input_list input[type="text"],
+.fn_contact_form .input_list input[type="email"] {
+    display: block;
+    width: 100%;
+    border-radius: 5px;
+    height: 60px;
+}
+
+.fn_contact_form .input_list input,
+.fn_contact_form .input_list textarea {
+    display: block;
+}
+
+.fn_contact_form .input_list li {
+    margin: 0;
+    padding: 0;
+    width: 100%;
+    padding-left: 10px;
+    margin-bottom: 10px;
+}
+
+.fn_contact_form .input_list li:last-child {
+    margin-top: 10px;
+}
+
+.fn_contact_form .empty_notice,
+.fn_contact_form .returnmessage {
+    padding: 20px;
+    width: 100%;
+    display: none;
+    color: var(--techwave-heading-color);
+    margin-top: 20px;
+    position: relative;
+    pointer-events: none;
+}
+
+.fn_contact_form .empty_notice:after,
+.fn_contact_form .returnmessage:after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    border-radius: 20px;
+    border: 2px solid transparent;
+    background: -moz-linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    background: -webkit-linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    background: linear-gradient(270deg, var(--techwave-main-color1), var(--techwave-main-color2), var(--techwave-main-color1), var(--techwave-main-color2)) border-box;
+    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
+    -webkit-mask-composite: destination-out;
+    -webkit-mask-composite: source-out;
+    mask-composite: exclude;
+    background-size: 300% 300%;
+    -webkit-animation: animatedgradient 4s ease alternate infinite;
+    animation: animatedgradient 4s ease alternate infinite;
+}
+
+.fn_contact_form .empty_notice:before,
+.fn_contact_form .returnmessage:before {
+    right: 0;
+    bottom: 0;
+    top: 0;
+    left: 0;
+    position: absolute;
+    color: var(--techwave-main-color1);
+    content: '';
+    opacity: .1;
+    border-radius: 20px;
+    box-shadow: 0px 5px 15px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	58) Page: Contact
+/*------------------------------------------------------------------*/
+
+.techwave_fn_contact_page .contactpage {
+    padding: 40px 0;
+}
+
+.techwave_fn_contact_page .contactpage {
+    font-size: 18px;
+    line-height: 24px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	59) Page: Models
+/*------------------------------------------------------------------*/
+
+.techwave_fn_models_page {
+    padding: 36px 0 40px 0;
+}
+
+.techwave_fn_models_page .fn__title_holder {
+    margin-bottom: 28px;
+}
+
+.techwave_fn_models_page .models__filter {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: space-between;
+    -ms-align-items: center;
+    align-items: center;
+    column-gap: 50px;
+    margin-bottom: 30px;
+    position: relative;
+    z-index: 10;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_models_page .models__filter .filter__left {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+.techwave_fn_models_page .models__filter .filter__right {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    column-gap: 5px;
+    margin: 5px 0;
+}
+
+.techwave_fn_models_page .filter__search {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    flex-wrap: wrap;
+}
+
+.techwave_fn_models_page .filter__search input {
+    margin: 5px 10px 5px 0;
+}
+
+.techwave_fn_models_page .filter__search a {
+    margin: 5px 0;
+}
+
+.techwave_fn_models_page .models__more {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    justify-content: center;
+    margin-top: 40px;
+    margin-bottom: 20px;
+}
+
+.techwave_fn_models .models__results {
+    position: relative;
+}
+
+.techwave_fn_models .loading .tab__item {
+    opacity: 0;
+    visibility: hidden;
+}
+
+.techwave_fn_models .loading .fn__preloader {
+    opacity: 1;
+    visibility: visible;
+}
+
+.tab__item {
+    display: none;
+}
+
+.tab__item.active {
+    display: block;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	60) Model Items (used in model page)
+/*------------------------------------------------------------------*/
+
+.fn__model_items {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin-left: -20px;
+}
+
+.fn__model_item {
+    margin: 0;
+    padding: 0;
+    width: 20%;
+    padding-left: 20px;
+    margin-bottom: 20px;
+}
+
+.fn__model_item .item {
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    position: relative;
+    background-color: var(--techwave-some-r-bg-color);
+    min-height: 100%;
+}
+
+.fn__model_item.new .item a {
+    z-index: 3;
+}
+
+.fn__model_item.new .item {
+    padding: 30px 15px 27px;
+    text-align: center;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.fn__model_item.new .item .add {
+    height: 80px;
+    width: 80px;
+    position: relative;
+    margin-bottom: 29px;
+}
+
+.fn__model_item.new .item .add:after {
+    width: 2px;
+    height: 80px;
+    position: absolute;
+    content: '';
+    left: 50%;
+    margin-left: -1px;
+    background-color: var(--techwave-border-color);
+    top: 50%;
+    margin-top: -40px;
+}
+
+.fn__model_item.new .item:hover {
+    border-color: var(--techwave-main-color);
+}
+
+.fn__model_item.new .item .add:before {
+    width: 80px;
+    height: 2px;
+    position: absolute;
+    content: '';
+    top: 50%;
+    left: 50%;
+    margin-left: -40px;
+    margin-top: -1px;
+    background-color: var(--techwave-border-color);
+}
+
+.fn__model_item.new .item .text {
+    font-weight: 500;
+    font-size: 14px;
+    line-height: 1;
+    text-transform: uppercase;
+    letter-spacing: .5px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.fn__model_item .item:hover .fn__bookmark {
+    opacity: 1;
+    visibility: visible;
+    pointer-events: all;
+}
+
+.fn__model_item .img:before {
+    height: 0;
+    content: '';
+    padding-bottom: 100%;
+    display: block;
+}
+
+.fn__model_item .img {
+    position: relative;
+    margin: -1px;
+    margin-bottom: 0;
+}
+
+.fn__model_item .img img {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    top: 0;
+    left: 0;
+    border-radius: 5px 5px 0 0;
+}
+
+.fn__model_item .item__info {
+    padding: 18px 15px 14px;
+}
+
+.fn__model_item .item__info .title {
+    margin: 0;
+    padding: 0;
+    font-size: 16px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+    margin-bottom: 5px;
+}
+
+.fn__model_item .item__info .desc {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    font-weight: 400;
+    color: var(--techwave-body-color);
+    font-family: var(--techwave-body-font-family);
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-line-clamp: 3;
+    /* number of lines to show */
+    line-clamp: 3;
+    -webkit-box-orient: vertical;
+}
+
+.fn__model_item .item__author {
+    height: 41px;
+    border-top: 1px solid var(--techwave-border-color);
+    padding: 10px 15px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.fn__model_item .item__author img {
+    margin-right: 7px;
+    width: 20px;
+    height: 20px;
+    display: block;
+    border-radius: 100%;
+    object-fit: cover;
+}
+
+.fn__model_item .author_name {
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+    font-weight: 400;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	61) Bookmark button
+/*------------------------------------------------------------------*/
+
+.fn__bookmark {
+    background-color: var(--techwave-some-r-bg-color);
+    width: 40px;
+    height: 40px;
+    border-radius: 100%;
+    text-decoration: none;
+    position: absolute;
+    top: 10px;
+    left: 10px;
+    z-index: 3;
+    color: var(--techwave-heading-color);
+    opacity: 0;
+    visibility: hidden;
+    pointer-events: none;
+}
+
+.fn__bookmark.has__bookmark .hasbook {
+    opacity: 1;
+}
+
+.fn__bookmark.has__bookmark .hasntbook {
+    opacity: 0;
+}
+
+.fn__bookmark .fn__svg {
+    width: 16px;
+    height: 16px;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    margin: -8px 0 0 -8px;
+}
+
+.fn__bookmark .hasbook {
+    opacity: 0;
+    color: var(--techwave-main-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	62) Font Trigger (used in AI chat bot page)
+/*------------------------------------------------------------------*/
+
+.font__trigger {
+    width: 11px;
+    height: 60px;
+    position: fixed;
+    right: 300px;
+    margin-right: 14px;
+    top: 50%;
+    margin-top: -30px;
+    z-index: 15;
+    cursor: pointer;
+}
+
+.font__trigger:after {
+    content: '';
+    position: absolute;
+    left: -10px;
+    right: -10px;
+    bottom: -10px;
+    top: -10px;
+}
+
+.font__trigger:hover span:after,
+.font__trigger:hover span:before,
+.font__trigger:hover span {
+    background-color: var(--techwave-main-color);
+}
+
+.font__trigger span {
+    width: 1px;
+    display: block;
+    top: 0;
+    bottom: 0;
+    left: 5px;
+    background-color: var(--techwave-border-color);
+    position: absolute;
+    transition: all .2s ease;
+}
+
+.font__trigger span:after,
+.font__trigger span:before {
+    width: 1px;
+    top: 50%;
+    margin-top: -20px;
+    height: 40px;
+    background-color: var(--techwave-border-color);
+    content: '';
+    position: absolute;
+    transition: all .2s ease;
+}
+
+.font__trigger span:before {
+    right: 100%;
+    margin-right: 5px;
+}
+
+.font__trigger span:after {
+    left: 100%;
+    margin-left: 5px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	63) Font Trigger Lightbox
+/*------------------------------------------------------------------*/
+
+.techwave_fn_font.opened {
+    pointer-events: all;
+    opacity: 1;
+    visibility: visible;
+}
+
+.techwave_fn_font {
+    pointer-events: none;
+    opacity: 0;
+    visibility: hidden;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 110;
+    background-color: var(--techwave-site-bg-color);
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    overflow-y: auto;
+    padding: 40px;
+}
+
+.techwave_fn_font .font__closer_link {
+    position: fixed;
+    right: 35px;
+    top: 35px;
+    z-index: 2;
+}
+
+.techwave_fn_font .font__closer {
+    z-index: 1;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.techwave_fn_font .font__dialog {
+    width: 500px;
+    max-width: 100%;
+    border-radius: 5px;
+    background-color: var(--techwave-some-r-bg-color);
+    padding: 35px 50px 40px;
+    position: relative;
+    border: 1px solid var(--techwave-border-color);
+    z-index: 3;
+}
+
+.techwave_fn_font .title {
+    text-align: center;
+    margin: 0;
+    padding: 0;
+    font-weight: 500;
+    font-size: 24px;
+    letter-spacing: 0;
+    margin-bottom: 4px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_font select {
+    margin-bottom: 30px;
+}
+
+.techwave_fn_font label {
+    display: block;
+    font-size: 16px;
+    font-weight: 400;
+    line-height: 40px;
+    color: var(--techwave-heading-color);
+    font-family: var(--techwave-heading-font-family);
+}
+
+.techwave_fn_font .techwave_fn_button {
+    width: 100%;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	64) Tooltipster custom theme named: tooltipster-techwave (it can be changed in init.js)
+/*------------------------------------------------------------------*/
+
+.tooltipster-sidetip.tooltipster-techwave .tooltipster-box {
+    border: 1px solid var(--techwave-border-color);
+    background: var(--techwave-some-r-bg-color);
+}
+
+.tooltipster-sidetip.tooltipster-techwave .tooltipster-content {
+    color: var(--techwave-heading-color);
+    font-size: 14px;
+}
+
+.tooltipster-sidetip.tooltipster-techwave .tooltipster-arrow-uncropped {
+    display: none;
+}
+
+.tooltipster-sidetip.tooltipster-techwave.tooltipster-bottom .tooltipster-arrow:after {
+    content: '';
+    position: absolute;
+    top: 5px;
+    left: 3px;
+    width: 14px;
+    height: 14px;
+    transform: rotate(45deg);
+    border: 1px solid var(--techwave-border-color);
+    background-color: var(--techwave-some-r-bg-color);
+}
+
+.tooltipster-sidetip.tooltipster-techwave.tooltipster-bottom .tooltipster-arrow {
+    background-color: transparent;
+    top: -1px;
+}
+
+.tooltipster-sidetip.tooltipster-techwave.tooltipster-right .tooltipster-arrow {
+    left: -1px;
+    background-color: transparent;
+}
+
+.tooltipster-sidetip.tooltipster-techwave.tooltipster-right .tooltipster-arrow:after {
+    content: '';
+    position: absolute;
+    top: 3px;
+    left: 5px;
+    width: 14px;
+    height: 14px;
+    transform: rotate(45deg);
+    border: 1px solid var(--techwave-border-color);
+    background-color: var(--techwave-some-r-bg-color);
+}
+
+.tooltipster-sidetip.tooltipster-techwave.tooltipster-left .tooltipster-arrow {
+    right: -1px;
+    background-color: transparent;
+}
+
+.tooltipster-sidetip.tooltipster-techwave.tooltipster-left .tooltipster-arrow:after {
+    content: '';
+    position: absolute;
+    top: 3px;
+    right: 5px;
+    width: 14px;
+    height: 14px;
+    transform: rotate(45deg);
+    border: 1px solid var(--techwave-border-color);
+    background-color: var(--techwave-some-r-bg-color);
+}
+
+/*------------------------------------------------------------------*/
+
+/*	65) Page: Intro
+/*------------------------------------------------------------------*/
+
+.techwave_fn_intro {
+    padding: 150px 20px 100px;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -webkit-flex-direction: column;
+    -moz-flex-direction: column;
+    -ms-flex-direction: column;
+    -o-flex-direction: column;
+    flex-direction: column;
+    -ms-align-items: center;
+    align-items: center;
+}
+
+.techwave_fn_intro .first {
+    text-align: center;
+    margin-bottom: 54px;
+}
+
+.techwave_fn_intro .txt {
+    opacity: 0;
+    position: absolute;
+    pointer-events: none;
+}
+
+.techwave_fn_intro .mac {
+    margin: 0 -20px;
+    margin-bottom: 86px;
+}
+
+.techwave_fn_intro .mac img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.techwave_fn_intro .livechat {
+    padding: 24px;
+    position: relative;
+    border: 2px dashed #252525;
+    border-radius: 30px;
+    width: 825px;
+    max-width: 100%;
+    margin: 0 auto;
+    margin-top: 41px;
+    margin-bottom: 133px;
+}
+
+.techwave_fn_intro .livechat .chat__comment {
+    margin-top: 20px;
+}
+
+.techwave_fn_intro .livechat .chat_decor {
+    position: absolute;
+    right: 47px;
+    z-index: 5;
+    top: 100%;
+    margin-top: -25px;
+}
+
+.techwave_fn_intro .or {
+    padding-top: 87px;
+    padding-bottom: 55px;
+    text-align: center;
+}
+
+.techwave_fn_intro .or h1 {
+    font-size: 150px;
+    font-size: calc(50px + 5.211vw);
+    font-weight: 700;
+    text-transform: uppercase;
+    font-family: sans-serif;
+}
+
+.techwave_fn_intro .or h1 span {
+    color: var(--techwave-site-bg-color);
+    -webkit-text-stroke: 1px var(--techwave-main-color);
+    text-stroke: 1px var(--techwave-main-color);
+    letter-spacing: -6px;
+}
+
+.fn__center_title {
+    text-align: center;
+    max-width: 700px;
+}
+
+.fn__center_title h3.big {
+    font-size: 60px;
+    margin-top: -6px;
+    margin-bottom: 18px;
+}
+
+.fn__center_title p {
+    margin: 0;
+}
+
+.fn__center_title h3 {
+    font-size: 32px;
+    line-height: 1.2;
+    margin: 0;
+    font-weight: 300;
+    text-transform: uppercase;
+    letter-spacing: .5px;
+    text-shadow: 0px 0px 15px rgba(124, 95, 227, .35);
+}
+
+.fn__center_title .lines {
+    position: relative;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    height: 18px;
+    margin-bottom: 34px;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+}
+
+.fn__center_title .lines span {
+    position: relative;
+}
+
+.fn__center_title .lines .r,
+.fn__center_title .lines .l {
+    width: 100px;
+    height: 2px;
+    display: block;
+    background-color: var(--techwave-main-color);
+}
+
+.fn__center_title .lines span:after {
+    right: 0;
+    bottom: 0;
+    top: 0;
+    left: 0;
+    position: absolute;
+    color: var(--techwave-main-color1);
+    content: '';
+    opacity: .35;
+    box-shadow: 0px 0px 10px;
+}
+
+.fn__center_title .lines .c:after {
+    border-radius: 6px;
+    left: -2px;
+    right: -2px;
+    top: -2px;
+    bottom: -2px;
+}
+
+.fn__center_title .lines .c {
+    width: 120px;
+    height: 18px;
+    display: block;
+    border: 2px solid var(--techwave-main-color);
+    margin: 0 10px;
+    border-radius: 6px;
+}
+
+.txt_unlim {
+    width: 100%;
+    overflow: hidden;
+}
+
+.marquee {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+}
+
+.TickerNews {
+    width: 100%;
+    overflow: hidden;
+}
+
+.TickerNews .js-marquee-wrapper {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: nowrap;
+}
+
+.TickerNews .ti_wrapper {
+    width: 100%;
+    position: relative;
+    overflow: hidden;
+}
+
+.TickerNews .ti_slide {
+    position: relative;
+    left: 0;
+    top: 0;
+}
+
+.TickerNews .marquee {
+    overflow: hidden;
+}
+
+.TickerNews .ti_content {
+    position: relative;
+    float: left;
+}
+
+.TickerNews .js-marquee {
+    float: left;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: nowrap;
+}
+
+.TickerNews .item {
+    float: left;
+    position: relative;
+    white-space: nowrap;
+    color: var(--techwave-site-bg-color);
+    -webkit-text-stroke: 1px var(--techwave-main-color);
+    text-stroke: 1px var(--techwave-main-color);
+    letter-spacing: -6px;
+    font-size: 150px;
+    font-size: calc(50px + 5.211vw);
+    font-weight: 900;
+    font-family: sans-serif;
+    text-transform: uppercase;
+}
+
+.techwave_fn_intro .templates {
+    width: 1650px;
+    max-width: 100%
+}
+
+.techwave_fn_intro .templates ul {
+    margin: 0;
+    list-style-type: none;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    flex-wrap: wrap;
+    margin-left: -50px;
+}
+
+.techwave_fn_intro .templates li {
+    margin: 0;
+    padding: 0;
+    padding-left: 50px;
+    margin-bottom: 50px;
+    width: 50%;
+}
+
+.techwave_fn_intro .templates .top {
+    display: block;
+    width: 100%;
+    text-decoration: none;
+    border: 1px solid var(--techwave-border-color);
+    border-radius: 5px;
+    transition: all .4s ease;
+    position: relative;
+}
+
+.techwave_fn_intro .templates .top:after {
+    content: '';
+    position: absolute;
+    top: 100%;
+    left: 0;
+    right: 0;
+    height: 20px;
+    transform: translateY(-20px);
+    transition: all .4s ease;
+}
+
+.techwave_fn_intro .templates .top img {
+    display: block;
+    border-radius: 4px;
+}
+
+.techwave_fn_intro .templates .top:hover:after {
+    transform: translateY(0px);
+}
+
+.techwave_fn_intro .templates .top:hover {
+    transform: translateY(-20px);
+}
+
+.techwave_fn_intro .templates div div {
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    display: -o-flex;
+    display: flex;
+    -ms-align-items: center;
+    align-items: center;
+    justify-content: center;
+    padding-top: 30px;
+}
+
+.techwave_fn_intro .templates .techwave_fn_button {
+    padding: 0 52px;
+}
+
+#img_gen {
+    padding-top: 48px;
+    margin-bottom: 91px;
+}
+
+#demos {
+    padding-top: 100px;
+    margin-bottom: 73px;
+}
+
+/*------------------------------------------------------------------*/
+
+/*	66) Media Queries (Responsive)
+/*------------------------------------------------------------------*/
+
+@media(max-width: 1400px) {
+    .fn__model_item {
+        width: 25%;
+    }
+}
+
+@media(max-width: 1367px) {
+    .techwave_fn_interactive_list li {
+        width: 100%;
+        max-width: 100%;
+    }
+}
+
+@media(max-width: 1200px) {
+    .fn__model_item {
+        width: 33.3333%;
+    }
+}
+
+@media(max-width: 1040px) {
+    .techwave_fn_pricing .pricing__content {
+        display: none;
+    }
+    .fn__mobile_pricing {
+        display: -webkit-flex;
+        display: -moz-flex;
+        display: -ms-flex;
+        display: -o-flex;
+        display: flex;
+    }
+    .font__trigger {
+        right: 0px;
+    }
+    .techwave_fn_accordion .acc__title {
+        font-size: 18px;
+    }
+    .techwave_fn_sign,
+    .techwave_fn_sign .form__content,
+    .techwave_fn_interactive_list.modern a,
+    .techwave_fn_changelog .item__header,
+    .techwave_fn_changelog .item__content,
+    .techwave_fn_accordion .acc__header,
+    .techwave_fn_accordion .acc__content {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+    .techwave_fn_pricing .pricing__footer .item_col,
+    .techwave_fn_pricing .pricing__heading .item,
+    .techwave_fn_pricing .pricing__fields .item_col,
+    .techwave_fn_pricing .pricing__header .item_col {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+    .techwave_fn_image_generation_page .generation_header,
+    .fn__generation_item {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+    .techwave_fn_image_generation_page .sidebar__trigger {
+        display: none;
+    }
+    .techwave_fn_aichatbot_page,
+    .techwave_fn_doc_page,
+    .techwave_fn_image_generation_page {
+        display: -webkit-flex;
+        display: -moz-flex;
+        display: -ms-flex;
+        display: -o-flex;
+        display: flex;
+        -webkit-flex-direction: column-reverse;
+        -moz-flex-direction: column-reverse;
+        -ms-flex-direction: column-reverse;
+        -o-flex-direction: column-reverse;
+        flex-direction: column-reverse;
+        min-height: inherit;
+    }
+    .techwave_fn_wrapper.fn__has_sidebar .techwave_fn_content {
+        margin-right: 0;
+    }
+    .techwave_fn_wrapper.fn__has_sidebar .techwave_fn_doc_page .docsidebar,
+    .techwave_fn_aichatbot_page .chat__sidebar,
+    .techwave_fn_image_generation_page .generation__sidebar {
+        position: relative;
+        width: 100%;
+        height: auto;
+        left: auto;
+        right: auto;
+        top: auto;
+        min-width: 100%;
+        border-left: none;
+        border-bottom: 1px solid var(--techwave-border-color);
+    }
+    .techwave_fn_searchbar {
+        left: 0;
+        padding: 0 20px;
+    }
+    .techwave_fn_searchbar .search__icon {
+        left: 20px;
+    }
+    .techwave_fn_searchbar .search__closer {
+        right: 20px;
+    }
+    .techwave_fn_searchbar .search__input {
+        padding-left: 25px;
+        padding-right: 30px;
+    }
+    .techwave_fn_img_lightbox .lightbox__tlimg {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+    .techwave_fn_img_lightbox .lightbox__related {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+    .fn__grid_items li {
+        width: 25%;
+    }
+    .fn__gallery_item {
+        width: 33.3333%;
+    }
+    .techwave_fn_header {
+        padding: 0 20px 0 60px;
+    }
+    .techwave_fn_leftpanel .mobile_closer {
+        display: -webkit-flex;
+        display: -moz-flex;
+        display: -ms-flex;
+        display: -o-flex;
+        display: flex;
+    }
+    .techwave_fn_leftpanel .desktop_closer {
+        display: none;
+    }
+    .techwave_fn_leftpanel .mobile_extra_closer {
+        position: absolute;
+        left: 100%;
+        width: calc(100vw - var(--techwave-left-panel-width));
+        top: 0;
+        bottom: 0;
+        background-color: var(--techwave-some-r-bg-color);
+        opacity: 0;
+        pointer-events: none;
+        margin-left: 1px;
+    }
+    .section_home {
+        -webkit-flex-direction: column;
+        -moz-flex-direction: column;
+        -ms-flex-direction: column;
+        -o-flex-direction: column;
+        flex-direction: column;
+    }
+    .section_home .section_left {
+        width: 100%;
+        border-right: none;
+        border-bottom: 1px solid var(--techwave-border-color);
+        padding: 73px 20px 60px;
+    }
+    .section_home .section_right {
+        width: 100%;
+        padding: 70px 20px;
+    }
+    .techwave_fn_footer {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+    .section_home .company_info {
+        max-width: 100%;
+    }
+    .techwave_fn_content {
+        margin-left: 0;
+    }
+    .techwave_fn_header {
+        left: 0;
+    }
+    .techwave_fn_leftpanel {
+        transform: translateX(-100%);
+    }
+    .techwave_fn_leftpanel .fn__icon_button {
+        right: -51px;
+        width: 40px;
+        height: 40px;
+        transform: rotate(180deg);
+        margin-top: -20px;
+    }
+    .mobile-panel-opened .techwave_fn_leftpanel .fn__icon_button {
+        transform: rotate(0);
+    }
+    .mobile-panel-opened .techwave_fn_leftpanel .mobile_extra_closer {
+        opacity: 0.9;
+        pointer-events: all;
+    }
+    .mobile-panel-opened .techwave_fn_header,
+    .mobile-panel-opened .techwave_fn_content {
+        transform: translateX(300px);
+    }
+    .mobile-panel-opened .techwave_fn_leftpanel {
+        transform: translateX(0);
+    }
+}
+
+@media(max-width: 900px) {
+    .techwave_fn_pricing .item_row .item_col {
+        width: 25% !important;
+        max-width: 25% !important;
+    }
+    .techwave_fn_pricing .pricing__header .price span {
+        font-size: 20px;
+    }
+    .techwave_fn_pricing .pricing__footer .item_col,
+    .techwave_fn_pricing .pricing__heading .item,
+    .techwave_fn_pricing .pricing__fields .item_col,
+    .techwave_fn_pricing .pricing__header .item_col {
+        padding-left: 10px;
+        padding-right: 10px;
+    }
+    .techwave_fn_img_lightbox .lightbox__top {
+        -webkit-flex-direction: column;
+        -moz-flex-direction: column;
+        -ms-flex-direction: column;
+        -o-flex-direction: column;
+        flex-direction: column;
+    }
+    .techwave_fn_img_lightbox .lightbox__tl {
+        width: 100%;
+    }
+    .techwave_fn_img_lightbox .lightbox__tr {
+        width: 100%;
+        border-left: none;
+        border-top: 1px solid var(--techwave-border-color);
+    }
+}
+
+@media(max-width: 768px) {
+    .fn__mobile_pricing .pricing__item {
+        width: 100%;
+    }
+    .fn__generation_list .fn__gl_item {
+        width: 50%;
+    }
+    .fn__model_item {
+        width: 50%;
+    }
+    .fn__gallery_items .item__info {
+        opacity: 1;
+        visibility: visible;
+        transform: translateY(0);
+    }
+    .techwave_fn_footer_content {
+        flex-wrap: wrap;
+    }
+    .fn__grid_items li {
+        width: 50%;
+    }
+    .fn__gallery_item {
+        width: 50%;
+    }
+    .techwave_fn_header .header__left {
+        display: none;
+    }
+    .techwave_fn_header {
+        justify-content: flex-end;
+    }
+}
+
+@media(max-width: 480px) {
+    .techwave_fn_sign,
+    .techwave_fn_sign .form__content,
+    .techwave_fn_changelog .item__header,
+    .techwave_fn_changelog .item__content,
+    .techwave_fn_accordion .acc__header,
+    .techwave_fn_accordion .acc__content {
+        padding-left: 10px;
+        padding-right: 10px;
+    }
+    .fn__generation_list .fn__gl_item {
+        width: 100%;
+    }
+    .techwave_fn_image_generation_page .generation_header,
+    .fn__generation_item {
+        padding-left: 10px;
+        padding-right: 10px;
+    }
+    .fn__model_item {
+        width: 100%;
+    }
+    .fn__grid_items ul {
+        margin-left: -10px;
+    }
+    .fn__grid_items li {
+        padding-left: 10px;
+        margin-bottom: 10px;
+    }
+    .fn__nav_bar .user_opener {
+        width: 50px;
+        height: 50px;
+    }
+    .fn__details_list li {
+        width: 100%;
+    }
+    .fn__gallery_item {
+        width: 100%;
+    }
+    .techwave_fn_header {
+        padding-right: 10px;
+    }
+    .fn__nav_bar .item_opener .dark_mode {
+        margin: -9px 0 0 -9px;
+    }
+    .fn__nav_bar .bar__item {
+        margin-right: 5px;
+    }
+    .fn__nav_bar .bar__item_user {
+        margin-left: 5px;
+    }
+    .fn__nav_bar .item_opener {
+        width: 40px;
+        height: 40px;
+    }
+    .fn__nav_bar .item_opener .fn__svg {
+        width: 18px;
+        height: 18px;
+    }
+}
\ No newline at end of file
diff --git a/img/btc.svg b/img/btc.svg
new file mode 100644
index 0000000000000000000000000000000000000000..87107292368a42e24374e48d19f516b2c767edad
--- /dev/null
+++ b/img/btc.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
+<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
+
<g fill="none" fill-rule="evenodd">
+
<circle cx="16" cy="16" r="16" fill="#F7931A"/>
+
<path fill="#FFF" fill-rule="nonzero" d="M23.189 14.02c.314-2.096-1.283-3.223-3.465-3.975l.708-2.84-1.728-.43-.69 2.765c-.454-.114-.92-.22-1.385-.326l.695-2.783L15.596 6l-.708 2.839c-.376-.086-.746-.17-1.104-.26l.002-.009-2.384-.595-.46 1.846s1.283.294 1.256.312c.7.175.826.638.805 1.006l-.806 3.235c.048.012.11.03.18.057l-.183-.045-1.13 4.532c-.086.212-.303.531-.793.41.018.025-1.256-.313-1.256-.313l-.858 1.978 2.25.561c.418.105.828.215 1.231.318l-.715 2.872 1.727.43.708-2.84c.472.127.93.245 1.378.357l-.706 2.828 1.728.43.715-2.866c2.948.558 5.164.333 6.097-2.333.752-2.146-.037-3.385-1.588-4.192 1.13-.26 1.98-1.003 2.207-2.538zm-3.95 5.538c-.533 2.147-4.148.986-5.32.695l.95-3.805c1.172.293 4.929.872 4.37 3.11zm.535-5.569c-.487 1.953-3.495.96-4.47.717l.86-3.45c.975.243 4.118.696 3.61 2.733z"/>
+
</g>
+
</svg>
\ No newline at end of file
diff --git a/img/gallery/1.jpg b/img/gallery/1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..02b57c2e3af2cb11e4d6d609b9d9a4bc4016a200
Binary files /dev/null and b/img/gallery/1.jpg differ
diff --git a/img/gallery/2.jpg b/img/gallery/2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2e81f5b6d9261a245ab7a7c713b573aa201e9992
Binary files /dev/null and b/img/gallery/2.jpg differ
diff --git a/img/gallery/3.jpg b/img/gallery/3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0a881e9f0468da507cd9399c65249a69fcc8b859
Binary files /dev/null and b/img/gallery/3.jpg differ
diff --git a/img/gallery/4.jpg b/img/gallery/4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60e993aa172a49e78ac7513ad2e260723c5ddf7d
Binary files /dev/null and b/img/gallery/4.jpg differ
diff --git a/img/gallery/5.jpg b/img/gallery/5.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..908a038fe7f878bae5f472d9bbeb1d2c30f81470
Binary files /dev/null and b/img/gallery/5.jpg differ
diff --git a/img/gallery/6.jpg b/img/gallery/6.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ec530f00c1802254dcc1ec1304f2078ecbfeca85
Binary files /dev/null and b/img/gallery/6.jpg differ
diff --git a/img/gallery/7.jpg b/img/gallery/7.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..edd614c325fc109272817db9e8aa3e19a5fbecb8
Binary files /dev/null and b/img/gallery/7.jpg differ
diff --git a/img/gallery/8.jpg b/img/gallery/8.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..746c079812f831bb1c2e13a705f2d226d71f8559
Binary files /dev/null and b/img/gallery/8.jpg differ
diff --git a/img/gallery/main.jpg b/img/gallery/main.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d9f0cf5dfe35a577b4fe0d9a6a6a8d2348645be2
Binary files /dev/null and b/img/gallery/main.jpg differ
diff --git a/img/logo-desktop-full.png b/img/logo-desktop-full.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8d9ec93e37826c6df5620a685e555ea92cdf880
Binary files /dev/null and b/img/logo-desktop-full.png differ
diff --git a/img/logo-desktop-mini.png b/img/logo-desktop-mini.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c0b7e0bc77e8df7426fbf1f046fe02c26072e74
Binary files /dev/null and b/img/logo-desktop-mini.png differ
diff --git a/img/logo-retina-full.png b/img/logo-retina-full.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8d9ec93e37826c6df5620a685e555ea92cdf880
Binary files /dev/null and b/img/logo-retina-full.png differ
diff --git a/img/logo-retina-mini.png b/img/logo-retina-mini.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f445527f31f72b3b6f5f0057ecab2a237a320ad
Binary files /dev/null and b/img/logo-retina-mini.png differ
diff --git a/img/models/1.jpg b/img/models/1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..194929fe2f44a29a8098c03565c433eed7db5ff8
Binary files /dev/null and b/img/models/1.jpg differ
diff --git a/img/models/10.jpg b/img/models/10.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b47651226a3a9cbe7381fec98cc826544b175bc8
Binary files /dev/null and b/img/models/10.jpg differ
diff --git a/img/models/2.jpg b/img/models/2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d4c1034d6361cb0d062b93596121d3d630aeccd
Binary files /dev/null and b/img/models/2.jpg differ
diff --git a/img/models/3.jpg b/img/models/3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2bcea52b72453a64b467a51f3a603f65035d8a44
Binary files /dev/null and b/img/models/3.jpg differ
diff --git a/img/models/4.jpg b/img/models/4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3f6ef0a005ae8eb3c9cc022296151ad9fa0706c
Binary files /dev/null and b/img/models/4.jpg differ
diff --git a/img/models/5.jpg b/img/models/5.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3039d34fb2dc3575772f68f774e9502c688c8357
Binary files /dev/null and b/img/models/5.jpg differ
diff --git a/img/models/6.jpg b/img/models/6.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2c78443bf2787a01063cfaf9ff52c82b0b8ea515
Binary files /dev/null and b/img/models/6.jpg differ
diff --git a/img/models/7.jpg b/img/models/7.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..49f1c8861f55d1cd2e68ad1282219129a2529177
Binary files /dev/null and b/img/models/7.jpg differ
diff --git a/img/models/8.jpg b/img/models/8.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a2abd61feeb7bf987a63acf378cd51af978b9ec4
Binary files /dev/null and b/img/models/8.jpg differ
diff --git a/img/models/9.jpg b/img/models/9.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b61f171341161edf55f73371b9f83b8ee0d24c71
Binary files /dev/null and b/img/models/9.jpg differ
diff --git a/img/related/1.jpg b/img/related/1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..acfb301263c936e820c539e3967ccdd76daffe9d
Binary files /dev/null and b/img/related/1.jpg differ
diff --git a/img/related/10.jpg b/img/related/10.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3a60b83f376cb77b4b1ef2c5c7cd1cc3075de59f
Binary files /dev/null and b/img/related/10.jpg differ
diff --git a/img/related/11.jpg b/img/related/11.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3d2d7a56b714cbf0eadd97d8556ca318c1933cc
Binary files /dev/null and b/img/related/11.jpg differ
diff --git a/img/related/12.jpg b/img/related/12.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..485312a81b0165979aa9155badb0a52baef5fae4
Binary files /dev/null and b/img/related/12.jpg differ
diff --git a/img/related/2.jpg b/img/related/2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e065f8a84d06d346f6ec685f164a1d9c06882756
Binary files /dev/null and b/img/related/2.jpg differ
diff --git a/img/related/3.jpg b/img/related/3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..07f47a70eaa90268bd74c9c5b22acb0c6068d580
Binary files /dev/null and b/img/related/3.jpg differ
diff --git a/img/related/4.jpg b/img/related/4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..66e91b503c9af39868ffd99d41b6cbc37dabe51b
Binary files /dev/null and b/img/related/4.jpg differ
diff --git a/img/related/5.jpg b/img/related/5.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f37cb599de00f64b9c806b971f1a6f6d9ca8553a
Binary files /dev/null and b/img/related/5.jpg differ
diff --git a/img/related/6.jpg b/img/related/6.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5f79f9031e48c0603baa39f62676cd69f1ca457c
Binary files /dev/null and b/img/related/6.jpg differ
diff --git a/img/related/7.jpg b/img/related/7.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2efd4faab28bad57c896515bcb3d1f3b7a8c0402
Binary files /dev/null and b/img/related/7.jpg differ
diff --git a/img/related/8.jpg b/img/related/8.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..46680d6075bb01b84514bd2d7d7bf22fa7eccfa3
Binary files /dev/null and b/img/related/8.jpg differ
diff --git a/img/related/9.jpg b/img/related/9.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..76b5d991987d8912ee99e4afd4e2daaebad5946f
Binary files /dev/null and b/img/related/9.jpg differ
diff --git a/img/user/user.jpg b/img/user/user.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..51440eadac8817798b1f42b7c288b34fdc6fb6fc
Binary files /dev/null and b/img/user/user.jpg differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..bae441ef645ad67ca6e85262eb78c1068c5dda44
--- /dev/null
+++ b/index.html
@@ -0,0 +1,529 @@
+<!DOCTYPE html>
+<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
+<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
+<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
+<!--[if (gte IE 9)|!(IE)]><!-->
+<html lang="en">
+<!--<![endif]-->
+
+<head>
+
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <meta name="description" content="TechWave">
+    <meta name="author" content="SRBThemes">
+
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+
+    <title>Home - TechWave</title>
+
+
+    <script>
+        if (!localStorage.frenify_skin) {
+            localStorage.frenify_skin = 'dark';
+        }
+        if (!localStorage.frenify_panel) {
+            localStorage.frenify_panel = '';
+        }
+        document.documentElement.setAttribute("data-techwave-skin", localStorage.frenify_skin);
+        if (localStorage.frenify_panel !== '') {
+            document.documentElement.classList.add(localStorage.frenify_panel);
+        }
+    </script>
+
+    <!-- Google Fonts -->
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link href="https://fonts.googleapis.com/css2?family=Heebo:wght@100;200;300;400;500;600;700;800;900&family=Work+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
+    <!-- !Google Fonts -->
+
+    <!-- Styles -->
+    <link type="text/css" rel="stylesheet" href="css/plugins.css?ver=1.0.0" />
+    <link type="text/css" rel="stylesheet" href="css/style.css?ver=1.0.0" />
+    <!--[if lt IE 9]> <script type="text/javascript" src="js/modernizr.custom.js"></script> <![endif]-->
+    <!-- !Styles -->
+
+</head>
+
+<body>
+
+
+    <!-- Moving Submenu -->
+    <div class="techwave_fn_fixedsub">
+        <ul></ul>
+    </div>
+    <!-- !Moving Submenu -->
+
+    <!-- Preloader -->
+    <div class="techwave_fn_preloader enabled">
+        <svg>
+		<circle class="first_circle" cx="50%" cy="50%" r="110"></circle>
+		<circle class="second_circle" cx="50%" cy="50%" r="110"></circle>
+	</svg>
+    </div>
+    <!-- !Preloader -->
+
+
+    <!-- MAIN WRAPPER -->
+    <div class="techwave_fn_wrapper">
+        <div class="techwave_fn_wrap">
+
+
+            <!-- Searchbar -->
+            <div class="techwave_fn_searchbar">
+                <div class="search__bar">
+                    <input class="search__input" type="text" placeholder="Search here...">
+                    <img src="svg/search.svg" alt="" class="fn__svg search__icon">
+                    <a class="search__closer" href="#"><img src="svg/close.svg" alt="" class="fn__svg"></a>
+                </div>
+                <div class="search__results">
+                    <!-- Results will come here (via ajax after the integration you made after purchase as it doesn't work in HTML) -->
+                    <div class="results__title">Results</div>
+                    <div class="results__list">
+                        <ul>
+                            <li><a href="#">Artificial Intelligence</a></li>
+                            <li><a href="#">Learn about the impact of AI on the financial industry</a></li>
+                            <li><a href="#">Delve into the realm of AI-driven manufacturing</a></li>
+                            <li><a href="#">Understand the ethical implications surrounding AI</a></li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+            <!-- !Searchbar -->
+
+            <!-- HEADER -->
+            <header class="techwave_fn_header">
+
+                <!-- Header left: token information -->
+                <div class="header__left">
+                    <div class="fn__token_info">
+                        <span class="token_summary">
+                            <script>
+                                async function fetchBTCPrice() {
+                                    try {
+                                        const response = await fetch('https://api.coindesk.com/v1/bpi/currentprice/BTC.json');
+                                        if (!response.ok) {
+                                            throw new Error('Network response was not ok');
+                                        }
+                                        const data = await response.json();
+                                        const price = data.bpi.USD.rate_float.toFixed(2); // Get the price and format it to two decimal places
+                                        document.querySelector('.count').textContent = price;
+                                    } catch (error) {
+                                        console.error('Error fetching BTC price:', error);
+                                    }
+                                }
+                            
+                                // Fetch the BTC price every second
+                                setInterval(fetchBTCPrice, 1000);
+                            
+                                // Initial fetch
+                                fetchBTCPrice();
+                            </script>
+						<div class="btc-price">
+    Current BTC Price: $ <span class="count">120</span> <!-- "120" is just an initial placeholder -->
+</div>
+<style>
+    .btc-icon {
+  width: 23px; /* Adjust the size as needed */
+  height: auto; /* Maintain aspect ratio */
+  vertical-align: middle; /* Aligns the image vertically with text if needed */
+}
+</style>
+<span class="text">
+    <img src="img/btc.svg" alt="BTC Icon" class="btc-icon">
+  </span>
+                        </span>
+                        <a href="pricing.html" class="token_upgrade techwave_fn_button"><span>Upgrade</span></a>
+                      
+                    </div>
+                </div>
+                <!-- /Header left: token information -->
+
+
+                <!-- Header right: navigation bar -->
+                <div class="header__right">
+                    <div class="fn__nav_bar">
+
+                        <!-- Search (bar item) -->
+                        <div class="bar__item bar__item_search">
+                            <a href="#" class="item_opener fn__tooltip" title="Search">
+							<img src="svg/search.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <input type="text" placeholder="Search">
+                            </div>
+                        </div>
+                        <!-- !Search (bar item) -->
+
+                        <!-- Notification (bar item) -->
+                        <div class="bar__item bar__item_notification has_notification">
+                            <a href="#" class="item_opener fn__tooltip" title="Notifications">
+							<img src="svg/bell.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <div class="ntfc_header">
+                                    <h2 class="ntfc_title">Notifications</h2>
+                                    <a href="notifications.html">View All</a>
+                                </div>
+                                <div class="ntfc_list">
+                                    <ul>
+                                        <li>
+                                            <p><a href="notification-single.html">Version 1.1.0 has been launched</a></p>
+                                            <span>34 Min Ago</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Video Generation has been released</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Terms has been updated</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !Notification (bar item) -->
+
+                        <!-- Full Screen (bar item) -->
+                        <div class="bar__item bar__item_fullscreen">
+                            <a href="#" class="item_opener fn__tooltip" title="Full Screen">
+							<img src="svg/fullscreen.svg" alt="" class="fn__svg f_screen">
+							<img src="svg/smallscreen.svg" alt="" class="fn__svg s_screen">
+						</a>
+                        </div>
+                        <!-- !Full Screen (bar item) -->
+
+                        <!-- Language (bar item) -->
+                        <div class="bar__item bar__item_language">
+                            <a href="#" class="item_opener fn__tooltip" title="Language">
+							<img src="svg/language.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <ul>
+                                    <li>
+                                        <span class="active">English</span>
+                                    </li>
+                                    <li>
+                                        <a href="#">Spanish</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">French</a>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                        <!-- !Language (bar item) -->
+
+                        <!-- Site Skin (bar item) -->
+                        <div class="bar__item bar__item_skin">
+                            <a href="#" class="item_opener fn__tooltip" title="Dark/Light">
+							<img src="svg/sun.svg" alt="" class="fn__svg light_mode">
+							<img src="svg/moon.svg" alt="" class="fn__svg dark_mode">
+						</a>
+                        </div>
+                        <!-- !Site Skin (bar item) -->
+
+                        <!-- User (bar item) -->
+                        <div class="bar__item bar__item_user">
+                            <a href="#" class="user_opener fn__tooltip" title="User Profile">
+							<img src="img/user/user.jpg" alt="">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <div class="user_profile">
+                                    <div class="user_img">
+                                        <img src="img/user/user.jpg" alt="">
+                                    </div>
+                                    <div class="user_info">
+                                        <h2 class="user_name">Caden Smith<span>Free</span></h2>
+                                        <p><a href="mailto:cadmail@gmail.com" class="user_email">cadmail@gmail.com</a></p>
+                                    </div>
+                                </div>
+                                <div class="user_nav">
+                                    <ul>
+                                        <li>
+                                            <a href="user-profile.html">
+											<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+											<span class="text">Profile</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-settings.html">
+											<span class="icon"><img src="svg/setting.svg" alt="" class="fn__svg"></span>
+											<span class="text">Settings</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-billing.html">
+											<span class="icon"><img src="svg/billing.svg" alt="" class="fn__svg"></span>
+											<span class="text">Billing</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="sign-in.html">
+											<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+											<span class="text">Log Out</span>
+										</a>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !User (bar item) -->
+
+
+                    </div>
+                </div>
+                <!-- !Header right: navigation bar -->
+
+            </header>
+            <!-- !HEADER -->
+
+
+            <!-- LEFT PANEL -->
+            <div class="techwave_fn_leftpanel">
+
+                <div class="mobile_extra_closer"></div>
+
+                <!-- logo (left panel) -->
+                <div class="leftpanel_logo">
+                    <a href="index.html" class="fn_logo">
+					<span class="full_logo">
+						<img src="img/logo-desktop-full.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-full.png" alt="" class="retina_logo">
+					</span>
+					<span class="short_logo">
+						<img src="img/logo-desktop-mini.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-mini.png" alt="" class="retina_logo">
+					</span>
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button desktop_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button mobile_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                </div>
+                <!-- !logo (left panel) -->
+
+                <!-- content (left panel) -->
+                <div class="leftpanel_content">
+
+                    <!-- #1 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Start Here</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="index.html" class="fn__tooltip active menu__item" data-position="right" title="Home">
+								<span class="icon"><img src="svg/home.svg" alt="" class="fn__svg"></span>
+								<span class="text">Home</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="news.html" class="fn__tooltip menu__item" data-position="right" title="Community Feed">
+								<span class="icon"><img src="svg/news.png" alt="" class="fn__svg"></span>
+								<span class="text">News</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="personal-feed.html" class="fn__tooltip menu__item" data-position="right" title="Personal Feed">
+								<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+								<span class="text">Personal Feed<span class="count">48</span></span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="models.html" class="fn__tooltip menu__item" data-position="right" title="Finetuned Models">
+								<span class="icon"><img src="svg/cube.svg" alt="" class="fn__svg"></span>
+								<span class="text">Finetuned Models</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#1 navigation group -->
+
+                    <!-- #2 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">User Tools</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="image-generation.html" class="fn__tooltip menu__item" data-position="right" title="Image Generation">
+								<span class="icon"><img src="svg/image.svg" alt="" class="fn__svg"></span>
+								<span class="text">Image Generation</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="ai-chat-bot.html" class="fn__tooltip menu__item" data-position="right" title="AI Chat Bot">
+								<span class="icon"><img src="svg/chat.svg" alt="" class="fn__svg"></span>
+								<span class="text">AI Chat Bot</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#2 navigation group -->
+
+                    <!-- #3 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Support</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="pricing.html" class="fn__tooltip menu__item" data-position="right" title="Pricing">
+								<span class="icon"><img src="svg/dollar.svg" alt="" class="fn__svg"></span>
+								<span class="text">Pricing</span>
+							</a>
+                            </li>
+                            <li class="menu-item-has-children">
+                                <a href="video-generation.html" class="fn__tooltip menu__item" title="FAQ &amp; Help" data-position="right">
+								<span class="icon"><img src="svg/question.svg" alt="" class="fn__svg"></span>
+								<span class="text">FAQ &amp; Help</span>
+								<span class="trigger"><img src="svg/arrow.svg" alt="" class="fn__svg"></span>
+							</a>
+                                <ul class="sub-menu">
+                                    <li>
+                                        <a href="documentation.html"><span class="text">Documentation</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="faq.html"><span class="text">FAQ</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="changelog.html"><span class="text">Changelog<span class="fn__sup">(1.3.0)</span></span></a>
+                                    </li>
+                                    <li>
+                                        <a href="contact.html"><span class="text">Contact Us</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="index-2.html"><span class="text">Home #2</span></a>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li>
+                                <a href="sign-in.html" class="fn__tooltip menu__item" data-position="right" title="Log Out">
+								<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+								<span class="text">Log Out</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#3 navigation group -->
+
+
+                </div>
+                <!-- !content (left panel) -->
+
+            </div>
+            <!-- !LEFT PANEL -->
+
+
+            <!-- CONTENT -->
+            <div class="techwave_fn_content">
+
+                <!-- PAGE (all pages go inside this div) -->
+                <div class="techwave_fn_page">
+
+                    <!-- Home Page -->
+                    <div class="techwave_fn_home">
+                        <div class="section_home">
+                            <style>
+        .section_left {
+    width: 100%; /* Ensure the div takes full width of its parent */
+    height: 100vh; /* Or any specific height you need */
+    box-sizing: border-box; /* Include padding and border in the element's total width and height */
+}
+
+.full-frame {
+    width: 100%;
+    height: 100%;
+    border: 0; /* Remove border */
+    display: block; /* Ensure the iframe behaves like a block element */
+}     </style>
+                           <div class="section_left">
+                            <iframe src="triding.html" class="full-frame"></iframe>
+                        </div>
+                        <style>
+                            .company_info {
+    text-align: center; /* Center content */
+    padding: 20px;
+    background-color: none; /* Light background color */
+    border-radius: 10px; /* Rounded corners */
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
+}
+
+.logo {
+    max-width: 100%; /* Responsive logo */
+    height: auto;
+    margin-bottom: 20px; /* Space between logo and next image */
+}
+
+.featured-image {
+    max-width: 100%; /* Responsive image */
+    height: auto;
+    margin-bottom: 20px; /* Space between image and text */
+    border-radius: 10px; /* Rounded corners for the image */
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for the image */
+}
+
+                        </style>
+                            <div class="section_right">
+                                <div class="company_info">
+                                    <img src="img/logo-desktop-full.png" alt="Company Logo" class="logo">
+                                    <img src="https://en.cryptonomist.ch/wp-content/uploads/2024/09/bitcoin-news-blackrock.jpg" alt="Bitcoin News" class="featured-image">
+                                    <p class="fn__animated_text">The official server of TECH-AI, a text-to-image AI where your imagination is the only limit. We’re building market-leading features that will give you greater control over your generations.</p>
+                                    <hr>
+                                    <div class="fn__members">
+                                        <div class="active item">
+                                            <span class="circle"></span>
+                                            <span class="text">1,154,694 Online</span>
+                                        </div>
+                                        <div class="item">
+                                            <span class="circle"></span>
+                                            <span class="text">77,345,912 Members</span>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- !Home Page -->
+
+                </div>
+                <!-- !PAGE (all pages go inside this div) -->
+
+
+                <!-- FOOTER (inside the content) -->
+                <footer class="techwave_fn_footer">
+                    <div class="techwave_fn_footer_content">
+                        <div class="copyright">
+                            <p>
+                                <script>
+                                    document.write(new Date().getFullYear())
+                                </script>© SRBThemes</p>
+                        </div>
+                        <div class="menu_items">
+                            <ul>
+                                <li><a href="terms.html">Terms of Service</a></li>
+                                <li><a href="privacy.html">Privacy Policy</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </footer>
+                <!-- !FOOTER (inside the content) -->
+
+            </div>
+            <!-- !CONTENT -->
+
+
+        </div>
+    </div>
+    <!-- !MAIN WRAPPER -->
+
+
+
+    <!-- Scripts -->
+    <script type="text/javascript" src="js/jquery.js?ver=1.0.0"></script>
+    <script type="text/javascript" src="js/plugins.js?ver=1.0.0"></script>
+    <!--[if lt IE 10]> <script type="text/javascript" src="js/ie8.js"></script> <![endif]-->
+    <script type="text/javascript" src="js/init.js?ver=1.0.0"></script>
+    <!-- !Scripts -->
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/js/init.js b/js/init.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf331e9f47809ad5ec4984d0854c7f6d904c4f05
--- /dev/null
+++ b/js/init.js
@@ -0,0 +1,1848 @@
+/*
+ * Copyright (c) 2024 SRBThemes
+ * Author: SRBThemes
+ * This file is made for CURRENT TEMPLATE
+ */
+
+
+$.fn.frenifyMoveCursorToEnd = function() {
+    "use strict";
+    this.focus();
+    var $thisVal = this.val();
+    this.val('').val($thisVal);
+    return this;
+};
+var FrenifyTechWaveTime = new Date();
+
+(function($) {
+    "use strict";
+
+
+
+    var TechwaveSelectedCount = 0;
+
+    var TechwaveFeedFilterLoading = false;
+    var TechwaveModelFilterLoading = false;
+
+    var TechwaveInputText = '';
+    var TechwaveUserQuestion = '';
+
+
+    var TechwaveUserMessageCount = 0;
+
+
+    var FrenifyTechWave = {
+
+        init: function() {
+            this.marquee();
+            this.tooltip();
+            this.fontDialog();
+            this.modelTabs();
+            this.bookmark();
+            this.contactForm();
+            this.negativePrompt();
+            this.imageGenerationSidebar();
+            this.rangeSlider();
+            this.quantity();
+            this.selectModel();
+            this.anchor();
+            this.aiChatBot__chat();
+            this.aiChatBotOptions();
+            this.aiChatBotTextareaHeight();
+            this.billingProgress();
+            this.inputFileOnChange();
+            this.optionsList();
+            this.pricingTab();
+            this.feedFilters();
+            this.report();
+            this.follow();
+            this.copyLink();
+            this.galleryIsotope();
+            this.imageLightbox();
+            this.like();
+            this.accordion();
+            this.search();
+            this.animatedText();
+            this.movingSubMenuForLeftPanel();
+            this.panelResize();
+            this.navBarItems();
+            this.redetectFullScreen();
+            this.fullSCreen();
+            this.navSubMenu();
+            this.imgToSVG();
+            this.BgImg();
+            this.popupMobile();
+        },
+
+
+        marquee: function() {
+            $(".TickerNews .marquee").each(function() {
+                var e = $(this);
+                if (!e.hasClass('ready')) {
+                    e.addClass('ready').marquee({
+                        duplicated: true,
+                        duration: parseInt(e.data('speed')) * 1000,
+                        delayBeforeStart: 0,
+                        direction: 'left',
+                        //						pauseOnHover: true,
+                        startVisible: true
+                    });
+                }
+            });
+        },
+
+        popupMobile: function() {
+            if (window.matchMedia('(max-width: 767px)').matches) {
+                var wrapperW = $('.techwave_fn_wrapper').width();
+                var padding = 10;
+                var maxWidth = 300;
+                $('.item__popup,.fn__nav_bar .item_popup').each(function() {
+                    var element = $(this);
+                    var parent = element.parent();
+                    var width = wrapperW - 2 * padding;
+                    var normal = Math.min(width, maxWidth);
+                    var leftOffset = parent.offset().left;
+                    var left = padding - leftOffset + (width - normal) / 2;
+
+                    var right = 'auto';
+
+                    if (element.data('position') === 'right') {
+                        if (leftOffset + parent.width() > normal) {
+                            left = 'auto';
+                            right = 0;
+                        }
+                    } else {
+                        if ((leftOffset + normal) < width) {
+                            left = 0;
+                        }
+                    }
+
+                    element.css({
+                        maxWidth: normal,
+                        width: normal,
+                        left: left,
+                        right: right
+                    });
+                });
+            } else {
+                $('.fn__nav_bar .item_popup,.item__popup').attr('style', '');
+            }
+        },
+
+        tooltip: function() {
+            $('body').on('mouseover mouseenter', '.fn__tooltip', function() {
+                var element = $(this);
+                var position = element.attr('data-position');
+                if (typeof position === 'undefined' || position === true) {
+                    position = ['top', 'bottom', 'right', 'left'];
+                }
+                var options = {
+                    contentAsHTML: 'true',
+                    maxWidth: 300,
+                    animationDuration: 0,
+                    animation: 'fade', // 'fade', 'grow', 'swing', 'slide', 'fall'
+                    delay: 0,
+                    theme: 'tooltipster-techwave',
+                    side: position
+                };
+                if (element.hasClass('menu__item')) {
+                    if (!$('html').hasClass('panel-opened')) {
+                        element.tooltipster(options).tooltipster('hide');
+                        return;
+                    }
+                }
+                element.tooltipster(options);
+                element.tooltipster('show');
+            });
+            //			$( ".fn__tooltip" ).each(function(){
+            //				$(this).tooltipster({
+            //					theme: 'tooltipster-techwave',
+            //					animation: 'fade', // 'fade', 'grow', 'swing', 'slide', 'fall'
+            //					side: 'bottom',
+            //					maxWidth: 300,
+            //					animationDuration: 0,
+            //					delay: 0,
+            //					trigger: 'click'
+            //				});	
+            //			});
+
+        },
+
+        fontDialog: function() {
+            var dialog = $('.techwave_fn_font');
+            $('.font__trigger').off().on('click', function() {
+                dialog.addClass('opened');
+                return false;
+            });
+
+
+            dialog.find('.font__closer').off().on('click', function() {
+                dialog.removeClass('opened');
+                return false;
+            });
+            dialog.find('.font__closer_link').off().on('click', function() {
+                dialog.removeClass('opened');
+                return false;
+            });
+            dialog.find('.apply').off().on('click', function() {
+                $('.fn__chat_font_size_style').remove();
+                $('body').append('<style type="text/css" class="fn__chat_font_size_style">frenify_typing h3,.fn__chatbot .chat{font-size: ' + $('#font_size').find(":selected").val() + 'px;}</style>');
+                dialog.removeClass('opened');
+                return false;
+            });
+        },
+
+        modelTabs: function() {
+            // tab filter
+            $('.techwave_fn_models .fn__tabs a').off().on('click', function() {
+                var element = $(this);
+                if (!element.hasClass('active') && !TechwaveModelFilterLoading) {
+                    TechwaveModelFilterLoading = true;
+                    element.siblings().removeClass('active');
+                    element.addClass('active');
+                    var parent = element.closest('.techwave_fn_models');
+                    parent.find('.models__results').addClass('loading');
+
+                    // do your ajax here
+                    // you have to get new models with filter (if you want to change also filter) of selected tab via ajax
+                    // ....
+                    // ....
+                    // after ajax ends remove setTimeout (it was added just for HTML)
+
+                    setTimeout(function() {
+                        // here you have to insert your models into the filter's content and feed content
+                        parent.find('.models__results').removeClass('loading');
+                        parent.find('.tab__item.active').removeClass('active');
+                        $(element.attr('href')).addClass('active');
+                        TechwaveModelFilterLoading = false;
+
+                    }, 1500);
+
+                }
+                return false;
+            });
+        },
+
+        contactForm: function() {
+            $("#send_message").on('click', function() {
+                var name = $(".fn_contact_form #name").val();
+                var email = $(".fn_contact_form #email").val();
+                var tel = $(".fn_contact_form #tel").val();
+                var message = $(".fn_contact_form #message").val();
+                var success = $(".fn_contact_form .returnmessage").data('success');
+
+                $(".fn_contact_form .returnmessage").empty(); //To empty previous error/success message.
+                //checking for blank fields	
+                if (name === '' || email === '' || message === '') {
+                    $('.fn_contact_form .empty_notice').slideDown(500).delay(2000).slideUp(500);
+                } else {
+                    // Returns successful data submission message when the entered information is stored in database.
+                    $.post("modal/contact.php", {
+                        ajax_name: name,
+                        ajax_email: email,
+                        ajax_message: message,
+                        ajax_tel: tel
+                    }, function(data) {
+
+                        $(".fn_contact_form .returnmessage").append(data); //Append returned message to message paragraph
+
+
+                        if ($(".fn_contact_form .returnmessage span.contact_error").length) {
+                            $(".fn_contact_form .returnmessage").slideDown(500).delay(2000).slideUp(500);
+                        } else {
+                            $(".fn_contact_form .returnmessage").append("<span class='contact_success'>" + success + "</span>");
+                            $(".fn_contact_form .returnmessage").slideDown(500).delay(4000).slideUp(500);
+                        }
+
+                        if (data === "") {
+                            $("#fn_contact_form")[0].reset(); //To reset form fields on success
+                        }
+
+                    });
+                }
+                return false;
+            });
+        },
+
+        negativePrompt: function() {
+            $('#negative_prompt').on('change', function() {
+                if (this.checked) {
+                    $('.techwave_fn_image_generation_page .exclude_area').slideDown(200);
+                } else {
+                    $('.techwave_fn_image_generation_page .exclude_area').slideUp(200);
+                }
+            });
+        },
+
+        imageGenerationSidebar: function() {
+            $('.techwave_fn_image_generation_page .sidebar__trigger').off().on('click', function() {
+                $('.techwave_fn_wrapper').toggleClass('fn__has_sidebar');
+                return false;
+            });
+        },
+
+        rangeSlider: function() {
+            $('.fn__range').each(function() {
+                var element = $(this),
+                    input = element.find('input'),
+                    val = input.val(),
+                    output = element.find('.value'),
+                    min = input.attr('min'),
+                    max = input.attr('max'),
+                    slider = element.find('.slider');
+                slider.css({
+                    width: (val * (min * 100) / max) + '%'
+                });
+                input.on('input', function() {
+                    val = $(this).val();
+                    output.text(val);
+                    slider.css({
+                        width: (val * (min * 100) / max) + '%'
+                    });
+                });
+            });
+        },
+
+        quantity: function() {
+            $('.fn__quantity .increase').off().on('click', function() {
+                var parent = $(this).closest('.fn__quantity');
+                var input = parent.find('input');
+                var max = parseInt(input.attr('max'), 10);
+                var value = parseInt(input.val(), 10);
+                value = isNaN(value) ? 0 : value;
+                if (max === value) {
+                    return false;
+                }
+                value++;
+                input.val(value);
+                return false;
+            });
+            $('.fn__quantity .decrease').off().on('click', function() {
+                var parent = $(this).closest('.fn__quantity');
+                var input = parent.find('input');
+                var value = parseInt(input.val(), 10);
+                var min = parseInt(input.attr('min'), 10);
+                value = isNaN(value) ? 0 : value;
+                if (min === value) {
+                    return false;
+                }
+                value--;
+                input.val(value);
+
+                return false;
+            });
+        },
+
+        selectModel: function() {
+            $('.fn__select_model .model_open').off().on('click', function() {
+                $(this).closest('.fn__select_model').toggleClass('opened');
+                return false;
+            });
+
+            $(window).on('click', function() {
+                $('.fn__select_model').removeClass('opened');
+            });
+
+            $('.fn__select_model .all_models').on('click', function(e) {
+                e.stopPropagation();
+            });
+        },
+
+        anchor: function() {
+            $('.techwave_fn_doc_page .docsidebar li.menu-item-has-children > a').off().on('click', function() {
+                $(this).siblings('ul').slideToggle();
+                return false;
+            });
+            if ($().onePageNav) {
+                $('.techwave_fn_doc_page .docsidebar > ul').onePageNav();
+            }
+        },
+
+        aiChatBot__chat: function() {
+            if ($('#fn__chat_textarea').length && !$('.techwave_fn_intro').length) {
+                $("#fn__chat_textarea").focus();
+            }
+            $("#fn__chat_textarea").keypress(function(e) {
+                var code = (e.keyCode ? e.keyCode : e.which);
+                if (code === 13 && e.shiftKey) {
+
+                } else if (code === 13) {
+                    $('.fn__chat_comment button').trigger('click');
+                    return false;
+                }
+            });
+            $('.fn__chat_comment button').off().on('click', function() {
+                var button = $(this);
+                var textarea = $('#fn__chat_textarea');
+                var text = textarea.val();
+                if (text === '' || button.hasClass('disabled')) {
+                    return;
+                } else {
+                    text = text.replace(/\n\r?/g, '<br />');
+                    TechwaveUserQuestion = text;
+                    var activeChatItem = $('.fn__chatbot .chat__item.active');
+                    var newText = '<div class="chat__box your__chat"><div class="author"><span>You</span></div><div class="chat"><p>' + text + '</p></div></div>';
+                    $('.fn__chat_comment').removeClass('neww');
+                    if (activeChatItem.attr('id') === 'chat0') {
+                        activeChatItem.removeClass('active');
+                        $('.fn__new_chat_link').removeClass('active');
+                        var id = $('.fn__chatbot .chat__item').length;
+                        $('.fn__chatbot .chat__list').append('<div class="chat__item active" id="chat' + id + '">' + newText + '</div>');
+                        var newChatToRightPanel = '<li class="group__item"><div class="fn__chat_link active" href="#chat' + id + '"><span class="text">New Chat</span><input type="text" value="New Chat"><span class="options"><button class="trigger"><span></span></button><span class="options__popup"><span class="options__list"><button class="edit">Edit</button><button class="delete">Delete</button></span></span></span><span class="save_options"><button class="save"><img src="svg/check.svg" alt="" class="fn__svg"></button><button class="cancel"><img src="svg/close.svg" alt="" class="fn__svg"></button></span></div></li>';
+                        if ($('.fn__chatbot .chat__group.new').length) {
+                            $('.fn__chatbot .chat__group.new ul').append(newChatToRightPanel);
+                        } else {
+                            $('.fn__chatbot .sidebar_content').prepend('<div class="chat__group"><h2 class="group__title">Today</h2><ul class="group__list">' + newChatToRightPanel + '</ul></div>');
+                        }
+                        FrenifyTechWave.imgToSVG();
+                        FrenifyTechWave.aiChatBotOptions();
+                    } else {
+                        activeChatItem.append(newText);
+                    }
+                    textarea.val('');
+                    textarea.siblings('.fn__hidden_textarea').val('');
+                    FrenifyTechWave.aiChatBotTextareaHeight();
+
+                    if ($('.techwave_fn_intro').length) {
+                        $("html, body").animate({
+                            scrollTop: textarea.offset().top - $(window).height() + 100
+                        });
+                    } else {
+                        $("html, body").animate({
+                            scrollTop: $(document).height() - $(window).height()
+                        });
+                    }
+                    textarea.frenifyMoveCursorToEnd();
+                }
+
+                // do your ajax here to answer the chat via AI
+
+                // you can remove frenify chat bot here
+                //				FrenifyTechWave.frenifyChat();
+
+                // don't remove this
+                return false;
+            });
+        },
+        frenifyChat: function() {
+            var botText = '';
+            var append = true;
+            var commands = '';
+
+            TechwaveUserMessageCount = $('.fn__chatbot .chat__item.active .chat__box').length;
+
+            // all avaliable commands
+            var allCommands = {
+                welcome: {
+                    type: 'text',
+                    description: 'welcome message',
+                    text: '<p>Frenify was founded in 2017. The company began working with the first customers, giving them the opportunity to purchase high-quality HTML templates.</p><p>The company’s products began to grow in terms of complexity and aesthetics. Frenify currently has a wide range of HTML templates, WordPress themes, WordPress plugins, Photoshop projects; paid and absolutely free products.</p><p>Design projects are unique and aesthetically pleasing based on customer requirements. Visit our website to get acquainted with our products. Thank you so much for being with us.</p>',
+                    append: true
+                },
+                about: {
+                    type: 'text',
+                    description: 'some information about the SRBThemes',
+                    text: '<p>Frenify was founded in 2017. The company began working with the first customers, giving them the opportunity to purchase high-quality HTML templates.</p><p>The company’s products began to grow in terms of complexity and aesthetics. Frenify currently has a wide range of HTML templates, WordPress themes, WordPress plugins, Photoshop projects; paid and absolutely free products.</p><p>Design projects are unique and aesthetically pleasing based on customer requirements. Visit our website to get acquainted with our products. Thank you so much for being with us.</p>',
+                    append: true
+                },
+                website: {
+                    type: 'url',
+                    description: 'go to our official website',
+                    append: false,
+                    url: 'https://frenify.com/'
+                },
+                free: {
+                    type: 'url',
+                    description: 'get PSD files of premium themes for free',
+                    append: false,
+                    url: 'https://frenify.com/freebies/'
+                },
+                doc: {
+                    type: 'url',
+                    description: 'visit online documentation for TechWave HTML template',
+                    append: false,
+                    url: 'https://frenify.com/work/envato/frenify/html/techwave/doc'
+                },
+                support: {
+                    type: 'url',
+                    description: 'if you have any questions regarding TechWave HTML template feel free and contact us by this command',
+                    append: false,
+                    url: 'https://themeforest.net/item/techwave-ai-html-dashboard-for-image-generation-chat-bot/46197058/support/contact'
+                },
+                purchase: {
+                    type: 'url',
+                    description: 'open the template description page on themeforest to purchase it',
+                    append: false,
+                    url: 'https://themeforest.net/item/techwave-ai-html-dashboard-for-image-generation-chat-bot/46197058'
+                },
+                youtube: {
+                    type: 'url',
+                    description: 'visit our youtube channel with video guides on our themes and templates',
+                    append: false,
+                    url: 'https://www.youtube.com/@frenifyteam/videos'
+                },
+                pass: {
+                    type: 'password',
+                    description: 'if you want to get strong password I can generate it for you, write <frenify_main>/pass 20</frenify_main> to get a 20 character password',
+                    append: true,
+                },
+                joke: {
+                    type: 'joke',
+                    description: 'I can cheer you up by telling a joke',
+                    append: true,
+                },
+                time: {
+                    type: 'time',
+                    description: 'display current time',
+                    append: true,
+                },
+                clear: {
+                    type: 'clear',
+                    description: 'to clear current chat',
+                    append: false,
+                },
+                commands: {
+                    type: 'commands',
+                    description: 'to list all available commands',
+                    append: true,
+                },
+            };
+
+
+
+            // collect all commands
+            commands = '<ul>';
+            $.each(allCommands, function(key, value) {
+                commands += '<li><frenify_main>/' + key + '</frenify_main> - ' + value.description + '</li>';
+            });
+            commands += '</ul>';
+
+            // welcome text (first message of the bot)
+            var welcomeText = '<p>Hello.</p><p>I am Frenify Bot. After purchasing the template, you can delete me easily. I understand some commands. You just select one of the commands and write here.</p><p>Here is the list of commands:</p>' + commands + '<p>We are trying for you. We try to make unique themes and templates with excellent functionality and excellent design.</p>';
+
+            allCommands.welcome.text = welcomeText;
+
+
+            var allJokes = [
+                'What did one pirate say to the other when he beat him at chess?<>Checkmatey.',
+                'I burned 2000 calories today<>I left my food in the oven for too long.',
+                'I startled my next-door neighbor with my new electric power tool. <>I had to calm him down by saying “Don’t worry, this is just a drill!”',
+                'I broke my arm in two places. <>My doctor told me to stop going to those places.',
+                'I quit my job at the coffee shop the other day. <>It was just the same old grind over and over.',
+                'I never buy anything that has Velcro with it...<>it’s a total rip-off.',
+                'I used to work at a soft drink can crushing company...<>it was soda pressing.',
+                'I wondered why the frisbee kept on getting bigger. <>Then it hit me.',
+                'I was going to tell you a fighting joke...<>but I forgot the punch line.',
+                'What is the most groundbreaking invention of all time? <>The shovel.',
+                'I’m starting my new job at a restaurant next week. <>I can’t wait.',
+                'I visited a weight loss website...<>they told me I have to have cookies disabled.',
+                'Did you hear about the famous Italian chef that recently died? <>He pasta way.',
+                'Broken guitar for sale<>no strings attached.',
+                'I could never be a plumber<>it’s too hard watching your life’s work go down the drain.',
+                'I cut my finger slicing cheese the other day...<>but I think I may have grater problems than that.',
+                'What time did you go to the dentist yesterday?<>Tooth-hurty.',
+                'What kind of music do astronauts listen to?<>Neptunes.',
+                'Rest in peace, boiled water. <>You will be mist.',
+                'What is the only concert in the world that costs 45 cents? <>50 Cent, featuring Nickelback.',
+                'It’s not a dad bod<> it’s a father figure.',
+                'My wife recently went on a tropical food diet and now our house is full of this stuff. <>It’s enough to make a mango crazy.',
+                'What do you call Santa’s little helpers? <>Subordinate clauses.',
+                'Want to hear a construction joke? <>Sorry, I’m still working on it.',
+                'What’s the difference between a hippo and a zippo? <>One is extremely big and heavy, and the other is a little lighter.',
+                'I burnt my Hawaiian pizza today in the oven, <>I should have cooked it on aloha temperature.',
+                'Anyone can be buried when they die<>but if you want to be cremated then you have to urn it.',
+                'Where did Captain Hook get his hook? <>From the second-hand store.',
+                'I am such a good singer that people always ask me to sing solo<>solo that they can’t hear me.',
+                'I am such a good singer that people ask me to sing tenor<>tenor twelve miles away.',
+                'Occasionally to relax I just like to tuck my knees into my chest and lean forward.<> That’s just how I roll.',
+                'What did the glass of wine say to the glass of beer? Nothing. <>They barley knew each other.',
+                'I’ve never trusted stairs. <>They are always up to something.',
+                'Why did Shakespeare’s wife leave him? <>She got sick of all the drama.',
+                'I just bought a dictionary but all of the pages are blank. <>I have no words to describe how mad I am.',
+                'If you want to get a job at the moisturizer factory... <>you’re going to have to apply daily.',
+                'I don’t know what’s going to happen next year. <>It’s probably because I don’t have 2020 vision.',
+                'Want to hear a joke about going to the bathroom? <>Urine for a treat.',
+                'I couldn’t figure out how to use the seat belt. <>Then it just clicked.',
+                'I got an email the other day teaching me how to read maps backwards<>turns out it was just spam.',
+                'I’m reading a book about anti-gravity.<> It’s impossible to put down!',
+                'You’re American when you go into the bathroom, and you’re American when you come out, but do you know what you are while you’re in there?<> European.',
+                'Did you know the first French fries weren’t actually cooked in France?<> They were cooked in Greece.',
+                'Want to hear a joke about a piece of paper? Never mind... <>it’s tearable.',
+                'I just watched a documentary about beavers. <>It was the best dam show I ever saw!',
+                'If you see a robbery at an Apple Store what re you?<> An iWitness?',
+                'Spring is here! <>I got so excited I wet my plants!',
+                'What’s Forrest Gump’s password?<> 1forrest1',
+                'Why did the Clydesdale give the pony a glass of water? <>Because he was a little horse!',
+                'CASHIER: "Would you like the milk in a bag, sir?" <>DAD: "No, just leave it in the carton!’”',
+                'Did you hear about the guy who invented Lifesavers? <>They say he made a mint.',
+                'I bought some shoes from a drug dealer.<> I don’t know what he laced them with, but I was tripping all day!',
+                'Why do chicken coops only have two doors?<> Because if they had four, they would be chicken sedans!',
+                'How do you make a Kleenex dance? <>Put a little boogie in it!',
+                'A termite walks into a bar and asks<>"Is the bar tender here?"',
+                'Why did the invisible man turn down the job offer?<> He couldn’t see himself doing it.',
+                'I used to have a job at a calendar factory <>but I got the sack because I took a couple of days off.',
+                'A woman is on trial for beating her husband to death with his guitar collection. Judge says, "First offender?" <>She says, "No, first a Gibson! Then a Fender!”',
+                'How do you make holy water?<> You boil the hell out of it.',
+                'I had a dream that I was a muffler last night.<> I woke up exhausted!',
+                'Did you hear about the circus fire?<> It was in tents!',
+                'Don’t trust atoms.<> They make up everything!',
+                'How many tickles does it take to make an octopus laugh? <>Ten-tickles.',
+                'I’m only familiar with 25 letters in the English language.<> I don’t know why.',
+                'Why did the cow in the pasture get promoted at work?<> Because he is OUT-STANDING in his field!',
+                'What do prisoners use to call each other?<> Cell phones.',
+                'Why couldn’t the bike standup by itself? <>It was two tired.',
+                'Who was the fattest knight at King Arthur’s round table?<> Sir Cumference.',
+                'Did you see they made round bails of hay illegal in Wisconsin? <>It’s because the cows weren’t getting a square meal.',
+                'You know what the loudest pet you can get is?<> A trumpet.',
+                'What do you get when you cross a snowman with a vampire?<> Frostbite.',
+                'What do you call a deer with no eyes?<> No idea!',
+                'Can February March? <>No, but April May!',
+                'What do you call a lonely cheese? <>Provolone.',
+                'Why can’t you hear a pterodactyl go to the bathroom?<> Because the pee is silent.',
+                'What did the buffalo say to his son when he dropped him off at school?<> Bison.',
+                'What do you call someone with no body and no nose? <>Nobody knows.',
+                'You heard of that new band 1023MB? <>They’re good but they haven’t got a gig yet.',
+                'Why did the crab never share?<> Because he’s shellfish.',
+                'How do you get a squirrel to like you? <>Act like a nut.',
+                'Why don’t eggs tell jokes? <>They’d crack each other up.',
+                'Why can’t a nose be 12 inches long? <>Because then it would be a foot.',
+                'Did you hear the rumor about butter? <>Well, I’m not going to spread it!',
+                'I made a pencil with two erasers. <>It was pointless.',
+                'I used to hate facial hair...<>but then it grew on me.',
+                'I decided to sell my vacuum cleaner—<>it was just gathering dust!',
+                'I had a neck brace fitted years ago<> and I’ve never looked back since.',
+                'You know, people say they pick their nose,<> but I feel like I was just born with mine.',
+                'What do you call an elephant that doesn’t matter?<> An irrelephant.',
+                'What do you get from a pampered cow? <>Spoiled milk.',
+                'It’s inappropriate to make a ’dad joke’ if you’re not a dad.<> It’s a faux pa.',
+                'How do lawyers say goodbye? <>Sue ya later!',
+                'Wanna hear a joke about paper? <>Never mind—it’s tearable.',
+                'What’s the best way to watch a fly fishing tournament? <>Live stream.',
+                'I could tell a joke about pizza,<> but it’s a little cheesy.',
+                'When does a joke become a dad joke?<> When it becomes apparent.',
+                'What’s an astronaut’s favorite part of a computer? <>The space bar.',
+                'What did the shy pebble wish for?<>That she was a little boulder.',
+                'I’m tired of following my dreams. <>I’m just going to ask them where they are going and meet up with them later.',
+                'Did you hear about the guy whose whole left side was cut off? <>He’s all right now.',
+                'Why didn’t the skeleton cross the road? <>Because he had no guts.',
+                'What did one nut say as he chased another nut? <> I’m a cashew!',
+                'Chances are if you’ve seen one shopping center...<> you’ve seen a mall.',
+                'I knew I shouldn’t steal a mixer from work...<>but it was a whisk I was willing to take.',
+                'How come the stadium got hot after the game? <>Because all of the fans left.',
+                'Why was it called the dark ages? <>Because of all the knights.',
+                'Why did the tomato blush? <>Because it saw the salad dressing.',
+                'Did you hear the joke about the wandering nun? <>She was a roman catholic.',
+                'What creature is smarter than a talking parrot? <>A spelling bee.',
+                'I’ll tell you what often gets over looked...<> garden fences.',
+                'Why did the kid cross the playground? <>To get to the other slide.',
+                'Why do birds fly south for the winter?<> Because it’s too far to walk.',
+                'What is a centipedes’s favorite Beatle song? <> I want to hold your hand, hand, hand, hand...',
+                'My first time using an elevator was an uplifting experience. <>The second time let me down.',
+                'To be Frank...<> I’d have to change my name.',
+                'Slept like a log last night … <>woke up in the fireplace.',
+                'Why does a Moon-rock taste better than an Earth-rock? <>Because it’s a little meteor.',
+                'How many South Americans does it take to change a lightbulb?<> A Brazilian',
+                'I don’t trust stairs.<> They’re always up to something.',
+                'A police officer caught two kids playing with a firework and a car battery.<> He charged one and let the other one off.',
+                'What is the difference between ignorance and apathy?<>I don’t know and I don’t care.',
+                'I went to a Foo Fighters Concert once... <>It was Everlong...',
+                'Some people eat light bulbs. <>They say it’s a nice light snack.',
+                'What do you get hanging from Apple trees? <> Sore arms.',
+                'Last night me and my girlfriend watched three DVDs back to back.<> Luckily I was the one facing the TV.',
+                'I got a reversible jacket for Christmas,<> I can’t wait to see how it turns out.',
+                'What did Romans use to cut pizza before the rolling cutter was invented? <>Lil Caesars',
+                'My pet mouse ’Elvis’ died last night. <>He was caught in a trap..',
+                'Never take advice from electrons. <>They are always negative.',
+                'Why are oranges the smartest fruit? <>Because they are made to concentrate. ',
+                'What did the beaver say to the tree? <>It’s been nice gnawing you.',
+                'How do you fix a damaged jack-o-lantern?<> You use a pumpkin patch.',
+                'What did the late tomato say to the early tomato? <>I’ll ketch up',
+                'I have kleptomania...<>when it gets bad, I take something for it.',
+                'I used to be addicted to soap...<> but I’m clean now.',
+                'When is a door not a door?<> When it’s ajar.',
+                'I made a belt out of watches once...<> It was a waist of time.',
+                'This furniture store keeps emailing me,<> all I wanted was one night stand!',
+                'How do you find Will Smith in the snow?<>  Look for fresh prints.',
+                'I just read a book about Stockholm syndrome.<> It was pretty bad at first, but by the end I liked it.',
+                'Why do trees seem suspicious on sunny days? <>Dunno, they’re just a bit shady.',
+                'If at first you don’t succeed<> sky diving is not for you!',
+                'What kind of music do mummy’s like?<>Rap',
+                'A book just fell on my head. <>I only have my shelf to blame.',
+                'What did the dog say to the two trees? <>Bark bark.',
+                'If a child refuses to sleep during nap time...<> are they guilty of resisting a rest?',
+                'Have you ever heard of a music group called Cellophane?<> They mostly wrap.',
+                'What did the mountain climber name his son?<>Cliff.',
+                'Why should you never trust a pig with a secret?<> Because it’s bound to squeal.',
+                'Why are mummys scared of vacation?<> They’re afraid to unwind.',
+                'Whiteboards ...<> are remarkable.',
+                'What kind of dinosaur loves to sleep?<>A stega-snore-us.',
+                'What kind of tree fits in your hand?<> A palm tree!',
+                'I used to be addicted to the hokey pokey<> but I turned myself around.',
+                'How many tickles does it take to tickle an octopus?<> Ten-tickles!',
+                'What musical instrument is found in the bathroom?<> A tuba toothpaste.',
+                'My boss told me to attach two pieces of wood together... <>I totally nailed it!',
+                'What was the pumpkin’s favorite sport?<>Squash.',
+                'What do you call corn that joins the army?<> Kernel.',
+                'I’ve been trying to come up with a dad joke about momentum <>but I just can’t seem to get it going.',
+                'Why don’t sharks eat clowns? <> Because they taste funny.',
+                'Just read a few facts about frogs.<> They were ribbiting.',
+                'Why didn’t the melons get married?<>Because they cantaloupe.',
+                'What’s a computer’s favorite snack?<>Microchips!',
+                'Why was the robot so tired after his road trip?<>He had a hard drive.',
+                'Why did the computer have no money left?<>Someone cleaned out its cache!',
+                'I’m not anti-social. <>I’m just not user friendly.',
+                'Why did the computer get cold?<>Because it forgot to close windows.',
+                'What is an astronaut’s favorite key on a keyboard?<>The space bar!',
+                'What’s the difference between a computer salesman and a used-car salesman?<>The used-car salesman KNOWS when he’s lying.',
+                'If at first you don’t succeed...<> call it version 1.0',
+                'Why did Microsoft PowerPoint cross the road?<>To get to the other slide!',
+                'What did the computer do at lunchtime?<>Had a byte!',
+                'Why did the computer keep sneezing?<>It had a virus!',
+                'What did one toilet say to the other?<>You look a bit flushed.',
+                'Why did the picture go to jail?<>Because it was framed.',
+                'What did one wall say to the other wall?<>I’ll meet you at the corner.',
+                'What do you call a boy named Lee that no one talks to?<>Lonely',
+                'Why do bicycles fall over?<>Because they are two-tired!',
+                'Why was the broom late?<>It over swept!',
+                'What part of the car is the laziest?<>The wheels, because they are always tired!',
+                'What’s the difference between a TV and a newspaper?<>Ever tried swatting a fly with a TV?',
+                'What did one elevator say to the other elevator?<>I think I’m coming down with something!',
+                'Why was the belt arrested?<>Because it held up some pants!',
+                'What makes the calendar seem so popular?<>Because it has a lot of dates!',
+                'Why did Mickey Mouse take a trip into space?He wanted to find Pluto!',
+                'Why do you go to bed every night?<>Because the bed won’t come to you!',
+                'What has four wheels and flies?<>A garbage truck!',
+                'Why did the robber take a bath before he stole from the bank?<>He wanted to make a clean get away!',
+                'Just watched a documentary about beavers.<>It was the best damn program I’ve ever seen.',
+                'Slept like a log last night<>woke up in the fireplace.',
+                'Why did the scarecrow win an award?<>Because he was outstanding in his field.',
+                'Why does a chicken coop only have two doors? <>Because if it had four doors it would be a chicken sedan.',
+                'What’s the difference between an African elephant and an Indian elephant? <>About 5000 miles',
+                'Why did the coffee file a police report? <>It got mugged.',
+                'What did the grape do when he got stepped on? <>He let out a little wine.',
+                'How many apples grow on a tree? <>All of them.',
+                'What name do you give a person with a rubber toe? <>Roberto',
+                'Did you hear about the kidnapping at school? <>It’s fine, he woke up.',
+                'Why do scuba divers fall backwards into the water? <>Because if they fell forwards they’d still be in the boat.',
+                'How does a penguin build it’s house? <>Igloos it together.',
+                'What do you call a man with a rubber toe?<>Roberto',
+                'Did you hear about the restaurant on the moon?<>Great food, no atmosphere.',
+                'Why was the belt sent to jail?<>For holding up a pair of pants!',
+                'Did you hear about the scientist who was lab partners with a pot of boiling water?<>He had a very esteemed colleague.',
+                'What happens when a frogs car dies?<>He needs a jump. If that doesn’t work he has to get it toad.',
+                'What did the flowers do when the bride walked down the aisle?<>They rose.',
+                'Why did the man fall down the well?<>Because he couldn’t see that well.',
+                'My boss told me to have a good day...<>...so I went home.',
+                'How can you tell it’s a dogwood tree?<>By the bark.',
+                'Did you hear about the kidnapping at school?<>It’s fine, he woke up.',
+                'Why is Peter Pan always flying?<>Because he Neverlands.',
+                'Which state has the most streets?<>Rhode Island.',
+                'What do you call 26 letters that went for a swim?<>Alphawetical.',
+                'Why was the color green notoriously single?<>It was always so jaded.',
+                'Why did the coach go to the bank?<>To get his quarterback.',
+                'How do celebrities stay cool?<>They have many fans.',
+                'What’s the most depressing day of the week?<>sadder day.',
+                'Dogs can’t operate MRI machines<>But catscan.',
+                'I was going to tell a time-traveling joke<>but you guys didn’t like it.',
+                'Stop looking for the perfect match<>instead look for a lighter.',
+                'I told my doctor I heard buzzing<>but he said it’s just a bug going around.',
+                'What kind of car does a sheep like to drive?<>A lamborghini.',
+                'What did the accountant say while auditing a document?<>This is taxing.',
+                'What did the two pieces of bread say on their wedding day?<>It was loaf at first sight.',
+                'Why do melons have weddings?<>Because they cantaloupe.',
+                'What did the drummer call his twin daughters?<>Anna One, Anna Two!',
+                'What do you call a toothless bear?<> A gummy bear!',
+                'Two goldfish are in a tank. <>One says to the other, “Do you know how to drive this thing?”',
+                'What’s Forrest Gump’s password?<>1forrest1',
+                'What is a child guilty of if they refuse to nap?<> Resisting a rest.',
+                'I know a lot of jokes about retired people<>but none of them work.',
+                'Why are spiders so smart?<>They can find everything on the web.',
+                'What has one head, one foot, and four legs?<> A bed.',
+                'What does a house wear?<> Address.',
+                'What’s red and smells like blue paint?<>Red paint.',
+                'My son asked me to put his shoes on<> but I don’t think they’ll fit me.',
+                'I’ve been bored recently, so I decided to take up fencing.<> The neighbors keep demanding that I put it back.',
+                'What do you call an unpredictable camera?<>A loose Canon.',
+                'Which U.S. state is known for its especially small soft drinks?<>Minnesota.',
+                'What do sprinters eat before a race?<> Nothing—they fast.',
+                'I’m so good at sleeping...<>I can do it with my eyes closed.',
+                'People are usually shocked that I have a Police record.<>But I love their greatest hits!',
+                'I told my girlfriend she drew on her eyebrows too high.<> She seemed surprised.',
+                'What do you call a fibbing cat?<> A lion.',
+                'Why shouldn’t you write with a broken pencil?<> Because it’s pointless.',
+                'I like telling Dad jokes…<>sometimes he laughs.',
+                'How do you weigh a millennial?<> In Instagrams.',
+                'The wedding was so beautiful<>even the cake was in tiers.',
+                'What’s the most patriotic sport?<> Flag football.',
+            ];
+
+            // answer
+            var unknownCommand = false;
+            if (TechwaveUserMessageCount === 1) {
+                botText = welcomeText;
+            } else {
+                if (TechwaveUserQuestion.slice(0, 1) === '/') {
+                    var question = TechwaveUserQuestion.substring(1);
+                    var regex = /pass \d/i;
+                    var countpass = 15;
+                    if (regex.test(question)) {
+                        countpass = question.split(' ')[1];
+                        question = 'pass';
+                    }
+                    regex = /joke \d/i;
+                    var countjoke = 1;
+                    if (regex.test(question)) {
+                        countjoke = question.split(' ')[1];
+                        question = 'joke';
+                    }
+                    if (allCommands.hasOwnProperty(question)) {
+                        var allOptions = allCommands[question];
+                        var type = allOptions.type;
+                        if (type === 'text') {
+                            botText = allOptions.text;
+                        } else if (type === 'url') {
+                            window.location.href = allOptions.url;
+                        } else if (type === 'password') {
+                            var possible = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789![]{}()%&*$#^<>~@|';
+                            var password = '';
+                            if (countpass > 1000) {
+                                botText += '<p>I don\'t think that you want to get this password. Maximum password characters are: 1000.</p><p>Your password with 1000 characters:</p>';
+                                countpass = 1000;
+                            }
+                            for (var i = 0; i < countpass; i++) {
+                                password += possible.charAt(Math.floor(Math.random() * possible.length));
+                            }
+                            password = FrenifyTechWave.escapeHTML(password);
+                            botText += '<frenify_uselect>' + password + '</frenify_uselect>';
+                        } else if (type === 'time') {
+                            var dt = new Date();
+                            var hh = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();
+                            var mm = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();
+                            var ss = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();
+                            botText = hh + ":" + mm + ":" + ss;
+                        } else if (type === 'clear') {
+                            $('.fn__chatbot .chat__item.active').html('');
+                        } else if (type === 'joke') {
+                            if (countjoke > 1) {
+                                var shuffled = FrenifyTechWave.shuffleArray(allJokes);
+                                var selected = shuffled.slice(0, countjoke);
+                                botText = '<ul>';
+                                if (countjoke >= 1 && countjoke <= allJokes.length) {
+                                    for (var j = 0; j < countjoke; j++) {
+                                        botText += '<li>' + selected[j] + '</li>';
+                                    }
+                                }
+                                botText += '</ul>';
+                            } else {
+                                botText = allJokes[Math.floor(Math.random() * allJokes.length)];
+                            }
+
+
+                        } else if (type === 'commands') {
+                            botText = commands;
+                        }
+                        append = allOptions.append;
+                    } else {
+                        unknownCommand = true;
+                    }
+                } else {
+                    unknownCommand = true;
+                }
+            }
+            if (unknownCommand) {
+                botText = '<p>I only understand some commands. Of course, this is a fixable problem. Buy this template and implement AI and that\'s it. Go to the template site where you can buy? Visit item\'s website: <a href="https://themeforest.net/user/frenify/portfolio" target="_blank">TechWave</a></p><p>Write <frenify_main>/commands</frenify_main> to list all available commands.';
+            }
+
+
+            // answer to question
+            if (append) {
+                $('.fn__chat_comment button').addClass('disabled');
+                setTimeout(function() {
+                    $('.fn__chatbot .chat__item.active').append('<div class="chat__box bot__chat"><div class="author"><span>Frenify Bot</span></div><div class="chat"><frenify_typing><h3><span>Typing...</frenify></h3></div></div>');
+                    if ($('.techwave_fn_intro').length) {
+                        $("html, body").animate({
+                            scrollTop: $('#fn__chat_textarea').offset().top - $(window).height() + 100
+                        });
+                    } else {
+                        $("html, body").animate({
+                            scrollTop: $(document).height() - $(window).height()
+                        });
+                    }
+                }, 100);
+                setTimeout(function() {
+                    $('.fn__chatbot .chat__item.active .chat__box.bot__chat:last-child .chat').html(botText);
+                    $('.fn__chat_comment button').removeClass('disabled');
+                    if ($('.techwave_fn_intro').length) {
+                        $("html, body").animate({
+                            scrollTop: $('#fn__chat_textarea').offset().top - $(window).height() + 100
+                        });
+                    } else {
+                        $("html, body").animate({
+                            scrollTop: $(document).height() - $(window).height()
+                        });
+                    }
+                }, 2000);
+            }
+        },
+
+        shuffleArray: function(array) {
+            var currentIndex = array.length,
+                randomIndex;
+            while (currentIndex !== 0) {
+                randomIndex = Math.floor(Math.random() * currentIndex);
+                currentIndex--;
+                [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
+            }
+
+            return array;
+        },
+
+        escapeHTML: function(string) {
+            var entityMap = {
+                '&': '&amp;',
+                '<': '&lt;',
+                '>': '&gt;',
+                '"': '&quot;',
+                "'": '&#39;',
+                '/': '&#x2F;',
+                '`': '&#x60;',
+                '=': '&#x3D;'
+            };
+            return String(string).replace(/[&<>"'`=\/]/g, function(s) {
+                return entityMap[s];
+            });
+        },
+
+        aiChatBotOptions: function() {
+            $('.fn__chat_link').off().on('click', function() {
+                var element = $(this);
+                if (!element.hasClass('active')) {
+                    $('.fn__chat_link.active').removeClass('active');
+                    $('.fn__chatbot .chat__item.active').removeClass('active');
+                    element.addClass('active');
+                    $(element.attr('href')).addClass('active');
+                    TechwaveUserMessageCount = $(element.attr('href')).find('.chat__box').length;
+                    $('.fn__new_chat_link').removeClass('active');
+                    $('.fn__chat_comment').removeClass('neww');
+                    $('.fn__chatbot .fn__title_holder .title').text(element.find('.text').text());
+                    if ($(element.attr('href')).html() === '') {
+                        $('.fn__chat_comment').addClass('neww');
+                    }
+                }
+                $('#fn__chat_textarea').frenifyMoveCursorToEnd();
+                return false;
+            });
+            $('.fn__new_chat_link').off().on('click', function() {
+                var element = $(this);
+                if (!element.hasClass('active')) {
+                    $('.fn__chat_link.active').removeClass('active');
+                    $('.fn__chatbot .chat__item.active').removeClass('active');
+                    element.addClass('active');
+                    $(element.attr('href')).addClass('active');
+                    TechwaveUserMessageCount = 0;
+                    $('.fn__chatbot .fn__title_holder .title').text('New Chat');
+                }
+                $('.fn__chat_comment').addClass('neww');
+                $('#fn__chat_textarea').frenifyMoveCursorToEnd();
+                return false;
+            });
+            $('.fn__chat_link input').off().on('click', function(e) {
+                e.stopPropagation();
+            });
+            $('.fn__chat_link .trigger').off().on('click', function() {
+                var element = $(this),
+                    parent = element.closest('.fn__chat_link');
+                if (parent.hasClass('opened')) {
+                    parent.removeClass('opened');
+                } else {
+                    parent.addClass('opened');
+                }
+                return false;
+            });
+
+            $('.fn__chat_link .edit').off().on('click', function() {
+                var element = $(this),
+                    parent = element.closest('.fn__chat_link'),
+                    input = parent.find('input');
+                parent.addClass('live_edit').removeClass('opened');
+                TechwaveInputText = input.val();
+                setTimeout(function() {
+                    input.frenifyMoveCursorToEnd();
+                }, 100);
+                return false;
+            });
+
+            $('.fn__chat_link .cancel').off().on('click', function() {
+                var e = $(this),
+                    parent = e.closest('.fn__chat_link'),
+                    input = parent.find('input');
+                parent.removeClass('live_edit');
+                input.val(TechwaveInputText);
+                return false;
+            });
+
+            $('.fn__chat_link .save').off().on('click', function() {
+                var e = $(this),
+                    parent = e.closest('.fn__chat_link'),
+                    input = parent.find('input');
+                // do your ajax here
+                parent.removeClass('live_edit');
+                TechwaveInputText = input.val();
+                parent.find('.text').text(TechwaveInputText);
+                return false;
+            });
+
+            $(window).on('click', function() {
+                $('.fn__chat_link').removeClass('opened');
+            });
+
+            $('.fn__chat_link .options__popup').on('click', function(e) {
+                e.stopPropagation();
+            });
+        },
+
+        aiChatBotTextareaHeight: function() {
+            $('#fn__chat_textarea').on('mouseup keyup', function() {
+                var e = $(this);
+                var val = e.val();
+                var padding = 34; // top 18 and bottom 16
+                var border = 4; // top 2 and bottom 2
+                var taLineHeight = 22; // This should match the line-height in the CSS
+                var e2 = e.siblings('.fn__hidden_textarea');
+                e2.val(val);
+                var taHeight2 = e2[0].scrollHeight - padding; // Get the scroll height of the textarea
+                var numberOfLines2 = Math.floor(taHeight2 / taLineHeight);
+                e.css({
+                    height: numberOfLines2 * taLineHeight + padding + border
+                });
+                if (numberOfLines2 > 6) {
+                    e.css({
+                        overflowY: 'auto'
+                    });
+                } else {
+                    e.css({
+                        overflowY: 'hidden'
+                    });
+                }
+            });
+            $('#fn__include_textarea').on('mouseup keyup', function() {
+                var e = $(this);
+                var val = e.val();
+                var padding = 34; // top 18 and bottom 16
+                var border = 4; // top 2 and bottom 2
+                var taLineHeight = 22; // This should match the line-height in the CSS
+                var e2 = e.siblings('.fn__hidden_textarea');
+                e2.val(val);
+                var taHeight2 = e2[0].scrollHeight - padding; // Get the scroll height of the textarea
+                var numberOfLines2 = Math.floor(taHeight2 / taLineHeight);
+                e.css({
+                    height: numberOfLines2 * taLineHeight + padding + border
+                });
+                if (numberOfLines2 > 6) {
+                    e.css({
+                        overflowY: 'auto'
+                    });
+                } else {
+                    e.css({
+                        overflowY: 'hidden'
+                    });
+                }
+            });
+            $('#fn__exclude_textarea').on('mouseup keyup', function() {
+                var e = $(this);
+                var val = e.val();
+                var padding = 34; // top 18 and bottom 16
+                var border = 4; // top 2 and bottom 2
+                var taLineHeight = 22; // This should match the line-height in the CSS
+                var e2 = e.siblings('.fn__hidden_textarea');
+                e2.val(val);
+                var taHeight2 = e2[0].scrollHeight - padding; // Get the scroll height of the textarea
+                var numberOfLines2 = Math.floor(taHeight2 / taLineHeight);
+                e.css({
+                    height: numberOfLines2 * taLineHeight + padding + border
+                });
+                if (numberOfLines2 > 6) {
+                    e.css({
+                        overflowY: 'auto'
+                    });
+                } else {
+                    e.css({
+                        overflowY: 'hidden'
+                    });
+                }
+            });
+        },
+
+        billingProgress: function() {
+            $('.techwave_fn_user_billing .progress').each(function() {
+                var element = $(this);
+                element.waypoint({
+                    handler: function() {
+                        if (!element.hasClass('active')) {
+                            setTimeout(function() {
+                                element.css('--frenify-progress', element.data('percentage'));
+                                element.addClass('active');
+                            }, 500);
+
+                        }
+                    },
+                    offset: '90%'
+                });
+            });
+        },
+
+        inputFileOnChange: function() {
+            $('.fn__upload').on("change", function(event) {
+                var element = $(this);
+                var file = event.target.files[0];
+                if (file) {
+                    element.addClass('has_img').find('.preview_img').attr('src', URL.createObjectURL(file));
+                }
+            });
+            $('.fn__upload .fn__closer').on('click', function() {
+                var parent = $(this).closest('.fn__upload');
+                parent.removeClass('has_img');
+                parent.find('.preview_img').attr('src', '#');
+                parent.find('input[type="file]').val('');
+                return false;
+            });
+        },
+
+        optionsList: function() {
+            $('.fn__options_list a').off().on('click', function() {
+                var e = $(this);
+                if (e.hasClass('enabled')) {
+                    e.removeClass('enabled').addClass('disabled');
+                } else {
+                    e.removeClass('disabled').addClass('enabled');
+                }
+
+                // do your ajax here
+                // ....
+                // ....
+
+                return false;
+            });
+        },
+
+        pricingTab: function() {
+            $('.techwave_fn_pricing .toggle_in').each(function() {
+                var element = $(this),
+                    active = element.find('.active');
+                var offset = active.offset().left - element.offset().left;
+                element.find('.bg').css({
+                    left: offset,
+                    width: active.outerWidth(true, true)
+                });
+            });
+            $('.techwave_fn_pricing .toggle_in a').off().on('click', function() {
+                var element = $(this);
+                if (!element.hasClass('active')) {
+                    var parent = element.closest('.toggle_in');
+                    var pricing = element.closest('.techwave_fn_pricing');
+                    var offset = element.offset().left - parent.offset().left;
+                    pricing.find('.pricing__tab.active').removeClass('active');
+                    $(element.attr('href')).addClass('active');
+                    element.siblings().removeClass('active');
+                    element.addClass('active');
+                    parent.find('.bg').css({
+                        left: offset,
+                        width: element.outerWidth(true, true)
+                    });
+                }
+                return false;
+            });
+        },
+
+        feedFilters: function() {
+
+            // Enable/disable selecting items
+            $('.techwave_fn_feed .filter__select input[type="checkbox"]').change(function() {
+                var element = $(this);
+                var checked = element.is(':checked');
+                var feed = element.closest('.techwave_fn_feed');
+                var items = feed.find('.fn__gallery_items .item');
+                if (checked) {
+                    items.addClass('select__ready');
+                    feed.find('.fn__selection_box').slideDown(200);
+                } else {
+                    items.removeClass('select__ready');
+                    feed.find('.fn__selection_box').slideUp(200);
+                }
+            });
+
+            // select/deselect items
+            $('.fn__selectable_item').off().on('click', function() {
+                var element = $(this),
+                    page = element.closest('.techwave_fn_community_page'),
+                    items = page.find('.fn__gallery_items .item');
+                if (element.hasClass('selected')) {
+                    element.removeClass('selected');
+                    TechwaveSelectedCount--;
+                } else {
+                    element.addClass('selected');
+                    TechwaveSelectedCount++;
+                }
+                page.find('.fn__selection_box .count').text(TechwaveSelectedCount);
+                return false;
+            });
+
+
+            // tab filter
+            $('.techwave_fn_feed .fn__tabs a').on('click', function() {
+                var element = $(this);
+                if (!element.hasClass('active') && !TechwaveFeedFilterLoading) {
+                    TechwaveFeedFilterLoading = true;
+                    element.siblings().removeClass('active');
+                    element.addClass('active');
+                    var feed = element.closest('.techwave_fn_feed');
+                    feed.find('.feed__results').addClass('loading');
+
+                    // do your ajax here
+                    // you have to get new feeds with filter (if you want to change also filter) of selected tab via ajax
+                    // ....
+                    // ....
+                    // after ajax ends remove setTimeout (it was added just for HTML)
+
+                    setTimeout(function() {
+                        // here you have to insert your feeds into the filter's content and feed content
+                        feed.find('.feed__results').removeClass('loading');
+                        TechwaveFeedFilterLoading = false;
+                        FrenifyTechWave.galleryIsotope();
+                    }, 1500);
+
+                }
+                return false;
+            });
+
+            // Trending&New Filter
+            $('.techwave_fn_feed .filter__sorting a').on('click', function() {
+                var element = $(this);
+                if (!element.hasClass('enabled') && !TechwaveFeedFilterLoading) {
+                    TechwaveFeedFilterLoading = true;
+                    element.siblings().removeClass('enabled').addClass('disabled');
+                    element.removeClass('disabled').addClass('enabled');
+                    var feed = element.closest('.techwave_fn_feed');
+                    feed.find('.feed__results').addClass('loading');
+
+                    // do your ajax here
+                    // you have to get new feeds by trending or new (selected) via ajax
+                    // ....
+                    // ....
+                    // after ajax ends remove setTimeout (it was added just for HTML)
+
+                    setTimeout(function() {
+                        // here you have to insert new feeds into the results' content
+                        feed.find('.feed__results').removeClass('loading');
+                        TechwaveFeedFilterLoading = false;
+                    }, 1500);
+                }
+
+
+                return false;
+            });
+
+
+            // Upscaled Filter
+            $('.techwave_fn_feed .filter__upscaled input[type="checkbox"]').change(function() {
+                var element = $(this);
+                var checked = element.is(':checked');
+                var feed = element.closest('.techwave_fn_feed');
+                feed.find('.feed__results').addClass('loading');
+
+
+                // do your ajax here
+                // you have to get new feeds by checked value via ajax
+                // ....
+                // ....
+                // after ajax ends remove setTimeout (it was added just for HTML)
+
+
+                setTimeout(function() {
+                    // here you have to insert new feeds into the results' content
+                    feed.find('.feed__results').removeClass('loading');
+                }, 1500);
+            });
+
+            // search filter
+            $('.techwave_fn_feed .filter__search a').on('click', function() {
+                if (!TechwaveFeedFilterLoading) {
+                    var feed = $(this).closest('.techwave_fn_feed');
+                    feed.find('.feed__results').addClass('loading');
+
+                    // do your ajax here
+                    // you have to get new feeds by search word via ajax
+                    // ....
+                    // ....
+                    // after ajax ends remove setTimeout (it was added just for HTML)
+
+                    setTimeout(function() {
+                        // here you have to insert new feeds into the results' content
+                        feed.find('.feed__results').removeClass('loading');
+                        TechwaveFeedFilterLoading = false;
+                    }, 1500);
+                }
+
+                return false;
+            });
+        },
+
+        report: function() {
+            var reportbox = $('.techwave_fn_report');
+            $('.fn__report').off().on('click', function() {
+                var e = $(this),
+                    id = e.data('id');
+
+                if (reportbox.hasClass('opened')) {
+                    reportbox.removeClass('opened');
+                } else {
+                    reportbox.addClass('opened');
+                }
+                return false;
+            });
+
+
+            reportbox.find('.cancel').off().on('click', function() {
+                reportbox.removeClass('opened');
+                return false;
+            });
+            reportbox.find('.fn__closer').off().on('click', function() {
+                reportbox.removeClass('opened');
+                return false;
+            });
+            reportbox.find('.report__closer').off().on('click', function() {
+                reportbox.removeClass('opened');
+                return false;
+            });
+        },
+
+        follow: function() {
+            $('.fn__follow').off().on('click', function() {
+                var e = $(this),
+                    text = e.find('.text'),
+                    id = e.data('id');
+                if (e.hasClass('has__follow')) {
+                    e.removeClass('has__follow');
+                    text.text(e.data('follow-text'));
+                } else {
+                    e.addClass('has__follow');
+                    text.text(e.data('unfollow-text'));
+                }
+                return false;
+            });
+        },
+
+        copyLink: function() {
+            $(".fn__copy").off().on("click", function() {
+                var e = $(this);
+                var text = e.text();
+                var copied = e.data("copied");
+                var copy2 = e.attr("data-text");
+                var copy = e.attr("href");
+                if (typeof copy2 !== 'undefined' && copy2 !== false) {
+                    copy = copy2;
+                }
+                var temp = $("<input>");
+                $("body").append(temp);
+                temp.val(copy).select();
+                document.execCommand("copy");
+                temp.remove();
+                e.text(copied).delay(1000).queue(function(nxt) {
+                    e.text(text);
+                    nxt();
+                });
+                return false;
+            });
+        },
+
+        galleryIsotope: function() {
+
+            var masonry = $('.fn__gallery_items');
+            if ($().isotope) {
+                masonry.each(function() {
+                    $(this).isotope({
+                        percentPosition: true,
+                        itemSelector: '.fn__gallery_item',
+                        masonry: {}
+                    });
+                });
+            }
+        },
+
+        imageLightbox: function() {
+            var body = $('body');
+            var scrollY = 0;
+            $('.fn__gallery_items .item').off().on('click', function() {
+                var element = $(this),
+                    id = element.data('id');
+                if (!element.hasClass('select__ready')) {
+                    lightbox.scrollTop(0);
+                    // with this id you can create ajax to call this image into the lightbox
+                    scrollY = document.documentElement.style.getPropertyValue('--techwave-scroll-y');
+                    body.css({
+                        position: 'fixed',
+                        top: scrollY
+                    });
+
+                    body.addClass('fn__lightbox_mode');
+                    lightbox.addClass('opened');
+                }
+
+
+
+                return false;
+            });
+            var lightbox = $('.techwave_fn_img_lightbox');
+
+            lightbox.find('.fn__closer').off().on('click', function() {
+                body.removeClass('fn__lightbox_mode');
+                lightbox.removeClass('opened');
+                body.css({
+                    position: 'relative',
+                    top: ''
+                });
+                setTimeout(function() {
+                    window.scrollTo({
+                        top: 300,
+                        left: 0,
+                        behavior: "instant"
+                    });
+                    FrenifyTechWave.galleryIsotope();
+                }, 1);
+            });
+        },
+
+        bookmark: function() {
+            $('.fn__bookmark').off().on('click', function() {
+                var e = $(this);
+                if (e.hasClass('has__bookmark')) {
+                    e.removeClass('has__bookmark');
+                } else {
+                    e.addClass('has__bookmark');
+                }
+                // do your ajax here
+                return false;
+            });
+        },
+
+        like: function() {
+            $('.fn__like').off().on('click', function() {
+                var e = $(this),
+                    countbox = e.find('.count'),
+                    id = e.data('id');
+                if (e.hasClass('has__like')) {
+                    e.removeClass('has__like');
+                    countbox.text(parseInt(countbox.text()) - 1);
+                } else {
+                    e.addClass('has__like');
+                    countbox.text(parseInt(countbox.text()) + 1);
+                }
+                // do your ajax here
+                return false;
+            });
+        },
+
+        accordion: function() {
+            $('.techwave_fn_accordion').each(function() {
+                $(this).find('.opened .acc__content').slideDown(300);
+            });
+            $('.techwave_fn_accordion .acc__header').on('click', function() {
+                var element = $(this),
+                    parent = element.closest('.acc__item'),
+                    accordion = element.closest('.techwave_fn_accordion'),
+                    content = parent.find('.acc__content'),
+                    type = accordion.data('type');
+                if (parent.hasClass('opened')) {
+                    parent.removeClass('opened');
+                    content.slideUp(300);
+                } else {
+                    if (type === 'accordion') {
+                        accordion.find('.acc__item').removeClass('opened');
+                        accordion.find('.acc__content').slideUp(300);
+                    }
+                    parent.addClass('opened');
+                    content.slideDown(300);
+                }
+            });
+        },
+
+        search: function() {
+            var searchBar = $('.techwave_fn_searchbar');
+            var input = searchBar.find('.search__input');
+            var resultsBar = searchBar.find('.search__results');
+            var searchOpener = $('.fn__nav_bar .bar__item_search .item_opener');
+
+            // open searchbar
+            searchOpener.on('click', function() {
+                searchBar.addClass('opened');
+                setTimeout(function() {
+                    input[0].focus();
+                }, 100);
+
+                return false;
+            });
+
+            // close searchbar
+            searchBar.find('.search__closer').on('click', function() {
+                input.val('');
+                resultsBar.removeClass('opened');
+                searchBar.removeClass('opened');
+                return false;
+            });
+
+
+            // search something
+            var timeout = null;
+            input.on('keyup', function() {
+                var field = $(this);
+                var text = field.val();
+
+                clearTimeout(timeout);
+
+                timeout = setTimeout(function() {
+                    if (text === '') {
+                        resultsBar.removeClass('opened');
+                    } else {
+                        resultsBar.addClass('opened');
+                        // add your ajax code here
+                    }
+                }, 700);
+            });
+        },
+
+        animatedText: function() {
+            $('.fn__animated_text').each(function() {
+                var element = $(this);
+                var text = element.text();
+                var letters = text.split('');
+                var time = element.data('wait');
+                if (!time) {
+                    time = 0;
+                }
+                var speed = element.data('speed');
+                if (!speed) {
+                    speed = 4;
+                }
+                speed = speed / 100;
+                element.html('<em>321...</em>').addClass('ready');
+
+                element.waypoint({
+                    handler: function() {
+                        if (!element.hasClass('stop')) {
+                            element.addClass('stop');
+                            setTimeout(function() {
+                                element.text('');
+                                $.each(letters, function(e, i) {
+                                    var span = document.createElement("span");
+                                    span.textContent = i;
+                                    span.style.animationDelay = e * speed + 's';
+                                    element.append(span);
+                                });
+                            }, time);
+                        }
+                    },
+                    offset: '90%'
+                });
+
+            });
+        },
+
+        movingSubMenuForLeftPanel: function() {
+            var fixedsub = $('.techwave_fn_fixedsub');
+            var li = $('.techwave_fn_leftpanel .group__list > li');
+            var rightpart = $('.techwave_fn_content');
+
+
+
+            li.on('mouseenter', function() {
+                var parentLi = $(this);
+                var subMenu = parentLi.children('ul.sub-menu');
+                var subMenuHtml = subMenu.html();
+                //parentLi;
+                if (subMenu.length) {
+                    li.removeClass('hovered');
+                    parentLi.addClass('hovered').parent().addClass('hovered');
+                    fixedsub.removeClass('opened').children('ul').html('').html(subMenuHtml);
+                    fixedsub.addClass('opened');
+                } else {
+                    li.removeClass('hovered');
+                    fixedsub.removeClass('opened');
+                    parentLi.removeClass('hovered').parent().removeClass('hovered');
+                }
+                var topOffSet = parentLi.offset().top;
+                var menuBar = $('.techwave_fn_leftpanel .leftpanel_content');
+                var menuBarOffSet = menuBar.offset().top;
+                var asd = topOffSet - menuBarOffSet;
+
+                fixedsub.css({
+                    top: asd
+                });
+                abc();
+            });
+
+            function abc() {
+                rightpart.on('mouseenter', function() {
+                    fixedsub.removeClass('opened');
+                    li.removeClass('hovered').parent().removeClass('hovered');
+                });
+            }
+            abc();
+        },
+
+        panelResize: function() {
+            var wrapper = $('html');
+            $('.techwave_fn_leftpanel .desktop_closer').off().on('click', function() {
+                if (wrapper.hasClass('panel-opened')) {
+                    wrapper.removeClass('panel-opened');
+                    localStorage.frenify_panel = '';
+                } else {
+                    wrapper.addClass('panel-opened');
+                    localStorage.frenify_panel = 'panel-opened';
+                }
+                return false;
+            });
+            $('.techwave_fn_leftpanel .mobile_closer').off().on('click', function() {
+                if (wrapper.hasClass('mobile-panel-opened')) {
+                    wrapper.removeClass('mobile-panel-opened');
+                } else {
+                    wrapper.addClass('mobile-panel-opened');
+                }
+                return false;
+            });
+        },
+
+        navBarItems: function() {
+
+            // user details
+            var userItem = $('.fn__nav_bar .bar__item_user');
+            userItem.find('.user_opener').on('click', function(e) {
+                e.stopPropagation();
+                if (userItem.hasClass('opened')) {
+                    userItem.removeClass('opened');
+                } else {
+                    userItem.addClass('opened');
+                }
+                // close lightboxes
+                $('.bar__item_language,.bar__item_notification').removeClass('opened');
+                return false;
+            });
+
+            userItem.on('click', function(e) {
+                e.stopPropagation();
+            });
+
+            $(window).on('click', function() {
+                userItem.removeClass('opened');
+            });
+
+            // light and dark mode
+            var darklightSwitcher = $('.fn__nav_bar .bar__item_skin .item_opener');
+            darklightSwitcher.off().on('click', function() {
+                if ($('html').attr('data-techwave-skin') === 'light') {
+                    $('html').attr('data-techwave-skin', 'dark');
+                    localStorage.frenify_skin = 'dark';
+                } else {
+                    $('html').attr('data-techwave-skin', 'light');
+                    localStorage.frenify_skin = 'light';
+                }
+
+                // close lightboxes
+                $('.bar__item_user,.bar__item_language,.bar__item_notification').removeClass('opened');
+                return false;
+            });
+
+            // language
+            var languageItem = $('.fn__nav_bar .bar__item_language');
+            languageItem.find('.item_opener').on('click', function(e) {
+                e.stopPropagation();
+                if (languageItem.hasClass('opened')) {
+                    languageItem.removeClass('opened');
+                } else {
+                    languageItem.addClass('opened');
+                }
+                // close lightboxes
+                $('.bar__item_user,.bar__item_notification').removeClass('opened');
+                return false;
+            });
+
+            languageItem.on('click', function(e) {
+                e.stopPropagation();
+            });
+
+            $(window).on('click', function() {
+                languageItem.removeClass('opened');
+            });
+
+            // notifications
+            var notificationItem = $('.fn__nav_bar .bar__item_notification');
+            notificationItem.find('.item_opener').on('click', function(e) {
+                e.stopPropagation();
+                if (notificationItem.hasClass('opened')) {
+                    notificationItem.removeClass('opened');
+                } else {
+                    notificationItem.addClass('opened');
+                }
+                // close lightboxes
+                $('.bar__item_user,.bar__item_language').removeClass('opened');
+                return false;
+            });
+
+            notificationItem.on('click', function(e) {
+                e.stopPropagation();
+            });
+
+            $(window).on('click', function() {
+                notificationItem.removeClass('opened');
+            });
+        },
+
+        redetectFullScreen: function() {
+            var fbtn = $('.fn__nav_bar .bar__item_fullscreen a');
+            if (window.innerHeight === screen.height) {
+                fbtn.addClass('full_screen');
+            } else {
+                fbtn.removeClass('full_screen');
+            }
+        },
+
+        fullSCreen: function() {
+            var fbtn = $('.fn__nav_bar .bar__item_fullscreen a');
+
+            fbtn.off().on('click', function() {
+                if (fbtn.hasClass('full_screen')) {
+                    fbtn.removeClass('full_screen');
+                    if (document.exitFullscreen) {
+                        document.exitFullscreen();
+                    } else if (document.msExitFullscreen) {
+                        document.msExitFullscreen();
+                    } else if (document.mozCancelFullScreen) {
+                        document.mozCancelFullScreen();
+                    } else if (document.webkitExitFullscreen) {
+                        document.webkitExitFullscreen();
+                    }
+                } else {
+                    fbtn.addClass('full_screen');
+                    if (document.documentElement.requestFullscreen) {
+                        document.documentElement.requestFullscreen();
+                    } else if (document.documentElement.msRequestFullscreen) {
+                        document.documentElement.msRequestFullscreen();
+                    } else if (document.documentElement.mozRequestFullScreen) {
+                        document.documentElement.mozRequestFullScreen();
+                    } else if (document.documentElement.webkitRequestFullscreen) {
+                        document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
+                    }
+                }
+                return false;
+            });
+        },
+
+        navSubMenu: function() {
+            $('.techwave_fn_leftpanel .menu-item-has-children > a').off().on('click', function() {
+                var e = $(this),
+                    li = e.closest('li');
+                if (li.hasClass('closed')) {
+                    li.removeClass('closed');
+                    li.children('ul').slideDown(200);
+                } else {
+                    li.addClass('closed');
+                    li.children('ul').slideUp(200);
+                }
+                return false;
+            });
+        },
+
+        preloader: function() {
+            var preloader = $('.techwave_fn_preloader');
+
+            var date2 = new Date();
+            var difference = date2 - FrenifyTechWaveTime;
+            var waitTime = 4000;
+            if (difference < waitTime) {
+                waitTime -= difference;
+            } else {
+                waitTime = 0;
+            }
+            if (!preloader.hasClass('wait_for_full_preloading_animation')) {
+                waitTime = 0;
+            }
+            setTimeout(function() {
+                preloader.addClass('fn_ready');
+            }, waitTime);
+            setTimeout(function() {
+                preloader.remove();
+            }, waitTime + 2000);
+        },
+
+        imgToSVG: function() {
+            $('img.fn__svg').each(function() {
+                var img = $(this);
+                var imgClass = img.attr('class');
+                var imgURL = img.attr('src');
+
+                $.get(imgURL, function(data) {
+                    var svg = $(data).find('svg');
+                    if (typeof imgClass !== 'undefined') {
+                        svg = svg.attr('class', imgClass + ' replaced-svg');
+                    }
+                    img.replaceWith(svg);
+
+                }, 'xml');
+
+            });
+        },
+
+        BgImg: function() {
+            var div = $('*[data-bg-img]');
+            div.each(function() {
+                var element = $(this);
+                var attrBg = element.attr('data-bg-img');
+                var dataBg = element.data('bg-img');
+                if (typeof(attrBg) !== 'undefined') {
+                    element.css({
+                        backgroundImage: 'url(' + dataBg + ')'
+                    });
+                }
+            });
+        },
+
+    };
+
+
+    // READY Functions
+    $(document).ready(function() {
+        FrenifyTechWave.init();
+        $(':root').css('--techwave-scroll-y', (window.scrollY * (-1)) + 'px');
+        setTimeout(function() {
+            FrenifyTechWave.galleryIsotope();
+        }, 500);
+    });
+
+    // RESIZE Functions
+    $(window).on('resize', function() {
+        FrenifyTechWave.popupMobile();
+        FrenifyTechWave.redetectFullScreen();
+        FrenifyTechWave.galleryIsotope();
+    });
+
+    //	$(window).load( function(){
+    //		FrenifyTechWave.preloader();
+    //		FrenifyTechWave.galleryIsotope();
+    //		setTimeout(function(){
+    //			FrenifyTechWave.galleryIsotope();
+    //		},1000);
+    //	});
+
+    // LOAD Functions
+    $(window).on('load', function() {
+        FrenifyTechWave.preloader();
+        FrenifyTechWave.galleryIsotope();
+        setTimeout(function() {
+            FrenifyTechWave.galleryIsotope();
+        }, 1000);
+    });
+
+    $(window).on('scroll', function() {
+        $(':root').css('--techwave-scroll-y', (window.scrollY * (-1)) + 'px');
+    });
+
+})(jQuery);
\ No newline at end of file
diff --git a/js/jquery.js b/js/jquery.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b4029d107efb952aacef702598b39c97535eb8f
--- /dev/null
+++ b/js/jquery.js
@@ -0,0 +1,3252 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ ! function(e, t) {
+    "use strict";
+    "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
+        if (!e.document) throw new Error("jQuery requires a window with a document");
+        return t(e)
+    } : t(e)
+}("undefined" != typeof window ? window : this, function(C, e) {
+    "use strict";
+    var t = [],
+        r = Object.getPrototypeOf,
+        s = t.slice,
+        g = t.flat ? function(e) {
+            return t.flat.call(e)
+        } : function(e) {
+            return t.concat.apply([], e)
+        },
+        u = t.push,
+        i = t.indexOf,
+        n = {},
+        o = n.toString,
+        v = n.hasOwnProperty,
+        a = v.toString,
+        l = a.call(Object),
+        y = {},
+        m = function(e) {
+            return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item
+        },
+        x = function(e) {
+            return null != e && e === e.window
+        },
+        E = C.document,
+        c = {
+            type: !0,
+            src: !0,
+            nonce: !0,
+            noModule: !0
+        };
+
+    function b(e, t, n) {
+        var r, i, o = (n = n || E).createElement("script");
+        if (o.text = e, t)
+            for (r in c)(i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
+        n.head.appendChild(o).parentNode.removeChild(o)
+    }
+
+    function w(e) {
+        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e
+    }
+    var f = "3.6.0",
+        S = function(e, t) {
+            return new S.fn.init(e, t)
+        };
+
+    function p(e) {
+        var t = !!e && "length" in e && e.length,
+            n = w(e);
+        return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
+    }
+    S.fn = S.prototype = {
+        jquery: f,
+        constructor: S,
+        length: 0,
+        toArray: function() {
+            return s.call(this)
+        },
+        get: function(e) {
+            return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]
+        },
+        pushStack: function(e) {
+            var t = S.merge(this.constructor(), e);
+            return t.prevObject = this, t
+        },
+        each: function(e) {
+            return S.each(this, e)
+        },
+        map: function(n) {
+            return this.pushStack(S.map(this, function(e, t) {
+                return n.call(e, t, e)
+            }))
+        },
+        slice: function() {
+            return this.pushStack(s.apply(this, arguments))
+        },
+        first: function() {
+            return this.eq(0)
+        },
+        last: function() {
+            return this.eq(-1)
+        },
+        even: function() {
+            return this.pushStack(S.grep(this, function(e, t) {
+                return (t + 1) % 2
+            }))
+        },
+        odd: function() {
+            return this.pushStack(S.grep(this, function(e, t) {
+                return t % 2
+            }))
+        },
+        eq: function(e) {
+            var t = this.length,
+                n = +e + (e < 0 ? t : 0);
+            return this.pushStack(0 <= n && n < t ? [this[n]] : [])
+        },
+        end: function() {
+            return this.prevObject || this.constructor()
+        },
+        push: u,
+        sort: t.sort,
+        splice: t.splice
+    }, S.extend = S.fn.extend = function() {
+        var e, t, n, r, i, o, a = arguments[0] || {},
+            s = 1,
+            u = arguments.length,
+            l = !1;
+        for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
+            if (null != (e = arguments[s]))
+                for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}, i = !1, a[t] = S.extend(l, o, r)) : void 0 !== r && (a[t] = r));
+        return a
+    }, S.extend({
+        expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""),
+        isReady: !0,
+        error: function(e) {
+            throw new Error(e)
+        },
+        noop: function() {},
+        isPlainObject: function(e) {
+            var t, n;
+            return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof(n = v.call(t, "constructor") && t.constructor) && a.call(n) === l)
+        },
+        isEmptyObject: function(e) {
+            var t;
+            for (t in e) return !1;
+            return !0
+        },
+        globalEval: function(e, t, n) {
+            b(e, {
+                nonce: t && t.nonce
+            }, n)
+        },
+        each: function(e, t) {
+            var n, r = 0;
+            if (p(e)) {
+                for (n = e.length; r < n; r++)
+                    if (!1 === t.call(e[r], r, e[r])) break
+            } else
+                for (r in e)
+                    if (!1 === t.call(e[r], r, e[r])) break;
+            return e
+        },
+        makeArray: function(e, t) {
+            var n = t || [];
+            return null != e && (p(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n
+        },
+        inArray: function(e, t, n) {
+            return null == t ? -1 : i.call(t, e, n)
+        },
+        merge: function(e, t) {
+            for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
+            return e.length = i, e
+        },
+        grep: function(e, t, n) {
+            for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]);
+            return r
+        },
+        map: function(e, t, n) {
+            var r, i, o = 0,
+                a = [];
+            if (p(e))
+                for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i);
+            else
+                for (o in e) null != (i = t(e[o], o, n)) && a.push(i);
+            return g(a)
+        },
+        guid: 1,
+        support: y
+    }), "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
+        n["[object " + t + "]"] = t.toLowerCase()
+    });
+    var d = function(n) {
+        var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, S = "sizzle" + 1 * new Date,
+            p = n.document,
+            k = 0,
+            r = 0,
+            m = ue(),
+            x = ue(),
+            A = ue(),
+            N = ue(),
+            j = function(e, t) {
+                return e === t && (l = !0), 0
+            },
+            D = {}.hasOwnProperty,
+            t = [],
+            q = t.pop,
+            L = t.push,
+            H = t.push,
+            O = t.slice,
+            P = function(e, t) {
+                for (var n = 0, r = e.length; n < r; n++)
+                    if (e[n] === t) return n;
+                return -1
+            },
+            R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+            M = "[\\x20\\t\\r\\n\\f]",
+            I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
+            W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]",
+            F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)",
+            B = new RegExp(M + "+", "g"),
+            $ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"),
+            _ = new RegExp("^" + M + "*," + M + "*"),
+            z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
+            U = new RegExp(M + "|>"),
+            X = new RegExp(F),
+            V = new RegExp("^" + I + "$"),
+            G = {
+                ID: new RegExp("^#(" + I + ")"),
+                CLASS: new RegExp("^\\.(" + I + ")"),
+                TAG: new RegExp("^(" + I + "|[*])"),
+                ATTR: new RegExp("^" + W),
+                PSEUDO: new RegExp("^" + F),
+                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"),
+                bool: new RegExp("^(?:" + R + ")$", "i"),
+                needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i")
+            },
+            Y = /HTML$/i,
+            Q = /^(?:input|select|textarea|button)$/i,
+            J = /^h\d$/i,
+            K = /^[^{]+\{\s*\[native \w/,
+            Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+            ee = /[+~]/,
+            te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"),
+            ne = function(e, t) {
+                var n = "0x" + e.slice(1) - 65536;
+                return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
+            },
+            re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+            ie = function(e, t) {
+                return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
+            },
+            oe = function() {
+                T()
+            },
+            ae = be(function(e) {
+                return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
+            }, {
+                dir: "parentNode",
+                next: "legend"
+            });
+        try {
+            H.apply(t = O.call(p.childNodes), p.childNodes), t[p.childNodes.length].nodeType
+        } catch (e) {
+            H = {
+                apply: t.length ? function(e, t) {
+                    L.apply(e, O.call(t))
+                } : function(e, t) {
+                    var n = e.length,
+                        r = 0;
+                    while (e[n++] = t[r++]);
+                    e.length = n - 1
+                }
+            }
+        }
+
+        function se(t, e, n, r) {
+            var i, o, a, s, u, l, c, f = e && e.ownerDocument,
+                p = e ? e.nodeType : 9;
+            if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n;
+            if (!r && (T(e), e = e || C, E)) {
+                if (11 !== p && (u = Z.exec(t)))
+                    if (i = u[1]) {
+                        if (9 === p) {
+                            if (!(a = e.getElementById(i))) return n;
+                            if (a.id === i) return n.push(a), n
+                        } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n
+                    } else {
+                        if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n;
+                        if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n
+                    }
+                if (d.qsa && !N[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) {
+                    if (c = t, f = e, 1 === p && (U.test(t) || z.test(t))) {
+                        (f = ee.test(t) && ye(e.parentNode) || e) === e && d.scope || ((s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = S)), o = (l = h(t)).length;
+                        while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]);
+                        c = l.join(",")
+                    }
+                    try {
+                        return H.apply(n, f.querySelectorAll(c)), n
+                    } catch (e) {
+                        N(t, !0)
+                    } finally {
+                        s === S && e.removeAttribute("id")
+                    }
+                }
+            }
+            return g(t.replace($, "$1"), e, n, r)
+        }
+
+        function ue() {
+            var r = [];
+            return function e(t, n) {
+                return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n
+            }
+        }
+
+        function le(e) {
+            return e[S] = !0, e
+        }
+
+        function ce(e) {
+            var t = C.createElement("fieldset");
+            try {
+                return !!e(t)
+            } catch (e) {
+                return !1
+            } finally {
+                t.parentNode && t.parentNode.removeChild(t), t = null
+            }
+        }
+
+        function fe(e, t) {
+            var n = e.split("|"),
+                r = n.length;
+            while (r--) b.attrHandle[n[r]] = t
+        }
+
+        function pe(e, t) {
+            var n = t && e,
+                r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
+            if (r) return r;
+            if (n)
+                while (n = n.nextSibling)
+                    if (n === t) return -1;
+            return e ? 1 : -1
+        }
+
+        function de(t) {
+            return function(e) {
+                return "input" === e.nodeName.toLowerCase() && e.type === t
+            }
+        }
+
+        function he(n) {
+            return function(e) {
+                var t = e.nodeName.toLowerCase();
+                return ("input" === t || "button" === t) && e.type === n
+            }
+        }
+
+        function ge(t) {
+            return function(e) {
+                return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && ae(e) === t : e.disabled === t : "label" in e && e.disabled === t
+            }
+        }
+
+        function ve(a) {
+            return le(function(o) {
+                return o = +o, le(function(e, t) {
+                    var n, r = a([], e.length, o),
+                        i = r.length;
+                    while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
+                })
+            })
+        }
+
+        function ye(e) {
+            return e && "undefined" != typeof e.getElementsByTagName && e
+        }
+        for (e in d = se.support = {}, i = se.isXML = function(e) {
+                var t = e && e.namespaceURI,
+                    n = e && (e.ownerDocument || e).documentElement;
+                return !Y.test(t || n && n.nodeName || "HTML")
+            }, T = se.setDocument = function(e) {
+                var t, n, r = e ? e.ownerDocument || e : p;
+                return r != C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), p != C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.scope = ce(function(e) {
+                    return a.appendChild(e).appendChild(C.createElement("div")), "undefined" != typeof e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
+                }), d.attributes = ce(function(e) {
+                    return e.className = "i", !e.getAttribute("className")
+                }), d.getElementsByTagName = ce(function(e) {
+                    return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length
+                }), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function(e) {
+                    return a.appendChild(e).id = S, !C.getElementsByName || !C.getElementsByName(S).length
+                }), d.getById ? (b.filter.ID = function(e) {
+                    var t = e.replace(te, ne);
+                    return function(e) {
+                        return e.getAttribute("id") === t
+                    }
+                }, b.find.ID = function(e, t) {
+                    if ("undefined" != typeof t.getElementById && E) {
+                        var n = t.getElementById(e);
+                        return n ? [n] : []
+                    }
+                }) : (b.filter.ID = function(e) {
+                    var n = e.replace(te, ne);
+                    return function(e) {
+                        var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
+                        return t && t.value === n
+                    }
+                }, b.find.ID = function(e, t) {
+                    if ("undefined" != typeof t.getElementById && E) {
+                        var n, r, i, o = t.getElementById(e);
+                        if (o) {
+                            if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
+                            i = t.getElementsByName(e), r = 0;
+                            while (o = i[r++])
+                                if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
+                        }
+                        return []
+                    }
+                }), b.find.TAG = d.getElementsByTagName ? function(e, t) {
+                    return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0
+                } : function(e, t) {
+                    var n, r = [],
+                        i = 0,
+                        o = t.getElementsByTagName(e);
+                    if ("*" === e) {
+                        while (n = o[i++]) 1 === n.nodeType && r.push(n);
+                        return r
+                    }
+                    return o
+                }, b.find.CLASS = d.getElementsByClassName && function(e, t) {
+                    if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e)
+                }, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function(e) {
+                    var t;
+                    a.appendChild(e).innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="), (t = C.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + S + "+*").length || v.push(".#.+[+~]"), e.querySelectorAll("\\\f"), v.push("[\\r\\n\\f]")
+                }), ce(function(e) {
+                    e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
+                    var t = C.createElement("input");
+                    t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:")
+                })), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function(e) {
+                    d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", F)
+                }), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), t = K.test(a.compareDocumentPosition), y = t || K.test(a.contains) ? function(e, t) {
+                    var n = 9 === e.nodeType ? e.documentElement : e,
+                        r = t && t.parentNode;
+                    return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
+                } : function(e, t) {
+                    if (t)
+                        while (t = t.parentNode)
+                            if (t === e) return !0;
+                    return !1
+                }, j = t ? function(e, t) {
+                    if (e === t) return l = !0, 0;
+                    var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
+                    return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e == C || e.ownerDocument == p && y(p, e) ? -1 : t == C || t.ownerDocument == p && y(p, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1)
+                } : function(e, t) {
+                    if (e === t) return l = !0, 0;
+                    var n, r = 0,
+                        i = e.parentNode,
+                        o = t.parentNode,
+                        a = [e],
+                        s = [t];
+                    if (!i || !o) return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0;
+                    if (i === o) return pe(e, t);
+                    n = e;
+                    while (n = n.parentNode) a.unshift(n);
+                    n = t;
+                    while (n = n.parentNode) s.unshift(n);
+                    while (a[r] === s[r]) r++;
+                    return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0
+                }), C
+            }, se.matches = function(e, t) {
+                return se(e, null, null, t)
+            }, se.matchesSelector = function(e, t) {
+                if (T(e), d.matchesSelector && E && !N[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try {
+                    var n = c.call(e, t);
+                    if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
+                } catch (e) {
+                    N(t, !0)
+                }
+                return 0 < se(t, C, null, [e]).length
+            }, se.contains = function(e, t) {
+                return (e.ownerDocument || e) != C && T(e), y(e, t)
+            }, se.attr = function(e, t) {
+                (e.ownerDocument || e) != C && T(e);
+                var n = b.attrHandle[t.toLowerCase()],
+                    r = n && D.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0;
+                return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
+            }, se.escape = function(e) {
+                return (e + "").replace(re, ie)
+            }, se.error = function(e) {
+                throw new Error("Syntax error, unrecognized expression: " + e)
+            }, se.uniqueSort = function(e) {
+                var t, n = [],
+                    r = 0,
+                    i = 0;
+                if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(j), l) {
+                    while (t = e[i++]) t === e[i] && (r = n.push(i));
+                    while (r--) e.splice(n[r], 1)
+                }
+                return u = null, e
+            }, o = se.getText = function(e) {
+                var t, n = "",
+                    r = 0,
+                    i = e.nodeType;
+                if (i) {
+                    if (1 === i || 9 === i || 11 === i) {
+                        if ("string" == typeof e.textContent) return e.textContent;
+                        for (e = e.firstChild; e; e = e.nextSibling) n += o(e)
+                    } else if (3 === i || 4 === i) return e.nodeValue
+                } else
+                    while (t = e[r++]) n += o(t);
+                return n
+            }, (b = se.selectors = {
+                cacheLength: 50,
+                createPseudo: le,
+                match: G,
+                attrHandle: {},
+                find: {},
+                relative: {
+                    ">": {
+                        dir: "parentNode",
+                        first: !0
+                    },
+                    " ": {
+                        dir: "parentNode"
+                    },
+                    "+": {
+                        dir: "previousSibling",
+                        first: !0
+                    },
+                    "~": {
+                        dir: "previousSibling"
+                    }
+                },
+                preFilter: {
+                    ATTR: function(e) {
+                        return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
+                    },
+                    CHILD: function(e) {
+                        return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e
+                    },
+                    PSEUDO: function(e) {
+                        var t, n = !e[6] && e[2];
+                        return G.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
+                    }
+                },
+                filter: {
+                    TAG: function(e) {
+                        var t = e.replace(te, ne).toLowerCase();
+                        return "*" === e ? function() {
+                            return !0
+                        } : function(e) {
+                            return e.nodeName && e.nodeName.toLowerCase() === t
+                        }
+                    },
+                    CLASS: function(e) {
+                        var t = m[e + " "];
+                        return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && m(e, function(e) {
+                            return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
+                        })
+                    },
+                    ATTR: function(n, r, i) {
+                        return function(e) {
+                            var t = se.attr(e, n);
+                            return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
+                        }
+                    },
+                    CHILD: function(h, e, t, g, v) {
+                        var y = "nth" !== h.slice(0, 3),
+                            m = "last" !== h.slice(-4),
+                            x = "of-type" === e;
+                        return 1 === g && 0 === v ? function(e) {
+                            return !!e.parentNode
+                        } : function(e, t, n) {
+                            var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling",
+                                c = e.parentNode,
+                                f = x && e.nodeName.toLowerCase(),
+                                p = !n && !x,
+                                d = !1;
+                            if (c) {
+                                if (y) {
+                                    while (l) {
+                                        a = e;
+                                        while (a = a[l])
+                                            if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1;
+                                        u = l = "only" === h && !u && "nextSibling"
+                                    }
+                                    return !0
+                                }
+                                if (u = [m ? c.firstChild : c.lastChild], m && p) {
+                                    d = (s = (r = (i = (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]) && r[2], a = s && c.childNodes[s];
+                                    while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
+                                        if (1 === a.nodeType && ++d && a === e) {
+                                            i[h] = [k, s, d];
+                                            break
+                                        }
+                                } else if (p && (d = s = (r = (i = (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]), !1 === d)
+                                    while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
+                                        if ((x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [k, d]), a === e)) break;
+                                return (d -= v) === g || d % g == 0 && 0 <= d / g
+                            }
+                        }
+                    },
+                    PSEUDO: function(e, o) {
+                        var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e);
+                        return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function(e, t) {
+                            var n, r = a(e, o),
+                                i = r.length;
+                            while (i--) e[n = P(e, r[i])] = !(t[n] = r[i])
+                        }) : function(e) {
+                            return a(e, 0, t)
+                        }) : a
+                    }
+                },
+                pseudos: {
+                    not: le(function(e) {
+                        var r = [],
+                            i = [],
+                            s = f(e.replace($, "$1"));
+                        return s[S] ? le(function(e, t, n, r) {
+                            var i, o = s(e, null, r, []),
+                                a = e.length;
+                            while (a--)(i = o[a]) && (e[a] = !(t[a] = i))
+                        }) : function(e, t, n) {
+                            return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
+                        }
+                    }),
+                    has: le(function(t) {
+                        return function(e) {
+                            return 0 < se(t, e).length
+                        }
+                    }),
+                    contains: le(function(t) {
+                        return t = t.replace(te, ne),
+                            function(e) {
+                                return -1 < (e.textContent || o(e)).indexOf(t)
+                            }
+                    }),
+                    lang: le(function(n) {
+                        return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(),
+                            function(e) {
+                                var t;
+                                do {
+                                    if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
+                                } while ((e = e.parentNode) && 1 === e.nodeType);
+                                return !1
+                            }
+                    }),
+                    target: function(e) {
+                        var t = n.location && n.location.hash;
+                        return t && t.slice(1) === e.id
+                    },
+                    root: function(e) {
+                        return e === a
+                    },
+                    focus: function(e) {
+                        return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
+                    },
+                    enabled: ge(!1),
+                    disabled: ge(!0),
+                    checked: function(e) {
+                        var t = e.nodeName.toLowerCase();
+                        return "input" === t && !!e.checked || "option" === t && !!e.selected
+                    },
+                    selected: function(e) {
+                        return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
+                    },
+                    empty: function(e) {
+                        for (e = e.firstChild; e; e = e.nextSibling)
+                            if (e.nodeType < 6) return !1;
+                        return !0
+                    },
+                    parent: function(e) {
+                        return !b.pseudos.empty(e)
+                    },
+                    header: function(e) {
+                        return J.test(e.nodeName)
+                    },
+                    input: function(e) {
+                        return Q.test(e.nodeName)
+                    },
+                    button: function(e) {
+                        var t = e.nodeName.toLowerCase();
+                        return "input" === t && "button" === e.type || "button" === t
+                    },
+                    text: function(e) {
+                        var t;
+                        return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
+                    },
+                    first: ve(function() {
+                        return [0]
+                    }),
+                    last: ve(function(e, t) {
+                        return [t - 1]
+                    }),
+                    eq: ve(function(e, t, n) {
+                        return [n < 0 ? n + t : n]
+                    }),
+                    even: ve(function(e, t) {
+                        for (var n = 0; n < t; n += 2) e.push(n);
+                        return e
+                    }),
+                    odd: ve(function(e, t) {
+                        for (var n = 1; n < t; n += 2) e.push(n);
+                        return e
+                    }),
+                    lt: ve(function(e, t, n) {
+                        for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
+                        return e
+                    }),
+                    gt: ve(function(e, t, n) {
+                        for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
+                        return e
+                    })
+                }
+            }).pseudos.nth = b.pseudos.eq, {
+                radio: !0,
+                checkbox: !0,
+                file: !0,
+                password: !0,
+                image: !0
+            }) b.pseudos[e] = de(e);
+        for (e in {
+                submit: !0,
+                reset: !0
+            }) b.pseudos[e] = he(e);
+
+        function me() {}
+
+        function xe(e) {
+            for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
+            return r
+        }
+
+        function be(s, e, t) {
+            var u = e.dir,
+                l = e.next,
+                c = l || u,
+                f = t && "parentNode" === c,
+                p = r++;
+            return e.first ? function(e, t, n) {
+                while (e = e[u])
+                    if (1 === e.nodeType || f) return s(e, t, n);
+                return !1
+            } : function(e, t, n) {
+                var r, i, o, a = [k, p];
+                if (n) {
+                    while (e = e[u])
+                        if ((1 === e.nodeType || f) && s(e, t, n)) return !0
+                } else
+                    while (e = e[u])
+                        if (1 === e.nodeType || f)
+                            if (i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), l && l === e.nodeName.toLowerCase()) e = e[u] || e;
+                            else {
+                                if ((r = i[c]) && r[0] === k && r[1] === p) return a[2] = r[2];
+                                if ((i[c] = a)[2] = s(e, t, n)) return !0
+                            } return !1
+            }
+        }
+
+        function we(i) {
+            return 1 < i.length ? function(e, t, n) {
+                var r = i.length;
+                while (r--)
+                    if (!i[r](e, t, n)) return !1;
+                return !0
+            } : i[0]
+        }
+
+        function Te(e, t, n, r, i) {
+            for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s)));
+            return a
+        }
+
+        function Ce(d, h, g, v, y, e) {
+            return v && !v[S] && (v = Ce(v)), y && !y[S] && (y = Ce(y, e)), le(function(e, t, n, r) {
+                var i, o, a, s = [],
+                    u = [],
+                    l = t.length,
+                    c = e || function(e, t, n) {
+                        for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n);
+                        return n
+                    }(h || "*", n.nodeType ? [n] : n, []),
+                    f = !d || !e && h ? c : Te(c, s, d, n, r),
+                    p = g ? y || (e ? d : l || v) ? [] : t : f;
+                if (g && g(f, p, n, r), v) {
+                    i = Te(p, u), v(i, [], n, r), o = i.length;
+                    while (o--)(a = i[o]) && (p[u[o]] = !(f[u[o]] = a))
+                }
+                if (e) {
+                    if (y || d) {
+                        if (y) {
+                            i = [], o = p.length;
+                            while (o--)(a = p[o]) && i.push(f[o] = a);
+                            y(null, p = [], i, r)
+                        }
+                        o = p.length;
+                        while (o--)(a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a))
+                    }
+                } else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p)
+            })
+        }
+
+        function Ee(e) {
+            for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be(function(e) {
+                    return e === i
+                }, a, !0), l = be(function(e) {
+                    return -1 < P(i, e)
+                }, a, !0), c = [function(e, t, n) {
+                    var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
+                    return i = null, r
+                }]; s < r; s++)
+                if (t = b.relative[e[s].type]) c = [be(we(c), t)];
+                else {
+                    if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
+                        for (n = ++s; n < r; n++)
+                            if (b.relative[e[n].type]) break;
+                        return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({
+                            value: " " === e[s - 2].type ? "*" : ""
+                        })).replace($, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e))
+                    }
+                    c.push(t)
+                }
+            return we(c)
+        }
+        return me.prototype = b.filters = b.pseudos, b.setFilters = new me, h = se.tokenize = function(e, t) {
+            var n, r, i, o, a, s, u, l = x[e + " "];
+            if (l) return t ? 0 : l.slice(0);
+            a = e, s = [], u = b.preFilter;
+            while (a) {
+                for (o in n && !(r = _.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = z.exec(a)) && (n = r.shift(), i.push({
+                        value: n,
+                        type: r[0].replace($, " ")
+                    }), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({
+                    value: n,
+                    type: o,
+                    matches: r
+                }), a = a.slice(n.length));
+                if (!n) break
+            }
+            return t ? a.length : a ? se.error(e) : x(e, s).slice(0)
+        }, f = se.compile = function(e, t) {
+            var n, v, y, m, x, r, i = [],
+                o = [],
+                a = A[e + " "];
+            if (!a) {
+                t || (t = h(e)), n = t.length;
+                while (n--)(a = Ee(t[n]))[S] ? i.push(a) : o.push(a);
+                (a = A(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function(e, t, n, r, i) {
+                    var o, a, s, u = 0,
+                        l = "0",
+                        c = e && [],
+                        f = [],
+                        p = w,
+                        d = e || x && b.find.TAG("*", i),
+                        h = k += null == p ? 1 : Math.random() || .1,
+                        g = d.length;
+                    for (i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++) {
+                        if (x && o) {
+                            a = 0, t || o.ownerDocument == C || (T(o), n = !E);
+                            while (s = v[a++])
+                                if (s(o, t || C, n)) {
+                                    r.push(o);
+                                    break
+                                }
+                            i && (k = h)
+                        }
+                        m && ((o = !s && o) && u--, e && c.push(o))
+                    }
+                    if (u += l, m && l !== u) {
+                        a = 0;
+                        while (s = y[a++]) s(c, f, t, n);
+                        if (e) {
+                            if (0 < u)
+                                while (l--) c[l] || f[l] || (f[l] = q.call(r));
+                            f = Te(f)
+                        }
+                        H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r)
+                    }
+                    return i && (k = h, w = p), c
+                }, m ? le(r) : r))).selector = e
+            }
+            return a
+        }, g = se.select = function(e, t, n, r) {
+            var i, o, a, s, u, l = "function" == typeof e && e,
+                c = !r && h(e = l.selector || e);
+            if (n = n || [], 1 === c.length) {
+                if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) {
+                    if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n;
+                    l && (t = t.parentNode), e = e.slice(o.shift().value.length)
+                }
+                i = G.needsContext.test(e) ? 0 : o.length;
+                while (i--) {
+                    if (a = o[i], b.relative[s = a.type]) break;
+                    if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) {
+                        if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n;
+                        break
+                    }
+                }
+            }
+            return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n
+        }, d.sortStable = S.split("").sort(j).join("") === S, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function(e) {
+            return 1 & e.compareDocumentPosition(C.createElement("fieldset"))
+        }), ce(function(e) {
+            return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
+        }) || fe("type|href|height|width", function(e, t, n) {
+            if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
+        }), d.attributes && ce(function(e) {
+            return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
+        }) || fe("value", function(e, t, n) {
+            if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
+        }), ce(function(e) {
+            return null == e.getAttribute("disabled")
+        }) || fe(R, function(e, t, n) {
+            var r;
+            if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
+        }), se
+    }(C);
+    S.find = d, S.expr = d.selectors, S.expr[":"] = S.expr.pseudos, S.uniqueSort = S.unique = d.uniqueSort, S.text = d.getText, S.isXMLDoc = d.isXML, S.contains = d.contains, S.escapeSelector = d.escape;
+    var h = function(e, t, n) {
+            var r = [],
+                i = void 0 !== n;
+            while ((e = e[t]) && 9 !== e.nodeType)
+                if (1 === e.nodeType) {
+                    if (i && S(e).is(n)) break;
+                    r.push(e)
+                }
+            return r
+        },
+        T = function(e, t) {
+            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
+            return n
+        },
+        k = S.expr.match.needsContext;
+
+    function A(e, t) {
+        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
+    }
+    var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
+
+    function j(e, n, r) {
+        return m(n) ? S.grep(e, function(e, t) {
+            return !!n.call(e, t, e) !== r
+        }) : n.nodeType ? S.grep(e, function(e) {
+            return e === n !== r
+        }) : "string" != typeof n ? S.grep(e, function(e) {
+            return -1 < i.call(n, e) !== r
+        }) : S.filter(n, e, r)
+    }
+    S.filter = function(e, t, n) {
+        var r = t[0];
+        return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? S.find.matchesSelector(r, e) ? [r] : [] : S.find.matches(e, S.grep(t, function(e) {
+            return 1 === e.nodeType
+        }))
+    }, S.fn.extend({
+        find: function(e) {
+            var t, n, r = this.length,
+                i = this;
+            if ("string" != typeof e) return this.pushStack(S(e).filter(function() {
+                for (t = 0; t < r; t++)
+                    if (S.contains(i[t], this)) return !0
+            }));
+            for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n);
+            return 1 < r ? S.uniqueSort(n) : n
+        },
+        filter: function(e) {
+            return this.pushStack(j(this, e || [], !1))
+        },
+        not: function(e) {
+            return this.pushStack(j(this, e || [], !0))
+        },
+        is: function(e) {
+            return !!j(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1).length
+        }
+    });
+    var D, q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
+    (S.fn.init = function(e, t, n) {
+        var r, i;
+        if (!e) return this;
+        if (n = n || D, "string" == typeof e) {
+            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
+            if (r[1]) {
+                if (t = t instanceof S ? t[0] : t, S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), N.test(r[1]) && S.isPlainObject(t))
+                    for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
+                return this
+            }
+            return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this
+        }
+        return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(S) : S.makeArray(e, this)
+    }).prototype = S.fn, D = S(E);
+    var L = /^(?:parents|prev(?:Until|All))/,
+        H = {
+            children: !0,
+            contents: !0,
+            next: !0,
+            prev: !0
+        };
+
+    function O(e, t) {
+        while ((e = e[t]) && 1 !== e.nodeType);
+        return e
+    }
+    S.fn.extend({
+        has: function(e) {
+            var t = S(e, this),
+                n = t.length;
+            return this.filter(function() {
+                for (var e = 0; e < n; e++)
+                    if (S.contains(this, t[e])) return !0
+            })
+        },
+        closest: function(e, t) {
+            var n, r = 0,
+                i = this.length,
+                o = [],
+                a = "string" != typeof e && S(e);
+            if (!k.test(e))
+                for (; r < i; r++)
+                    for (n = this[r]; n && n !== t; n = n.parentNode)
+                        if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e))) {
+                            o.push(n);
+                            break
+                        }
+            return this.pushStack(1 < o.length ? S.uniqueSort(o) : o)
+        },
+        index: function(e) {
+            return e ? "string" == typeof e ? i.call(S(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
+        },
+        add: function(e, t) {
+            return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t))))
+        },
+        addBack: function(e) {
+            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
+        }
+    }), S.each({
+        parent: function(e) {
+            var t = e.parentNode;
+            return t && 11 !== t.nodeType ? t : null
+        },
+        parents: function(e) {
+            return h(e, "parentNode")
+        },
+        parentsUntil: function(e, t, n) {
+            return h(e, "parentNode", n)
+        },
+        next: function(e) {
+            return O(e, "nextSibling")
+        },
+        prev: function(e) {
+            return O(e, "previousSibling")
+        },
+        nextAll: function(e) {
+            return h(e, "nextSibling")
+        },
+        prevAll: function(e) {
+            return h(e, "previousSibling")
+        },
+        nextUntil: function(e, t, n) {
+            return h(e, "nextSibling", n)
+        },
+        prevUntil: function(e, t, n) {
+            return h(e, "previousSibling", n)
+        },
+        siblings: function(e) {
+            return T((e.parentNode || {}).firstChild, e)
+        },
+        children: function(e) {
+            return T(e.firstChild)
+        },
+        contents: function(e) {
+            return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), S.merge([], e.childNodes))
+        }
+    }, function(r, i) {
+        S.fn[r] = function(e, t) {
+            var n = S.map(this, i, e);
+            return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = S.filter(t, n)), 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), this.pushStack(n)
+        }
+    });
+    var P = /[^\x20\t\r\n\f]+/g;
+
+    function R(e) {
+        return e
+    }
+
+    function M(e) {
+        throw e
+    }
+
+    function I(e, t, n, r) {
+        var i;
+        try {
+            e && m(i = e.promise) ? i.call(e).done(t).fail(n) : e && m(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
+        } catch (e) {
+            n.apply(void 0, [e])
+        }
+    }
+    S.Callbacks = function(r) {
+        var e, n;
+        r = "string" == typeof r ? (e = r, n = {}, S.each(e.match(P) || [], function(e, t) {
+            n[t] = !0
+        }), n) : S.extend({}, r);
+        var i, t, o, a, s = [],
+            u = [],
+            l = -1,
+            c = function() {
+                for (a = a || r.once, o = i = !0; u.length; l = -1) {
+                    t = u.shift();
+                    while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1)
+                }
+                r.memory || (t = !1), i = !1, a && (s = t ? [] : "")
+            },
+            f = {
+                add: function() {
+                    return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) {
+                        S.each(e, function(e, t) {
+                            m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t)
+                        })
+                    }(arguments), t && !i && c()), this
+                },
+                remove: function() {
+                    return S.each(arguments, function(e, t) {
+                        var n;
+                        while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--
+                    }), this
+                },
+                has: function(e) {
+                    return e ? -1 < S.inArray(e, s) : 0 < s.length
+                },
+                empty: function() {
+                    return s && (s = []), this
+                },
+                disable: function() {
+                    return a = u = [], s = t = "", this
+                },
+                disabled: function() {
+                    return !s
+                },
+                lock: function() {
+                    return a = u = [], t || i || (s = t = ""), this
+                },
+                locked: function() {
+                    return !!a
+                },
+                fireWith: function(e, t) {
+                    return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this
+                },
+                fire: function() {
+                    return f.fireWith(this, arguments), this
+                },
+                fired: function() {
+                    return !!o
+                }
+            };
+        return f
+    }, S.extend({
+        Deferred: function(e) {
+            var o = [
+                    ["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2],
+                    ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"],
+                    ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"]
+                ],
+                i = "pending",
+                a = {
+                    state: function() {
+                        return i
+                    },
+                    always: function() {
+                        return s.done(arguments).fail(arguments), this
+                    },
+                    "catch": function(e) {
+                        return a.then(null, e)
+                    },
+                    pipe: function() {
+                        var i = arguments;
+                        return S.Deferred(function(r) {
+                            S.each(o, function(e, t) {
+                                var n = m(i[t[4]]) && i[t[4]];
+                                s[t[1]](function() {
+                                    var e = n && n.apply(this, arguments);
+                                    e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
+                                })
+                            }), i = null
+                        }).promise()
+                    },
+                    then: function(t, n, r) {
+                        var u = 0;
+
+                        function l(i, o, a, s) {
+                            return function() {
+                                var n = this,
+                                    r = arguments,
+                                    e = function() {
+                                        var e, t;
+                                        if (!(i < u)) {
+                                            if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution");
+                                            t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, R, s), l(u, o, M, s)) : (u++, t.call(e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith))) : (a !== R && (n = void 0, r = [e]), (s || o.resolveWith)(n, r))
+                                        }
+                                    },
+                                    t = s ? e : function() {
+                                        try {
+                                            e()
+                                        } catch (e) {
+                                            S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== M && (n = void 0, r = [e]), o.rejectWith(n, r))
+                                        }
+                                    };
+                                i ? t() : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), C.setTimeout(t))
+                            }
+                        }
+                        return S.Deferred(function(e) {
+                            o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : R)), o[2][3].add(l(0, e, m(n) ? n : M))
+                        }).promise()
+                    },
+                    promise: function(e) {
+                        return null != e ? S.extend(e, a) : a
+                    }
+                },
+                s = {};
+            return S.each(o, function(e, t) {
+                var n = t[2],
+                    r = t[5];
+                a[t[1]] = n.add, r && n.add(function() {
+                    i = r
+                }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function() {
+                    return s[t[0] + "With"](this === s ? void 0 : this, arguments), this
+                }, s[t[0] + "With"] = n.fireWith
+            }), a.promise(s), e && e.call(s, s), s
+        },
+        when: function(e) {
+            var n = arguments.length,
+                t = n,
+                r = Array(t),
+                i = s.call(arguments),
+                o = S.Deferred(),
+                a = function(t) {
+                    return function(e) {
+                        r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i)
+                    }
+                };
+            if (n <= 1 && (I(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then();
+            while (t--) I(i[t], a(t), o.reject);
+            return o.promise()
+        }
+    });
+    var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+    S.Deferred.exceptionHook = function(e, t) {
+        C.console && C.console.warn && e && W.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
+    }, S.readyException = function(e) {
+        C.setTimeout(function() {
+            throw e
+        })
+    };
+    var F = S.Deferred();
+
+    function B() {
+        E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), S.ready()
+    }
+    S.fn.ready = function(e) {
+        return F.then(e)["catch"](function(e) {
+            S.readyException(e)
+        }), this
+    }, S.extend({
+        isReady: !1,
+        readyWait: 1,
+        ready: function(e) {
+            (!0 === e ? --S.readyWait : S.isReady) || (S.isReady = !0) !== e && 0 < --S.readyWait || F.resolveWith(E, [S])
+        }
+    }), S.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(S.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B));
+    var $ = function(e, t, n, r, i, o, a) {
+            var s = 0,
+                u = e.length,
+                l = null == n;
+            if ("object" === w(n))
+                for (s in i = !0, n) $(e, t, s, n[s], !0, o, a);
+            else if (void 0 !== r && (i = !0, m(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
+                    return l.call(S(e), n)
+                })), t))
+                for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
+            return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
+        },
+        _ = /^-ms-/,
+        z = /-([a-z])/g;
+
+    function U(e, t) {
+        return t.toUpperCase()
+    }
+
+    function X(e) {
+        return e.replace(_, "ms-").replace(z, U)
+    }
+    var V = function(e) {
+        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
+    };
+
+    function G() {
+        this.expando = S.expando + G.uid++
+    }
+    G.uid = 1, G.prototype = {
+        cache: function(e) {
+            var t = e[this.expando];
+            return t || (t = {}, V(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
+                value: t,
+                configurable: !0
+            }))), t
+        },
+        set: function(e, t, n) {
+            var r, i = this.cache(e);
+            if ("string" == typeof t) i[X(t)] = n;
+            else
+                for (r in t) i[X(r)] = t[r];
+            return i
+        },
+        get: function(e, t) {
+            return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]
+        },
+        access: function(e, t, n) {
+            return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
+        },
+        remove: function(e, t) {
+            var n, r = e[this.expando];
+            if (void 0 !== r) {
+                if (void 0 !== t) {
+                    n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length;
+                    while (n--) delete r[t[n]]
+                }(void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
+            }
+        },
+        hasData: function(e) {
+            var t = e[this.expando];
+            return void 0 !== t && !S.isEmptyObject(t)
+        }
+    };
+    var Y = new G,
+        Q = new G,
+        J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+        K = /[A-Z]/g;
+
+    function Z(e, t, n) {
+        var r, i;
+        if (void 0 === n && 1 === e.nodeType)
+            if (r = "data-" + t.replace(K, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
+                try {
+                    n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : J.test(i) ? JSON.parse(i) : i)
+                } catch (e) {}
+                Q.set(e, t, n)
+            } else n = void 0;
+        return n
+    }
+    S.extend({
+        hasData: function(e) {
+            return Q.hasData(e) || Y.hasData(e)
+        },
+        data: function(e, t, n) {
+            return Q.access(e, t, n)
+        },
+        removeData: function(e, t) {
+            Q.remove(e, t)
+        },
+        _data: function(e, t, n) {
+            return Y.access(e, t, n)
+        },
+        _removeData: function(e, t) {
+            Y.remove(e, t)
+        }
+    }), S.fn.extend({
+        data: function(n, e) {
+            var t, r, i, o = this[0],
+                a = o && o.attributes;
+            if (void 0 === n) {
+                if (this.length && (i = Q.get(o), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))) {
+                    t = a.length;
+                    while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = X(r.slice(5)), Z(o, r, i[r]));
+                    Y.set(o, "hasDataAttrs", !0)
+                }
+                return i
+            }
+            return "object" == typeof n ? this.each(function() {
+                Q.set(this, n)
+            }) : $(this, function(e) {
+                var t;
+                if (o && void 0 === e) return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0;
+                this.each(function() {
+                    Q.set(this, n, e)
+                })
+            }, null, e, 1 < arguments.length, null, !0)
+        },
+        removeData: function(e) {
+            return this.each(function() {
+                Q.remove(this, e)
+            })
+        }
+    }), S.extend({
+        queue: function(e, t, n) {
+            var r;
+            if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, S.makeArray(n)) : r.push(n)), r || []
+        },
+        dequeue: function(e, t) {
+            t = t || "fx";
+            var n = S.queue(e, t),
+                r = n.length,
+                i = n.shift(),
+                o = S._queueHooks(e, t);
+            "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function() {
+                S.dequeue(e, t)
+            }, o)), !r && o && o.empty.fire()
+        },
+        _queueHooks: function(e, t) {
+            var n = t + "queueHooks";
+            return Y.get(e, n) || Y.access(e, n, {
+                empty: S.Callbacks("once memory").add(function() {
+                    Y.remove(e, [t + "queue", n])
+                })
+            })
+        }
+    }), S.fn.extend({
+        queue: function(t, n) {
+            var e = 2;
+            return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? S.queue(this[0], t) : void 0 === n ? this : this.each(function() {
+                var e = S.queue(this, t, n);
+                S._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t)
+            })
+        },
+        dequeue: function(e) {
+            return this.each(function() {
+                S.dequeue(this, e)
+            })
+        },
+        clearQueue: function(e) {
+            return this.queue(e || "fx", [])
+        },
+        promise: function(e, t) {
+            var n, r = 1,
+                i = S.Deferred(),
+                o = this,
+                a = this.length,
+                s = function() {
+                    --r || i.resolveWith(o, [o])
+                };
+            "string" != typeof e && (t = e, e = void 0), e = e || "fx";
+            while (a--)(n = Y.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
+            return s(), i.promise(t)
+        }
+    });
+    var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+        te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
+        ne = ["Top", "Right", "Bottom", "Left"],
+        re = E.documentElement,
+        ie = function(e) {
+            return S.contains(e.ownerDocument, e)
+        },
+        oe = {
+            composed: !0
+        };
+    re.getRootNode && (ie = function(e) {
+        return S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument
+    });
+    var ae = function(e, t) {
+        return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === S.css(e, "display")
+    };
+
+    function se(e, t, n, r) {
+        var i, o, a = 20,
+            s = r ? function() {
+                return r.cur()
+            } : function() {
+                return S.css(e, t, "")
+            },
+            u = s(),
+            l = n && n[3] || (S.cssNumber[t] ? "" : "px"),
+            c = e.nodeType && (S.cssNumber[t] || "px" !== l && +u) && te.exec(S.css(e, t));
+        if (c && c[3] !== l) {
+            u /= 2, l = l || c[3], c = +u || 1;
+            while (a--) S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
+            c *= 2, S.style(e, t, c + l), n = n || []
+        }
+        return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
+    }
+    var ue = {};
+
+    function le(e, t) {
+        for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)(r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = Y.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && ae(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ue[s]) || (o = a.body.appendChild(a.createElement(s)), u = S.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ue[s] = u)))) : "none" !== n && (l[c] = "none", Y.set(r, "display", n)));
+        for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
+        return e
+    }
+    S.fn.extend({
+        show: function() {
+            return le(this, !0)
+        },
+        hide: function() {
+            return le(this)
+        },
+        toggle: function(e) {
+            return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
+                ae(this) ? S(this).show() : S(this).hide()
+            })
+        }
+    });
+    var ce, fe, pe = /^(?:checkbox|radio)$/i,
+        de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
+        he = /^$|^module$|\/(?:java|ecma)script/i;
+    ce = E.createDocumentFragment().appendChild(E.createElement("div")), (fe = E.createElement("input")).setAttribute("type", "radio"), fe.setAttribute("checked", "checked"), fe.setAttribute("name", "t"), ce.appendChild(fe), y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked, ce.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue, ce.innerHTML = "<option></option>", y.option = !!ce.lastChild;
+    var ge = {
+        thead: [1, "<table>", "</table>"],
+        col: [2, "<table><colgroup>", "</colgroup></table>"],
+        tr: [2, "<table><tbody>", "</tbody></table>"],
+        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
+        _default: [0, "", ""]
+    };
+
+    function ve(e, t) {
+        var n;
+        return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? S.merge([e], n) : n
+    }
+
+    function ye(e, t) {
+        for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"))
+    }
+    ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]);
+    var me = /<|&#?\w+;/;
+
+    function xe(e, t, n, r, i) {
+        for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
+            if ((o = e[d]) || 0 === o)
+                if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o);
+                else if (me.test(o)) {
+            a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0];
+            while (c--) a = a.lastChild;
+            S.merge(p, a.childNodes), (a = f.firstChild).textContent = ""
+        } else p.push(t.createTextNode(o));
+        f.textContent = "", d = 0;
+        while (o = p[d++])
+            if (r && -1 < S.inArray(o, r)) i && i.push(o);
+            else if (l = ie(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) {
+            c = 0;
+            while (o = a[c++]) he.test(o.type || "") && n.push(o)
+        }
+        return f
+    }
+    var be = /^([^.]*)(?:\.(.+)|)/;
+
+    function we() {
+        return !0
+    }
+
+    function Te() {
+        return !1
+    }
+
+    function Ce(e, t) {
+        return e === function() {
+            try {
+                return E.activeElement
+            } catch (e) {}
+        }() == ("focus" === t)
+    }
+
+    function Ee(e, t, n, r, i, o) {
+        var a, s;
+        if ("object" == typeof t) {
+            for (s in "string" != typeof n && (r = r || n, n = void 0), t) Ee(e, s, n, r, t[s], o);
+            return e
+        }
+        if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Te;
+        else if (!i) return e;
+        return 1 === o && (a = i, (i = function(e) {
+            return S().off(e), a.apply(this, arguments)
+        }).guid = a.guid || (a.guid = S.guid++)), e.each(function() {
+            S.event.add(this, t, i, r, n)
+        })
+    }
+
+    function Se(e, i, o) {
+        o ? (Y.set(e, i, !1), S.event.add(e, i, {
+            namespace: !1,
+            handler: function(e) {
+                var t, n, r = Y.get(this, i);
+                if (1 & e.isTrigger && this[i]) {
+                    if (r.length)(S.event.special[i] || {}).delegateType && e.stopPropagation();
+                    else if (r = s.call(arguments), Y.set(this, i, r), t = o(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n && n.value
+                } else r.length && (Y.set(this, i, {
+                    value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this)
+                }), e.stopImmediatePropagation())
+            }
+        })) : void 0 === Y.get(e, i) && S.event.add(e, i, we)
+    }
+    S.event = {
+        global: {},
+        add: function(t, e, n, r, i) {
+            var o, a, s, u, l, c, f, p, d, h, g, v = Y.get(t);
+            if (V(t)) {
+                n.handler && (n = (o = n).handler, i = o.selector), i && S.find.matchesSelector(re, i), n.guid || (n.guid = S.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function(e) {
+                    return "undefined" != typeof S && S.event.triggered !== e.type ? S.event.dispatch.apply(t, arguments) : void 0
+                }), l = (e = (e || "").match(P) || [""]).length;
+                while (l--) d = g = (s = be.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = S.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = S.event.special[d] || {}, c = S.extend({
+                    type: d,
+                    origType: g,
+                    data: r,
+                    handler: n,
+                    guid: n.guid,
+                    selector: i,
+                    needsContext: i && S.expr.match.needsContext.test(i),
+                    namespace: h.join(".")
+                }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), S.event.global[d] = !0)
+            }
+        },
+        remove: function(e, t, n, r, i) {
+            var o, a, s, u, l, c, f, p, d, h, g, v = Y.hasData(e) && Y.get(e);
+            if (v && (u = v.events)) {
+                l = (t = (t || "").match(P) || [""]).length;
+                while (l--)
+                    if (d = g = (s = be.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) {
+                        f = S.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length;
+                        while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
+                        a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || S.removeEvent(e, d, v.handle), delete u[d])
+                    } else
+                        for (d in u) S.event.remove(e, d + t[l], n, r, !0);
+                S.isEmptyObject(u) && Y.remove(e, "handle events")
+            }
+        },
+        dispatch: function(e) {
+            var t, n, r, i, o, a, s = new Array(arguments.length),
+                u = S.event.fix(e),
+                l = (Y.get(this, "events") || Object.create(null))[u.type] || [],
+                c = S.event.special[u.type] || {};
+            for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
+            if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
+                a = S.event.handlers.call(this, u, l), t = 0;
+                while ((i = a[t++]) && !u.isPropagationStopped()) {
+                    u.currentTarget = i.elem, n = 0;
+                    while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()))
+                }
+                return c.postDispatch && c.postDispatch.call(this, u), u.result
+            }
+        },
+        handlers: function(e, t) {
+            var n, r, i, o, a, s = [],
+                u = t.delegateCount,
+                l = e.target;
+            if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
+                for (; l !== this; l = l.parentNode || this)
+                    if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
+                        for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < S(i, this).index(l) : S.find(i, this, null, [l]).length), a[i] && o.push(r);
+                        o.length && s.push({
+                            elem: l,
+                            handlers: o
+                        })
+                    }
+            return l = this, u < t.length && s.push({
+                elem: l,
+                handlers: t.slice(u)
+            }), s
+        },
+        addProp: function(t, e) {
+            Object.defineProperty(S.Event.prototype, t, {
+                enumerable: !0,
+                configurable: !0,
+                get: m(e) ? function() {
+                    if (this.originalEvent) return e(this.originalEvent)
+                } : function() {
+                    if (this.originalEvent) return this.originalEvent[t]
+                },
+                set: function(e) {
+                    Object.defineProperty(this, t, {
+                        enumerable: !0,
+                        configurable: !0,
+                        writable: !0,
+                        value: e
+                    })
+                }
+            })
+        },
+        fix: function(e) {
+            return e[S.expando] ? e : new S.Event(e)
+        },
+        special: {
+            load: {
+                noBubble: !0
+            },
+            click: {
+                setup: function(e) {
+                    var t = this || e;
+                    return pe.test(t.type) && t.click && A(t, "input") && Se(t, "click", we), !1
+                },
+                trigger: function(e) {
+                    var t = this || e;
+                    return pe.test(t.type) && t.click && A(t, "input") && Se(t, "click"), !0
+                },
+                _default: function(e) {
+                    var t = e.target;
+                    return pe.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a")
+                }
+            },
+            beforeunload: {
+                postDispatch: function(e) {
+                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
+                }
+            }
+        }
+    }, S.removeEvent = function(e, t, n) {
+        e.removeEventListener && e.removeEventListener(t, n)
+    }, S.Event = function(e, t) {
+        if (!(this instanceof S.Event)) return new S.Event(e, t);
+        e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? we : Te, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && S.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[S.expando] = !0
+    }, S.Event.prototype = {
+        constructor: S.Event,
+        isDefaultPrevented: Te,
+        isPropagationStopped: Te,
+        isImmediatePropagationStopped: Te,
+        isSimulated: !1,
+        preventDefault: function() {
+            var e = this.originalEvent;
+            this.isDefaultPrevented = we, e && !this.isSimulated && e.preventDefault()
+        },
+        stopPropagation: function() {
+            var e = this.originalEvent;
+            this.isPropagationStopped = we, e && !this.isSimulated && e.stopPropagation()
+        },
+        stopImmediatePropagation: function() {
+            var e = this.originalEvent;
+            this.isImmediatePropagationStopped = we, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
+        }
+    }, S.each({
+        altKey: !0,
+        bubbles: !0,
+        cancelable: !0,
+        changedTouches: !0,
+        ctrlKey: !0,
+        detail: !0,
+        eventPhase: !0,
+        metaKey: !0,
+        pageX: !0,
+        pageY: !0,
+        shiftKey: !0,
+        view: !0,
+        "char": !0,
+        code: !0,
+        charCode: !0,
+        key: !0,
+        keyCode: !0,
+        button: !0,
+        buttons: !0,
+        clientX: !0,
+        clientY: !0,
+        offsetX: !0,
+        offsetY: !0,
+        pointerId: !0,
+        pointerType: !0,
+        screenX: !0,
+        screenY: !0,
+        targetTouches: !0,
+        toElement: !0,
+        touches: !0,
+        which: !0
+    }, S.event.addProp), S.each({
+        focus: "focusin",
+        blur: "focusout"
+    }, function(e, t) {
+        S.event.special[e] = {
+            setup: function() {
+                return Se(this, e, Ce), !1
+            },
+            trigger: function() {
+                return Se(this, e), !0
+            },
+            _default: function() {
+                return !0
+            },
+            delegateType: t
+        }
+    }), S.each({
+        mouseenter: "mouseover",
+        mouseleave: "mouseout",
+        pointerenter: "pointerover",
+        pointerleave: "pointerout"
+    }, function(e, i) {
+        S.event.special[e] = {
+            delegateType: i,
+            bindType: i,
+            handle: function(e) {
+                var t, n = e.relatedTarget,
+                    r = e.handleObj;
+                return n && (n === this || S.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
+            }
+        }
+    }), S.fn.extend({
+        on: function(e, t, n, r) {
+            return Ee(this, e, t, n, r)
+        },
+        one: function(e, t, n, r) {
+            return Ee(this, e, t, n, r, 1)
+        },
+        off: function(e, t, n) {
+            var r, i;
+            if (e && e.preventDefault && e.handleObj) return r = e.handleObj, S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
+            if ("object" == typeof e) {
+                for (i in e) this.off(i, t, e[i]);
+                return this
+            }
+            return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Te), this.each(function() {
+                S.event.remove(this, e, n, t)
+            })
+        }
+    });
+    var ke = /<script|<style|<link/i,
+        Ae = /checked\s*(?:[^=]|=\s*.checked.)/i,
+        Ne = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+    function je(e, t) {
+        return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0] || e
+    }
+
+    function De(e) {
+        return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
+    }
+
+    function qe(e) {
+        return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
+    }
+
+    function Le(e, t) {
+        var n, r, i, o, a, s;
+        if (1 === t.nodeType) {
+            if (Y.hasData(e) && (s = Y.get(e).events))
+                for (i in Y.remove(t, "handle events"), s)
+                    for (n = 0, r = s[i].length; n < r; n++) S.event.add(t, i, s[i][n]);
+            Q.hasData(e) && (o = Q.access(e), a = S.extend({}, o), Q.set(t, a))
+        }
+    }
+
+    function He(n, r, i, o) {
+        r = g(r);
+        var e, t, a, s, u, l, c = 0,
+            f = n.length,
+            p = f - 1,
+            d = r[0],
+            h = m(d);
+        if (h || 1 < f && "string" == typeof d && !y.checkClone && Ae.test(d)) return n.each(function(e) {
+            var t = n.eq(e);
+            h && (r[0] = d.call(this, e, t.html())), He(t, r, i, o)
+        });
+        if (f && (t = (e = xe(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) {
+            for (s = (a = S.map(ve(e, "script"), De)).length; c < f; c++) u = e, c !== p && (u = S.clone(u, !0, !0), s && S.merge(a, ve(u, "script"))), i.call(n[c], u, c);
+            if (s)
+                for (l = a[a.length - 1].ownerDocument, S.map(a, qe), c = 0; c < s; c++) u = a[c], he.test(u.type || "") && !Y.access(u, "globalEval") && S.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? S._evalUrl && !u.noModule && S._evalUrl(u.src, {
+                    nonce: u.nonce || u.getAttribute("nonce")
+                }, l) : b(u.textContent.replace(Ne, ""), u, l))
+        }
+        return n
+    }
+
+    function Oe(e, t, n) {
+        for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(ve(r)), r.parentNode && (n && ie(r) && ye(ve(r, "script")), r.parentNode.removeChild(r));
+        return e
+    }
+    S.extend({
+        htmlPrefilter: function(e) {
+            return e
+        },
+        clone: function(e, t, n) {
+            var r, i, o, a, s, u, l, c = e.cloneNode(!0),
+                f = ie(e);
+            if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || S.isXMLDoc(e)))
+                for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++) s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && pe.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
+            if (t)
+                if (n)
+                    for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++) Le(o[r], a[r]);
+                else Le(e, c);
+            return 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c
+        },
+        cleanData: function(e) {
+            for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++)
+                if (V(n)) {
+                    if (t = n[Y.expando]) {
+                        if (t.events)
+                            for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle);
+                        n[Y.expando] = void 0
+                    }
+                    n[Q.expando] && (n[Q.expando] = void 0)
+                }
+        }
+    }), S.fn.extend({
+        detach: function(e) {
+            return Oe(this, e, !0)
+        },
+        remove: function(e) {
+            return Oe(this, e)
+        },
+        text: function(e) {
+            return $(this, function(e) {
+                return void 0 === e ? S.text(this) : this.empty().each(function() {
+                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
+                })
+            }, null, e, arguments.length)
+        },
+        append: function() {
+            return He(this, arguments, function(e) {
+                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || je(this, e).appendChild(e)
+            })
+        },
+        prepend: function() {
+            return He(this, arguments, function(e) {
+                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
+                    var t = je(this, e);
+                    t.insertBefore(e, t.firstChild)
+                }
+            })
+        },
+        before: function() {
+            return He(this, arguments, function(e) {
+                this.parentNode && this.parentNode.insertBefore(e, this)
+            })
+        },
+        after: function() {
+            return He(this, arguments, function(e) {
+                this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
+            })
+        },
+        empty: function() {
+            for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(ve(e, !1)), e.textContent = "");
+            return this
+        },
+        clone: function(e, t) {
+            return e = null != e && e, t = null == t ? e : t, this.map(function() {
+                return S.clone(this, e, t)
+            })
+        },
+        html: function(e) {
+            return $(this, function(e) {
+                var t = this[0] || {},
+                    n = 0,
+                    r = this.length;
+                if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
+                if ("string" == typeof e && !ke.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) {
+                    e = S.htmlPrefilter(e);
+                    try {
+                        for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(ve(t, !1)), t.innerHTML = e);
+                        t = 0
+                    } catch (e) {}
+                }
+                t && this.empty().append(e)
+            }, null, e, arguments.length)
+        },
+        replaceWith: function() {
+            var n = [];
+            return He(this, arguments, function(e) {
+                var t = this.parentNode;
+                S.inArray(this, n) < 0 && (S.cleanData(ve(this)), t && t.replaceChild(e, this))
+            }, n)
+        }
+    }), S.each({
+        appendTo: "append",
+        prependTo: "prepend",
+        insertBefore: "before",
+        insertAfter: "after",
+        replaceAll: "replaceWith"
+    }, function(e, a) {
+        S.fn[e] = function(e) {
+            for (var t, n = [], r = S(e), i = r.length - 1, o = 0; o <= i; o++) t = o === i ? this : this.clone(!0), S(r[o])[a](t), u.apply(n, t.get());
+            return this.pushStack(n)
+        }
+    });
+    var Pe = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"),
+        Re = function(e) {
+            var t = e.ownerDocument.defaultView;
+            return t && t.opener || (t = C), t.getComputedStyle(e)
+        },
+        Me = function(e, t, n) {
+            var r, i, o = {};
+            for (i in t) o[i] = e.style[i], e.style[i] = t[i];
+            for (i in r = n.call(e), t) e.style[i] = o[i];
+            return r
+        },
+        Ie = new RegExp(ne.join("|"), "i");
+
+    function We(e, t, n) {
+        var r, i, o, a, s = e.style;
+        return (n = n || Re(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || ie(e) || (a = S.style(e, t)), !y.pixelBoxStyles() && Pe.test(a) && Ie.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a
+    }
+
+    function Fe(e, t) {
+        return {
+            get: function() {
+                if (!e()) return (this.get = t).apply(this, arguments);
+                delete this.get
+            }
+        }
+    }! function() {
+        function e() {
+            if (l) {
+                u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", re.appendChild(u).appendChild(l);
+                var e = C.getComputedStyle(l);
+                n = "1%" !== e.top, s = 12 === t(e.marginLeft), l.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), l.style.position = "absolute", i = 12 === t(l.offsetWidth / 3), re.removeChild(u), l = null
+            }
+        }
+
+        function t(e) {
+            return Math.round(parseFloat(e))
+        }
+        var n, r, i, o, a, s, u = E.createElement("div"),
+            l = E.createElement("div");
+        l.style && (l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === l.style.backgroundClip, S.extend(y, {
+            boxSizingReliable: function() {
+                return e(), r
+            },
+            pixelBoxStyles: function() {
+                return e(), o
+            },
+            pixelPosition: function() {
+                return e(), n
+            },
+            reliableMarginLeft: function() {
+                return e(), s
+            },
+            scrollboxSize: function() {
+                return e(), i
+            },
+            reliableTrDimensions: function() {
+                var e, t, n, r;
+                return null == a && (e = E.createElement("table"), t = E.createElement("tr"), n = E.createElement("div"), e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t.style.cssText = "border:1px solid", t.style.height = "1px", n.style.height = "9px", n.style.display = "block", re.appendChild(e).appendChild(t).appendChild(n), r = C.getComputedStyle(t), a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight, re.removeChild(e)), a
+            }
+        }))
+    }();
+    var Be = ["Webkit", "Moz", "ms"],
+        $e = E.createElement("div").style,
+        _e = {};
+
+    function ze(e) {
+        var t = S.cssProps[e] || _e[e];
+        return t || (e in $e ? e : _e[e] = function(e) {
+            var t = e[0].toUpperCase() + e.slice(1),
+                n = Be.length;
+            while (n--)
+                if ((e = Be[n] + t) in $e) return e
+        }(e) || e)
+    }
+    var Ue = /^(none|table(?!-c[ea]).+)/,
+        Xe = /^--/,
+        Ve = {
+            position: "absolute",
+            visibility: "hidden",
+            display: "block"
+        },
+        Ge = {
+            letterSpacing: "0",
+            fontWeight: "400"
+        };
+
+    function Ye(e, t, n) {
+        var r = te.exec(t);
+        return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
+    }
+
+    function Qe(e, t, n, r, i, o) {
+        var a = "width" === t ? 1 : 0,
+            s = 0,
+            u = 0;
+        if (n === (r ? "border" : "content")) return 0;
+        for (; a < 4; a += 2) "margin" === n && (u += S.css(e, n + ne[a], !0, i)), r ? ("content" === n && (u -= S.css(e, "padding" + ne[a], !0, i)), "margin" !== n && (u -= S.css(e, "border" + ne[a] + "Width", !0, i))) : (u += S.css(e, "padding" + ne[a], !0, i), "padding" !== n ? u += S.css(e, "border" + ne[a] + "Width", !0, i) : s += S.css(e, "border" + ne[a] + "Width", !0, i));
+        return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u
+    }
+
+    function Je(e, t, n) {
+        var r = Re(e),
+            i = (!y.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r),
+            o = i,
+            a = We(e, t, r),
+            s = "offset" + t[0].toUpperCase() + t.slice(1);
+        if (Pe.test(a)) {
+            if (!n) return a;
+            a = "auto"
+        }
+        return (!y.boxSizingReliable() && i || !y.reliableTrDimensions() && A(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === S.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === S.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + Qe(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
+    }
+
+    function Ke(e, t, n, r, i) {
+        return new Ke.prototype.init(e, t, n, r, i)
+    }
+    S.extend({
+        cssHooks: {
+            opacity: {
+                get: function(e, t) {
+                    if (t) {
+                        var n = We(e, "opacity");
+                        return "" === n ? "1" : n
+                    }
+                }
+            }
+        },
+        cssNumber: {
+            animationIterationCount: !0,
+            columnCount: !0,
+            fillOpacity: !0,
+            flexGrow: !0,
+            flexShrink: !0,
+            fontWeight: !0,
+            gridArea: !0,
+            gridColumn: !0,
+            gridColumnEnd: !0,
+            gridColumnStart: !0,
+            gridRow: !0,
+            gridRowEnd: !0,
+            gridRowStart: !0,
+            lineHeight: !0,
+            opacity: !0,
+            order: !0,
+            orphans: !0,
+            widows: !0,
+            zIndex: !0,
+            zoom: !0
+        },
+        cssProps: {},
+        style: function(e, t, n, r) {
+            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
+                var i, o, a, s = X(t),
+                    u = Xe.test(t),
+                    l = e.style;
+                if (u || (t = ze(s)), a = S.cssHooks[t] || S.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
+                "string" === (o = typeof n) && (i = te.exec(n)) && i[1] && (n = se(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (S.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
+            }
+        },
+        css: function(e, t, n, r) {
+            var i, o, a, s = X(t);
+            return Xe.test(t) || (t = ze(s)), (a = S.cssHooks[t] || S.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = We(e, t, r)), "normal" === i && t in Ge && (i = Ge[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i
+        }
+    }), S.each(["height", "width"], function(e, u) {
+        S.cssHooks[u] = {
+            get: function(e, t, n) {
+                if (t) return !Ue.test(S.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? Je(e, u, n) : Me(e, Ve, function() {
+                    return Je(e, u, n)
+                })
+            },
+            set: function(e, t, n) {
+                var r, i = Re(e),
+                    o = !y.scrollboxSize() && "absolute" === i.position,
+                    a = (o || n) && "border-box" === S.css(e, "boxSizing", !1, i),
+                    s = n ? Qe(e, u, n, a, i) : 0;
+                return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - Qe(e, u, "border", !1, i) - .5)), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = S.css(e, u)), Ye(0, t, s)
+            }
+        }
+    }), S.cssHooks.marginLeft = Fe(y.reliableMarginLeft, function(e, t) {
+        if (t) return (parseFloat(We(e, "marginLeft")) || e.getBoundingClientRect().left - Me(e, {
+            marginLeft: 0
+        }, function() {
+            return e.getBoundingClientRect().left
+        })) + "px"
+    }), S.each({
+        margin: "",
+        padding: "",
+        border: "Width"
+    }, function(i, o) {
+        S.cssHooks[i + o] = {
+            expand: function(e) {
+                for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + ne[t] + o] = r[t] || r[t - 2] || r[0];
+                return n
+            }
+        }, "margin" !== i && (S.cssHooks[i + o].set = Ye)
+    }), S.fn.extend({
+        css: function(e, t) {
+            return $(this, function(e, t, n) {
+                var r, i, o = {},
+                    a = 0;
+                if (Array.isArray(t)) {
+                    for (r = Re(e), i = t.length; a < i; a++) o[t[a]] = S.css(e, t[a], !1, r);
+                    return o
+                }
+                return void 0 !== n ? S.style(e, t, n) : S.css(e, t)
+            }, e, t, 1 < arguments.length)
+        }
+    }), ((S.Tween = Ke).prototype = {
+        constructor: Ke,
+        init: function(e, t, n, r, i, o) {
+            this.elem = e, this.prop = n, this.easing = i || S.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (S.cssNumber[n] ? "" : "px")
+        },
+        cur: function() {
+            var e = Ke.propHooks[this.prop];
+            return e && e.get ? e.get(this) : Ke.propHooks._default.get(this)
+        },
+        run: function(e) {
+            var t, n = Ke.propHooks[this.prop];
+            return this.options.duration ? this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Ke.propHooks._default.set(this), this
+        }
+    }).init.prototype = Ke.prototype, (Ke.propHooks = {
+        _default: {
+            get: function(e) {
+                var t;
+                return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
+            },
+            set: function(e) {
+                S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !S.cssHooks[e.prop] && null == e.elem.style[ze(e.prop)] ? e.elem[e.prop] = e.now : S.style(e.elem, e.prop, e.now + e.unit)
+            }
+        }
+    }).scrollTop = Ke.propHooks.scrollLeft = {
+        set: function(e) {
+            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
+        }
+    }, S.easing = {
+        linear: function(e) {
+            return e
+        },
+        swing: function(e) {
+            return .5 - Math.cos(e * Math.PI) / 2
+        },
+        _default: "swing"
+    }, S.fx = Ke.prototype.init, S.fx.step = {};
+    var Ze, et, tt, nt, rt = /^(?:toggle|show|hide)$/,
+        it = /queueHooks$/;
+
+    function ot() {
+        et && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(ot) : C.setTimeout(ot, S.fx.interval), S.fx.tick())
+    }
+
+    function at() {
+        return C.setTimeout(function() {
+            Ze = void 0
+        }), Ze = Date.now()
+    }
+
+    function st(e, t) {
+        var n, r = 0,
+            i = {
+                height: e
+            };
+        for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e;
+        return t && (i.opacity = i.width = e), i
+    }
+
+    function ut(e, t, n) {
+        for (var r, i = (lt.tweeners[t] || []).concat(lt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
+            if (r = i[o].call(n, t, e)) return r
+    }
+
+    function lt(o, e, t) {
+        var n, a, r = 0,
+            i = lt.prefilters.length,
+            s = S.Deferred().always(function() {
+                delete u.elem
+            }),
+            u = function() {
+                if (a) return !1;
+                for (var e = Ze || at(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) l.tweens[r].run(n);
+                return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1)
+            },
+            l = s.promise({
+                elem: o,
+                props: S.extend({}, e),
+                opts: S.extend(!0, {
+                    specialEasing: {},
+                    easing: S.easing._default
+                }, t),
+                originalProperties: e,
+                originalOptions: t,
+                startTime: Ze || at(),
+                duration: t.duration,
+                tweens: [],
+                createTween: function(e, t) {
+                    var n = S.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing);
+                    return l.tweens.push(n), n
+                },
+                stop: function(e) {
+                    var t = 0,
+                        n = e ? l.tweens.length : 0;
+                    if (a) return this;
+                    for (a = !0; t < n; t++) l.tweens[t].run(1);
+                    return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this
+                }
+            }),
+            c = l.props;
+        for (! function(e, t) {
+                var n, r, i, o, a;
+                for (n in e)
+                    if (i = t[r = X(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = S.cssHooks[r]) && "expand" in a)
+                        for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i);
+                    else t[r] = i
+            }(c, l.opts.specialEasing); r < i; r++)
+            if (n = lt.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n;
+        return S.map(c, ut, l), m(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), S.fx.timer(S.extend(u, {
+            elem: o,
+            anim: l,
+            queue: l.opts.queue
+        })), l
+    }
+    S.Animation = S.extend(lt, {
+        tweeners: {
+            "*": [function(e, t) {
+                var n = this.createTween(e, t);
+                return se(n.elem, e, te.exec(t), n), n
+            }]
+        },
+        tweener: function(e, t) {
+            m(e) ? (t = e, e = ["*"]) : e = e.match(P);
+            for (var n, r = 0, i = e.length; r < i; r++) n = e[r], lt.tweeners[n] = lt.tweeners[n] || [], lt.tweeners[n].unshift(t)
+        },
+        prefilters: [function(e, t, n) {
+            var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t,
+                p = this,
+                d = {},
+                h = e.style,
+                g = e.nodeType && ae(e),
+                v = Y.get(e, "fxshow");
+            for (r in n.queue || (null == (a = S._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
+                    a.unqueued || s()
+                }), a.unqueued++, p.always(function() {
+                    p.always(function() {
+                        a.unqueued--, S.queue(e, "fx").length || a.empty.fire()
+                    })
+                })), t)
+                if (i = t[r], rt.test(i)) {
+                    if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) {
+                        if ("show" !== i || !v || void 0 === v[r]) continue;
+                        g = !0
+                    }
+                    d[r] = v && v[r] || S.style(e, r)
+                }
+            if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d))
+                for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = Y.get(e, "display")), "none" === (c = S.css(e, "display")) && (l ? c = l : (le([e], !0), l = e.style.display || l, c = S.css(e, "display"), le([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === S.css(e, "float") && (u || (p.done(function() {
+                        h.display = l
+                    }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function() {
+                        h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
+                    })), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = Y.access(e, "fxshow", {
+                    display: l
+                }), o && (v.hidden = !g), g && le([e], !0), p.done(function() {
+                    for (r in g || le([e]), Y.remove(e, "fxshow"), d) S.style(e, r, d[r])
+                })), u = ut(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0))
+        }],
+        prefilter: function(e, t) {
+            t ? lt.prefilters.unshift(e) : lt.prefilters.push(e)
+        }
+    }), S.speed = function(e, t, n) {
+        var r = e && "object" == typeof e ? S.extend({}, e) : {
+            complete: n || !n && t || m(e) && e,
+            duration: e,
+            easing: n && t || t && !m(t) && t
+        };
+        return S.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in S.fx.speeds ? r.duration = S.fx.speeds[r.duration] : r.duration = S.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
+            m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue)
+        }, r
+    }, S.fn.extend({
+        fadeTo: function(e, t, n, r) {
+            return this.filter(ae).css("opacity", 0).show().end().animate({
+                opacity: t
+            }, e, n, r)
+        },
+        animate: function(t, e, n, r) {
+            var i = S.isEmptyObject(t),
+                o = S.speed(e, n, r),
+                a = function() {
+                    var e = lt(this, S.extend({}, t), o);
+                    (i || Y.get(this, "finish")) && e.stop(!0)
+                };
+            return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
+        },
+        stop: function(i, e, o) {
+            var a = function(e) {
+                var t = e.stop;
+                delete e.stop, t(o)
+            };
+            return "string" != typeof i && (o = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function() {
+                var e = !0,
+                    t = null != i && i + "queueHooks",
+                    n = S.timers,
+                    r = Y.get(this);
+                if (t) r[t] && r[t].stop && a(r[t]);
+                else
+                    for (t in r) r[t] && r[t].stop && it.test(t) && a(r[t]);
+                for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1));
+                !e && o || S.dequeue(this, i)
+            })
+        },
+        finish: function(a) {
+            return !1 !== a && (a = a || "fx"), this.each(function() {
+                var e, t = Y.get(this),
+                    n = t[a + "queue"],
+                    r = t[a + "queueHooks"],
+                    i = S.timers,
+                    o = n ? n.length : 0;
+                for (t.finish = !0, S.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1));
+                for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);
+                delete t.finish
+            })
+        }
+    }), S.each(["toggle", "show", "hide"], function(e, r) {
+        var i = S.fn[r];
+        S.fn[r] = function(e, t, n) {
+            return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(st(r, !0), e, t, n)
+        }
+    }), S.each({
+        slideDown: st("show"),
+        slideUp: st("hide"),
+        slideToggle: st("toggle"),
+        fadeIn: {
+            opacity: "show"
+        },
+        fadeOut: {
+            opacity: "hide"
+        },
+        fadeToggle: {
+            opacity: "toggle"
+        }
+    }, function(e, r) {
+        S.fn[e] = function(e, t, n) {
+            return this.animate(r, e, t, n)
+        }
+    }), S.timers = [], S.fx.tick = function() {
+        var e, t = 0,
+            n = S.timers;
+        for (Ze = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
+        n.length || S.fx.stop(), Ze = void 0
+    }, S.fx.timer = function(e) {
+        S.timers.push(e), S.fx.start()
+    }, S.fx.interval = 13, S.fx.start = function() {
+        et || (et = !0, ot())
+    }, S.fx.stop = function() {
+        et = null
+    }, S.fx.speeds = {
+        slow: 600,
+        fast: 200,
+        _default: 400
+    }, S.fn.delay = function(r, e) {
+        return r = S.fx && S.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) {
+            var n = C.setTimeout(e, r);
+            t.stop = function() {
+                C.clearTimeout(n)
+            }
+        })
+    }, tt = E.createElement("input"), nt = E.createElement("select").appendChild(E.createElement("option")), tt.type = "checkbox", y.checkOn = "" !== tt.value, y.optSelected = nt.selected, (tt = E.createElement("input")).value = "t", tt.type = "radio", y.radioValue = "t" === tt.value;
+    var ct, ft = S.expr.attrHandle;
+    S.fn.extend({
+        attr: function(e, t) {
+            return $(this, S.attr, e, t, 1 < arguments.length)
+        },
+        removeAttr: function(e) {
+            return this.each(function() {
+                S.removeAttr(this, e)
+            })
+        }
+    }), S.extend({
+        attr: function(e, t, n) {
+            var r, i, o = e.nodeType;
+            if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? S.prop(e, t, n) : (1 === o && S.isXMLDoc(e) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? ct : void 0)), void 0 !== n ? null === n ? void S.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = S.find.attr(e, t)) ? void 0 : r)
+        },
+        attrHooks: {
+            type: {
+                set: function(e, t) {
+                    if (!y.radioValue && "radio" === t && A(e, "input")) {
+                        var n = e.value;
+                        return e.setAttribute("type", t), n && (e.value = n), t
+                    }
+                }
+            }
+        },
+        removeAttr: function(e, t) {
+            var n, r = 0,
+                i = t && t.match(P);
+            if (i && 1 === e.nodeType)
+                while (n = i[r++]) e.removeAttribute(n)
+        }
+    }), ct = {
+        set: function(e, t, n) {
+            return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n
+        }
+    }, S.each(S.expr.match.bool.source.match(/\w+/g), function(e, t) {
+        var a = ft[t] || S.find.attr;
+        ft[t] = function(e, t, n) {
+            var r, i, o = t.toLowerCase();
+            return n || (i = ft[o], ft[o] = r, r = null != a(e, t, n) ? o : null, ft[o] = i), r
+        }
+    });
+    var pt = /^(?:input|select|textarea|button)$/i,
+        dt = /^(?:a|area)$/i;
+
+    function ht(e) {
+        return (e.match(P) || []).join(" ")
+    }
+
+    function gt(e) {
+        return e.getAttribute && e.getAttribute("class") || ""
+    }
+
+    function vt(e) {
+        return Array.isArray(e) ? e : "string" == typeof e && e.match(P) || []
+    }
+    S.fn.extend({
+        prop: function(e, t) {
+            return $(this, S.prop, e, t, 1 < arguments.length)
+        },
+        removeProp: function(e) {
+            return this.each(function() {
+                delete this[S.propFix[e] || e]
+            })
+        }
+    }), S.extend({
+        prop: function(e, t, n) {
+            var r, i, o = e.nodeType;
+            if (3 !== o && 8 !== o && 2 !== o) return 1 === o && S.isXMLDoc(e) || (t = S.propFix[t] || t, i = S.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
+        },
+        propHooks: {
+            tabIndex: {
+                get: function(e) {
+                    var t = S.find.attr(e, "tabindex");
+                    return t ? parseInt(t, 10) : pt.test(e.nodeName) || dt.test(e.nodeName) && e.href ? 0 : -1
+                }
+            }
+        },
+        propFix: {
+            "for": "htmlFor",
+            "class": "className"
+        }
+    }), y.optSelected || (S.propHooks.selected = {
+        get: function(e) {
+            var t = e.parentNode;
+            return t && t.parentNode && t.parentNode.selectedIndex, null
+        },
+        set: function(e) {
+            var t = e.parentNode;
+            t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
+        }
+    }), S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
+        S.propFix[this.toLowerCase()] = this
+    }), S.fn.extend({
+        addClass: function(t) {
+            var e, n, r, i, o, a, s, u = 0;
+            if (m(t)) return this.each(function(e) {
+                S(this).addClass(t.call(this, e, gt(this)))
+            });
+            if ((e = vt(t)).length)
+                while (n = this[u++])
+                    if (i = gt(n), r = 1 === n.nodeType && " " + ht(i) + " ") {
+                        a = 0;
+                        while (o = e[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " ");
+                        i !== (s = ht(r)) && n.setAttribute("class", s)
+                    }
+            return this
+        },
+        removeClass: function(t) {
+            var e, n, r, i, o, a, s, u = 0;
+            if (m(t)) return this.each(function(e) {
+                S(this).removeClass(t.call(this, e, gt(this)))
+            });
+            if (!arguments.length) return this.attr("class", "");
+            if ((e = vt(t)).length)
+                while (n = this[u++])
+                    if (i = gt(n), r = 1 === n.nodeType && " " + ht(i) + " ") {
+                        a = 0;
+                        while (o = e[a++])
+                            while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " ");
+                        i !== (s = ht(r)) && n.setAttribute("class", s)
+                    }
+            return this
+        },
+        toggleClass: function(i, t) {
+            var o = typeof i,
+                a = "string" === o || Array.isArray(i);
+            return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function(e) {
+                S(this).toggleClass(i.call(this, e, gt(this), t), t)
+            }) : this.each(function() {
+                var e, t, n, r;
+                if (a) {
+                    t = 0, n = S(this), r = vt(i);
+                    while (e = r[t++]) n.hasClass(e) ? n.removeClass(e) : n.addClass(e)
+                } else void 0 !== i && "boolean" !== o || ((e = gt(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Y.get(this, "__className__") || ""))
+            })
+        },
+        hasClass: function(e) {
+            var t, n, r = 0;
+            t = " " + e + " ";
+            while (n = this[r++])
+                if (1 === n.nodeType && -1 < (" " + ht(gt(n)) + " ").indexOf(t)) return !0;
+            return !1
+        }
+    });
+    var yt = /\r/g;
+    S.fn.extend({
+        val: function(n) {
+            var r, e, i, t = this[0];
+            return arguments.length ? (i = m(n), this.each(function(e) {
+                var t;
+                1 === this.nodeType && (null == (t = i ? n.call(this, e, S(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = S.map(t, function(e) {
+                    return null == e ? "" : e + ""
+                })), (r = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t))
+            })) : t ? (r = S.valHooks[t.type] || S.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(yt, "") : null == e ? "" : e : void 0
+        }
+    }), S.extend({
+        valHooks: {
+            option: {
+                get: function(e) {
+                    var t = S.find.attr(e, "value");
+                    return null != t ? t : ht(S.text(e))
+                }
+            },
+            select: {
+                get: function(e) {
+                    var t, n, r, i = e.options,
+                        o = e.selectedIndex,
+                        a = "select-one" === e.type,
+                        s = a ? null : [],
+                        u = a ? o + 1 : i.length;
+                    for (r = o < 0 ? u : a ? o : 0; r < u; r++)
+                        if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) {
+                            if (t = S(n).val(), a) return t;
+                            s.push(t)
+                        }
+                    return s
+                },
+                set: function(e, t) {
+                    var n, r, i = e.options,
+                        o = S.makeArray(t),
+                        a = i.length;
+                    while (a--)((r = i[a]).selected = -1 < S.inArray(S.valHooks.option.get(r), o)) && (n = !0);
+                    return n || (e.selectedIndex = -1), o
+                }
+            }
+        }
+    }), S.each(["radio", "checkbox"], function() {
+        S.valHooks[this] = {
+            set: function(e, t) {
+                if (Array.isArray(t)) return e.checked = -1 < S.inArray(S(e).val(), t)
+            }
+        }, y.checkOn || (S.valHooks[this].get = function(e) {
+            return null === e.getAttribute("value") ? "on" : e.value
+        })
+    }), y.focusin = "onfocusin" in C;
+    var mt = /^(?:focusinfocus|focusoutblur)$/,
+        xt = function(e) {
+            e.stopPropagation()
+        };
+    S.extend(S.event, {
+        trigger: function(e, t, n, r) {
+            var i, o, a, s, u, l, c, f, p = [n || E],
+                d = v.call(e, "type") ? e.type : e,
+                h = v.call(e, "namespace") ? e.namespace.split(".") : [];
+            if (o = f = a = n = n || E, 3 !== n.nodeType && 8 !== n.nodeType && !mt.test(d + S.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[S.expando] ? e : new S.Event(d, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : S.makeArray(t, [e]), c = S.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
+                if (!r && !c.noBubble && !x(n)) {
+                    for (s = c.delegateType || d, mt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) p.push(o), a = o;
+                    a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C)
+                }
+                i = 0;
+                while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (Y.get(o, "events") || Object.create(null))[e.type] && Y.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && V(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault());
+                return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !V(n) || u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), S.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, xt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, xt), S.event.triggered = void 0, a && (n[u] = a)), e.result
+            }
+        },
+        simulate: function(e, t, n) {
+            var r = S.extend(new S.Event, n, {
+                type: e,
+                isSimulated: !0
+            });
+            S.event.trigger(r, null, t)
+        }
+    }), S.fn.extend({
+        trigger: function(e, t) {
+            return this.each(function() {
+                S.event.trigger(e, t, this)
+            })
+        },
+        triggerHandler: function(e, t) {
+            var n = this[0];
+            if (n) return S.event.trigger(e, t, n, !0)
+        }
+    }), y.focusin || S.each({
+        focus: "focusin",
+        blur: "focusout"
+    }, function(n, r) {
+        var i = function(e) {
+            S.event.simulate(r, e.target, S.event.fix(e))
+        };
+        S.event.special[r] = {
+            setup: function() {
+                var e = this.ownerDocument || this.document || this,
+                    t = Y.access(e, r);
+                t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1)
+            },
+            teardown: function() {
+                var e = this.ownerDocument || this.document || this,
+                    t = Y.access(e, r) - 1;
+                t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r))
+            }
+        }
+    });
+    var bt = C.location,
+        wt = {
+            guid: Date.now()
+        },
+        Tt = /\?/;
+    S.parseXML = function(e) {
+        var t, n;
+        if (!e || "string" != typeof e) return null;
+        try {
+            t = (new C.DOMParser).parseFromString(e, "text/xml")
+        } catch (e) {}
+        return n = t && t.getElementsByTagName("parsererror")[0], t && !n || S.error("Invalid XML: " + (n ? S.map(n.childNodes, function(e) {
+            return e.textContent
+        }).join("\n") : e)), t
+    };
+    var Ct = /\[\]$/,
+        Et = /\r?\n/g,
+        St = /^(?:submit|button|image|reset|file)$/i,
+        kt = /^(?:input|select|textarea|keygen)/i;
+
+    function At(n, e, r, i) {
+        var t;
+        if (Array.isArray(e)) S.each(e, function(e, t) {
+            r || Ct.test(n) ? i(n, t) : At(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
+        });
+        else if (r || "object" !== w(e)) i(n, e);
+        else
+            for (t in e) At(n + "[" + t + "]", e[t], r, i)
+    }
+    S.param = function(e, t) {
+        var n, r = [],
+            i = function(e, t) {
+                var n = m(t) ? t() : t;
+                r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
+            };
+        if (null == e) return "";
+        if (Array.isArray(e) || e.jquery && !S.isPlainObject(e)) S.each(e, function() {
+            i(this.name, this.value)
+        });
+        else
+            for (n in e) At(n, e[n], t, i);
+        return r.join("&")
+    }, S.fn.extend({
+        serialize: function() {
+            return S.param(this.serializeArray())
+        },
+        serializeArray: function() {
+            return this.map(function() {
+                var e = S.prop(this, "elements");
+                return e ? S.makeArray(e) : this
+            }).filter(function() {
+                var e = this.type;
+                return this.name && !S(this).is(":disabled") && kt.test(this.nodeName) && !St.test(e) && (this.checked || !pe.test(e))
+            }).map(function(e, t) {
+                var n = S(this).val();
+                return null == n ? null : Array.isArray(n) ? S.map(n, function(e) {
+                    return {
+                        name: t.name,
+                        value: e.replace(Et, "\r\n")
+                    }
+                }) : {
+                    name: t.name,
+                    value: n.replace(Et, "\r\n")
+                }
+            }).get()
+        }
+    });
+    var Nt = /%20/g,
+        jt = /#.*$/,
+        Dt = /([?&])_=[^&]*/,
+        qt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
+        Lt = /^(?:GET|HEAD)$/,
+        Ht = /^\/\//,
+        Ot = {},
+        Pt = {},
+        Rt = "*/".concat("*"),
+        Mt = E.createElement("a");
+
+    function It(o) {
+        return function(e, t) {
+            "string" != typeof e && (t = e, e = "*");
+            var n, r = 0,
+                i = e.toLowerCase().match(P) || [];
+            if (m(t))
+                while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
+        }
+    }
+
+    function Wt(t, i, o, a) {
+        var s = {},
+            u = t === Pt;
+
+        function l(e) {
+            var r;
+            return s[e] = !0, S.each(t[e] || [], function(e, t) {
+                var n = t(i, o, a);
+                return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1)
+            }), r
+        }
+        return l(i.dataTypes[0]) || !s["*"] && l("*")
+    }
+
+    function Ft(e, t) {
+        var n, r, i = S.ajaxSettings.flatOptions || {};
+        for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
+        return r && S.extend(!0, e, r), e
+    }
+    Mt.href = bt.href, S.extend({
+        active: 0,
+        lastModified: {},
+        etag: {},
+        ajaxSettings: {
+            url: bt.href,
+            type: "GET",
+            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),
+            global: !0,
+            processData: !0,
+            async: !0,
+            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+            accepts: {
+                "*": Rt,
+                text: "text/plain",
+                html: "text/html",
+                xml: "application/xml, text/xml",
+                json: "application/json, text/javascript"
+            },
+            contents: {
+                xml: /\bxml\b/,
+                html: /\bhtml/,
+                json: /\bjson\b/
+            },
+            responseFields: {
+                xml: "responseXML",
+                text: "responseText",
+                json: "responseJSON"
+            },
+            converters: {
+                "* text": String,
+                "text html": !0,
+                "text json": JSON.parse,
+                "text xml": S.parseXML
+            },
+            flatOptions: {
+                url: !0,
+                context: !0
+            }
+        },
+        ajaxSetup: function(e, t) {
+            return t ? Ft(Ft(e, S.ajaxSettings), t) : Ft(S.ajaxSettings, e)
+        },
+        ajaxPrefilter: It(Ot),
+        ajaxTransport: It(Pt),
+        ajax: function(e, t) {
+            "object" == typeof e && (t = e, e = void 0), t = t || {};
+            var c, f, p, n, d, r, h, g, i, o, v = S.ajaxSetup({}, t),
+                y = v.context || v,
+                m = v.context && (y.nodeType || y.jquery) ? S(y) : S.event,
+                x = S.Deferred(),
+                b = S.Callbacks("once memory"),
+                w = v.statusCode || {},
+                a = {},
+                s = {},
+                u = "canceled",
+                T = {
+                    readyState: 0,
+                    getResponseHeader: function(e) {
+                        var t;
+                        if (h) {
+                            if (!n) {
+                                n = {};
+                                while (t = qt.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2])
+                            }
+                            t = n[e.toLowerCase() + " "]
+                        }
+                        return null == t ? null : t.join(", ")
+                    },
+                    getAllResponseHeaders: function() {
+                        return h ? p : null
+                    },
+                    setRequestHeader: function(e, t) {
+                        return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this
+                    },
+                    overrideMimeType: function(e) {
+                        return null == h && (v.mimeType = e), this
+                    },
+                    statusCode: function(e) {
+                        var t;
+                        if (e)
+                            if (h) T.always(e[T.status]);
+                            else
+                                for (t in e) w[t] = [w[t], e[t]];
+                        return this
+                    },
+                    abort: function(e) {
+                        var t = e || u;
+                        return c && c.abort(t), l(0, t), this
+                    }
+                };
+            if (x.promise(T), v.url = ((e || v.url || bt.href) + "").replace(Ht, bt.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(P) || [""], null == v.crossDomain) {
+                r = E.createElement("a");
+                try {
+                    r.href = v.url, r.href = r.href, v.crossDomain = Mt.protocol + "//" + Mt.host != r.protocol + "//" + r.host
+                } catch (e) {
+                    v.crossDomain = !0
+                }
+            }
+            if (v.data && v.processData && "string" != typeof v.data && (v.data = S.param(v.data, v.traditional)), Wt(Ot, v, t, T), h) return T;
+            for (i in (g = S.event && v.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Lt.test(v.type), f = v.url.replace(jt, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Nt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (Tt.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(Dt, "$1"), o = (Tt.test(f) ? "&" : "?") + "_=" + wt.guid++ + o), v.url = f + o), v.ifModified && (S.lastModified[f] && T.setRequestHeader("If-Modified-Since", S.lastModified[f]), S.etag[f] && T.setRequestHeader("If-None-Match", S.etag[f])), (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + Rt + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]);
+            if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort();
+            if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = Wt(Pt, v, t, T)) {
+                if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T;
+                v.async && 0 < v.timeout && (d = C.setTimeout(function() {
+                    T.abort("timeout")
+                }, v.timeout));
+                try {
+                    h = !1, c.send(a, l)
+                } catch (e) {
+                    if (h) throw e;
+                    l(-1, e)
+                }
+            } else l(-1, "No Transport");
+
+            function l(e, t, n, r) {
+                var i, o, a, s, u, l = t;
+                h || (h = !0, d && C.clearTimeout(d), c = void 0, p = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function(e, t, n) {
+                    var r, i, o, a, s = e.contents,
+                        u = e.dataTypes;
+                    while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
+                    if (r)
+                        for (i in s)
+                            if (s[i] && s[i].test(r)) {
+                                u.unshift(i);
+                                break
+                            }
+                    if (u[0] in n) o = u[0];
+                    else {
+                        for (i in n) {
+                            if (!u[0] || e.converters[i + " " + u[0]]) {
+                                o = i;
+                                break
+                            }
+                            a || (a = i)
+                        }
+                        o = o || a
+                    }
+                    if (o) return o !== u[0] && u.unshift(o), n[o]
+                }(v, T, n)), !i && -1 < S.inArray("script", v.dataTypes) && S.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function() {}), s = function(e, t, n, r) {
+                    var i, o, a, s, u, l = {},
+                        c = e.dataTypes.slice();
+                    if (c[1])
+                        for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
+                    o = c.shift();
+                    while (o)
+                        if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift())
+                            if ("*" === o) o = u;
+                            else if ("*" !== u && u !== o) {
+                        if (!(a = l[u + " " + o] || l["* " + o]))
+                            for (i in l)
+                                if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
+                                    !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1]));
+                                    break
+                                }
+                        if (!0 !== a)
+                            if (a && e["throws"]) t = a(t);
+                            else try {
+                                t = a(t)
+                            } catch (e) {
+                                return {
+                                    state: "parsererror",
+                                    error: a ? e : "No conversion from " + u + " to " + o
+                                }
+                            }
+                    }
+                    return {
+                        state: "success",
+                        data: t
+                    }
+                }(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (S.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (S.etag[f] = u)), 204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state, o = s.data, i = !(a = s.error))) : (a = l, !e && l || (l = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || l) + "", i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), w = void 0, g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --S.active || S.event.trigger("ajaxStop")))
+            }
+            return T
+        },
+        getJSON: function(e, t, n) {
+            return S.get(e, t, n, "json")
+        },
+        getScript: function(e, t) {
+            return S.get(e, void 0, t, "script")
+        }
+    }), S.each(["get", "post"], function(e, i) {
+        S[i] = function(e, t, n, r) {
+            return m(t) && (r = r || n, n = t, t = void 0), S.ajax(S.extend({
+                url: e,
+                type: i,
+                dataType: r,
+                data: t,
+                success: n
+            }, S.isPlainObject(e) && e))
+        }
+    }), S.ajaxPrefilter(function(e) {
+        var t;
+        for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
+    }), S._evalUrl = function(e, t, n) {
+        return S.ajax({
+            url: e,
+            type: "GET",
+            dataType: "script",
+            cache: !0,
+            async: !1,
+            global: !1,
+            converters: {
+                "text script": function() {}
+            },
+            dataFilter: function(e) {
+                S.globalEval(e, t, n)
+            }
+        })
+    }, S.fn.extend({
+        wrapAll: function(e) {
+            var t;
+            return this[0] && (m(e) && (e = e.call(this[0])), t = S(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
+                var e = this;
+                while (e.firstElementChild) e = e.firstElementChild;
+                return e
+            }).append(this)), this
+        },
+        wrapInner: function(n) {
+            return m(n) ? this.each(function(e) {
+                S(this).wrapInner(n.call(this, e))
+            }) : this.each(function() {
+                var e = S(this),
+                    t = e.contents();
+                t.length ? t.wrapAll(n) : e.append(n)
+            })
+        },
+        wrap: function(t) {
+            var n = m(t);
+            return this.each(function(e) {
+                S(this).wrapAll(n ? t.call(this, e) : t)
+            })
+        },
+        unwrap: function(e) {
+            return this.parent(e).not("body").each(function() {
+                S(this).replaceWith(this.childNodes)
+            }), this
+        }
+    }), S.expr.pseudos.hidden = function(e) {
+        return !S.expr.pseudos.visible(e)
+    }, S.expr.pseudos.visible = function(e) {
+        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
+    }, S.ajaxSettings.xhr = function() {
+        try {
+            return new C.XMLHttpRequest
+        } catch (e) {}
+    };
+    var Bt = {
+            0: 200,
+            1223: 204
+        },
+        $t = S.ajaxSettings.xhr();
+    y.cors = !!$t && "withCredentials" in $t, y.ajax = $t = !!$t, S.ajaxTransport(function(i) {
+        var o, a;
+        if (y.cors || $t && !i.crossDomain) return {
+            send: function(e, t) {
+                var n, r = i.xhr();
+                if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)
+                    for (n in i.xhrFields) r[n] = i.xhrFields[n];
+                for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]);
+                o = function(e) {
+                    return function() {
+                        o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(Bt[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
+                            binary: r.response
+                        } : {
+                            text: r.responseText
+                        }, r.getAllResponseHeaders()))
+                    }
+                }, r.onload = o(), a = r.onerror = r.ontimeout = o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function() {
+                    4 === r.readyState && C.setTimeout(function() {
+                        o && a()
+                    })
+                }, o = o("abort");
+                try {
+                    r.send(i.hasContent && i.data || null)
+                } catch (e) {
+                    if (o) throw e
+                }
+            },
+            abort: function() {
+                o && o()
+            }
+        }
+    }), S.ajaxPrefilter(function(e) {
+        e.crossDomain && (e.contents.script = !1)
+    }), S.ajaxSetup({
+        accepts: {
+            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+        },
+        contents: {
+            script: /\b(?:java|ecma)script\b/
+        },
+        converters: {
+            "text script": function(e) {
+                return S.globalEval(e), e
+            }
+        }
+    }), S.ajaxPrefilter("script", function(e) {
+        void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
+    }), S.ajaxTransport("script", function(n) {
+        var r, i;
+        if (n.crossDomain || n.scriptAttrs) return {
+            send: function(e, t) {
+                r = S("<script>").attr(n.scriptAttrs || {}).prop({
+                    charset: n.scriptCharset,
+                    src: n.url
+                }).on("load error", i = function(e) {
+                    r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type)
+                }), E.head.appendChild(r[0])
+            },
+            abort: function() {
+                i && i()
+            }
+        }
+    });
+    var _t, zt = [],
+        Ut = /(=)\?(?=&|$)|\?\?/;
+    S.ajaxSetup({
+        jsonp: "callback",
+        jsonpCallback: function() {
+            var e = zt.pop() || S.expando + "_" + wt.guid++;
+            return this[e] = !0, e
+        }
+    }), S.ajaxPrefilter("json jsonp", function(e, t, n) {
+        var r, i, o, a = !1 !== e.jsonp && (Ut.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Ut.test(e.data) && "data");
+        if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Ut, "$1" + r) : !1 !== e.jsonp && (e.url += (Tt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
+            return o || S.error(r + " was not called"), o[0]
+        }, e.dataTypes[0] = "json", i = C[r], C[r] = function() {
+            o = arguments
+        }, n.always(function() {
+            void 0 === i ? S(C).removeProp(r) : C[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, zt.push(r)), o && m(i) && i(o[0]), o = i = void 0
+        }), "script"
+    }), y.createHTMLDocument = ((_t = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === _t.childNodes.length), S.parseHTML = function(e, t, n) {
+        return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = E.implementation.createHTMLDocument("")).createElement("base")).href = E.location.href, t.head.appendChild(r)) : t = E), o = !n && [], (i = N.exec(e)) ? [t.createElement(i[1])] : (i = xe([e], t, o), o && o.length && S(o).remove(), S.merge([], i.childNodes)));
+        var r, i, o
+    }, S.fn.load = function(e, t, n) {
+        var r, i, o, a = this,
+            s = e.indexOf(" ");
+        return -1 < s && (r = ht(e.slice(s)), e = e.slice(0, s)), m(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && S.ajax({
+            url: e,
+            type: i || "GET",
+            dataType: "html",
+            data: t
+        }).done(function(e) {
+            o = arguments, a.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e)
+        }).always(n && function(e, t) {
+            a.each(function() {
+                n.apply(this, o || [e.responseText, t, e])
+            })
+        }), this
+    }, S.expr.pseudos.animated = function(t) {
+        return S.grep(S.timers, function(e) {
+            return t === e.elem
+        }).length
+    }, S.offset = {
+        setOffset: function(e, t, n) {
+            var r, i, o, a, s, u, l = S.css(e, "position"),
+                c = S(e),
+                f = {};
+            "static" === l && (e.style.position = "relative"), s = c.offset(), o = S.css(e, "top"), u = S.css(e, "left"), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), m(t) && (t = t.call(e, n, S.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : c.css(f)
+        }
+    }, S.fn.extend({
+        offset: function(t) {
+            if (arguments.length) return void 0 === t ? this : this.each(function(e) {
+                S.offset.setOffset(this, t, e)
+            });
+            var e, n, r = this[0];
+            return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
+                top: e.top + n.pageYOffset,
+                left: e.left + n.pageXOffset
+            }) : {
+                top: 0,
+                left: 0
+            } : void 0
+        },
+        position: function() {
+            if (this[0]) {
+                var e, t, n, r = this[0],
+                    i = {
+                        top: 0,
+                        left: 0
+                    };
+                if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect();
+                else {
+                    t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement;
+                    while (e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position")) e = e.parentNode;
+                    e && e !== r && 1 === e.nodeType && ((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0), i.left += S.css(e, "borderLeftWidth", !0))
+                }
+                return {
+                    top: t.top - i.top - S.css(r, "marginTop", !0),
+                    left: t.left - i.left - S.css(r, "marginLeft", !0)
+                }
+            }
+        },
+        offsetParent: function() {
+            return this.map(function() {
+                var e = this.offsetParent;
+                while (e && "static" === S.css(e, "position")) e = e.offsetParent;
+                return e || re
+            })
+        }
+    }), S.each({
+        scrollLeft: "pageXOffset",
+        scrollTop: "pageYOffset"
+    }, function(t, i) {
+        var o = "pageYOffset" === i;
+        S.fn[t] = function(e) {
+            return $(this, function(e, t, n) {
+                var r;
+                if (x(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t];
+                r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n
+            }, t, e, arguments.length)
+        }
+    }), S.each(["top", "left"], function(e, n) {
+        S.cssHooks[n] = Fe(y.pixelPosition, function(e, t) {
+            if (t) return t = We(e, n), Pe.test(t) ? S(e).position()[n] + "px" : t
+        })
+    }), S.each({
+        Height: "height",
+        Width: "width"
+    }, function(a, s) {
+        S.each({
+            padding: "inner" + a,
+            content: s,
+            "": "outer" + a
+        }, function(r, o) {
+            S.fn[o] = function(e, t) {
+                var n = arguments.length && (r || "boolean" != typeof e),
+                    i = r || (!0 === e || !0 === t ? "margin" : "border");
+                return $(this, function(e, t, n) {
+                    var r;
+                    return x(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? S.css(e, t, i) : S.style(e, t, n, i)
+                }, s, n ? e : void 0, n)
+            }
+        })
+    }), S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
+        S.fn[t] = function(e) {
+            return this.on(t, e)
+        }
+    }), S.fn.extend({
+        bind: function(e, t, n) {
+            return this.on(e, null, t, n)
+        },
+        unbind: function(e, t) {
+            return this.off(e, null, t)
+        },
+        delegate: function(e, t, n, r) {
+            return this.on(t, e, n, r)
+        },
+        undelegate: function(e, t, n) {
+            return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
+        },
+        hover: function(e, t) {
+            return this.mouseenter(e).mouseleave(t || e)
+        }
+    }), S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, n) {
+        S.fn[n] = function(e, t) {
+            return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
+        }
+    });
+    var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+    S.proxy = function(e, t) {
+        var n, r, i;
+        if ("string" == typeof t && (n = e[t], t = e, e = n), m(e)) return r = s.call(arguments, 2), (i = function() {
+            return e.apply(t || this, r.concat(s.call(arguments)))
+        }).guid = e.guid = e.guid || S.guid++, i
+    }, S.holdReady = function(e) {
+        e ? S.readyWait++ : S.ready(!0)
+    }, S.isArray = Array.isArray, S.parseJSON = JSON.parse, S.nodeName = A, S.isFunction = m, S.isWindow = x, S.camelCase = X, S.type = w, S.now = Date.now, S.isNumeric = function(e) {
+        var t = S.type(e);
+        return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
+    }, S.trim = function(e) {
+        return null == e ? "" : (e + "").replace(Xt, "")
+    }, "function" == typeof define && define.amd && define("jquery", [], function() {
+        return S
+    });
+    var Vt = C.jQuery,
+        Gt = C.$;
+    return S.noConflict = function(e) {
+        return C.$ === S && (C.$ = Gt), e && C.jQuery === S && (C.jQuery = Vt), S
+    }, "undefined" == typeof e && (C.jQuery = C.$ = S), S
+});
\ No newline at end of file
diff --git a/js/plugins.js b/js/plugins.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f8acbf1b140208d407f2e630886bd5aec217012
--- /dev/null
+++ b/js/plugins.js
@@ -0,0 +1,2982 @@
+/*
+ * Copyright (c) 2024 SRBThemes
+ * Author: SRBThemes
+ * This file is made for CURRENT TEMPLATE
+ */
+
+
+/*
+	List of plugins
+	
+	1. Waypoints
+	2. Isotope
+	
+	
+*/
+
+/*------------------------------------------------------------------*/
+/*	 WAYPOINTS
+/*------------------------------------------------------------------*/
+
+/*!
+Waypoints - 4.0.1
+Copyright © 2011-2016 Caleb Troughton
+Licensed under the MIT license.
+https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
+*/
+! function() {
+    "use strict";
+
+    function t(o) {
+        if (!o) throw new Error("No options passed to Waypoint constructor");
+        if (!o.element) throw new Error("No element option passed to Waypoint constructor");
+        if (!o.handler) throw new Error("No handler option passed to Waypoint constructor");
+        this.key = "waypoint-" + e, this.options = t.Adapter.extend({}, t.defaults, o), this.element = this.options.element, this.adapter = new t.Adapter(this.element), this.callback = o.handler, this.axis = this.options.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this.group = t.Group.findOrCreate({
+            name: this.options.group,
+            axis: this.axis
+        }), this.context = t.Context.findOrCreateByElement(this.options.context), t.offsetAliases[this.options.offset] && (this.options.offset = t.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), i[this.key] = this, e += 1
+    }
+    var e = 0,
+        i = {};
+    t.prototype.queueTrigger = function(t) {
+        this.group.queueTrigger(this, t)
+    }, t.prototype.trigger = function(t) {
+        this.enabled && this.callback && this.callback.apply(this, t)
+    }, t.prototype.destroy = function() {
+        this.context.remove(this), this.group.remove(this), delete i[this.key]
+    }, t.prototype.disable = function() {
+        return this.enabled = !1, this
+    }, t.prototype.enable = function() {
+        return this.context.refresh(), this.enabled = !0, this
+    }, t.prototype.next = function() {
+        return this.group.next(this)
+    }, t.prototype.previous = function() {
+        return this.group.previous(this)
+    }, t.invokeAll = function(t) {
+        var e = [];
+        for (var o in i) e.push(i[o]);
+        for (var n = 0, r = e.length; r > n; n++) e[n][t]()
+    }, t.destroyAll = function() {
+        t.invokeAll("destroy")
+    }, t.disableAll = function() {
+        t.invokeAll("disable")
+    }, t.enableAll = function() {
+        t.Context.refreshAll();
+        for (var e in i) i[e].enabled = !0;
+        return this
+    }, t.refreshAll = function() {
+        t.Context.refreshAll()
+    }, t.viewportHeight = function() {
+        return window.innerHeight || document.documentElement.clientHeight
+    }, t.viewportWidth = function() {
+        return document.documentElement.clientWidth
+    }, t.adapters = [], t.defaults = {
+        context: window,
+        continuous: !0,
+        enabled: !0,
+        group: "default",
+        horizontal: !1,
+        offset: 0
+    }, t.offsetAliases = {
+        "bottom-in-view": function() {
+            return this.context.innerHeight() - this.adapter.outerHeight()
+        },
+        "right-in-view": function() {
+            return this.context.innerWidth() - this.adapter.outerWidth()
+        }
+    }, window.Waypoint = t
+}(),
+function() {
+    "use strict";
+
+    function t(t) {
+        window.setTimeout(t, 1e3 / 60)
+    }
+
+    function e(t) {
+        this.element = t, this.Adapter = n.Adapter, this.adapter = new this.Adapter(t), this.key = "waypoint-context-" + i, this.didScroll = !1, this.didResize = !1, this.oldScroll = {
+            x: this.adapter.scrollLeft(),
+            y: this.adapter.scrollTop()
+        }, this.waypoints = {
+            vertical: {},
+            horizontal: {}
+        }, t.waypointContextKey = this.key, o[t.waypointContextKey] = this, i += 1, n.windowContext || (n.windowContext = !0, n.windowContext = new e(window)), this.createThrottledScrollHandler(), this.createThrottledResizeHandler()
+    }
+    var i = 0,
+        o = {},
+        n = window.Waypoint,
+        r = window.onload;
+    e.prototype.add = function(t) {
+        var e = t.options.horizontal ? "horizontal" : "vertical";
+        this.waypoints[e][t.key] = t, this.refresh()
+    }, e.prototype.checkEmpty = function() {
+        var t = this.Adapter.isEmptyObject(this.waypoints.horizontal),
+            e = this.Adapter.isEmptyObject(this.waypoints.vertical),
+            i = this.element == this.element.window;
+        t && e && !i && (this.adapter.off(".waypoints"), delete o[this.key])
+    }, e.prototype.createThrottledResizeHandler = function() {
+        function t() {
+            e.handleResize(), e.didResize = !1
+        }
+        var e = this;
+        this.adapter.on("resize.waypoints", function() {
+            e.didResize || (e.didResize = !0, n.requestAnimationFrame(t))
+        })
+    }, e.prototype.createThrottledScrollHandler = function() {
+        function t() {
+            e.handleScroll(), e.didScroll = !1
+        }
+        var e = this;
+        this.adapter.on("scroll.waypoints", function() {
+            (!e.didScroll || n.isTouch) && (e.didScroll = !0, n.requestAnimationFrame(t))
+        })
+    }, e.prototype.handleResize = function() {
+        n.Context.refreshAll()
+    }, e.prototype.handleScroll = function() {
+        var t = {},
+            e = {
+                horizontal: {
+                    newScroll: this.adapter.scrollLeft(),
+                    oldScroll: this.oldScroll.x,
+                    forward: "right",
+                    backward: "left"
+                },
+                vertical: {
+                    newScroll: this.adapter.scrollTop(),
+                    oldScroll: this.oldScroll.y,
+                    forward: "down",
+                    backward: "up"
+                }
+            };
+        for (var i in e) {
+            var o = e[i],
+                n = o.newScroll > o.oldScroll,
+                r = n ? o.forward : o.backward;
+            for (var s in this.waypoints[i]) {
+                var a = this.waypoints[i][s];
+                if (null !== a.triggerPoint) {
+                    var l = o.oldScroll < a.triggerPoint,
+                        h = o.newScroll >= a.triggerPoint,
+                        p = l && h,
+                        u = !l && !h;
+                    (p || u) && (a.queueTrigger(r), t[a.group.id] = a.group)
+                }
+            }
+        }
+        for (var c in t) t[c].flushTriggers();
+        this.oldScroll = {
+            x: e.horizontal.newScroll,
+            y: e.vertical.newScroll
+        }
+    }, e.prototype.innerHeight = function() {
+        return this.element == this.element.window ? n.viewportHeight() : this.adapter.innerHeight()
+    }, e.prototype.remove = function(t) {
+        delete this.waypoints[t.axis][t.key], this.checkEmpty()
+    }, e.prototype.innerWidth = function() {
+        return this.element == this.element.window ? n.viewportWidth() : this.adapter.innerWidth()
+    }, e.prototype.destroy = function() {
+        var t = [];
+        for (var e in this.waypoints)
+            for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]);
+        for (var o = 0, n = t.length; n > o; o++) t[o].destroy()
+    }, e.prototype.refresh = function() {
+        var t, e = this.element == this.element.window,
+            i = e ? void 0 : this.adapter.offset(),
+            o = {};
+        this.handleScroll(), t = {
+            horizontal: {
+                contextOffset: e ? 0 : i.left,
+                contextScroll: e ? 0 : this.oldScroll.x,
+                contextDimension: this.innerWidth(),
+                oldScroll: this.oldScroll.x,
+                forward: "right",
+                backward: "left",
+                offsetProp: "left"
+            },
+            vertical: {
+                contextOffset: e ? 0 : i.top,
+                contextScroll: e ? 0 : this.oldScroll.y,
+                contextDimension: this.innerHeight(),
+                oldScroll: this.oldScroll.y,
+                forward: "down",
+                backward: "up",
+                offsetProp: "top"
+            }
+        };
+        for (var r in t) {
+            var s = t[r];
+            for (var a in this.waypoints[r]) {
+                var l, h, p, u, c, d = this.waypoints[r][a],
+                    f = d.options.offset,
+                    w = d.triggerPoint,
+                    y = 0,
+                    g = null == w;
+                d.element !== d.element.window && (y = d.adapter.offset()[s.offsetProp]), "function" == typeof f ? f = f.apply(d) : "string" == typeof f && (f = parseFloat(f), d.options.offset.indexOf("%") > -1 && (f = Math.ceil(s.contextDimension * f / 100))), l = s.contextScroll - s.contextOffset, d.triggerPoint = Math.floor(y + l - f), h = w < s.oldScroll, p = d.triggerPoint >= s.oldScroll, u = h && p, c = !h && !p, !g && u ? (d.queueTrigger(s.backward), o[d.group.id] = d.group) : !g && c ? (d.queueTrigger(s.forward), o[d.group.id] = d.group) : g && s.oldScroll >= d.triggerPoint && (d.queueTrigger(s.forward), o[d.group.id] = d.group)
+            }
+        }
+        return n.requestAnimationFrame(function() {
+            for (var t in o) o[t].flushTriggers()
+        }), this
+    }, e.findOrCreateByElement = function(t) {
+        return e.findByElement(t) || new e(t)
+    }, e.refreshAll = function() {
+        for (var t in o) o[t].refresh()
+    }, e.findByElement = function(t) {
+        return o[t.waypointContextKey]
+    }, window.onload = function() {
+        r && r(), e.refreshAll()
+    }, n.requestAnimationFrame = function(e) {
+        var i = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || t;
+        i.call(window, e)
+    }, n.Context = e
+}(),
+function() {
+    "use strict";
+
+    function t(t, e) {
+        return t.triggerPoint - e.triggerPoint
+    }
+
+    function e(t, e) {
+        return e.triggerPoint - t.triggerPoint
+    }
+
+    function i(t) {
+        this.name = t.name, this.axis = t.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this.clearTriggerQueues(), o[this.axis][this.name] = this
+    }
+    var o = {
+            vertical: {},
+            horizontal: {}
+        },
+        n = window.Waypoint;
+    i.prototype.add = function(t) {
+        this.waypoints.push(t)
+    }, i.prototype.clearTriggerQueues = function() {
+        this.triggerQueues = {
+            up: [],
+            down: [],
+            left: [],
+            right: []
+        }
+    }, i.prototype.flushTriggers = function() {
+        for (var i in this.triggerQueues) {
+            var o = this.triggerQueues[i],
+                n = "up" === i || "left" === i;
+            o.sort(n ? e : t);
+            for (var r = 0, s = o.length; s > r; r += 1) {
+                var a = o[r];
+                (a.options.continuous || r === o.length - 1) && a.trigger([i])
+            }
+        }
+        this.clearTriggerQueues()
+    }, i.prototype.next = function(e) {
+        this.waypoints.sort(t);
+        var i = n.Adapter.inArray(e, this.waypoints),
+            o = i === this.waypoints.length - 1;
+        return o ? null : this.waypoints[i + 1]
+    }, i.prototype.previous = function(e) {
+        this.waypoints.sort(t);
+        var i = n.Adapter.inArray(e, this.waypoints);
+        return i ? this.waypoints[i - 1] : null
+    }, i.prototype.queueTrigger = function(t, e) {
+        this.triggerQueues[e].push(t)
+    }, i.prototype.remove = function(t) {
+        var e = n.Adapter.inArray(t, this.waypoints);
+        e > -1 && this.waypoints.splice(e, 1)
+    }, i.prototype.first = function() {
+        return this.waypoints[0]
+    }, i.prototype.last = function() {
+        return this.waypoints[this.waypoints.length - 1]
+    }, i.findOrCreate = function(t) {
+        return o[t.axis][t.name] || new i(t)
+    }, n.Group = i
+}(),
+function() {
+    "use strict";
+
+    function t(t) {
+        this.$element = e(t)
+    }
+    var e = window.jQuery,
+        i = window.Waypoint;
+    e.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"], function(e, i) {
+        t.prototype[i] = function() {
+            var t = Array.prototype.slice.call(arguments);
+            return this.$element[i].apply(this.$element, t)
+        }
+    }), e.each(["extend", "inArray", "isEmptyObject"], function(i, o) {
+        t[o] = e[o]
+    }), i.adapters.push({
+        name: "jquery",
+        Adapter: t
+    }), i.Adapter = t
+}(),
+function() {
+    "use strict";
+
+    function t(t) {
+        return function() {
+            var i = [],
+                o = arguments[0];
+            return t.isFunction(arguments[0]) && (o = t.extend({}, arguments[1]), o.handler = arguments[0]), this.each(function() {
+                var n = t.extend({}, o, {
+                    element: this
+                });
+                "string" == typeof n.context && (n.context = t(this).closest(n.context)[0]), i.push(new e(n))
+            }), i
+        }
+    }
+    var e = window.Waypoint;
+    window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto))
+}();
+
+
+
+/*!
+ * Isotope PACKAGED v3.0.6
+ *
+ * Licensed GPLv3 for open source use
+ * or Isotope Commercial License for commercial use
+ *
+ * https://isotope.metafizzy.co
+ * Copyright 2010-2018 Metafizzy
+ */
+
+! function(t, e) {
+    "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) {
+        return e(t, i)
+    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
+}(window, function(t, e) {
+    "use strict";
+
+    function i(i, s, a) {
+        function u(t, e, o) {
+            var n, s = "$()." + i + '("' + e + '")';
+            return t.each(function(t, u) {
+                var h = a.data(u, i);
+                if (!h) return void r(i + " not initialized. Cannot call methods, i.e. " + s);
+                var d = h[e];
+                if (!d || "_" == e.charAt(0)) return void r(s + " is not a valid method");
+                var l = d.apply(h, o);
+                n = void 0 === n ? l : n
+            }), void 0 !== n ? n : t
+        }
+
+        function h(t, e) {
+            t.each(function(t, o) {
+                var n = a.data(o, i);
+                n ? (n.option(e), n._init()) : (n = new s(o, e), a.data(o, i, n))
+            })
+        }
+        a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function(t) {
+            a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
+        }), a.fn[i] = function(t) {
+            if ("string" == typeof t) {
+                var e = n.call(arguments, 1);
+                return u(this, t, e)
+            }
+            return h(this, t), this
+        }, o(a))
+    }
+
+    function o(t) {
+        !t || t && t.bridget || (t.bridget = i)
+    }
+    var n = Array.prototype.slice,
+        s = t.console,
+        r = "undefined" == typeof s ? function() {} : function(t) {
+            s.error(t)
+        };
+    return o(e || t.jQuery), i
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
+}("undefined" != typeof window ? window : this, function() {
+    function t() {}
+    var e = t.prototype;
+    return e.on = function(t, e) {
+        if (t && e) {
+            var i = this._events = this._events || {},
+                o = i[t] = i[t] || [];
+            return o.indexOf(e) == -1 && o.push(e), this
+        }
+    }, e.once = function(t, e) {
+        if (t && e) {
+            this.on(t, e);
+            var i = this._onceEvents = this._onceEvents || {},
+                o = i[t] = i[t] || {};
+            return o[e] = !0, this
+        }
+    }, e.off = function(t, e) {
+        var i = this._events && this._events[t];
+        if (i && i.length) {
+            var o = i.indexOf(e);
+            return o != -1 && i.splice(o, 1), this
+        }
+    }, e.emitEvent = function(t, e) {
+        var i = this._events && this._events[t];
+        if (i && i.length) {
+            i = i.slice(0), e = e || [];
+            for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) {
+                var s = i[n],
+                    r = o && o[s];
+                r && (this.off(t, s), delete o[s]), s.apply(this, e)
+            }
+            return this
+        }
+    }, e.allOff = function() {
+        delete this._events, delete this._onceEvents
+    }, t
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("get-size/get-size", e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
+}(window, function() {
+    "use strict";
+
+    function t(t) {
+        var e = parseFloat(t),
+            i = t.indexOf("%") == -1 && !isNaN(e);
+        return i && e
+    }
+
+    function e() {}
+
+    function i() {
+        for (var t = {
+                width: 0,
+                height: 0,
+                innerWidth: 0,
+                innerHeight: 0,
+                outerWidth: 0,
+                outerHeight: 0
+            }, e = 0; e < h; e++) {
+            var i = u[e];
+            t[i] = 0
+        }
+        return t
+    }
+
+    function o(t) {
+        var e = getComputedStyle(t);
+        return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e
+    }
+
+    function n() {
+        if (!d) {
+            d = !0;
+            var e = document.createElement("div");
+            e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
+            var i = document.body || document.documentElement;
+            i.appendChild(e);
+            var n = o(e);
+            r = 200 == Math.round(t(n.width)), s.isBoxSizeOuter = r, i.removeChild(e)
+        }
+    }
+
+    function s(e) {
+        if (n(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
+            var s = o(e);
+            if ("none" == s.display) return i();
+            var a = {};
+            a.width = e.offsetWidth, a.height = e.offsetHeight;
+            for (var d = a.isBorderBox = "border-box" == s.boxSizing, l = 0; l < h; l++) {
+                var f = u[l],
+                    c = s[f],
+                    m = parseFloat(c);
+                a[f] = isNaN(m) ? 0 : m
+            }
+            var p = a.paddingLeft + a.paddingRight,
+                y = a.paddingTop + a.paddingBottom,
+                g = a.marginLeft + a.marginRight,
+                v = a.marginTop + a.marginBottom,
+                _ = a.borderLeftWidth + a.borderRightWidth,
+                z = a.borderTopWidth + a.borderBottomWidth,
+                I = d && r,
+                x = t(s.width);
+            x !== !1 && (a.width = x + (I ? 0 : p + _));
+            var S = t(s.height);
+            return S !== !1 && (a.height = S + (I ? 0 : y + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (y + z), a.outerWidth = a.width + g, a.outerHeight = a.height + v, a
+        }
+    }
+    var r, a = "undefined" == typeof console ? e : function(t) {
+            console.error(t)
+        },
+        u = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
+        h = u.length,
+        d = !1;
+    return s
+}),
+function(t, e) {
+    "use strict";
+    "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
+}(window, function() {
+    "use strict";
+    var t = function() {
+        var t = window.Element.prototype;
+        if (t.matches) return "matches";
+        if (t.matchesSelector) return "matchesSelector";
+        for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
+            var o = e[i],
+                n = o + "MatchesSelector";
+            if (t[n]) return n
+        }
+    }();
+    return function(e, i) {
+        return e[t](i)
+    }
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) {
+        return e(t, i)
+    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
+}(window, function(t, e) {
+    var i = {};
+    i.extend = function(t, e) {
+        for (var i in e) t[i] = e[i];
+        return t
+    }, i.modulo = function(t, e) {
+        return (t % e + e) % e
+    };
+    var o = Array.prototype.slice;
+    i.makeArray = function(t) {
+        if (Array.isArray(t)) return t;
+        if (null === t || void 0 === t) return [];
+        var e = "object" == typeof t && "number" == typeof t.length;
+        return e ? o.call(t) : [t]
+    }, i.removeFrom = function(t, e) {
+        var i = t.indexOf(e);
+        i != -1 && t.splice(i, 1)
+    }, i.getParent = function(t, i) {
+        for (; t.parentNode && t != document.body;)
+            if (t = t.parentNode, e(t, i)) return t
+    }, i.getQueryElement = function(t) {
+        return "string" == typeof t ? document.querySelector(t) : t
+    }, i.handleEvent = function(t) {
+        var e = "on" + t.type;
+        this[e] && this[e](t)
+    }, i.filterFindElements = function(t, o) {
+        t = i.makeArray(t);
+        var n = [];
+        return t.forEach(function(t) {
+            if (t instanceof HTMLElement) {
+                if (!o) return void n.push(t);
+                e(t, o) && n.push(t);
+                for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++) n.push(i[s])
+            }
+        }), n
+    }, i.debounceMethod = function(t, e, i) {
+        i = i || 100;
+        var o = t.prototype[e],
+            n = e + "Timeout";
+        t.prototype[e] = function() {
+            var t = this[n];
+            clearTimeout(t);
+            var e = arguments,
+                s = this;
+            this[n] = setTimeout(function() {
+                o.apply(s, e), delete s[n]
+            }, i)
+        }
+    }, i.docReady = function(t) {
+        var e = document.readyState;
+        "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
+    }, i.toDashed = function(t) {
+        return t.replace(/(.)([A-Z])/g, function(t, e, i) {
+            return e + "-" + i
+        }).toLowerCase()
+    };
+    var n = t.console;
+    return i.htmlInit = function(e, o) {
+        i.docReady(function() {
+            var s = i.toDashed(o),
+                r = "data-" + s,
+                a = document.querySelectorAll("[" + r + "]"),
+                u = document.querySelectorAll(".js-" + s),
+                h = i.makeArray(a).concat(i.makeArray(u)),
+                d = r + "-options",
+                l = t.jQuery;
+            h.forEach(function(t) {
+                var i, s = t.getAttribute(r) || t.getAttribute(d);
+                try {
+                    i = s && JSON.parse(s)
+                } catch (a) {
+                    return void(n && n.error("Error parsing " + r + " on " + t.className + ": " + a))
+                }
+                var u = new e(t, i);
+                l && l.data(t, o, u)
+            })
+        })
+    }, i
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
+}(window, function(t, e) {
+    "use strict";
+
+    function i(t) {
+        for (var e in t) return !1;
+        return e = null, !0
+    }
+
+    function o(t, e) {
+        t && (this.element = t, this.layout = e, this.position = {
+            x: 0,
+            y: 0
+        }, this._create())
+    }
+
+    function n(t) {
+        return t.replace(/([A-Z])/g, function(t) {
+            return "-" + t.toLowerCase()
+        })
+    }
+    var s = document.documentElement.style,
+        r = "string" == typeof s.transition ? "transition" : "WebkitTransition",
+        a = "string" == typeof s.transform ? "transform" : "WebkitTransform",
+        u = {
+            WebkitTransition: "webkitTransitionEnd",
+            transition: "transitionend"
+        }[r],
+        h = {
+            transform: a,
+            transition: r,
+            transitionDuration: r + "Duration",
+            transitionProperty: r + "Property",
+            transitionDelay: r + "Delay"
+        },
+        d = o.prototype = Object.create(t.prototype);
+    d.constructor = o, d._create = function() {
+        this._transn = {
+            ingProperties: {},
+            clean: {},
+            onEnd: {}
+        }, this.css({
+            position: "absolute"
+        })
+    }, d.handleEvent = function(t) {
+        var e = "on" + t.type;
+        this[e] && this[e](t)
+    }, d.getSize = function() {
+        this.size = e(this.element)
+    }, d.css = function(t) {
+        var e = this.element.style;
+        for (var i in t) {
+            var o = h[i] || i;
+            e[o] = t[i]
+        }
+    }, d.getPosition = function() {
+        var t = getComputedStyle(this.element),
+            e = this.layout._getOption("originLeft"),
+            i = this.layout._getOption("originTop"),
+            o = t[e ? "left" : "right"],
+            n = t[i ? "top" : "bottom"],
+            s = parseFloat(o),
+            r = parseFloat(n),
+            a = this.layout.size;
+        o.indexOf("%") != -1 && (s = s / 100 * a.width), n.indexOf("%") != -1 && (r = r / 100 * a.height), s = isNaN(s) ? 0 : s, r = isNaN(r) ? 0 : r, s -= e ? a.paddingLeft : a.paddingRight, r -= i ? a.paddingTop : a.paddingBottom, this.position.x = s, this.position.y = r
+    }, d.layoutPosition = function() {
+        var t = this.layout.size,
+            e = {},
+            i = this.layout._getOption("originLeft"),
+            o = this.layout._getOption("originTop"),
+            n = i ? "paddingLeft" : "paddingRight",
+            s = i ? "left" : "right",
+            r = i ? "right" : "left",
+            a = this.position.x + t[n];
+        e[s] = this.getXValue(a), e[r] = "";
+        var u = o ? "paddingTop" : "paddingBottom",
+            h = o ? "top" : "bottom",
+            d = o ? "bottom" : "top",
+            l = this.position.y + t[u];
+        e[h] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this])
+    }, d.getXValue = function(t) {
+        var e = this.layout._getOption("horizontal");
+        return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
+    }, d.getYValue = function(t) {
+        var e = this.layout._getOption("horizontal");
+        return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
+    }, d._transitionTo = function(t, e) {
+        this.getPosition();
+        var i = this.position.x,
+            o = this.position.y,
+            n = t == this.position.x && e == this.position.y;
+        if (this.setPosition(t, e), n && !this.isTransitioning) return void this.layoutPosition();
+        var s = t - i,
+            r = e - o,
+            a = {};
+        a.transform = this.getTranslate(s, r), this.transition({
+            to: a,
+            onTransitionEnd: {
+                transform: this.layoutPosition
+            },
+            isCleaning: !0
+        })
+    }, d.getTranslate = function(t, e) {
+        var i = this.layout._getOption("originLeft"),
+            o = this.layout._getOption("originTop");
+        return t = i ? t : -t, e = o ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)"
+    }, d.goTo = function(t, e) {
+        this.setPosition(t, e), this.layoutPosition()
+    }, d.moveTo = d._transitionTo, d.setPosition = function(t, e) {
+        this.position.x = parseFloat(t), this.position.y = parseFloat(e)
+    }, d._nonTransition = function(t) {
+        this.css(t.to), t.isCleaning && this._removeStyles(t.to);
+        for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this)
+    }, d.transition = function(t) {
+        if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
+        var e = this._transn;
+        for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i];
+        for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
+        if (t.from) {
+            this.css(t.from);
+            var o = this.element.offsetHeight;
+            o = null
+        }
+        this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
+    };
+    var l = "opacity," + n(a);
+    d.enableTransition = function() {
+        if (!this.isTransitioning) {
+            var t = this.layout.options.transitionDuration;
+            t = "number" == typeof t ? t + "ms" : t, this.css({
+                transitionProperty: l,
+                transitionDuration: t,
+                transitionDelay: this.staggerDelay || 0
+            }), this.element.addEventListener(u, this, !1)
+        }
+    }, d.onwebkitTransitionEnd = function(t) {
+        this.ontransitionend(t)
+    }, d.onotransitionend = function(t) {
+        this.ontransitionend(t)
+    };
+    var f = {
+        "-webkit-transform": "transform"
+    };
+    d.ontransitionend = function(t) {
+        if (t.target === this.element) {
+            var e = this._transn,
+                o = f[t.propertyName] || t.propertyName;
+            if (delete e.ingProperties[o], i(e.ingProperties) && this.disableTransition(), o in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[o]), o in e.onEnd) {
+                var n = e.onEnd[o];
+                n.call(this), delete e.onEnd[o]
+            }
+            this.emitEvent("transitionEnd", [this])
+        }
+    }, d.disableTransition = function() {
+        this.removeTransitionStyles(), this.element.removeEventListener(u, this, !1), this.isTransitioning = !1
+    }, d._removeStyles = function(t) {
+        var e = {};
+        for (var i in t) e[i] = "";
+        this.css(e)
+    };
+    var c = {
+        transitionProperty: "",
+        transitionDuration: "",
+        transitionDelay: ""
+    };
+    return d.removeTransitionStyles = function() {
+        this.css(c)
+    }, d.stagger = function(t) {
+        t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
+    }, d.removeElem = function() {
+        this.element.parentNode.removeChild(this.element), this.css({
+            display: ""
+        }), this.emitEvent("remove", [this])
+    }, d.remove = function() {
+        return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
+            this.removeElem()
+        }), void this.hide()) : void this.removeElem()
+    }, d.reveal = function() {
+        delete this.isHidden, this.css({
+            display: ""
+        });
+        var t = this.layout.options,
+            e = {},
+            i = this.getHideRevealTransitionEndProperty("visibleStyle");
+        e[i] = this.onRevealTransitionEnd, this.transition({
+            from: t.hiddenStyle,
+            to: t.visibleStyle,
+            isCleaning: !0,
+            onTransitionEnd: e
+        })
+    }, d.onRevealTransitionEnd = function() {
+        this.isHidden || this.emitEvent("reveal")
+    }, d.getHideRevealTransitionEndProperty = function(t) {
+        var e = this.layout.options[t];
+        if (e.opacity) return "opacity";
+        for (var i in e) return i
+    }, d.hide = function() {
+        this.isHidden = !0, this.css({
+            display: ""
+        });
+        var t = this.layout.options,
+            e = {},
+            i = this.getHideRevealTransitionEndProperty("hiddenStyle");
+        e[i] = this.onHideTransitionEnd, this.transition({
+            from: t.visibleStyle,
+            to: t.hiddenStyle,
+            isCleaning: !0,
+            onTransitionEnd: e
+        })
+    }, d.onHideTransitionEnd = function() {
+        this.isHidden && (this.css({
+            display: "none"
+        }), this.emitEvent("hide"))
+    }, d.destroy = function() {
+        this.css({
+            position: "",
+            left: "",
+            right: "",
+            top: "",
+            bottom: "",
+            transition: "",
+            transform: ""
+        })
+    }, o
+}),
+function(t, e) {
+    "use strict";
+    "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, o, n, s) {
+        return e(t, i, o, n, s)
+    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
+}(window, function(t, e, i, o, n) {
+    "use strict";
+
+    function s(t, e) {
+        var i = o.getQueryElement(t);
+        if (!i) return void(u && u.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
+        this.element = i, h && (this.$element = h(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e);
+        var n = ++l;
+        this.element.outlayerGUID = n, f[n] = this, this._create();
+        var s = this._getOption("initLayout");
+        s && this.layout()
+    }
+
+    function r(t) {
+        function e() {
+            t.apply(this, arguments)
+        }
+        return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
+    }
+
+    function a(t) {
+        if ("number" == typeof t) return t;
+        var e = t.match(/(^\d*\.?\d*)(\w*)/),
+            i = e && e[1],
+            o = e && e[2];
+        if (!i.length) return 0;
+        i = parseFloat(i);
+        var n = m[o] || 1;
+        return i * n
+    }
+    var u = t.console,
+        h = t.jQuery,
+        d = function() {},
+        l = 0,
+        f = {};
+    s.namespace = "outlayer", s.Item = n, s.defaults = {
+        containerStyle: {
+            position: "relative"
+        },
+        initLayout: !0,
+        originLeft: !0,
+        originTop: !0,
+        resize: !0,
+        resizeContainer: !0,
+        transitionDuration: "0.4s",
+        hiddenStyle: {
+            opacity: 0,
+            transform: "scale(0.001)"
+        },
+        visibleStyle: {
+            opacity: 1,
+            transform: "scale(1)"
+        }
+    };
+    var c = s.prototype;
+    o.extend(c, e.prototype), c.option = function(t) {
+        o.extend(this.options, t)
+    }, c._getOption = function(t) {
+        var e = this.constructor.compatOptions[t];
+        return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
+    }, s.compatOptions = {
+        initLayout: "isInitLayout",
+        horizontal: "isHorizontal",
+        layoutInstant: "isLayoutInstant",
+        originLeft: "isOriginLeft",
+        originTop: "isOriginTop",
+        resize: "isResizeBound",
+        resizeContainer: "isResizingContainer"
+    }, c._create = function() {
+        this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle);
+        var t = this._getOption("resize");
+        t && this.bindResize()
+    }, c.reloadItems = function() {
+        this.items = this._itemize(this.element.children)
+    }, c._itemize = function(t) {
+        for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) {
+            var s = e[n],
+                r = new i(s, this);
+            o.push(r)
+        }
+        return o
+    }, c._filterFindItemElements = function(t) {
+        return o.filterFindElements(t, this.options.itemSelector)
+    }, c.getItemElements = function() {
+        return this.items.map(function(t) {
+            return t.element
+        })
+    }, c.layout = function() {
+        this._resetLayout(), this._manageStamps();
+        var t = this._getOption("layoutInstant"),
+            e = void 0 !== t ? t : !this._isLayoutInited;
+        this.layoutItems(this.items, e), this._isLayoutInited = !0
+    }, c._init = c.layout, c._resetLayout = function() {
+        this.getSize()
+    }, c.getSize = function() {
+        this.size = i(this.element)
+    }, c._getMeasurement = function(t, e) {
+        var o, n = this.options[t];
+        n ? ("string" == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n), this[t] = o ? i(o)[e] : n) : this[t] = 0
+    }, c.layoutItems = function(t, e) {
+        t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
+    }, c._getItemsForLayout = function(t) {
+        return t.filter(function(t) {
+            return !t.isIgnored
+        })
+    }, c._layoutItems = function(t, e) {
+        if (this._emitCompleteOnItems("layout", t), t && t.length) {
+            var i = [];
+            t.forEach(function(t) {
+                var o = this._getItemLayoutPosition(t);
+                o.item = t, o.isInstant = e || t.isLayoutInstant, i.push(o)
+            }, this), this._processLayoutQueue(i)
+        }
+    }, c._getItemLayoutPosition = function() {
+        return {
+            x: 0,
+            y: 0
+        }
+    }, c._processLayoutQueue = function(t) {
+        this.updateStagger(), t.forEach(function(t, e) {
+            this._positionItem(t.item, t.x, t.y, t.isInstant, e)
+        }, this)
+    }, c.updateStagger = function() {
+        var t = this.options.stagger;
+        return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger)
+    }, c._positionItem = function(t, e, i, o, n) {
+        o ? t.goTo(e, i) : (t.stagger(n * this.stagger), t.moveTo(e, i))
+    }, c._postLayout = function() {
+        this.resizeContainer()
+    }, c.resizeContainer = function() {
+        var t = this._getOption("resizeContainer");
+        if (t) {
+            var e = this._getContainerSize();
+            e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
+        }
+    }, c._getContainerSize = d, c._setContainerMeasure = function(t, e) {
+        if (void 0 !== t) {
+            var i = this.size;
+            i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
+        }
+    }, c._emitCompleteOnItems = function(t, e) {
+        function i() {
+            n.dispatchEvent(t + "Complete", null, [e])
+        }
+
+        function o() {
+            r++, r == s && i()
+        }
+        var n = this,
+            s = e.length;
+        if (!e || !s) return void i();
+        var r = 0;
+        e.forEach(function(e) {
+            e.once(t, o)
+        })
+    }, c.dispatchEvent = function(t, e, i) {
+        var o = e ? [e].concat(i) : i;
+        if (this.emitEvent(t, o), h)
+            if (this.$element = this.$element || h(this.element), e) {
+                var n = h.Event(e);
+                n.type = t, this.$element.trigger(n, i)
+            } else this.$element.trigger(t, i)
+    }, c.ignore = function(t) {
+        var e = this.getItem(t);
+        e && (e.isIgnored = !0)
+    }, c.unignore = function(t) {
+        var e = this.getItem(t);
+        e && delete e.isIgnored
+    }, c.stamp = function(t) {
+        t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
+    }, c.unstamp = function(t) {
+        t = this._find(t), t && t.forEach(function(t) {
+            o.removeFrom(this.stamps, t), this.unignore(t)
+        }, this)
+    }, c._find = function(t) {
+        if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), t = o.makeArray(t)
+    }, c._manageStamps = function() {
+        this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
+    }, c._getBoundingRect = function() {
+        var t = this.element.getBoundingClientRect(),
+            e = this.size;
+        this._boundingRect = {
+            left: t.left + e.paddingLeft + e.borderLeftWidth,
+            top: t.top + e.paddingTop + e.borderTopWidth,
+            right: t.right - (e.paddingRight + e.borderRightWidth),
+            bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
+        }
+    }, c._manageStamp = d, c._getElementOffset = function(t) {
+        var e = t.getBoundingClientRect(),
+            o = this._boundingRect,
+            n = i(t),
+            s = {
+                left: e.left - o.left - n.marginLeft,
+                top: e.top - o.top - n.marginTop,
+                right: o.right - e.right - n.marginRight,
+                bottom: o.bottom - e.bottom - n.marginBottom
+            };
+        return s
+    }, c.handleEvent = o.handleEvent, c.bindResize = function() {
+        t.addEventListener("resize", this), this.isResizeBound = !0
+    }, c.unbindResize = function() {
+        t.removeEventListener("resize", this), this.isResizeBound = !1
+    }, c.onresize = function() {
+        this.resize()
+    }, o.debounceMethod(s, "onresize", 100), c.resize = function() {
+        this.isResizeBound && this.needsResizeLayout() && this.layout()
+    }, c.needsResizeLayout = function() {
+        var t = i(this.element),
+            e = this.size && t;
+        return e && t.innerWidth !== this.size.innerWidth
+    }, c.addItems = function(t) {
+        var e = this._itemize(t);
+        return e.length && (this.items = this.items.concat(e)), e
+    }, c.appended = function(t) {
+        var e = this.addItems(t);
+        e.length && (this.layoutItems(e, !0), this.reveal(e))
+    }, c.prepended = function(t) {
+        var e = this._itemize(t);
+        if (e.length) {
+            var i = this.items.slice(0);
+            this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
+        }
+    }, c.reveal = function(t) {
+        if (this._emitCompleteOnItems("reveal", t), t && t.length) {
+            var e = this.updateStagger();
+            t.forEach(function(t, i) {
+                t.stagger(i * e), t.reveal()
+            })
+        }
+    }, c.hide = function(t) {
+        if (this._emitCompleteOnItems("hide", t), t && t.length) {
+            var e = this.updateStagger();
+            t.forEach(function(t, i) {
+                t.stagger(i * e), t.hide()
+            })
+        }
+    }, c.revealItemElements = function(t) {
+        var e = this.getItems(t);
+        this.reveal(e)
+    }, c.hideItemElements = function(t) {
+        var e = this.getItems(t);
+        this.hide(e)
+    }, c.getItem = function(t) {
+        for (var e = 0; e < this.items.length; e++) {
+            var i = this.items[e];
+            if (i.element == t) return i
+        }
+    }, c.getItems = function(t) {
+        t = o.makeArray(t);
+        var e = [];
+        return t.forEach(function(t) {
+            var i = this.getItem(t);
+            i && e.push(i)
+        }, this), e
+    }, c.remove = function(t) {
+        var e = this.getItems(t);
+        this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function(t) {
+            t.remove(), o.removeFrom(this.items, t)
+        }, this)
+    }, c.destroy = function() {
+        var t = this.element.style;
+        t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) {
+            t.destroy()
+        }), this.unbindResize();
+        var e = this.element.outlayerGUID;
+        delete f[e], delete this.element.outlayerGUID, h && h.removeData(this.element, this.constructor.namespace)
+    }, s.data = function(t) {
+        t = o.getQueryElement(t);
+        var e = t && t.outlayerGUID;
+        return e && f[e]
+    }, s.create = function(t, e) {
+        var i = r(s);
+        return i.defaults = o.extend({}, s.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r(n), o.htmlInit(i, t), h && h.bridget && h.bridget(t, i), i
+    };
+    var m = {
+        ms: 1,
+        s: 1e3
+    };
+    return s.Item = n, s
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
+}(window, function(t) {
+    "use strict";
+
+    function e() {
+        t.Item.apply(this, arguments)
+    }
+    var i = e.prototype = Object.create(t.Item.prototype),
+        o = i._create;
+    i._create = function() {
+        this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}
+    }, i.updateSortData = function() {
+        if (!this.isIgnored) {
+            this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
+            var t = this.layout.options.getSortData,
+                e = this.layout._sorters;
+            for (var i in t) {
+                var o = e[i];
+                this.sortData[i] = o(this.element, this)
+            }
+        }
+    };
+    var n = i.destroy;
+    return i.destroy = function() {
+        n.apply(this, arguments), this.css({
+            display: ""
+        })
+    }, e
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
+}(window, function(t, e) {
+    "use strict";
+
+    function i(t) {
+        this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
+    }
+    var o = i.prototype,
+        n = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
+    return n.forEach(function(t) {
+        o[t] = function() {
+            return e.prototype[t].apply(this.isotope, arguments)
+        }
+    }), o.needsVerticalResizeLayout = function() {
+        var e = t(this.isotope.element),
+            i = this.isotope.size && e;
+        return i && e.innerHeight != this.isotope.size.innerHeight
+    }, o._getMeasurement = function() {
+        this.isotope._getMeasurement.apply(this, arguments)
+    }, o.getColumnWidth = function() {
+        this.getSegmentSize("column", "Width")
+    }, o.getRowHeight = function() {
+        this.getSegmentSize("row", "Height")
+    }, o.getSegmentSize = function(t, e) {
+        var i = t + e,
+            o = "outer" + e;
+        if (this._getMeasurement(i, o), !this[i]) {
+            var n = this.getFirstItemSize();
+            this[i] = n && n[o] || this.isotope.size["inner" + e]
+        }
+    }, o.getFirstItemSize = function() {
+        var e = this.isotope.filteredItems[0];
+        return e && e.element && t(e.element)
+    }, o.layout = function() {
+        this.isotope.layout.apply(this.isotope, arguments)
+    }, o.getSize = function() {
+        this.isotope.getSize(), this.size = this.isotope.size
+    }, i.modes = {}, i.create = function(t, e) {
+        function n() {
+            i.apply(this, arguments)
+        }
+        return n.prototype = Object.create(o), n.prototype.constructor = n, e && (n.options = e), n.prototype.namespace = t, i.modes[t] = n, n
+    }, i
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
+}(window, function(t, e) {
+    var i = t.create("masonry");
+    i.compatOptions.fitWidth = "isFitWidth";
+    var o = i.prototype;
+    return o._resetLayout = function() {
+        this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
+        for (var t = 0; t < this.cols; t++) this.colYs.push(0);
+        this.maxY = 0, this.horizontalColIndex = 0
+    }, o.measureColumns = function() {
+        if (this.getContainerWidth(), !this.columnWidth) {
+            var t = this.items[0],
+                i = t && t.element;
+            this.columnWidth = i && e(i).outerWidth || this.containerWidth
+        }
+        var o = this.columnWidth += this.gutter,
+            n = this.containerWidth + this.gutter,
+            s = n / o,
+            r = o - n % o,
+            a = r && r < 1 ? "round" : "floor";
+        s = Math[a](s), this.cols = Math.max(s, 1)
+    }, o.getContainerWidth = function() {
+        var t = this._getOption("fitWidth"),
+            i = t ? this.element.parentNode : this.element,
+            o = e(i);
+        this.containerWidth = o && o.innerWidth
+    }, o._getItemLayoutPosition = function(t) {
+        t.getSize();
+        var e = t.size.outerWidth % this.columnWidth,
+            i = e && e < 1 ? "round" : "ceil",
+            o = Math[i](t.size.outerWidth / this.columnWidth);
+        o = Math.min(o, this.cols);
+        for (var n = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", s = this[n](o, t), r = {
+                x: this.columnWidth * s.col,
+                y: s.y
+            }, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++) this.colYs[h] = a;
+        return r
+    }, o._getTopColPosition = function(t) {
+        var e = this._getTopColGroup(t),
+            i = Math.min.apply(Math, e);
+        return {
+            col: e.indexOf(i),
+            y: i
+        }
+    }, o._getTopColGroup = function(t) {
+        if (t < 2) return this.colYs;
+        for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t);
+        return e
+    }, o._getColGroupY = function(t, e) {
+        if (e < 2) return this.colYs[t];
+        var i = this.colYs.slice(t, t + e);
+        return Math.max.apply(Math, i)
+    }, o._getHorizontalColPosition = function(t, e) {
+        var i = this.horizontalColIndex % this.cols,
+            o = t > 1 && i + t > this.cols;
+        i = o ? 0 : i;
+        var n = e.size.outerWidth && e.size.outerHeight;
+        return this.horizontalColIndex = n ? i + t : this.horizontalColIndex, {
+            col: i,
+            y: this._getColGroupY(i, t)
+        }
+    }, o._manageStamp = function(t) {
+        var i = e(t),
+            o = this._getElementOffset(t),
+            n = this._getOption("originLeft"),
+            s = n ? o.left : o.right,
+            r = s + i.outerWidth,
+            a = Math.floor(s / this.columnWidth);
+        a = Math.max(0, a);
+        var u = Math.floor(r / this.columnWidth);
+        u -= r % this.columnWidth ? 0 : 1, u = Math.min(this.cols - 1, u);
+        for (var h = this._getOption("originTop"), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++) this.colYs[l] = Math.max(d, this.colYs[l])
+    }, o._getContainerSize = function() {
+        this.maxY = Math.max.apply(Math, this.colYs);
+        var t = {
+            height: this.maxY
+        };
+        return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
+    }, o._getContainerFitWidth = function() {
+        for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
+        return (this.cols - t) * this.columnWidth - this.gutter
+    }, o.needsResizeLayout = function() {
+        var t = this.containerWidth;
+        return this.getContainerWidth(), t != this.containerWidth
+    }, i
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
+}(window, function(t, e) {
+    "use strict";
+    var i = t.create("masonry"),
+        o = i.prototype,
+        n = {
+            _getElementOffset: !0,
+            layout: !0,
+            _getMeasurement: !0
+        };
+    for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]);
+    var r = o.measureColumns;
+    o.measureColumns = function() {
+        this.items = this.isotope.filteredItems, r.call(this)
+    };
+    var a = o._getOption;
+    return o._getOption = function(t) {
+        return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments)
+    }, i
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
+}(window, function(t) {
+    "use strict";
+    var e = t.create("fitRows"),
+        i = e.prototype;
+    return i._resetLayout = function() {
+        this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
+    }, i._getItemLayoutPosition = function(t) {
+        t.getSize();
+        var e = t.size.outerWidth + this.gutter,
+            i = this.isotope.size.innerWidth + this.gutter;
+        0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
+        var o = {
+            x: this.x,
+            y: this.y
+        };
+        return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
+    }, i._getContainerSize = function() {
+        return {
+            height: this.maxY
+        }
+    }, e
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
+}(window, function(t) {
+    "use strict";
+    var e = t.create("vertical", {
+            horizontalAlignment: 0
+        }),
+        i = e.prototype;
+    return i._resetLayout = function() {
+        this.y = 0
+    }, i._getItemLayoutPosition = function(t) {
+        t.getSize();
+        var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
+            i = this.y;
+        return this.y += t.size.outerHeight, {
+            x: e,
+            y: i
+        }
+    }, i._getContainerSize = function() {
+        return {
+            height: this.y
+        }
+    }, e
+}),
+function(t, e) {
+    "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], function(i, o, n, s, r, a) {
+        return e(t, i, o, n, s, r, a)
+    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/layout-modes/vertical")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode)
+}(window, function(t, e, i, o, n, s, r) {
+    function a(t, e) {
+        return function(i, o) {
+            for (var n = 0; n < t.length; n++) {
+                var s = t[n],
+                    r = i.sortData[s],
+                    a = o.sortData[s];
+                if (r > a || r < a) {
+                    var u = void 0 !== e[s] ? e[s] : e,
+                        h = u ? 1 : -1;
+                    return (r > a ? 1 : -1) * h
+                }
+            }
+            return 0
+        }
+    }
+    var u = t.jQuery,
+        h = String.prototype.trim ? function(t) {
+            return t.trim()
+        } : function(t) {
+            return t.replace(/^\s+|\s+$/g, "")
+        },
+        d = e.create("isotope", {
+            layoutMode: "masonry",
+            isJQueryFiltering: !0,
+            sortAscending: !0
+        });
+    d.Item = s, d.LayoutMode = r;
+    var l = d.prototype;
+    l._create = function() {
+        this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"];
+        for (var t in r.modes) this._initLayoutMode(t)
+    }, l.reloadItems = function() {
+        this.itemGUID = 0, e.prototype.reloadItems.call(this)
+    }, l._itemize = function() {
+        for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
+            var o = t[i];
+            o.id = this.itemGUID++
+        }
+        return this._updateItemsSortData(t), t
+    }, l._initLayoutMode = function(t) {
+        var e = r.modes[t],
+            i = this.options[t] || {};
+        this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
+    }, l.layout = function() {
+        return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
+    }, l._layout = function() {
+        var t = this._getIsInstant();
+        this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
+    }, l.arrange = function(t) {
+        this.option(t), this._getIsInstant();
+        var e = this._filter(this.items);
+        this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout()
+    }, l._init = l.arrange, l._hideReveal = function(t) {
+        this.reveal(t.needReveal), this.hide(t.needHide)
+    }, l._getIsInstant = function() {
+        var t = this._getOption("layoutInstant"),
+            e = void 0 !== t ? t : !this._isLayoutInited;
+        return this._isInstant = e, e
+    }, l._bindArrangeComplete = function() {
+        function t() {
+            e && i && o && n.dispatchEvent("arrangeComplete", null, [n.filteredItems])
+        }
+        var e, i, o, n = this;
+        this.once("layoutComplete", function() {
+            e = !0, t()
+        }), this.once("hideComplete", function() {
+            i = !0, t()
+        }), this.once("revealComplete", function() {
+            o = !0, t()
+        })
+    }, l._filter = function(t) {
+        var e = this.options.filter;
+        e = e || "*";
+        for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) {
+            var a = t[r];
+            if (!a.isIgnored) {
+                var u = s(a);
+                u && i.push(a), u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a)
+            }
+        }
+        return {
+            matches: i,
+            needReveal: o,
+            needHide: n
+        }
+    }, l._getFilterTest = function(t) {
+        return u && this.options.isJQueryFiltering ? function(e) {
+            return u(e.element).is(t);
+        } : "function" == typeof t ? function(e) {
+            return t(e.element)
+        } : function(e) {
+            return o(e.element, t)
+        }
+    }, l.updateSortData = function(t) {
+        var e;
+        t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
+    }, l._getSorters = function() {
+        var t = this.options.getSortData;
+        for (var e in t) {
+            var i = t[e];
+            this._sorters[e] = f(i)
+        }
+    }, l._updateItemsSortData = function(t) {
+        for (var e = t && t.length, i = 0; e && i < e; i++) {
+            var o = t[i];
+            o.updateSortData()
+        }
+    };
+    var f = function() {
+        function t(t) {
+            if ("string" != typeof t) return t;
+            var i = h(t).split(" "),
+                o = i[0],
+                n = o.match(/^\[(.+)\]$/),
+                s = n && n[1],
+                r = e(s, o),
+                a = d.sortDataParsers[i[1]];
+            return t = a ? function(t) {
+                return t && a(r(t))
+            } : function(t) {
+                return t && r(t)
+            }
+        }
+
+        function e(t, e) {
+            return t ? function(e) {
+                return e.getAttribute(t)
+            } : function(t) {
+                var i = t.querySelector(e);
+                return i && i.textContent
+            }
+        }
+        return t
+    }();
+    d.sortDataParsers = {
+        parseInt: function(t) {
+            return parseInt(t, 10)
+        },
+        parseFloat: function(t) {
+            return parseFloat(t)
+        }
+    }, l._sort = function() {
+        if (this.options.sortBy) {
+            var t = n.makeArray(this.options.sortBy);
+            this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory));
+            var e = a(this.sortHistory, this.options.sortAscending);
+            this.filteredItems.sort(e)
+        }
+    }, l._getIsSameSortBy = function(t) {
+        for (var e = 0; e < t.length; e++)
+            if (t[e] != this.sortHistory[e]) return !1;
+        return !0
+    }, l._mode = function() {
+        var t = this.options.layoutMode,
+            e = this.modes[t];
+        if (!e) throw new Error("No layout mode: " + t);
+        return e.options = this.options[t], e
+    }, l._resetLayout = function() {
+        e.prototype._resetLayout.call(this), this._mode()._resetLayout()
+    }, l._getItemLayoutPosition = function(t) {
+        return this._mode()._getItemLayoutPosition(t)
+    }, l._manageStamp = function(t) {
+        this._mode()._manageStamp(t)
+    }, l._getContainerSize = function() {
+        return this._mode()._getContainerSize()
+    }, l.needsResizeLayout = function() {
+        return this._mode().needsResizeLayout()
+    }, l.appended = function(t) {
+        var e = this.addItems(t);
+        if (e.length) {
+            var i = this._filterRevealAdded(e);
+            this.filteredItems = this.filteredItems.concat(i)
+        }
+    }, l.prepended = function(t) {
+        var e = this._itemize(t);
+        if (e.length) {
+            this._resetLayout(), this._manageStamps();
+            var i = this._filterRevealAdded(e);
+            this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
+        }
+    }, l._filterRevealAdded = function(t) {
+        var e = this._filter(t);
+        return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches
+    }, l.insert = function(t) {
+        var e = this.addItems(t);
+        if (e.length) {
+            var i, o, n = e.length;
+            for (i = 0; i < n; i++) o = e[i], this.element.appendChild(o.element);
+            var s = this._filter(e).matches;
+            for (i = 0; i < n; i++) e[i].isLayoutInstant = !0;
+            for (this.arrange(), i = 0; i < n; i++) delete e[i].isLayoutInstant;
+            this.reveal(s)
+        }
+    };
+    var c = l.remove;
+    return l.remove = function(t) {
+        t = n.makeArray(t);
+        var e = this.getItems(t);
+        c.call(this, t);
+        for (var i = e && e.length, o = 0; i && o < i; o++) {
+            var s = e[o];
+            n.removeFrom(this.filteredItems, s)
+        }
+    }, l.shuffle = function() {
+        for (var t = 0; t < this.items.length; t++) {
+            var e = this.items[t];
+            e.sortData.random = Math.random()
+        }
+        this.options.sortBy = "random", this._sort(), this._layout()
+    }, l._noTransition = function(t, e) {
+        var i = this.options.transitionDuration;
+        this.options.transitionDuration = 0;
+        var o = t.apply(this, e);
+        return this.options.transitionDuration = i, o
+    }, l.getFilteredItemElements = function() {
+        return this.filteredItems.map(function(t) {
+            return t.element
+        })
+    }, d
+});
+
+
+// onePageNav
+! function(t, i, n, s) {
+    var e = function(s, e) {
+        this.elem = s, this.$elem = t(s), this.options = e, this.metadata = this.$elem.data("plugin-options"), this.$win = t(i), this.sections = {}, this.didScroll = !1, this.$doc = t(n), this.docHeight = this.$doc.height()
+    };
+    e.prototype = {
+        defaults: {
+            navItems: "a",
+            currentClass: "current",
+            changeHash: !1,
+            easing: "swing",
+            filter: "",
+            scrollSpeed: 750,
+            scrollThreshold: .5,
+            begin: !1,
+            end: !1,
+            scrollChange: !1
+        },
+        init: function() {
+            return this.config = t.extend({}, this.defaults, this.options, this.metadata), this.$nav = this.$elem.find(this.config.navItems), "" !== this.config.filter && (this.$nav = this.$nav.filter(this.config.filter)), this.$nav.on("click.onePageNav", t.proxy(this.handleClick, this)), this.getPositions(), this.bindInterval(), this.$win.on("resize.onePageNav", t.proxy(this.getPositions, this)), this
+        },
+        adjustNav: function(t, i) {
+            t.$elem.find("." + t.config.currentClass).removeClass(t.config.currentClass), i.addClass(t.config.currentClass)
+        },
+        bindInterval: function() {
+            var t, i = this;
+            i.$win.on("scroll.onePageNav", function() {
+                i.didScroll = !0
+            }), i.t = setInterval(function() {
+                t = i.$doc.height(), i.didScroll && (i.didScroll = !1, i.scrollChange()), t !== i.docHeight && (i.docHeight = t, i.getPositions())
+            }, 250)
+        },
+        getHash: function(t) {
+            return t.attr("href").split("#")[1]
+        },
+        getPositions: function() {
+            var i, n, s, e = this;
+            e.$nav.each(function() {
+                "" != (i = e.getHash(t(this))) && (s = t("#" + i)).length && (n = s.offset().top, e.sections[i] = Math.round(n))
+            })
+        },
+        getSection: function(t) {
+            var i = null,
+                n = Math.round(this.$win.height() * this.config.scrollThreshold);
+            for (var s in this.sections) this.sections[s] - n < t && (i = s);
+            return i
+        },
+        handleClick: function(n) {
+            var s = this,
+                e = t(n.currentTarget),
+                o = e.parent(),
+                a = "#" + s.getHash(e);
+            o.hasClass(s.config.currentClass) || (s.config.begin && s.config.begin(), s.adjustNav(s, o), s.unbindInterval(), s.scrollTo(a, function() {
+                s.config.changeHash && (i.location.hash = a), s.bindInterval(), s.config.end && s.config.end()
+            })), n.preventDefault()
+        },
+        scrollChange: function() {
+            var t, i = this.$win.scrollTop(),
+                n = this.getSection(i);
+            null !== n && !(t = this.$elem.find('a[href$="#' + n + '"]').parent()).hasClass(this.config.currentClass) && (this.adjustNav(this, t), this.config.scrollChange && this.config.scrollChange(t))
+        },
+        scrollTo: function(i, n) {
+            var s = t(i).offset().top;
+            t("html, body").animate({
+                scrollTop: s - 150
+            }, this.config.scrollSpeed, this.config.easing, n)
+        },
+        unbindInterval: function() {
+            clearInterval(this.t), this.$win.unbind("scroll.onePageNav")
+        }
+    }, e.defaults = e.prototype.defaults, t.fn.onePageNav = function(t) {
+        return this.each(function() {
+            new e(this, t).init()
+        })
+    }
+}(jQuery, window, document);
+
+
+/*! tooltipster v4.2.6 */
+! function(a, b) {
+    "function" == typeof define && define.amd ? define(["jquery"], function(a) {
+        return b(a)
+    }) : "object" == typeof exports ? module.exports = b(require("jquery")) : b(jQuery)
+}(this, function(a) {
+    function b(a) {
+        this.$container, this.constraints = null, this.__$tooltip, this.__init(a)
+    }
+
+    function c(b, c) {
+        var d = !0;
+        return a.each(b, function(a, e) {
+            return void 0 === c[a] || b[a] !== c[a] ? (d = !1, !1) : void 0
+        }), d
+    }
+
+    function d(b) {
+        var c = b.attr("id"),
+            d = c ? h.window.document.getElementById(c) : null;
+        return d ? d === b[0] : a.contains(h.window.document.body, b[0])
+    }
+
+    function e() {
+        if (!g) return !1;
+        var a = g.document.body || g.document.documentElement,
+            b = a.style,
+            c = "transition",
+            d = ["Moz", "Webkit", "Khtml", "O", "ms"];
+        if ("string" == typeof b[c]) return !0;
+        c = c.charAt(0).toUpperCase() + c.substr(1);
+        for (var e = 0; e < d.length; e++)
+            if ("string" == typeof b[d[e] + c]) return !0;
+        return !1
+    }
+    var f = {
+            animation: "fade",
+            animationDuration: 350,
+            content: null,
+            contentAsHTML: !1,
+            contentCloning: !1,
+            debug: !0,
+            delay: 300,
+            delayTouch: [300, 500],
+            functionInit: null,
+            functionBefore: null,
+            functionReady: null,
+            functionAfter: null,
+            functionFormat: null,
+            IEmin: 6,
+            interactive: !1,
+            multiple: !1,
+            parent: null,
+            plugins: ["sideTip"],
+            repositionOnScroll: !1,
+            restoration: "none",
+            selfDestruction: !0,
+            theme: [],
+            timer: 0,
+            trackerInterval: 500,
+            trackOrigin: !1,
+            trackTooltip: !1,
+            trigger: "hover",
+            triggerClose: {
+                click: !1,
+                mouseleave: !1,
+                originClick: !1,
+                scroll: !1,
+                tap: !1,
+                touchleave: !1
+            },
+            triggerOpen: {
+                click: !1,
+                mouseenter: !1,
+                tap: !1,
+                touchstart: !1
+            },
+            updateAnimation: "rotate",
+            zIndex: 9999999
+        },
+        g = "undefined" != typeof window ? window : null,
+        h = {
+            hasTouchCapability: !(!g || !("ontouchstart" in g || g.DocumentTouch && g.document instanceof g.DocumentTouch || g.navigator.maxTouchPoints)),
+            hasTransitions: e(),
+            IE: !1,
+            semVer: "4.2.6",
+            window: g
+        },
+        i = function() {
+            this.__$emitterPrivate = a({}), this.__$emitterPublic = a({}), this.__instancesLatestArr = [], this.__plugins = {}, this._env = h
+        };
+    i.prototype = {
+        __bridge: function(b, c, d) {
+            if (!c[d]) {
+                var e = function() {};
+                e.prototype = b;
+                var g = new e;
+                g.__init && g.__init(c), a.each(b, function(a, b) {
+                    0 != a.indexOf("__") && (c[a] ? f.debug : (c[a] = function() {
+                        return g[a].apply(g, Array.prototype.slice.apply(arguments))
+                    }, c[a].bridged = g))
+                }), c[d] = g
+            }
+            return this
+        },
+        __setWindow: function(a) {
+            return h.window = a, this
+        },
+        _getRuler: function(a) {
+            return new b(a)
+        },
+        _off: function() {
+            return this.__$emitterPrivate.off.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
+        },
+        _on: function() {
+            return this.__$emitterPrivate.on.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
+        },
+        _one: function() {
+            return this.__$emitterPrivate.one.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
+        },
+        _plugin: function(b) {
+            var c = this;
+            if ("string" == typeof b) {
+                var d = b,
+                    e = null;
+                return d.indexOf(".") > 0 ? e = c.__plugins[d] : a.each(c.__plugins, function(a, b) {
+                    return b.name.substring(b.name.length - d.length - 1) == "." + d ? (e = b, !1) : void 0
+                }), e
+            }
+            if (b.name.indexOf(".") < 0) throw new Error("Plugins must be namespaced");
+            return c.__plugins[b.name] = b, b.core && c.__bridge(b.core, c, b.name), this
+        },
+        _trigger: function() {
+            var a = Array.prototype.slice.apply(arguments);
+            return "string" == typeof a[0] && (a[0] = {
+                type: a[0]
+            }), this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate, a), this.__$emitterPublic.trigger.apply(this.__$emitterPublic, a), this
+        },
+        instances: function(b) {
+            var c = [],
+                d = b || ".tooltipstered";
+            return a(d).each(function() {
+                var b = a(this),
+                    d = b.data("tooltipster-ns");
+                d && a.each(d, function(a, d) {
+                    c.push(b.data(d))
+                })
+            }), c
+        },
+        instancesLatest: function() {
+            return this.__instancesLatestArr
+        },
+        off: function() {
+            return this.__$emitterPublic.off.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        },
+        on: function() {
+            return this.__$emitterPublic.on.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        },
+        one: function() {
+            return this.__$emitterPublic.one.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        },
+        origins: function(b) {
+            var c = b ? b + " " : "";
+            return a(c + ".tooltipstered").toArray()
+        },
+        setDefaults: function(b) {
+            return a.extend(f, b), this
+        },
+        triggerHandler: function() {
+            return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        }
+    }, a.tooltipster = new i, a.Tooltipster = function(b, c) {
+        this.__callbacks = {
+            close: [],
+            open: []
+        }, this.__closingTime, this.__Content, this.__contentBcr, this.__destroyed = !1, this.__$emitterPrivate = a({}), this.__$emitterPublic = a({}), this.__enabled = !0, this.__garbageCollector, this.__Geometry, this.__lastPosition, this.__namespace = "tooltipster-" + Math.round(1e6 * Math.random()), this.__options, this.__$originParents, this.__pointerIsOverOrigin = !1, this.__previousThemes = [], this.__state = "closed", this.__timeouts = {
+            close: [],
+            open: null
+        }, this.__touchEvents = [], this.__tracker = null, this._$origin, this._$tooltip, this.__init(b, c)
+    }, a.Tooltipster.prototype = {
+        __init: function(b, c) {
+            var d = this;
+            if (d._$origin = a(b), d.__options = a.extend(!0, {}, f, c), d.__optionsFormat(), !h.IE || h.IE >= d.__options.IEmin) {
+                var e = null;
+                if (void 0 === d._$origin.data("tooltipster-initialTitle") && (e = d._$origin.attr("title"), void 0 === e && (e = null), d._$origin.data("tooltipster-initialTitle", e)), null !== d.__options.content) d.__contentSet(d.__options.content);
+                else {
+                    var g, i = d._$origin.attr("data-tooltip-content");
+                    i && (g = a(i)), g && g[0] ? d.__contentSet(g.first()) : d.__contentSet(e)
+                }
+                d._$origin.removeAttr("title").addClass("tooltipstered"), d.__prepareOrigin(), d.__prepareGC(), a.each(d.__options.plugins, function(a, b) {
+                    d._plug(b)
+                }), h.hasTouchCapability && a(h.window.document.body).on("touchmove." + d.__namespace + "-triggerOpen", function(a) {
+                    d._touchRecordEvent(a)
+                }), d._on("created", function() {
+                    d.__prepareTooltip()
+                })._on("repositioned", function(a) {
+                    d.__lastPosition = a.position
+                })
+            } else d.__options.disabled = !0
+        },
+        __contentInsert: function() {
+            var a = this,
+                b = a._$tooltip.find(".tooltipster-content"),
+                c = a.__Content,
+                d = function(a) {
+                    c = a
+                };
+            return a._trigger({
+                type: "format",
+                content: a.__Content,
+                format: d
+            }), a.__options.functionFormat && (c = a.__options.functionFormat.call(a, a, {
+                origin: a._$origin[0]
+            }, a.__Content)), "string" != typeof c || a.__options.contentAsHTML ? b.empty().append(c) : b.text(c), a
+        },
+        __contentSet: function(b) {
+            return b instanceof a && this.__options.contentCloning && (b = b.clone(!0)), this.__Content = b, this._trigger({
+                type: "updated",
+                content: b
+            }), this
+        },
+        __destroyError: function() {
+            throw new Error("This tooltip has been destroyed and cannot execute your method call.")
+        },
+        __geometry: function() {
+            var b = this,
+                c = b._$origin,
+                d = b._$origin.is("area");
+            if (d) {
+                var e = b._$origin.parent().attr("name");
+                c = a('img[usemap="#' + e + '"]')
+            }
+            var f = c[0].getBoundingClientRect(),
+                g = a(h.window.document),
+                i = a(h.window),
+                j = c,
+                k = {
+                    available: {
+                        document: null,
+                        window: null
+                    },
+                    document: {
+                        size: {
+                            height: g.height(),
+                            width: g.width()
+                        }
+                    },
+                    window: {
+                        scroll: {
+                            left: h.window.scrollX || h.window.document.documentElement.scrollLeft,
+                            top: h.window.scrollY || h.window.document.documentElement.scrollTop
+                        },
+                        size: {
+                            height: i.height(),
+                            width: i.width()
+                        }
+                    },
+                    origin: {
+                        fixedLineage: !1,
+                        offset: {},
+                        size: {
+                            height: f.bottom - f.top,
+                            width: f.right - f.left
+                        },
+                        usemapImage: d ? c[0] : null,
+                        windowOffset: {
+                            bottom: f.bottom,
+                            left: f.left,
+                            right: f.right,
+                            top: f.top
+                        }
+                    }
+                };
+            if (d) {
+                var l = b._$origin.attr("shape"),
+                    m = b._$origin.attr("coords");
+                if (m && (m = m.split(","), a.map(m, function(a, b) {
+                        m[b] = parseInt(a)
+                    })), "default" != l) switch (l) {
+                    case "circle":
+                        var n = m[0],
+                            o = m[1],
+                            p = m[2],
+                            q = o - p,
+                            r = n - p;
+                        k.origin.size.height = 2 * p, k.origin.size.width = k.origin.size.height, k.origin.windowOffset.left += r, k.origin.windowOffset.top += q;
+                        break;
+                    case "rect":
+                        var s = m[0],
+                            t = m[1],
+                            u = m[2],
+                            v = m[3];
+                        k.origin.size.height = v - t, k.origin.size.width = u - s, k.origin.windowOffset.left += s, k.origin.windowOffset.top += t;
+                        break;
+                    case "poly":
+                        for (var w = 0, x = 0, y = 0, z = 0, A = "even", B = 0; B < m.length; B++) {
+                            var C = m[B];
+                            "even" == A ? (C > y && (y = C, 0 === B && (w = y)), w > C && (w = C), A = "odd") : (C > z && (z = C, 1 == B && (x = z)), x > C && (x = C), A = "even")
+                        }
+                        k.origin.size.height = z - x, k.origin.size.width = y - w, k.origin.windowOffset.left += w, k.origin.windowOffset.top += x
+                }
+            }
+            var D = function(a) {
+                k.origin.size.height = a.height, k.origin.windowOffset.left = a.left, k.origin.windowOffset.top = a.top, k.origin.size.width = a.width
+            };
+            for (b._trigger({
+                    type: "geometry",
+                    edit: D,
+                    geometry: {
+                        height: k.origin.size.height,
+                        left: k.origin.windowOffset.left,
+                        top: k.origin.windowOffset.top,
+                        width: k.origin.size.width
+                    }
+                }), k.origin.windowOffset.right = k.origin.windowOffset.left + k.origin.size.width, k.origin.windowOffset.bottom = k.origin.windowOffset.top + k.origin.size.height, k.origin.offset.left = k.origin.windowOffset.left + k.window.scroll.left, k.origin.offset.top = k.origin.windowOffset.top + k.window.scroll.top, k.origin.offset.bottom = k.origin.offset.top + k.origin.size.height, k.origin.offset.right = k.origin.offset.left + k.origin.size.width, k.available.document = {
+                    bottom: {
+                        height: k.document.size.height - k.origin.offset.bottom,
+                        width: k.document.size.width
+                    },
+                    left: {
+                        height: k.document.size.height,
+                        width: k.origin.offset.left
+                    },
+                    right: {
+                        height: k.document.size.height,
+                        width: k.document.size.width - k.origin.offset.right
+                    },
+                    top: {
+                        height: k.origin.offset.top,
+                        width: k.document.size.width
+                    }
+                }, k.available.window = {
+                    bottom: {
+                        height: Math.max(k.window.size.height - Math.max(k.origin.windowOffset.bottom, 0), 0),
+                        width: k.window.size.width
+                    },
+                    left: {
+                        height: k.window.size.height,
+                        width: Math.max(k.origin.windowOffset.left, 0)
+                    },
+                    right: {
+                        height: k.window.size.height,
+                        width: Math.max(k.window.size.width - Math.max(k.origin.windowOffset.right, 0), 0)
+                    },
+                    top: {
+                        height: Math.max(k.origin.windowOffset.top, 0),
+                        width: k.window.size.width
+                    }
+                };
+                "html" != j[0].tagName.toLowerCase();) {
+                if ("fixed" == j.css("position")) {
+                    k.origin.fixedLineage = !0;
+                    break
+                }
+                j = j.parent()
+            }
+            return k
+        },
+        __optionsFormat: function() {
+            return "number" == typeof this.__options.animationDuration && (this.__options.animationDuration = [this.__options.animationDuration, this.__options.animationDuration]), "number" == typeof this.__options.delay && (this.__options.delay = [this.__options.delay, this.__options.delay]), "number" == typeof this.__options.delayTouch && (this.__options.delayTouch = [this.__options.delayTouch, this.__options.delayTouch]), "string" == typeof this.__options.theme && (this.__options.theme = [this.__options.theme]), null === this.__options.parent ? this.__options.parent = a(h.window.document.body) : "string" == typeof this.__options.parent && (this.__options.parent = a(this.__options.parent)), "hover" == this.__options.trigger ? (this.__options.triggerOpen = {
+                mouseenter: !0,
+                touchstart: !0
+            }, this.__options.triggerClose = {
+                mouseleave: !0,
+                originClick: !0,
+                touchleave: !0
+            }) : "click" == this.__options.trigger && (this.__options.triggerOpen = {
+                click: !0,
+                tap: !0
+            }, this.__options.triggerClose = {
+                click: !0,
+                tap: !0
+            }), this._trigger("options"), this
+        },
+        __prepareGC: function() {
+            var b = this;
+            return b.__options.selfDestruction ? b.__garbageCollector = setInterval(function() {
+                var c = (new Date).getTime();
+                b.__touchEvents = a.grep(b.__touchEvents, function(a, b) {
+                    return c - a.time > 6e4
+                }), d(b._$origin) || b.close(function() {
+                    b.destroy()
+                })
+            }, 2e4) : clearInterval(b.__garbageCollector), b
+        },
+        __prepareOrigin: function() {
+            var a = this;
+            if (a._$origin.off("." + a.__namespace + "-triggerOpen"), h.hasTouchCapability && a._$origin.on("touchstart." + a.__namespace + "-triggerOpen touchend." + a.__namespace + "-triggerOpen touchcancel." + a.__namespace + "-triggerOpen", function(b) {
+                    a._touchRecordEvent(b)
+                }), a.__options.triggerOpen.click || a.__options.triggerOpen.tap && h.hasTouchCapability) {
+                var b = "";
+                a.__options.triggerOpen.click && (b += "click." + a.__namespace + "-triggerOpen "), a.__options.triggerOpen.tap && h.hasTouchCapability && (b += "touchend." + a.__namespace + "-triggerOpen"), a._$origin.on(b, function(b) {
+                    a._touchIsMeaningfulEvent(b) && a._open(b)
+                })
+            }
+            if (a.__options.triggerOpen.mouseenter || a.__options.triggerOpen.touchstart && h.hasTouchCapability) {
+                var b = "";
+                a.__options.triggerOpen.mouseenter && (b += "mouseenter." + a.__namespace + "-triggerOpen "), a.__options.triggerOpen.touchstart && h.hasTouchCapability && (b += "touchstart." + a.__namespace + "-triggerOpen"), a._$origin.on(b, function(b) {
+                    !a._touchIsTouchEvent(b) && a._touchIsEmulatedEvent(b) || (a.__pointerIsOverOrigin = !0, a._openShortly(b))
+                })
+            }
+            if (a.__options.triggerClose.mouseleave || a.__options.triggerClose.touchleave && h.hasTouchCapability) {
+                var b = "";
+                a.__options.triggerClose.mouseleave && (b += "mouseleave." + a.__namespace + "-triggerOpen "), a.__options.triggerClose.touchleave && h.hasTouchCapability && (b += "touchend." + a.__namespace + "-triggerOpen touchcancel." + a.__namespace + "-triggerOpen"), a._$origin.on(b, function(b) {
+                    a._touchIsMeaningfulEvent(b) && (a.__pointerIsOverOrigin = !1)
+                })
+            }
+            return a
+        },
+        __prepareTooltip: function() {
+            var b = this,
+                c = b.__options.interactive ? "auto" : "";
+            return b._$tooltip.attr("id", b.__namespace).css({
+                "pointer-events": c,
+                zIndex: b.__options.zIndex
+            }), a.each(b.__previousThemes, function(a, c) {
+                b._$tooltip.removeClass(c)
+            }), a.each(b.__options.theme, function(a, c) {
+                b._$tooltip.addClass(c)
+            }), b.__previousThemes = a.merge([], b.__options.theme), b
+        },
+        __scrollHandler: function(b) {
+            var c = this;
+            if (c.__options.triggerClose.scroll) c._close(b);
+            else if (d(c._$origin) && d(c._$tooltip)) {
+                var e = null;
+                if (b.target === h.window.document) c.__Geometry.origin.fixedLineage || c.__options.repositionOnScroll && c.reposition(b);
+                else {
+                    e = c.__geometry();
+                    var f = !1;
+                    if ("fixed" != c._$origin.css("position") && c.__$originParents.each(function(b, c) {
+                            var d = a(c),
+                                g = d.css("overflow-x"),
+                                h = d.css("overflow-y");
+                            if ("visible" != g || "visible" != h) {
+                                var i = c.getBoundingClientRect();
+                                if ("visible" != g && (e.origin.windowOffset.left < i.left || e.origin.windowOffset.right > i.right)) return f = !0, !1;
+                                if ("visible" != h && (e.origin.windowOffset.top < i.top || e.origin.windowOffset.bottom > i.bottom)) return f = !0, !1
+                            }
+                            return "fixed" == d.css("position") ? !1 : void 0
+                        }), f) c._$tooltip.css("visibility", "hidden");
+                    else if (c._$tooltip.css("visibility", "visible"), c.__options.repositionOnScroll) c.reposition(b);
+                    else {
+                        var g = e.origin.offset.left - c.__Geometry.origin.offset.left,
+                            i = e.origin.offset.top - c.__Geometry.origin.offset.top;
+                        c._$tooltip.css({
+                            left: c.__lastPosition.coord.left + g,
+                            top: c.__lastPosition.coord.top + i
+                        })
+                    }
+                }
+                c._trigger({
+                    type: "scroll",
+                    event: b,
+                    geo: e
+                })
+            }
+            return c
+        },
+        __stateSet: function(a) {
+            return this.__state = a, this._trigger({
+                type: "state",
+                state: a
+            }), this
+        },
+        __timeoutsClear: function() {
+            return clearTimeout(this.__timeouts.open), this.__timeouts.open = null, a.each(this.__timeouts.close, function(a, b) {
+                clearTimeout(b)
+            }), this.__timeouts.close = [], this
+        },
+        __trackerStart: function() {
+            var a = this,
+                b = a._$tooltip.find(".tooltipster-content");
+            return a.__options.trackTooltip && (a.__contentBcr = b[0].getBoundingClientRect()), a.__tracker = setInterval(function() {
+                if (d(a._$origin) && d(a._$tooltip)) {
+                    if (a.__options.trackOrigin) {
+                        var e = a.__geometry(),
+                            f = !1;
+                        c(e.origin.size, a.__Geometry.origin.size) && (a.__Geometry.origin.fixedLineage ? c(e.origin.windowOffset, a.__Geometry.origin.windowOffset) && (f = !0) : c(e.origin.offset, a.__Geometry.origin.offset) && (f = !0)), f || (a.__options.triggerClose.mouseleave ? a._close() : a.reposition())
+                    }
+                    if (a.__options.trackTooltip) {
+                        var g = b[0].getBoundingClientRect();
+                        g.height === a.__contentBcr.height && g.width === a.__contentBcr.width || (a.reposition(), a.__contentBcr = g)
+                    }
+                } else a._close()
+            }, a.__options.trackerInterval), a
+        },
+        _close: function(b, c, d) {
+            var e = this,
+                f = !0;
+            if (e._trigger({
+                    type: "close",
+                    event: b,
+                    stop: function() {
+                        f = !1
+                    }
+                }), f || d) {
+                c && e.__callbacks.close.push(c), e.__callbacks.open = [], e.__timeoutsClear();
+                var g = function() {
+                    a.each(e.__callbacks.close, function(a, c) {
+                        c.call(e, e, {
+                            event: b,
+                            origin: e._$origin[0]
+                        })
+                    }), e.__callbacks.close = []
+                };
+                if ("closed" != e.__state) {
+                    var i = !0,
+                        j = new Date,
+                        k = j.getTime(),
+                        l = k + e.__options.animationDuration[1];
+                    if ("disappearing" == e.__state && l > e.__closingTime && e.__options.animationDuration[1] > 0 && (i = !1), i) {
+                        e.__closingTime = l, "disappearing" != e.__state && e.__stateSet("disappearing");
+                        var m = function() {
+                            clearInterval(e.__tracker), e._trigger({
+                                type: "closing",
+                                event: b
+                            }), e._$tooltip.off("." + e.__namespace + "-triggerClose").removeClass("tooltipster-dying"), a(h.window).off("." + e.__namespace + "-triggerClose"), e.__$originParents.each(function(b, c) {
+                                a(c).off("scroll." + e.__namespace + "-triggerClose")
+                            }), e.__$originParents = null, a(h.window.document.body).off("." + e.__namespace + "-triggerClose"), e._$origin.off("." + e.__namespace + "-triggerClose"), e._off("dismissable"), e.__stateSet("closed"), e._trigger({
+                                type: "after",
+                                event: b
+                            }), e.__options.functionAfter && e.__options.functionAfter.call(e, e, {
+                                event: b,
+                                origin: e._$origin[0]
+                            }), g()
+                        };
+                        h.hasTransitions ? (e._$tooltip.css({
+                            "-moz-animation-duration": e.__options.animationDuration[1] + "ms",
+                            "-ms-animation-duration": e.__options.animationDuration[1] + "ms",
+                            "-o-animation-duration": e.__options.animationDuration[1] + "ms",
+                            "-webkit-animation-duration": e.__options.animationDuration[1] + "ms",
+                            "animation-duration": e.__options.animationDuration[1] + "ms",
+                            "transition-duration": e.__options.animationDuration[1] + "ms"
+                        }), e._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"), e.__options.animationDuration[1] > 0 && e._$tooltip.delay(e.__options.animationDuration[1]), e._$tooltip.queue(m)) : e._$tooltip.stop().fadeOut(e.__options.animationDuration[1], m)
+                    }
+                } else g()
+            }
+            return e
+        },
+        _off: function() {
+            return this.__$emitterPrivate.off.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
+        },
+        _on: function() {
+            return this.__$emitterPrivate.on.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
+        },
+        _one: function() {
+            return this.__$emitterPrivate.one.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
+        },
+        _open: function(b, c) {
+            var e = this;
+            if (!e.__destroying && d(e._$origin) && e.__enabled) {
+                var f = !0;
+                if ("closed" == e.__state && (e._trigger({
+                        type: "before",
+                        event: b,
+                        stop: function() {
+                            f = !1
+                        }
+                    }), f && e.__options.functionBefore && (f = e.__options.functionBefore.call(e, e, {
+                        event: b,
+                        origin: e._$origin[0]
+                    }))), f !== !1 && null !== e.__Content) {
+                    c && e.__callbacks.open.push(c), e.__callbacks.close = [], e.__timeoutsClear();
+                    var g, i = function() {
+                        "stable" != e.__state && e.__stateSet("stable"), a.each(e.__callbacks.open, function(a, b) {
+                            b.call(e, e, {
+                                origin: e._$origin[0],
+                                tooltip: e._$tooltip[0]
+                            })
+                        }), e.__callbacks.open = []
+                    };
+                    if ("closed" !== e.__state) g = 0, "disappearing" === e.__state ? (e.__stateSet("appearing"), h.hasTransitions ? (e._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"), e.__options.animationDuration[0] > 0 && e._$tooltip.delay(e.__options.animationDuration[0]), e._$tooltip.queue(i)) : e._$tooltip.stop().fadeIn(i)) : "stable" == e.__state && i();
+                    else {
+                        if (e.__stateSet("appearing"), g = e.__options.animationDuration[0], e.__contentInsert(), e.reposition(b, !0), h.hasTransitions ? (e._$tooltip.addClass("tooltipster-" + e.__options.animation).addClass("tooltipster-initial").css({
+                                "-moz-animation-duration": e.__options.animationDuration[0] + "ms",
+                                "-ms-animation-duration": e.__options.animationDuration[0] + "ms",
+                                "-o-animation-duration": e.__options.animationDuration[0] + "ms",
+                                "-webkit-animation-duration": e.__options.animationDuration[0] + "ms",
+                                "animation-duration": e.__options.animationDuration[0] + "ms",
+                                "transition-duration": e.__options.animationDuration[0] + "ms"
+                            }), setTimeout(function() {
+                                "closed" != e.__state && (e._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"), e.__options.animationDuration[0] > 0 && e._$tooltip.delay(e.__options.animationDuration[0]), e._$tooltip.queue(i))
+                            }, 0)) : e._$tooltip.css("display", "none").fadeIn(e.__options.animationDuration[0], i), e.__trackerStart(), a(h.window).on("resize." + e.__namespace + "-triggerClose", function(b) {
+                                var c = a(document.activeElement);
+                                (c.is("input") || c.is("textarea")) && a.contains(e._$tooltip[0], c[0]) || e.reposition(b)
+                            }).on("scroll." + e.__namespace + "-triggerClose", function(a) {
+                                e.__scrollHandler(a)
+                            }), e.__$originParents = e._$origin.parents(), e.__$originParents.each(function(b, c) {
+                                a(c).on("scroll." + e.__namespace + "-triggerClose", function(a) {
+                                    e.__scrollHandler(a)
+                                })
+                            }), e.__options.triggerClose.mouseleave || e.__options.triggerClose.touchleave && h.hasTouchCapability) {
+                            e._on("dismissable", function(a) {
+                                a.dismissable ? a.delay ? (m = setTimeout(function() {
+                                    e._close(a.event)
+                                }, a.delay), e.__timeouts.close.push(m)) : e._close(a) : clearTimeout(m)
+                            });
+                            var j = e._$origin,
+                                k = "",
+                                l = "",
+                                m = null;
+                            e.__options.interactive && (j = j.add(e._$tooltip)), e.__options.triggerClose.mouseleave && (k += "mouseenter." + e.__namespace + "-triggerClose ", l += "mouseleave." + e.__namespace + "-triggerClose "), e.__options.triggerClose.touchleave && h.hasTouchCapability && (k += "touchstart." + e.__namespace + "-triggerClose", l += "touchend." + e.__namespace + "-triggerClose touchcancel." + e.__namespace + "-triggerClose"), j.on(l, function(a) {
+                                if (e._touchIsTouchEvent(a) || !e._touchIsEmulatedEvent(a)) {
+                                    var b = "mouseleave" == a.type ? e.__options.delay : e.__options.delayTouch;
+                                    e._trigger({
+                                        delay: b[1],
+                                        dismissable: !0,
+                                        event: a,
+                                        type: "dismissable"
+                                    })
+                                }
+                            }).on(k, function(a) {
+                                !e._touchIsTouchEvent(a) && e._touchIsEmulatedEvent(a) || e._trigger({
+                                    dismissable: !1,
+                                    event: a,
+                                    type: "dismissable"
+                                })
+                            })
+                        }
+                        e.__options.triggerClose.originClick && e._$origin.on("click." + e.__namespace + "-triggerClose", function(a) {
+                            e._touchIsTouchEvent(a) || e._touchIsEmulatedEvent(a) || e._close(a)
+                        }), (e.__options.triggerClose.click || e.__options.triggerClose.tap && h.hasTouchCapability) && setTimeout(function() {
+                            if ("closed" != e.__state) {
+                                var b = "",
+                                    c = a(h.window.document.body);
+                                e.__options.triggerClose.click && (b += "click." + e.__namespace + "-triggerClose "), e.__options.triggerClose.tap && h.hasTouchCapability && (b += "touchend." + e.__namespace + "-triggerClose"), c.on(b, function(b) {
+                                    e._touchIsMeaningfulEvent(b) && (e._touchRecordEvent(b), e.__options.interactive && a.contains(e._$tooltip[0], b.target) || e._close(b))
+                                }), e.__options.triggerClose.tap && h.hasTouchCapability && c.on("touchstart." + e.__namespace + "-triggerClose", function(a) {
+                                    e._touchRecordEvent(a)
+                                })
+                            }
+                        }, 0), e._trigger("ready"), e.__options.functionReady && e.__options.functionReady.call(e, e, {
+                            origin: e._$origin[0],
+                            tooltip: e._$tooltip[0]
+                        })
+                    }
+                    if (e.__options.timer > 0) {
+                        var m = setTimeout(function() {
+                            e._close()
+                        }, e.__options.timer + g);
+                        e.__timeouts.close.push(m)
+                    }
+                }
+            }
+            return e
+        },
+        _openShortly: function(a) {
+            var b = this,
+                c = !0;
+            if ("stable" != b.__state && "appearing" != b.__state && !b.__timeouts.open && (b._trigger({
+                    type: "start",
+                    event: a,
+                    stop: function() {
+                        c = !1
+                    }
+                }), c)) {
+                var d = 0 == a.type.indexOf("touch") ? b.__options.delayTouch : b.__options.delay;
+                d[0] ? b.__timeouts.open = setTimeout(function() {
+                    b.__timeouts.open = null, b.__pointerIsOverOrigin && b._touchIsMeaningfulEvent(a) ? (b._trigger("startend"), b._open(a)) : b._trigger("startcancel")
+                }, d[0]) : (b._trigger("startend"), b._open(a))
+            }
+            return b
+        },
+        _optionsExtract: function(b, c) {
+            var d = this,
+                e = a.extend(!0, {}, c),
+                f = d.__options[b];
+            return f || (f = {}, a.each(c, function(a, b) {
+                var c = d.__options[a];
+                void 0 !== c && (f[a] = c)
+            })), a.each(e, function(b, c) {
+                void 0 !== f[b] && ("object" != typeof c || c instanceof Array || null == c || "object" != typeof f[b] || f[b] instanceof Array || null == f[b] ? e[b] = f[b] : a.extend(e[b], f[b]))
+            }), e
+        },
+        _plug: function(b) {
+            var c = a.tooltipster._plugin(b);
+            if (!c) throw new Error('The "' + b + '" plugin is not defined');
+            return c.instance && a.tooltipster.__bridge(c.instance, this, c.name), this
+        },
+        _touchIsEmulatedEvent: function(a) {
+            for (var b = !1, c = (new Date).getTime(), d = this.__touchEvents.length - 1; d >= 0; d--) {
+                var e = this.__touchEvents[d];
+                if (!(c - e.time < 500)) break;
+                e.target === a.target && (b = !0)
+            }
+            return b
+        },
+        _touchIsMeaningfulEvent: function(a) {
+            return this._touchIsTouchEvent(a) && !this._touchSwiped(a.target) || !this._touchIsTouchEvent(a) && !this._touchIsEmulatedEvent(a)
+        },
+        _touchIsTouchEvent: function(a) {
+            return 0 == a.type.indexOf("touch")
+        },
+        _touchRecordEvent: function(a) {
+            return this._touchIsTouchEvent(a) && (a.time = (new Date).getTime(), this.__touchEvents.push(a)), this
+        },
+        _touchSwiped: function(a) {
+            for (var b = !1, c = this.__touchEvents.length - 1; c >= 0; c--) {
+                var d = this.__touchEvents[c];
+                if ("touchmove" == d.type) {
+                    b = !0;
+                    break
+                }
+                if ("touchstart" == d.type && a === d.target) break
+            }
+            return b
+        },
+        _trigger: function() {
+            var b = Array.prototype.slice.apply(arguments);
+            return "string" == typeof b[0] && (b[0] = {
+                type: b[0]
+            }), b[0].instance = this, b[0].origin = this._$origin ? this._$origin[0] : null, b[0].tooltip = this._$tooltip ? this._$tooltip[0] : null, this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate, b), a.tooltipster._trigger.apply(a.tooltipster, b), this.__$emitterPublic.trigger.apply(this.__$emitterPublic, b), this
+        },
+        _unplug: function(b) {
+            var c = this;
+            if (c[b]) {
+                var d = a.tooltipster._plugin(b);
+                d.instance && a.each(d.instance, function(a, d) {
+                    c[a] && c[a].bridged === c[b] && delete c[a]
+                }), c[b].__destroy && c[b].__destroy(), delete c[b]
+            }
+            return c
+        },
+        close: function(a) {
+            return this.__destroyed ? this.__destroyError() : this._close(null, a), this
+        },
+        content: function(a) {
+            var b = this;
+            if (void 0 === a) return b.__Content;
+            if (b.__destroyed) b.__destroyError();
+            else if (b.__contentSet(a), null !== b.__Content) {
+                if ("closed" !== b.__state && (b.__contentInsert(), b.reposition(), b.__options.updateAnimation))
+                    if (h.hasTransitions) {
+                        var c = b.__options.updateAnimation;
+                        b._$tooltip.addClass("tooltipster-update-" + c), setTimeout(function() {
+                            "closed" != b.__state && b._$tooltip.removeClass("tooltipster-update-" + c)
+                        }, 1e3)
+                    } else b._$tooltip.fadeTo(200, .5, function() {
+                        "closed" != b.__state && b._$tooltip.fadeTo(200, 1)
+                    })
+            } else b._close();
+            return b
+        },
+        destroy: function() {
+            var b = this;
+            if (b.__destroyed) b.__destroyError();
+            else {
+                "closed" != b.__state ? b.option("animationDuration", 0)._close(null, null, !0) : b.__timeoutsClear(), b._trigger("destroy"), b.__destroyed = !0, b._$origin.removeData(b.__namespace).off("." + b.__namespace + "-triggerOpen"), a(h.window.document.body).off("." + b.__namespace + "-triggerOpen");
+                var c = b._$origin.data("tooltipster-ns");
+                if (c)
+                    if (1 === c.length) {
+                        var d = null;
+                        "previous" == b.__options.restoration ? d = b._$origin.data("tooltipster-initialTitle") : "current" == b.__options.restoration && (d = "string" == typeof b.__Content ? b.__Content : a("<div></div>").append(b.__Content).html()), d && b._$origin.attr("title", d), b._$origin.removeClass("tooltipstered"), b._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")
+                    } else c = a.grep(c, function(a, c) {
+                        return a !== b.__namespace
+                    }), b._$origin.data("tooltipster-ns", c);
+                b._trigger("destroyed"), b._off(), b.off(), b.__Content = null, b.__$emitterPrivate = null, b.__$emitterPublic = null, b.__options.parent = null, b._$origin = null, b._$tooltip = null, a.tooltipster.__instancesLatestArr = a.grep(a.tooltipster.__instancesLatestArr, function(a, c) {
+                    return b !== a
+                }), clearInterval(b.__garbageCollector)
+            }
+            return b
+        },
+        disable: function() {
+            return this.__destroyed ? (this.__destroyError(), this) : (this._close(), this.__enabled = !1, this)
+        },
+        elementOrigin: function() {
+            return this.__destroyed ? void this.__destroyError() : this._$origin[0]
+        },
+        elementTooltip: function() {
+            return this._$tooltip ? this._$tooltip[0] : null
+        },
+        enable: function() {
+            return this.__enabled = !0, this
+        },
+        hide: function(a) {
+            return this.close(a)
+        },
+        instance: function() {
+            return this
+        },
+        off: function() {
+            return this.__destroyed || this.__$emitterPublic.off.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        },
+        on: function() {
+            return this.__destroyed ? this.__destroyError() : this.__$emitterPublic.on.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        },
+        one: function() {
+            return this.__destroyed ? this.__destroyError() : this.__$emitterPublic.one.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        },
+        open: function(a) {
+            return this.__destroyed ? this.__destroyError() : this._open(null, a), this
+        },
+        option: function(b, c) {
+            return void 0 === c ? this.__options[b] : (this.__destroyed ? this.__destroyError() : (this.__options[b] = c, this.__optionsFormat(), a.inArray(b, ["trigger", "triggerClose", "triggerOpen"]) >= 0 && this.__prepareOrigin(), "selfDestruction" === b && this.__prepareGC()), this)
+        },
+        reposition: function(a, b) {
+            var c = this;
+            return c.__destroyed ? c.__destroyError() : "closed" != c.__state && d(c._$origin) && (b || d(c._$tooltip)) && (b || c._$tooltip.detach(), c.__Geometry = c.__geometry(), c._trigger({
+                type: "reposition",
+                event: a,
+                helper: {
+                    geo: c.__Geometry
+                }
+            })), c
+        },
+        show: function(a) {
+            return this.open(a)
+        },
+        status: function() {
+            return {
+                destroyed: this.__destroyed,
+                enabled: this.__enabled,
+                open: "closed" !== this.__state,
+                state: this.__state
+            }
+        },
+        triggerHandler: function() {
+            return this.__destroyed ? this.__destroyError() : this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
+        }
+    }, a.fn.tooltipster = function() {
+        var b = Array.prototype.slice.apply(arguments),
+            c = "You are using a single HTML element as content for several tooltips. You probably want to set the contentCloning option to TRUE.";
+        if (0 === this.length) return this;
+        if ("string" == typeof b[0]) {
+            var d = "#*$~&";
+            return this.each(function() {
+                var e = a(this).data("tooltipster-ns"),
+                    f = e ? a(this).data(e[0]) : null;
+                if (!f) throw new Error("You called Tooltipster's \"" + b[0] + '" method on an uninitialized element');
+                if ("function" != typeof f[b[0]]) throw new Error('Unknown method "' + b[0] + '"');
+                this.length > 1 && "content" == b[0] && (b[1] instanceof a || "object" == typeof b[1] && null != b[1] && b[1].tagName) && !f.__options.contentCloning && f.__options.debug && console.log(c);
+                var g = f[b[0]](b[1], b[2]);
+                return g !== f || "instance" === b[0] ? (d = g, !1) : void 0
+            }), "#*$~&" !== d ? d : this
+        }
+        a.tooltipster.__instancesLatestArr = [];
+        var e = b[0] && void 0 !== b[0].multiple,
+            g = e && b[0].multiple || !e && f.multiple,
+            h = b[0] && void 0 !== b[0].content,
+            i = h && b[0].content || !h && f.content,
+            j = b[0] && void 0 !== b[0].contentCloning,
+            k = j && b[0].contentCloning || !j && f.contentCloning,
+            l = b[0] && void 0 !== b[0].debug,
+            m = l && b[0].debug || !l && f.debug;
+        return this.length > 1 && (i instanceof a || "object" == typeof i && null != i && i.tagName) && !k && m && console.log(c), this.each(function() {
+            var c = !1,
+                d = a(this),
+                e = d.data("tooltipster-ns"),
+                f = null;
+            e ? g ? c = !0 : m : c = !0, c && (f = new a.Tooltipster(this, b[0]), e || (e = []), e.push(f.__namespace), d.data("tooltipster-ns", e), d.data(f.__namespace, f), f.__options.functionInit && f.__options.functionInit.call(f, f, {
+                origin: this
+            }), f._trigger("init")), a.tooltipster.__instancesLatestArr.push(f)
+        }), this
+    }, b.prototype = {
+        __init: function(b) {
+            this.__$tooltip = b, this.__$tooltip.css({
+                left: 0,
+                overflow: "hidden",
+                position: "absolute",
+                top: 0
+            }).find(".tooltipster-content").css("overflow", "auto"), this.$container = a('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(h.window.document.body)
+        },
+        __forceRedraw: function() {
+            var a = this.__$tooltip.parent();
+            this.__$tooltip.detach(), this.__$tooltip.appendTo(a)
+        },
+        constrain: function(a, b) {
+            return this.constraints = {
+                width: a,
+                height: b
+            }, this.__$tooltip.css({
+                display: "block",
+                height: "",
+                overflow: "auto",
+                width: a
+            }), this
+        },
+        destroy: function() {
+            this.__$tooltip.detach().find(".tooltipster-content").css({
+                display: "",
+                overflow: ""
+            }), this.$container.remove()
+        },
+        free: function() {
+            return this.constraints = null, this.__$tooltip.css({
+                display: "",
+                height: "",
+                overflow: "visible",
+                width: ""
+            }), this
+        },
+        measure: function() {
+            this.__forceRedraw();
+            var a = this.__$tooltip[0].getBoundingClientRect(),
+                b = {
+                    size: {
+                        height: a.height || a.bottom - a.top,
+                        width: a.width || a.right - a.left
+                    }
+                };
+            if (this.constraints) {
+                var c = this.__$tooltip.find(".tooltipster-content"),
+                    d = this.__$tooltip.outerHeight(),
+                    e = c[0].getBoundingClientRect(),
+                    f = {
+                        height: d <= this.constraints.height,
+                        width: a.width <= this.constraints.width && e.width >= c[0].scrollWidth - 1
+                    };
+                b.fits = f.height && f.width
+            }
+            return h.IE && h.IE <= 11 && b.size.width !== h.window.document.documentElement.clientWidth && (b.size.width = Math.ceil(b.size.width) + 1), b
+        }
+    };
+    var j = navigator.userAgent.toLowerCase(); - 1 != j.indexOf("msie") ? h.IE = parseInt(j.split("msie")[1]) : -1 !== j.toLowerCase().indexOf("trident") && -1 !== j.indexOf(" rv:11") ? h.IE = 11 : -1 != j.toLowerCase().indexOf("edge/") && (h.IE = parseInt(j.toLowerCase().split("edge/")[1]));
+    var k = "tooltipster.sideTip";
+    return a.tooltipster._plugin({
+        name: k,
+        instance: {
+            __defaults: function() {
+                return {
+                    arrow: !0,
+                    distance: 6,
+                    functionPosition: null,
+                    maxWidth: null,
+                    minIntersection: 16,
+                    minWidth: 0,
+                    position: null,
+                    side: "top",
+                    viewportAware: !0
+                }
+            },
+            __init: function(a) {
+                var b = this;
+                b.__instance = a, b.__namespace = "tooltipster-sideTip-" + Math.round(1e6 * Math.random()), b.__previousState = "closed", b.__options, b.__optionsFormat(), b.__instance._on("state." + b.__namespace, function(a) {
+                    "closed" == a.state ? b.__close() : "appearing" == a.state && "closed" == b.__previousState && b.__create(), b.__previousState = a.state
+                }), b.__instance._on("options." + b.__namespace, function() {
+                    b.__optionsFormat()
+                }), b.__instance._on("reposition." + b.__namespace, function(a) {
+                    b.__reposition(a.event, a.helper)
+                })
+            },
+            __close: function() {
+                this.__instance.content() instanceof a && this.__instance.content().detach(), this.__instance._$tooltip.remove(), this.__instance._$tooltip = null
+            },
+            __create: function() {
+                var b = a('<div class="tooltipster-base tooltipster-sidetip"><div class="tooltipster-box"><div class="tooltipster-content"></div></div><div class="tooltipster-arrow"><div class="tooltipster-arrow-uncropped"><div class="tooltipster-arrow-border"></div><div class="tooltipster-arrow-background"></div></div></div></div>');
+                this.__options.arrow || b.find(".tooltipster-box").css("margin", 0).end().find(".tooltipster-arrow").hide(), this.__options.minWidth && b.css("min-width", this.__options.minWidth + "px"), this.__options.maxWidth && b.css("max-width", this.__options.maxWidth + "px"),
+                    this.__instance._$tooltip = b, this.__instance._trigger("created")
+            },
+            __destroy: function() {
+                this.__instance._off("." + self.__namespace)
+            },
+            __optionsFormat: function() {
+                var b = this;
+                if (b.__options = b.__instance._optionsExtract(k, b.__defaults()), b.__options.position && (b.__options.side = b.__options.position), "object" != typeof b.__options.distance && (b.__options.distance = [b.__options.distance]), b.__options.distance.length < 4 && (void 0 === b.__options.distance[1] && (b.__options.distance[1] = b.__options.distance[0]), void 0 === b.__options.distance[2] && (b.__options.distance[2] = b.__options.distance[0]), void 0 === b.__options.distance[3] && (b.__options.distance[3] = b.__options.distance[1]), b.__options.distance = {
+                        top: b.__options.distance[0],
+                        right: b.__options.distance[1],
+                        bottom: b.__options.distance[2],
+                        left: b.__options.distance[3]
+                    }), "string" == typeof b.__options.side) {
+                    var c = {
+                        top: "bottom",
+                        right: "left",
+                        bottom: "top",
+                        left: "right"
+                    };
+                    b.__options.side = [b.__options.side, c[b.__options.side]], "left" == b.__options.side[0] || "right" == b.__options.side[0] ? b.__options.side.push("top", "bottom") : b.__options.side.push("right", "left")
+                }
+                6 === a.tooltipster._env.IE && b.__options.arrow !== !0 && (b.__options.arrow = !1)
+            },
+            __reposition: function(b, c) {
+                var d, e = this,
+                    f = e.__targetFind(c),
+                    g = [];
+                e.__instance._$tooltip.detach();
+                var h = e.__instance._$tooltip.clone(),
+                    i = a.tooltipster._getRuler(h),
+                    j = !1,
+                    k = e.__instance.option("animation");
+                switch (k && h.removeClass("tooltipster-" + k), a.each(["window", "document"], function(d, k) {
+                    var l = null;
+                    if (e.__instance._trigger({
+                            container: k,
+                            helper: c,
+                            satisfied: j,
+                            takeTest: function(a) {
+                                l = a
+                            },
+                            results: g,
+                            type: "positionTest"
+                        }), 1 == l || 0 != l && 0 == j && ("window" != k || e.__options.viewportAware))
+                        for (var d = 0; d < e.__options.side.length; d++) {
+                            var m = {
+                                    horizontal: 0,
+                                    vertical: 0
+                                },
+                                n = e.__options.side[d];
+                            "top" == n || "bottom" == n ? m.vertical = e.__options.distance[n] : m.horizontal = e.__options.distance[n], e.__sideChange(h, n), a.each(["natural", "constrained"], function(a, d) {
+                                if (l = null, e.__instance._trigger({
+                                        container: k,
+                                        event: b,
+                                        helper: c,
+                                        mode: d,
+                                        results: g,
+                                        satisfied: j,
+                                        side: n,
+                                        takeTest: function(a) {
+                                            l = a
+                                        },
+                                        type: "positionTest"
+                                    }), 1 == l || 0 != l && 0 == j) {
+                                    var h = {
+                                            container: k,
+                                            distance: m,
+                                            fits: null,
+                                            mode: d,
+                                            outerSize: null,
+                                            side: n,
+                                            size: null,
+                                            target: f[n],
+                                            whole: null
+                                        },
+                                        o = "natural" == d ? i.free() : i.constrain(c.geo.available[k][n].width - m.horizontal, c.geo.available[k][n].height - m.vertical),
+                                        p = o.measure();
+                                    if (h.size = p.size, h.outerSize = {
+                                            height: p.size.height + m.vertical,
+                                            width: p.size.width + m.horizontal
+                                        }, "natural" == d ? c.geo.available[k][n].width >= h.outerSize.width && c.geo.available[k][n].height >= h.outerSize.height ? h.fits = !0 : h.fits = !1 : h.fits = p.fits, "window" == k && (h.fits ? "top" == n || "bottom" == n ? h.whole = c.geo.origin.windowOffset.right >= e.__options.minIntersection && c.geo.window.size.width - c.geo.origin.windowOffset.left >= e.__options.minIntersection : h.whole = c.geo.origin.windowOffset.bottom >= e.__options.minIntersection && c.geo.window.size.height - c.geo.origin.windowOffset.top >= e.__options.minIntersection : h.whole = !1), g.push(h), h.whole) j = !0;
+                                    else if ("natural" == h.mode && (h.fits || h.size.width <= c.geo.available[k][n].width)) return !1
+                                }
+                            })
+                        }
+                }), e.__instance._trigger({
+                    edit: function(a) {
+                        g = a
+                    },
+                    event: b,
+                    helper: c,
+                    results: g,
+                    type: "positionTested"
+                }), g.sort(function(a, b) {
+                    if (a.whole && !b.whole) return -1;
+                    if (!a.whole && b.whole) return 1;
+                    if (a.whole && b.whole) {
+                        var c = e.__options.side.indexOf(a.side),
+                            d = e.__options.side.indexOf(b.side);
+                        return d > c ? -1 : c > d ? 1 : "natural" == a.mode ? -1 : 1
+                    }
+                    if (a.fits && !b.fits) return -1;
+                    if (!a.fits && b.fits) return 1;
+                    if (a.fits && b.fits) {
+                        var c = e.__options.side.indexOf(a.side),
+                            d = e.__options.side.indexOf(b.side);
+                        return d > c ? -1 : c > d ? 1 : "natural" == a.mode ? -1 : 1
+                    }
+                    return "document" == a.container && "bottom" == a.side && "natural" == a.mode ? -1 : 1
+                }), d = g[0], d.coord = {}, d.side) {
+                    case "left":
+                    case "right":
+                        d.coord.top = Math.floor(d.target - d.size.height / 2);
+                        break;
+                    case "bottom":
+                    case "top":
+                        d.coord.left = Math.floor(d.target - d.size.width / 2)
+                }
+                switch (d.side) {
+                    case "left":
+                        d.coord.left = c.geo.origin.windowOffset.left - d.outerSize.width;
+                        break;
+                    case "right":
+                        d.coord.left = c.geo.origin.windowOffset.right + d.distance.horizontal;
+                        break;
+                    case "top":
+                        d.coord.top = c.geo.origin.windowOffset.top - d.outerSize.height;
+                        break;
+                    case "bottom":
+                        d.coord.top = c.geo.origin.windowOffset.bottom + d.distance.vertical
+                }
+                "window" == d.container ? "top" == d.side || "bottom" == d.side ? d.coord.left < 0 ? c.geo.origin.windowOffset.right - this.__options.minIntersection >= 0 ? d.coord.left = 0 : d.coord.left = c.geo.origin.windowOffset.right - this.__options.minIntersection - 1 : d.coord.left > c.geo.window.size.width - d.size.width && (c.geo.origin.windowOffset.left + this.__options.minIntersection <= c.geo.window.size.width ? d.coord.left = c.geo.window.size.width - d.size.width : d.coord.left = c.geo.origin.windowOffset.left + this.__options.minIntersection + 1 - d.size.width) : d.coord.top < 0 ? c.geo.origin.windowOffset.bottom - this.__options.minIntersection >= 0 ? d.coord.top = 0 : d.coord.top = c.geo.origin.windowOffset.bottom - this.__options.minIntersection - 1 : d.coord.top > c.geo.window.size.height - d.size.height && (c.geo.origin.windowOffset.top + this.__options.minIntersection <= c.geo.window.size.height ? d.coord.top = c.geo.window.size.height - d.size.height : d.coord.top = c.geo.origin.windowOffset.top + this.__options.minIntersection + 1 - d.size.height) : (d.coord.left > c.geo.window.size.width - d.size.width && (d.coord.left = c.geo.window.size.width - d.size.width), d.coord.left < 0 && (d.coord.left = 0)), e.__sideChange(h, d.side), c.tooltipClone = h[0], c.tooltipParent = e.__instance.option("parent").parent[0], c.mode = d.mode, c.whole = d.whole, c.origin = e.__instance._$origin[0], c.tooltip = e.__instance._$tooltip[0], delete d.container, delete d.fits, delete d.mode, delete d.outerSize, delete d.whole, d.distance = d.distance.horizontal || d.distance.vertical;
+                var l = a.extend(!0, {}, d);
+                if (e.__instance._trigger({
+                        edit: function(a) {
+                            d = a
+                        },
+                        event: b,
+                        helper: c,
+                        position: l,
+                        type: "position"
+                    }), e.__options.functionPosition) {
+                    var m = e.__options.functionPosition.call(e, e.__instance, c, l);
+                    m && (d = m)
+                }
+                i.destroy();
+                var n, o;
+                "top" == d.side || "bottom" == d.side ? (n = {
+                    prop: "left",
+                    val: d.target - d.coord.left
+                }, o = d.size.width - this.__options.minIntersection) : (n = {
+                    prop: "top",
+                    val: d.target - d.coord.top
+                }, o = d.size.height - this.__options.minIntersection), n.val < this.__options.minIntersection ? n.val = this.__options.minIntersection : n.val > o && (n.val = o);
+                var p;
+                p = c.geo.origin.fixedLineage ? c.geo.origin.windowOffset : {
+                    left: c.geo.origin.windowOffset.left + c.geo.window.scroll.left,
+                    top: c.geo.origin.windowOffset.top + c.geo.window.scroll.top
+                }, d.coord = {
+                    left: p.left + (d.coord.left - c.geo.origin.windowOffset.left),
+                    top: p.top + (d.coord.top - c.geo.origin.windowOffset.top)
+                }, e.__sideChange(e.__instance._$tooltip, d.side), c.geo.origin.fixedLineage ? e.__instance._$tooltip.css("position", "fixed") : e.__instance._$tooltip.css("position", ""), e.__instance._$tooltip.css({
+                    left: d.coord.left,
+                    top: d.coord.top,
+                    height: d.size.height,
+                    width: d.size.width
+                }).find(".tooltipster-arrow").css({
+                    left: "",
+                    top: ""
+                }).css(n.prop, n.val), e.__instance._$tooltip.appendTo(e.__instance.option("parent")), e.__instance._trigger({
+                    type: "repositioned",
+                    event: b,
+                    position: d
+                })
+            },
+            __sideChange: function(a, b) {
+                a.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-" + b)
+            },
+            __targetFind: function(a) {
+                var b = {},
+                    c = this.__instance._$origin[0].getClientRects();
+                if (c.length > 1) {
+                    var d = this.__instance._$origin.css("opacity");
+                    1 == d && (this.__instance._$origin.css("opacity", .99), c = this.__instance._$origin[0].getClientRects(), this.__instance._$origin.css("opacity", 1))
+                }
+                if (c.length < 2) b.top = Math.floor(a.geo.origin.windowOffset.left + a.geo.origin.size.width / 2), b.bottom = b.top, b.left = Math.floor(a.geo.origin.windowOffset.top + a.geo.origin.size.height / 2), b.right = b.left;
+                else {
+                    var e = c[0];
+                    b.top = Math.floor(e.left + (e.right - e.left) / 2), e = c.length > 2 ? c[Math.ceil(c.length / 2) - 1] : c[0], b.right = Math.floor(e.top + (e.bottom - e.top) / 2), e = c[c.length - 1], b.bottom = Math.floor(e.left + (e.right - e.left) / 2), e = c.length > 2 ? c[Math.ceil((c.length + 1) / 2) - 1] : c[c.length - 1], b.left = Math.floor(e.top + (e.bottom - e.top) / 2)
+                }
+                return b
+            }
+        }
+    }), a
+});
+
+
+
+
+/**
+ * jQuery.marquee - scrolling text like old marquee element
+ * @author Aamir Afridi - aamirafridi(at)gmail(dot)com / http://aamirafridi.com/jquery/jquery-marquee-plugin
+ */
+(function(f) {
+    f.fn.marquee = function(x) {
+        return this.each(function() {
+            var a = f.extend({}, f.fn.marquee.defaults, x),
+                b = f(this),
+                c, t, e = 3,
+                y = "animation-play-state",
+                p = !1,
+                E = function(a, b, c) {
+                    for (var e = ["webkit", "moz", "MS", "o", ""], d = 0; d < e.length; d++) e[d] || (b = b.toLowerCase()), a.addEventListener(e[d] + b, c, !1)
+                },
+                F = function(a) {
+                    var b = [],
+                        c;
+                    for (c in a) a.hasOwnProperty(c) && b.push(c + ":" + a[c]);
+                    b.push();
+                    return "{" + b.join(",") + "}"
+                },
+                l = {
+                    pause: function() {
+                        p && a.allowCss3Support ? c.css(y, "paused") : f.fn.pause && c.pause();
+                        b.data("runningStatus",
+                            "paused");
+                        b.trigger("paused")
+                    },
+                    resume: function() {
+                        p && a.allowCss3Support ? c.css(y, "running") : f.fn.resume && c.resume();
+                        b.data("runningStatus", "resumed");
+                        b.trigger("resumed")
+                    },
+                    toggle: function() {
+                        l["resumed" == b.data("runningStatus") ? "pause" : "resume"]()
+                    },
+                    destroy: function() {
+                        clearTimeout(b.timer);
+                        b.find("*").addBack().unbind();
+                        b.html(b.find(".js-marquee:first").html())
+                    }
+                };
+            if ("string" === typeof x) f.isFunction(l[x]) && (c || (c = b.find(".js-marquee-wrapper")), !0 === b.data("css3AnimationIsSupported") && (p = !0), l[x]());
+            else {
+                var u;
+                f.each(a, function(c, d) {
+                    u = b.attr("data-" + c);
+                    if ("undefined" !== typeof u) {
+                        switch (u) {
+                            case "true":
+                                u = !0;
+                                break;
+                            case "false":
+                                u = !1
+                        }
+                        a[c] = u
+                    }
+                });
+                a.speed && (a.duration = parseInt(b.width(), 10) / a.speed * 1E3);
+                var v = "up" == a.direction || "down" == a.direction;
+                a.gap = a.duplicated ? parseInt(a.gap) : 0;
+                b.wrapInner('<div class="js-marquee"></div>');
+                var h = b.find(".js-marquee").css({
+                    "margin-right": a.gap,
+                    "float": "left"
+                });
+                a.duplicated && h.clone(!0).appendTo(b);
+                b.wrapInner('<div style="width:100000px" class="js-marquee-wrapper"></div>');
+                c = b.find(".js-marquee-wrapper");
+                if (v) {
+                    var k = b.height();
+                    c.removeAttr("style");
+                    b.height(k);
+                    b.find(".js-marquee").css({
+                        "float": "none",
+                        "margin-bottom": a.gap,
+                        "margin-right": 0
+                    });
+                    a.duplicated && b.find(".js-marquee:last").css({
+                        "margin-bottom": 0
+                    });
+                    var q = b.find(".js-marquee:first").height() + a.gap;
+                    a.startVisible && !a.duplicated ? (a._completeDuration = (parseInt(q, 10) + parseInt(k, 10)) / parseInt(k, 10) * a.duration, a.duration *= parseInt(q, 10) / parseInt(k, 10)) : a.duration *= (parseInt(q, 10) + parseInt(k, 10)) / parseInt(k, 10)
+                } else {
+                    var m =
+                        b.find(".js-marquee:first").width() + a.gap;
+                    var n = b.width();
+                    a.startVisible && !a.duplicated ? (a._completeDuration = (parseInt(m, 10) + parseInt(n, 10)) / parseInt(n, 10) * a.duration, a.duration *= parseInt(m, 10) / parseInt(n, 10)) : a.duration *= (parseInt(m, 10) + parseInt(n, 10)) / parseInt(n, 10)
+                }
+                a.duplicated && (a.duration /= 2);
+                if (a.allowCss3Support) {
+                    h = document.body || document.createElement("div");
+                    var g = "marqueeAnimation-" + Math.floor(1E7 * Math.random()),
+                        A = ["Webkit", "Moz", "O", "ms", "Khtml"],
+                        B = "animation",
+                        d = "",
+                        r = "";
+                    h.style.animation &&
+                        (r = "@keyframes " + g + " ", p = !0);
+                    if (!1 === p)
+                        for (var z = 0; z < A.length; z++)
+                            if (void 0 !== h.style[A[z] + "AnimationName"]) {
+                                h = "-" + A[z].toLowerCase() + "-";
+                                B = h + B;
+                                y = h + y;
+                                r = "@" + h + "keyframes " + g + " ";
+                                p = !0;
+                                break
+                            }
+                    p && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s infinite " + a.css3easing, b.data("css3AnimationIsSupported", !0))
+                }
+                var C = function() {
+                        c.css("transform", "translateY(" + ("up" == a.direction ? k + "px" : "-" + q + "px") + ")")
+                    },
+                    D = function() {
+                        c.css("transform", "translateX(" + ("left" == a.direction ? n + "px" : "-" + m + "px") + ")")
+                    };
+                a.duplicated ?
+                    (v ? a.startVisible ? c.css("transform", "translateY(0)") : c.css("transform", "translateY(" + ("up" == a.direction ? k + "px" : "-" + (2 * q - a.gap) + "px") + ")") : a.startVisible ? c.css("transform", "translateX(0)") : c.css("transform", "translateX(" + ("left" == a.direction ? n + "px" : "-" + (2 * m - a.gap) + "px") + ")"), a.startVisible || (e = 1)) : a.startVisible ? e = 2 : v ? C() : D();
+                var w = function() {
+                    a.duplicated && (1 === e ? (a._originalDuration = a.duration, a.duration = v ? "up" == a.direction ? a.duration + k / (q / a.duration) : 2 * a.duration : "left" == a.direction ? a.duration + n /
+                        (m / a.duration) : 2 * a.duration, d && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s " + a.css3easing), e++) : 2 === e && (a.duration = a._originalDuration, d && (g += "0", r = f.trim(r) + "0 ", d = g + " " + a.duration / 1E3 + "s 0s infinite " + a.css3easing), e++));
+                    v ? a.duplicated ? (2 < e && c.css("transform", "translateY(" + ("up" == a.direction ? 0 : "-" + q + "px") + ")"), t = {
+                        transform: "translateY(" + ("up" == a.direction ? "-" + q + "px" : 0) + ")"
+                    }) : a.startVisible ? 2 === e ? (d && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s " + a.css3easing), t = {
+                        transform: "translateY(" +
+                            ("up" == a.direction ? "-" + q + "px" : k + "px") + ")"
+                    }, e++) : 3 === e && (a.duration = a._completeDuration, d && (g += "0", r = f.trim(r) + "0 ", d = g + " " + a.duration / 1E3 + "s 0s infinite " + a.css3easing), C()) : (C(), t = {
+                        transform: "translateY(" + ("up" == a.direction ? "-" + c.height() + "px" : k + "px") + ")"
+                    }) : a.duplicated ? (2 < e && c.css("transform", "translateX(" + ("left" == a.direction ? 0 : "-" + m + "px") + ")"), t = {
+                        transform: "translateX(" + ("left" == a.direction ? "-" + m + "px" : 0) + ")"
+                    }) : a.startVisible ? 2 === e ? (d && (d = g + " " + a.duration / 1E3 + "s " + a.delayBeforeStart / 1E3 + "s " + a.css3easing),
+                        t = {
+                            transform: "translateX(" + ("left" == a.direction ? "-" + m + "px" : n + "px") + ")"
+                        }, e++) : 3 === e && (a.duration = a._completeDuration, d && (g += "0", r = f.trim(r) + "0 ", d = g + " " + a.duration / 1E3 + "s 0s infinite " + a.css3easing), D()) : (D(), t = {
+                        transform: "translateX(" + ("left" == a.direction ? "-" + m + "px" : n + "px") + ")"
+                    });
+                    b.trigger("beforeStarting");
+                    if (p) {
+                        c.css(B, d);
+                        var h = r + " { 100%  " + F(t) + "}",
+                            l = c.find("style");
+                        0 !== l.length ? l.filter(":last").html(h) : f("head").append("<style>" + h + "</style>");
+                        E(c[0], "AnimationIteration", function() {
+                            b.trigger("finished")
+                        });
+                        E(c[0], "AnimationEnd", function() {
+                            w();
+                            b.trigger("finished")
+                        })
+                    } else c.animate(t, a.duration, a.easing, function() {
+                        b.trigger("finished");
+                        a.pauseOnCycle ? b.timer = setTimeout(w, a.delayBeforeStart) : w()
+                    });
+                    b.data("runningStatus", "resumed")
+                };
+                b.bind("pause", l.pause);
+                b.bind("resume", l.resume);
+                a.pauseOnHover && (b.bind("mouseenter", l.pause), b.bind("mouseleave", l.resume));
+                p && a.allowCss3Support ? w() : b.timer = setTimeout(w, a.delayBeforeStart)
+            }
+        })
+    };
+    f.fn.marquee.defaults = {
+        allowCss3Support: !0,
+        css3easing: "linear",
+        easing: "linear",
+        delayBeforeStart: 1E3,
+        direction: "left",
+        duplicated: !1,
+        duration: 5E3,
+        gap: 20,
+        pauseOnCycle: !1,
+        pauseOnHover: !1,
+        startVisible: !1
+    }
+})(jQuery);
\ No newline at end of file
diff --git a/models.html b/models.html
new file mode 100644
index 0000000000000000000000000000000000000000..ccada8bb359181bff1f0fabe3b67315cfc4ae39f
--- /dev/null
+++ b/models.html
@@ -0,0 +1,1516 @@
+<!DOCTYPE html>
+<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
+<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
+<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
+<!--[if (gte IE 9)|!(IE)]><!-->
+<html lang="en">
+<!--<![endif]-->
+
+<head>
+
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <meta name="description" content="TechWave">
+    <meta name="author" content="SRBThemes">
+
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+
+    <title>Finetuned Models - TechWave</title>
+
+
+    <script>
+        if (!localStorage.frenify_skin) {
+            localStorage.frenify_skin = 'dark';
+        }
+        if (!localStorage.frenify_panel) {
+            localStorage.frenify_panel = '';
+        }
+        document.documentElement.setAttribute("data-techwave-skin", localStorage.frenify_skin);
+        if (localStorage.frenify_panel !== '') {
+            document.documentElement.classList.add(localStorage.frenify_panel);
+        }
+    </script>
+
+    <!-- Google Fonts -->
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link href="https://fonts.googleapis.com/css2?family=Heebo:wght@100;200;300;400;500;600;700;800;900&family=Work+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
+    <!-- !Google Fonts -->
+
+    <!-- Styles -->
+    <link type="text/css" rel="stylesheet" href="css/plugins.css?ver=1.0.0" />
+    <link type="text/css" rel="stylesheet" href="css/style.css?ver=1.0.0" />
+    <!--[if lt IE 9]> <script type="text/javascript" src="js/modernizr.custom.js"></script> <![endif]-->
+    <!-- !Styles -->
+
+</head>
+
+<body>
+
+
+    <!-- Moving Submenu -->
+    <div class="techwave_fn_fixedsub">
+        <ul></ul>
+    </div>
+    <!-- !Moving Submenu -->
+
+    <!-- Preloader -->
+    <div class="techwave_fn_preloader">
+        <svg>
+		<circle class="first_circle" cx="50%" cy="50%" r="110"></circle>
+		<circle class="second_circle" cx="50%" cy="50%" r="110"></circle>
+	</svg>
+    </div>
+    <!-- !Preloader -->
+
+    <!-- Report -->
+    <div class="techwave_fn_report">
+        <a href="#" class="fn__closer fn__icon_button">
+		<img src="svg/close.svg" alt="" class="fn__svg">
+	</a>
+        <div class="report__closer"></div>
+        <div class="report__content">
+            <h3 class="title">Report Item</h3>
+            <h3 class="subtitle">What is the main reason for your report?</h3>
+            <input class="reason_field" type="text" placeholder="Type here...">
+            <div class="btns">
+                <a href="#" class="report techwave_fn_button">
+				<span>Report</span>
+			</a>
+                <a href="#" class="cancel techwave_fn_button">
+				<span>Cancel</span>
+			</a>
+            </div>
+        </div>
+    </div>
+    <!-- !Report -->
+
+    <!-- Image Lightbox -->
+    <div class="techwave_fn_img_lightbox">
+
+        <!-- top section (of the image lightbox) -->
+        <div class="lightbox__top">
+            <div class="lightbox__tl">
+                <div class="lightbox__tlbar">
+                    <div class="lightbox__tlbar_left">
+                        <div class="item item__share fn__icon_options medium_size">
+                            <a href="#" class="item__btn fn__icon_button">
+							<img src="svg/share.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="fn__icon_popup">
+                                <ul>
+                                    <li><a href="#">Facebook</a></li>
+                                    <li><a href="#">Twitter</a></li>
+                                    <li><a href="#">Instagram</a></li>
+                                    <li><a href="#">Linkedin</a></li>
+                                    <li><a href="#">Pinterest</a></li>
+                                    <li><a href="#" class="fn__copy" data-copied="Copied!">Copy Link</a></li>
+                                </ul>
+                            </div>
+                        </div>
+                        <div class="item item__download fn__icon_options medium_size">
+                            <a href="#" class="item__btn fn__icon_button">
+							<img src="svg/download.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="fn__icon_popup">
+                                <ul>
+                                    <li><a href="#">Original Image</a></li>
+                                    <li><a href="#">Creative Upscaled Image</a></li>
+                                    <li><a href="#">HD Upscaled Image</a></li>
+                                </ul>
+                            </div>
+                        </div>
+                        <div class="item item__more fn__icon_options medium_size">
+                            <a href="#" class="item__btn fn__icon_button">
+							<span class="dots"></span>
+						</a>
+                            <div class="fn__icon_popup">
+                                <ul>
+                                    <li><a href="#">Remove Background</a></li>
+                                    <li><a href="#">Creative Upscale</a></li>
+                                    <li><a href="#">Alternative Upscale</a></li>
+                                    <li class="high_priorety"><a href="#" class="fn__report">Report Image</a></li>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="lightbox__tlbar_center">
+                        <a href="#" class="img_nav nav_prev">
+						<img src="svg/arrow.svg" alt="" class="fn__svg">
+					</a>
+                        <a href="#" class="img_nav nav_next">
+						<img src="svg/arrow.svg" alt="" class="fn__svg">
+					</a>
+                    </div>
+                    <div class="lightbox__tlbar_right">
+                        <a href="#" class="fn__like" data-id="2">
+						<span class="count">343</span>
+						<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+						<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+					</a>
+                    </div>
+                </div>
+                <div class="lightbox__tlimg">
+                    <img src="img/gallery/main.jpg" alt="">
+                </div>
+            </div>
+            <div class="lightbox__tr">
+                <div class="user__profile">
+                    <a class="profile_link" href="user-profile.html">
+					<img src="img/user/user.jpg" alt="">
+					<h2 class="user_name">LuckyLee</h2>
+				</a>
+                    <a class="fn__follow" href="#" data-follow-text="Follow" data-unfollow-text="Unfollow">
+					<span class="text">Follow</span>
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button">
+					<img src="svg/close.svg" alt="" class="fn__svg">
+				</a>
+                </div>
+                <div class="item__details">
+                    <div class="fn__model">
+                        <div class="model_img">
+                            <img src="img/user/user.jpg" alt="">
+                        </div>
+                        <div class="model_info">
+                            <h4 class="model_subtitle">Model</h4>
+                            <h3 class="model_title">ArtShaper v3</h3>
+                        </div>
+                        <a href="image-generation.html" class="fn__icon_button">
+						<img src="svg/arrow.svg" alt="" class="fn__svg">
+					</a>
+                    </div>
+
+                    <div class="fn__prompt_details">
+                        <div class="prompt__header">
+                            <div class="prompt__text">Prompt Details</div>
+                            <div class="prompt__options">
+                                <a href="#" class="fn__icon_button">
+								<span class="dots"></span>
+							</a>
+                                <div class="prompt__popup">
+                                    <ul>
+                                        <li><a href="#">Remix</a></li>
+                                        <li><a href="#">Image to Image</a></li>
+                                        <li><a href="#" class="fn__copy" data-copied="Copied!" data-text="Realistic painting, photorealistic masterpiece detailing, professional photography, natural lighting, volumetric lighting maximalist photoillustration: 8k resolution concept art intricately detailed, complex, elegant, expansive">Copy Prompt</a></li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="prompt__content">
+                            <p>Realistic painting, photorealistic masterpiece detailing, professional photography, natural lighting, volumetric lighting maximalist photoillustration: 8k resolution concept art intricately detailed, complex, elegant, expansive</p>
+                        </div>
+                    </div>
+
+                    <div class="techwave_fn_accordion small" data-type="accordion">
+                        <!-- data-type values: accordion, toggle -->
+                        <div class="acc__item">
+                            <div class="acc__header">
+                                <h2 class="acc__title">Negative Prompt</h2>
+                                <div class="acc__icon"></div>
+                            </div>
+                            <div class="acc__content">
+                                <p>TECH-AI is an AI-powered content production suite that empowers creators with a powerful, customisable, and user-friendly platform for bringing their ideas to life.</p>
+                                <p>With a focus on granular control at every step of content creation, we put creators at the centre of the creative process by offering granular control at every stage of generation, ensuring that AI enhances, rather than
+                                    replaces, human creative potential.</p>
+                                <p>Our custom back-end delivers advancements in model fine tuning, prompt adherence, training and inference speed, and multi-image prompting functionality. We also address common issues around image degradation and have implemented
+                                    a custom upscaling, with much more on the way!</p>
+                            </div>
+                        </div>
+                    </div>
+
+                </div>
+
+                <div class="fn__details_list">
+                    <ul>
+                        <li>
+                            <div class="sub_title">Created</div>
+                            <div class="title">April 05, 2023</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Resolution</div>
+                            <div class="title">768 x 1024px</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Sampler</div>
+                            <div class="title">Tech-AI-SRBThemes</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Step Count</div>
+                            <div class="title">30</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Base Model</div>
+                            <div class="title">SRBThemes v2.0</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">High Contrast</div>
+                            <div class="title">Off</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Magic Prompt</div>
+                            <div class="title">On</div>
+                        </li>
+                    </ul>
+                </div>
+
+            </div>
+        </div>
+        <!-- !top section (of the image lightbox) -->
+
+        <!-- related section (of the image lightbox) -->
+        <div class="lightbox__related">
+
+            <div class="fn__title_holder">
+                <h2 class="title">Related Images</h2>
+            </div>
+
+            <div class="fn__grid_items">
+                <ul>
+                    <li>
+                        <a href="#" data-id="1"><img src="img/related/1.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="2"><img src="img/related/2.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="3"><img src="img/related/3.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="4"><img src="img/related/4.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="5"><img src="img/related/5.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="6"><img src="img/related/6.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="7"><img src="img/related/7.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="8"><img src="img/related/8.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="9"><img src="img/related/9.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="10"><img src="img/related/10.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="11"><img src="img/related/11.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="12"><img src="img/related/12.jpg" alt=""></a>
+                    </li>
+                </ul>
+            </div>
+
+        </div>
+        <!-- !related section (of the image lightbox) -->
+
+    </div>
+    <!-- !Image Lightbox -->
+
+
+    <!-- MAIN WRAPPER -->
+    <div class="techwave_fn_wrapper">
+        <div class="techwave_fn_wrap">
+
+
+            <!-- Searchbar -->
+            <div class="techwave_fn_searchbar">
+                <div class="search__bar">
+                    <input class="search__input" type="text" placeholder="Search here...">
+                    <img src="svg/search.svg" alt="" class="fn__svg search__icon">
+                    <a class="search__closer" href="#"><img src="svg/close.svg" alt="" class="fn__svg"></a>
+                </div>
+                <div class="search__results">
+                    <!-- Results will come here (via ajax after the integration you made after purchase as it doesn't work in HTML) -->
+                    <div class="results__title">Results</div>
+                    <div class="results__list">
+                        <ul>
+                            <li><a href="#">Artificial Intelligence</a></li>
+                            <li><a href="#">Learn about the impact of AI on the financial industry</a></li>
+                            <li><a href="#">Delve into the realm of AI-driven manufacturing</a></li>
+                            <li><a href="#">Understand the ethical implications surrounding AI</a></li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+            <!-- !Searchbar -->
+
+            <!-- HEADER -->
+            <header class="techwave_fn_header">
+
+                <!-- Header left: token information -->
+                <div class="header__left">
+                    <div class="fn__token_info">
+                        <span class="token_summary">
+						<span class="count">120</span>
+                        <span class="text">Tokens<br>Remain</span>
+                        </span>
+                        <a href="pricing.html" class="token_upgrade techwave_fn_button"><span>Upgrade</span></a>
+                        <div class="token__popup">
+                            Resets in <span>19 hours.</span><br> Daily limit is <span>200 tokens</span>
+                        </div>
+                    </div>
+                </div>
+                <!-- /Header left: token information -->
+
+
+                <!-- Header right: navigation bar -->
+                <div class="header__right">
+                    <div class="fn__nav_bar">
+
+                        <!-- Search (bar item) -->
+                        <div class="bar__item bar__item_search">
+                            <a href="#" class="item_opener">
+							<img src="svg/search.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup">
+                                <input type="text" placeholder="Search">
+                            </div>
+                        </div>
+                        <!-- !Search (bar item) -->
+
+                        <!-- Notification (bar item) -->
+                        <div class="bar__item bar__item_notification has_notification">
+                            <a href="#" class="item_opener">
+							<img src="svg/bell.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup">
+                                <div class="ntfc_header">
+                                    <h2 class="ntfc_title">Notifications</h2>
+                                    <a href="notifications.html">View All</a>
+                                </div>
+                                <div class="ntfc_list">
+                                    <ul>
+                                        <li>
+                                            <p><a href="notification-single.html">Version 1.1.0 has been launched</a></p>
+                                            <span>34 Min Ago</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Video Generation has been released</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Terms has been updated</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !Notification (bar item) -->
+
+                        <!-- Full Screen (bar item) -->
+                        <div class="bar__item bar__item_fullscreen">
+                            <a href="#" class="item_opener">
+							<img src="svg/fullscreen.svg" alt="" class="fn__svg f_screen">
+							<img src="svg/smallscreen.svg" alt="" class="fn__svg s_screen">
+						</a>
+                        </div>
+                        <!-- !Full Screen (bar item) -->
+
+                        <!-- Language (bar item) -->
+                        <div class="bar__item bar__item_language">
+                            <a href="#" class="item_opener">
+							<img src="svg/language.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup">
+                                <ul>
+                                    <li>
+                                        <span class="active">English</span>
+                                    </li>
+                                    <li>
+                                        <a href="#">Spanish</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">French</a>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                        <!-- !Language (bar item) -->
+
+                        <!-- Site Skin (bar item) -->
+                        <div class="bar__item bar__item_skin">
+                            <a href="#" class="item_opener">
+							<img src="svg/sun.svg" alt="" class="fn__svg light_mode">
+							<img src="svg/moon.svg" alt="" class="fn__svg dark_mode">
+						</a>
+                        </div>
+                        <!-- !Site Skin (bar item) -->
+
+                        <!-- User (bar item) -->
+                        <div class="bar__item bar__item_user">
+                            <a href="#" class="user_opener">
+							<img src="img/user/user.jpg" alt="">
+						</a>
+                            <div class="item_popup">
+                                <div class="user_profile">
+                                    <div class="user_img">
+                                        <img src="img/user/user.jpg" alt="">
+                                    </div>
+                                    <div class="user_info">
+                                        <h2 class="user_name">Caden Smith<span>Free</span></h2>
+                                        <p><a href="mailto:cadmail@gmail.com" class="user_email">cadmail@gmail.com</a></p>
+                                    </div>
+                                </div>
+                                <div class="user_nav">
+                                    <ul>
+                                        <li>
+                                            <a href="user-profile.html">
+											<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+											<span class="text">Profile</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-settings.html">
+											<span class="icon"><img src="svg/setting.svg" alt="" class="fn__svg"></span>
+											<span class="text">Settings</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-billing.html">
+											<span class="icon"><img src="svg/billing.svg" alt="" class="fn__svg"></span>
+											<span class="text">Billing</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="sign-in.html">
+											<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+											<span class="text">Log Out</span>
+										</a>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !User (bar item) -->
+
+
+                    </div>
+                </div>
+                <!-- !Header right: navigation bar -->
+
+            </header>
+            <!-- !HEADER -->
+
+
+            <!-- LEFT PANEL -->
+            <div class="techwave_fn_leftpanel">
+
+                <div class="mobile_extra_closer"></div>
+
+                <!-- logo (left panel) -->
+                <div class="leftpanel_logo">
+                    <a href="index.html" class="fn_logo">
+					<span class="full_logo">
+						<img src="img/logo-desktop-full.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-full.png" alt="" class="retina_logo">
+					</span>
+					<span class="short_logo">
+						<img src="img/logo-desktop-mini.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-mini.png" alt="" class="retina_logo">
+					</span>
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button desktop_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button mobile_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                </div>
+                <!-- !logo (left panel) -->
+
+                <!-- content (left panel) -->
+                <div class="leftpanel_content">
+
+                    <!-- #1 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Start Here</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="index.html" class="fn__tooltip menu__item" data-position="right" title="Home">
+								<span class="icon"><img src="svg/home.svg" alt="" class="fn__svg"></span>
+								<span class="text">Home</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="community-feed.html" class="fn__tooltip menu__item" data-position="right" title="Community Feed">
+								<span class="icon"><img src="svg/community.svg" alt="" class="fn__svg"></span>
+								<span class="text">Community Feed</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="personal-feed.html" class="fn__tooltip menu__item" data-position="right" title="Personal Feed">
+								<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+								<span class="text">Personal Feed<span class="count">48</span></span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="models.html" class="fn__tooltip active menu__item" data-position="right" title="Finetuned Models">
+								<span class="icon"><img src="svg/cube.svg" alt="" class="fn__svg"></span>
+								<span class="text">Finetuned Models</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#1 navigation group -->
+
+                    <!-- #2 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">User Tools</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="image-generation.html" class="fn__tooltip menu__item" data-position="right" title="Image Generation">
+								<span class="icon"><img src="svg/image.svg" alt="" class="fn__svg"></span>
+								<span class="text">Image Generation</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="ai-chat-bot.html" class="fn__tooltip menu__item" data-position="right" title="AI Chat Bot">
+								<span class="icon"><img src="svg/chat.svg" alt="" class="fn__svg"></span>
+								<span class="text">AI Chat Bot</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#2 navigation group -->
+
+                    <!-- #3 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Support</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="pricing.html" class="fn__tooltip menu__item" data-position="right" title="Pricing">
+								<span class="icon"><img src="svg/dollar.svg" alt="" class="fn__svg"></span>
+								<span class="text">Pricing</span>
+							</a>
+                            </li>
+                            <li class="menu-item-has-children">
+                                <a href="video-generation.html" class="fn__tooltip menu__item" title="FAQ &amp; Help" data-position="right">
+								<span class="icon"><img src="svg/question.svg" alt="" class="fn__svg"></span>
+								<span class="text">FAQ &amp; Help</span>
+								<span class="trigger"><img src="svg/arrow.svg" alt="" class="fn__svg"></span>
+							</a>
+                                <ul class="sub-menu">
+                                    <li>
+                                        <a href="documentation.html"><span class="text">Documentation</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="faq.html"><span class="text">FAQ</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="changelog.html"><span class="text">Changelog<span class="fn__sup">(1.3.0)</span></span></a>
+                                    </li>
+                                    <li>
+                                        <a href="contact.html"><span class="text">Contact Us</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="index-2.html"><span class="text">Home #2</span></a>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li>
+                                <a href="sign-in.html" class="fn__tooltip menu__item" data-position="right" title="Log Out">
+								<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+								<span class="text">Log Out</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#3 navigation group -->
+
+
+                </div>
+                <!-- !content (left panel) -->
+
+            </div>
+            <!-- !LEFT PANEL -->
+
+
+            <!-- CONTENT -->
+            <div class="techwave_fn_content">
+
+                <!-- PAGE (all pages go inside this div) -->
+                <div class="techwave_fn_page">
+
+                    <!-- Models Page -->
+                    <div class="techwave_fn_models_page">
+
+                        <div class="fn__title_holder">
+                            <div class="container">
+                                <h1 class="title">Finetuned Models</h1>
+                            </div>
+                        </div>
+
+                        <!-- Models -->
+                        <div class="techwave_fn_models">
+
+                            <div class="fn__tabs">
+                                <div class="container">
+                                    <div class="tab_in">
+                                        <a class="active" href="#tab1">Main Models</a>
+                                        <a href="#tab2">Community’s</a>
+                                        <a href="#tab3">Bookmarks</a>
+                                        <a href="#tab4">My Own</a>
+                                    </div>
+                                </div>
+                            </div>
+
+
+                            <!-- models filter -->
+                            <div class="container">
+                                <div class="models__filter">
+                                    <div class="filter__left">
+                                        <div class="filter__search">
+                                            <input type="text" placeholder="Search gallery">
+                                            <a href="#" class="techwave_fn_button"><span>Search</span></a>
+                                        </div>
+                                    </div>
+                                    <div class="filter__right">
+                                        <div class="filter__category">
+                                            <select>
+											<option value="all" selected>All Categories</option>
+											<option value="Buildings">Buildings</option>
+											<option value="Characters">Characters</option>
+											<option value="Environments">Environments</option>
+											<option value="Fashion">Fashion</option>
+											<option value="Illustration">Illustration</option>
+											<option value="Graphical">Graphical</option>
+											<option value="Photography">Photography</option>
+											<option value="Textures">Textures</option>
+										</select>
+                                        </div>
+                                        <div class="filter__order">
+                                            <div class="fn__icon_options medium_size align_right">
+                                                <span class="fn__icon_button">
+												<img src="svg/filter.svg" alt="" class="fn__svg">
+											</span>
+                                                <div class="fn__icon_popup">
+                                                    <ul>
+                                                        <li>
+                                                            <a href="#">Newest</a>
+                                                        </li>
+                                                        <li>
+                                                            <a href="#">Oldest</a>
+                                                        </li>
+                                                        <li>
+                                                            <a href="#">A-Z</a>
+                                                        </li>
+                                                    </ul>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <!-- !models filter -->
+
+
+
+                            <div class="container">
+                                <!-- models content -->
+                                <div class="models__content">
+                                    <div class="models__results">
+                                        <div class="fn__preloader">
+                                            <div class="icon"></div>
+                                            <div class="text">Loading</div>
+                                        </div>
+                                        <div class="fn__tabs_content">
+                                            <div id="tab1" class="tab__item active">
+                                                <ul class="fn__model_items">
+
+                                                    <!-- #1 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="https://masterthecrypto.com/wp-content/uploads/2019/11/BITCOIN-PRICE.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#1 model item -->
+
+                                                    <!-- #2 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ7Yb_OpS2KtTbaJ7RdHJaqkU6dZNJXqSuUUQ&s" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#2 model item -->
+
+                                                    <!-- #3 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTHBefo9mLoY7MAEdqECfjuvW8KAZZ4qZKIA&s" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#3 model item -->
+
+                                                    <!-- #4 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/4.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#4 model item -->
+
+                                                    <!-- #5 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/5.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#5 model item -->
+
+                                                    <!-- #6 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/6.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#6 model item -->
+
+                                                    <!-- #7 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/7.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#7 model item -->
+
+                                                    <!-- #8 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/8.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#8 model item -->
+
+                                                    <!-- #9 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/9.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#9 model item -->
+
+                                                    <!-- #10 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/10.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#10 model item -->
+
+                                                </ul>
+                                            </div>
+                                            <div id="tab2" class="tab__item">
+                                                <ul class="fn__model_items">
+
+                                                    <!-- #1 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/1.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#1 model item -->
+
+                                                    <!-- #2 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/2.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#2 model item -->
+
+                                                    <!-- #3 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/3.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#3 model item -->
+
+                                                    <!-- #4 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/4.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#4 model item -->
+
+                                                    <!-- #5 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/5.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#5 model item -->
+
+                                                    <!-- #6 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/6.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#6 model item -->
+
+                                                    <!-- #7 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/7.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#7 model item -->
+
+                                                    <!-- #8 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/8.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#8 model item -->
+
+                                                    <!-- #9 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/9.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#9 model item -->
+
+                                                    <!-- #10 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/10.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#10 model item -->
+
+                                                </ul>
+                                            </div>
+                                            <div id="tab3" class="tab__item">
+                                                <ul class="fn__model_items">
+
+                                                    <!-- #1 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/1.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#1 model item -->
+
+                                                    <!-- #2 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/2.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#2 model item -->
+
+                                                    <!-- #3 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/3.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#3 model item -->
+
+                                                    <!-- #4 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/4.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#4 model item -->
+
+                                                    <!-- #5 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/5.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#5 model item -->
+
+                                                    <!-- #6 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/6.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#6 model item -->
+
+                                                    <!-- #7 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/7.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#7 model item -->
+
+                                                    <!-- #8 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/8.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#8 model item -->
+
+                                                    <!-- #9 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/9.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#9 model item -->
+
+                                                    <!-- #10 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/10.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#10 model item -->
+
+                                                </ul>
+                                            </div>
+                                            <div id="tab4" class="tab__item">
+                                                <ul class="fn__model_items">
+
+                                                    <!-- #1 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark has__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/1.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#1 model item -->
+
+                                                    <!-- #2 model item -->
+                                                    <li class="fn__model_item">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__bookmark">
+															<img src="svg/bookmark.svg" alt="" class="fn__svg hasntbook">
+															<img src="svg/bookmarked.svg" alt="" class="fn__svg hasbook">
+														</a>
+                                                            <div class="img">
+                                                                <img src="img/models/2.jpg" alt="">
+                                                            </div>
+                                                            <div class="item__info">
+                                                                <h3 class="title">GameVisuals</h3>
+                                                                <p class="desc">A versatile model great at both photorealism and anime, includes noise offset training... by Lykon.</p>
+                                                            </div>
+                                                            <div class="item__author">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">Caden</h3>
+                                                            </div>
+                                                        </div>
+                                                    </li>
+                                                    <!-- !#2 model item -->
+
+                                                    <li class="fn__model_item new">
+                                                        <div class="item">
+                                                            <a href="#" class="fn__full_link"></a>
+                                                            <span class="add"></span>
+                                                            <span class="text">Add new</span>
+                                                        </div>
+                                                    </li>
+
+                                                </ul>
+                                            </div>
+                                        </div>
+
+                                    </div>
+                                    <div class="models__more">
+                                        <a href="#" class="medium techwave_fn_button"><span>Load More</span></a>
+                                    </div>
+                                </div>
+                                <!-- !models content -->
+                            </div>
+
+
+
+                        </div>
+                        <!-- !Models -->
+
+                    </div>
+                    <!-- !Models Page -->
+
+                </div>
+                <!-- !PAGE (all pages go inside this div) -->
+
+
+                <!-- FOOTER (inside the content) -->
+                <footer class="techwave_fn_footer">
+                    <div class="techwave_fn_footer_content">
+                        <div class="copyright">
+                            <p>
+                                <script>
+                                    document.write(new Date().getFullYear())
+                                </script>© SRBThemes</p>
+                        </div>
+                        <div class="menu_items">
+                            <ul>
+                                <li><a href="terms.html">Terms of Service</a></li>
+                                <li><a href="privacy.html">Privacy Policy</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </footer>
+                <!-- !FOOTER (inside the content) -->
+
+            </div>
+            <!-- !CONTENT -->
+
+
+        </div>
+    </div>
+    <!-- !MAIN WRAPPER -->
+
+
+
+    <!-- Scripts -->
+    <script type="text/javascript" src="js/jquery.js?ver=1.0.0"></script>
+    <script type="text/javascript" src="js/plugins.js?ver=1.0.0"></script>
+    <!--[if lt IE 10]> <script type="text/javascript" src="js/ie8.js"></script> <![endif]-->
+    <script type="text/javascript" src="js/init.js?ver=1.0.0"></script>
+    <!-- !Scripts -->
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/news.html b/news.html
new file mode 100644
index 0000000000000000000000000000000000000000..3cea29907fc4850f6a41fd81e0f5937abc870ac9
--- /dev/null
+++ b/news.html
@@ -0,0 +1,553 @@
+<!DOCTYPE html>
+<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
+<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
+<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
+<!--[if (gte IE 9)|!(IE)]><!-->
+<html lang="en">
+<!--<![endif]-->
+
+<head>
+
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <meta name="description" content="TechWave">
+    <meta name="author" content="SRBThemes">
+
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+
+    <title>Home - TechWave</title>
+
+
+    <script>
+        if (!localStorage.frenify_skin) {
+            localStorage.frenify_skin = 'dark';
+        }
+        if (!localStorage.frenify_panel) {
+            localStorage.frenify_panel = '';
+        }
+        document.documentElement.setAttribute("data-techwave-skin", localStorage.frenify_skin);
+        if (localStorage.frenify_panel !== '') {
+            document.documentElement.classList.add(localStorage.frenify_panel);
+        }
+    </script>
+
+    <!-- Google Fonts -->
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link href="https://fonts.googleapis.com/css2?family=Heebo:wght@100;200;300;400;500;600;700;800;900&family=Work+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
+    <!-- !Google Fonts -->
+
+    <!-- Styles -->
+    <link type="text/css" rel="stylesheet" href="css/plugins.css?ver=1.0.0" />
+    <link type="text/css" rel="stylesheet" href="css/style.css?ver=1.0.0" />
+    <!--[if lt IE 9]> <script type="text/javascript" src="js/modernizr.custom.js"></script> <![endif]-->
+    <!-- !Styles -->
+
+</head>
+
+<body>
+
+
+    <!-- Moving Submenu -->
+    <div class="techwave_fn_fixedsub">
+        <ul></ul>
+    </div>
+    <!-- !Moving Submenu -->
+
+    <!-- Preloader -->
+    <div class="techwave_fn_preloader enabled">
+        <svg>
+		<circle class="first_circle" cx="50%" cy="50%" r="110"></circle>
+		<circle class="second_circle" cx="50%" cy="50%" r="110"></circle>
+	</svg>
+    </div>
+    <!-- !Preloader -->
+
+
+    <!-- MAIN WRAPPER -->
+    <div class="techwave_fn_wrapper">
+        <div class="techwave_fn_wrap">
+
+
+            <!-- Searchbar -->
+            <div class="techwave_fn_searchbar">
+                <div class="search__bar">
+                    <input class="search__input" type="text" placeholder="Search here...">
+                    <img src="svg/search.svg" alt="" class="fn__svg search__icon">
+                    <a class="search__closer" href="#"><img src="svg/close.svg" alt="" class="fn__svg"></a>
+                </div>
+                <div class="search__results">
+                    <!-- Results will come here (via ajax after the integration you made after purchase as it doesn't work in HTML) -->
+                    <div class="results__title">Results</div>
+                    <div class="results__list">
+                        <ul>
+                            <li><a href="#">Artificial Intelligence</a></li>
+                            <li><a href="#">Learn about the impact of AI on the financial industry</a></li>
+                            <li><a href="#">Delve into the realm of AI-driven manufacturing</a></li>
+                            <li><a href="#">Understand the ethical implications surrounding AI</a></li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+            <!-- !Searchbar -->
+
+            <!-- HEADER -->
+            <header class="techwave_fn_header">
+
+                <!-- Header left: token information -->
+                <div class="header__left">
+                    <div class="fn__token_info">
+                        <span class="token_summary">
+                            <script>
+                                async function fetchBTCPrice() {
+                                    try {
+                                        const response = await fetch('https://api.coindesk.com/v1/bpi/currentprice/BTC.json');
+                                        if (!response.ok) {
+                                            throw new Error('Network response was not ok');
+                                        }
+                                        const data = await response.json();
+                                        const price = data.bpi.USD.rate_float.toFixed(2); // Get the price and format it to two decimal places
+                                        document.querySelector('.count').textContent = price;
+                                    } catch (error) {
+                                        console.error('Error fetching BTC price:', error);
+                                    }
+                                }
+                            
+                                // Fetch the BTC price every second
+                                setInterval(fetchBTCPrice, 1000);
+                            
+                                // Initial fetch
+                                fetchBTCPrice();
+                            </script>
+						<div class="btc-price">
+    Current BTC Price: $ <span class="count">120</span> <!-- "120" is just an initial placeholder -->
+</div>
+<style>
+    .btc-icon {
+  width: 23px; /* Adjust the size as needed */
+  height: auto; /* Maintain aspect ratio */
+  vertical-align: middle; /* Aligns the image vertically with text if needed */
+}
+</style>
+<span class="text">
+    <img src="img/btc.svg" alt="BTC Icon" class="btc-icon">
+  </span>
+                        </span>
+                        <a href="pricing.html" class="token_upgrade techwave_fn_button"><span>Upgrade</span></a>
+                      
+                    </div>
+                </div>
+                <!-- /Header left: token information -->
+
+
+                <!-- Header right: navigation bar -->
+                <div class="header__right">
+                    <div class="fn__nav_bar">
+
+                        <!-- Search (bar item) -->
+                        <div class="bar__item bar__item_search">
+                            <a href="#" class="item_opener fn__tooltip" title="Search">
+							<img src="svg/search.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <input type="text" placeholder="Search">
+                            </div>
+                        </div>
+                        <!-- !Search (bar item) -->
+
+                        <!-- Notification (bar item) -->
+                        <div class="bar__item bar__item_notification has_notification">
+                            <a href="#" class="item_opener fn__tooltip" title="Notifications">
+							<img src="svg/bell.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <div class="ntfc_header">
+                                    <h2 class="ntfc_title">Notifications</h2>
+                                    <a href="notifications.html">View All</a>
+                                </div>
+                                <div class="ntfc_list">
+                                    <ul>
+                                        <li>
+                                            <p><a href="notification-single.html">Version 1.1.0 has been launched</a></p>
+                                            <span>34 Min Ago</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Video Generation has been released</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Terms has been updated</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !Notification (bar item) -->
+
+                        <!-- Full Screen (bar item) -->
+                        <div class="bar__item bar__item_fullscreen">
+                            <a href="#" class="item_opener fn__tooltip" title="Full Screen">
+							<img src="svg/fullscreen.svg" alt="" class="fn__svg f_screen">
+							<img src="svg/smallscreen.svg" alt="" class="fn__svg s_screen">
+						</a>
+                        </div>
+                        <!-- !Full Screen (bar item) -->
+
+                        <!-- Language (bar item) -->
+                        <div class="bar__item bar__item_language">
+                            <a href="#" class="item_opener fn__tooltip" title="Language">
+							<img src="svg/language.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <ul>
+                                    <li>
+                                        <span class="active">English</span>
+                                    </li>
+                                    <li>
+                                        <a href="#">Spanish</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">French</a>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                        <!-- !Language (bar item) -->
+
+                        <!-- Site Skin (bar item) -->
+                        <div class="bar__item bar__item_skin">
+                            <a href="#" class="item_opener fn__tooltip" title="Dark/Light">
+							<img src="svg/sun.svg" alt="" class="fn__svg light_mode">
+							<img src="svg/moon.svg" alt="" class="fn__svg dark_mode">
+						</a>
+                        </div>
+                        <!-- !Site Skin (bar item) -->
+
+                        <!-- User (bar item) -->
+                        <div class="bar__item bar__item_user">
+                            <a href="#" class="user_opener fn__tooltip" title="User Profile">
+							<img src="img/user/user.jpg" alt="">
+						</a>
+                            <div class="item_popup" data-position="right">
+                                <div class="user_profile">
+                                    <div class="user_img">
+                                        <img src="img/user/user.jpg" alt="">
+                                    </div>
+                                    <div class="user_info">
+                                        <h2 class="user_name">Caden Smith<span>Free</span></h2>
+                                        <p><a href="mailto:cadmail@gmail.com" class="user_email">cadmail@gmail.com</a></p>
+                                    </div>
+                                </div>
+                                <div class="user_nav">
+                                    <ul>
+                                        <li>
+                                            <a href="user-profile.html">
+											<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+											<span class="text">Profile</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-settings.html">
+											<span class="icon"><img src="svg/setting.svg" alt="" class="fn__svg"></span>
+											<span class="text">Settings</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-billing.html">
+											<span class="icon"><img src="svg/billing.svg" alt="" class="fn__svg"></span>
+											<span class="text">Billing</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="sign-in.html">
+											<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+											<span class="text">Log Out</span>
+										</a>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !User (bar item) -->
+
+
+                    </div>
+                </div>
+                <!-- !Header right: navigation bar -->
+
+            </header>
+            <!-- !HEADER -->
+
+
+            <!-- LEFT PANEL -->
+            <div class="techwave_fn_leftpanel">
+
+                <div class="mobile_extra_closer"></div>
+
+                <!-- logo (left panel) -->
+                <div class="leftpanel_logo">
+                    <a href="index.html" class="fn_logo">
+					<span class="full_logo">
+						<img src="img/logo-desktop-full.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-full.png" alt="" class="retina_logo">
+					</span>
+					<span class="short_logo">
+						<img src="img/logo-desktop-mini.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-mini.png" alt="" class="retina_logo">
+					</span>
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button desktop_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button mobile_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                </div>
+                <!-- !logo (left panel) -->
+
+                <!-- content (left panel) -->
+                <div class="leftpanel_content">
+
+                    <!-- #1 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Start Here</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="index.html" class="fn__tooltip  menu__item" data-position="right" title="Home">
+								<span class="icon"><img src="svg/home.svg" alt="" class="fn__svg"></span>
+								<span class="text">Home</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="news.html" class="fn__tooltip active menu__item" data-position="right" title="Community Feed">
+								<span class="icon"><img src="svg/news.png" alt="" class="fn__svg"></span>
+								<span class="text">News</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="personal-feed.html" class="fn__tooltip menu__item" data-position="right" title="Personal Feed">
+								<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+								<span class="text">Personal Feed<span class="count">48</span></span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="models.html" class="fn__tooltip menu__item" data-position="right" title="Finetuned Models">
+								<span class="icon"><img src="svg/cube.svg" alt="" class="fn__svg"></span>
+								<span class="text">Finetuned Models</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#1 navigation group -->
+
+                    <!-- #2 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">User Tools</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="image-generation.html" class="fn__tooltip menu__item" data-position="right" title="Image Generation">
+								<span class="icon"><img src="svg/image.svg" alt="" class="fn__svg"></span>
+								<span class="text">Image Generation</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="ai-chat-bot.html" class="fn__tooltip menu__item" data-position="right" title="AI Chat Bot">
+								<span class="icon"><img src="svg/chat.svg" alt="" class="fn__svg"></span>
+								<span class="text">AI Chat Bot</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#2 navigation group -->
+
+                    <!-- #3 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Support</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="pricing.html" class="fn__tooltip menu__item" data-position="right" title="Pricing">
+								<span class="icon"><img src="svg/dollar.svg" alt="" class="fn__svg"></span>
+								<span class="text">Pricing</span>
+							</a>
+                            </li>
+                            <li class="menu-item-has-children">
+                                <a href="video-generation.html" class="fn__tooltip menu__item" title="FAQ &amp; Help" data-position="right">
+								<span class="icon"><img src="svg/question.svg" alt="" class="fn__svg"></span>
+								<span class="text">FAQ &amp; Help</span>
+								<span class="trigger"><img src="svg/arrow.svg" alt="" class="fn__svg"></span>
+							</a>
+                                <ul class="sub-menu">
+                                    <li>
+                                        <a href="documentation.html"><span class="text">Documentation</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="faq.html"><span class="text">FAQ</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="changelog.html"><span class="text">Changelog<span class="fn__sup">(1.3.0)</span></span></a>
+                                    </li>
+                                    <li>
+                                        <a href="contact.html"><span class="text">Contact Us</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="index-2.html"><span class="text">Home #2</span></a>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li>
+                                <a href="sign-in.html" class="fn__tooltip menu__item" data-position="right" title="Log Out">
+								<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+								<span class="text">Log Out</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#3 navigation group -->
+
+
+                </div>
+                <!-- !content (left panel) -->
+
+            </div>
+            <!-- !LEFT PANEL -->
+
+
+            <!-- CONTENT -->
+            <div class="techwave_fn_content">
+
+                <!-- PAGE (all pages go inside this div) -->
+                <div class="techwave_fn_page">
+
+                    <!-- Home Page -->
+                    <div class="techwave_fn_home">
+                        <div class="section_home">
+                          
+                        <style>
+                            .company_info {
+    text-align: center; /* Center content */
+    padding: 20px;
+    background-color: none; /* Light background color */
+    border-radius: 10px; /* Rounded corners */
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
+}
+
+.logo {
+    max-width: 100%; /* Responsive logo */
+    height: auto;
+    margin-bottom: 20px; /* Space between logo and next image */
+}
+
+.featured-image {
+    max-width: 100%; /* Responsive image */
+    height: auto;
+    margin-bottom: 20px; /* Space between image and text */
+    border-radius: 10px; /* Rounded corners for the image */
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for the image */
+}
+
+                        </style>
+                        <style>
+                            .section_home .company_inf {
+    margin: 0 auto;
+    max-width: 700px;
+}
+                        </style>
+                        <script>
+                              async function fetchNews() {
+            try {
+                let response = await fetch('https://dooratre-test-flask-space.hf.space/news');
+                let news = await response.json();
+                let newsContainer = document.getElementById('news-container');
+
+                news.forEach(item => {
+                    let newsSection = `
+                    
+                            <h2>${item.title}</h2>
+                            <img src="${item.image_src}" alt="Bitcoin News" class="featured-image">
+                            <p>${item.content}</p>
+                            <p>${item.time_published}</p>
+                            <hr>`;
+                    newsContainer.innerHTML += newsSection;
+                });
+            } catch (error) {
+                console.error('Error fetching news:', error);
+            }
+        }
+
+        // Fetch news on page load
+        window.onload = fetchNews;
+                        </script>
+                            <div class="section_left">
+                                <div class="company_inf">
+                                    <img src="img/logo-desktop-full.png" alt="Company Logo" class="logo">
+                                    <div id="news-container"></div>
+                                </div>
+                            </div>
+                            <div class="section_right">
+                                <div class="company_info">
+                                    <img src="img/logo-desktop-full.png" alt="Company Logo" class="logo">
+                                    <img src="https://en.cryptonomist.ch/wp-content/uploads/2024/09/bitcoin-news-blackrock.jpg" alt="Bitcoin News" class="featured-image">
+                                    <p class="fn__animated_text">The official server of TECH-AI, a text-to-image AI where your imagination is the only limit. We’re building market-leading features that will give you greater control over your generations.</p>
+                                    <hr>
+                                    
+                                
+                                    <div class="fn__members">
+                                        <div class="active item">
+                                            <span class="circle"></span>
+                                            <span class="text">1,154,694 Online</span>
+                                        </div>
+                                        <div class="item">
+                                            <span class="circle"></span>
+                                            <span class="text">77,345,912 Members</span>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- !Home Page -->
+
+                </div>
+                <!-- !PAGE (all pages go inside this div) -->
+
+
+                <!-- FOOTER (inside the content) -->
+                <footer class="techwave_fn_footer">
+                    <div class="techwave_fn_footer_content">
+                        <div class="copyright">
+                            <p>
+                                <script>
+                                    document.write(new Date().getFullYear())
+                                </script>© SRBThemes</p>
+                        </div>
+                        <div class="menu_items">
+                            <ul>
+                                <li><a href="terms.html">Terms of Service</a></li>
+                                <li><a href="privacy.html">Privacy Policy</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </footer>
+                <!-- !FOOTER (inside the content) -->
+
+            </div>
+            <!-- !CONTENT -->
+
+
+        </div>
+    </div>
+    <!-- !MAIN WRAPPER -->
+
+
+
+    <!-- Scripts -->
+    <script type="text/javascript" src="js/jquery.js?ver=1.0.0"></script>
+    <script type="text/javascript" src="js/plugins.js?ver=1.0.0"></script>
+    <!--[if lt IE 10]> <script type="text/javascript" src="js/ie8.js"></script> <![endif]-->
+    <script type="text/javascript" src="js/init.js?ver=1.0.0"></script>
+    <!-- !Scripts -->
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/personal-feed.html b/personal-feed.html
new file mode 100644
index 0000000000000000000000000000000000000000..1f62eb16443d7976e5df5ee232e6e8168630381e
--- /dev/null
+++ b/personal-feed.html
@@ -0,0 +1,1013 @@
+<!DOCTYPE html>
+<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
+<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
+<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
+<!--[if (gte IE 9)|!(IE)]><!-->
+<html lang="en">
+<!--<![endif]-->
+
+<head>
+
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <meta name="description" content="TechWave">
+    <meta name="author" content="SRBThemes">
+
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+
+    <title>Personal Feed - TechWave</title>
+
+
+    <script>
+        if (!localStorage.frenify_skin) {
+            localStorage.frenify_skin = 'dark';
+        }
+        if (!localStorage.frenify_panel) {
+            localStorage.frenify_panel = '';
+        }
+        document.documentElement.setAttribute("data-techwave-skin", localStorage.frenify_skin);
+        if (localStorage.frenify_panel !== '') {
+            document.documentElement.classList.add(localStorage.frenify_panel);
+        }
+    </script>
+
+    <!-- Google Fonts -->
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link href="https://fonts.googleapis.com/css2?family=Heebo:wght@100;200;300;400;500;600;700;800;900&family=Work+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
+    <!-- !Google Fonts -->
+
+    <!-- Styles -->
+    <link type="text/css" rel="stylesheet" href="css/plugins.css?ver=1.0.0" />
+    <link type="text/css" rel="stylesheet" href="css/style.css?ver=1.0.0" />
+    <!--[if lt IE 9]> <script type="text/javascript" src="js/modernizr.custom.js"></script> <![endif]-->
+    <!-- !Styles -->
+
+</head>
+
+<body>
+
+
+    <!-- Moving Submenu -->
+    <div class="techwave_fn_fixedsub">
+        <ul></ul>
+    </div>
+    <!-- !Moving Submenu -->
+
+    <!-- Preloader -->
+    <div class="techwave_fn_preloader">
+        <svg>
+		<circle class="first_circle" cx="50%" cy="50%" r="110"></circle>
+		<circle class="second_circle" cx="50%" cy="50%" r="110"></circle>
+	</svg>
+    </div>
+    <!-- !Preloader -->
+
+    <!-- Report -->
+    <div class="techwave_fn_report">
+        <a href="#" class="fn__closer fn__icon_button">
+		<img src="svg/close.svg" alt="" class="fn__svg">
+	</a>
+        <div class="report__closer"></div>
+        <div class="report__content">
+            <h3 class="title">Report Item</h3>
+            <h3 class="subtitle">What is the main reason for your report?</h3>
+            <input class="reason_field" type="text" placeholder="Type here...">
+            <div class="btns">
+                <a href="#" class="report techwave_fn_button">
+				<span>Report</span>
+			</a>
+                <a href="#" class="cancel techwave_fn_button">
+				<span>Cancel</span>
+			</a>
+            </div>
+        </div>
+    </div>
+    <!-- !Report -->
+
+    <!-- Image Lightbox -->
+    <div class="techwave_fn_img_lightbox">
+
+        <!-- top section (of the image lightbox) -->
+        <div class="lightbox__top">
+            <div class="lightbox__tl">
+                <div class="lightbox__tlbar">
+                    <div class="lightbox__tlbar_left">
+                        <div class="item item__share fn__icon_options medium_size">
+                            <a href="#" class="item__btn fn__icon_button">
+							<img src="svg/share.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="fn__icon_popup">
+                                <ul>
+                                    <li><a href="#">Facebook</a></li>
+                                    <li><a href="#">Twitter</a></li>
+                                    <li><a href="#">Instagram</a></li>
+                                    <li><a href="#">Linkedin</a></li>
+                                    <li><a href="#">Pinterest</a></li>
+                                    <li><a href="#" class="fn__copy" data-copied="Copied!">Copy Link</a></li>
+                                </ul>
+                            </div>
+                        </div>
+                        <div class="item item__download fn__icon_options medium_size">
+                            <a href="#" class="item__btn fn__icon_button">
+							<img src="svg/download.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="fn__icon_popup">
+                                <ul>
+                                    <li><a href="#">Original Image</a></li>
+                                    <li><a href="#">Creative Upscaled Image</a></li>
+                                    <li><a href="#">HD Upscaled Image</a></li>
+                                </ul>
+                            </div>
+                        </div>
+                        <div class="item item__more fn__icon_options medium_size">
+                            <a href="#" class="item__btn fn__icon_button">
+							<span class="dots"></span>
+						</a>
+                            <div class="fn__icon_popup">
+                                <ul>
+                                    <li><a href="#">Remove Background</a></li>
+                                    <li><a href="#">Creative Upscale</a></li>
+                                    <li><a href="#">Alternative Upscale</a></li>
+                                    <li class="high_priorety"><a href="#" class="fn__report">Report Image</a></li>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="lightbox__tlbar_center">
+                        <a href="#" class="img_nav nav_prev">
+						<img src="svg/arrow.svg" alt="" class="fn__svg">
+					</a>
+                        <a href="#" class="img_nav nav_next">
+						<img src="svg/arrow.svg" alt="" class="fn__svg">
+					</a>
+                    </div>
+                    <div class="lightbox__tlbar_right">
+                        <a href="#" class="fn__like" data-id="2">
+						<span class="count">343</span>
+						<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+						<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+					</a>
+                    </div>
+                </div>
+                <div class="lightbox__tlimg">
+                    <img src="img/gallery/main.jpg" alt="">
+                </div>
+            </div>
+            <div class="lightbox__tr">
+                <div class="user__profile">
+                    <a class="profile_link" href="user-profile.html">
+					<img src="img/user/user.jpg" alt="">
+					<h2 class="user_name">LuckyLee</h2>
+				</a>
+                    <a class="fn__follow" href="#" data-follow-text="Follow" data-unfollow-text="Unfollow">
+					<span class="text">Follow</span>
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button">
+					<img src="svg/close.svg" alt="" class="fn__svg">
+				</a>
+                </div>
+                <div class="item__details">
+                    <div class="fn__model">
+                        <div class="model_img">
+                            <img src="img/user/user.jpg" alt="">
+                        </div>
+                        <div class="model_info">
+                            <h4 class="model_subtitle">Model</h4>
+                            <h3 class="model_title">ArtShaper v3</h3>
+                        </div>
+                        <a href="image-generation.html" class="fn__icon_button">
+						<img src="svg/arrow.svg" alt="" class="fn__svg">
+					</a>
+                    </div>
+
+                    <div class="fn__prompt_details">
+                        <div class="prompt__header">
+                            <div class="prompt__text">Prompt Details</div>
+                            <div class="prompt__options">
+                                <a href="#" class="fn__icon_button">
+								<span class="dots"></span>
+							</a>
+                                <div class="prompt__popup">
+                                    <ul>
+                                        <li><a href="#">Remix</a></li>
+                                        <li><a href="#">Image to Image</a></li>
+                                        <li><a href="#" class="fn__copy" data-copied="Copied!" data-text="Realistic painting, photorealistic masterpiece detailing, professional photography, natural lighting, volumetric lighting maximalist photoillustration: 8k resolution concept art intricately detailed, complex, elegant, expansive">Copy Prompt</a></li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="prompt__content">
+                            <p>Realistic painting, photorealistic masterpiece detailing, professional photography, natural lighting, volumetric lighting maximalist photoillustration: 8k resolution concept art intricately detailed, complex, elegant, expansive</p>
+                        </div>
+                    </div>
+
+                    <div class="techwave_fn_accordion small" data-type="accordion">
+                        <!-- data-type values: accordion, toggle -->
+                        <div class="acc__item">
+                            <div class="acc__header">
+                                <h2 class="acc__title">Negative Prompt</h2>
+                                <div class="acc__icon"></div>
+                            </div>
+                            <div class="acc__content">
+                                <p>TECH-AI is an AI-powered content production suite that empowers creators with a powerful, customisable, and user-friendly platform for bringing their ideas to life.</p>
+                                <p>With a focus on granular control at every step of content creation, we put creators at the centre of the creative process by offering granular control at every stage of generation, ensuring that AI enhances, rather than
+                                    replaces, human creative potential.</p>
+                                <p>Our custom back-end delivers advancements in model fine tuning, prompt adherence, training and inference speed, and multi-image prompting functionality. We also address common issues around image degradation and have implemented
+                                    a custom upscaling, with much more on the way!</p>
+                            </div>
+                        </div>
+                    </div>
+
+                </div>
+
+                <div class="fn__details_list">
+                    <ul>
+                        <li>
+                            <div class="sub_title">Created</div>
+                            <div class="title">April 05, 2023</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Resolution</div>
+                            <div class="title">768 x 1024px</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Sampler</div>
+                            <div class="title">Tech-AI-SRBThemes</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Step Count</div>
+                            <div class="title">30</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Base Model</div>
+                            <div class="title">SRBThemes v2.0</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">High Contrast</div>
+                            <div class="title">Off</div>
+                        </li>
+                        <li>
+                            <div class="sub_title">Magic Prompt</div>
+                            <div class="title">On</div>
+                        </li>
+                    </ul>
+                </div>
+
+            </div>
+        </div>
+        <!-- !top section (of the image lightbox) -->
+
+        <!-- related section (of the image lightbox) -->
+        <div class="lightbox__related">
+
+            <div class="fn__title_holder">
+                <h2 class="title">Related Images</h2>
+            </div>
+
+            <div class="fn__grid_items">
+                <ul>
+                    <li>
+                        <a href="#" data-id="1"><img src="img/related/1.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="2"><img src="img/related/2.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="3"><img src="img/related/3.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="4"><img src="img/related/4.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="5"><img src="img/related/5.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="6"><img src="img/related/6.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="7"><img src="img/related/7.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="8"><img src="img/related/8.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="9"><img src="img/related/9.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="10"><img src="img/related/10.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="11"><img src="img/related/11.jpg" alt=""></a>
+                    </li>
+                    <li>
+                        <a href="#" data-id="12"><img src="img/related/12.jpg" alt=""></a>
+                    </li>
+                </ul>
+            </div>
+
+        </div>
+        <!-- !related section (of the image lightbox) -->
+
+    </div>
+    <!-- !Image Lightbox -->
+
+
+    <!-- MAIN WRAPPER -->
+    <div class="techwave_fn_wrapper">
+        <div class="techwave_fn_wrap">
+
+
+            <!-- Searchbar -->
+            <div class="techwave_fn_searchbar">
+                <div class="search__bar">
+                    <input class="search__input" type="text" placeholder="Search here...">
+                    <img src="svg/search.svg" alt="" class="fn__svg search__icon">
+                    <a class="search__closer" href="#"><img src="svg/close.svg" alt="" class="fn__svg"></a>
+                </div>
+                <div class="search__results">
+                    <!-- Results will come here (via ajax after the integration you made after purchase as it doesn't work in HTML) -->
+                    <div class="results__title">Results</div>
+                    <div class="results__list">
+                        <ul>
+                            <li><a href="#">Artificial Intelligence</a></li>
+                            <li><a href="#">Learn about the impact of AI on the financial industry</a></li>
+                            <li><a href="#">Delve into the realm of AI-driven manufacturing</a></li>
+                            <li><a href="#">Understand the ethical implications surrounding AI</a></li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+            <!-- !Searchbar -->
+
+            <!-- HEADER -->
+            <header class="techwave_fn_header">
+
+                <!-- Header left: token information -->
+                <div class="header__left">
+                    <div class="fn__token_info">
+                        <span class="token_summary">
+						<span class="count">120</span>
+                        <span class="text">Tokens<br>Remain</span>
+                        </span>
+                        <a href="pricing.html" class="token_upgrade techwave_fn_button"><span>Upgrade</span></a>
+                        <div class="token__popup">
+                            Resets in <span>19 hours.</span><br> Daily limit is <span>200 tokens</span>
+                        </div>
+                    </div>
+                </div>
+                <!-- /Header left: token information -->
+
+
+                <!-- Header right: navigation bar -->
+                <div class="header__right">
+                    <div class="fn__nav_bar">
+
+                        <!-- Search (bar item) -->
+                        <div class="bar__item bar__item_search">
+                            <a href="#" class="item_opener">
+							<img src="svg/search.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup">
+                                <input type="text" placeholder="Search">
+                            </div>
+                        </div>
+                        <!-- !Search (bar item) -->
+
+                        <!-- Notification (bar item) -->
+                        <div class="bar__item bar__item_notification has_notification">
+                            <a href="#" class="item_opener">
+							<img src="svg/bell.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup">
+                                <div class="ntfc_header">
+                                    <h2 class="ntfc_title">Notifications</h2>
+                                    <a href="notifications.html">View All</a>
+                                </div>
+                                <div class="ntfc_list">
+                                    <ul>
+                                        <li>
+                                            <p><a href="notification-single.html">Version 1.1.0 has been launched</a></p>
+                                            <span>34 Min Ago</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Video Generation has been released</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                        <li>
+                                            <p><a href="notification-single.html">Terms has been updated</a></p>
+                                            <span>12 Apr</span>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !Notification (bar item) -->
+
+                        <!-- Full Screen (bar item) -->
+                        <div class="bar__item bar__item_fullscreen">
+                            <a href="#" class="item_opener">
+							<img src="svg/fullscreen.svg" alt="" class="fn__svg f_screen">
+							<img src="svg/smallscreen.svg" alt="" class="fn__svg s_screen">
+						</a>
+                        </div>
+                        <!-- !Full Screen (bar item) -->
+
+                        <!-- Language (bar item) -->
+                        <div class="bar__item bar__item_language">
+                            <a href="#" class="item_opener">
+							<img src="svg/language.svg" alt="" class="fn__svg">
+						</a>
+                            <div class="item_popup">
+                                <ul>
+                                    <li>
+                                        <span class="active">English</span>
+                                    </li>
+                                    <li>
+                                        <a href="#">Spanish</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">French</a>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                        <!-- !Language (bar item) -->
+
+                        <!-- Site Skin (bar item) -->
+                        <div class="bar__item bar__item_skin">
+                            <a href="#" class="item_opener">
+							<img src="svg/sun.svg" alt="" class="fn__svg light_mode">
+							<img src="svg/moon.svg" alt="" class="fn__svg dark_mode">
+						</a>
+                        </div>
+                        <!-- !Site Skin (bar item) -->
+
+                        <!-- User (bar item) -->
+                        <div class="bar__item bar__item_user">
+                            <a href="#" class="user_opener">
+							<img src="img/user/user.jpg" alt="">
+						</a>
+                            <div class="item_popup">
+                                <div class="user_profile">
+                                    <div class="user_img">
+                                        <img src="img/user/user.jpg" alt="">
+                                    </div>
+                                    <div class="user_info">
+                                        <h2 class="user_name">Caden Smith<span>Free</span></h2>
+                                        <p><a href="mailto:cadmail@gmail.com" class="user_email">cadmail@gmail.com</a></p>
+                                    </div>
+                                </div>
+                                <div class="user_nav">
+                                    <ul>
+                                        <li>
+                                            <a href="user-profile.html">
+											<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+											<span class="text">Profile</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-settings.html">
+											<span class="icon"><img src="svg/setting.svg" alt="" class="fn__svg"></span>
+											<span class="text">Settings</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="user-billing.html">
+											<span class="icon"><img src="svg/billing.svg" alt="" class="fn__svg"></span>
+											<span class="text">Billing</span>
+										</a>
+                                        </li>
+                                        <li>
+                                            <a href="sign-in.html">
+											<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+											<span class="text">Log Out</span>
+										</a>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- !User (bar item) -->
+
+
+                    </div>
+                </div>
+                <!-- !Header right: navigation bar -->
+
+            </header>
+            <!-- !HEADER -->
+
+
+            <!-- LEFT PANEL -->
+            <div class="techwave_fn_leftpanel">
+
+                <div class="mobile_extra_closer"></div>
+
+                <!-- logo (left panel) -->
+                <div class="leftpanel_logo">
+                    <a href="index.html" class="fn_logo">
+					<span class="full_logo">
+						<img src="img/logo-desktop-full.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-full.png" alt="" class="retina_logo">
+					</span>
+					<span class="short_logo">
+						<img src="img/logo-desktop-mini.png" alt="" class="desktop_logo">
+						<img src="img/logo-retina-mini.png" alt="" class="retina_logo">
+					</span>
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button desktop_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                    <a href="#" class="fn__closer fn__icon_button mobile_closer">
+					<img src="svg/arrow.svg" alt="" class="fn__svg">
+				</a>
+                </div>
+                <!-- !logo (left panel) -->
+
+                <!-- content (left panel) -->
+                <div class="leftpanel_content">
+
+                    <!-- #1 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Start Here</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="index.html" class="fn__tooltip menu__item" data-position="right" title="Home">
+								<span class="icon"><img src="svg/home.svg" alt="" class="fn__svg"></span>
+								<span class="text">Home</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="community-feed.html" class="fn__tooltip menu__item" data-position="right" title="Community Feed">
+								<span class="icon"><img src="svg/community.svg" alt="" class="fn__svg"></span>
+								<span class="text">Community Feed</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="personal-feed.html" class="fn__tooltip active menu__item" data-position="right" title="Personal Feed">
+								<span class="icon"><img src="svg/person.svg" alt="" class="fn__svg"></span>
+								<span class="text">Personal Feed<span class="count">48</span></span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="models.html" class="fn__tooltip menu__item" data-position="right" title="Finetuned Models">
+								<span class="icon"><img src="svg/cube.svg" alt="" class="fn__svg"></span>
+								<span class="text">Finetuned Models</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#1 navigation group -->
+
+                    <!-- #2 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">User Tools</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="image-generation.html" class="fn__tooltip menu__item" data-position="right" title="Image Generation">
+								<span class="icon"><img src="svg/image.svg" alt="" class="fn__svg"></span>
+								<span class="text">Image Generation</span>
+							</a>
+                            </li>
+                            <li>
+                                <a href="ai-chat-bot.html" class="fn__tooltip menu__item" data-position="right" title="AI Chat Bot">
+								<span class="icon"><img src="svg/chat.svg" alt="" class="fn__svg"></span>
+								<span class="text">AI Chat Bot</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#2 navigation group -->
+
+                    <!-- #3 navigation group -->
+                    <div class="nav_group">
+                        <h2 class="group__title">Support</h2>
+                        <ul class="group__list">
+                            <li>
+                                <a href="pricing.html" class="fn__tooltip menu__item" data-position="right" title="Pricing">
+								<span class="icon"><img src="svg/dollar.svg" alt="" class="fn__svg"></span>
+								<span class="text">Pricing</span>
+							</a>
+                            </li>
+                            <li class="menu-item-has-children">
+                                <a href="video-generation.html" class="fn__tooltip menu__item" title="FAQ &amp; Help" data-position="right">
+								<span class="icon"><img src="svg/question.svg" alt="" class="fn__svg"></span>
+								<span class="text">FAQ &amp; Help</span>
+								<span class="trigger"><img src="svg/arrow.svg" alt="" class="fn__svg"></span>
+							</a>
+                                <ul class="sub-menu">
+                                    <li>
+                                        <a href="documentation.html"><span class="text">Documentation</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="faq.html"><span class="text">FAQ</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="changelog.html"><span class="text">Changelog<span class="fn__sup">(1.3.0)</span></span></a>
+                                    </li>
+                                    <li>
+                                        <a href="contact.html"><span class="text">Contact Us</span></a>
+                                    </li>
+                                    <li>
+                                        <a href="index-2.html"><span class="text">Home #2</span></a>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li>
+                                <a href="sign-in.html" class="fn__tooltip menu__item" data-position="right" title="Log Out">
+								<span class="icon"><img src="svg/logout.svg" alt="" class="fn__svg"></span>
+								<span class="text">Log Out</span>
+							</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <!-- !#3 navigation group -->
+
+
+                </div>
+                <!-- !content (left panel) -->
+
+            </div>
+            <!-- !LEFT PANEL -->
+
+
+            <!-- CONTENT -->
+            <div class="techwave_fn_content">
+
+                <!-- PAGE (all pages go inside this div) -->
+                <div class="techwave_fn_page">
+
+                    <!-- Community Feed Page -->
+                    <div class="techwave_fn_community_page">
+
+                        <div class="fn__title_holder">
+                            <div class="container">
+                                <h1 class="title">Personal Feed</h1>
+                            </div>
+                        </div>
+
+                        <!-- Feed -->
+                        <div class="techwave_fn_feed">
+
+                            <div class="fn__tabs">
+                                <div class="container">
+                                    <div class="tab_in">
+                                        <a class="active" href="#">Your Generations</a>
+                                        <a href="#">Follower's</a>
+                                        <a href="#">Liked</a>
+                                    </div>
+                                </div>
+                            </div>
+
+
+                            <!-- feed filter -->
+                            <div class="container">
+                                <div class="feed__filter">
+                                    <div class="filter__left">
+                                        <div class="filter__search">
+                                            <input type="text" placeholder="Search gallery">
+                                            <a href="#" class="techwave_fn_button"><span>Search</span></a>
+                                        </div>
+                                        <div class="filter__upscaled">
+                                            <label class="fn__checkbox">
+											<input type="checkbox">Upscaled
+											<span class="checkmark"></span>
+											<img src="svg/check.svg" alt="" class="fn__svg">
+										</label>
+                                        </div>
+                                    </div>
+                                    <div class="filter__right">
+                                        <div class="filter__select">
+                                            <label class="fn__checkbox">
+											<input type="checkbox">Select Items
+											<span class="checkmark"></span>
+											<img src="svg/check.svg" alt="" class="fn__svg">
+										</label>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <!-- !feed filter -->
+
+
+                            <!-- feed selection -->
+                            <div class="fn__selection_box">
+                                <div class="container">
+                                    <div class="selection_in">
+                                        <p class="desc"><span class="count">0</span> item(s) selected</p>
+                                        <div class="actions">
+                                            <a href="#" class="filter__delete techwave_fn_button has__icon small__border">
+											<img src="svg/trash.svg" alt="" class="fn__svg">
+											<span>Delete</span>
+										</a>
+                                            <a href="#" class="filter__download techwave_fn_button has__icon small__border">
+											<img src="svg/download.svg" alt="" class="fn__svg">
+											<span>Download</span>
+										</a>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <!-- !feed selection -->
+
+                            <div class="container">
+                                <!-- feed content -->
+                                <div class="feed__content">
+                                    <div class="feed__results">
+                                        <div class="fn__preloader">
+                                            <div class="icon"></div>
+                                            <div class="text">Loading</div>
+                                        </div>
+                                        <ul class="fn__gallery_items">
+
+                                            <!-- #1 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="345">
+                                                    <div class="img">
+                                                        <img src="img/gallery/1.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="3">
+															<span class="count">343</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#1 gallery item -->
+
+                                            <!-- #2 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="265">
+                                                    <div class="img">
+                                                        <img src="img/gallery/2.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="265">
+															<span class="count">65</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#2 gallery item -->
+
+                                            <!-- #3 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="456">
+                                                    <div class="img">
+                                                        <img src="img/gallery/3.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="456">
+															<span class="count">95</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#3 gallery item -->
+
+                                            <!-- #4 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="4311">
+                                                    <div class="img">
+                                                        <img src="img/gallery/4.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="4311">
+															<span class="count">120</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#4 gallery item -->
+
+                                            <!-- #5 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="33">
+                                                    <div class="img">
+                                                        <img src="img/gallery/5.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="33">
+															<span class="count">322</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#5 gallery item -->
+
+                                            <!-- #6 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="709">
+                                                    <div class="img">
+                                                        <img src="img/gallery/6.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="709">
+															<span class="count">234</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#6 gallery item -->
+
+                                            <!-- #7 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="20">
+                                                    <div class="img">
+                                                        <img src="img/gallery/7.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="20">
+															<span class="count">700</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#7 gallery item -->
+
+                                            <!-- #8 gallery item -->
+                                            <li class="fn__gallery_item">
+                                                <div class="item" data-id="45">
+                                                    <div class="img">
+                                                        <img src="img/gallery/8.jpg" alt="">
+                                                    </div>
+                                                    <div class="fn__selectable_item">
+                                                        <span class="icon">
+														<img src="svg/check.svg" alt="" class="fn__svg">
+													</span>
+                                                    </div>
+                                                    <div class="item__info">
+                                                        <div class="info__header">
+                                                            <div class="user__info">
+                                                                <img src="img/user/user.jpg" alt="">
+                                                                <h3 class="author_name">LuckyLee</h3>
+                                                            </div>
+                                                            <a href="#" class="fn__like no_border" data-id="45">
+															<span class="count">90</span>
+															<img src="svg/like.svg" alt="" class="fn__svg empty__like">
+															<img src="svg/like-full.svg" alt="" class="fn__svg full__like">
+														</a>
+                                                        </div>
+                                                        <p class="desc">Terra Fusion: A daring fusion of tectonic forms with neo-abstract swirls, reflecting the chaos and </p>
+                                                    </div>
+                                                </div>
+                                            </li>
+                                            <!-- !#8 gallery item -->
+
+                                        </ul>
+                                    </div>
+                                    <div class="feed__more">
+                                        <a href="#" class="medium techwave_fn_button"><span>Load More</span></a>
+                                    </div>
+                                </div>
+                                <!-- !feed content -->
+                            </div>
+
+                        </div>
+                        <!-- !Feed -->
+
+                    </div>
+                    <!-- !Community Feed Page -->
+
+                </div>
+                <!-- !PAGE (all pages go inside this div) -->
+
+
+                <!-- FOOTER (inside the content) -->
+                <footer class="techwave_fn_footer">
+                    <div class="techwave_fn_footer_content">
+                        <div class="copyright">
+                            <p>
+                                <script>
+                                    document.write(new Date().getFullYear())
+                                </script>© SRBThemes</p>
+                        </div>
+                        <div class="menu_items">
+                            <ul>
+                                <li><a href="terms.html">Terms of Service</a></li>
+                                <li><a href="privacy.html">Privacy Policy</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </footer>
+                <!-- !FOOTER (inside the content) -->
+
+            </div>
+            <!-- !CONTENT -->
+
+
+        </div>
+    </div>
+    <!-- !MAIN WRAPPER -->
+
+
+
+    <!-- Scripts -->
+    <script type="text/javascript" src="js/jquery.js?ver=1.0.0"></script>
+    <script type="text/javascript" src="js/plugins.js?ver=1.0.0"></script>
+    <!--[if lt IE 10]> <script type="text/javascript" src="js/ie8.js"></script> <![endif]-->
+    <script type="text/javascript" src="js/init.js?ver=1.0.0"></script>
+    <!-- !Scripts -->
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/svg/arrow.svg b/svg/arrow.svg
new file mode 100644
index 0000000000000000000000000000000000000000..eeea6dfb9d5eb9003a10e92ca9761ff14576369a
--- /dev/null
+++ b/svg/arrow.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 145.1 225.1" style="enable-background:new 0 0 145.1 225.1;" xml:space="preserve">
+<path d="M104.4,112.2c-10.6-9.1-21-18-31.5-27C51.1,66.5,29.3,47.8,7.4,29.1c-4.6-3.9-7.2-8.6-6.5-14.7c0.7-6.2,4-10.7,9.8-13.1
+	c6-2.5,11.6-1.4,16.5,2.7c8.1,6.8,16.2,13.8,24.2,20.7c28.9,24.7,57.7,49.5,86.6,74.1c5.4,4.6,8.5,10.1,6.4,17.1
+	c-1,3.3-3.1,6.7-5.7,9C101.5,157.1,64,189,26.6,221c-7.1,6-17,5.2-22.8-1.7c-5.9-7.1-4.9-16.7,2.5-23c31.7-27.2,63.4-54.3,95.1-81.5
+	C102.4,114.1,103.2,113.3,104.4,112.2z"/>
+</svg>
diff --git a/svg/bell.svg b/svg/bell.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7b22afd265b78f0cb7f86eba0db3b1050036cee4
--- /dev/null
+++ b/svg/bell.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 302.3 335.7" style="enable-background:new 0 0 302.3 335.7;" xml:space="preserve">
+<g>
+	<path d="M210.1,287.7c-7.6,32-34.3,47.8-58.4,48c-24.1,0.2-51.6-15.2-59.5-48c-1.3,0-2.6,0-4,0c-21,0-42,0-63,0
+		c-10.2,0-18-4.2-22.5-13.4c-4.5-9.3-3-18,3.2-26.3c7.4-10,14.4-20.4,21.4-30.7c2.9-4.2,3.9-9.1,3.8-14.2
+		c-0.1-27.7-0.6-55.4,0.1-83.1c1.4-51.4,25.6-88.8,72.5-109.9c67.7-30.5,148.1,10.4,164.3,82.9c2.1,9.3,2.9,19,3.1,28.5
+		c0.4,26.9,0.2,53.9,0.1,80.8c0,6.4,1.6,12,5.3,17.2c7.1,9.9,14.1,20,21.1,30c5.5,7.8,6.3,16.3,2,24.8c-4.2,8.5-11.5,13.1-21.1,13.2
+		c-21.4,0.2-42.8,0.1-64.1,0.1C213,287.7,211.6,287.7,210.1,287.7z M277.8,263.6c-7.3-10.4-14.1-20.5-21.2-30.4
+		c-6.5-9.2-9.6-19.3-9.5-30.5c0.1-26.8,0.1-53.6,0-80.5c0-4.1-0.2-8.2-0.6-12.3c-6-58.5-64-98-120.8-82.2
+		c-41.7,11.6-70.4,48.8-70.6,92c-0.2,27.7-0.1,55.4,0,83.1c0,11.2-3.1,21.3-9.6,30.5c-6.4,9-12.6,18-18.8,27c-0.7,1-1.4,2-2.3,3.3
+		C109,263.6,193.1,263.6,277.8,263.6z M184.5,288c-22.3,0-44.5,0-66.8,0c4.1,13.9,18.8,24,34.3,23.7
+		C166.7,311.4,181.3,300.8,184.5,288z"/>
+</g>
+</svg>
diff --git a/svg/billing.svg b/svg/billing.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5d2cab7874db82b445cc87421e4de4f43e60d9e3
--- /dev/null
+++ b/svg/billing.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 288.1 359.6" style="enable-background:new 0 0 288.1 359.6;" xml:space="preserve">
+<g>
+	<path d="M288,178.2c0,51,0,102.1,0,153.1c0,17.9-17.2,29.6-33.3,22.7c-2.7-1.2-5.2-3-7.4-4.9c-4.7-4.1-9.2-8.4-13.8-12.6
+		c-5.7-5.2-10.5-4.9-15.4,0.9c-2.7,3.2-5.4,6.6-8.2,9.8c-14.4,16.6-37.2,16.6-51.6,0c-2.4-2.7-4.6-5.6-7-8.3
+		c-4.2-4.8-10.1-4.8-14.3,0c-2.7,3.1-5.2,6.4-8,9.4c-13.4,15-35.7,15.2-49.4,0.5c-3.4-3.7-6.5-7.6-9.7-11.4
+		c-4.7-5.6-9.7-5.9-15.1-0.9c-4.8,4.4-9.5,8.8-14.4,13.1c-7.8,6.9-16.7,8.5-26.1,4.4C4.9,349.7,0,342,0,331.6C0,229.3,0,127,0,24.6
+		C0,10.4,10.4,0,24.6,0c79.6,0,159.3,0,238.9,0C277.7,0,288,10.4,288,24.7C288.1,75.9,288,127.1,288,178.2z M24.2,24.1
+		c0,102.6,0,204.8,0,307.7c5.5-5,10.4-9.6,15.5-14.2c14.7-12.9,35.3-11.4,48,3.5c3.1,3.6,6,7.4,9.1,10.9c4.2,4.8,10,4.8,14.3,0.1
+		c2.7-3,5.1-6.1,7.7-9.1c13.5-15.4,36.1-15.6,49.9-0.5c2.7,3,5.1,6.1,7.7,9.1c4.7,5.4,10.4,5.4,15.1,0.1c3.4-3.9,6.5-7.9,9.9-11.7
+		c11.9-13.2,31.9-14.7,45.6-3.3c5,4.2,9.6,8.7,14.4,13.1c0.7,0.6,1.4,1.1,2.3,1.7c0-102.7,0-204.9,0-307.3
+		C183.9,24.1,104.2,24.1,24.2,24.1z"/>
+	<path d="M158.9,78.6c0,6-0.2,12,0.1,18c0.1,1.6,1.1,3.5,2.3,4.5c4.7,3.9,9.8,7.4,14.6,11.1c6.2,4.7,7.3,10.8,3.2,17.4
+		c-9.1,14.6-18.2,29.2-27.4,43.8c-3.3,5.3-8.4,7.4-13.7,5.9c-5.6-1.6-8.9-6-9-12.3c-0.1-9.5-0.1-19,0-28.4c0-2.3-0.7-3.6-2.8-4.6
+		c-4.3-1.9-8.5-4.1-12.7-6.3c-6.7-3.5-9-9.9-5.7-16.7c9.2-18.7,18.6-37.3,27.9-55.8c2.8-5.6,8.2-8.1,13.6-6.8
+		c5.8,1.4,9.3,5.9,9.4,12.4C159,66.6,158.9,72.6,158.9,78.6z"/>
+	<path d="M144.2,233.6c-19.9,0-39.7,0.1-59.6,0c-9.4,0-15.3-9-11.3-17.1c2.3-4.7,6.3-6.8,11.6-6.8c20.1,0,40.2,0,60.4,0
+		c19.1,0,38.2,0,57.4,0c8,0,13.4,4.9,13.5,11.9c0,7.1-5.4,12-13.3,12C183.2,233.6,163.7,233.6,144.2,233.6z"/>
+	<path d="M144.1,281.5c-19.9,0-39.7,0-59.6,0c-6.6,0-11.7-4.6-12.4-10.7c-0.6-5.9,3.2-11.4,9.1-12.9c1.1-0.3,2.2-0.3,3.3-0.3
+		c39.6,0,79.2,0,118.9,0c9.6,0,15.5,9.3,11.2,17.4c-2.5,4.7-6.5,6.6-11.7,6.6C183.3,281.5,163.7,281.5,144.1,281.5z"/>
+</g>
+</svg>
diff --git a/svg/bookmark.svg b/svg/bookmark.svg
new file mode 100644
index 0000000000000000000000000000000000000000..09e41647d2b8af0bfebfc2a8be1f6839e83e49b8
--- /dev/null
+++ b/svg/bookmark.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 291.9 344.9" style="enable-background:new 0 0 291.9 344.9;" xml:space="preserve">
+<g>
+	<path d="M30.1,344.9c-2.2,0-4.5,0-6.7,0c-0.3-0.1-0.6-0.3-0.9-0.4C7.2,341,0,332,0,316.3c0-95.9,0-191.7,0-287.6
+		c0-2.9,0.1-5.9,0.7-8.7C3.4,8,14.3,0,28,0c78.6,0,157.2,0,235.8,0c2.8,0,5.6,0.3,8.3,1c13.2,3.8,19.8,12.9,19.8,27.2
+		c0,96.1,0,192.2,0,288.3c0,1,0,2-0.1,3c-0.4,9.7-4.8,17.1-13.2,21.6c-3.6,1.9-8,2.5-12.1,3.7c-0.9,0-1.8,0-2.7,0
+		c-10.6-0.9-17.7-7.7-24.8-14.6c-29.9-29-60-57.8-90-86.6c-1-0.9-1.9-1.8-3.1-2.8c-1.1,1-2.1,1.9-3.1,2.8c-31,29.8-62,59.5-93,89.4
+		C44.2,338.7,38.2,343.5,30.1,344.9z M29.5,29.3c0,94.1,0,188.1,0,282.7c39-37.4,77.6-74.5,116.5-111.7
+		c38.9,37.3,77.5,74.3,116.5,111.7c0-94.7,0-188.6,0-282.7C184.7,29.3,107.2,29.3,29.5,29.3z"/>
+</g>
+</svg>
diff --git a/svg/bookmarked.svg b/svg/bookmarked.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b3c024cd8471355d95dfb69548f37f50f660da6b
--- /dev/null
+++ b/svg/bookmarked.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
+ preserveAspectRatio="xMidYMid meet">
+
+<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
+ stroke="none">
+<path d="M695 5106 c-119 -29 -233 -125 -277 -234 l-23 -57 0 -2255 0 -2255
+23 -57 c67 -165 262 -272 438 -239 88 16 149 48 225 118 34 32 380 363 767
+735 388 373 708 678 712 678 4 0 324 -305 712 -677 850 -818 821 -791 883
+-819 207 -95 465 1 547 204 l23 57 0 2255 0 2255 -23 57 c-29 71 -103 155
+-169 191 -112 60 3 57 -1978 56 -1384 -1 -1822 -4 -1860 -13z"/>
+</g>
+</svg>
diff --git a/svg/chat.svg b/svg/chat.svg
new file mode 100644
index 0000000000000000000000000000000000000000..13ae543e47db1adca05707ac86a0cfa758303781
--- /dev/null
+++ b/svg/chat.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+	<path d="M271,512c-10.3,0-20.7,0-31,0c-6.1-0.8-12.2-1.4-18.3-2.3c-31.6-4.5-61.5-14.2-89.5-29.6c-2.1-1.2-5.4-1.4-7.8-0.7
+		c-12.3,3.6-24.4,7.7-36.6,11.6C66.6,498.1,45.3,505,24,512c-2.7,0-5.3,0-8,0c-8-2.7-13.3-8-16-16c0-2.7,0-5.3,0-8
+		c0.2-0.2,0.6-0.4,0.7-0.7c10.5-32.9,21-65.9,31.7-98.8c1.2-3.6,1-6.4-0.8-9.8c-14-25.3-23.4-52.1-27.9-80.7
+		C2.3,289.4,1.2,280.7,0,272c0-10.3,0-20.7,0-31c0.3-1.4,0.7-2.9,0.8-4.3C3.3,201,12.8,167.1,30,135.8C69.8,63.7,130.3,19.6,211.4,4
+		c9.8-1.9,19.7-2.7,29.6-4c10,0,20,0,30,0c1.3,0.3,2.6,0.7,3.9,0.8c35.9,2.4,69.9,11.9,101.3,29.2C448.3,69.9,492.5,130.4,508,211.4
+		c1.9,9.8,2.7,19.7,4,29.6c0,10,0,20,0,30c-0.3,1.4-0.7,2.9-0.8,4.3c-2.5,35.7-11.9,69.6-29.2,100.9
+		C442.2,448.3,381.7,492.4,300.6,508C290.8,509.8,280.9,510.7,271,512z M51.1,461c21.7-7,42.5-12.8,62.7-20.4
+		c13.8-5.2,24.8-3.2,37.6,4c46.5,26.2,96.4,33.7,148.7,22.9c54.3-11.3,98-40,130.5-84.8c37.4-51.4,49.4-108.9,36.6-171
+		c-11-53.6-39.5-96.6-83.4-129.2c-47.5-35.3-101.1-48.4-159.4-39.9c-58.8,8.6-106.2,37.6-141.6,85.3
+		c-38.3,51.5-50.2,109.3-38.1,172.1c4.7,24.2,13.8,46.9,26.7,67.9c4.5,7.4,5.4,14.7,2.4,22.8c-2.4,6.4-4.3,12.9-6.4,19.4
+		C62,426.7,56.7,443.3,51.1,461z"/>
+	<path d="M156.1,281c-13.7,0.1-25.2-11.4-25.1-25.1c0.1-13.5,11.3-24.8,24.8-24.9c13.7-0.1,25.2,11.4,25.1,25.1
+		C180.9,269.6,169.7,280.9,156.1,281z"/>
+	<path d="M281,256c0,13.7-11.5,25.1-25.2,25c-13.5-0.1-24.7-11.4-24.7-24.9c0-13.7,11.5-25.1,25.2-25
+		C269.8,231.2,280.9,242.4,281,256z"/>
+	<path d="M381,255.8c0.1,13.7-11.3,25.2-25.1,25.1c-13.5-0.1-24.8-11.3-24.9-24.8c-0.1-13.7,11.3-25.2,25.1-25.1
+		C369.6,231.1,380.9,242.3,381,255.8z"/>
+</g>
+</svg>
diff --git a/svg/check.svg b/svg/check.svg
new file mode 100644
index 0000000000000000000000000000000000000000..67675f156119a482927bc1bc467363e66e114224
--- /dev/null
+++ b/svg/check.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 408.8 294.1" style="enable-background:new 0 0 408.8 294.1;" xml:space="preserve">
+<g>
+	<path d="M408.8,36.8c-2,10.1-8.3,17.4-15.4,24.5C319.6,135,245.8,208.8,172.1,282.6c-10,10-21.5,14.3-35.1,9.5
+		c-5-1.7-9.9-4.9-13.6-8.6C85.6,246.1,48.1,208.6,10.6,171c-15.1-15.2-13.9-37,2.6-49.9c12.8-10,30.9-8.2,43.7,4.6
+		c28.9,28.9,57.8,57.8,86.6,86.7c1.1,1.1,1.8,2.6,3.4,4.9c1.7-2.3,2.4-3.6,3.4-4.6c67.1-67.1,134.2-134.2,201.2-201.3
+		c9.7-9.7,21-13.8,34.5-9.6c11.8,3.7,18.8,12,21.9,23.8c0.2,0.9,0.5,1.7,0.8,2.6C408.8,31,408.8,33.9,408.8,36.8z"/>
+</g>
+</svg>
diff --git a/svg/close.svg b/svg/close.svg
new file mode 100644
index 0000000000000000000000000000000000000000..498e0269ddd9d58cb65394564401f91a9febf345
--- /dev/null
+++ b/svg/close.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 383.3 383.3" style="enable-background:new 0 0 383.3 383.3;" xml:space="preserve">
+<g>
+	<path d="M15,383.3c-1.1-0.5-2.2-1-3.3-1.4C0.2,377.1-3.6,362.9,4,353.1c1.1-1.5,2.5-2.8,3.8-4.1c51.3-51.3,102.7-102.7,154-154
+		c1-1,2.4-1.7,3.9-2.7c-1.8-1.9-2.8-3-3.8-4C110.1,136.6,58.5,84.9,6.8,33.3c-5.2-5.2-7.9-11.2-6.3-18.5C3.7,0.7,20.2-4.7,31.1,4.7
+		c1.2,1.1,2.3,2.2,3.5,3.4C85.7,59.3,136.9,110.4,188,161.6c1.1,1.1,2,2.3,3.2,3.8c1.4-1.3,2.5-2.3,3.5-3.3
+		C246.4,110.3,298.1,58.7,349.8,7c6-6,12.7-8.6,21-5.8c6.7,2.2,10.2,7.5,12.5,13.9c0,2.5,0,5,0,7.5c-1.8,5.6-5.6,9.8-9.7,13.8
+		C322.8,87,272.1,137.7,221.3,188.4c-1,1-2,2.1-3.4,3.5c1.4,1.2,2.6,2.1,3.7,3.2c50.5,50.5,101.1,101.1,151.7,151.6
+		c4.2,4.2,8.1,8.4,10,14.1c0,2.5,0,5,0,7.5c-2.4,7.6-7.4,12.6-15,15c-2.5,0-5,0-7.5,0c-5.6-1.8-9.7-5.7-13.8-9.7
+		c-50.7-50.8-101.4-101.5-152.1-152.2c-1-1-2.1-2-3.7-3.5c-1.2,1.5-2,2.8-3,3.8C137.5,272.2,86.9,322.9,36.3,373.5
+		c-4.1,4.1-8.2,7.9-13.8,9.7C20,383.3,17.5,383.3,15,383.3z"/>
+</g>
+</svg>
diff --git a/svg/community.svg b/svg/community.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a5d63abea9161a84b2723fe73d6f9d4b4f7993de
--- /dev/null
+++ b/svg/community.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 284.7 275.6" style="enable-background:new 0 0 284.7 275.6;" xml:space="preserve">
+<g>
+	<path d="M88.1,111.4c-0.9-6.4-0.9-6.4-6.9-7.9c-24.1-6-40.7-27-40.5-51.4C40.9,27.5,57.7,6.9,82,1.3c23.1-5.3,47.5,6.4,58.3,28
+		c0.4,0.9,0.9,1.8,1.5,3.1c0.7-1.2,1.2-2.1,1.7-3C154.3,8,177.9-3.7,201,1.1c23.8,4.9,41.1,25.2,42.2,49.4
+		c1.1,24.5-15.9,47.1-40.5,52.8c-4.9,1.1-6.6,3.4-7.1,8c8.4-0.5,16.2-3.1,23-7.9c4.2-3,8.2-3.3,13-2.2c30.2,6.7,52.7,34.3,53,65.2
+		c0.1,7.5-0.2,15,0.1,22.5c0.2,4.9-1.7,8.7-5,12c-5.5,5.4-12.3,8.4-19.4,10.9c-3.5,1.2-7.1,2.4-10.8,3c-3.6,0.5-4.3,2.1-4.2,5.4
+		c0.3,6.9-0.2,13.7,0.2,20.6c0.3,6-2.2,10.3-6.4,14c-6.1,5.4-13.4,8.6-21,11.1c-16.2,5.4-33.1,7.6-50,8.8c-23.5,1.7-47,1.1-70.3-2.1
+		c-12.9-1.8-25.6-4.3-37.6-9.5c-3.8-1.6-7.4-3.6-10.8-5.9c-6.7-4.4-11.1-10-10.1-18.9c0.7-6.3,0-12.7,0.2-19.1
+		c0.1-2.7-0.8-3.7-3.5-4.6c-8.4-2.8-16.6-6-24.7-9.4c-2.7-1.1-4.8-3.5-7-5.5c-3.1-2.8-4.5-6.3-4.3-10.7c0.3-11-0.6-22,0.7-32.9
+		c3.2-26.8,22-47.3,48.1-54.2c6.7-1.8,12.6-2.1,18.7,2.5C73,108.9,79.6,110.4,88.1,111.4z M146.9,260.7c5.7-0.3,15.8-0.5,25.9-1.6
+		c10-1.1,20-2.7,30-4.6c8.6-1.7,17-4.2,24.3-9.4c1.6-1.1,3.1-3.5,3.2-5.3c0.3-7.7,0.3-15.5,0.1-23.2c-0.8-27.2-18.4-49.8-44.1-56.6
+		c-1.8-0.5-4.3-0.3-5.9,0.6c-25.7,14.4-51.3,14.4-76.9-0.3c-1.2-0.7-2.8-1.1-4.1-0.9c-22.8,3.5-43.2,25.1-44.7,48
+		c-0.7,10.4-0.1,20.9-0.3,31.4c-0.1,2.7,0.8,4.7,3.1,5.8c5.6,2.7,11.1,5.7,17,7.5C96.5,258.9,119.4,260.3,146.9,260.7z M39.6,201.3
+		c0.6-1.8,0.9-2.4,1-3c8-30.6,28.4-47.9,58.8-54.2c3.2-0.7,6-0.2,8.9,1.6c22.3,14.4,44.8,14.3,67.1,0c2.7-1.7,5.4-2.3,8.5-1.6
+		c30,6.5,49.4,24.5,58.6,53.7c0.3,0.9,0.6,1.8,1,3c8.2-1.9,16.2-3.9,23.1-8.6c1.4-1,2.8-3,2.8-4.6c0.3-7.5,0.3-15,0-22.4
+		c-0.7-22.6-17.5-43.3-39.4-48.6c-1.5-0.4-3.6-0.1-4.9,0.6c-11.3,6.6-23.4,9.7-36.5,9.6c-1.6,0-3.6,0.9-4.7,2.1
+		c-23.3,24.6-61,24.6-84.5,0.1c-1.2-1.2-3.3-2.2-5-2.1c-12.9,0.1-24.9-3.1-36.1-9.6c-1.3-0.7-3.1-1.1-4.5-0.9
+		c-19.4,3.5-36.2,20.4-38.6,39.9c-1.2,9.8-0.5,19.9-0.8,29.9c-0.1,2.9,0.9,4.9,3.3,6C25.1,195.1,32.1,198.1,39.6,201.3z M184.3,90
+		c0.1-23.4-18.9-42.4-42.3-42.5c-23.2-0.1-42.5,19-42.6,42.3c-0.1,23.2,19,42.4,42.3,42.6C165.1,132.4,184.3,113.3,184.3,90z
+		 M157.9,34.5c25.6,9.2,39.5,27.1,41.7,53.9c14.2-1.6,27.2-16.9,28.6-33.5c1.5-16.6-10.1-33.3-26.5-38.3
+		C184.7,11.5,166.3,18.9,157.9,34.5z M84.3,88.5c2.2-26.9,16.3-44.9,41.7-54c-7.4-14.8-25.6-22.6-42-18.3
+		c-17.8,4.6-29.1,20.3-28.2,39.1C56.7,70.9,69.8,86.3,84.3,88.5z"/>
+</g>
+</svg>
diff --git a/svg/cube.svg b/svg/cube.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fce64db00d88159366a52b622bc264a27f11a56b
--- /dev/null
+++ b/svg/cube.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 288.2 319.1" style="enable-background:new 0 0 288.2 319.1;" xml:space="preserve">
+<g>
+	<path d="M0.1,159.4c0-20.5,0.2-40.9-0.1-61.4c-0.1-14,5.6-24,17.8-30.9C54.2,46.6,90.6,25.9,126.8,5c11.8-6.8,23-6.7,34.7,0.1
+		c35.9,20.7,71.9,41.2,108,61.5c12.7,7.1,18.7,17.4,18.6,32c-0.3,40.8-0.2,81.6,0,122.4c0.1,13.9-5.6,24-17.8,30.9
+		c-36.5,20.6-72.9,41.4-109.3,62.3c-11.3,6.5-22.3,6.6-33.7,0.1c-36.6-21-73.3-41.8-110-62.6C5.6,244.9-0.1,235,0,221.5
+		C0.2,200.8,0.1,180.1,0.1,159.4z M44.2,89c1.3,0.8,2,1.3,2.9,1.7c31.5,16.5,63,32.9,94.4,49.5c2.1,1.1,3.6,0.7,5.5-0.3
+		c23.9-12.7,47.8-25.4,71.7-38c8.1-4.3,16.2-8.6,24.6-13.1c-1.3-0.8-2.1-1.4-2.9-1.9c-31.1-17.7-62.2-35.4-93.3-53.2
+		c-2.2-1.3-3.8-1.3-6.1,0c-23.3,13.4-46.6,26.6-69.9,39.9C62.3,78.6,53.5,83.7,44.2,89z M160,277.7c1.7-0.9,2.8-1.4,3.9-2
+		c29.5-16.8,59-33.6,88.5-50.3c2.8-1.6,3.7-3.3,3.7-6.4c-0.1-32.3-0.1-64.6-0.1-96.9c0-1.1-0.1-2.1-0.3-3.5
+		c-1.5,0.7-2.6,1.3-3.7,1.8c-29.4,15.6-58.8,31.2-88.3,46.7c-2.8,1.5-3.9,3-3.8,6.3c0.1,33.3,0.1,66.6,0.1,99.9
+		C160,274.5,160,275.7,160,277.7z M32.4,119.1c-0.1,1-0.3,1.6-0.3,2.2c0,33.1,0,66.1-0.1,99.2c0,2.3,1.1,3.3,2.8,4.3
+		c30.2,17.1,60.3,34.3,90.4,51.5c0.8,0.4,1.7,0.7,2.8,1.1c0-1.6,0-2.8,0-3.9c0-33.4,0-66.9,0.1-100.3c0-3.1-1-4.6-3.7-6
+		c-23.5-12.2-46.9-24.5-70.3-36.7C47.1,126.7,39.9,123,32.4,119.1z"/>
+</g>
+</svg>
diff --git a/svg/dollar.svg b/svg/dollar.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9b47d87cd4f5e0562b12c78a6224b9b8eb8a0a99
--- /dev/null
+++ b/svg/dollar.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 233.7 408.8" style="enable-background:new 0 0 233.7 408.8;" xml:space="preserve">
+<g>
+	<path d="M122.5,0c2.3,1.3,4.7,2.4,6.7,4c4,3.2,5.5,7.7,5.4,12.7c-0.1,9.7,0,19.4,0,28.6c10.5,2.2,20.8,3.8,30.7,6.4
+		c18.4,5,34.7,14,49.2,26.3c6.4,5.5,7.9,12.8,5.5,20.7c-2.6,8.7-8.7,13.8-17.5,15.4c-6,1.1-11.2-0.7-16.1-4.3
+		c-14-10.4-29.5-17.3-46.5-20.9c-0.8-0.2-1.6-0.3-2.4-0.4c-0.6-0.1-1.3-0.1-2.5-0.3c0,1.4,0,2.7,0,4c0,27.5,0.1,55.1-0.1,82.6
+		c0,3.1,1,4.3,4,5.1c18.8,5.3,37.5,11,54.4,21.1c18.3,10.9,32.1,25.5,37.3,46.7c10.4,41.9-5.5,88.7-53.4,107.3
+		c-12.6,4.9-25.7,7.5-39.2,8.7c-0.9,0.1-1.8,0.2-3.1,0.4c0,4.7,0,9.1,0,13.6c-0.1,5.6,0.2,11.2-0.3,16.7
+		c-0.9,8.8-7.9,14.5-16.8,14.1c-8.6-0.4-15.2-7-15.4-15.8c-0.2-9.3,0-18.6,0-27.9c-8.2-1.1-16.1-1.9-23.9-3.3
+		c-27.4-5.1-51.5-17.3-72.4-35.7c-7.6-6.7-8.2-19.4-1.6-28c6.9-9.1,18.1-11.5,27.2-5.7c4.9,3.2,9.4,7,14.2,10.3
+		c15.9,10.7,33.4,17.4,52.2,20.6c0.8,0.1,1.6,0.2,2.4,0.2c0.4,0,0.8-0.1,1.6-0.3c0-1.3,0-2.5,0-3.8c0-31.5-0.1-63.1,0.1-94.6
+		c0-3.4-1.2-4.5-4.2-5.3c-18.4-5.2-36.8-10.5-53.6-20c-18.5-10.4-32.6-24.7-37.3-46C0,121.1,8.2,93.1,33.6,71.1
+		c18.5-16,40.7-23.1,64.6-25.5c3.4-0.3,4.1-1.5,4-4.6c-0.2-6.6,0.3-13.3-0.1-20c-0.6-10,2.6-17.4,12.4-21.1C117.1,0,119.8,0,122.5,0
+		z M135.2,323.9c20.6-1.3,40.3-12.3,47.3-29c6.2-15,6.4-29.8-4.9-42.6c-11.1-12.5-26.7-17-42.4-21.6
+		C135.2,262.1,135.2,293,135.2,323.9z M102.2,170.5c0-28.3,0-56.2,0-84.2c-2.3,0.3-4.3,0.5-6.2,0.8c-15,2.6-28.4,8.1-37.3,21.3
+		c-9.2,13.7-8.4,32.4,2,42.4C72.2,162,87.2,165.9,102.2,170.5z"/>
+</g>
+</svg>
diff --git a/svg/download.svg b/svg/download.svg
new file mode 100644
index 0000000000000000000000000000000000000000..12c5dfef5f34ff9b542e1b8c663b9a7555833e18
--- /dev/null
+++ b/svg/download.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 383.3 383.3" style="enable-background:new 0 0 383.3 383.3;" xml:space="preserve">
+<g>
+	<path d="M20.3,383.3c-1.4-0.5-2.8-0.9-4.2-1.4c-10.8-3.8-17.5-15-15.8-25.9c1.9-11.6,11.3-20.1,22.8-20.5c1.5-0.1,3,0,4.5,0
+		c108.8,0,217.7,0,326.5,0c17.3,0,23.1,4,29.2,20.2c0,2.5,0,5,0,7.5c-0.8,2.3-1.5,4.7-2.5,6.9c-3.6,7.4-9.9,11.3-17.7,13.3
+		C248.8,383.3,134.5,383.3,20.3,383.3z"/>
+	<path d="M216.8,208.4c0.8-1.1,1.5-2.4,2.4-3.3c13.4-13.4,26.8-26.9,40.2-40.2c6.7-6.6,14.8-8.7,23.8-6.2
+		c8.9,2.5,14.6,8.6,16.6,17.6c2,9-0.7,16.7-7.2,23.2c-22.5,22.5-45,45-67.5,67.5c-5.2,5.2-10.4,10.4-15.6,15.6
+		c-10.7,10.6-24.9,10.7-35.6,0.1c-27.8-27.7-55.6-55.6-83.4-83.4c-6.8-6.8-9.3-15-6.7-24.3c2.5-8.9,8.6-14.6,17.6-16.6
+		c8.8-2,16.5,0.5,22.9,6.9c13.2,13.2,26.5,26.5,39.7,39.7c1,1,1.7,2.1,2.6,3.2c0.4-0.1,0.7-0.3,1.1-0.4c0-1.4,0-2.8,0-4.2
+		c0-59.5,0-119,0-178.5c0-14.6,10.6-25.3,24.5-25.1c12.5,0.2,22.8,10.3,23.4,22.8c0.1,3,0.1,6,0.1,9c0,57.3,0,114.5,0,171.8
+		c0,1.3,0,2.7,0,4C216,207.9,216.4,208.1,216.8,208.4z"/>
+</g>
+</svg>
diff --git a/svg/filter.svg b/svg/filter.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8dc744f0c9cf4272b85df608a574e228412228c3
--- /dev/null
+++ b/svg/filter.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 359.4 263.6" style="enable-background:new 0 0 359.4 263.6;" xml:space="preserve">
+<g>
+	<path d="M179.9,0.1c51.5,0,103,0,154.6,0c14.5,0,25.2,10.7,24.9,24.6c-0.3,12.3-10.2,22.6-22.5,23.2c-1,0.1-2,0-3,0
+		C231,48,128.3,48,25.5,48C12.8,48,3.2,40.7,0.6,29.5C-2.8,14.5,8.1,0.4,23.4,0.1c10.4-0.2,20.7,0,31.1,0C96.3,0,138.1,0,179.9,0.1z
+		"/>
+	<path d="M179.4,155.8c-35.7,0-71.3,0.1-107,0c-17.3,0-28.9-16.4-23-32.3c3.5-9.5,12.3-15.6,22.9-15.6c27.2,0,54.4,0,81.6,0
+		c44.3,0,88.6,0,132.8,0c13.6,0,24.2,10,24.7,23c0.5,13.8-10.2,24.9-24.2,24.9c-25.9,0.1-51.9,0-77.8,0
+		C199.4,155.8,189.4,155.8,179.4,155.8z"/>
+	<path d="M179.5,263.6c-23.9,0-47.9,0.1-71.8-0.1c-10-0.1-17.4-4.9-21.6-14c-4.1-9-2.8-17.6,3.4-25.2c4.5-5.5,10.5-8.5,17.6-8.5
+		c48.4-0.1,96.8-0.1,145.2,0c13,0,23.3,11,23.3,24c0,13.1-10.5,23.8-23.8,23.9C227.6,263.7,203.6,263.6,179.5,263.6z"/>
+</g>
+</svg>
diff --git a/svg/fullscreen.svg b/svg/fullscreen.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2dbe534424caac89c7f0c298ec663946e5d4961e
--- /dev/null
+++ b/svg/fullscreen.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 383.4 383.4" style="enable-background:new 0 0 383.4 383.4;" xml:space="preserve">
+<g>
+	<path d="M383.4,109.4c-9,0-17.9,0-27.2,0c0-27.2,0-54.2,0-81.7c-27.4,0-54.5,0-81.9,0c0-9.4,0-18.3,0-27.6c1.5,0,2.9,0,4.4,0
+		c29,0,58.1,0.2,87.1-0.1c8.5-0.1,14.5,2.5,17.6,10.6C383.4,43.6,383.4,76.5,383.4,109.4z"/>
+	<path d="M10.6,383.4c-8.1-3.2-10.7-9.2-10.6-17.6c0.3-29,0.1-58.1,0.1-87.1c0-1.4,0-2.7,0-4.4c9.1,0,18,0,27.3,0c0,27,0,54,0,81.5
+		c27.4,0,54.5,0,82,0c0,9.5,0,18.6,0,27.6C76.5,383.4,43.6,383.4,10.6,383.4z"/>
+	<path d="M274.1,383.4c0-9,0-17.9,0-27.4c27.2,0,54.3,0,81.8,0c0-27.5,0-54.5,0-81.9c9.4,0,18.5,0,27.5,0c0,32.9,0,65.9,0,98.8
+		c-2,5-5.5,8.5-10.5,10.5C340,383.4,307,383.4,274.1,383.4z"/>
+	<path d="M109.3,27.6c-27.3,0-54.2,0-81.6,0c0,27.4,0,54.5,0,81.8c-9.3,0-18.1,0-27.5,0c0-1.3,0-2.6,0-3.9c0-29.9,0-59.9,0-89.8
+		C0.2,5.5,5.5,0.2,15.6,0.2c30.1,0,60.1,0,90.2,0c1.1,0,2.2,0,3.6,0C109.3,9.3,109.3,18.2,109.3,27.6z"/>
+</g>
+</svg>
diff --git a/svg/home.svg b/svg/home.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1ce82a272284882dbc3ade7454ee441cb353ae26
--- /dev/null
+++ b/svg/home.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 377 375.3" style="enable-background:new 0 0 377 375.3;" xml:space="preserve">
+<g>
+	<path d="M0.1,256.2c0-32.7,0.1-65.4-0.1-98.1c-0.1-17.6,6.8-31,21.2-41.3C73.4,79.5,125.4,41.9,177.5,4.4c8.1-5.9,14-5.9,22.3,0.1
+		C252,42.1,304.3,79.8,356.6,117.4c13.8,9.9,20.5,23,20.4,39.8c0,66.5,0,133,0,199.5c0,11.3-7.1,18.6-18.4,18.6
+		c-39.7,0-79.5,0-119.2,0c-11.2,0-17.6-6.5-17.6-17.8c0-24.3,0-48.7,0-73c0-16.7-9.8-30-25-34.1c-22.2-6.1-43.5,9.7-43.8,32.7
+		c-0.2,24.7-0.1,49.4-0.1,74.1c0,11.7-6.4,18.1-18,18.1c-38.9,0-77.7,0-116.6,0c-11.8,0-18.2-6.5-18.2-18.4
+		C0,323.3,0.1,289.8,0.1,256.2z M122.6,343.1c0-1.6,0-3.1,0-4.6c0-19.1-0.4-38.2,0.2-57.3c1.1-35.1,29.1-62.4,64.2-63.3
+		c34.7-0.9,65,26.7,66.5,61.3c0.8,20.1,0.3,40.2,0.3,60.3c0,1.4,0,2.9,0,4.3c30.7,0,60.8,0,91.2,0c0-1.5,0-2.9,0-4.2
+		c0-60.6-0.1-121.3,0.1-181.9c0-6.5-2.4-11.1-7.6-14.8c-48.9-35.3-97.8-70.6-146.6-106c-1.9-1.4-3.1-1.6-5.2-0.1
+		c-49.1,35.4-98.3,70.7-147.5,106c-4.6,3.3-6.8,7.5-6.8,13.3c0.1,61.1,0.1,122.3,0.1,183.4c0,1.2,0.1,2.4,0.2,3.6
+		C61.9,343.1,92,343.1,122.6,343.1z"/>
+</g>
+</svg>
diff --git a/svg/image.svg b/svg/image.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8ec9278ef5aa045856f6eda9ccd6dfb9ea0dcda0
--- /dev/null
+++ b/svg/image.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 276.1 239.6" style="enable-background:new 0 0 276.1 239.6;" xml:space="preserve">
+<g>
+	<path d="M137.8,239.6c-31.7,0-63.5,0.1-95.2,0c-20.2-0.1-36.8-13.1-41.4-32.5c-0.8-3.5-1.1-7.2-1.1-10.7c-0.1-51-0.1-102,0-153
+		C0,18.2,18.2,0.1,43.3,0C106.5,0,169.8,0,233,0c24.8,0,43,18.2,43.1,43c0.1,51.1,0.1,102.3,0,153.4c0,25-18.3,43-43.4,43.1
+		C201,239.6,169.4,239.6,137.8,239.6z M252.1,145c0-2.2,0-3.2,0-4.2c0-32.4,0-64.9,0-97.3c0-12.2-7.4-19.5-19.6-19.5
+		c-62.9,0-125.7,0-188.6,0C31.4,24,24,31.3,24,43.7c0,42.2,0,84.3,0,126.5c0,1.2,0,2.4,0,4.3c1.5-1.3,2.4-2.1,3.2-3
+		c10.2-10.1,20.3-20.3,30.5-30.4c15.3-14.9,37.4-14.9,52.7,0.1c3.8,3.8,7.7,7.5,11.4,11.4c2.3,2.4,4.3,5.1,6.5,7.6
+		c1.2-1.1,1.4-1.2,1.6-1.4c13.4-13.3,26.7-26.6,40.1-39.9c1.8-1.8,3.5-3.5,5.5-5.1c14.8-11.4,34.9-10.3,48.5,3
+		C233.3,125.8,242.2,135,252.1,145z M146.1,176.6c0.7,0.8,1,1.2,1.4,1.5c12.1,12.1,24.1,24.3,36.2,36.3c0.7,0.7,2.2,1.1,3.3,1.1
+		c15.8,0.1,31.5,0.1,47.3,0c10-0.1,17.7-7.9,17.8-17.9c0.1-5.5,0.2-11-0.1-16.5c-0.1-1.5-0.9-3.4-1.9-4.5
+		c-14-14.1-28-28.1-42.1-42.1c-6.3-6.3-13.5-6.2-19.8,0.1c-8.7,8.6-17.3,17.3-26,25.9C156.9,165.9,151.6,171.2,146.1,176.6z
+		 M150.9,215.6c-1.2-1.3-1.9-2.1-2.5-2.7c-18.1-18-36.1-35.9-54.2-53.9c-6.8-6.7-13.7-6.7-20.6,0.2c-14.9,14.9-29.9,29.8-44.8,44.7
+		c-0.8,0.8-1.5,1.6-2.2,2.5c3.9,6.3,9.4,9.2,16.6,9.2c19.9,0,39.8,0,59.6,0C118.5,215.6,134.2,215.6,150.9,215.6z"/>
+	<path d="M84,80.6c0-18,14.9-32.7,33-32.7c18.3,0,33,14.9,33,33.1c-0.1,18-15,32.8-33,32.7C98.8,113.7,84,98.9,84,80.6z M126,80.7
+		c-0.1-4.9-4.3-8.9-9.3-8.8c-4.9,0.2-8.9,4.4-8.7,9.3c0.2,4.8,4.3,8.6,9.1,8.6C122.1,89.8,126.1,85.6,126,80.7z"/>
+</g>
+</svg>
diff --git a/svg/info.svg b/svg/info.svg
new file mode 100644
index 0000000000000000000000000000000000000000..079a391214cb968d9d482f69abef9b52636b0be5
--- /dev/null
+++ b/svg/info.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 263.5 263.6" style="enable-background:new 0 0 263.5 263.6;" xml:space="preserve">
+<g>
+	<path d="M139.5,263.6c-5.1,0-10.3,0-15.4,0c-0.7-0.1-1.3-0.4-2-0.4c-20.6-1.5-39.9-7.4-57.5-18.1c-34.1-20.9-55.2-51.1-62.5-90.5
+		c-0.9-4.9-1.4-10-2.1-14.9c0-5.1,0-10.3,0-15.4c0.2-0.9,0.3-1.8,0.5-2.7c0.8-5.7,1.3-11.4,2.5-17c6.9-31.6,23.1-57.6,48.9-77.1
+		C84,3,120.1-5.1,159.5,3.1c31.5,6.6,57.1,23.1,76.7,48.6c21.2,27.5,30,58.8,26.7,93.3c-2.7,27.9-13.5,52.6-32.1,73.7
+		c-20.4,23.1-45.8,37.5-76.2,42.9C149.5,262.4,144.5,262.9,139.5,263.6z M131.8,239.6c59.3,0,107.6-48.2,107.8-107.6
+		C239.8,72.8,191.1,24,131.8,24C72.5,24,24.2,72.2,24,131.7C23.7,190.8,72.4,239.6,131.8,239.6z"/>
+	<path d="M119.9,159.6c0-12.1-0.1-24.2,0-36.3c0-4.9,2.7-8.5,7.1-10.4c4.6-2,8.9-1.2,12.7,2c2.9,2.5,4,5.8,4,9.6
+		c0,9.6,0,19.2,0,28.8c0,13.9,0,27.8,0,41.7c0,7.2-4.8,12.4-11.5,12.6c-7,0.2-12.3-4.9-12.3-12.3
+		C119.8,183.4,119.9,171.5,119.9,159.6C119.9,159.6,119.9,159.6,119.9,159.6z"/>
+	<path d="M131.8,56c8.8,0,16,7.3,15.9,16c-0.1,8.7-7.3,15.8-16,15.8c-8.8,0-16-7.4-15.9-16.1C115.9,63.1,123.1,56,131.8,56z"/>
+</g>
+</svg>
diff --git a/svg/language.svg b/svg/language.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6324448b9929f61c8fd6de519a62265c508105da
--- /dev/null
+++ b/svg/language.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 272 320.2" style="enable-background:new 0 0 272 320.2;" xml:space="preserve">
+<path d="M102.6,183.4c6,3.7,11.9,7.2,17.7,10.8c5.6,3.5,8.3,8.7,7.7,15.2c-0.7,6.8-4.5,11.5-11.1,13.7c-4.4,1.5-8.7,1-12.7-1.3
+	c-6.7-3.9-13.3-8-19.3-11.6c-10.1,10.4-20.1,21-30.4,31.4c-3.7,3.7-7.8,7.1-11.8,10.4c-7.2,5.9-16.7,5.1-22.5-1.5
+	c-5.9-6.8-5.4-16.6,1.8-22.7c13.4-11.4,25.8-23.6,36.7-37.4c0.8-1,1.5-2,1.6-2.1c-6.6-11.2-13.4-21.7-19-32.8
+	c-3.6-7-5.9-14.8-8.2-22.5c-2.7-9,2.1-17.7,10.7-20.2c8.8-2.5,17.5,2.4,20,11.6c3.2,11.5,7.9,22.3,14.5,32.3
+	c0.4,0.6,0.9,1.1,1.7,2.1c16.8-29.7,26.9-61.1,30.9-95c-1.9,0-3.4,0-4.8,0c-29.8,0-59.5,0-89.3,0C5,63.9-2.8,53.2,0.9,42.6
+	c2.3-6.7,8.4-10.7,16.4-10.7c19.3,0,38.5,0,57.8,0c1.5,0,3,0,5.1,0c0-5.6-0.1-10.9,0-16.2C80.4,6.3,87.5-0.3,96.8,0
+	c8.1,0.3,14.8,6.6,15.1,14.7c0.2,5.5,0,11,0,16.9c1.8,0.1,3.2,0.2,4.6,0.2c19.3,0,38.5,0,57.8,0c5.1,0,9.7,1.2,13.3,5
+	c4.5,4.9,5.9,10.7,3.3,17c-2.6,6.4-7.6,9.9-14.5,10c-9.6,0.2-19.3,0.1-28.9,0.1c-1.4,0-2.7,0-4.5,0
+	C138.5,106.5,125.3,146.1,102.6,183.4z"/>
+<path d="M171.1,256c-3.6,16.1-7.1,31.8-10.6,47.5c-0.4,1.6-0.7,3.2-1.1,4.7c-2.4,8.4-10.1,13.3-18.3,11.8c-8.6-1.6-14.3-9-12.9-17.7
+	c1.3-8.4,3.5-16.6,5.3-24.9c7.2-32.2,14.2-64.3,21.5-96.4c5.1-22.4,23.2-36.9,45.3-36.8c21.9,0.1,39.8,14.9,44.8,37
+	c8.8,39.3,17.5,78.7,26.2,118c1.9,8.4-1.2,15.6-8.1,19.1c-6.5,3.3-14.4,2-19.1-3.8c-2-2.4-3.3-5.6-4-8.7c-3.7-15.7-7-31.4-10.7-47.1
+	c-0.2-1.1-1.7-2.6-2.6-2.6C208.5,255.9,190,256,171.1,256z M178.4,223.6c14.7,0,28.9,0,43.6,0c-3-13-5.6-25.6-8.8-38.2
+	c-1.5-6-7.4-9.7-13.3-9.6c-6,0.1-11.3,4.1-13,10c-1.1,3.7-1.8,7.5-2.7,11.3C182.3,205.9,180.3,214.6,178.4,223.6z"/>
+</svg>
diff --git a/svg/like-full.svg b/svg/like-full.svg
new file mode 100644
index 0000000000000000000000000000000000000000..643849501317eb467274d8b218dbee6372a92d73
--- /dev/null
+++ b/svg/like-full.svg
@@ -0,0 +1 @@
+<svg viewBox="0 -28 512.00002 512" xmlns="http://www.w3.org/2000/svg"><path d="m471.382812 44.578125c-26.503906-28.746094-62.871093-44.578125-102.410156-44.578125-29.554687 0-56.621094 9.34375-80.449218 27.769531-12.023438 9.300781-22.917969 20.679688-32.523438 33.960938-9.601562-13.277344-20.5-24.660157-32.527344-33.960938-23.824218-18.425781-50.890625-27.769531-80.445312-27.769531-39.539063 0-75.910156 15.832031-102.414063 44.578125-26.1875 28.410156-40.613281 67.222656-40.613281 109.292969 0 43.300781 16.136719 82.9375 50.78125 124.742187 30.992188 37.394531 75.535156 75.355469 127.117188 119.3125 17.613281 15.011719 37.578124 32.027344 58.308593 50.152344 5.476563 4.796875 12.503907 7.4375 19.792969 7.4375 7.285156 0 14.316406-2.640625 19.785156-7.429687 20.730469-18.128907 40.707032-35.152344 58.328125-50.171876 51.574219-43.949218 96.117188-81.90625 127.109375-119.304687 34.644532-41.800781 50.777344-81.4375 50.777344-124.742187 0-42.066407-14.425781-80.878907-40.617188-109.289063zm0 0"/></svg>
\ No newline at end of file
diff --git a/svg/like.svg b/svg/like.svg
new file mode 100644
index 0000000000000000000000000000000000000000..337b9fb1d63c1ebb19317aa00fe12ba7eeb01a5e
--- /dev/null
+++ b/svg/like.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 409 346.2" style="enable-background:new 0 0 409 346.2;" xml:space="preserve">
+<g>
+	<path d="M409,126.1c-1.6,8.9-2.7,17.8-4.8,26.6c-4.3,18.3-12.8,34.9-23.3,50.4c-20.3,30.1-46.6,54.5-74.7,77
+		c-29.3,23.4-60.5,43.8-92.4,63.3c-6.1,3.7-12.3,3.8-18.4,0c-42.2-25.7-83.2-53.2-119.7-86.6C54,237,34.3,215.4,19.9,189.5
+		C-0.6,152.7-6.6,114.1,8.1,74C21.8,36.8,47.6,11.6,86.8,2.9c35.3-7.9,67.4,0.3,94.4,24.9c8.7,7.9,15.9,17.4,24,26.4
+		c1.6-2.2,3.6-5,5.7-7.8c9.5-12.7,20.7-23.5,34.4-31.6c18.6-11,38.7-15.6,60.3-14.3c23,1.4,43.5,9.3,61.2,24.1
+		c20.6,17.2,33.1,39.2,38.9,65.2c1.4,6.4,2.2,13,3.3,19.6C409,114.9,409,120.5,409,126.1z M376.8,123.9c1-28.3-8.5-53-25.6-70.5
+		c-24.9-25.3-67.6-28.4-95.8-7.1c-16.9,12.8-27.8,29.8-35.4,49.2c-3,7.6-8.8,12.1-15.7,12c-6.9-0.1-12.4-4.5-15.3-12
+		c-5.5-14.3-13.2-27.2-23.5-38.6c-20.9-23.3-54.2-31.3-83.1-19.5C56.9,47.9,42.1,67.7,35.3,93.9c-7.7,29.8-0.9,57.4,14.4,83.3
+		c13.8,23.4,32.4,42.7,52.6,60.7c30.8,27.4,64.9,50.4,99.7,72.2c1.8,1.2,3.1,1.2,5,0c27.5-17.2,54.5-35.2,79.9-55.5
+		c24.2-19.4,46.9-40.2,64.9-65.6C366.3,168.4,376.3,146.1,376.8,123.9z"/>
+</g>
+</svg>
diff --git a/svg/logout.svg b/svg/logout.svg
new file mode 100644
index 0000000000000000000000000000000000000000..53c63e87e2f7c14f4c6e196b36ed9d2dc3169a98
--- /dev/null
+++ b/svg/logout.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
+<g>
+	<path d="M210.8,0c7.1,2.5,12.5,6.6,14.4,14.3c2.8,11.2-5.2,22.3-16.8,23.2c-1.5,0.1-3,0.1-4.5,0.1c-53.9,0-107.7,0-161.6,0
+		c-1.5,0-2.9,0-4.6,0c0,103,0,205.7,0,309c1.4,0,2.8,0,4.2,0c54.7,0,109.5,0,164.2,0c11.4,0,19.9,8.3,19.6,19.1
+		c-0.3,8-4.3,13.6-11.6,16.9c-1.1,0.5-2.2,1-3.4,1.4c-65.3,0-130.5,0-195.8,0c-7.6-2.4-12.6-7.4-15-15C0,251,0,133,0,15
+		C2.4,7.4,7.4,2.4,15,0C80.3,0,145.5,0,210.8,0z"/>
+	<path d="M384,195.8c-1.8,5.6-5.6,9.8-9.8,13.9c-29.9,29.7-59.7,59.4-89.5,89.2c-4.6,4.6-9.7,7.3-16.4,6.7
+		c-7.4-0.7-12.6-4.6-15.5-11.3c-3-6.9-1.8-13.5,3-19.3c2.2-2.7,4.8-5,7.3-7.5c17.9-17.8,35.8-35.7,53.6-53.5
+		c0.8-0.8,1.5-1.6,2.9-3.1c-2.1,0-3.5,0-4.9,0c-57.7,0-115.5,0-173.2,0c-11.8,0-20.2-8.1-20-19.1c0.2-9.6,7.8-17.7,17.4-18.3
+		c1.4-0.1,2.7-0.1,4.1-0.1c57.2,0,114.5,0,171.7,0c1.4,0,2.7,0,4.9,0c-1.3-1.4-2.2-2.4-3.1-3.3c-19.8-19.8-39.7-39.5-59.5-59.3
+		c-9.6-9.6-7.3-24.8,4.6-30.5c7.6-3.7,15.6-2.2,22.2,4.4c14.5,14.3,28.9,28.7,43.3,43.1c15.7,15.6,31.3,31.3,47,46.8
+		c4.1,4.1,8,8.2,9.8,13.9C384,190.8,384,193.3,384,195.8z"/>
+</g>
+</svg>
diff --git a/svg/moon.svg b/svg/moon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d751674b8da6efc7900ff0e3c93711953611f2f8
--- /dev/null
+++ b/svg/moon.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 249.9 248.9" style="enable-background:new 0 0 249.9 248.9;" xml:space="preserve">
+<path d="M249.9,150.7c-2.2,6.7-4.1,13.5-6.8,20c-7.1,17.7-17.9,32.9-32.2,45.6c-14.9,13.3-32.1,22.7-51.3,28
+	c-13.9,3.8-28.1,5.2-42.5,4.1C86.5,246.1,60,234.2,38,212.7C18.7,193.9,6.7,171,2,144.4c-4.4-24.9-1.4-49.1,8.6-72.3
+	c8.7-20.2,22-36.9,39.5-50.2C62.9,12.1,77.1,5,92.5,0.5c4.2-1.2,8.1-0.2,10.3,2.9c2.3,3.2,2.2,6.8-0.8,10.5
+	C90.6,28,84.4,44.2,82.6,62.1c-2,20,2,38.8,12,56.3c10.3,18,25.1,31.2,44.1,39.4c15.9,6.9,32.6,9.2,49.9,6.9
+	c17.4-2.3,32.8-9.3,46.6-20.2c1.6-1.3,3.6-2.4,5.5-2.8c4.2-0.9,7,1,9.2,5.7C249.9,148.5,249.9,149.6,249.9,150.7z M225.8,171.1
+	c-46.3,19.2-89.6,15.1-126-20.4C63.4,115.3,57.9,72.1,75.8,25.4C40.8,42.8,11.8,84.8,18.2,135.8c6.1,49,45,89,95.4,95.2
+	C162.1,237.1,205.8,210.5,225.8,171.1z"/>
+</svg>
diff --git a/svg/new.svg b/svg/new.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d4d2494c52e3e91cc82613576c1bd46bf96e9bb9
--- /dev/null
+++ b/svg/new.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 319.3 319.9" style="enable-background:new 0 0 319.3 319.9;" xml:space="preserve">
+<g>
+	<path d="M260.2,41.1c8.7,0.4,13.7,3.4,16.4,9.3c2.8,6.1,2.2,12.2-2.4,17.1C262.6,79.9,250.7,92,238.7,104
+		c-6.2,6.1-16.6,5.5-22.6-0.7c-6-6.1-6.3-15.6-0.2-22c11.7-12.1,23.6-24.1,35.7-35.7C254.2,43,258.4,42,260.2,41.1z"/>
+	<path d="M42.1,261.7c0-4.5,1.7-8.3,4.8-11.4C58,239.2,69.1,228,80.3,216.9c6.7-6.7,16.5-6.7,22.8-0.3c6.3,6.3,6.3,16.1-0.3,22.8
+		c-11,11.2-22.2,22.3-33.3,33.4c-5.1,5.1-11.7,6.2-17.9,3.4C45.7,273.7,42.1,268.1,42.1,261.7z"/>
+	<path d="M42.7,61c0.5-8.5,3.3-13.7,9.5-16.5c6.1-2.8,12.2-2.2,17,2.5c11.7,11.3,23.1,22.8,34.3,34.5c6.2,6.5,5.6,16.2-0.7,22.2
+		c-6.2,5.9-15.5,6.1-21.9-0.1c-11.4-11.2-22.8-22.4-33.8-34C44.7,66.9,43.7,62.9,42.7,61z"/>
+	<path d="M143.7,39.8c0-7.7-0.1-15.5,0-23.2c0.1-9.8,6.8-16.6,16-16.5c9.1,0.1,15.7,6.8,15.7,16.4c0.1,15.6,0.1,31.2,0,46.9
+		c-0.1,9.8-6.8,16.6-16,16.5c-9-0.1-15.6-6.9-15.7-16.4C143.7,55.5,143.7,47.6,143.7,39.8z"/>
+	<path d="M39.8,175.9c-7.7,0-15.5,0.1-23.2,0c-9.8-0.1-16.6-6.8-16.6-16c0-9.2,6.9-15.8,16.7-15.8c15.5-0.1,30.9-0.1,46.4,0
+		c9.8,0.1,16.6,6.7,16.6,16c0,9.2-6.9,15.8-16.7,15.8C55.2,175.9,47.5,175.9,39.8,175.9z"/>
+	<path d="M279.6,175.8c-8.2,0-16.5,0.1-24.7,0c-7.8-0.2-14.3-6-15.2-13.5c-1-8.2,3.5-15.4,11.2-17.7c1.3-0.4,2.7-0.6,4-0.6
+		c16.3,0,32.7-0.1,49,0c7.8,0.1,14.2,6,15.2,13.4c1,8.3-3.7,15.8-11.5,17.7c-2.7,0.7-5.7,0.5-8.5,0.6
+		C292.6,175.9,286.1,175.9,279.6,175.8C279.6,175.9,279.6,175.9,279.6,175.8z"/>
+	<path d="M175.6,280.2c0,7.7,0.1,15.5,0,23.2c-0.1,9.7-6.9,16.6-16.1,16.5c-9-0.1-15.6-6.9-15.7-16.5c-0.1-15.6-0.1-31.2,0-46.9
+		c0.1-9.6,6.7-16.4,15.7-16.5c9.2-0.1,15.9,6.7,16.1,16.5c0,0.2,0,0.5,0,0.7C175.6,264.9,175.6,272.5,175.6,280.2z"/>
+	<path d="M263.2,277.7c-6.1,0-9.9-1.6-13.1-4.7c-11.3-11-22.6-21.9-33.7-33c-6.5-6.5-6.4-16.3-0.3-22.6c6.2-6.3,16-6.5,22.5-0.1
+		c11.5,11.3,22.9,22.7,34.1,34.2c4.9,5,5.8,11.2,3,17.7C273,275.4,267.9,277.6,263.2,277.7z"/>
+</g>
+</svg>
diff --git a/svg/news.png b/svg/news.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcf799db9d24dd18392bebe723fa84be860f87f7
Binary files /dev/null and b/svg/news.png differ
diff --git a/svg/option.svg b/svg/option.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d25772d8c93bda9026498e51de0f831c0f529887
--- /dev/null
+++ b/svg/option.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 408.6 408.8" style="enable-background:new 0 0 408.6 408.8;" xml:space="preserve">
+<g>
+	<path d="M408.6,76.7c-20.9,0-41.7,0-63.1,0c0,9.1,0.1,18,0,26.9c-0.1,8.2-5.3,14.4-13,15.9c-1.7,0.3-3.4,0.3-5.2,0.3
+		c-19.8,0-39.6,0-59.5,0c-11.9,0-18.1-6.3-18.1-18.3c0-7.8,0-15.7-0.1-23.5c0-0.2-0.1-0.5-0.3-1.2c-83,0-166,0-249.3,0
+		C0,66,0,55.7,0,44.9c83,0,166.1,0,249.7,0c0-4.7,0-9.1,0-13.4c0-3.9,0.2-7.7,0-11.6C249,10,252.9,3.3,262.5,0c23.4,0,46.8,0,70.3,0
+		c9.1,3.2,13.4,9.4,12.8,19.1c-0.2,2.9,0,5.8,0,8.8c0,5.5,0,11.1,0,16.8c21.4,0,42.2,0,63.1,0C408.6,55.4,408.6,66,408.6,76.7z
+		 M281.9,32.1c0,18.7,0,37.1,0,55.4c10.7,0,21.1,0,31.5,0c0-18.6,0-36.9,0-55.4C302.8,32.1,292.5,32.1,281.9,32.1z"/>
+	<path d="M408.6,220.4c-76.4,0-152.7,0-229.1-0.1c-4.6,0-9.3,0-14.4,0c0,1.8,0,3.3,0,4.9c0,7.1,0,14.1,0,21.2
+		c-0.1,10.4-6.6,17.1-16.9,17.1c-20.8,0.1-41.5,0.1-62.3,0c-9.9,0-16.5-6.7-16.6-16.6c-0.1-4.4,0-8.8,0-13.2c0-4.3,0-8.5,0-13.2
+		c-23.1,0-46,0-69.2,0c0-10.9,0-21.3,0-32c22.9,0,45.7,0,69.2,0c0-1.6,0-2.8,0-4.1c0-8-0.1-16,0-23.9c0.1-9.9,6.7-16.6,16.5-16.7
+		c20.9-0.1,41.8-0.1,62.7,0c9.9,0,16.5,6.7,16.6,16.6c0.1,9.2,0,18.3,0,28.1c81.3,0,162.4,0,243.5,0
+		C408.6,199.1,408.6,209.7,408.6,220.4z M132.9,175.9c-10.7,0-21.1,0-31.4,0c0,18.7,0,37.1,0,55.4c10.6,0,21,0,31.4,0
+		C132.9,212.8,132.9,194.5,132.9,175.9z"/>
+	<path d="M408.6,364.9c-21.4,0-42.8,0-64.7,0c0,9.4,0.1,18.5,0,27.7c-0.1,8.2-5.3,14.4-13,15.9c-1.7,0.3-3.4,0.3-5.2,0.3
+		c-19.8,0-39.7,0-59.5,0c-11.9,0-18.1-6.3-18.1-18.3c0-8.4,0-16.7,0-25.5c-82.8,0-165.3,0-248.1,0c0-10.8,0-21.1,0-31.8
+		c82.5,0,165,0,247.9,0c0.1-1.7,0.2-3,0.2-4.2c0-8-0.1-16,0.1-23.9c0.2-8.8,6.6-15.7,15.3-15.8c21.7-0.2,43.4-0.2,65.1,0
+		c8.9,0.1,15.2,7,15.4,16.1c0.1,9,0,18.1,0,27.7c21.7,0,43.2,0,64.7,0C408.6,343.6,408.6,354.2,408.6,364.9z M280.2,376.6
+		c10.7,0,21.1,0,31.4,0c0-18.7,0-37.1,0-55.4c-10.6,0-21,0-31.4,0C280.2,339.7,280.2,358,280.2,376.6z"/>
+</g>
+</svg>
diff --git a/svg/person.svg b/svg/person.svg
new file mode 100644
index 0000000000000000000000000000000000000000..74db641daf287bd7c0298c32d9d5080fd4e8d7df
--- /dev/null
+++ b/svg/person.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 320 352.3" style="enable-background:new 0 0 320 352.3;" xml:space="preserve">
+<g>
+	<path d="M219.8,171.7c2.5,1.1,4.7,2,6.8,3.1c52,25.3,83,66.4,91.8,123.6c2,12.7,1.5,25.9,1.6,38.9c0.1,7.3-5.5,13.3-12.7,14.6
+		c-1.9,0.4-4,0.5-6,0.5c-94.2,0-188.3,0.1-282.5-0.1c-4,0-8.4-1.3-12-3.1c-4.1-2-6.3-6.2-6.5-10.8c-1.8-33,2.9-64.8,19.2-94.2
+		C37.6,211.5,63.7,187.7,98,173c0.7-0.3,1.4-0.6,2-1c0.1-0.1,0.2-0.2,0.5-0.5c-27.2-23.3-39.9-52.8-35.3-88.6
+		c3.2-25.4,15.5-46.2,35.5-62.2C140.6-11,198.3-5.8,232.3,32.7C267.4,72.2,264.5,135.3,219.8,171.7z M288.6,320.1
+		c-2.4-50-23.7-88.7-67.6-112.2c-46.7-24.9-93.3-21.4-136.4,9.4c-34.7,24.8-51.3,60-52.6,102.8C117.7,320.1,202.7,320.1,288.6,320.1
+		z M96.2,96.4c-0.1,35,28.6,63.8,63.6,63.9c35.3,0.1,64.2-28.5,64.3-63.6c0-35.9-28.3-64.4-64.2-64.4
+		C124.8,32.2,96.3,60.8,96.2,96.4z"/>
+</g>
+</svg>
diff --git a/svg/question.svg b/svg/question.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ca9ec6d3d1d277849bd9ddedba65d6751ed729aa
--- /dev/null
+++ b/svg/question.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 408.9 408.9" style="enable-background:new 0 0 408.9 408.9;" xml:space="preserve">
+<g>
+	<path d="M216.4,408.9c-8,0-16,0-24,0c-1-0.2-2-0.6-3.1-0.7c-28.5-1.9-55.7-9.3-80.6-23.2C41.6,347.5,5.1,289.9,0.4,213
+		c-2.3-36.9,5.7-72.2,23.7-104.5c37.5-67,95-103.4,171.8-108.1c36.9-2.3,72.1,5.8,104.5,23.7c57.7,31.7,92.9,80.1,105.3,144.9
+		c1.5,7.8,2.2,15.7,3.2,23.6c0,8,0,16,0,24c-0.2,1.1-0.6,2.3-0.7,3.4c-2,28.5-9.5,55.6-23.3,80.5c-31.8,57.6-80.1,92.9-144.8,105.3
+		C232.3,407.2,224.3,407.9,216.4,408.9z M376.9,204.7C377.1,109.6,300,32.3,204.8,32c-95.1-0.3-172.7,77-172.9,172.3
+		C31.7,299.4,108.8,376.7,204,377C299.2,377.3,376.8,300,376.9,204.7z"/>
+	<path d="M188.5,234.2c0-6.4-0.1-12.8,0-19.2c0.1-9.1,5.6-15.5,14.7-16.3c10.5-0.9,19.8-4,26.4-12.8c7.8-10.4,9.1-21.8,3.4-33.4
+		c-6-12.1-16.2-18.2-29.7-17.7c-16.8,0.6-28.8,12.5-30.6,29.5c-0.2,1.7-0.2,3.5-0.5,5.2c-1.7,8.4-9,13.7-17.6,12.7
+		c-8.1-0.9-14.2-7.6-14-16.2c0.6-22.5,10-40.5,28.8-52.7c21.4-13.9,44.3-14.8,66.5-2.2c22.8,13,33.5,33.6,32.2,59.8
+		c-1.2,25.6-19.2,48.2-44,56.2c-3,0.9-3.9,2.2-3.8,5.2c0.3,6.9,0.1,13.8,0.1,20.8c-0.1,10.1-6.8,17.2-16.1,17.1
+		c-9.2-0.1-15.8-7-15.8-16.9C188.4,247,188.5,240.6,188.5,234.2z"/>
+	<path d="M204.3,322.2c-11.1-0.1-20-9.2-19.8-20.2c0.2-10.9,9.2-19.6,20-19.6c11.1,0.1,20,9.2,19.8,20.2
+		C224.2,313.5,215.2,322.3,204.3,322.2z"/>
+</g>
+</svg>
diff --git a/svg/search.svg b/svg/search.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e95414e2eecffc729833d421e074f10db9354541
--- /dev/null
+++ b/svg/search.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
+ preserveAspectRatio="xMidYMid meet">
+
+<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
+stroke="none">
+<path d="M1935 4683 c-775 -100 -1378 -689 -1491 -1455 -22 -154 -15 -419 15
+-572 134 -665 647 -1189 1306 -1335 441 -97 895 -18 1280 224 50 31 99 65 110
+76 19 19 24 14 615 -575 648 -647 619 -622 730 -614 105 8 180 83 188 188 8
+111 33 82 -613 730 l-593 595 35 45 c59 76 145 230 190 340 83 205 120 372
+130 585 40 870 -596 1636 -1462 1760 -91 13 -362 18 -440 8z m327 -424 c194
+-21 385 -85 540 -182 98 -61 138 -93 235 -189 144 -142 249 -312 312 -504 89
+-272 80 -603 -23 -862 -131 -330 -407 -605 -736 -732 -191 -73 -457 -99 -661
+-65 -270 45 -508 167 -697 358 -132 134 -206 241 -274 398 -191 444 -115 955
+197 1327 237 283 583 449 962 461 23 0 89 -4 145 -10z"/>
+</g>
+</svg>
diff --git a/svg/setting.svg b/svg/setting.svg
new file mode 100644
index 0000000000000000000000000000000000000000..be9b8aeee0b522bb9abb872dd2bf954a3766d5f7
--- /dev/null
+++ b/svg/setting.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 437.4 458.5" style="enable-background:new 0 0 437.4 458.5;" xml:space="preserve">
+<g>
+	<path d="M218.8,457.5c-10.7,0-21.5,0.8-32.1-0.2c-28.2-2.6-50.2-25.9-50.8-54.3c-0.3-16.4-14.8-21.5-26.3-15.2
+		c-26.8,14.7-59.8,5-75.5-21.2c-9.2-15.3-18.1-30.8-26.8-46.4c-14.8-26.7-6.2-59.8,19.4-76.2c13.3-8.5,13.4-21.2,0.1-29.7
+		C0.9,197.8-7.6,164.7,7.4,137.8C16,122.4,24.8,107,33.9,91.9c15.8-26.4,48.9-36.1,75.9-21.2c10.9,6,25.6,1.4,26-15.2
+		c0.7-29.4,23-52.7,53.1-54.6c20.9-1.3,41.9-1.1,62.8,0.4c26.7,1.8,48.6,25.9,49.9,52.6c0.1,1.3,0.1,2.6,0.2,3.9
+		c1,13,12.6,19.5,24.2,13.4c10.9-5.8,22.4-8.4,34.7-6.9c18.2,2.3,32.5,11.1,42.1,26.7c9.6,15.6,18.7,31.5,27.5,47.6
+		c14.6,26.6,6,59.3-19.7,75.7c-4.7,3-8.7,6.4-9.6,12.2c-1.1,7.6,2.2,13.1,8.6,17.1c14.6,9,23.6,22,26.7,38.9
+		c2.3,12.9,0.7,25.3-5.7,36.8c-9.1,16.3-18.2,32.6-28,48.5c-15.8,25.7-48.6,34.2-75.6,20c-6.5-3.4-12.6-4.1-18.8,0.2
+		c-5,3.5-6.3,8.7-6.6,14.5c-1.2,27.3-19.6,49.6-46.5,54.3c-11.9,2.1-24.3,1.3-36.4,1.8C218.8,458.2,218.8,457.8,218.8,457.5z
+		 M395.9,294.1c-0.4-8.4-4.1-12.8-9.7-16.3c-36.2-23-36-74.2,0.2-97.3c10.2-6.5,12-14.2,5.9-24.8c-7.6-13.2-15.2-26.4-22.8-39.6
+		c-6.4-11.1-13.9-13.4-25.2-7.5c-12.4,6.5-25.5,8.4-39.2,5.3c-25.7-5.9-43.6-27.5-44.7-53.9c-0.5-12-6.4-17.8-18.4-17.8
+		c-15.9,0-31.8,0-47.8,0c-10.5,0-16.6,5.9-17.3,16.3c-0.2,2.9-0.2,5.9-0.7,8.7c-7.1,39.5-48.3,59.5-84.1,41
+		c-9.9-5.1-18-2.9-23.5,6.7c-8.1,13.9-16.1,27.8-24.1,41.7c-5.5,9.6-3.4,17.7,6,23.7c36.8,23.5,36.9,74.4,0.2,97.8
+		c-9.9,6.3-11.7,14.2-5.8,24.5c7.7,13.4,15.4,26.7,23.1,40.1c6.2,10.8,13.6,12.5,24.9,7.6c7.4-3.3,15.6-6.2,23.6-6.6
+		c33.2-1.8,58.7,22.3,60.4,55.8c0.6,11.1,6.7,17.1,17.6,17.1c16.1,0,32.2,0,48.2,0c10.8,0,16.9-5.9,17.6-16.6
+		c0.3-4.5,0.6-9.1,1.7-13.5c9.1-35.9,49.2-53.5,82.4-36.3c10.8,5.6,18.5,3.5,24.5-7c7.9-13.6,15.8-27.2,23.6-40.9
+		C394.3,299.2,395.2,295.8,395.9,294.1z"/>
+	<path d="M215.6,333.1c-58.3-2.7-103.4-50.7-100.8-107.3c2.6-57.9,50.7-103.1,107-100.6c58.1,2.5,103.5,50.8,100.8,107.3
+		C320,290.5,271.8,335.7,215.6,333.1z M156.3,228.8c-0.1,34.4,27.6,62.6,61.9,62.8c34.4,0.2,62.7-27.6,62.9-61.8
+		c0.2-34.7-27.6-62.9-62.1-63C184.5,166.7,156.5,194.5,156.3,228.8z"/>
+</g>
+</svg>
diff --git a/svg/share.svg b/svg/share.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7ba8a3bdd2b88b5e4d8e10e1f67bd6dae523f585
--- /dev/null
+++ b/svg/share.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 319.7 351.4" style="enable-background:new 0 0 319.7 351.4;" xml:space="preserve">
+<g>
+	<path d="M107.1,224.3c-7.3,3.9-14.3,8.6-22.1,11.4c-42.6,15.4-87.4-17.8-84.9-63c1.4-25.6,14.2-44.6,37.5-55.1
+		c23.5-10.5,46-7.2,66.4,8.6c2.1,1.7,3.4,1.5,5.4,0.1c26.8-18,53.7-35.9,80.6-53.7c2.2-1.5,2.3-3,2.2-5.3
+		c-2.3-33.3,22.9-63.2,55.4-67c33.3-3.8,66,18.5,71,54.4c4,28.8-11.6,56-37.9,67.3c-26.5,11.3-56.5,3.8-74.9-18.9
+		c-0.4-0.5-0.8-1-1.3-1.7c-1.1,0.7-2.1,1.3-3.1,1.9c-24.7,16.5-49.4,32.9-74.1,49.3c-2,1.4-2.8,2.4-1.9,5c3.8,11.8,3.7,23.8,0,35.7
+		c-0.5,1.8-1.1,3,1,4.4c25.9,17.1,51.7,34.4,77.6,51.5c0.1,0.1,0.2,0,0.6,0.1c1.4-1.7,2.8-3.5,4.5-5.2
+		c18.2-18.7,40.1-25.4,65.2-17.9c25,7.5,40.3,25,44.6,50.8c6.3,38.6-22.1,72.6-61.1,74.1c-36.9,1.4-67.9-30.4-65.3-67.3
+		c0.2-2.7-0.5-4.2-2.7-5.7c-26.5-17.5-53-35.2-79.4-52.8c-1.1-0.8-2.3-1.5-3.4-2.2C106.9,223.7,107,224,107.1,224.3z M64.2,143.7
+		c-17.5,0.1-31.9,14.4-32,31.9c0,17.4,14.4,32,31.8,32c17.7,0,32.1-14.4,32.1-32.1C96.2,158.2,81.6,143.6,64.2,143.7z M255.9,95.8
+		c17.7,0,31.9-14.2,32-31.8c0.1-17.5-14.3-32-31.8-32c-17.8,0-32.1,14.2-32.2,32C223.9,81.4,238.3,95.8,255.9,95.8z M255.8,255.6
+		c-17.6,0.1-31.9,14.3-31.9,31.9c0,17.5,14.4,31.9,31.9,31.9c17.7,0,32.1-14.4,32.1-32.1C287.9,269.8,273.4,255.6,255.8,255.6z"/>
+</g>
+</svg>
diff --git a/svg/smallscreen.svg b/svg/smallscreen.svg
new file mode 100644
index 0000000000000000000000000000000000000000..240a6f9ce41a96c2d4249b205faa5ec4e4c52933
--- /dev/null
+++ b/svg/smallscreen.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 383.4 383.4" style="enable-background:new 0 0 383.4 383.4;" xml:space="preserve">
+<path d="M0.1,81.8c27.3,0,54.2,0,81.6,0c0-27.4,0-54.5,0-81.8c9.3,0,18.1,0,27.5,0c0,1.3,0,2.6,0,3.9c0,29.9,0,59.9,0,89.8
+	c0,10.2-5.3,15.5-15.4,15.5c-30.1,0-60.1,0-90.2,0c-1.1,0-2.2,0-3.6,0C0.1,100.1,0.1,91.2,0.1,81.8z"/>
+<path d="M383.3,301.6c-27.3,0-54.2,0-81.6,0c0,27.4,0,54.5,0,81.8c-9.3,0-18.1,0-27.5,0c0-1.3,0-2.6,0-3.9c0-29.9,0-59.9,0-89.8
+	c0-10.2,5.3-15.5,15.4-15.5c30.1,0,60.1,0,90.2,0c1.1,0,2.2,0,3.6,0C383.3,283.3,383.3,292.2,383.3,301.6z"/>
+<path d="M301.6,0.1c0,27.3,0,54.2,0,81.6c27.4,0,54.5,0,81.8,0c0,9.3,0,18.1,0,27.5c-1.3,0-2.6,0-3.9,0c-29.9,0-59.9,0-89.8,0
+	c-10.2,0-15.5-5.3-15.5-15.4c0-30.1,0-60.1,0-90.2c0-1.1,0-2.2,0-3.6C283.3,0.1,292.2,0.1,301.6,0.1z"/>
+<path d="M81.8,383.3c0-27.3,0-54.2,0-81.6c-27.4,0-54.5,0-81.8,0c0-9.3,0-18.1,0-27.5c1.3,0,2.6,0,3.9,0c29.9,0,59.9,0,89.8,0
+	c10.2,0,15.5,5.3,15.5,15.4c0,30.1,0,60.1,0,90.2c0,1.1,0,2.2,0,3.6C100.1,383.3,91.2,383.3,81.8,383.3z"/>
+</svg>
diff --git a/svg/sun.svg b/svg/sun.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ee5b8ea8778c72882da2246ae7819bbef5d8c1c4
--- /dev/null
+++ b/svg/sun.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 319.2 319.2" style="enable-background:new 0 0 319.2 319.2;" xml:space="preserve">
+<path d="M63.8,159.4c0.1-52.9,43.3-95.8,96.2-95.6c52.7,0.2,95.5,43.2,95.4,96c-0.1,52.9-43.3,95.8-96.2,95.6
+	C106.5,255.2,63.7,212.2,63.8,159.4z M223.4,159.6c0-35.3-28.3-63.7-63.6-63.8c-35.4-0.1-64,28.4-63.9,63.8
+	c0,35.3,28.4,63.7,63.6,63.8C194.9,223.5,223.4,195,223.4,159.6z"/>
+<path d="M41.9,59.8c0.3-8.3,3.2-13.3,9.1-16.1c5.9-2.9,11.8-2.4,16.8,1.9c4.9,4.2,9.5,8.8,13.7,13.7c5.5,6.3,4.8,15.5-1.1,21.3
+	c-5.8,5.7-14.8,6.4-21,1.1c-5-4.3-9.7-9-13.9-14C43.4,65.1,42.7,61.5,41.9,59.8z"/>
+<path d="M277.1,57.9c0,4.3-1.5,8.1-4.5,11.1c-3.8,3.9-7.6,7.9-11.6,11.6c-6.7,6.2-16.3,6.1-22.5-0.2c-6.1-6.2-6.2-15.7-0.1-22.2
+	c3.9-4.2,7.9-8.3,12.2-12.1c5-4.5,10.8-5.3,17-2.6C273.5,46,277.1,51.6,277.1,57.9z"/>
+<path d="M59.8,277.3c-8.3-0.4-13.2-3.2-16.1-8.9c-2.9-5.8-2.6-11.8,1.6-16.8c4.2-5,9-9.7,13.9-14c6.3-5.5,15.5-4.7,21.3,1.2
+	c5.7,5.8,6.3,14.9,0.9,21.1c-4.2,4.9-8.8,9.5-13.8,13.7C65.2,275.7,61.5,276.5,59.8,277.3z"/>
+<path d="M277.3,259.4c-0.4,8.4-3.3,13.4-9.2,16.2c-5.9,2.8-11.8,2.3-16.8-2c-4.9-4.2-9.5-8.8-13.7-13.7c-5.4-6.2-4.7-15.3,1-21
+	c5.8-5.9,15-6.7,21.3-1.2c4.9,4.2,9.5,8.8,13.6,13.8C275.7,254,276.5,257.7,277.3,259.4z"/>
+<path d="M175.5,24c0,2.9,0.1,5.7,0,8.6c-0.4,8.6-7.3,15.2-15.8,15.3c-8.5,0-15.6-6.6-15.9-15.1c-0.2-6-0.2-12,0-17.9
+	C144.1,6.4,151.1,0,159.5,0c8.5,0,15.4,6.3,15.9,14.7C175.6,17.8,175.4,20.9,175.5,24C175.4,24,175.4,24,175.5,24z"/>
+<path d="M23.8,175.5c-2.9,0-5.7,0.1-8.6,0C6.5,175.1,0,168.3,0,159.7c0-8.6,6.4-15.6,15-15.9c6-0.2,12-0.2,17.9,0
+	c8.3,0.3,14.9,7.4,14.9,15.7c0.1,8.3-6.4,15.4-14.7,15.9C30,175.6,26.9,175.4,23.8,175.5C23.8,175.4,23.8,175.5,23.8,175.5z"/>
+<path d="M295.4,143.7c3,0,6-0.1,9,0c8.4,0.4,14.8,7.3,14.8,15.7c0,8.5-6.3,15.5-14.7,15.9c-6.1,0.3-12.2,0.3-18.3,0
+	c-8.3-0.3-14.8-7.4-14.9-15.7c-0.1-8.5,6.6-15.5,15.1-15.9C289.5,143.6,292.4,143.7,295.4,143.7z"/>
+<path d="M175.4,295.4c0,3,0.1,6,0,9c-0.4,8.4-7.3,14.8-15.7,14.8c-8.5,0-15.5-6.3-15.9-14.7c-0.3-6.1-0.3-12.2,0-18.3
+	c0.3-8.3,7.4-14.8,15.7-14.9c8.3-0.1,15.4,6.5,15.9,14.8C175.6,289.2,175.4,292.3,175.4,295.4z"/>
+</svg>
diff --git a/svg/thunder.svg b/svg/thunder.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e36c99fb45db97e77d8d3f82b13838393a9c5dee
--- /dev/null
+++ b/svg/thunder.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 254.7 383.3" style="enable-background:new 0 0 254.7 383.3;" xml:space="preserve">
+<g>
+	<path d="M83.7,383.3c-8.1-4.1-9.8-7.8-7.6-16.6c12.1-48.7,24.2-97.4,36.3-146.1c0.3-1.2,0.5-2.4,0.9-4.1c-1.9,0-3.3,0-4.8,0
+		c-31.7,0-63.5-0.3-95.2,0.2c-9.4,0.1-16.2-7.2-12.1-17.8C26,135.8,50.3,72.6,74.8,9.4C77.7,2.1,80.7,0,88.7,0c33,0,66,0,99,0
+		c10.9,0,15.9,7.5,11.5,17.5c-13.9,31.5-27.8,62.9-41.7,94.4c-0.6,1.4-1.2,2.9-2,4.8c1.9,0,3.2,0,4.6,0c27.4,0,54.7,0,82.1,0
+		c6.1,0,10,2.5,11.8,7.3c1.6,4.3,0.2,8-2.1,11.6c-17.4,26.9-34.7,53.9-52,80.8c-34.1,53-68.2,105.9-102.2,158.9
+		c-2.2,3.5-4.8,6.3-8.6,7.9C87.2,383.3,85.5,383.3,83.7,383.3z M114.3,306.2c0.3,0.1,0.5,0.3,0.8,0.4
+		c35.8-55.6,71.6-111.2,107.7-167.4c-2.1,0-3.4,0-4.7,0c-25.7,0-51.5,0-77.2,0c-11.9,0-16.8-7.4-12-18.3
+		c12.8-29.1,25.7-58.1,38.5-87.2c1.6-3.6,3.1-7.2,4.8-11.1c-0.9-0.1-1.3-0.2-1.8-0.2c-24.6,0-49.2,0-73.9-0.1c-2.8,0-3.2,1.5-4,3.4
+		C72.1,78.6,51.7,131.4,31.2,184.3c-1.2,3.1-2.4,6.2-3.7,9.7c2,0,3.5,0,5,0c31.1,0,62.2,0,93.3,0c10.1,0,15,6.1,12.6,15.8
+		c-4.5,18.4-9.2,36.7-13.7,55.1C121.2,278.6,117.8,292.4,114.3,306.2z"/>
+</g>
+</svg>
diff --git a/svg/trash.svg b/svg/trash.svg
new file mode 100644
index 0000000000000000000000000000000000000000..32ac491c89a5f95d74efae03e7baab56f3b45c41
--- /dev/null
+++ b/svg/trash.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
+ preserveAspectRatio="xMidYMid meet">
+
+<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
+ stroke="none">
+<path d="M2155 5106 c-84 -21 -147 -57 -211 -121 -99 -98 -134 -197 -134 -375
+l0 -100 -395 0 c-256 0 -413 -4 -447 -11 -172 -37 -311 -176 -347 -347 -6 -29
+-11 -136 -11 -238 0 -165 2 -189 20 -224 31 -61 78 -80 194 -80 l95 0 5 -42
+c4 -24 65 -752 136 -1618 72 -866 135 -1593 141 -1615 28 -105 117 -218 219
+-278 100 -58 75 -57 1140 -57 1071 0 1037 -2 1145 60 97 55 186 170 214 275 5
+22 69 749 141 1615 71 866 132 1594 136 1618 l5 42 95 0 c116 0 163 19 194 80
+18 35 20 59 20 224 0 102 -5 209 -11 238 -37 172 -176 311 -347 347 -34 7
+-196 11 -447 11 l-395 0 0 100 c0 177 -36 276 -135 376 -65 65 -136 105 -223
+123 -76 16 -731 13 -797 -3z m775 -306 c61 -31 80 -78 80 -195 l0 -95 -450 0
+-450 0 0 98 c1 114 16 152 76 188 39 24 40 24 372 24 314 0 335 -1 372 -20z
+m1200 -610 c60 -31 80 -78 80 -190 l0 -90 -1650 0 -1650 0 0 93 c1 109 17 147
+76 183 l39 24 1533 0 c1517 0 1533 0 1572 -20z m-237 -622 c-2 -24 -62 -744
+-133 -1601 -140 -1688 -129 -1593 -193 -1641 l-28 -21 -979 0 -979 0 -28 21
+c-64 48 -53 -46 -193 1640 -71 858 -131 1578 -133 1602 l-5 42 1338 0 1338 0
+-5 -42z"/>
+<path d="M1888 3289 c-23 -12 -46 -35 -58 -59 -20 -39 -20 -57 -20 -1275 0
+-1219 0 -1236 20 -1275 23 -45 80 -80 130 -80 50 0 107 35 130 80 20 39 20 56
+20 1275 0 1219 0 1236 -20 1275 -37 73 -127 99 -202 59z"/>
+<path d="M2488 3289 c-23 -12 -46 -35 -58 -59 -20 -39 -20 -57 -20 -1275 0
+-1219 0 -1236 20 -1275 23 -45 80 -80 130 -80 50 0 107 35 130 80 20 39 20 56
+20 1275 0 1219 0 1236 -20 1275 -37 73 -127 99 -202 59z"/>
+<path d="M3088 3289 c-23 -12 -46 -35 -58 -59 -20 -39 -20 -57 -20 -1275 0
+-1219 0 -1236 20 -1275 23 -45 80 -80 130 -80 50 0 107 35 130 80 20 39 20 56
+20 1275 0 1219 0 1236 -20 1275 -37 73 -127 99 -202 59z"/>
+</g>
+</svg>
diff --git a/svg/upscale.svg b/svg/upscale.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8bb8bcc58a74f5f2ce4c2406e94ab7d2a0c98ae9
--- /dev/null
+++ b/svg/upscale.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 383.3 383.4" style="enable-background:new 0 0 383.3 383.4;" xml:space="preserve">
+<g>
+	<path d="M194.6,383.4c-61.6,0-123.3,0-184.9,0c-5.9-2.6-9.8-6.6-9.8-13.5c0-59.1,0-118.3,0-177.4c0-8.1,5.3-13.3,13.3-13.4
+		c3.9,0,7.9,0,12.2,0c0-1.9,0-3.4,0-4.9c0-52.7,0-105.3,0-158c0-11.6,4.4-16.1,16-16.1c108.5,0,217.1,0,325.6-0.1
+		c7.8,0,13.2,2.6,16.2,9.8c0,112.8,0,225.6,0,338.4c-3.1,7.4-8.7,9.8-16.6,9.8c-52.6-0.2-105.1-0.1-157.7-0.1c-1.4,0-2.9,0-4.6,0
+		c0,3.5-0.2,6.5,0,9.4C205.1,375.2,201.9,380.5,194.6,383.4z M357.6,25.8c-102.2,0-204.2,0-306.3,0c0,51.1,0,101.9,0,153.2
+		c1.6,0,3.1,0,4.6,0c44.4,0,88.8,0,133.2,0c10.8,0,15.4,4.6,15.4,15.5c0,44.4,0,88.8,0,133.2c0,1.4,0,2.9,0,4.4
+		c51.4,0,102.2,0,153.2,0C357.6,230,357.6,128.1,357.6,25.8z M25.8,204.7c0,51.3,0,102.1,0,152.9c51.1,0,102,0,152.9,0
+		c0-51.1,0-102,0-152.9C127.6,204.7,76.8,204.7,25.8,204.7z"/>
+	<path d="M305.3,95.2c-0.8,1.1-1.4,2.4-2.4,3.3c-20.9,20.9-41.8,41.8-62.7,62.8c-3.9,3.9-8.2,6-13.8,4.4
+		c-8.6-2.5-12.1-12.7-6.6-19.9c1-1.3,2.2-2.4,3.3-3.6c20.6-20.7,41.3-41.3,61.9-61.9c0.9-0.9,2.4-1.3,3.6-2c-0.4-0.5-0.8-1-1.1-1.5
+		c-1.2-0.1-2.4-0.2-3.6-0.2c-9.4,0-18.7,0.1-28.1,0c-7.6-0.1-13-5.5-13.1-12.5c-0.1-7,5.4-12.9,12.8-12.9c25.1-0.1,50.1,0,75.2,0
+		c0.3,0,0.7,0.2,1.3,0.4c0.1,1,0.2,2.1,0.2,3.2c0,23.8,0,47.7,0,71.5c0,6.9-3,11.7-8.5,13.6c-8.3,3-16.8-2.8-17-11.8
+		c-0.2-9.5-0.1-19-0.1-28.4c0-1.2,0-2.4,0-3.6C306.2,95.7,305.8,95.4,305.3,95.2z"/>
+</g>
+</svg>
diff --git a/triding.html b/triding.html
new file mode 100644
index 0000000000000000000000000000000000000000..cca9c9b017418d2d098b2a156adb3c50e55b34d0
--- /dev/null
+++ b/triding.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>BTC/USD Live Chart</title>
+    <style>
+        body, html {
+            margin: 0;
+            padding: 0;
+            background-color: black;
+            height: 100%;
+            width: 100%;
+            overflow: hidden;
+        }
+
+        .tradingview-widget-container {
+            width: 100%;
+            height: 100%;
+        }
+
+        #tradingview_9c9a7 {
+            width: 100%;
+            height: 100%;
+        }
+    </style>
+</head>
+<body>
+    <!-- TradingView Widget BEGIN -->
+    <div class="tradingview-widget-container">
+        <div id="tradingview_9c9a7"></div>
+        <script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
+        <script type="text/javascript">
+        new TradingView.widget(
+            {
+                "width": "100%",
+                "height": "100%",
+                "symbol": "BITSTAMP:BTCUSD",
+                "interval": "D",
+                "timezone": "Etc/UTC",
+                "theme": "dark",
+                "style": "1",
+                "locale": "en",
+                "toolbar_bg": "#f1f3f6",
+                "enable_publishing": false,
+                "allow_symbol_change": true,
+                "container_id": "tradingview_9c9a7"
+            }
+        );
+        </script>
+    </div>
+    <!-- TradingView Widget END -->
+</body>
+</html>
\ No newline at end of file
diff --git "a/\331\205\330\263\330\252\331\206\330\257 \331\206\330\265\331\212 \330\254\330\257\331\212\330\257.txt" "b/\331\205\330\263\330\252\331\206\330\257 \331\206\330\265\331\212 \330\254\330\257\331\212\330\257.txt"
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391