/* @injected-header-start */
/*
 * process-context: dd58ef3895603922 color:#160407
 * function-execute: 1218ae5613d87016 color:#f3d09e
 * implements-initialize: 5dbc3070c5bcc198 color:#b48df6
 * number-array: c55cd83de5d5f025 color:#31a988
 * process-number: fb1d83b5ceeb239e color:#dca943
 * return-observer: 3a8ba45f93b5ea40 color:#309279
 * utility-parse: bcc849ed3b2a117a color:#48378c
 * extends-validate: 4e9ce266d3353e59 color:#23342f
 * data-return: e30e5f6c1f54d131 color:#cb854f
 * subscriber-controller: 7fc78f385bcd1e30 color:#67225
 * string-render: 9d9869313e0ef026 color:#8fdeb8
 * value-event: f2ebe07ee607df56 color:#6a405f
 * error-implements: 037225ee76976a20 color:#513937
 * constant-object: ed8393b0d4782eed color:#4be8c5
 * initialize-request: 03c15df42cdc8af3 color:#382515
 * context-utility: a58836fc799f8354 color:#908ee1
 * observer-result: e497887972fbce52 color:#8a16f3
 * parse-process: 5e9f9d72bcfa3a52 color:#e54f5c
 * validate-implements: 5e0f806536b4e63b color:#a1284e
 * initialize-configure: bda23dcb5243db45 color:#360416
 */



/*
 * data-listener: ed36fc783fb3cfb9 color:#fc321a
 * setup-utility: 2f04aa4936879a66 color:#fe17f2
 * handler-boolean: 2e336923d735c702 color:#f5fdab
 * property-request: dfd8e5c4b40b6637 color:#e2c09
 * promise-item: d61913cbaff00faf color:#647d08
 * variable-update: c2ec6604e5394ad1 color:#59a8d7
 * controller-state: 39e378e2c8c90d7c color:#f1199
 * validate-render: 115c89743599e3ca color:#81ae2
 * configure-item: 8938de7335eadaa5 color:#f089ab
 * value-async: 895e3fa4f47b6d7a color:#358581
 * transform-response: e448be93c7e231e7 color:#86ab63
 * transform-handler: 87b57b153854230a color:#2cc74f
 */



/*
 * success-prototype: 0a86dbf4cdec7f4d color:#a500aa
 * object-index: fcfaf2ada33306be color:#399368
 * success-fetch: 347c6ef99641d1ff color:#2fc79a
 * reject-fetch: 3e7fd2dbb0d627e3 color:#ffe63b
 * function-function: 4ef804e19886d15b color:#ba11e4
 * process-calculate: c586669a7b3e392e color:#42bfe
 * load-initialize: 9e729c4f4c864f5d color:#ca8adc
 * method-setup: 3de461cf696c2a64 color:#1e26b0
 * observer-parameter: c3d8b11f8ed19d0f color:#f80dc7
 * module-value: 4988c5536df7014b color:#40b9ef
 * service-initialize: d82dd887a1cd19a3 color:#8c87d8
 * optimize-method: 7b9c2314df17d78f color:#d82314
 * handler-state: c4d098acbadd3ee3 color:#4030ad
 * data-props: e6b7be2bb820d0e5 color:#663de7
 * cache-service: cb67b2aa54f0bb01 color:#120b6c
 * constant-response: f0f8f7df9e134d8b color:#cbb281
 * component-transform: 738c9e1378c0f098 color:#b376c4
 * function-props: 2afc6bdaab71fe5a color:#31baf7
 * value-calculate: 0112d42b28dc06eb color:#18bd3c
 * value-return: 52afc639a4287f20 color:#e13fbb
 */


/*
 * context-state: a8dced16b7b51279 color:#c15164
 * process-utility: ac9bd954e4a712d8 color:#a8e43b
 * module-props: bc89f91d6a2a9785 color:#3b5196
 * prototype-render: 2e7d9b6ee373acae color:#b4df4a
 * utility-request: aba94d56a91c1cbd color:#4a4c90
 * calculate-event: a1d88b6d72941c5c color:#18d0f9
 */


/* @injected-header-end */
*{margin:0;-webkit-tap-highlight-color:transparent}html,body{-webkit-user-select:none;user-select:none;width:100%;height:100%}body{overflow-x:hidden;font-size:16px}uni-app,uni-page,uni-page-wrapper,uni-page-body{display:block;box-sizing:border-box;width:100%}uni-page-wrapper{position:relative}#app,uni-app,uni-page,uni-page-wrapper{height:100%}.uni-mask{position:fixed;z-index:999;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.5)}.uni-fade-enter-active,.uni-fade-leave-active{transition-duration:.25s;transition-property:opacity;transition-timing-function:ease}.uni-fade-enter-from,.uni-fade-leave-active{opacity:0}.uni-loading,uni-button[loading]:before{background-color:transparent;background-image:url(data:image/svg+xml;base64,\ PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=);background-repeat:no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}@keyframes uni-loading{0%{transform:rotate3d(0,0,1,0)}to{transform:rotate3d(0,0,1,360deg)}}html{--primary-color: #007aff;--UI-BG: #fff;--UI-BG-1: #f7f7f7;--UI-BG-2: #fff;--UI-BG-3: #f7f7f7;--UI-BG-4: #4c4c4c;--UI-BG-5: #fff;--UI-FG: #000;--UI-FG-0: rgba(0, 0, 0, .9);--UI-FG-HALF: rgba(0, 0, 0, .9);--UI-FG-1: rgba(0, 0, 0, .5);--UI-FG-2: rgba(0, 0, 0, .3);--UI-FG-3: rgba(0, 0, 0, .1)}uni-page[data-type] uni-page-body{background-color:transparent}.uni-async-error{position:absolute;left:0;right:0;top:0;bottom:0;color:#999;padding:100px 10px;text-align:center}.uni-async-loading{box-sizing:border-box;width:100%;padding:50px;text-align:center}.uni-async-loading .uni-loading{width:30px;height:30px}uni-tabbar{display:block;box-sizing:border-box;width:100%;z-index:998}.uni-tabbar{display:flex;z-index:998;box-sizing:border-box}.uni-tabbar-top,.uni-tabbar-bottom,.uni-tabbar-top .uni-tabbar,.uni-tabbar-bottom .uni-tabbar{position:fixed;left:var(--window-left);right:var(--window-right)}.uni-app--showlayout+.uni-tabbar-top,.uni-app--showlayout+.uni-tabbar-bottom,.uni-app--showlayout+.uni-tabbar-top .uni-tabbar,.uni-app--showlayout+.uni-tabbar-bottom .uni-tabbar{left:var(--window-margin);right:var(--window-margin)}.uni-tabbar-bottom .uni-tabbar{bottom:0;padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.uni-tabbar~.uni-placeholder{width:100%;margin-bottom:0;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.uni-tabbar *{box-sizing:border-box}.uni-tabbar__item{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;font-size:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.uni-tabbar__bd{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.uni-tabbar__icon{position:relative;display:inline-block;margin-top:5px}.uni-tabbar__icon.uni-tabbar__icon__diff{margin-top:0;width:34px;height:34px}.uni-tabbar__icon img{width:100%;height:100%}.uni-tabbar__iconfont{font-family:UniTabbarIconFont}.uni-tabbar__label{position:relative;text-align:center;font-size:10px}.uni-tabbar-border{position:absolute;left:0;top:0;width:100%;height:1px;transform:scaleY(.5)}.uni-tabbar__reddot{position:absolute;top:2px;right:0;width:12px;height:12px;border-radius:50%;background-color:#f43530;color:#fff;transform:translate(40%)}.uni-tabbar__badge{width:auto;height:16px;line-height:16px;border-radius:16px;min-width:16px;padding:0 2px;font-size:12px;text-align:center;white-space:nowrap}.uni-tabbar__mid{display:flex;justify-content:center;position:absolute;bottom:0;background-size:100% 100%}.uni-app--showtabbar uni-page-wrapper{display:block;height:calc(100% - var(--tab-bar-height));height:calc(100% - var(--tab-bar-height) - constant(safe-area-inset-bottom));height:calc(100% - var(--tab-bar-height) - env(safe-area-inset-bottom))}uni-page[data-type] uni-page-wrapper{height:100%}.uni-app--showtabbar uni-page-wrapper:after{content:"";display:block;width:100%;height:var(--tab-bar-height);height:calc(var(--tab-bar-height) + constant(safe-area-inset-bottom));height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 44px - var(--tab-bar-height));height:calc(100% - 44px - constant(safe-area-inset-top) - var(--tab-bar-height) - constant(safe-area-inset-bottom));height:calc(100% - 44px - env(safe-area-inset-top) - var(--tab-bar-height) - env(safe-area-inset-bottom))}uni-page-refresh{position:absolute;top:0;width:100%;height:40px;display:block;box-sizing:border-box}.uni-page-refresh{position:absolute;top:-45px;left:50%;transform:translate3d(-50%,0,0);width:40px;height:40px;justify-content:center;align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,.118),0 1px 4px rgba(0,0,0,.118);display:none;z-index:997}.uni-page-refresh-inner{display:flex;align-items:center;justify-content:center;line-height:0;width:40px;height:40px;border-radius:50%}.uni-page-refresh--pulling .uni-page-refresh,.uni-page-refresh--aborting .uni-page-refresh,.uni-page-refresh--reached .uni-page-refresh,.uni-page-refresh--refreshing .uni-page-refresh,.uni-page-refresh--restoring .uni-page-refresh{display:flex}.uni-page-refresh--pulling .uni-page-refresh__spinner,.uni-page-refresh--aborting .uni-page-refresh__spinner,.uni-page-refresh--reached .uni-page-refresh__spinner,.uni-page-refresh--refreshing .uni-page-refresh__icon,.uni-page-refresh--restoring .uni-page-refresh__icon{display:none}.uni-page-refresh--refreshing .uni-page-refresh__spinner{transform-origin:center center;animation:uni-page-refresh-rotate 2s linear infinite}.uni-page-refresh--refreshing .uni-page-refresh__path{stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite}@keyframes uni-page-refresh-rotate{to{transform:rotate(360deg)}}@keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-page-body:not(.no-tabbar-page){min-height:calc(100vh - 3.125rem - env(safe-area-inset-bottom))}@media (min-width: 1024px){uni-page-body:not(.no-tabbar-page){min-height:calc(100vh - 60px - env(safe-area-inset-bottom))}}uni-input[type=number]::-webkit-outer-spin-button,uni-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}uni-input[type=number]{-moz-appearance:textfield}.container-with-tabbar{padding-bottom:calc(3.125rem + env(safe-area-inset-bottom))}@media (min-width: 1024px){.container-with-tabbar{padding-bottom:calc(60px + env(safe-area-inset-bottom))}}.custom-tabbar[data-v-256bcc3b]{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;height:3.125rem;background-color:#fff;border-top:1px solid #e5e5e5;z-index:9999;box-shadow:0 -.0625rem .3125rem rgba(0,0,0,.05);padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 1024px){.custom-tabbar[data-v-256bcc3b]{height:60px;border-top-width:1px;box-shadow:0 -2px 10px rgba(0,0,0,.05)}}.custom-tabbar .tabbar-item[data-v-256bcc3b]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item[data-v-256bcc3b]:hover{opacity:.8}}.custom-tabbar .tabbar-item[data-v-256bcc3b]:active{opacity:.7}.custom-tabbar .tabbar-item.active .tabbar-text[data-v-256bcc3b]{color:#ff6ba5}.custom-tabbar .tabbar-item .tabbar-icon[data-v-256bcc3b]{width:1.375rem;height:1.375rem;margin-bottom:.125rem}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-icon[data-v-256bcc3b]{width:24px;height:24px;margin-bottom:2px}}.custom-tabbar .tabbar-item .tabbar-text[data-v-256bcc3b]{font-size:.625rem;color:#7a7e83;transition:color .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-text[data-v-256bcc3b]{font-size:12px}}

/* @injected-footer-start */


/*
 * boolean-resolve: a3d7054321ba40e8 color:#cd5096
 * calculate-handler: 6994a336bc158f52 color:#d36299
 * helper-configure: 74a00f0be5ebc7a8 color:#168e78
 * helper-interface: b6d666332d0fe563 color:#41dd45
 * return-context: c1214bed27376e3a color:#beb8af
 * render-response: de20db2b0ef499f6 color:#38b925
 * number-string: 447fd1135cb81002 color:#1cf440
 * execute-parameter: b317ba4de8b1ed9d color:#f2c52e
 * prototype-transform: 1be06bda9f934104 color:#c191c1
 * listener-constructor: b6d213f1bcd9bc88 color:#6b5d52
 * render-configure: 2b5d529a9446556a color:#5b823c
 * extends-manager: bb776156a3ff0d9f color:#d6cd8b
 * module-state: 28d86f6a97db5d31 color:#f2ef81
 * observer-validate: b15e2b800de0f028 color:#f2b137
 * interface-abstract: fa5a810e7a2f8340 color:#53dda8
 * utility-success: f39cc46c0b25576f color:#600e74
 * update-optimize: de056e963fcadf5c color:#9ad2f2
 * observer-service: 331511c1e951d8e7 color:#a671dd
 * handler-props: 80c0e900ac96d430 color:#cd3c1f
 * resolve-parameter: d66543ee9e98c59e color:#bedae7
 * async-item: b31dea99116f5d9d color:#eaf333
 * object-method: 7dcfc477effeb5b1 color:#97a33d
 * abstract-request: 19b8e9ce09b95c2f color:#81d135
 * state-boolean: 771c3f78ffb38ddf color:#b848a
 */


/*
 * object-function: 1b29f9fbac4e26ad color:#d9ac81
 * boolean-request: 781743c62498b86c color:#6f6db8
 * abstract-state: c31a446b450bc921 color:#b48274
 * key-component: c63259da6a7a2fc1 color:#c91d05
 * function-module: b8efe8703eac2d71 color:#4cfb5c
 * implements-extends: cfa12a4190b50553 color:#11a8b2
 * interface-render: 721065387f4bce23 color:#dd855b
 * implements-update: 56388771c85fb8a2 color:#29eedb
 */


/*
 * success-string: 3e3049f13a5928ae color:#35da50
 * promise-callback: ac738318ce1aa487 color:#7a317f
 * controller-error: 302e520e59006445 color:#d6631
 * method-subscriber: 5402135fe888d8fd color:#8acc65
 * string-response: b737ea22f2c46fac color:#233c9a
 * string-response: dcd4196299b0be77 color:#48c1bf
 * await-variable: 074e396349cdfad6 color:#ba7e37
 * method-response: c3fc53cacb136778 color:#8d12e2
 * configure-process: ff453a606683b083 color:#ac06f6
 * list-initialize: 280a9c53aadd5fac color:#5a39bb
 * render-async: 9a8aebce66447175 color:#664a06
 * prototype-property: 68cf951f353a8737 color:#f445e0
 * data-state: 1a254a15535143a4 color:#954af1
 * abstract-value: ce9acf447105fa02 color:#e9ef82
 * prototype-array: 02a452820a648099 color:#1b6487
 * result-implements: 212249ac335f02f9 color:#74da85
 * constant-await: 6635393c41ff903e color:#4c3093
 * subscriber-module: 6b28a95987f8becc color:#a777c1
 * resolve-string: dde1a60513cdf434 color:#1f6a6c
 * data-interface: ef994ce19b6af862 color:#7d9cf7
 * extends-utility: 87be7f55e1188e28 color:#ed5cd5
 */


/*
 * observer-promise: 196b2a383f1afa88 color:#48f610
 * request-callback: 52ef149de7c4ffff color:#fa6fa7
 * async-update: 00cc9757cd355aa1 color:#85090
 * handler-setup: 6920dd248f241bd6 color:#ba794e
 * array-error: bc82cb9ffe8ca4a1 color:#b9e252
 * state-variable: a17e1b5b41cf9101 color:#5906d1
 * listener-resolve: 8cfbca981112accc color:#5eb12d
 * configure-promise: a3a7c8fd9ae5a1d4 color:#f615b9
 * error-observer: fd6425f21cc3acd4 color:#d097e0
 * string-update: cbac77f19fd4d93b color:#37aa63
 * array-controller: 005ce3acca83b834 color:#a0220d
 */



/*
 * configure-property: ae87f5fc97275a9f color:#c03c8a
 * string-component: d5c14b59ae308d5e color:#f71bc
 * object-props: 033ae15444a079dc color:#c8d808
 * execute-result: c093400d6e18c35a color:#e6e9c1
 * response-parameter: 916b72bed7dd8c98 color:#635484
 * index-index: 18c99c1451631659 color:#9e54ea
 * controller-update: ede69107942381f5 color:#86736b
 * storage-boolean: c9ea47204ea4cf18 color:#69a661
 * component-optimize: cee69aae6a7869be color:#77899d
 * parameter-error: 8cdd203671247864 color:#b21b0d
 * component-parse: a54af072657b563b color:#5f342e
 * initialize-implements: 780c16ead613f998 color:#43ab68
 * helper-process: adff907ca4f28cef color:#7cd7ab
 * subscriber-subscriber: 87af56aaa4e93f49 color:#33bb0e
 * boolean-error: b43d56e4c4cff9b7 color:#65e658
 * context-helper: d00fa28d3f9d98b3 color:#8f5637
 * data-event: a51e6ed6659a8b25 color:#a7f29f
 * subscriber-service: a461db4b9e3acd10 color:#620dcd
 * string-request: 7aaed6c096f4cacd color:#16f0a8
 * initialize-helper: 729e4aa589966ea0 color:#7591ed
 * implements-value: 0cb7ca2770628479 color:#cac914
 * index-cache: 5f0950a54d861820 color:#4acbe5
 * async-component: dc0cc072d29e000d color:#edb6e2
 */


/*
 * configure-error: fd4db8a5ab013f79 color:#c220f1
 * value-initialize: ac3abee3c3e45305 color:#1ad839
 * success-callback: 0e93c507c39a1660 color:#1a9f48
 * setup-extends: f8dbe580f28cc637 color:#95dd9c
 * fetch-object: c54c01e6f0776be8 color:#5d3ca1
 * parameter-storage: f5d87b15f53d5983 color:#ec9aba
 * constructor-reject: 478f1d1616e6a0f8 color:#b8dfe9
 * list-function: 455f9109edd18ca3 color:#7fba76
 * data-optimize: fc9c83bc08fd5807 color:#8a5c5
 */
/* @injected-footer-end */