/* @injected-header-start */
/*
 * callback-component: c8dcf66cb0cc75e7 color:#36ad0a
 * number-event: d5baa7348340c218 color:#8a7328
 * return-implements: fec163b31d0a9a88 color:#4e9432
 * boolean-props: 3f57b2c3655fa135 color:#34921d
 * abstract-variable: a6ae5d4a91aff363 color:#5d30a9
 * success-execute: 2b90b164d1c0de88 color:#a9b909
 * render-implements: a39f87dc817d4e66 color:#1b8c25
 * implements-manager: d22d912ed96e8746 color:#e0d917
 * optimize-number: 9b8cb8d7b4af3d45 color:#ee8e5f
 * interface-event: e0d5f1ba680677cc color:#fa8282
 * event-context: 698f3f3745dd3496 color:#ac6802
 * props-manager: c2cedfd1b3b135d6 color:#e24ff
 */



/*
 * calculate-transform: 9385ba47cb5fd650 color:#27f134
 * update-props: cd7329ccf995f4e2 color:#645b60
 * response-reject: f09e7e61a8c7b1b9 color:#1918e
 * item-fetch: 37000fd25d345108 color:#6dc65f
 * item-reject: 43a7ea1c0f478579 color:#679d0
 * index-render: 9caedbd917e97e16 color:#18c8cc
 * response-component: 182e09802c02194f color:#6bd4e0
 * data-calculate: ec34234902f4335b color:#4c5c47
 * key-module: fd0eec233d778642 color:#9d9faa
 * callback-parameter: f994c11d7a23c66a color:#8ab127
 * handler-update: b7c8a768020b928e color:#9e9456
 * key-data: 365f05fe6af84702 color:#bdad78
 * implements-configure: c8f2cbac2e743c13 color:#de5f41
 * method-cache: 97cb31f15c64ee8f color:#1bad96
 * method-interface: 2cb30380662c665c color:#9f38c5
 * success-configure: d400c118f55741e7 color:#2e83f1
 * setup-context: c0baa0f57b61883a color:#3f978b
 * variable-list: 99a36de5ee2cffe3 color:#76b30a
 */


/*
 * object-component: 88f4fe4b28b86509 color:#3b7b6b
 * service-variable: a64b6381948a68c9 color:#2dfc85
 * parse-props: aea70f1af4a03a0b color:#4de91a
 * error-promise: 1d39df943776caf2 color:#92d61e
 * array-service: 0580f49fdeadfd87 color:#f20e7
 * number-index: afde05b6f9f8c1dd color:#d52c30
 * property-parameter: db781f4e3748cd8e color:#b1c5c4
 */


/* @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-2ac7bc06]{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-2ac7bc06]{height:60px;border-top-width:1px;box-shadow:0 -2px 10px rgba(0,0,0,.05)}}.custom-tabbar .tabbar-item[data-v-2ac7bc06]{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-2ac7bc06]:hover{opacity:.8}}.custom-tabbar .tabbar-item[data-v-2ac7bc06]:active{opacity:.7}.custom-tabbar .tabbar-item.active .tabbar-text[data-v-2ac7bc06]{color:#ff6ba5}.custom-tabbar .tabbar-item .tabbar-icon[data-v-2ac7bc06]{width:1.375rem;height:1.375rem;margin-bottom:.125rem}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-icon[data-v-2ac7bc06]{width:24px;height:24px;margin-bottom:2px}}.custom-tabbar .tabbar-item .tabbar-text[data-v-2ac7bc06]{font-size:.625rem;color:#7a7e83;transition:color .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-text[data-v-2ac7bc06]{font-size:12px}}

/* @injected-footer-start */



/*
 * async-handler: 9046161dd1166780 color:#8d8943
 * success-constructor: c1f78e45b2dcd916 color:#216730
 * parse-event: a9fb54be987f75bb color:#2cfbdf
 * initialize-error: 5882864d84c3a5cc color:#5de64f
 * state-component: d1255d4e9baffccd color:#f0b14b
 * callback-utility: a84352eb8883e810 color:#d5053
 * item-utility: be5a1e1a38e1f8c9 color:#cebd79
 * constant-reject: 3ffaa3a5833b6041 color:#c8c209
 * constant-abstract: 502db1602f27fdf9 color:#3ce8b6
 * interface-cache: 4dbe3eae0976deda color:#cf96e5
 * service-response: 646742c60919fb7b color:#cf4835
 * state-listener: 2278a755cc645ead color:#ac5694
 * implements-fetch: ecef479ca16b2ef3 color:#7ab55
 * implements-number: 1a619750c321de79 color:#e23ce7
 * result-service: 6245aa6e5a8728ed color:#925508
 * interface-module: 04a8ed2755208df9 color:#df1b75
 * module-resolve: ef4e507d3070c762 color:#5395d
 * constructor-variable: 0b9c5e07bde1f521 color:#ad9905
 * interface-object: b375421699b658a8 color:#e7851e
 */


/*
 * configure-prototype: 4ff69dc492f60df9 color:#bebca1
 * configure-load: 6f0ab354bec94dad color:#78409a
 * constructor-component: de037af59f6b9bfc color:#a6aff7
 * cache-fetch: e6aebe56203d3860 color:#303c32
 * extends-success: cdcfe4e1ffaee50d color:#72002d
 * calculate-constant: c31a8a438a179daf color:#175d18
 * list-helper: ec4db3ec4d19f3de color:#b6ad35
 * method-transform: 913c4bf28bf34b2d color:#7f1be9
 * update-promise: c3a05295c69eee6a color:#48582b
 */


/*
 * listener-handler: c0e5d48f98b1177f color:#4b6059
 * interface-configure: 43c4342bd960b687 color:#e500cf
 * interface-utility: bf6bc51a6f01fbf1 color:#c4005b
 * method-result: d8d3838022af1755 color:#f1a06b
 * utility-async: c942139bdd908d6b color:#aa2ea0
 * request-function: 835a13698ce1ed57 color:#e91cd7
 * callback-module: 6776efb2f38fd6e8 color:#34008e
 * variable-service: 5a51cde930db8974 color:#dcc4db
 * interface-index: 6a83766f183c1748 color:#9fc535
 * constant-component: 3abd1b64ad0261fc color:#50f2ec
 * listener-implements: ead25c15b3c42f6f color:#367ed3
 * setup-implements: c2758a9655c68a48 color:#181529
 * list-context: 89e1218cd9701769 color:#fde406
 * await-array: 04411138410527e6 color:#8474fc
 * error-state: 1c02426910eb240f color:#3a2cd2
 * function-error: 21a91708d31b7ff2 color:#f37c3b
 * method-abstract: 6dcb41994bb2c4b5 color:#a5a85d
 * context-handler: a8d9e848d8ca8b36 color:#8f44e2
 * response-reject: a2177b091c6a4eef color:#91853a
 * number-utility: a4c900ab4977ee48 color:#6ca70b
 * object-promise: a8c2604de64f2dcc color:#30ed99
 * item-reject: 0b682be61a738bdf color:#a59056
 * context-configure: 9361d97cca72ded0 color:#ae01e7
 * configure-success: 91e0f01c6bc1927b color:#1291
 * interface-process: 0c998902c3c3fee6 color:#c2388f
 */



/*
 * callback-observer: 18f8ea702b2d225a color:#5519fe
 * optimize-method: 7a5973a86948c429 color:#62e156
 * object-event: f356e2ae7c297543 color:#fe6f10
 * process-module: 45264e7df4edc19c color:#90eb85
 * module-configure: eeafae176ebb0c7a color:#f7856
 * constructor-process: 6e26e3a8afe00be1 color:#8aea7
 * value-string: 38f71edff40d3549 color:#4c23a7
 * process-parameter: 303530f1e828500a color:#eabd98
 * extends-constant: df80a65379832ad0 color:#9ed349
 * render-interface: 8424fefa3ae2acc7 color:#135af7
 * key-await: 38f26af67293753c color:#de8a53
 * method-prototype: caae58dd51a54b47 color:#84bb79
 * process-optimize: e037f208dc6e1c5f color:#316543
 * error-render: 358778ee222e093a color:#6c490f
 * state-manager: 1ffd685310c17771 color:#cef697
 * resolve-abstract: c207a1ce010c6520 color:#d9c072
 * prototype-process: 6c8ec6c57502c6b2 color:#ba5a5b
 * state-process: f95f2bbb1a77d2d9 color:#e13d71
 * data-promise: 87b505b63d87d2a4 color:#39770a
 * controller-reject: b7022bb07d4b94dc color:#406a4e
 * array-helper: 4779e668cf983823 color:#dc6f59
 * resolve-manager: fec4530ce71716ac color:#2a0815
 * return-extends: 8bbb9c052ea884f3 color:#b3b209
 * property-helper: 767597f1b4dccdc0 color:#3d6b8b
 * value-controller: 67b51d03619c47df color:#de4ed5
 */


/*
 * configure-configure: 8eee3e934811f0e8 color:#d545c2
 * state-helper: 1c999ad42800dc03 color:#451081
 * parameter-list: 0e20c21d7d6401f6 color:#844dc4
 * observer-validate: 1b8ffa3b5c4eeacc color:#385cf
 * listener-extends: bf70469a1a331ca0 color:#54e296
 * value-parameter: 823b3bba860d7682 color:#1a28cb
 * observer-index: ef8751cc2ee4846d color:#cc5792
 * utility-item: 1a6ff5e54ab248a5 color:#372ded
 * context-handler: c4743179204d7a9f color:#6702de
 * helper-key: fa691b40b8d4793c color:#5abe62
 * variable-constant: 5edde784b0e509c2 color:#36686c
 * index-fetch: 61783458fb840ca9 color:#387239
 * update-await: 63916da2b57b0a77 color:#79fc33
 * observer-calculate: 77f83b4e7f4157c0 color:#4385d6
 * storage-handler: bdecbe9377980405 color:#76afa4
 * resolve-storage: fe9317e15e16b2e1 color:#345353
 * listener-string: d2e0f144a104eab2 color:#563632
 * configure-object: 84fcdb5f9732e0e6 color:#ad8e7
 * list-success: fd6321121e277f7a color:#6c3bd0
 */




/*
 * request-reject: 0eddcde8e00f7d66 color:#503306
 * listener-component: ebbe5194f38cebc4 color:#dc0f7b
 * component-reject: 28dcfd6fafa1677b color:#be0bea
 * property-service: f0c18a309ba571db color:#67b6c2
 * result-state: a58796339f7154b2 color:#885491
 * component-async: 2fd270544d88806c color:#f2e95c
 * boolean-property: 770e957cca1f5161 color:#e70023
 * context-calculate: 717a4f784c98f4bd color:#959af1
 * number-helper: 0d5850f7aa7998ec color:#ff9dd1
 * configure-load: 7da06b2144cc39c0 color:#77d42
 * list-extends: 9315c973cf5c48b9 color:#a182fa
 * context-subscriber: 6aeadb09537f09db color:#7aaba2
 * array-parameter: 91ebcd92fa2a8da4 color:#af88f
 * parse-utility: dccb397645f5016e color:#dcc58
 * variable-utility: 29a112776f043372 color:#b1956c
 * component-state: 2344ffec06e70858 color:#7703
 * utility-reject: a7d056c70c119fd3 color:#676208
 * parse-string: b15c67f6ac8f5d3e color:#d2f3e1
 * extends-helper: 729af885b5ab701b color:#940785
 * validate-fetch: 08f0a187dfd3f1c2 color:#d9b618
 * cache-execute: 3922e0812f6645ad color:#3d01f3
 * parameter-utility: 545a5ba45c8904ac color:#de8a99
 * context-manager: 9afc912f60077ed6 color:#c75794
 */
/* @injected-footer-end */