diff --git a/modules/dreamview/backend/hmi/hmi.cc b/modules/dreamview/backend/hmi/hmi.cc index 3584e79d17ca28372731672c84f5ff385cefc8fc..07927c43212b709e1d9fb7c826dc8f82eebd0a1e 100644 --- a/modules/dreamview/backend/hmi/hmi.cc +++ b/modules/dreamview/backend/hmi/hmi.cc @@ -68,9 +68,7 @@ void HMI::RegisterMessageHandlers() { // Send current status and vehicle param to newly joined client. websocket_->RegisterConnectionReadyHandler( [this](WebSocketHandler::Connection* conn) { - const auto status_json = - JsonUtil::ProtoToTypedJson("HMIStatus", hmi_worker_->GetStatus()); - websocket_->SendData(conn, status_json.dump()); + SendStatus(conn); SendVehicleParam(conn); }); @@ -142,6 +140,12 @@ void HMI::RegisterMessageHandlers() { monitor_log_buffer_.WARN("Failed to submit a drive event."); } }); + +websocket_->RegisterMessageHandler( + "HMIStatus", + [this](const Json &json, WebSocketHandler::Connection* conn) { + SendStatus(conn); + }); } void HMI::SendVehicleParam(WebSocketHandler::Connection* conn) { @@ -160,5 +164,11 @@ void HMI::SendVehicleParam(WebSocketHandler::Connection* conn) { } } +void HMI::SendStatus(WebSocketHandler::Connection* conn) { + const auto status_json = + JsonUtil::ProtoToTypedJson("HMIStatus", hmi_worker_->GetStatus()); + websocket_->SendData(conn, status_json.dump()); +} + } // namespace dreamview } // namespace apollo diff --git a/modules/dreamview/backend/hmi/hmi.h b/modules/dreamview/backend/hmi/hmi.h index b4d7091f4b7188b9458869ffc3780cc2901ee32c..cb91dba507b80698341edb718ce7015bd7e03241 100644 --- a/modules/dreamview/backend/hmi/hmi.h +++ b/modules/dreamview/backend/hmi/hmi.h @@ -41,6 +41,7 @@ class HMI { private: // Send VehicleParam to the given conn, or broadcast if conn is null. void SendVehicleParam(WebSocketHandler::Connection *conn = nullptr); + void SendStatus(WebSocketHandler::Connection *conn = nullptr); void RegisterMessageHandlers(); diff --git a/modules/dreamview/frontend/dist/app.bundle.js b/modules/dreamview/frontend/dist/app.bundle.js index 7abc461ab94bb9f7b01cf1459c103aaaa0152b29..07ddbd2c3b7be9f0e631767702f9db730e7e0699 100644 --- a/modules/dreamview/frontend/dist/app.bundle.js +++ b/modules/dreamview/frontend/dist/app.bundle.js @@ -47,7 +47,7 @@ object-assign * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var i=n(72),r=n(109),o=n(110),a=n(111),s="function"==typeof Symbol&&Symbol.for,l=s?Symbol.for("react.element"):60103,u=s?Symbol.for("react.portal"):60106,c=s?Symbol.for("react.fragment"):60107,d=s?Symbol.for("react.strict_mode"):60108,h=s?Symbol.for("react.provider"):60109,p=s?Symbol.for("react.context"):60110,f=s?Symbol.for("react.async_mode"):60111,m=s?Symbol.for("react.forward_ref"):60112,g="function"==typeof Symbol&&Symbol.iterator;function y(e){for(var t=arguments.length-1,n="http://reactjs.org/docs/error-decoder.html?invariant="+e,i=0;ik.length&&k.push(e)}function R(e,t,n,i){var r=typeof e;"undefined"!==r&&"boolean"!==r||(e=null);var o=!1;if(null===e)o=!0;else switch(r){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case l:case u:o=!0}}if(o)return n(i,e,""===t?"."+L(e,0):t),1;if(o=0,t=""===t?".":t+":",Array.isArray(e))for(var a=0;a of . */\n.dreamview-canvas {\n z-index: 1;\n position: absolute; }\n .dreamview-canvas .geolocation {\n z-index: 10;\n position: absolute;\n bottom: 10px;\n right: 10px;\n color: white; }\n\n.hidden {\n display: none; }\n\n.tools {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 1 1 auto;\n overflow: hidden;\n border-top: 1px solid #000000;\n background: #000000; }\n .tools .card {\n flex: 1 1 auto;\n margin-right: 1px;\n padding: 15px 10px 25px 20px;\n background: #1D2226; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .card {\n padding: 15px 5px 15px 15px; } }\n .tools .card .card-header {\n width: 100%;\n padding-bottom: 15px; }\n .tools .card .card-header span {\n width: 200px;\n border-bottom: 1px solid #999999;\n padding: 10px 10px 10px 0px;\n font-size: 18px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .card .card-header span {\n font-size: 16px; } }\n .tools .card .card-content-row {\n display: flex;\n flex-flow: row wrap;\n align-content: flex-start;\n overflow-x: hidden;\n overflow-y: auto;\n height: 85%; }\n .tools .card .card-content-column {\n display: flex;\n flex-flow: column nowrap;\n justify-content: flex-start;\n overflow-x: hidden;\n overflow-y: auto;\n height: 89%; }\n .tools .tool-view-menu {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 2 1 auto;\n z-index: 10 !important;\n margin-left: 1px;\n overflow-y: hidden;\n overflow-x: auto;\n background: #000000;\n color: #FFFFFF;\n text-align: left;\n white-space: nowrap;\n /* Radio button */ }\n .tools .tool-view-menu .summary {\n line-height: 50px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .tool-view-menu .summary {\n line-height: 25px; } }\n .tools .tool-view-menu .summary img {\n position: relative;\n width: 30px;\n height: 30px;\n transform: translate(-30%, 25%); }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .tool-view-menu .summary img {\n width: 20px;\n height: 20px;\n transform: translate(-50%, 10%); } }\n .tools .tool-view-menu .summary span {\n padding-left: 10px; }\n .tools .tool-view-menu input[type="radio"] {\n display: none; }\n .tools .tool-view-menu .radio-selector-label {\n display: inline-block;\n position: relative;\n transform: translate(10%, 30%);\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n width: 25px;\n height: 25px;\n margin-right: 6px;\n border-radius: 50%;\n -webkit-border-radius: 50%;\n background-color: #A0A0A0;\n box-shadow: inset 1px 0 #A0A0A0;\n border: 7px solid #3F4548; }\n .tools .tool-view-menu input[type="radio"]:checked + .radio-selector-label {\n border: 7px solid #0E3D62;\n background-color: #30A5FF; }\n .tools .console {\n z-index: 10;\n position: relative;\n min-width: 230px;\n margin: 0px;\n border: none;\n padding: 0px;\n overflow: hidden; }\n .tools .console .monitor-item {\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default; }\n .tools .console .monitor-item .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .console .monitor-item .icon {\n height: 15px;\n width: 15px; } }\n .tools .console .monitor-item .text {\n position: relative;\n width: calc(100% - 82px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .console .monitor-item .text {\n font-size: 12px; } }\n .tools .console .monitor-item .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .tools .console .monitor-item .alert {\n color: #D7466F; }\n .tools .console .monitor-item .warn {\n color: #A3842D; }\n .tools .poi-button {\n min-width: 360px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .poi-button {\n min-width: 320px; } }\n\n.side-bar {\n display: flex;\n flex-direction: column;\n flex: 0 0 auto;\n z-index: 100;\n background: #1D2226;\n border-right: 1px solid #000000;\n overflow-y: auto;\n overflow-x: hidden; }\n .side-bar .main-panel {\n margin-bottom: auto; }\n .side-bar .button {\n display: block;\n width: 90px;\n border: none;\n padding: 20px 10px;\n text-align: center;\n background: #1D2226;\n color: #FFFFFF;\n opacity: 0.6;\n cursor: pointer; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button {\n width: 80px;\n padding-top: 10px; } }\n .side-bar .button .icon {\n width: 40px;\n height: 40px;\n margin: auto; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button .icon {\n width: 30px;\n height: 30px; } }\n .side-bar .button .label {\n padding-top: 10px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button .label {\n padding-top: 4px; } }\n .side-bar .button:first-child {\n padding-top: 25px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button:first-child {\n padding-top: 10px; } }\n .side-bar .button:disabled {\n color: #414141;\n cursor: not-allowed; }\n .side-bar .button:disabled .icon {\n opacity: 0.2; }\n .side-bar .button-active {\n background: #2A3238;\n opacity: 1;\n color: #FFFFFF; }\n .side-bar .sub-button {\n display: block;\n width: 90px;\n height: 80px;\n border: none;\n padding: 10px;\n text-align: center;\n background: #3E4041;\n color: #999999;\n cursor: pointer; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .sub-button {\n width: 80px;\n height: 60px; } }\n .side-bar .sub-button:not(:last-child) {\n border-bottom: 1px solid #1D2226; }\n .side-bar .sub-button:disabled {\n cursor: not-allowed;\n opacity: 0.3; }\n .side-bar .sub-button-active {\n background: #30A5FF;\n color: #FFFFFF; }\n\n.status-bar {\n z-index: 10;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%; }\n .status-bar .rss {\n flex: 1 1 auto;\n position: absolute;\n width: 240px;\n height: 270px;\n top: 10px;\n right: 250px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .rss .rss-header {\n width: 100%;\n text-align: center;\n font-size: 15px; }\n .status-bar .rss .rss-header div {\n padding: 5px 0 5px 0; }\n .status-bar .rss .rss-content-column {\n flex-flow: column nowrap;\n overflow-x: hidden;\n overflow-y: auto;\n height: 89%; }\n .status-bar .rss .rss-console {\n z-index: 10;\n position: relative;\n min-width: 230px;\n margin: 0px;\n border: none;\n padding: 0px;\n overflow: hidden;\n white-space: pre-wrap; }\n .status-bar .rss .rss-console .monitor-item {\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default; }\n .status-bar .rss .rss-console .monitor-item .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .rss .rss-console .monitor-item .icon {\n height: 15px;\n width: 15px; } }\n .status-bar .rss .rss-console .monitor-item .text {\n position: relative;\n width: calc(100% - 80px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .rss .rss-console .monitor-item .text {\n font-size: 12px; } }\n .status-bar .rss .rss-console .monitor-item .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .status-bar .rss .rss-console .monitor-item .alert {\n color: #D7466F; }\n .status-bar .rss .rss-console .monitor-item .warn {\n color: #A3842D; }\n .status-bar .auto-meter {\n position: absolute;\n width: 224px;\n height: 112px;\n top: 10px;\n right: 20px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .auto-meter .speed-read {\n position: absolute;\n top: 27px;\n left: 15px;\n font-family: Arial;\n font-weight: lighter;\n font-size: 35px;\n color: #ffffff; }\n .status-bar .auto-meter .speed-unit {\n position: absolute;\n top: 66px;\n left: 17px;\n color: #ffffff;\n font-size: 15px; }\n .status-bar .auto-meter .brake-panel {\n position: absolute;\n top: 21px;\n right: 2px; }\n .status-bar .auto-meter .throttle-panel {\n position: absolute;\n top: 61px;\n right: 2px; }\n .status-bar .auto-meter .meter-container .meter-label {\n font-size: 13px;\n color: #ffffff; }\n .status-bar .auto-meter .meter-container .meter-label .meter-value {\n position: absolute;\n top: 2px;\n right: 10px;\n font-size: 10px; }\n .status-bar .auto-meter .meter-container .meter-head {\n display: inline-block;\n position: absolute;\n margin: 5px 0px 0px 0px;\n border-width: 4px;\n border-style: solid; }\n .status-bar .auto-meter .meter-container .meter-background {\n position: relative;\n display: block;\n height: 2px;\n width: 120px;\n margin: 8px; }\n .status-bar .auto-meter .meter-container .meter-background span {\n position: relative;\n overflow: hidden;\n display: block;\n height: 100%; }\n .status-bar .wheel-panel {\n display: flex;\n flex-direction: row;\n justify-content: left;\n align-items: center;\n position: absolute;\n top: 128px;\n right: 20px;\n width: 187px;\n height: 92px;\n padding: 10px 22px 10px 15px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .wheel-panel .steerangle-read {\n font-family: Arial;\n font-weight: lighter;\n font-size: 35px;\n color: #ffffff; }\n .status-bar .wheel-panel .steerangle-unit {\n padding: 20px 10px 0px 3px;\n color: #ffffff;\n font-size: 13px; }\n .status-bar .wheel-panel .left-arrow {\n position: absolute;\n top: 45px;\n right: 115px;\n width: 0px;\n height: 0px;\n border-style: solid;\n border-width: 12px 15px 12px 0px;\n border-color: transparent; }\n .status-bar .wheel-panel .right-arrow {\n position: absolute;\n top: 45px;\n right: 15px;\n width: 0px;\n height: 0px;\n border-style: solid;\n border-width: 12px 0 12px 15px;\n border-color: transparent transparent transparent #30435e; }\n .status-bar .wheel-panel .wheel {\n position: absolute;\n top: 15px;\n right: 33px; }\n .status-bar .wheel-panel .wheel-background {\n stroke-width: 3px;\n stroke: #006AFF; }\n .status-bar .wheel-panel .wheel-arm {\n stroke-width: 3px;\n stroke: #006AFF;\n fill: #006AFF; }\n .status-bar .traffic-light-and-driving-mode {\n position: absolute;\n top: 246px;\n right: 20px;\n width: 224px;\n height: 35px;\n font-size: 14px; }\n .status-bar .traffic-light-and-driving-mode .traffic-light {\n position: absolute;\n width: 116px;\n height: 35px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .traffic-light-and-driving-mode .traffic-light .symbol {\n position: relative;\n top: 4px;\n left: 4px;\n width: 28px;\n height: 28px; }\n .status-bar .traffic-light-and-driving-mode .traffic-light .text {\n position: absolute;\n top: 10px;\n right: 8px;\n font-size: 14px;\n color: #FFFFFF; }\n .status-bar .traffic-light-and-driving-mode .driving-mode {\n position: absolute;\n top: 0px;\n right: 0px;\n width: 105px;\n height: 35px; }\n .status-bar .traffic-light-and-driving-mode .driving-mode .text {\n position: absolute;\n top: 50%;\n left: 50%;\n float: right;\n transform: translate(-50%, -50%);\n text-align: center;\n font-size: 14px; }\n .status-bar .traffic-light-and-driving-mode .auto-mode {\n background: linear-gradient(to right, rgba(17, 30, 48, 0.8), rgba(7, 42, 94, 0.8));\n border-right: 1px solid #006AFF;\n color: #006AFF; }\n .status-bar .traffic-light-and-driving-mode .manual-mode {\n background: linear-gradient(to right, rgba(30, 17, 17, 0.8), rgba(71, 36, 36, 0.8));\n color: #B43131;\n border-right: 1px solid #B43131; }\n .status-bar .notification-warn {\n position: absolute;\n top: 10px;\n right: 260px;\n width: 260px;\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default;\n border: 1px solid #A3842D;\n background-color: rgba(52, 39, 5, 0.3); }\n .status-bar .notification-warn .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-warn .icon {\n height: 15px;\n width: 15px; } }\n .status-bar .notification-warn .text {\n position: relative;\n width: calc(100% - 17px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-warn .text {\n font-size: 12px; } }\n .status-bar .notification-warn .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .status-bar .notification-warn .alert {\n color: #D7466F; }\n .status-bar .notification-warn .warn {\n color: #A3842D; }\n .status-bar .notification-alert {\n position: absolute;\n top: 10px;\n right: 260px;\n width: 260px;\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default;\n border: 1px solid #D7466F;\n background-color: rgba(74, 5, 24, 0.3); }\n .status-bar .notification-alert .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-alert .icon {\n height: 15px;\n width: 15px; } }\n .status-bar .notification-alert .text {\n position: relative;\n width: calc(100% - 17px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-alert .text {\n font-size: 12px; } }\n .status-bar .notification-alert .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .status-bar .notification-alert .alert {\n color: #D7466F; }\n .status-bar .notification-alert .warn {\n color: #A3842D; }\n\n.tasks {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 1 1 auto;\n z-index: 10;\n overflow-x: auto;\n overflow-y: hidden; }\n .tasks .command-group {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n flex: 1 1 0;\n min-height: 45px;\n min-width: 130px; }\n .tasks .command-group .name {\n width: 40px;\n padding: 15px; }\n .tasks .start-auto-command {\n flex: 2 2 0; }\n .tasks .start-auto-command .start-auto-button {\n max-height: unset; }\n .tasks .others {\n min-width: 245px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tasks .others {\n min-width: 225px; } }\n .tasks .others .others-checkbox {\n margin-left: 10px; }\n .tasks .delay {\n min-width: 260px;\n line-height: 26px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tasks .delay {\n min-width: 230px; } }\n .tasks .delay .delay-item {\n position: relative;\n margin: 0px 10px; }\n .tasks .delay .delay-item .name {\n display: inline-block;\n min-width: 140px;\n color: #1C9063; }\n .tasks .delay .delay-item .value {\n display: inline-block;\n position: absolute;\n right: 0px;\n min-width: 70px;\n text-align: right; }\n .tasks .delay .delay-item .warning {\n color: #b43131; }\n .tasks .camera {\n min-width: 265px; }\n .tasks .disabled {\n cursor: not-allowed; }\n\n.module-controller {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 1 1 auto;\n z-index: 10;\n overflow: hidden; }\n .module-controller .controller {\n min-width: 180px; }\n .module-controller .modules-container {\n flex-flow: column wrap; }\n .module-controller .status-display {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-around;\n min-width: 250px;\n padding: 5px 20px 5px 5px; }\n .module-controller .status-display:hover {\n background: #2A3238; }\n .module-controller .status-display .name {\n padding: 10px;\n min-width: 80px; }\n .module-controller .status-display .status {\n position: relative;\n width: 130px;\n padding: 10px;\n background: #000000;\n white-space: nowrap; }\n .module-controller .status-display .status .status-icon {\n position: absolute;\n right: 10px;\n width: 15px;\n height: 15px;\n background-color: #B43131; }\n\n.route-editing-bar {\n z-index: 10;\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n min-height: 90px;\n border-bottom: 3px solid #000000;\n padding-left: 10px;\n background: #1D2226; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar {\n min-height: 60px; } }\n .route-editing-bar .editing-panel {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n white-space: nowrap; }\n .route-editing-bar .editing-panel .button {\n height: 90px;\n border: none;\n padding: 10px 15px;\n background: #1D2226;\n outline: none;\n color: #999999; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .button {\n height: 60px;\n padding: 5px 10px; } }\n .route-editing-bar .editing-panel .button img {\n display: block;\n top: 23px;\n margin: 15px auto; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .button img {\n top: 13px;\n margin: 7px auto; } }\n .route-editing-bar .editing-panel .button span {\n font-family: PingFangSC-Light;\n color: #D8D8D8;\n text-align: center; }\n .route-editing-bar .editing-panel .button:hover {\n background: #2A3238; }\n .route-editing-bar .editing-panel .active {\n color: #FFFFFF;\n background: #2A3238; }\n .route-editing-bar .editing-panel .editing-tip {\n height: 90px;\n width: 90px;\n margin-left: auto;\n border: none;\n color: #D8D8D8; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .editing-tip {\n height: 60px;\n width: 60px; } }\n .route-editing-bar .editing-panel .editing-tip .tip-popup {\n position: absolute;\n top: 120%;\n right: 15px;\n width: 400px;\n border-radius: 3px;\n padding: 20px;\n background-color: #FFFFFF;\n color: #555555;\n text-align: left;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .editing-tip .tip-popup {\n right: 5px; } }\n .route-editing-bar .editing-panel .editing-tip .tip-popup .title {\n padding-bottom: 10px;\n font-size: 16px;\n font-weight: bold; }\n .route-editing-bar .editing-panel .editing-tip .tip-popup table {\n border-collapse: collapse; }\n .route-editing-bar .editing-panel .editing-tip .tip-popup table th, .route-editing-bar .editing-panel .editing-tip .tip-popup table td {\n border: 1px solid #D9D9D9;\n padding: 10px; }\n .route-editing-bar .editing-panel .editing-tip .tip-popup table th {\n text-align: center; }\n\n.data-recorder {\n z-index: 10; }\n .data-recorder table {\n width: 100%;\n height: 100%;\n min-width: 550px; }\n .data-recorder table tr, .data-recorder table td {\n border: 2px solid #1D2226; }\n .data-recorder table td:first-child {\n width: 100px;\n border: none;\n box-sizing: border-box;\n white-space: nowrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .data-recorder table td:first-child {\n width: 75px; } }\n .data-recorder table .drive-event-row .event-time {\n position: relative;\n padding: 10px 5px 10px 10px;\n background: #101315;\n white-space: nowrap; }\n .data-recorder table .drive-event-row .event-time .timestamp-button {\n position: relative;\n top: 0px;\n right: 0px;\n padding: 5px 20px;\n border: 5px solid #101315;\n margin-left: 10px;\n background: #006AFF;\n color: #FFFFFF; }\n .data-recorder table .drive-event-row .event-time .timestamp-button:hover {\n background: #49a9ee; }\n .data-recorder table .drive-event-msg-row {\n width: 70%;\n height: 70%; }\n .data-recorder table .drive-event-msg-row textarea {\n height: 100%;\n width: 100%;\n max-width: 500px;\n color: #FFFFFF;\n border: 1px solid #383838;\n background: #101315;\n resize: none; }\n .data-recorder table .drive-event-type-button, .data-recorder table .cancel-button, .data-recorder table .submit-button, .data-recorder table .submit-button:active {\n margin-right: 5px;\n padding: 10px 35px;\n border: none;\n background: #1D2226;\n color: #FFFFFF;\n cursor: pointer; }\n .data-recorder table .drive-event-type-button {\n background: #181818;\n padding: 10px 25px; }\n .data-recorder table .drive-event-type-button-active {\n color: #30A5FF; }\n .data-recorder table .submit-button {\n background: #000000; }\n .data-recorder table .submit-button:active {\n background: #383838; }\n .data-recorder table .multiple-items {\n display: flex;\n justify-content: flex-start;\n justify-content: space-between;\n padding: 0px;\n border: none;\n background: #1D2226; }\n\n.loader {\n flex: 0 0 auto;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: #000C17; }\n .loader .img-container {\n position: relative;\n top: 55%;\n left: 50%;\n width: 40%;\n transform: translate(-50%, -50%); }\n .loader .img-container img {\n width: 100%;\n height: auto; }\n .loader .img-container .status-message {\n margin-top: 10px;\n font-size: 18px;\n /* fallback */\n font-size: 1.7vw;\n color: #FFFFFF;\n text-align: center;\n animation-name: flash;\n animation-duration: 2s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n animation-direction: alternate;\n animation-play-state: running; }\n\n@keyframes flash {\n from {\n color: #FFFFFF; }\n to {\n color: #000C17; } }\n .loader .offline-loader {\n width: 60%;\n max-width: 650px; }\n .loader .offline-loader .status-message {\n position: relative;\n top: -70px;\n /* fallback */\n top: -4.5vw;\n font-size: 3vw; }\n .loader .offline-loader .error-message {\n position: relative;\n top: -2vw;\n font-size: 1.5vw;\n color: #B43131;\n white-space: nowrap;\n text-align: center; }\n\n.camera-video {\n text-align: center; }\n .camera-video img {\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%; }\n\n.dashcam-player {\n z-index: 1;\n position: absolute;\n top: 0px;\n left: 0px;\n color: white; }\n .dashcam-player video {\n max-width: 380px;\n max-height: 300px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .dashcam-player video {\n max-width: 300px;\n max-height: 200px; } }\n .dashcam-player .controls {\n display: flex;\n justify-content: flex-end;\n z-index: 10;\n position: absolute;\n right: 0px; }\n .dashcam-player .controls button {\n width: 27px;\n height: 27px;\n border: none;\n background-color: #000000;\n opacity: 0.6;\n color: #FFFFFF; }\n .dashcam-player .controls button img {\n width: 15px; }\n .dashcam-player .controls button:hover {\n opacity: 0.9; }\n .dashcam-player .controls .close {\n font-size: 20px; }\n .dashcam-player .controls .syncup {\n padding-top: 0.5em; }\n\n.navigation-view {\n z-index: 20;\n position: relative; }\n .navigation-view #map_canvas {\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8); }\n .navigation-view .window-resize-control {\n position: absolute;\n bottom: 0px;\n right: 0px;\n width: 30px;\n height: 30px;\n cursor: pointer; }\n',""]),t.locals={MIN_MAIN_VIEW_WIDTH:"600",SIDE_BAR_WIDTH_SMALL:"80",SIDE_BAR_WIDTH_LARGE:"90",HEADER_HEIGHT_SMALL:"55",HEADER_HEIGHT_LARGE:"60"}},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,i=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var r,o=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(o)?e:(r=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:i+o.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")}))}},function(e,t,n){n(192);var i=n(9).Object;e.exports=function(e,t,n){return i.defineProperty(e,t,n)}},function(e,t,n){var i=n(13);i(i.S+i.F*!n(21),"Object",{defineProperty:n(24).f})},function(e,t,n){n(194);var i=n(9).Object;e.exports=function(e,t){return i.getOwnPropertyDescriptor(e,t)}},function(e,t,n){var i=n(34),r=n(79).f;n(63)("getOwnPropertyDescriptor",(function(){return function(e,t){return r(i(e),t)}}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r,o,a,s,l,u,c,d,h,p,f,m,g=O(n(15)),y=O(n(16)),v=O(n(80)),b=O(n(23)),_=O(n(26)),x=O(n(1)),w=O(n(2)),M=O(n(85)),S=n(8),E=O(n(20)),T=O(n(70)),C=O(n(29));function O(e){return e&&e.__esModule?e:{default:e}}function k(e,t,n,i){n&&(0,g.default)(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(i):void 0})}function P(e,t,n,i,r){var o={};return Object.keys(i).forEach((function(e){o[e]=i[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,i){return i(e,t,n)||n}),o),r&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(r):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}var A=(0,M.default)({CAR:"Car Teleop",CONSOLE:"Console Teleop"}),R=(i=function(){function e(){(0,x.default)(this,e),this.modes=[],k(this,"currentMode",r,this),this.vehicles=[],k(this,"currentVehicle",o,this),this.defaultVehicleSize={height:1.48,width:2.11,length:4.933},this.vehicleParam={frontEdgeToCenter:3.89,backEdgeToCenter:1.043,leftEdgeToCenter:1.055,rightEdgeToCenter:1.055,height:1.48,width:2.11,length:4.933,steerRatio:16,wheelBase:2.8448},this.maps=[],k(this,"currentMap",a,this),k(this,"moduleStatus",s,this),k(this,"componentStatus",l,this),k(this,"enableStartAuto",u,this),k(this,"dockerImage",c,this),k(this,"isCoDriver",d,this),k(this,"isMute",h,this),this.displayName={},this.utmZoneId=10,k(this,"isCalibrationMode",p,this),k(this,"dataCollectionUpdateStatus",f,this),k(this,"dataCollectionProgress",m,this)}return(0,w.default)(e,[{key:"toggleCoDriverFlag",value:function(){this.isCoDriver=!this.isCoDriver}},{key:"toggleMuteFlag",value:function(){this.isMute=!this.isMute,T.default.setMute(this.isMute)}},{key:"updateStatus",value:function(e){if(e.dockerImage&&(this.dockerImage=e.dockerImage),e.utmZoneId&&(this.utmZoneId=e.utmZoneId),e.modes&&(this.modes=e.modes.sort()),e.currentMode&&(this.isCalibrationMode=e.currentMode.toLowerCase().includes("calibration"),this.currentMode!==e.currentMode&&this.resetDataCollectionProgress(),this.currentMode=e.currentMode),e.maps&&(this.maps=e.maps.sort()),e.currentMap&&(this.currentMap=e.currentMap),e.vehicles&&(this.vehicles=e.vehicles.sort()),e.currentVehicle&&(this.isCalibrationMode&&this.currentVehicle!==e.currentVehicle&&this.resetDataCollectionProgress(),this.currentVehicle=e.currentVehicle),e.modules){var t=(0,_.default)((0,b.default)(e.modules).sort()),n=(0,_.default)(this.moduleStatus.keys().sort());for(var i in t!==n&&this.moduleStatus.clear(),e.modules)this.moduleStatus.set(i,e.modules[i])}if(e.monitoredComponents){var r=(0,_.default)((0,b.default)(e.monitoredComponents).sort()),o=(0,_.default)(this.componentStatus.keys().sort());for(var a in r!==o&&this.componentStatus.clear(),e.monitoredComponents)this.componentStatus.set(a,e.monitoredComponents[a])}"string"==typeof e.passengerMsg&&T.default.speakRepeatedly(e.passengerMsg)}},{key:"update",value:function(e){this.enableStartAuto="READY_TO_ENGAGE"===e.engageAdvice}},{key:"updateVehicleParam",value:function(e){this.vehicleParam=e,C.default.adc.resizeCarScale(this.vehicleParam.length/this.defaultVehicleSize.length,this.vehicleParam.width/this.defaultVehicleSize.width,this.vehicleParam.height/this.defaultVehicleSize.height)}},{key:"toggleModule",value:function(e){this.moduleStatus.set(e,!this.moduleStatus.get(e));var t=this.moduleStatus.get(e)?"START_MODULE":"STOP_MODULE";E.default.executeModuleCommand(e,t)}},{key:"resetDataCollectionProgress",value:function(){this.dataCollectionUpdateStatus.clear(),this.dataCollectionProgress.clear()}},{key:"updateDataCollectionProgress",value:function(e){var t=this;(0,b.default)(e).sort().forEach((function(n){t.dataCollectionProgress.has(n)||(t.dataCollectionProgress.set(n,S.observable.map()),t.dataCollectionUpdateStatus.set(n,S.observable.map()));var i=t.dataCollectionProgress.get(n),r=t.dataCollectionUpdateStatus.get(n),o=e[n];(0,b.default)(o).sort().forEach((function(e){var t=i.get(e)!==o[e];i.set(e,o[e]),r.set(e,t)}))}))}},{key:"rotate2DPoint",value:function(e,t){var n=e.x,i=e.y;return{x:n*Math.cos(t)-i*Math.sin(t),y:n*Math.sin(t)+i*Math.cos(t)}}},{key:"calculateCarPolygonPoints",value:function(e,t,n){var i=this,r=this.vehicleParam,o=[{y:-r.leftEdgeToCenter,x:r.frontEdgeToCenter},{y:r.rightEdgeToCenter,x:r.frontEdgeToCenter},{y:r.rightEdgeToCenter,x:-r.backEdgeToCenter},{y:-r.leftEdgeToCenter,x:-r.backEdgeToCenter},{y:-r.leftEdgeToCenter,x:r.frontEdgeToCenter}];return o.forEach((function(r){var o=i.rotate2DPoint(r,n);r.x=e+o.x,r.y=t+o.y})),o}},{key:"inNavigationMode",get:function(){return"Navigation"===this.currentMode}},{key:"inCarTeleopMode",get:function(){return this.currentMode===A.CAR}},{key:"inConsoleTeleopMode",get:function(){return this.currentMode===A.CONSOLE}},{key:"inTeleopMode",get:function(){return(0,v.default)(A).includes(this.currentMode)}},{key:"shouldDisplayNavigationMap",get:function(){return this.inNavigationMode||this.inTeleopMode}}]),e}(),r=P(i.prototype,"currentMode",[S.observable],{enumerable:!0,initializer:function(){return"none"}}),o=P(i.prototype,"currentVehicle",[S.observable],{enumerable:!0,initializer:function(){return"none"}}),a=P(i.prototype,"currentMap",[S.observable],{enumerable:!0,initializer:function(){return"none"}}),s=P(i.prototype,"moduleStatus",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),l=P(i.prototype,"componentStatus",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),u=P(i.prototype,"enableStartAuto",[S.observable],{enumerable:!0,initializer:function(){return!1}}),c=P(i.prototype,"dockerImage",[S.observable],{enumerable:!0,initializer:function(){return"unknown"}}),d=P(i.prototype,"isCoDriver",[S.observable],{enumerable:!0,initializer:function(){return!1}}),h=P(i.prototype,"isMute",[S.observable],{enumerable:!0,initializer:function(){return!1}}),p=P(i.prototype,"isCalibrationMode",[S.observable],{enumerable:!0,initializer:function(){return!1}}),f=P(i.prototype,"dataCollectionUpdateStatus",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),m=P(i.prototype,"dataCollectionProgress",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),P(i.prototype,"toggleCoDriverFlag",[S.action],(0,y.default)(i.prototype,"toggleCoDriverFlag"),i.prototype),P(i.prototype,"toggleMuteFlag",[S.action],(0,y.default)(i.prototype,"toggleMuteFlag"),i.prototype),P(i.prototype,"updateStatus",[S.action],(0,y.default)(i.prototype,"updateStatus"),i.prototype),P(i.prototype,"update",[S.action],(0,y.default)(i.prototype,"update"),i.prototype),P(i.prototype,"toggleModule",[S.action],(0,y.default)(i.prototype,"toggleModule"),i.prototype),P(i.prototype,"inNavigationMode",[S.computed],(0,y.default)(i.prototype,"inNavigationMode"),i.prototype),P(i.prototype,"inCarTeleopMode",[S.computed],(0,y.default)(i.prototype,"inCarTeleopMode"),i.prototype),P(i.prototype,"inConsoleTeleopMode",[S.computed],(0,y.default)(i.prototype,"inConsoleTeleopMode"),i.prototype),P(i.prototype,"inTeleopMode",[S.computed],(0,y.default)(i.prototype,"inTeleopMode"),i.prototype),P(i.prototype,"shouldDisplayNavigationMap",[S.computed],(0,y.default)(i.prototype,"shouldDisplayNavigationMap"),i.prototype),P(i.prototype,"resetDataCollectionProgress",[S.action],(0,y.default)(i.prototype,"resetDataCollectionProgress"),i.prototype),P(i.prototype,"updateDataCollectionProgress",[S.action],(0,y.default)(i.prototype,"updateDataCollectionProgress"),i.prototype),i);t.default=R},function(e,t,n){n(197),e.exports=n(9).Object.values},function(e,t,n){var i=n(13),r=n(113)(!1);i(i.S,"Object",{values:function(e){return r(e)}})},function(e,t,n){var i=n(34),r=n(64),o=n(199);e.exports=function(e){return function(t,n,a){var s,l=i(t),u=r(l.length),c=o(a,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var i=n(81),r=Math.max,o=Math.min;e.exports=function(e,t){return(e=i(e))<0?r(e+t,0):o(e,t)}},function(e,t,n){n(201),e.exports=n(9).Object.keys},function(e,t,n){var i=n(39),r=n(41);n(63)("keys",(function(){return function(e){return r(i(e))}}))},function(e,t,n){var i=n(9),r=i.JSON||(i.JSON={stringify:JSON.stringify});e.exports=function(e){return r.stringify.apply(r,arguments)}},function(e,t,n){n(204),e.exports=n(9).Object.freeze},function(e,t,n){var i=n(22),r=n(66).onFreeze;n(63)("freeze",(function(e){return function(t){return e&&i(t)?e(r(t)):t}}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=l(n(26)),r=l(n(1)),o=l(n(2)),a=l(n(12)),s=l(n(29));function l(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(t){(0,r.default)(this,e),this.serverAddr=t,this.websocket=null,this.lastUpdateTimestamp=0,this.lastSeqNum=-1,this.requestTimer=null,this.processTimer=null,this.frameData={},this.routingTime2Path={}}return(0,o.default)(e,[{key:"initialize",value:function(e){var t=this;if(!(e&&e.id&&e.map))return console.error("ERROR: missing required parameter(s)"),void a.default.setOfflineViewErrorMsg("Missing required parameter(s).");a.default.playback.setRecordId(e.id),a.default.playback.setMapId(e.map),e.url&&(this.serverUrl=location.protocol+"//"+e.url);try{this.websocket=new WebSocket(this.serverAddr)}catch(n){return console.error("Failed to establish a connection: "+n),void setTimeout((function(){t.initialize(e)}),1e3)}this.websocket.onopen=function(e){t.requestGroundMeta(a.default.playback.mapId)},this.websocket.onmessage=function(e){var n=JSON.parse(e.data);if(n.load_error)a.default.setOfflineViewErrorMsg(n.load_error);else switch(n.type){case"GroundMetadata":s.default.updateGroundMetadata(n.data),t.requestFrameCount(a.default.playback.recordId);break;case"FrameCount":a.default.playback.setNumFrames(n.data),a.default.playback.hasNext()&&t.requestSimulationWorld(a.default.playback.recordId,a.default.playback.next());break;case"RoutePath":t.routingTime2Path[n.routingTime]=n.routePath;break;case"SimWorldUpdate":t.checkMessage(n),a.default.setInitializationStatus(!0);var i="string"==typeof n.world?JSON.parse(n.world):n.world;i.routePath?t.routingTime2Path[i.routingTime]=i.routePath:i.routingTime in t.routingTime2Path||t.requestRoutePath(a.default.playback.recordId,i.sequenceNum),a.default.playback.isSeeking&&t.processSimWorld(i),!i.sequenceNum||i.sequenceNum in t.frameData||(t.frameData[i.sequenceNum]=i,a.default.playback.setLoadingMarker(i.sequenceNum))}},this.websocket.onclose=function(n){console.log("WebSocket connection closed, close_code: "+n.code),t.initialize(e)}}},{key:"checkMessage",value:function(e){0!==this.lastUpdateTimestamp&&e.timestamp-this.lastUpdateTimestamp>150&&console.log("Last sim_world_update took "+(e.timestamp-this.lastUpdateTimestamp)+"ms"),this.lastUpdateTimestamp=e.timestamp,-1!==this.lastSeqNum&&e.world.sequenceNum>this.lastSeqNum+1&&console.debug("Last seq: "+this.lastSeqNum+". New seq: "+e.world.sequenceNum+"."),this.lastSeqNum=e.world.sequenceNum}},{key:"startPlayback",value:function(e){var t=this;clearInterval(this.requestTimer),this.requestTimer=setInterval((function(){if(t.websocket.readyState===t.websocket.OPEN&&a.default.playback.initialized()){if(!a.default.playback.hasNext())return clearInterval(t.requestTimer),void(t.requestTimer=null);t.requestSimulationWorld(a.default.playback.recordId,a.default.playback.next())}}),e/2),clearInterval(this.processTimer),this.processTimer=setInterval((function(){if(a.default.playback.initialized()){var e=a.default.playback.seekingFrame;e in t.frameData&&t.processSimWorld(t.frameData[e]),a.default.playback.replayComplete&&(clearInterval(t.processTimer),t.processTimer=null)}}),e)}},{key:"pausePlayback",value:function(){clearInterval(this.requestTimer),clearInterval(this.processTimer),this.requestTimer=null,this.processTimer=null}},{key:"requestGroundMeta",value:function(e){this.websocket.send((0,i.default)({type:"RetrieveGroundMeta",mapId:e}))}},{key:"processSimWorld",value:function(e){a.default.playback.shouldProcessFrame(e)&&(e.routePath||(e.routePath=this.routingTime2Path[e.routingTime]),a.default.updateTimestamp(e.timestamp),s.default.maybeInitializeOffest(e.autoDrivingCar.positionX,e.autoDrivingCar.positionY),s.default.updateWorld(e),a.default.meters.update(e),a.default.monitor.update(e),a.default.trafficSignal.update(e))}},{key:"requestFrameCount",value:function(e){this.websocket.send((0,i.default)({type:"RetrieveFrameCount",recordId:e}))}},{key:"requestSimulationWorld",value:function(e,t){if(t in this.frameData){a.default.playback.isSeeking&&this.processSimWorld(this.frameData[t]);for(var n=t;n in this.frameData;)n++;a.default.playback.setLoadingMarker(n-1)}else this.websocket.send((0,i.default)({type:"RequestSimulationWorld",recordId:e,frameId:t}))}},{key:"requestRoutePath",value:function(e,t){this.websocket.send((0,i.default)({type:"requestRoutePath",recordId:e,frameId:t}))}}]),e}();t.default=u},function(e,t,n){var i;e.exports=((i=function(){function e(e){return r.appendChild(e.dom),e}function t(e){for(var t=0;ta+1e3&&(l.update(1e3*s/(e-a),100),a=e,s=0,c)){var t=performance.memory;c.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){o=this.end()},domElement:r,setMode:t}}).Panel=function(e,t,n){var i=1/0,r=0,o=Math.round,a=o(window.devicePixelRatio||1),s=80*a,l=48*a,u=3*a,c=2*a,d=3*a,h=15*a,p=74*a,f=30*a,m=document.createElement("canvas");m.width=s,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=n,g.fillRect(0,0,s,l),g.fillStyle=t,g.fillText(e,u,c),g.fillRect(d,h,p,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d,h,p,f),{dom:m,update:function(l,y){i=Math.min(i,l),r=Math.max(r,l),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,s,h),g.fillStyle=t,g.fillText(o(l)+" "+e+" ("+o(i)+"-"+o(r)+")",u,c),g.drawImage(m,d+a,h,p-a,f,d,h,p-a,f),g.fillRect(d+p-a,h,a,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d+p-a,h,a,o((1-l/y)*f))}}},i)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(1)),r=a(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,i.default)(this,e),this.systemName="ENU",this.offset=null}return(0,r.default)(e,[{key:"isInitialized",value:function(){return null!==this.offset}},{key:"initialize",value:function(e,t){this.offset={x:e,y:t},console.log("Offset is set to x:"+e+", y:"+t)}},{key:"setSystem",value:function(e){this.systemName=e}},{key:"applyOffset",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return null===this.offset?(console.error("Offset is not set."),null):isNaN(this.offset.x)||isNaN(this.offset.y)?(console.error("Offset contains NaN!"),null):isNaN(e.x)||isNaN(e.y)?(console.warn("Point contains NaN!"),null):isNaN(e.z)?new o.Vector2(t?e.x+this.offset.x:e.x-this.offset.x,t?e.y+this.offset.y:e.y-this.offset.y):new o.Vector3(t?e.x+this.offset.x:e.x-this.offset.x,t?e.y+this.offset.y:e.y-this.offset.y,e.z)}},{key:"applyOffsetToArray",value:function(e){var t=this;return e.map((function(e){return t.applyOffset(e)}))}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=d(n(1)),r=d(n(2)),o=d(n(12)),a=d(n(209)),s=d(n(210)),l=d(n(211)),u=n(53),c=n(27);function d(e){return e&&e.__esModule?e:{default:e}}var h={adc:{menuOptionName:"showPositionLocalization",carMaterial:a.default},planningAdc:{menuOptionName:"showPlanningCar",carMaterial:null},shadowAdc:{menuOptionName:"showPositionShadow",carMaterial:null}},p=(0,c.drawImage)(l.default,1.5,1.5),f=1,m=1,g=2.6,y=function(){function e(t,n){var r=this;(0,i.default)(this,e),this.mesh=null,this.name=t,this.rssUnsafeMarker=p,this.rssUnsafeMarker.visible=!1,n.add(this.rssUnsafeMarker);var o=h[t];o?(0,u.loadObject)(o.carMaterial,s.default,{x:1,y:1,z:1},(function(e){r.mesh=e,r.mesh.rotation.x=Math.PI/2,r.mesh.visible=!1,n.add(r.mesh)})):console.error("Car properties not found for car:",t)}return(0,r.default)(e,[{key:"update",value:function(e,t){if(this.mesh&&t&&_.isNumber(t.positionX)&&_.isNumber(t.positionY)){var n=h[this.name].menuOptionName;this.mesh.visible=o.default.options[n];var i=e.applyOffset({x:t.positionX,y:t.positionY});null!==i&&(this.mesh.position.set(i.x,i.y,0),this.mesh.rotation.y=t.heading)}}},{key:"updateRssMarker",value:function(e){this.rssUnsafeMarker.visible=!1,!1===e&&o.default.options.showPlanningRSSInfo&&(this.rssUnsafeMarker.position.set(this.mesh.position.x+f,this.mesh.position.y+m,this.mesh.position.z+g),this.rssUnsafeMarker.rotation.set(Math.PI/2,this.mesh.rotation.y-Math.PI/2,0),this.rssUnsafeMarker.visible=!0)}},{key:"resizeCarScale",value:function(e,t,n){this.mesh&&this.mesh.scale.set(e,t,n)}}]),e}();t.default=y},function(e,t,n){e.exports=n.p+"2cff479783c9bacb71df63a81871313d.mtl"},function(e,t,n){e.exports=n.p+"0ccca57f7e42eacf63e554cdd686cc6c.obj"},function(e,t,n){e.exports=n.p+"assets/ZSv_1P70vp1bcCv5_ZhgH.png"},function(e,t,n){e.exports={default:n(213),__esModule:!0}},function(e,t,n){n(86),n(42),n(55),n(218),n(222),n(223),e.exports=n(9).Promise},function(e,t,n){var i=n(81),r=n(78);e.exports=function(e){return function(t,n){var o,a,s=String(r(t)),l=i(n),u=s.length;return l<0||l>=u?e?"":void 0:(o=s.charCodeAt(l))<55296||o>56319||l+1===u||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536}}},function(e,t,n){"use strict";var i=n(67),r=n(49),o=n(54),a={};n(33)(a,n(19)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=i(a,{next:r(1,n)}),o(e,t+" Iterator")}},function(e,t,n){"use strict";var i=n(217),r=n(119),o=n(43),a=n(34);e.exports=n(87)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(e,t){e.exports=function(){}},function(e,t,n){"use strict";var i,r,o,a,s=n(52),l=n(18),u=n(28),c=n(68),d=n(13),h=n(22),p=n(48),f=n(88),m=n(56),g=n(122),y=n(123).set,v=n(220)(),b=n(90),_=n(124),x=n(221),w=n(125),M=l.TypeError,S=l.process,E=S&&S.versions,T=E&&E.v8||"",C=l.Promise,O="process"==c(S),k=function(){},P=r=b.f,A=!!function(){try{var e=C.resolve(1),t=(e.constructor={})[n(19)("species")]=function(e){e(k,k)};return(O||"function"==typeof PromiseRejectionEvent)&&e.then(k)instanceof t&&0!==T.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(e){}}(),R=function(e){var t;return!(!h(e)||"function"!=typeof(t=e.then))&&t},L=function(e,t){if(!e._n){e._n=!0;var n=e._c;v((function(){for(var i=e._v,r=1==e._s,o=0,a=function(t){var n,o,a,s=r?t.ok:t.fail,l=t.resolve,u=t.reject,c=t.domain;try{s?(r||(2==e._h&&N(e),e._h=1),!0===s?n=i:(c&&c.enter(),n=s(i),c&&(c.exit(),a=!0)),n===t.promise?u(M("Promise-chain cycle")):(o=R(n))?o.call(n,l,u):l(n)):u(i)}catch(e){c&&!a&&c.exit(),u(e)}};n.length>o;)a(n[o++]);e._c=[],e._n=!1,t&&!e._h&&I(e)}))}},I=function(e){y.call(l,(function(){var t,n,i,r=e._v,o=D(e);if(o&&(t=_((function(){O?S.emit("unhandledRejection",r,e):(n=l.onunhandledrejection)?n({promise:e,reason:r}):(i=l.console)&&i.error&&i.error("Unhandled promise rejection",r)})),e._h=O||D(e)?2:1),e._a=void 0,o&&t.e)throw t.v}))},D=function(e){return 1!==e._h&&0===(e._a||e._c).length},N=function(e){y.call(l,(function(){var t;O?S.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})}))},F=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),L(t,!0))},z=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw M("Promise can't be resolved itself");(t=R(e))?v((function(){var i={_w:n,_d:!1};try{t.call(e,u(z,i,1),u(F,i,1))}catch(e){F.call(i,e)}})):(n._v=e,n._s=1,L(n,!1))}catch(e){F.call({_w:n,_d:!1},e)}}};A||(C=function(e){f(this,C,"Promise","_h"),p(e),i.call(this);try{e(u(z,this,1),u(F,this,1))}catch(e){F.call(this,e)}},(i=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(91)(C.prototype,{then:function(e,t){var n=P(g(this,C));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=O?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&L(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new i;this.promise=e,this.resolve=u(z,e,1),this.reject=u(F,e,1)},b.f=P=function(e){return e===C||e===a?new o(e):r(e)}),d(d.G+d.W+d.F*!A,{Promise:C}),n(54)(C,"Promise"),n(126)("Promise"),a=n(9).Promise,d(d.S+d.F*!A,"Promise",{reject:function(e){var t=P(this);return(0,t.reject)(e),t.promise}}),d(d.S+d.F*(s||!A),"Promise",{resolve:function(e){return w(s&&this===a?C:this,e)}}),d(d.S+d.F*!(A&&n(127)((function(e){C.all(e).catch(k)}))),"Promise",{all:function(e){var t=this,n=P(t),i=n.resolve,r=n.reject,o=_((function(){var n=[],o=0,a=1;m(e,!1,(function(e){var s=o++,l=!1;n.push(void 0),a++,t.resolve(e).then((function(e){l||(l=!0,n[s]=e,--a||i(n))}),r)})),--a||i(n)}));return o.e&&r(o.v),n.promise},race:function(e){var t=this,n=P(t),i=n.reject,r=_((function(){m(e,!1,(function(e){t.resolve(e).then(n.resolve,i)}))}));return r.e&&i(r.v),n.promise}})},function(e,t){e.exports=function(e,t,n){var i=void 0===n;switch(t.length){case 0:return i?e():e.call(n);case 1:return i?e(t[0]):e.call(n,t[0]);case 2:return i?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return i?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return i?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var i=n(18),r=n(123).set,o=i.MutationObserver||i.WebKitMutationObserver,a=i.process,s=i.Promise,l="process"==n(50)(a);e.exports=function(){var e,t,n,u=function(){var i,r;for(l&&(i=a.domain)&&i.exit();e;){r=e.fn,e=e.next;try{r()}catch(i){throw e?n():t=void 0,i}}t=void 0,i&&i.enter()};if(l)n=function(){a.nextTick(u)};else if(!o||i.navigator&&i.navigator.standalone)if(s&&s.resolve){var c=s.resolve(void 0);n=function(){c.then(u)}}else n=function(){r.call(i,u)};else{var d=!0,h=document.createTextNode("");new o(u).observe(h,{characterData:!0}),n=function(){h.data=d=!d}}return function(i){var r={fn:i,next:void 0};t&&(t.next=r),e||(e=r,n()),t=r}}},function(e,t,n){var i=n(18).navigator;e.exports=i&&i.userAgent||""},function(e,t,n){"use strict";var i=n(13),r=n(9),o=n(18),a=n(122),s=n(125);i(i.P+i.R,"Promise",{finally:function(e){var t=a(this,r.Promise||o.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then((function(){return n}))}:e,n?function(n){return s(t,e()).then((function(){throw n}))}:e)}})},function(e,t,n){"use strict";var i=n(13),r=n(90),o=n(124);i(i.S,"Promise",{try:function(e){var t=r.f(this),n=o(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){var i=n(11);i.OBJLoader=function(e){this.manager=void 0!==e?e:i.DefaultLoadingManager,this.materials=null,this.regexp={vertex_pattern:/^v\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,normal_pattern:/^vn\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,uv_pattern:/^vt\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,face_vertex:/^f\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)(?:\s+(-?\d+))?/,face_vertex_uv:/^f\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+))?/,face_vertex_uv_normal:/^f\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+)\/(-?\d+))?/,face_vertex_normal:/^f\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)(?:\s+(-?\d+)\/\/(-?\d+))?/,object_pattern:/^[og]\s*(.+)?/,smoothing_pattern:/^s\s+(\d+|on|off)/,material_library_pattern:/^mtllib /,material_use_pattern:/^usemtl /}},i.OBJLoader.prototype={constructor:i.OBJLoader,load:function(e,t,n,r){var o=this,a=new i.FileLoader(o.manager);a.setPath(this.path),a.load(e,(function(e){t(o.parse(e))}),n,r)},setPath:function(e){this.path=e},setMaterials:function(e){this.materials=e},_createParserState:function(){var e={objects:[],object:{},vertices:[],normals:[],uvs:[],materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);var n=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],uvs:[]},materials:[],smooth:!0,startMaterial:function(e,t){var n=this._finalize(!1);n&&(n.inherited||n.groupCount<=0)&&this.materials.splice(n.index,1);var i={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==n?n.smooth:this.smooth,groupStart:void 0!==n?n.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){var t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(i),i},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){var t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(var n=this.materials.length-1;n>=0;n--)this.materials[n].groupCount<=0&&this.materials.splice(n,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},n&&n.name&&"function"==typeof n.clone){var i=n.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){var n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseNormalIndex:function(e,t){var n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseUVIndex:function(e,t){var n=parseInt(e,10);return 2*(n>=0?n-1:n+t/2)},addVertex:function(e,t,n){var i=this.vertices,r=this.object.geometry.vertices;r.push(i[e+0]),r.push(i[e+1]),r.push(i[e+2]),r.push(i[t+0]),r.push(i[t+1]),r.push(i[t+2]),r.push(i[n+0]),r.push(i[n+1]),r.push(i[n+2])},addVertexLine:function(e){var t=this.vertices,n=this.object.geometry.vertices;n.push(t[e+0]),n.push(t[e+1]),n.push(t[e+2])},addNormal:function(e,t,n){var i=this.normals,r=this.object.geometry.normals;r.push(i[e+0]),r.push(i[e+1]),r.push(i[e+2]),r.push(i[t+0]),r.push(i[t+1]),r.push(i[t+2]),r.push(i[n+0]),r.push(i[n+1]),r.push(i[n+2])},addUV:function(e,t,n){var i=this.uvs,r=this.object.geometry.uvs;r.push(i[e+0]),r.push(i[e+1]),r.push(i[t+0]),r.push(i[t+1]),r.push(i[n+0]),r.push(i[n+1])},addUVLine:function(e){var t=this.uvs,n=this.object.geometry.uvs;n.push(t[e+0]),n.push(t[e+1])},addFace:function(e,t,n,i,r,o,a,s,l,u,c,d){var h,p=this.vertices.length,f=this.parseVertexIndex(e,p),m=this.parseVertexIndex(t,p),g=this.parseVertexIndex(n,p);if(void 0===i?this.addVertex(f,m,g):(h=this.parseVertexIndex(i,p),this.addVertex(f,m,h),this.addVertex(m,g,h)),void 0!==r){var y=this.uvs.length;f=this.parseUVIndex(r,y),m=this.parseUVIndex(o,y),g=this.parseUVIndex(a,y),void 0===i?this.addUV(f,m,g):(h=this.parseUVIndex(s,y),this.addUV(f,m,h),this.addUV(m,g,h))}if(void 0!==l){var v=this.normals.length;f=this.parseNormalIndex(l,v),m=l===u?f:this.parseNormalIndex(u,v),g=l===c?f:this.parseNormalIndex(c,v),void 0===i?this.addNormal(f,m,g):(h=this.parseNormalIndex(d,v),this.addNormal(f,m,h),this.addNormal(m,g,h))}},addLineGeometry:function(e,t){this.object.geometry.type="Line";for(var n=this.vertices.length,i=this.uvs.length,r=0,o=e.length;r0?S.addAttribute("normal",new i.BufferAttribute(new Float32Array(x.normals),3)):S.computeVertexNormals(),x.uvs.length>0&&S.addAttribute("uv",new i.BufferAttribute(new Float32Array(x.uvs),2));for(var E,T=[],C=0,O=w.length;C1){for(C=0,O=w.length;C=0?s.substring(0,l):s;u=u.toLowerCase();var c=l>=0?s.substring(l+1):"";if(c=c.trim(),"newmtl"===u)n={name:c},o[c]=n;else if(n)if("ka"===u||"kd"===u||"ks"===u){var d=c.split(r,3);n[u]=[parseFloat(d[0]),parseFloat(d[1]),parseFloat(d[2])]}else n[u]=c}}var h=new i.MTLLoader.MaterialCreator(this.texturePath||this.path,this.materialOptions);return h.setCrossOrigin(this.crossOrigin),h.setManager(this.manager),h.setMaterials(o),h}},i.MTLLoader.MaterialCreator=function(e,t){this.baseUrl=e||"",this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:i.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:i.RepeatWrapping},i.MTLLoader.MaterialCreator.prototype={constructor:i.MTLLoader.MaterialCreator,setCrossOrigin:function(e){this.crossOrigin=e},setManager:function(e){this.manager=e},setMaterials:function(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(e){if(!this.options)return e;var t={};for(var n in e){var i=e[n],r={};for(var o in t[n]=r,i){var a=!0,s=i[o],l=o.toLowerCase();switch(l){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(s=[s[0]/255,s[1]/255,s[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===s[0]&&0===s[1]&&0===s[2]&&(a=!1)}a&&(r[l]=s)}}return t},preload:function(){for(var e in this.materialsInfo)this.create(e)},getIndex:function(e){return this.nameLookup[e]},getAsArray:function(){var e=0;for(var t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray},create:function(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]},createMaterial_:function(e){var t=this,n=this.materialsInfo[e],r={name:e,side:this.side};function o(e,n){if(!r[e]){var i,o,a=t.getTextureParams(n,r),s=t.loadTexture((i=t.baseUrl,"string"!=typeof(o=a.url)||""===o?"":/^https?:\/\//i.test(o)?o:i+o));s.repeat.copy(a.scale),s.offset.copy(a.offset),s.wrapS=t.wrap,s.wrapT=t.wrap,r[e]=s}}for(var a in n){var s=n[a];if(""!==s)switch(a.toLowerCase()){case"kd":r.color=(new i.Color).fromArray(s);break;case"ks":r.specular=(new i.Color).fromArray(s);break;case"map_kd":o("map",s);break;case"map_ks":o("specularMap",s);break;case"map_bump":case"bump":o("bumpMap",s);break;case"ns":r.shininess=parseFloat(s);break;case"d":s<1&&(r.opacity=s,r.transparent=!0);break;case"Tr":s>0&&(r.opacity=1-s,r.transparent=!0)}}return this.materials[e]=new i.MeshPhongMaterial(r),this.materials[e]},getTextureParams:function(e,t){var n,r={scale:new i.Vector2(1,1),offset:new i.Vector2(0,0)},o=e.split(/\s+/);return(n=o.indexOf("-bm"))>=0&&(t.bumpScale=parseFloat(o[n+1]),o.splice(n,2)),(n=o.indexOf("-s"))>=0&&(r.scale.set(parseFloat(o[n+1]),parseFloat(o[n+2])),o.splice(n,4)),(n=o.indexOf("-o"))>=0&&(r.offset.set(parseFloat(o[n+1]),parseFloat(o[n+2])),o.splice(n,4)),r.url=o.join(" ").trim(),r},loadTexture:function(e,t,n,r,o){var a,s=i.Loader.Handlers.get(e),l=void 0!==this.manager?this.manager:i.DefaultLoadingManager;return null===s&&(s=new i.TextureLoader(l)),s.setCrossOrigin&&s.setCrossOrigin(this.crossOrigin),a=s.load(e,n,r,o),void 0!==t&&(a.mapping=t),a}}},function(e,t,n){var i=n(227),r=n(228);e.exports=function(e){function t(n,i){if(!(this instanceof t))return new t(n,i);e.BufferGeometry.call(this),Array.isArray(n)?i=i||{}:"object"==typeof n&&(i=n,n=[]),i=i||{},this.addAttribute("position",new e.BufferAttribute(void 0,3)),this.addAttribute("lineNormal",new e.BufferAttribute(void 0,2)),this.addAttribute("lineMiter",new e.BufferAttribute(void 0,1)),i.distances&&this.addAttribute("lineDistance",new e.BufferAttribute(void 0,1)),"function"==typeof this.setIndex?this.setIndex(new e.BufferAttribute(void 0,1)):this.addAttribute("index",new e.BufferAttribute(void 0,1)),this.update(n,i.closed)}return i(t,e.BufferGeometry),t.prototype.update=function(e,t){var n=r(e=e||[],t);t&&((e=e.slice()).push(e[0]),n.push(n[0]));var i=this.getAttribute("position"),o=this.getAttribute("lineNormal"),a=this.getAttribute("lineMiter"),s=this.getAttribute("lineDistance"),l="function"==typeof this.getIndex?this.getIndex():this.getAttribute("index"),u=Math.max(0,6*(e.length-1));if(!i.array||e.length!==i.array.length/3/2){var c=2*e.length;i.array=new Float32Array(3*c),o.array=new Float32Array(2*c),a.array=new Float32Array(c),l.array=new Uint16Array(u),s&&(s.array=new Float32Array(c))}void 0!==i.count&&(i.count=c),i.needsUpdate=!0,void 0!==o.count&&(o.count=c),o.needsUpdate=!0,void 0!==a.count&&(a.count=c),a.needsUpdate=!0,void 0!==l.count&&(l.count=u),l.needsUpdate=!0,s&&(void 0!==s.count&&(s.count=c),s.needsUpdate=!0);var d=0,h=0,p=0,f=l.array;e.forEach((function(e,t,n){var r=d;if(f[h++]=r+0,f[h++]=r+1,f[h++]=r+2,f[h++]=r+2,f[h++]=r+1,f[h++]=r+3,i.setXYZ(d++,e[0],e[1],0),i.setXYZ(d++,e[0],e[1],0),s){var o=t/(n.length-1);s.setX(p++,o),s.setX(p++,o)}}));var m=0,g=0;n.forEach((function(e){var t=e[0],n=e[1];o.setXY(m++,t[0],t[1]),o.setXY(m++,t[0],t[1]),a.setX(g++,-n),a.setX(g++,n)}))},t}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){var i=n(229),r=[0,0],o=[0,0],a=[0,0],s=[0,0];function l(e,t,n){e.push([[t[0],t[1]],n])}e.exports=function(e,t){var n=null,u=[];t&&(e=e.slice()).push(e[0]);for(var c=e.length,d=1;d2&&t){var g=e[c-2],y=e[0],v=e[1];i.direction(r,y,g),i.direction(o,v,y),i.normal(n,r);var b=i.computeMiter(a,s,r,o,1);u[0][0]=s.slice(),u[c-1][0]=s.slice(),u[0][1]=b,u[c-1][1]=b,u.pop()}return u}},function(e,t,n){var i=n(230),r=n(231),o=n(232),a=n(233),s=n(234),l=[0,0];e.exports.computeMiter=function(e,t,n,a,u){return i(e,n,a),o(e,e),r(t,-e[1],e[0]),r(l,-n[1],n[0]),u/s(t,l)},e.exports.normal=function(e,t){return r(e,-t[1],t[0]),e},e.exports.direction=function(e,t,n){return a(e,t,n),o(e,e),e}},function(e,t){e.exports=function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}},function(e,t){e.exports=function(e,t,n){return e[0]=t,e[1]=n,e}},function(e,t){e.exports=function(e,t){var n=t[0],i=t[1],r=n*n+i*i;r>0&&(r=1/Math.sqrt(r),e[0]=t[0]*r,e[1]=t[1]*r);return e}},function(e,t){e.exports=function(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}},function(e,t){e.exports=function(e,t){return e[0]*t[0]+e[1]*t[1]}},function(e,t,n){var i=n(72);e.exports=function(e){return function(t){var n="number"==typeof(t=t||{}).thickness?t.thickness:.1,r="number"==typeof t.opacity?t.opacity:1,o=null!==t.diffuse?t.diffuse:16777215;delete t.thickness,delete t.opacity,delete t.diffuse,delete t.precision;var a=i({uniforms:{thickness:{type:"f",value:n},opacity:{type:"f",value:r},diffuse:{type:"c",value:new e.Color(o)}},vertexShader:["uniform float thickness;","attribute float lineMiter;","attribute vec2 lineNormal;","void main() {","vec3 pointPos = position.xyz + vec3(lineNormal * thickness / 2.0 * lineMiter, 0.0);","gl_Position = projectionMatrix * modelViewMatrix * vec4(pointPos, 1.0);","}"].join("\n"),fragmentShader:["uniform vec3 diffuse;","uniform float opacity;","void main() {","gl_FragColor = vec4(diffuse, opacity);","}"].join("\n")},t);return(0|(parseInt(e.REVISION,10)||0))<72&&(a.attributes={lineMiter:{type:"f",value:0},lineNormal:{type:"v2",value:new e.Vector2}}),a}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=u(n(1)),r=u(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),a=n(53),s=u(n(237)),l=u(n(12));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){var t=this;(0,i.default)(this,e),this.type="default",this.loadedMap=null,this.updateMap=null,this.mesh=null,this.geometry=null,this.initialized=!1,this.inNaviMode=null,this.showCameraView=!1,(0,a.loadTexture)(s.default,(function(e){t.geometry=new o.PlaneGeometry(1,1),t.mesh=new o.Mesh(t.geometry,new o.MeshBasicMaterial({map:e}))}))}return(0,r.default)(e,[{key:"initialize",value:function(e){return!!this.mesh&&(!(this.loadedMap===this.updateMap&&!this.render(e))&&(this.initialized=!0,!0))}},{key:"loadGrid",value:function(e){var t=this;(0,a.loadTexture)(s.default,(function(n){console.log("using grid as ground image..."),t.mesh.material.map=n,t.mesh.type="grid",t.mesh.visible=!0,t.render(e)}))}},{key:"update",value:function(e,t,n){var i=this;if(!0===this.initialized){var r=l.default.options.showCameraView,s=r!==this.showCameraView;this.showCameraView=r;var u=this.inNaviMode!==l.default.hmi.inNavigationMode;if(this.inNaviMode=l.default.hmi.inNavigationMode,this.inNaviMode?(this.mesh.type="grid",u&&this.loadGrid(t)):this.mesh.type="reflection","grid"===this.mesh.type){var c=e.autoDrivingCar,d=t.applyOffset({x:c.positionX,y:c.positionY});this.mesh.position.set(d.x,d.y,0)}else if(this.loadedMap!==this.updateMap||u||s){if(r)return n.background=null,void(this.mesh.visible=!1);var h=this.titleCaseToSnakeCase(this.updateMap),p=window.location,f=PARAMETERS.server.port,m=p.protocol+"//"+p.hostname+":"+f+"/assets/map_data/"+h+"/background.jpg";(0,a.loadTexture)(m,(function(e){console.log("updating ground image with "+h),i.mesh.material.map=e,i.mesh.type="reflection",i.mesh.visible=!0,i.render(t,h)}),(function(e){i.loadGrid(t)})),this.loadedMap=this.updateMap,n.background=new o.Color(3095)}}}},{key:"updateImage",value:function(e){this.updateMap=e}},{key:"render",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"defaults";console.log("rendering ground image...");var n=PARAMETERS.ground[t],i=n.xres,r=n.yres,o=n.mpp,a=n.xorigin,s=n.yorigin,l=e.applyOffset({x:a,y:s});return null===l?(console.warn("Cannot find position for ground mesh!"),!1):("defaults"===t&&(l={x:0,y:0}),this.mesh.position.set(l.x,l.y,0),this.mesh.scale.set(i*o,r*o,1),this.mesh.material.needsUpdate=!0,this.mesh.overdraw=!1,!0)}},{key:"titleCaseToSnakeCase",value:function(e){return e.replace(/\s/g,"_").toLowerCase()}}]),e}();t.default=c},function(e,t,n){e.exports=n.p+"assets/2NEFng8KXMmYxDfgmv-0Av.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=g(n(44)),r=g(n(128)),o=g(n(1)),a=g(n(2)),s=g(n(92)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),u=n(53),c=g(n(132)),d=g(n(136)),h=g(n(137)),p=g(n(138)),f=g(n(139)),m=g(n(140));function g(e){return e&&e.__esModule?e:{default:e}}var y=.01,v=1.5;var b=function(){function e(t){(0,o.default)(this,e),this.renderer=t,this.mesh=!0,this.type="tile",this.range=PARAMETERS.ground.defaults.tileRange,this.metadata=null,this.mapId=null,this.mapUrlPrefix=null,this.hash=-1,this.currentTiles={},this.currentTrafficLights=[],this.currentStopSigns=[],this.currentYieldSigns=[],this.initialized=!1,this.trafficSignals=new d.default,this.stopSigns=new c.default(h.default,p.default,y),this.yieldSigns=new c.default(f.default,m.default,v)}return(0,a.default)(e,[{key:"initialize",value:function(e){this.metadata={tileLength:e.tile*e.mpp,left:e.left,top:e.top,numCols:e.wnum,numRows:e.hnum,mpp:e.mpp,tile:e.tile,imageUrl:e.image_url,availableMapTiles:new s.default(e.availableImages),allSignals:e.signal,allStopSigns:e.stopSign,allYieldSigns:e.yield},this.mapId=e.mapid,this.mapUrlPrefix=this.metadata.imageUrl+"/"+this.mapId,this.initialized=!0}},{key:"removeDrewObject",value:function(e,t,n){var i=t[e];i&&(n.remove(i),i.geometry&&i.geometry.dispose(),i.material&&i.material.dispose()),delete t[e]}},{key:"getItems",value:function(e,t,n){var i=this,r=[];return n.forEach((function(n){if(!(isNaN(n.x)||isNaN(n.y)||isNaN(n.heading))){var o=i.getRowAndCol(n.x,n.y),a=o.i,s=o.j;a===e&&s===t&&r.push(n)}})),r}},{key:"appendTiles",value:function(e,t,n,i,r){var o=this,a=this.metadata.mpp+"_"+e+"_"+t+"_"+this.metadata.tile+".png";if(this.metadata.availableMapTiles.has(a)){var s=this.metadata.imageUrl?this.mapUrlPrefix+"/"+a:this.mapUrlPrefix+"?mapId="+this.mapId+"&i="+e+"&j="+t,c=i.applyOffset({x:this.metadata.left+(e+.5)*this.metadata.tileLength,y:this.metadata.top-(t+.5)*this.metadata.tileLength,z:0});(0,u.loadTexture)(s,(function(e){e.anisotropy=o.renderer.getMaxAnisotropy();var t=new l.Mesh(new l.PlaneGeometry(1,1),new l.MeshBasicMaterial({map:e}));t.position.set(c.x,c.y,c.z),t.scale.set(o.metadata.tileLength,o.metadata.tileLength,1),t.overdraw=!1,o.currentTiles[n]=t,r.add(t)}))}}},{key:"removeExpiredTiles",value:function(e,t){for(var n in this.currentTiles)e.has(n)||this.removeDrewObject(n,this.currentTiles,t);var i=[];this.currentTrafficLights.forEach((function(t){var n=t.key,r=t.id;e.has(n)&&i.push(r)})),this.trafficSignals.removeExpired(i,t);var r=[];this.currentStopSigns.forEach((function(t){var n=t.key,i=t.id;e.has(n)&&r.push(i)})),this.stopSigns.removeExpired(r,t);var o=[];this.currentYieldSigns.forEach((function(t){e.has(t.key)&&o.push(t.id)})),this.yieldSigns.removeExpired(o,t)}},{key:"updateIndex",value:function(e,t,n,o){var a=this;if(e!==this.hash){this.hash=e,this.removeExpiredTiles(t,o);var l=function(e,t){var n=new s.default(e);for(var i in t)n.delete(i);return n}(t,this.currentTiles);if(!_.isEmpty(l)||!this.initialized){var u=function(e){a.currentTiles[e]=null;var t=e.split(","),i=parseInt(t[0]),s=parseInt(t[1]);if(s<0||s>a.metadata.numCols||i<0||i>a.metadata.numRows)return"continue";if(a.appendTiles(i,s,e,n,o),a.metadata.allSignals){var l=a.getItems(i,s,a.metadata.allSignals);a.trafficSignals.add(l,n,o),a.currentTrafficLights=[].concat((0,r.default)(a.currentTrafficLights),(0,r.default)(l.map((function(t){return{key:e,id:t.id}}))))}if(a.metadata.allStopSigns){var u=a.getItems(i,s,a.metadata.allStopSigns);a.stopSigns.add(u,n,o),a.currentStopSigns=[].concat((0,r.default)(a.currentStopSigns),(0,r.default)(u.map((function(t){return{key:e,id:t.id}}))))}if(a.metadata.allYieldSigns){var c=a.getItems(i,s,a.metadata.allYieldSigns);a.yieldSigns.add(c,n,o),a.currentYieldSigns=[].concat((0,r.default)(a.currentYieldSigns),(0,r.default)(c.map((function(t){return{key:e,id:t.id}}))))}},c=!0,d=!1,h=void 0;try{for(var p,f=(0,i.default)(l);!(c=(p=f.next()).done);c=!0)u(p.value)}catch(e){d=!0,h=e}finally{try{!c&&f.return&&f.return()}finally{if(d)throw h}}}}}},{key:"getRowAndCol",value:function(e,t){return{i:Math.floor((e-this.metadata.left)/this.metadata.tileLength),j:Math.floor((this.metadata.top-t)/this.metadata.tileLength)}}},{key:"update",value:function(e,t,n){if(t.isInitialized()&&this.initialized){for(var i=e.autoDrivingCar.positionX,r=e.autoDrivingCar.positionY,o=this.getRowAndCol(i,r),a=o.i,l=o.j,u=new s.default,c="",d=a-this.range;d<=a+this.range;d++)for(var h=l-this.range;h<=l+this.range;h++){var p=d+","+h;u.add(p),c+=p}this.updateIndex(c,u,t,n),this.trafficSignals.updateTrafficLightStatus(e.perceivedSignal)}}}]),e}();t.default=b},function(e,t,n){n(55),n(42),e.exports=n(240)},function(e,t,n){var i=n(25),r=n(89);e.exports=n(9).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,n){n(42),n(242),e.exports=n(9).Array.from},function(e,t,n){"use strict";var i=n(28),r=n(13),o=n(39),a=n(120),s=n(121),l=n(64),u=n(243),c=n(89);r(r.S+r.F*!n(127)((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,r,d,h=o(e),p="function"==typeof this?this:Array,f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m,y=0,v=c(h);if(g&&(m=i(m,f>2?arguments[2]:void 0,2)),null==v||p==Array&&s(v))for(n=new p(t=l(h.length));t>y;y++)u(n,y,g?m(h[y],y):h[y]);else for(d=v.call(h),n=new p;!(r=d.next()).done;y++)u(n,y,g?a(d,m,[r.value,y],!0):r.value);return n.length=y,n}})},function(e,t,n){"use strict";var i=n(24),r=n(49);e.exports=function(e,t,n){t in e?i.f(e,t,r(0,n)):e[t]=n}},function(e,t,n){n(86),n(42),n(55),n(245),n(251),n(254),n(256),e.exports=n(9).Set},function(e,t,n){"use strict";var i=n(246),r=n(130);e.exports=n(247)("Set",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return i.def(r(this,"Set"),e=0===e?0:e,e)}},i)},function(e,t,n){"use strict";var i=n(24).f,r=n(67),o=n(91),a=n(28),s=n(88),l=n(56),u=n(87),c=n(119),d=n(126),h=n(21),p=n(66).fastKey,f=n(130),m=h?"_s":"size",g=function(e,t){var n,i=p(t);if("F"!==i)return e._i[i];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var c=e((function(e,i){s(e,c,t,"_i"),e._t=t,e._i=r(null),e._f=void 0,e._l=void 0,e[m]=0,null!=i&&l(i,n,e[u],e)}));return o(c.prototype,{clear:function(){for(var e=f(this,t),n=e._i,i=e._f;i;i=i.n)i.r=!0,i.p&&(i.p=i.p.n=void 0),delete n[i.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),i=g(n,e);if(i){var r=i.n,o=i.p;delete n._i[i.i],i.r=!0,o&&(o.n=r),r&&(r.p=o),n._f==i&&(n._f=r),n._l==i&&(n._l=o),n[m]--}return!!i},forEach:function(e){f(this,t);for(var n,i=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(i(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),h&&i(c.prototype,"size",{get:function(){return f(this,t)[m]}}),c},def:function(e,t,n){var i,r,o=g(e,t);return o?o.v=n:(e._l=o={i:r=p(t,!0),k:t,v:n,p:i=e._l,n:void 0,r:!1},e._f||(e._f=o),i&&(i.n=o),e[m]++,"F"!==r&&(e._i[r]=o)),e},getEntry:g,setStrong:function(e,t,n){u(e,t,(function(e,n){this._t=f(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var i=n(18),r=n(13),o=n(66),a=n(37),s=n(33),l=n(91),u=n(56),c=n(88),d=n(22),h=n(54),p=n(24).f,f=n(248)(0),m=n(21);e.exports=function(e,t,n,g,y,v){var b=i[e],_=b,x=y?"set":"add",w=_&&_.prototype,M={};return m&&"function"==typeof _&&(v||w.forEach&&!a((function(){(new _).entries().next()})))?(_=t((function(t,n){c(t,_,e,"_c"),t._c=new b,null!=n&&u(n,y,t[x],t)})),f("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;e in w&&(!v||"clear"!=e)&&s(_.prototype,e,(function(n,i){if(c(this,_,e),!t&&v&&!d(n))return"get"==e&&void 0;var r=this._c[e](0===n?0:n,i);return t?this:r}))})),v||p(_.prototype,"size",{get:function(){return this._c.size}})):(_=g.getConstructor(t,e,y,x),l(_.prototype,n),o.NEED=!0),h(_,e),M[e]=_,r(r.G+r.W+r.F,M),v||g.setStrong(_,e,y),_}},function(e,t,n){var i=n(28),r=n(77),o=n(39),a=n(64),s=n(249);e.exports=function(e,t){var n=1==e,l=2==e,u=3==e,c=4==e,d=6==e,h=5==e||d,p=t||s;return function(t,s,f){for(var m,g,y=o(t),v=r(y),b=i(s,f,3),_=a(v.length),x=0,w=n?p(t,_):l?p(t,0):void 0;_>x;x++)if((h||x in v)&&(g=b(m=v[x],x,y),e))if(n)w[x]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(c)return!1;return d?-1:u||c?c:w}}},function(e,t,n){var i=n(250);e.exports=function(e,t){return new(i(e))(t)}},function(e,t,n){var i=n(22),r=n(131),o=n(19)("species");e.exports=function(e){var t;return r(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!r(t.prototype)||(t=void 0),i(t)&&null===(t=t[o])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){var i=n(13);i(i.P+i.R,"Set",{toJSON:n(252)("Set")})},function(e,t,n){var i=n(68),r=n(253);e.exports=function(e){return function(){if(i(this)!=e)throw TypeError(e+"#toJSON isn't generic");return r(this)}}},function(e,t,n){var i=n(56);e.exports=function(e,t){var n=[];return i(e,!1,n.push,n,t),n}},function(e,t,n){n(255)("Set")},function(e,t,n){"use strict";var i=n(13);e.exports=function(e){i(i.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){n(257)("Set")},function(e,t,n){"use strict";var i=n(13),r=n(48),o=n(28),a=n(56);e.exports=function(e){i(i.S,e,{from:function(e){var t,n,i,s,l=arguments[1];return r(this),(t=void 0!==l)&&r(l),null==e?new this:(n=[],t?(i=0,s=o(l,arguments[2],2),a(e,!1,(function(e){n.push(s(e,i++))}))):a(e,!1,n.push,n),new this(n))}})}},function(e,t,n){n(259),e.exports=n(9).Object.getPrototypeOf},function(e,t,n){var i=n(39),r=n(118);n(63)("getPrototypeOf",(function(){return function(e){return r(i(e))}}))},function(e,t,n){e.exports={default:n(261),__esModule:!0}},function(e,t,n){n(42),n(55),e.exports=n(93).f("iterator")},function(e,t,n){e.exports={default:n(263),__esModule:!0}},function(e,t,n){n(264),n(86),n(267),n(268),e.exports=n(9).Symbol},function(e,t,n){"use strict";var i=n(18),r=n(38),o=n(21),a=n(13),s=n(115),l=n(66).KEY,u=n(37),c=n(83),d=n(54),h=n(65),p=n(19),f=n(93),m=n(94),g=n(265),y=n(131),v=n(25),b=n(22),_=n(39),x=n(34),w=n(76),M=n(49),S=n(67),E=n(266),T=n(79),C=n(95),O=n(24),k=n(41),P=T.f,A=O.f,R=E.f,L=i.Symbol,I=i.JSON,D=I&&I.stringify,N=p("_hidden"),F=p("toPrimitive"),z={}.propertyIsEnumerable,B=c("symbol-registry"),U=c("symbols"),j=c("op-symbols"),W=Object.prototype,G="function"==typeof L&&!!C.f,V=i.QObject,H=!V||!V.prototype||!V.prototype.findChild,Y=o&&u((function(){return 7!=S(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a}))?function(e,t,n){var i=P(W,t);i&&delete W[t],A(e,t,n),i&&e!==W&&A(W,t,i)}:A,q=function(e){var t=U[e]=S(L.prototype);return t._k=e,t},X=G&&"symbol"==typeof L.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof L},K=function(e,t,n){return e===W&&K(j,t,n),v(e),t=w(t,!0),v(n),r(U,t)?(n.enumerable?(r(e,N)&&e[N][t]&&(e[N][t]=!1),n=S(n,{enumerable:M(0,!1)})):(r(e,N)||A(e,N,M(1,{})),e[N][t]=!0),Y(e,t,n)):A(e,t,n)},Z=function(e,t){v(e);for(var n,i=g(t=x(t)),r=0,o=i.length;o>r;)K(e,n=i[r++],t[n]);return e},J=function(e){var t=z.call(this,e=w(e,!0));return!(this===W&&r(U,e)&&!r(j,e))&&(!(t||!r(this,e)||!r(U,e)||r(this,N)&&this[N][e])||t)},$=function(e,t){if(e=x(e),t=w(t,!0),e!==W||!r(U,t)||r(j,t)){var n=P(e,t);return!n||!r(U,t)||r(e,N)&&e[N][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=R(x(e)),i=[],o=0;n.length>o;)r(U,t=n[o++])||t==N||t==l||i.push(t);return i},ee=function(e){for(var t,n=e===W,i=R(n?j:x(e)),o=[],a=0;i.length>a;)!r(U,t=i[a++])||n&&!r(W,t)||o.push(U[t]);return o};G||(s((L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(n){this===W&&t.call(j,n),r(this,N)&&r(this[N],e)&&(this[N][e]=!1),Y(this,e,M(1,n))};return o&&H&&Y(W,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),T.f=$,O.f=K,n(134).f=E.f=Q,n(51).f=J,C.f=ee,o&&!n(52)&&s(W,"propertyIsEnumerable",J,!0),f.f=function(e){return q(p(e))}),a(a.G+a.W+a.F*!G,{Symbol:L});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)p(te[ne++]);for(var ie=k(p.store),re=0;ie.length>re;)m(ie[re++]);a(a.S+a.F*!G,"Symbol",{for:function(e){return r(B,e+="")?B[e]:B[e]=L(e)},keyFor:function(e){if(!X(e))throw TypeError(e+" is not a symbol!");for(var t in B)if(B[t]===e)return t},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!G,"Object",{create:function(e,t){return void 0===t?S(e):Z(S(e),t)},defineProperty:K,defineProperties:Z,getOwnPropertyDescriptor:$,getOwnPropertyNames:Q,getOwnPropertySymbols:ee});var oe=u((function(){C.f(1)}));a(a.S+a.F*oe,"Object",{getOwnPropertySymbols:function(e){return C.f(_(e))}}),I&&a(a.S+a.F*(!G||u((function(){var e=L();return"[null]"!=D([e])||"{}"!=D({a:e})||"{}"!=D(Object(e))}))),"JSON",{stringify:function(e){for(var t,n,i=[e],r=1;arguments.length>r;)i.push(arguments[r++]);if(n=t=i[1],(b(t)||void 0!==e)&&!X(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!X(t))return t}),i[1]=t,D.apply(I,i)}}),L.prototype[F]||n(33)(L.prototype,F,L.prototype.valueOf),d(L,"Symbol"),d(Math,"Math",!0),d(i.JSON,"JSON",!0)},function(e,t,n){var i=n(41),r=n(95),o=n(51);e.exports=function(e){var t=i(e),n=r.f;if(n)for(var a,s=n(e),l=o.f,u=0;s.length>u;)l.call(e,a=s[u++])&&t.push(a);return t}},function(e,t,n){var i=n(34),r=n(134).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?function(e){try{return r(e)}catch(e){return a.slice()}}(e):r(i(e))}},function(e,t,n){n(94)("asyncIterator")},function(e,t,n){n(94)("observable")},function(e,t,n){e.exports={default:n(270),__esModule:!0}},function(e,t,n){n(271),e.exports=n(9).Object.setPrototypeOf},function(e,t,n){var i=n(13);i(i.S,"Object",{setPrototypeOf:n(272).set})},function(e,t,n){var i=n(22),r=n(25),o=function(e,t){if(r(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{(i=n(28)(Function.call,n(79).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){e.exports={default:n(274),__esModule:!0}},function(e,t,n){n(275);var i=n(9).Object;e.exports=function(e,t){return i.create(e,t)}},function(e,t,n){var i=n(13);i(i.S,"Object",{create:n(67)})},function(e,t,n){e.exports={default:n(277),__esModule:!0}},function(e,t,n){n(55),n(42),e.exports=n(278)},function(e,t,n){var i=n(68),r=n(19)("iterator"),o=n(43);e.exports=n(9).isIterable=function(e){var t=Object(e);return void 0!==t[r]||"@@iterator"in t||o.hasOwnProperty(i(t))}},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(3)),r=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function e(t,n,o){null===t&&(t=Function.prototype);var a=(0,r.default)(t,n);if(void 0===a){var s=(0,i.default)(t);return null===s?void 0:e(s,n,o)}if("value"in a)return a.value;var l=a.get;return void 0!==l?l.call(o):void 0}},function(e,t,n){e.exports=n.p+"c67591a7704dd9ff8b57ef65b6bd0521.mtl"},function(e,t,n){e.exports=n.p+"4f4c83b89b3899415dafca5f1c0fdee8.obj"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=x(n(23)),r=x(n(44)),o=x(n(69)),a=x(n(1)),s=x(n(2)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),u=x(n(12)),c=n(20),d=x(n(14)),h=n(27),p=n(141),f=x(p),m=x(n(132)),g=x(n(136)),y=x(n(137)),v=x(n(138)),b=x(n(139)),_=x(n(140));function x(e){return e&&e.__esModule?e:{default:e}}var w=.01,M=1.5,S=14329120,E=13421772,T=16744272,C=16737894,O=25600,k=3188223,P=16777215,A=12632256,R=function(){function e(){(0,a.default)(this,e),this.textRender=new f.default,this.hash=-1,this.data={},this.initialized=!1,this.elementKindsDrawn="",this.trafficSignals=new g.default,this.stopSigns=new m.default(y.default,v.default,w),this.yieldSigns=new m.default(b.default,_.default,M),this.zOffsetFactor=1}return(0,s.default)(e,[{key:"diffMapElements",value:function(e,t){var n=this,i={},r=!0,o=function(o){if(!n.shouldDrawObjectOfThisElementKind(o))return"continue";i[o]=[];for(var a=e[o],s=t[o],l=function(e){!!s&&s.find((function(t){return t.id.id===a[e]}))||(r=!1,i[o].push(a[e]))},u=0;u=2){var s=a[0],l=a[1];o.z=Math.atan2(l.y-s.y,l.x-s.x)}var u=this.textRender.drawText(e.id.id,n,E,p.TEXT_ALIGN.LEFT);if(u){var c=r||d.default.get(a,"[0]");c&&(u.position.set(c.x,c.y,c.z),u.rotation.set(o.x,o.y,o.z)),u.visible=!1,n.add(u)}return u}},{key:"addRoad",value:function(e,t,n){var i=this,r=[];return e.section.forEach((function(o){o.boundary.outerPolygon.edge.forEach((function(o){o.curve.segment.forEach((function(o,a){var s=t.applyOffsetToArray(o.lineSegment.point),l=i.addLaneMesh("CURB",s);l.name="Road-"+e.id.id,n.add(l),r.push(l)}))}))})),r}},{key:"addBorder",value:function(e,t,n,i){var r=[],o=n.applyOffsetToArray(e.polygon.point);o.push(o[0]);var a=(0,h.drawSegmentsFromPoints)(o,t,2,this.zOffsetFactor,!0,!1,1);return i.add(a),r.push(a),r}},{key:"addParkingSpaceId",value:function(e,t,n){var i=this.textRender.drawText(e.id.id,n,E),r=d.default.get(e,"polygon.point");if(r&&r.length>=3&&i){var o=r[0],a=r[1],s=r[2],l={x:(o.x+s.x)/2,y:(o.y+s.y)/2,z:.04};l=t.applyOffset(l);var u=Math.atan2(a.y-o.y,a.x-o.x);i.position.set(l.x,l.y,l.z),i.rotation.set(0,0,u),i.visible=!1,n.add(i)}return i}},{key:"addZone",value:function(e,t,n,i){var r=[],o=n.applyOffsetToArray(e.polygon.point);o.push(o[0]);var a=new l.MeshBasicMaterial({color:t,transparent:!0,opacity:.15}),s=(0,h.drawShapeFromPoints)(o,a,!1,3*this.zOffsetFactor,!1);i.add(s),r.push(s);var u=(0,h.drawSegmentsFromPoints)(o,t,2,this.zOffsetFactor,!0,!1,1);return i.add(u),r.push(u),r}},{key:"addCurve",value:function(e,t,n,i){var r=this,o=[];return e.forEach((function(e){e.segment.forEach((function(e){var a=n.applyOffsetToArray(e.lineSegment.point),s=(0,h.drawSegmentsFromPoints)(a,t,5,2*r.zOffsetFactor,!1);i.add(s),o.push(s)}))})),o}},{key:"addStopLine",value:function(e,t,n){return this.addCurve(e,P,t,n)}},{key:"removeDrewText",value:function(e,t){e&&(e.children.forEach((function(e){return e.visible=!1})),t.remove(e))}},{key:"removeDrewObjects",value:function(e,t){e&&e.forEach((function(e){t.remove(e),e.geometry&&e.geometry.dispose(),e.material&&e.material.dispose()}))}},{key:"removeAllElements",value:function(e){this.removeExpiredElements([],e),this.trafficSignals.removeAll(e),this.stopSigns.removeAll(e),this.yieldSigns.removeAll(e)}},{key:"removeExpiredElements",value:function(e,t){var n=this,i={},r=function(r){var o=n.shouldDrawObjectOfThisElementKind(r);i[r]=[];var a=n.data[r],s=e[r];a.forEach((function(e){o&&s&&s.includes(e.id.id)?i[r].push(e):(n.removeDrewObjects(e.drewObjects,t),n.removeDrewText(e.text,t))}))};for(var o in this.data)r(o);this.data=i}},{key:"appendMapData",value:function(e,t,n){for(var i in e)if(e[i]){this.data[i]||(this.data[i]=[]);for(var r=0;rc;)for(var p,f=l(arguments[c++]),m=d?r(f).concat(d(f)):r(f),g=m.length,y=0;g>y;)p=m[y++],i&&!h.call(f,p)||(n[p]=f[p]);return n}:u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=u(n(23)),r=u(n(1)),o=u(n(2)),a=u(n(14)),s=u(n(12)),l=n(27);function u(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){(0,r.default)(this,e),this.paths={}}return(0,o.default)(e,[{key:"update",value:function(e,t,n,r){var o=this,u=null;e.autoDrivingCar.width?u=e.autoDrivingCar.width:(console.warn("Unable to get the auto driving car's width, planning line width has been set to default: "+PARAMETERS.planning.defaults.width+" m."),u=PARAMETERS.planning.defaults.width);var c={};e.planningTrajectory&&(c.trajectory=e.planningTrajectory.map((function(e){return{x:e.positionX,y:e.positionY}}))),t&&t.path&&t.path.forEach((function(e){c[e.name]=e.pathPoint})),a.default.union((0,i.default)(this.paths),(0,i.default)(c)).forEach((function(e){var t="trajectory"===e?"showPlanningTrajectory":e;if(s.default.options[t]||s.default.options.customizedToggles.get(t)){var i=o.paths[e];i&&(r.remove(i),i.geometry.dispose(),i.material.dispose());var a=PARAMETERS.planning.pathProperties[e];if(a||(console.warn("No path properties found for ["+e+"]. Use default properties instead."),a=PARAMETERS.planning.pathProperties.default,PARAMETERS.planning.pathProperties[e]=a),c[e]){var d=function(e,t){if(!e)return[];for(var n=[],i=0;i0)if(Math.abs(n[n.length-1].x-o.x)+Math.abs(n[n.length-1].y-o.y)2){if(!a(n))throw new TypeError("polynomial()::invalid input argument. Options argument must be an object. Value: `"+n+"`.");if(n.hasOwnProperty("copy")&&(m=n.copy,!s(m)))throw new TypeError("polynomial()::invalid option. Copy option must be a boolean primitive. Option: `"+m+"`.");if(n.hasOwnProperty("accessor")&&(c=n.accessor,!l(c)))throw new TypeError("polynomial()::invalid option. Accessor must be a function. Option: `"+c+"`.")}if(d=t.length,h=m?new Array(d):t,c)for(f=0;f=i.markers[c].length?(d=i.getObstacleDecision(c),i.markers[c].push(d),n.add(d)):d=i.markers[c][o[c]];var h=t.applyOffset(new a.Vector3(s.positionX,s.positionY,0));if(null===h)return"continue";if(d.position.set(h.x,h.y,.2),d.rotation.set(Math.PI/2,s.heading-Math.PI/2,0),d.visible=!0,o[c]++,"YIELD"===c||"OVERTAKE"===c){var p=d.connect;p.geometry.vertices[0].set(r[l].positionX-s.positionX,r[l].positionY-s.positionY,0),p.geometry.verticesNeedUpdate=!0,p.geometry.computeLineDistances(),p.geometry.lineDistancesNeedUpdate=!0,p.rotation.set(Math.PI/-2,0,Math.PI/2-s.heading)}}else if("NUDGE"===c){var f=(0,L.drawShapeFromPoints)(t.applyOffsetToArray(s.polygonPoint),new a.MeshBasicMaterial({color:16744192}),!1,2);i.nudges.push(f),n.add(f)}},d=0;d.2&&(g-=.7)}))}})))}},{key:"getPredCircle",value:function(){var e=new o.MeshBasicMaterial({color:16777215,transparent:!1,opacity:.5}),t=(0,l.drawCircle)(.2,e);return this.predCircles.push(t),t}},{key:"drawGaussian",value:function(e,t,n,i){if(a.default.options.showGaussianInfo&&e&&e.ellipseA>.001&&e.ellipseB>.001){var r=new o.MeshBasicMaterial({color:t,transparent:!0,opacity:.35}),s=(0,l.drawEllipse)(e.ellipseA,e.ellipseB,r);s.position.set(n.x,n.y,.25),s.rotation.set(0,0,e.thetaA),this.predGaussian.push(s),i.add(s)}}}]),e}();t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(1)),r=s(n(2)),o=(function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);t.default=e}(n(11)),s(n(12))),a=n(27);function s(e){return e&&e.__esModule?e:{default:e}}n(14);var l=function(){function e(){(0,i.default)(this,e),this.routePaths=[],this.lastRoutingTime=-1}return(0,r.default)(e,[{key:"update",value:function(e,t,n,i){var r=this;this.routePaths.forEach((function(e){e.visible=o.default.options.showRouting})),this.lastRoutingTime!==e&&void 0!==t&&(this.lastRoutingTime=e,this.routePaths.forEach((function(e){i.remove(e),e.material.dispose(),e.geometry.dispose()})),t.forEach((function(e){var t=n.applyOffsetToArray(e.point),s=(0,a.drawThickBandFromPoints)(t,.3,16711680,.6,5);s.visible=o.default.options.showRouting,i.add(s),r.routePaths.push(s)})))}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=l(n(1)),r=l(n(2));!function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);t.default=e}(n(11));n(324);var o=l(n(325)),a=(l(n(12)),l(n(20))),s=n(27);function l(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(){(0,i.default)(this,e),this.routePoints=[],this.parkingSpaceId=null,this.inEditingMode=!1,this.pointId=0}return(0,r.default)(e,[{key:"isInEditingMode",value:function(){return this.inEditingMode}},{key:"enableEditingMode",value:function(e,t){this.inEditingMode=!0;e.fov=PARAMETERS.camera.Map.fov,e.near=PARAMETERS.camera.Map.near,e.far=PARAMETERS.camera.Map.far,e.updateProjectionMatrix(),a.default.requestMapElementIdsByRadius(PARAMETERS.routingEditor.radiusOfMapRequest)}},{key:"disableEditingMode",value:function(e){this.inEditingMode=!1,this.removeAllRoutePoints(e),this.parkingSpaceId=null,this.pointId=0}},{key:"addRoutingPoint",value:function(e,t,n){var i=t.applyOffset({x:e.x,y:e.y}),r=(0,s.drawImage)(o.default,3.5,3.5,i.x,i.y,.3);r.pointId=this.pointId,e.id=this.pointId,this.pointId+=1,this.routePoints.push(r),n.add(r),a.default.checkRoutingPoint(e)}},{key:"setParkingSpaceId",value:function(e){this.parkingSpaceId=e}},{key:"removeInvalidRoutingPoint",value:function(e,t,n){var i=this;alert(t),e&&(this.routePoints=this.routePoints.filter((function(t){return t.pointId!==e||(i.removeRoutingPoint(n,t),!1)})))}},{key:"removeLastRoutingPoint",value:function(e){var t=this.routePoints.pop();t&&this.removeRoutingPoint(e,t)}},{key:"removeAllRoutePoints",value:function(e){var t=this;this.routePoints.forEach((function(n){t.removeRoutingPoint(e,n)})),this.routePoints=[]}},{key:"removeRoutingPoint",value:function(e,t){e.remove(t),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}},{key:"sendRoutingRequest",value:function(e,t,n){if(0===this.routePoints.length)return alert("Please provide at least an end point."),!1;var i=this.routePoints.map((function(e){return e.position.z=0,n.applyOffset(e.position,!0)})),r=i.length>1?i[0]:n.applyOffset(e,!0),o=i.length>1?null:t,s=i[i.length-1],l=i.length>1?i.slice(1,-1):[];return a.default.requestRoute(r,o,l,s,this.parkingSpaceId),!0}}]),e}();t.default=u},function(e,t,n){var i=n(11);(i=n(11)).OrbitControls=function(e,t){var n,r,o,a,s;this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.target=new i.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.25,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={ORBIT:i.MOUSE.LEFT,ZOOM:i.MOUSE.MIDDLE,PAN:i.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return m.phi},this.getAzimuthalAngle=function(){return m.theta},this.reset=function(){l.target.copy(l.target0),l.object.position.copy(l.position0),l.object.zoom=l.zoom0,l.object.updateProjectionMatrix(),l.dispatchEvent(u),l.update(),p=h.NONE},this.update=(n=new i.Vector3,r=(new i.Quaternion).setFromUnitVectors(e.up,new i.Vector3(0,1,0)),o=r.clone().inverse(),a=new i.Vector3,s=new i.Quaternion,function(){var e=l.object.position;return n.copy(e).sub(l.target),n.applyQuaternion(r),m.setFromVector3(n),l.autoRotate&&p===h.NONE&&P(2*Math.PI/60/60*l.autoRotateSpeed),m.theta+=g.theta,m.phi+=g.phi,m.theta=Math.max(l.minAzimuthAngle,Math.min(l.maxAzimuthAngle,m.theta)),m.phi=Math.max(l.minPolarAngle,Math.min(l.maxPolarAngle,m.phi)),m.makeSafe(),m.radius*=y,m.radius=Math.max(l.minDistance,Math.min(l.maxDistance,m.radius)),l.target.add(v),n.setFromSpherical(m),n.applyQuaternion(o),e.copy(l.target).add(n),l.object.lookAt(l.target),!0===l.enableDamping?(g.theta*=1-l.dampingFactor,g.phi*=1-l.dampingFactor):g.set(0,0,0),y=1,v.set(0,0,0),!!(b||a.distanceToSquared(l.object.position)>f||8*(1-s.dot(l.object.quaternion))>f)&&(l.dispatchEvent(u),a.copy(l.object.position),s.copy(l.object.quaternion),b=!1,!0)}),this.dispose=function(){l.domElement.removeEventListener("contextmenu",Y,!1),l.domElement.removeEventListener("mousedown",z,!1),l.domElement.removeEventListener("wheel",j,!1),l.domElement.removeEventListener("touchstart",G,!1),l.domElement.removeEventListener("touchend",H,!1),l.domElement.removeEventListener("touchmove",V,!1),document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",W,!1)};var l=this,u={type:"change"},c={type:"start"},d={type:"end"},h={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY:4,TOUCH_PAN:5},p=h.NONE,f=1e-6,m=new i.Spherical,g=new i.Spherical,y=1,v=new i.Vector3,b=!1,_=new i.Vector2,x=new i.Vector2,w=new i.Vector2,M=new i.Vector2,S=new i.Vector2,E=new i.Vector2,T=new i.Vector2,C=new i.Vector2,O=new i.Vector2;function k(){return Math.pow(.95,l.zoomSpeed)}function P(e){g.theta-=e}function A(e){g.phi-=e}var R,L=(R=new i.Vector3,function(e,t){R.setFromMatrixColumn(t,0),R.multiplyScalar(-e),v.add(R)}),I=function(){var e=new i.Vector3;return function(t,n){e.setFromMatrixColumn(n,1),e.multiplyScalar(t),v.add(e)}}(),D=function(){var e=new i.Vector3;return function(t,n){var r=l.domElement===document?l.domElement.body:l.domElement;if(l.object instanceof i.PerspectiveCamera){var o=l.object.position;e.copy(o).sub(l.target);var a=e.length();a*=Math.tan(l.object.fov/2*Math.PI/180),L(2*t*a/r.clientHeight,l.object.matrix),I(2*n*a/r.clientHeight,l.object.matrix)}else l.object instanceof i.OrthographicCamera?(L(t*(l.object.right-l.object.left)/l.object.zoom/r.clientWidth,l.object.matrix),I(n*(l.object.top-l.object.bottom)/l.object.zoom/r.clientHeight,l.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),l.enablePan=!1)}}();function N(e){l.object instanceof i.PerspectiveCamera?y/=e:l.object instanceof i.OrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom*e)),l.object.updateProjectionMatrix(),b=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function F(e){l.object instanceof i.PerspectiveCamera?y*=e:l.object instanceof i.OrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom/e)),l.object.updateProjectionMatrix(),b=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function z(e){if(!1!==l.enabled){if(e.preventDefault(),e.button===l.mouseButtons.ORBIT){if(!1===l.enableRotate)return;!function(e){_.set(e.clientX,e.clientY)}(e),p=h.ROTATE}else if(e.button===l.mouseButtons.ZOOM){if(!1===l.enableZoom)return;!function(e){T.set(e.clientX,e.clientY)}(e),p=h.DOLLY}else if(e.button===l.mouseButtons.PAN){if(!1===l.enablePan)return;!function(e){M.set(e.clientX,e.clientY)}(e),p=h.PAN}p!==h.NONE&&(document.addEventListener("mousemove",B,!1),document.addEventListener("mouseup",U,!1),l.dispatchEvent(c))}}function B(e){if(!1!==l.enabled)if(e.preventDefault(),p===h.ROTATE){if(!1===l.enableRotate)return;!function(e){x.set(e.clientX,e.clientY),w.subVectors(x,_);var t=l.domElement===document?l.domElement.body:l.domElement;P(2*Math.PI*w.x/t.clientWidth*l.rotateSpeed),A(2*Math.PI*w.y/t.clientHeight*l.rotateSpeed),_.copy(x),l.update()}(e)}else if(p===h.DOLLY){if(!1===l.enableZoom)return;!function(e){C.set(e.clientX,e.clientY),O.subVectors(C,T),O.y>0?N(k()):O.y<0&&F(k()),T.copy(C),l.update()}(e)}else if(p===h.PAN){if(!1===l.enablePan)return;!function(e){S.set(e.clientX,e.clientY),E.subVectors(S,M),D(E.x,E.y),M.copy(S),l.update()}(e)}}function U(e){!1!==l.enabled&&(document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",U,!1),l.dispatchEvent(d),p=h.NONE)}function j(e){!1===l.enabled||!1===l.enableZoom||p!==h.NONE&&p!==h.ROTATE||(e.preventDefault(),e.stopPropagation(),function(e){e.deltaY<0?F(k()):e.deltaY>0&&N(k()),l.update()}(e),l.dispatchEvent(c),l.dispatchEvent(d))}function W(e){!1!==l.enabled&&!1!==l.enableKeys&&!1!==l.enablePan&&function(e){switch(e.keyCode){case l.keys.UP:D(0,l.keyPanSpeed),l.update();break;case l.keys.BOTTOM:D(0,-l.keyPanSpeed),l.update();break;case l.keys.LEFT:D(l.keyPanSpeed,0),l.update();break;case l.keys.RIGHT:D(-l.keyPanSpeed,0),l.update()}}(e)}function G(e){if(!1!==l.enabled){switch(e.touches.length){case 1:if(!1===l.enableRotate)return;!function(e){_.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_ROTATE;break;case 2:if(!1===l.enableZoom)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,i=Math.sqrt(t*t+n*n);T.set(0,i)}(e),p=h.TOUCH_DOLLY;break;case 3:if(!1===l.enablePan)return;!function(e){M.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_PAN;break;default:p=h.NONE}p!==h.NONE&&l.dispatchEvent(c)}}function V(e){if(!1!==l.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:if(!1===l.enableRotate)return;if(p!==h.TOUCH_ROTATE)return;!function(e){x.set(e.touches[0].pageX,e.touches[0].pageY),w.subVectors(x,_);var t=l.domElement===document?l.domElement.body:l.domElement;P(2*Math.PI*w.x/t.clientWidth*l.rotateSpeed),A(2*Math.PI*w.y/t.clientHeight*l.rotateSpeed),_.copy(x),l.update()}(e);break;case 2:if(!1===l.enableZoom)return;if(p!==h.TOUCH_DOLLY)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,i=Math.sqrt(t*t+n*n);C.set(0,i),O.subVectors(C,T),O.y>0?F(k()):O.y<0&&N(k()),T.copy(C),l.update()}(e);break;case 3:if(!1===l.enablePan)return;if(p!==h.TOUCH_PAN)return;!function(e){S.set(e.touches[0].pageX,e.touches[0].pageY),E.subVectors(S,M),D(E.x,E.y),M.copy(S),l.update()}(e);break;default:p=h.NONE}}function H(e){!1!==l.enabled&&(l.dispatchEvent(d),p=h.NONE)}function Y(e){e.preventDefault()}l.domElement.addEventListener("contextmenu",Y,!1),l.domElement.addEventListener("mousedown",z,!1),l.domElement.addEventListener("wheel",j,!1),l.domElement.addEventListener("touchstart",G,!1),l.domElement.addEventListener("touchend",H,!1),l.domElement.addEventListener("touchmove",V,!1),window.addEventListener("keydown",W,!1),this.update()},i.OrbitControls.prototype=Object.create(i.EventDispatcher.prototype),i.OrbitControls.prototype.constructor=i.OrbitControls,Object.defineProperties(i.OrbitControls.prototype,{center:{get:function(){return console.warn("THREE.OrbitControls: .center has been renamed to .target"),this.target}},noZoom:{get:function(){return console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),!this.enableZoom},set:function(e){console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),this.enableZoom=!e}},noRotate:{get:function(){return console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),!this.enableRotate},set:function(e){console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),this.enableRotate=!e}},noPan:{get:function(){return console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),!this.enablePan},set:function(e){console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),this.enablePan=!e}},noKeys:{get:function(){return console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),!this.enableKeys},set:function(e){console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),this.enableKeys=!e}},staticMoving:{get:function(){return console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),!this.enableDamping},set:function(e){console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),this.enableDamping=!e}},dynamicDampingFactor:{get:function(){return console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor},set:function(e){console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor=e}}})},function(e,t,n){e.exports=n.p+"assets/cQGVQz4W_CET1VNG7zZBI.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=l(n(1)),r=l(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),a=l(n(12)),s=n(27);function l(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(){(0,i.default)(this,e),this.circle=null,this.base=null}return(0,r.default)(e,[{key:"update",value:function(e,t,n){if(e.gps&&e.autoDrivingCar){if(!this.circle){var i=new o.MeshBasicMaterial({color:27391,transparent:!1,opacity:.5});this.circle=(0,s.drawCircle)(.2,i),n.add(this.circle)}if(!this.base){var r=a.default.hmi.vehicleParam;this.base=(0,s.drawSegmentsFromPoints)([new o.Vector3(r.frontEdgeToCenter,-r.leftEdgeToCenter,0),new o.Vector3(r.frontEdgeToCenter,r.rightEdgeToCenter,0),new o.Vector3(-r.backEdgeToCenter,r.rightEdgeToCenter,0),new o.Vector3(-r.backEdgeToCenter,-r.leftEdgeToCenter,0),new o.Vector3(r.frontEdgeToCenter,-r.leftEdgeToCenter,0)],27391,2,5),n.add(this.base)}var l=a.default.options.showPositionGps,u=t.applyOffset({x:e.gps.positionX,y:e.gps.positionY,z:.01});this.circle.position.set(u.x,u.y,u.z),this.circle.visible=l,this.base.position.set(u.x,u.y,u.z),this.base.rotation.set(0,0,e.gps.heading),this.base.visible=l}}}]),e}();t.default=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(1)),r=a(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11));function a(e){return e&&e.__esModule?e:{default:e}}var s={.5:16711680,1:16744192,1.5:16776960,2:65280,2.5:255,3:4915330,10:9699539},l=function(){function e(){(0,i.default)(this,e),this.points=null,this.initialized=!1}return(0,r.default)(e,[{key:"initialize",value:function(){this.points=this.createPointCloud(s[.5]),this.initialized=!0}},{key:"createPointCloud",value:function(e){for(var t=new o.Geometry,n=[],i=0;i<1e5;++i){var r=new o.Vector3;r.set(0,0,-10),t.vertices.push(r),n[i]=new o.Color(e)}t.colors=n;var a=new o.PointsMaterial({size:.25,transparent:!0,opacity:.7,vertexColors:o.VertexColors}),s=new o.Points(t,a);return s.frustumCulled=!1,s}},{key:"update",value:function(e,t){if(null!==this.points)if(e.num.length%3==0){for(var n=e.num.length/3,i=n<1e5?n:1e5,r=.5,o=0;o1e4&&r>2e3){var o="Connection to the server has been lost.";a.default.monitor.insert("FATAL",o,n),u.default.getCurrentText()===o&&u.default.isSpeaking()||u.default.speakOnce(o)}e.initialize()},clearInterval(this.timer),this.timer=setInterval((function(){e.websocket.readyState===e.websocket.OPEN&&(e.updatePOI&&(e.requestDefaultRoutingEndPoint(),e.updatePOI=!1),e.requestSimulationWorld(a.default.options.showPNCMonitor),a.default.hmi.isCalibrationMode&&e.requestDataCollectionProgress())}),this.simWorldUpdatePeriodMs)}},{key:"updateMapIndex",value:function(e){var t=new Date,n=t-this.mapLastUpdateTimestamp;e.mapHash&&n>=this.mapUpdatePeriodMs&&(s.default.updateMapIndex(e.mapHash,e.mapElementIds,e.mapRadius),this.mapLastUpdateTimestamp=t)}},{key:"checkMessage",value:function(e){var t=(new Date).getTime(),n=t-this.simWorldLastUpdateTimestamp;0!==this.simWorldLastUpdateTimestamp&&n>200&&console.warn("Last sim_world_update took "+n+"ms"),this.secondLastSeqNum===e.sequenceNum&&console.warn("Received duplicate simulation_world:",this.lastSeqNum),this.secondLastSeqNum=this.lastSeqNum,this.lastSeqNum=e.sequenceNum,this.simWorldLastUpdateTimestamp=t}},{key:"requestSimulationWorld",value:function(e){this.websocket.send((0,i.default)({type:"RequestSimulationWorld",planning:e}))}},{key:"checkRoutingPoint",value:function(e){var t={type:"CheckRoutingPoint",point:e};this.websocket.send((0,i.default)(t))}},{key:"requestMapElementIdsByRadius",value:function(e){this.websocket.send((0,i.default)({type:"RetrieveMapElementIdsByRadius",radius:e}))}},{key:"requestRoute",value:function(e,t,n,r,o){var a={type:"SendRoutingRequest",start:e,end:r,waypoint:n};o&&(a.parkingSpaceId=o),t&&(a.start.heading=t),this.websocket.send((0,i.default)(a))}},{key:"requestDefaultRoutingEndPoint",value:function(){this.websocket.send((0,i.default)({type:"GetDefaultEndPoint"}))}},{key:"resetBackend",value:function(){this.websocket.send((0,i.default)({type:"Reset"}))}},{key:"dumpMessages",value:function(){this.websocket.send((0,i.default)({type:"Dump"}))}},{key:"changeSetupMode",value:function(e){this.websocket.send((0,i.default)({type:"HMIAction",action:"CHANGE_MODE",value:e}))}},{key:"changeMap",value:function(e){this.websocket.send((0,i.default)({type:"HMIAction",action:"CHANGE_MAP",value:e})),this.updatePOI=!0}},{key:"changeVehicle",value:function(e){this.websocket.send((0,i.default)({type:"HMIAction",action:"CHANGE_VEHICLE",value:e}))}},{key:"executeModeCommand",value:function(e){["SETUP_MODE","RESET_MODE","ENTER_AUTO_MODE"].includes(e)?this.websocket.send((0,i.default)({type:"HMIAction",action:e})):console.error("Unknown mode command found:",e)}},{key:"executeModuleCommand",value:function(e,t){["START_MODULE","STOP_MODULE"].includes(t)?this.websocket.send((0,i.default)({type:"HMIAction",action:t,value:e})):console.error("Unknown module command found:",t)}},{key:"submitDriveEvent",value:function(e,t,n,r){this.websocket.send((0,i.default)({type:"SubmitDriveEvent",event_time_ms:e,event_msg:t,event_type:n,is_reportable:r}))}},{key:"toggleSimControl",value:function(e){this.websocket.send((0,i.default)({type:"ToggleSimControl",enable:e}))}},{key:"requestRoutePath",value:function(){this.websocket.send((0,i.default)({type:"RequestRoutePath"}))}},{key:"publishNavigationInfo",value:function(e){this.websocket.send(e)}},{key:"requestDataCollectionProgress",value:function(){this.websocket.send((0,i.default)({type:"RequestDataCollectionProgress"}))}}]),e}();t.default=h},function(e,t,n){!function(){"use strict";var t={PI:Math.PI,x_pi:3e3*Math.PI/180,delta:function(e,t){var n=6378245,i=.006693421622965943,r=this.transformLat(t-105,e-35),o=this.transformLon(t-105,e-35),a=e/180*this.PI,s=Math.sin(a);s=1-i*s*s;var l=Math.sqrt(s);return{lat:r=180*r/(n*(1-i)/(s*l)*this.PI),lon:o=180*o/(n/l*Math.cos(a)*this.PI)}},wgs84_gcj02:function(e,t){if(this.outOfChina(t,e))return[e,t];var n=this.delta(t,e);return[e+n.lon,t+n.lat]},gcj02_wgs84:function(e,t){if(this.outOfChina(t,e))return[e,t];var n=this.delta(t,e);return[e-n.lon,t-n.lat]},gcj02_wgs84_precise:function(e,t){for(var n,i,r=.01,o=.01,a=t-r,s=e-o,l=t+r,u=e+o,c=0;;){n=(a+l)/2,i=(s+u)/2;var d=this.gcj_encrypt(n,i);if(r=d.lat-t,o=d.lon-e,Math.abs(r)<1e-9&&Math.abs(o)<1e-9)break;if(r>0?l=n:a=n,o>0?u=i:s=i,++c>1e4)break}return[i,n]},gcj02_bd09ll:function(e,t){var n=e,i=t,r=Math.sqrt(n*n+i*i)+2e-5*Math.sin(i*this.x_pi),o=Math.atan2(i,n)+3e-6*Math.cos(n*this.x_pi);return[r*Math.cos(o)+.0065,r*Math.sin(o)+.006]},bd09ll_gcj02:function(e,t){var n=e-.0065,i=t-.006,r=Math.sqrt(n*n+i*i)-2e-5*Math.sin(i*this.x_pi),o=Math.atan2(i,n)-3e-6*Math.cos(n*this.x_pi);return[r*Math.cos(o),r*Math.sin(o)]},outOfChina:function(e,t){return t<72.004||t>137.8347||(e<.8293||e>55.8271)},transformLat:function(e,t){var n=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*this.PI)+20*Math.sin(2*e*this.PI))/3,n+=2*(20*Math.sin(t*this.PI)+40*Math.sin(t/3*this.PI))/3,n+=2*(160*Math.sin(t/12*this.PI)+320*Math.sin(t*this.PI/30))/3},transformLon:function(e,t){var n=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*this.PI)+20*Math.sin(2*e*this.PI))/3,n+=2*(20*Math.sin(e*this.PI)+40*Math.sin(e/3*this.PI))/3,n+=2*(150*Math.sin(e/12*this.PI)+300*Math.sin(e/30*this.PI))/3}},n={crs:{bd09ll:"+proj=longlat +datum=BD09",gcj02:"+proj=longlat +datum=GCJ02",wgs84:"+proj=longlat +datum=WGS84 +no_defs"},transform:function(e,t,n){if(!e)return null;if(!t||!n)throw new Error("must provide a valid fromCRS and toCRS.");if(this._isCoord(e))return this._transformCoordinate(e,t,n);if(this._isArray(e)){for(var i=[],r=0;r0&&(this.imageSrcData="data:image/jpeg;base64,"+new e(t.image).toString("base64")),this.imageAspectRatio=t.imageAspectRatio;var r=new y.Matrix4;if(t.localization&&n.isInitialized()){var o=n.applyOffset({x:t.localization[12],y:t.localization[13]});t.localization[12]=o.x,t.localization[13]=o.y,t.localization[14]=0,r.fromArray(t.localization)}var a=new y.Matrix4;t.localization2cameraTf&&a.fromArray(t.localization2cameraTf);var s=new y.Matrix4;s.multiplyMatrices(r,a);var l=this.getPositionAndRotationFromMatrix(a),u=this.getPositionAndRotationFromMatrix(r),c=this.getPositionAndRotationFromMatrix(s),d=n.applyOffset(c.position,!0);["x","y","z"].forEach((function(e){i.initPosition.set(e,d[e]),i.initStaticRotation.set(e,l.rotation[e]),i.initDynamicRotation.set(e,u.rotation[e])}))}},{key:"update",value:function(e,t,n){var i=this["delta"+e];i&&i.has(t)&&i.set(t,i.get(t)+n)}},{key:"get",value:function(){var e=this,t={},n={},i={};["x","y","z"].forEach((function(r){t[r]=e.initPosition.get(r)+e.deltaPosition.get(r),n[r]=e.initStaticRotation.get(r)+e.deltaStaticRotation.get(r),i[r]=e.initDynamicRotation.get(r)+e.deltaDynamicRotation.get(r)}));var r=new y.Quaternion,o=new y.Euler(n.x,n.y,n.z);r.setFromEuler(o);var a=new y.Quaternion,s=new y.Euler(i.x,i.y,i.z);a.setFromEuler(s);var l=new y.Quaternion;l.multiplyQuaternions(a,r);var u=(new y.Euler).setFromQuaternion(l);return{position:t,rotation:u}}},{key:"reset",value:function(){var e=this;["x","y","z"].forEach((function(t){e.deltaPosition.set(t,0),e.deltaStaticRotation.set(t,0),e.deltaDynamicRotation.set(t,0)}))}}]),t}(),r=_(i.prototype,"initPosition",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),o=_(i.prototype,"deltaPosition",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),a=_(i.prototype,"initStaticRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),s=_(i.prototype,"deltaStaticRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),l=_(i.prototype,"initDynamicRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),u=_(i.prototype,"deltaDynamicRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),c=_(i.prototype,"imageSrcData",[g.observable],{enumerable:!0,initializer:function(){return null}}),d=_(i.prototype,"imageAspectRatio",[g.observable],{enumerable:!0,initializer:function(){return null}}),_(i.prototype,"init",[g.action],(0,p.default)(i.prototype,"init"),i.prototype),_(i.prototype,"update",[g.action],(0,p.default)(i.prototype,"update"),i.prototype),_(i.prototype,"reset",[g.action],(0,p.default)(i.prototype,"reset"),i.prototype),i);t.default=x}).call(this,n(335).Buffer)},function(e,t,n){"use strict";(function(e){ + */var i=n(72),r=n(109),o=n(110),a=n(111),s="function"==typeof Symbol&&Symbol.for,l=s?Symbol.for("react.element"):60103,u=s?Symbol.for("react.portal"):60106,c=s?Symbol.for("react.fragment"):60107,d=s?Symbol.for("react.strict_mode"):60108,h=s?Symbol.for("react.provider"):60109,p=s?Symbol.for("react.context"):60110,f=s?Symbol.for("react.async_mode"):60111,m=s?Symbol.for("react.forward_ref"):60112,g="function"==typeof Symbol&&Symbol.iterator;function y(e){for(var t=arguments.length-1,n="http://reactjs.org/docs/error-decoder.html?invariant="+e,i=0;ik.length&&k.push(e)}function R(e,t,n,i){var r=typeof e;"undefined"!==r&&"boolean"!==r||(e=null);var o=!1;if(null===e)o=!0;else switch(r){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case l:case u:o=!0}}if(o)return n(i,e,""===t?"."+L(e,0):t),1;if(o=0,t=""===t?".":t+":",Array.isArray(e))for(var a=0;a of . */\n.dreamview-canvas {\n z-index: 1;\n position: absolute; }\n .dreamview-canvas .geolocation {\n z-index: 10;\n position: absolute;\n bottom: 10px;\n right: 10px;\n color: white; }\n\n.hidden {\n display: none; }\n\n.tools {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 1 1 auto;\n overflow: hidden;\n border-top: 1px solid #000000;\n background: #000000; }\n .tools .card {\n flex: 1 1 auto;\n margin-right: 1px;\n padding: 15px 10px 25px 20px;\n background: #1D2226; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .card {\n padding: 15px 5px 15px 15px; } }\n .tools .card .card-header {\n width: 100%;\n padding-bottom: 15px; }\n .tools .card .card-header span {\n width: 200px;\n border-bottom: 1px solid #999999;\n padding: 10px 10px 10px 0px;\n font-size: 18px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .card .card-header span {\n font-size: 16px; } }\n .tools .card .card-content-row {\n display: flex;\n flex-flow: row wrap;\n align-content: flex-start;\n overflow-x: hidden;\n overflow-y: auto;\n height: 85%; }\n .tools .card .card-content-column {\n display: flex;\n flex-flow: column nowrap;\n justify-content: flex-start;\n overflow-x: hidden;\n overflow-y: auto;\n height: 89%; }\n .tools .tool-view-menu {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 2 1 auto;\n z-index: 10 !important;\n margin-left: 1px;\n overflow-y: hidden;\n overflow-x: auto;\n background: #000000;\n color: #FFFFFF;\n text-align: left;\n white-space: nowrap;\n /* Radio button */ }\n .tools .tool-view-menu .summary {\n line-height: 50px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .tool-view-menu .summary {\n line-height: 25px; } }\n .tools .tool-view-menu .summary img {\n position: relative;\n width: 30px;\n height: 30px;\n transform: translate(-30%, 25%); }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .tool-view-menu .summary img {\n width: 20px;\n height: 20px;\n transform: translate(-50%, 10%); } }\n .tools .tool-view-menu .summary span {\n padding-left: 10px; }\n .tools .tool-view-menu input[type="radio"] {\n display: none; }\n .tools .tool-view-menu .radio-selector-label {\n display: inline-block;\n position: relative;\n transform: translate(10%, 30%);\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n width: 25px;\n height: 25px;\n margin-right: 6px;\n border-radius: 50%;\n -webkit-border-radius: 50%;\n background-color: #A0A0A0;\n box-shadow: inset 1px 0 #A0A0A0;\n border: 7px solid #3F4548; }\n .tools .tool-view-menu input[type="radio"]:checked + .radio-selector-label {\n border: 7px solid #0E3D62;\n background-color: #30A5FF; }\n .tools .console {\n z-index: 10;\n position: relative;\n min-width: 230px;\n margin: 0px;\n border: none;\n padding: 0px;\n overflow: hidden; }\n .tools .console .monitor-item {\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default; }\n .tools .console .monitor-item .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .console .monitor-item .icon {\n height: 15px;\n width: 15px; } }\n .tools .console .monitor-item .text {\n position: relative;\n width: calc(100% - 82px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .console .monitor-item .text {\n font-size: 12px; } }\n .tools .console .monitor-item .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .tools .console .monitor-item .alert {\n color: #D7466F; }\n .tools .console .monitor-item .warn {\n color: #A3842D; }\n .tools .poi-button {\n min-width: 360px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tools .poi-button {\n min-width: 320px; } }\n\n.side-bar {\n display: flex;\n flex-direction: column;\n flex: 0 0 auto;\n z-index: 100;\n background: #1D2226;\n border-right: 1px solid #000000;\n overflow-y: auto;\n overflow-x: hidden; }\n .side-bar .main-panel {\n margin-bottom: auto; }\n .side-bar .button {\n display: block;\n width: 90px;\n border: none;\n padding: 20px 10px;\n text-align: center;\n background: #1D2226;\n color: #FFFFFF;\n opacity: 0.6;\n cursor: pointer; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button {\n width: 80px;\n padding-top: 10px; } }\n .side-bar .button .icon {\n width: 40px;\n height: 40px;\n margin: auto; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button .icon {\n width: 30px;\n height: 30px; } }\n .side-bar .button .label {\n padding-top: 10px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button .label {\n padding-top: 4px; } }\n .side-bar .button:first-child {\n padding-top: 25px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .button:first-child {\n padding-top: 10px; } }\n .side-bar .button:disabled {\n color: #414141;\n cursor: not-allowed; }\n .side-bar .button:disabled .icon {\n opacity: 0.2; }\n .side-bar .button-active {\n background: #2A3238;\n opacity: 1;\n color: #FFFFFF; }\n .side-bar .sub-button {\n display: block;\n width: 90px;\n height: 80px;\n border: none;\n padding: 10px;\n text-align: center;\n background: #3E4041;\n color: #999999;\n cursor: pointer; }\n @media (max-height: 800px), (max-width: 1280px) {\n .side-bar .sub-button {\n width: 80px;\n height: 60px; } }\n .side-bar .sub-button:not(:last-child) {\n border-bottom: 1px solid #1D2226; }\n .side-bar .sub-button:disabled {\n cursor: not-allowed;\n opacity: 0.3; }\n .side-bar .sub-button-active {\n background: #30A5FF;\n color: #FFFFFF; }\n\n.status-bar {\n z-index: 10;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%; }\n .status-bar .rss {\n flex: 1 1 auto;\n position: absolute;\n width: 240px;\n height: 270px;\n top: 10px;\n right: 250px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .rss .rss-header {\n width: 100%;\n text-align: center;\n font-size: 15px; }\n .status-bar .rss .rss-header div {\n padding: 5px 0 5px 0; }\n .status-bar .rss .rss-content-column {\n flex-flow: column nowrap;\n overflow-x: hidden;\n overflow-y: auto;\n height: 89%; }\n .status-bar .rss .rss-console {\n z-index: 10;\n position: relative;\n min-width: 230px;\n margin: 0px;\n border: none;\n padding: 0px;\n overflow: hidden;\n white-space: pre-wrap; }\n .status-bar .rss .rss-console .monitor-item {\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default; }\n .status-bar .rss .rss-console .monitor-item .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .rss .rss-console .monitor-item .icon {\n height: 15px;\n width: 15px; } }\n .status-bar .rss .rss-console .monitor-item .text {\n position: relative;\n width: calc(100% - 80px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .rss .rss-console .monitor-item .text {\n font-size: 12px; } }\n .status-bar .rss .rss-console .monitor-item .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .status-bar .rss .rss-console .monitor-item .alert {\n color: #D7466F; }\n .status-bar .rss .rss-console .monitor-item .warn {\n color: #A3842D; }\n .status-bar .auto-meter {\n position: absolute;\n width: 224px;\n height: 112px;\n top: 10px;\n right: 20px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .auto-meter .speed-read {\n position: absolute;\n top: 27px;\n left: 15px;\n font-family: Arial;\n font-weight: lighter;\n font-size: 35px;\n color: #ffffff; }\n .status-bar .auto-meter .speed-unit {\n position: absolute;\n top: 66px;\n left: 17px;\n color: #ffffff;\n font-size: 15px; }\n .status-bar .auto-meter .brake-panel {\n position: absolute;\n top: 21px;\n right: 2px; }\n .status-bar .auto-meter .throttle-panel {\n position: absolute;\n top: 61px;\n right: 2px; }\n .status-bar .auto-meter .meter-container .meter-label {\n font-size: 13px;\n color: #ffffff; }\n .status-bar .auto-meter .meter-container .meter-label .meter-value {\n position: absolute;\n top: 2px;\n right: 10px;\n font-size: 10px; }\n .status-bar .auto-meter .meter-container .meter-head {\n display: inline-block;\n position: absolute;\n margin: 5px 0px 0px 0px;\n border-width: 4px;\n border-style: solid; }\n .status-bar .auto-meter .meter-container .meter-background {\n position: relative;\n display: block;\n height: 2px;\n width: 120px;\n margin: 8px; }\n .status-bar .auto-meter .meter-container .meter-background span {\n position: relative;\n overflow: hidden;\n display: block;\n height: 100%; }\n .status-bar .wheel-panel {\n display: flex;\n flex-direction: row;\n justify-content: left;\n align-items: center;\n position: absolute;\n top: 128px;\n right: 20px;\n width: 187px;\n height: 92px;\n padding: 10px 22px 10px 15px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .wheel-panel .steerangle-read {\n font-family: Arial;\n font-weight: lighter;\n font-size: 35px;\n color: #ffffff; }\n .status-bar .wheel-panel .steerangle-unit {\n padding: 20px 10px 0px 3px;\n color: #ffffff;\n font-size: 13px; }\n .status-bar .wheel-panel .left-arrow {\n position: absolute;\n top: 45px;\n right: 115px;\n width: 0px;\n height: 0px;\n border-style: solid;\n border-width: 12px 15px 12px 0px;\n border-color: transparent; }\n .status-bar .wheel-panel .right-arrow {\n position: absolute;\n top: 45px;\n right: 15px;\n width: 0px;\n height: 0px;\n border-style: solid;\n border-width: 12px 0 12px 15px;\n border-color: transparent transparent transparent #30435e; }\n .status-bar .wheel-panel .wheel {\n position: absolute;\n top: 15px;\n right: 33px; }\n .status-bar .wheel-panel .wheel-background {\n stroke-width: 3px;\n stroke: #006AFF; }\n .status-bar .wheel-panel .wheel-arm {\n stroke-width: 3px;\n stroke: #006AFF;\n fill: #006AFF; }\n .status-bar .traffic-light-and-driving-mode {\n position: absolute;\n top: 246px;\n right: 20px;\n width: 224px;\n height: 35px;\n font-size: 14px; }\n .status-bar .traffic-light-and-driving-mode .traffic-light {\n position: absolute;\n width: 116px;\n height: 35px;\n background: rgba(0, 0, 0, 0.8); }\n .status-bar .traffic-light-and-driving-mode .traffic-light .symbol {\n position: relative;\n top: 4px;\n left: 4px;\n width: 28px;\n height: 28px; }\n .status-bar .traffic-light-and-driving-mode .traffic-light .text {\n position: absolute;\n top: 10px;\n right: 8px;\n font-size: 14px;\n color: #FFFFFF; }\n .status-bar .traffic-light-and-driving-mode .driving-mode {\n position: absolute;\n top: 0px;\n right: 0px;\n width: 105px;\n height: 35px; }\n .status-bar .traffic-light-and-driving-mode .driving-mode .text {\n position: absolute;\n top: 50%;\n left: 50%;\n float: right;\n transform: translate(-50%, -50%);\n text-align: center;\n font-size: 14px; }\n .status-bar .traffic-light-and-driving-mode .auto-mode {\n background: linear-gradient(to right, rgba(17, 30, 48, 0.8), rgba(7, 42, 94, 0.8));\n border-right: 1px solid #006AFF;\n color: #006AFF; }\n .status-bar .traffic-light-and-driving-mode .manual-mode {\n background: linear-gradient(to right, rgba(30, 17, 17, 0.8), rgba(71, 36, 36, 0.8));\n color: #B43131;\n border-right: 1px solid #B43131; }\n .status-bar .notification-warn {\n position: absolute;\n top: 10px;\n right: 260px;\n width: 260px;\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default;\n border: 1px solid #A3842D;\n background-color: rgba(52, 39, 5, 0.3); }\n .status-bar .notification-warn .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-warn .icon {\n height: 15px;\n width: 15px; } }\n .status-bar .notification-warn .text {\n position: relative;\n width: calc(100% - 17px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-warn .text {\n font-size: 12px; } }\n .status-bar .notification-warn .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .status-bar .notification-warn .alert {\n color: #D7466F; }\n .status-bar .notification-warn .warn {\n color: #A3842D; }\n .status-bar .notification-alert {\n position: absolute;\n top: 10px;\n right: 260px;\n width: 260px;\n display: flex;\n list-style-type: none;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n border-top: 1px solid #333333;\n padding: 10px;\n cursor: default;\n border: 1px solid #D7466F;\n background-color: rgba(74, 5, 24, 0.3); }\n .status-bar .notification-alert .icon {\n position: relative;\n height: 20px;\n width: 20px;\n padding-right: 5px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-alert .icon {\n height: 15px;\n width: 15px; } }\n .status-bar .notification-alert .text {\n position: relative;\n width: calc(100% - 17px);\n padding-left: 5px;\n line-height: 150%;\n font-size: 14px;\n word-wrap: break-word;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .status-bar .notification-alert .text {\n font-size: 12px; } }\n .status-bar .notification-alert .time {\n position: absolute;\n right: 5px;\n font-size: 12px; }\n .status-bar .notification-alert .alert {\n color: #D7466F; }\n .status-bar .notification-alert .warn {\n color: #A3842D; }\n\n.tasks {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 1 1 auto;\n z-index: 10;\n overflow-x: auto;\n overflow-y: hidden; }\n .tasks .command-group {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n flex: 1 1 0;\n min-height: 45px;\n min-width: 130px; }\n .tasks .command-group .name {\n width: 40px;\n padding: 15px; }\n .tasks .start-auto-command {\n flex: 2 2 0; }\n .tasks .start-auto-command .start-auto-button {\n max-height: unset; }\n .tasks .others {\n min-width: 245px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tasks .others {\n min-width: 225px; } }\n .tasks .others .others-checkbox {\n margin-left: 10px; }\n .tasks .delay {\n min-width: 260px;\n line-height: 26px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .tasks .delay {\n min-width: 230px; } }\n .tasks .delay .delay-item {\n position: relative;\n margin: 0px 10px; }\n .tasks .delay .delay-item .name {\n display: inline-block;\n min-width: 140px;\n color: #1C9063; }\n .tasks .delay .delay-item .value {\n display: inline-block;\n position: absolute;\n right: 0px;\n min-width: 70px;\n text-align: right; }\n .tasks .delay .delay-item .warning {\n color: #b43131; }\n .tasks .camera {\n min-width: 265px; }\n .tasks .disabled {\n cursor: not-allowed; }\n\n.module-controller {\n display: flex;\n flex-flow: row nowrap;\n align-items: stretch;\n flex: 1 1 auto;\n z-index: 10;\n overflow: hidden; }\n .module-controller .controller {\n min-width: 180px; }\n .module-controller .modules-container {\n flex-flow: column wrap; }\n .module-controller .status-display {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-around;\n min-width: 250px;\n padding: 5px 20px 5px 5px; }\n .module-controller .status-display:hover {\n background: #2A3238; }\n .module-controller .status-display .name {\n padding: 10px;\n min-width: 80px; }\n .module-controller .status-display .status {\n position: relative;\n width: 130px;\n padding: 10px;\n background: #000000;\n white-space: nowrap; }\n .module-controller .status-display .status .status-icon {\n position: absolute;\n right: 10px;\n width: 15px;\n height: 15px;\n background-color: #B43131; }\n\n.route-editing-bar {\n z-index: 10;\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n min-height: 90px;\n border-bottom: 3px solid #000000;\n padding-left: 10px;\n background: #1D2226; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar {\n min-height: 60px; } }\n .route-editing-bar .editing-panel {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n white-space: nowrap; }\n .route-editing-bar .editing-panel .button {\n height: 90px;\n border: none;\n padding: 10px 15px;\n background: #1D2226;\n outline: none;\n color: #999999; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .button {\n height: 60px;\n padding: 5px 10px; } }\n .route-editing-bar .editing-panel .button img {\n display: block;\n top: 23px;\n margin: 15px auto; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .button img {\n top: 13px;\n margin: 7px auto; } }\n .route-editing-bar .editing-panel .button span {\n font-family: PingFangSC-Light;\n color: #D8D8D8;\n text-align: center; }\n .route-editing-bar .editing-panel .button:hover {\n background: #2A3238; }\n .route-editing-bar .editing-panel .active {\n color: #FFFFFF;\n background: #2A3238; }\n .route-editing-bar .editing-panel .editing-tip {\n height: 90px;\n width: 90px;\n margin-left: auto;\n border: none;\n color: #D8D8D8; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .editing-tip {\n height: 60px;\n width: 60px; } }\n .route-editing-bar .editing-panel .editing-tip .tip-popup {\n position: absolute;\n top: 120%;\n right: 15px;\n width: 400px;\n border-radius: 3px;\n padding: 20px;\n background-color: #FFFFFF;\n color: #555555;\n text-align: left;\n white-space: pre-wrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .route-editing-bar .editing-panel .editing-tip .tip-popup {\n right: 5px; } }\n .route-editing-bar .editing-panel .editing-tip .tip-popup .title {\n padding-bottom: 10px;\n font-size: 16px;\n font-weight: bold; }\n .route-editing-bar .editing-panel .editing-tip .tip-popup table {\n border-collapse: collapse; }\n .route-editing-bar .editing-panel .editing-tip .tip-popup table th, .route-editing-bar .editing-panel .editing-tip .tip-popup table td {\n border: 1px solid #D9D9D9;\n padding: 10px; }\n .route-editing-bar .editing-panel .editing-tip .tip-popup table th {\n text-align: center; }\n\n.data-recorder {\n z-index: 10; }\n .data-recorder table {\n width: 100%;\n height: 100%;\n min-width: 550px; }\n .data-recorder table tr, .data-recorder table td {\n border: 2px solid #1D2226; }\n .data-recorder table td:first-child {\n width: 100px;\n border: none;\n box-sizing: border-box;\n white-space: nowrap; }\n @media (max-height: 800px), (max-width: 1280px) {\n .data-recorder table td:first-child {\n width: 75px; } }\n .data-recorder table .drive-event-row .event-time {\n position: relative;\n padding: 10px 5px 10px 10px;\n background: #101315;\n white-space: nowrap; }\n .data-recorder table .drive-event-row .event-time .timestamp-button {\n position: relative;\n top: 0px;\n right: 0px;\n padding: 5px 20px;\n border: 5px solid #101315;\n margin-left: 10px;\n background: #006AFF;\n color: #FFFFFF; }\n .data-recorder table .drive-event-row .event-time .timestamp-button:hover {\n background: #49a9ee; }\n .data-recorder table .drive-event-msg-row {\n width: 70%;\n height: 70%; }\n .data-recorder table .drive-event-msg-row textarea {\n height: 100%;\n width: 100%;\n max-width: 500px;\n color: #FFFFFF;\n border: 1px solid #383838;\n background: #101315;\n resize: none; }\n .data-recorder table .drive-event-type-button, .data-recorder table .cancel-button, .data-recorder table .submit-button, .data-recorder table .submit-button:active {\n margin-right: 5px;\n padding: 10px 35px;\n border: none;\n background: #1D2226;\n color: #FFFFFF;\n cursor: pointer; }\n .data-recorder table .drive-event-type-button {\n background: #181818;\n padding: 10px 25px; }\n .data-recorder table .drive-event-type-button-active {\n color: #30A5FF; }\n .data-recorder table .submit-button {\n background: #000000; }\n .data-recorder table .submit-button:active {\n background: #383838; }\n .data-recorder table .multiple-items {\n display: flex;\n justify-content: flex-start;\n justify-content: space-between;\n padding: 0px;\n border: none;\n background: #1D2226; }\n\n.loader {\n flex: 0 0 auto;\n position: relative;\n width: 100%;\n height: 100%;\n background-color: #000C17; }\n .loader .img-container {\n position: relative;\n top: 55%;\n left: 50%;\n width: 40%;\n transform: translate(-50%, -50%); }\n .loader .img-container img {\n width: 100%;\n height: auto; }\n .loader .img-container .status-message {\n margin-top: 10px;\n font-size: 18px;\n /* fallback */\n font-size: 1.7vw;\n color: #FFFFFF;\n text-align: center;\n animation-name: flash;\n animation-duration: 2s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n animation-direction: alternate;\n animation-play-state: running; }\n\n@keyframes flash {\n from {\n color: #FFFFFF; }\n to {\n color: #000C17; } }\n .loader .offline-loader {\n width: 60%;\n max-width: 650px; }\n .loader .offline-loader .status-message {\n position: relative;\n top: -70px;\n /* fallback */\n top: -4.5vw;\n font-size: 3vw; }\n .loader .offline-loader .error-message {\n position: relative;\n top: -2vw;\n font-size: 1.5vw;\n color: #B43131;\n white-space: nowrap;\n text-align: center; }\n\n.camera-video {\n text-align: center; }\n .camera-video img {\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%; }\n\n.dashcam-player {\n z-index: 1;\n position: absolute;\n top: 0px;\n left: 0px;\n color: white; }\n .dashcam-player video {\n max-width: 380px;\n max-height: 300px; }\n @media (max-height: 800px), (max-width: 1280px) {\n .dashcam-player video {\n max-width: 300px;\n max-height: 200px; } }\n .dashcam-player .controls {\n display: flex;\n justify-content: flex-end;\n z-index: 10;\n position: absolute;\n right: 0px; }\n .dashcam-player .controls button {\n width: 27px;\n height: 27px;\n border: none;\n background-color: #000000;\n opacity: 0.6;\n color: #FFFFFF; }\n .dashcam-player .controls button img {\n width: 15px; }\n .dashcam-player .controls button:hover {\n opacity: 0.9; }\n .dashcam-player .controls .close {\n font-size: 20px; }\n .dashcam-player .controls .syncup {\n padding-top: 0.5em; }\n\n.navigation-view {\n z-index: 20;\n position: relative; }\n .navigation-view #map_canvas {\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8); }\n .navigation-view .window-resize-control {\n position: absolute;\n bottom: 0px;\n right: 0px;\n width: 30px;\n height: 30px;\n cursor: pointer; }\n',""]),t.locals={MIN_MAIN_VIEW_WIDTH:"600",SIDE_BAR_WIDTH_SMALL:"80",SIDE_BAR_WIDTH_LARGE:"90",HEADER_HEIGHT_SMALL:"55",HEADER_HEIGHT_LARGE:"60"}},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,i=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var r,o=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(o)?e:(r=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:i+o.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")}))}},function(e,t,n){n(192);var i=n(9).Object;e.exports=function(e,t,n){return i.defineProperty(e,t,n)}},function(e,t,n){var i=n(13);i(i.S+i.F*!n(21),"Object",{defineProperty:n(24).f})},function(e,t,n){n(194);var i=n(9).Object;e.exports=function(e,t){return i.getOwnPropertyDescriptor(e,t)}},function(e,t,n){var i=n(34),r=n(79).f;n(63)("getOwnPropertyDescriptor",(function(){return function(e,t){return r(i(e),t)}}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r,o,a,s,l,u,c,d,h,p,f,m,g=O(n(15)),y=O(n(16)),v=O(n(80)),b=O(n(23)),_=O(n(26)),x=O(n(1)),w=O(n(2)),M=O(n(85)),S=n(8),E=O(n(20)),T=O(n(70)),C=O(n(29));function O(e){return e&&e.__esModule?e:{default:e}}function k(e,t,n,i){n&&(0,g.default)(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(i):void 0})}function P(e,t,n,i,r){var o={};return Object.keys(i).forEach((function(e){o[e]=i[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,i){return i(e,t,n)||n}),o),r&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(r):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}var A=(0,M.default)({CAR:"Car Teleop",CONSOLE:"Console Teleop"}),R=(i=function(){function e(){(0,x.default)(this,e),this.modes=[],k(this,"currentMode",r,this),this.vehicles=[],k(this,"currentVehicle",o,this),this.defaultVehicleSize={height:1.48,width:2.11,length:4.933},this.vehicleParam={frontEdgeToCenter:3.89,backEdgeToCenter:1.043,leftEdgeToCenter:1.055,rightEdgeToCenter:1.055,height:1.48,width:2.11,length:4.933,steerRatio:16,wheelBase:2.8448},this.maps=[],k(this,"currentMap",a,this),k(this,"moduleStatus",s,this),k(this,"componentStatus",l,this),k(this,"enableStartAuto",u,this),k(this,"dockerImage",c,this),k(this,"isCoDriver",d,this),k(this,"isMute",h,this),this.displayName={},this.utmZoneId=10,k(this,"isCalibrationMode",p,this),k(this,"dataCollectionUpdateStatus",f,this),k(this,"dataCollectionProgress",m,this)}return(0,w.default)(e,[{key:"toggleCoDriverFlag",value:function(){this.isCoDriver=!this.isCoDriver}},{key:"toggleMuteFlag",value:function(){this.isMute=!this.isMute,T.default.setMute(this.isMute)}},{key:"updateStatus",value:function(e){if(e.dockerImage&&(this.dockerImage=e.dockerImage),e.utmZoneId&&(this.utmZoneId=e.utmZoneId),e.modes&&(this.modes=e.modes.sort()),e.currentMode&&(this.isCalibrationMode=e.currentMode.toLowerCase().includes("calibration"),this.currentMode!==e.currentMode&&this.resetDataCollectionProgress(),this.currentMode=e.currentMode),e.maps&&(this.maps=e.maps.sort()),e.currentMap&&(this.currentMap=e.currentMap),e.vehicles&&(this.vehicles=e.vehicles.sort()),e.currentVehicle&&(this.isCalibrationMode&&this.currentVehicle!==e.currentVehicle&&this.resetDataCollectionProgress(),this.currentVehicle=e.currentVehicle),e.modules){var t=(0,_.default)((0,b.default)(e.modules).sort()),n=(0,_.default)(this.moduleStatus.keys().sort());for(var i in t!==n&&this.moduleStatus.clear(),e.modules)this.moduleStatus.set(i,e.modules[i])}if(e.monitoredComponents){var r=(0,_.default)((0,b.default)(e.monitoredComponents).sort()),o=(0,_.default)(this.componentStatus.keys().sort());for(var a in r!==o&&this.componentStatus.clear(),e.monitoredComponents)this.componentStatus.set(a,e.monitoredComponents[a])}"string"==typeof e.passengerMsg&&T.default.speakRepeatedly(e.passengerMsg)}},{key:"update",value:function(e){this.enableStartAuto="READY_TO_ENGAGE"===e.engageAdvice}},{key:"updateVehicleParam",value:function(e){this.vehicleParam=e,C.default.adc.resizeCarScale(this.vehicleParam.length/this.defaultVehicleSize.length,this.vehicleParam.width/this.defaultVehicleSize.width,this.vehicleParam.height/this.defaultVehicleSize.height)}},{key:"toggleModule",value:function(e){this.moduleStatus.set(e,!this.moduleStatus.get(e));var t=this.moduleStatus.get(e)?"START_MODULE":"STOP_MODULE";E.default.executeModuleCommand(e,t)}},{key:"resetDataCollectionProgress",value:function(){this.dataCollectionUpdateStatus.clear(),this.dataCollectionProgress.clear()}},{key:"updateDataCollectionProgress",value:function(e){var t=this;(0,b.default)(e).sort().forEach((function(n){t.dataCollectionProgress.has(n)||(t.dataCollectionProgress.set(n,S.observable.map()),t.dataCollectionUpdateStatus.set(n,S.observable.map()));var i=t.dataCollectionProgress.get(n),r=t.dataCollectionUpdateStatus.get(n),o=e[n];(0,b.default)(o).sort().forEach((function(e){var t=i.get(e)!==o[e];i.set(e,o[e]),r.set(e,t)}))}))}},{key:"rotate2DPoint",value:function(e,t){var n=e.x,i=e.y;return{x:n*Math.cos(t)-i*Math.sin(t),y:n*Math.sin(t)+i*Math.cos(t)}}},{key:"calculateCarPolygonPoints",value:function(e,t,n){var i=this,r=this.vehicleParam,o=[{y:-r.leftEdgeToCenter,x:r.frontEdgeToCenter},{y:r.rightEdgeToCenter,x:r.frontEdgeToCenter},{y:r.rightEdgeToCenter,x:-r.backEdgeToCenter},{y:-r.leftEdgeToCenter,x:-r.backEdgeToCenter},{y:-r.leftEdgeToCenter,x:r.frontEdgeToCenter}];return o.forEach((function(r){var o=i.rotate2DPoint(r,n);r.x=e+o.x,r.y=t+o.y})),o}},{key:"inNavigationMode",get:function(){return"Navigation"===this.currentMode}},{key:"inCarTeleopMode",get:function(){return this.currentMode===A.CAR}},{key:"inConsoleTeleopMode",get:function(){return this.currentMode===A.CONSOLE}},{key:"inTeleopMode",get:function(){return(0,v.default)(A).includes(this.currentMode)}},{key:"shouldDisplayNavigationMap",get:function(){return this.inNavigationMode||this.inTeleopMode}}]),e}(),r=P(i.prototype,"currentMode",[S.observable],{enumerable:!0,initializer:function(){return"none"}}),o=P(i.prototype,"currentVehicle",[S.observable],{enumerable:!0,initializer:function(){return"none"}}),a=P(i.prototype,"currentMap",[S.observable],{enumerable:!0,initializer:function(){return"none"}}),s=P(i.prototype,"moduleStatus",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),l=P(i.prototype,"componentStatus",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),u=P(i.prototype,"enableStartAuto",[S.observable],{enumerable:!0,initializer:function(){return!1}}),c=P(i.prototype,"dockerImage",[S.observable],{enumerable:!0,initializer:function(){return"unknown"}}),d=P(i.prototype,"isCoDriver",[S.observable],{enumerable:!0,initializer:function(){return!1}}),h=P(i.prototype,"isMute",[S.observable],{enumerable:!0,initializer:function(){return!1}}),p=P(i.prototype,"isCalibrationMode",[S.observable],{enumerable:!0,initializer:function(){return!1}}),f=P(i.prototype,"dataCollectionUpdateStatus",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),m=P(i.prototype,"dataCollectionProgress",[S.observable],{enumerable:!0,initializer:function(){return S.observable.map()}}),P(i.prototype,"toggleCoDriverFlag",[S.action],(0,y.default)(i.prototype,"toggleCoDriverFlag"),i.prototype),P(i.prototype,"toggleMuteFlag",[S.action],(0,y.default)(i.prototype,"toggleMuteFlag"),i.prototype),P(i.prototype,"updateStatus",[S.action],(0,y.default)(i.prototype,"updateStatus"),i.prototype),P(i.prototype,"update",[S.action],(0,y.default)(i.prototype,"update"),i.prototype),P(i.prototype,"toggleModule",[S.action],(0,y.default)(i.prototype,"toggleModule"),i.prototype),P(i.prototype,"inNavigationMode",[S.computed],(0,y.default)(i.prototype,"inNavigationMode"),i.prototype),P(i.prototype,"inCarTeleopMode",[S.computed],(0,y.default)(i.prototype,"inCarTeleopMode"),i.prototype),P(i.prototype,"inConsoleTeleopMode",[S.computed],(0,y.default)(i.prototype,"inConsoleTeleopMode"),i.prototype),P(i.prototype,"inTeleopMode",[S.computed],(0,y.default)(i.prototype,"inTeleopMode"),i.prototype),P(i.prototype,"shouldDisplayNavigationMap",[S.computed],(0,y.default)(i.prototype,"shouldDisplayNavigationMap"),i.prototype),P(i.prototype,"resetDataCollectionProgress",[S.action],(0,y.default)(i.prototype,"resetDataCollectionProgress"),i.prototype),P(i.prototype,"updateDataCollectionProgress",[S.action],(0,y.default)(i.prototype,"updateDataCollectionProgress"),i.prototype),i);t.default=R},function(e,t,n){n(197),e.exports=n(9).Object.values},function(e,t,n){var i=n(13),r=n(113)(!1);i(i.S,"Object",{values:function(e){return r(e)}})},function(e,t,n){var i=n(34),r=n(64),o=n(199);e.exports=function(e){return function(t,n,a){var s,l=i(t),u=r(l.length),c=o(a,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var i=n(81),r=Math.max,o=Math.min;e.exports=function(e,t){return(e=i(e))<0?r(e+t,0):o(e,t)}},function(e,t,n){n(201),e.exports=n(9).Object.keys},function(e,t,n){var i=n(39),r=n(41);n(63)("keys",(function(){return function(e){return r(i(e))}}))},function(e,t,n){var i=n(9),r=i.JSON||(i.JSON={stringify:JSON.stringify});e.exports=function(e){return r.stringify.apply(r,arguments)}},function(e,t,n){n(204),e.exports=n(9).Object.freeze},function(e,t,n){var i=n(22),r=n(66).onFreeze;n(63)("freeze",(function(e){return function(t){return e&&i(t)?e(r(t)):t}}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=l(n(26)),r=l(n(1)),o=l(n(2)),a=l(n(12)),s=l(n(29));function l(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(t){(0,r.default)(this,e),this.serverAddr=t,this.websocket=null,this.lastUpdateTimestamp=0,this.lastSeqNum=-1,this.requestTimer=null,this.processTimer=null,this.frameData={},this.routingTime2Path={}}return(0,o.default)(e,[{key:"initialize",value:function(e){var t=this;if(!(e&&e.id&&e.map))return console.error("ERROR: missing required parameter(s)"),void a.default.setOfflineViewErrorMsg("Missing required parameter(s).");a.default.playback.setRecordId(e.id),a.default.playback.setMapId(e.map),e.url&&(this.serverUrl=location.protocol+"//"+e.url);try{this.websocket=new WebSocket(this.serverAddr)}catch(n){return console.error("Failed to establish a connection: "+n),void setTimeout((function(){t.initialize(e)}),1e3)}this.websocket.onopen=function(e){t.requestGroundMeta(a.default.playback.mapId)},this.websocket.onmessage=function(e){var n=JSON.parse(e.data);if(n.load_error)a.default.setOfflineViewErrorMsg(n.load_error);else switch(n.type){case"GroundMetadata":s.default.updateGroundMetadata(n.data),t.requestFrameCount(a.default.playback.recordId);break;case"FrameCount":a.default.playback.setNumFrames(n.data),a.default.playback.hasNext()&&t.requestSimulationWorld(a.default.playback.recordId,a.default.playback.next());break;case"RoutePath":t.routingTime2Path[n.routingTime]=n.routePath;break;case"SimWorldUpdate":t.checkMessage(n),a.default.setInitializationStatus(!0);var i="string"==typeof n.world?JSON.parse(n.world):n.world;i.routePath?t.routingTime2Path[i.routingTime]=i.routePath:i.routingTime in t.routingTime2Path||t.requestRoutePath(a.default.playback.recordId,i.sequenceNum),a.default.playback.isSeeking&&t.processSimWorld(i),!i.sequenceNum||i.sequenceNum in t.frameData||(t.frameData[i.sequenceNum]=i,a.default.playback.setLoadingMarker(i.sequenceNum))}},this.websocket.onclose=function(n){console.log("WebSocket connection closed, close_code: "+n.code),t.initialize(e)}}},{key:"checkMessage",value:function(e){0!==this.lastUpdateTimestamp&&e.timestamp-this.lastUpdateTimestamp>150&&console.log("Last sim_world_update took "+(e.timestamp-this.lastUpdateTimestamp)+"ms"),this.lastUpdateTimestamp=e.timestamp,-1!==this.lastSeqNum&&e.world.sequenceNum>this.lastSeqNum+1&&console.debug("Last seq: "+this.lastSeqNum+". New seq: "+e.world.sequenceNum+"."),this.lastSeqNum=e.world.sequenceNum}},{key:"startPlayback",value:function(e){var t=this;clearInterval(this.requestTimer),this.requestTimer=setInterval((function(){if(t.websocket.readyState===t.websocket.OPEN&&a.default.playback.initialized()){if(!a.default.playback.hasNext())return clearInterval(t.requestTimer),void(t.requestTimer=null);t.requestSimulationWorld(a.default.playback.recordId,a.default.playback.next())}}),e/2),clearInterval(this.processTimer),this.processTimer=setInterval((function(){if(a.default.playback.initialized()){var e=a.default.playback.seekingFrame;e in t.frameData&&t.processSimWorld(t.frameData[e]),a.default.playback.replayComplete&&(clearInterval(t.processTimer),t.processTimer=null)}}),e)}},{key:"pausePlayback",value:function(){clearInterval(this.requestTimer),clearInterval(this.processTimer),this.requestTimer=null,this.processTimer=null}},{key:"requestGroundMeta",value:function(e){this.websocket.send((0,i.default)({type:"RetrieveGroundMeta",mapId:e}))}},{key:"processSimWorld",value:function(e){a.default.playback.shouldProcessFrame(e)&&(e.routePath||(e.routePath=this.routingTime2Path[e.routingTime]),a.default.updateTimestamp(e.timestamp),s.default.maybeInitializeOffest(e.autoDrivingCar.positionX,e.autoDrivingCar.positionY),s.default.updateWorld(e),a.default.meters.update(e),a.default.monitor.update(e),a.default.trafficSignal.update(e))}},{key:"requestFrameCount",value:function(e){this.websocket.send((0,i.default)({type:"RetrieveFrameCount",recordId:e}))}},{key:"requestSimulationWorld",value:function(e,t){if(t in this.frameData){a.default.playback.isSeeking&&this.processSimWorld(this.frameData[t]);for(var n=t;n in this.frameData;)n++;a.default.playback.setLoadingMarker(n-1)}else this.websocket.send((0,i.default)({type:"RequestSimulationWorld",recordId:e,frameId:t}))}},{key:"requestRoutePath",value:function(e,t){this.websocket.send((0,i.default)({type:"requestRoutePath",recordId:e,frameId:t}))}}]),e}();t.default=u},function(e,t,n){var i;e.exports=((i=function(){function e(e){return r.appendChild(e.dom),e}function t(e){for(var t=0;ta+1e3&&(l.update(1e3*s/(e-a),100),a=e,s=0,c)){var t=performance.memory;c.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){o=this.end()},domElement:r,setMode:t}}).Panel=function(e,t,n){var i=1/0,r=0,o=Math.round,a=o(window.devicePixelRatio||1),s=80*a,l=48*a,u=3*a,c=2*a,d=3*a,h=15*a,p=74*a,f=30*a,m=document.createElement("canvas");m.width=s,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=n,g.fillRect(0,0,s,l),g.fillStyle=t,g.fillText(e,u,c),g.fillRect(d,h,p,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d,h,p,f),{dom:m,update:function(l,y){i=Math.min(i,l),r=Math.max(r,l),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,s,h),g.fillStyle=t,g.fillText(o(l)+" "+e+" ("+o(i)+"-"+o(r)+")",u,c),g.drawImage(m,d+a,h,p-a,f,d,h,p-a,f),g.fillRect(d+p-a,h,a,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d+p-a,h,a,o((1-l/y)*f))}}},i)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(1)),r=a(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,i.default)(this,e),this.systemName="ENU",this.offset=null}return(0,r.default)(e,[{key:"isInitialized",value:function(){return null!==this.offset}},{key:"initialize",value:function(e,t){this.offset={x:e,y:t},console.log("Offset is set to x:"+e+", y:"+t)}},{key:"setSystem",value:function(e){this.systemName=e}},{key:"applyOffset",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return null===this.offset?(console.error("Offset is not set."),null):isNaN(this.offset.x)||isNaN(this.offset.y)?(console.error("Offset contains NaN!"),null):isNaN(e.x)||isNaN(e.y)?(console.warn("Point contains NaN!"),null):isNaN(e.z)?new o.Vector2(t?e.x+this.offset.x:e.x-this.offset.x,t?e.y+this.offset.y:e.y-this.offset.y):new o.Vector3(t?e.x+this.offset.x:e.x-this.offset.x,t?e.y+this.offset.y:e.y-this.offset.y,e.z)}},{key:"applyOffsetToArray",value:function(e){var t=this;return e.map((function(e){return t.applyOffset(e)}))}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=d(n(1)),r=d(n(2)),o=d(n(12)),a=d(n(209)),s=d(n(210)),l=d(n(211)),u=n(53),c=n(27);function d(e){return e&&e.__esModule?e:{default:e}}var h={adc:{menuOptionName:"showPositionLocalization",carMaterial:a.default},planningAdc:{menuOptionName:"showPlanningCar",carMaterial:null},shadowAdc:{menuOptionName:"showPositionShadow",carMaterial:null}},p=(0,c.drawImage)(l.default,1.5,1.5),f=1,m=1,g=2.6,y=function(){function e(t,n){var r=this;(0,i.default)(this,e),this.mesh=null,this.name=t,this.rssUnsafeMarker=p,this.rssUnsafeMarker.visible=!1,n.add(this.rssUnsafeMarker);var o=h[t];o?(0,u.loadObject)(o.carMaterial,s.default,{x:1,y:1,z:1},(function(e){r.mesh=e,r.mesh.rotation.x=Math.PI/2,r.mesh.visible=!1,n.add(r.mesh)})):console.error("Car properties not found for car:",t)}return(0,r.default)(e,[{key:"update",value:function(e,t){if(this.mesh&&t&&_.isNumber(t.positionX)&&_.isNumber(t.positionY)){var n=h[this.name].menuOptionName;this.mesh.visible=o.default.options[n];var i=e.applyOffset({x:t.positionX,y:t.positionY});null!==i&&(this.mesh.position.set(i.x,i.y,0),this.mesh.rotation.y=t.heading)}}},{key:"updateRssMarker",value:function(e){this.rssUnsafeMarker.visible=!1,!1===e&&o.default.options.showPlanningRSSInfo&&(this.rssUnsafeMarker.position.set(this.mesh.position.x+f,this.mesh.position.y+m,this.mesh.position.z+g),this.rssUnsafeMarker.rotation.set(Math.PI/2,this.mesh.rotation.y-Math.PI/2,0),this.rssUnsafeMarker.visible=!0)}},{key:"resizeCarScale",value:function(e,t,n){this.mesh&&this.mesh.scale.set(e,t,n)}}]),e}();t.default=y},function(e,t,n){e.exports=n.p+"2cff479783c9bacb71df63a81871313d.mtl"},function(e,t,n){e.exports=n.p+"0ccca57f7e42eacf63e554cdd686cc6c.obj"},function(e,t,n){e.exports=n.p+"assets/ZSv_1P70vp1bcCv5_ZhgH.png"},function(e,t,n){e.exports={default:n(213),__esModule:!0}},function(e,t,n){n(86),n(42),n(55),n(218),n(222),n(223),e.exports=n(9).Promise},function(e,t,n){var i=n(81),r=n(78);e.exports=function(e){return function(t,n){var o,a,s=String(r(t)),l=i(n),u=s.length;return l<0||l>=u?e?"":void 0:(o=s.charCodeAt(l))<55296||o>56319||l+1===u||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536}}},function(e,t,n){"use strict";var i=n(67),r=n(49),o=n(54),a={};n(33)(a,n(19)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=i(a,{next:r(1,n)}),o(e,t+" Iterator")}},function(e,t,n){"use strict";var i=n(217),r=n(119),o=n(43),a=n(34);e.exports=n(87)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(e,t){e.exports=function(){}},function(e,t,n){"use strict";var i,r,o,a,s=n(52),l=n(18),u=n(28),c=n(68),d=n(13),h=n(22),p=n(48),f=n(88),m=n(56),g=n(122),y=n(123).set,v=n(220)(),b=n(90),_=n(124),x=n(221),w=n(125),M=l.TypeError,S=l.process,E=S&&S.versions,T=E&&E.v8||"",C=l.Promise,O="process"==c(S),k=function(){},P=r=b.f,A=!!function(){try{var e=C.resolve(1),t=(e.constructor={})[n(19)("species")]=function(e){e(k,k)};return(O||"function"==typeof PromiseRejectionEvent)&&e.then(k)instanceof t&&0!==T.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(e){}}(),R=function(e){var t;return!(!h(e)||"function"!=typeof(t=e.then))&&t},L=function(e,t){if(!e._n){e._n=!0;var n=e._c;v((function(){for(var i=e._v,r=1==e._s,o=0,a=function(t){var n,o,a,s=r?t.ok:t.fail,l=t.resolve,u=t.reject,c=t.domain;try{s?(r||(2==e._h&&N(e),e._h=1),!0===s?n=i:(c&&c.enter(),n=s(i),c&&(c.exit(),a=!0)),n===t.promise?u(M("Promise-chain cycle")):(o=R(n))?o.call(n,l,u):l(n)):u(i)}catch(e){c&&!a&&c.exit(),u(e)}};n.length>o;)a(n[o++]);e._c=[],e._n=!1,t&&!e._h&&I(e)}))}},I=function(e){y.call(l,(function(){var t,n,i,r=e._v,o=D(e);if(o&&(t=_((function(){O?S.emit("unhandledRejection",r,e):(n=l.onunhandledrejection)?n({promise:e,reason:r}):(i=l.console)&&i.error&&i.error("Unhandled promise rejection",r)})),e._h=O||D(e)?2:1),e._a=void 0,o&&t.e)throw t.v}))},D=function(e){return 1!==e._h&&0===(e._a||e._c).length},N=function(e){y.call(l,(function(){var t;O?S.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})}))},F=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),L(t,!0))},z=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw M("Promise can't be resolved itself");(t=R(e))?v((function(){var i={_w:n,_d:!1};try{t.call(e,u(z,i,1),u(F,i,1))}catch(e){F.call(i,e)}})):(n._v=e,n._s=1,L(n,!1))}catch(e){F.call({_w:n,_d:!1},e)}}};A||(C=function(e){f(this,C,"Promise","_h"),p(e),i.call(this);try{e(u(z,this,1),u(F,this,1))}catch(e){F.call(this,e)}},(i=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(91)(C.prototype,{then:function(e,t){var n=P(g(this,C));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=O?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&L(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new i;this.promise=e,this.resolve=u(z,e,1),this.reject=u(F,e,1)},b.f=P=function(e){return e===C||e===a?new o(e):r(e)}),d(d.G+d.W+d.F*!A,{Promise:C}),n(54)(C,"Promise"),n(126)("Promise"),a=n(9).Promise,d(d.S+d.F*!A,"Promise",{reject:function(e){var t=P(this);return(0,t.reject)(e),t.promise}}),d(d.S+d.F*(s||!A),"Promise",{resolve:function(e){return w(s&&this===a?C:this,e)}}),d(d.S+d.F*!(A&&n(127)((function(e){C.all(e).catch(k)}))),"Promise",{all:function(e){var t=this,n=P(t),i=n.resolve,r=n.reject,o=_((function(){var n=[],o=0,a=1;m(e,!1,(function(e){var s=o++,l=!1;n.push(void 0),a++,t.resolve(e).then((function(e){l||(l=!0,n[s]=e,--a||i(n))}),r)})),--a||i(n)}));return o.e&&r(o.v),n.promise},race:function(e){var t=this,n=P(t),i=n.reject,r=_((function(){m(e,!1,(function(e){t.resolve(e).then(n.resolve,i)}))}));return r.e&&i(r.v),n.promise}})},function(e,t){e.exports=function(e,t,n){var i=void 0===n;switch(t.length){case 0:return i?e():e.call(n);case 1:return i?e(t[0]):e.call(n,t[0]);case 2:return i?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return i?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return i?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var i=n(18),r=n(123).set,o=i.MutationObserver||i.WebKitMutationObserver,a=i.process,s=i.Promise,l="process"==n(50)(a);e.exports=function(){var e,t,n,u=function(){var i,r;for(l&&(i=a.domain)&&i.exit();e;){r=e.fn,e=e.next;try{r()}catch(i){throw e?n():t=void 0,i}}t=void 0,i&&i.enter()};if(l)n=function(){a.nextTick(u)};else if(!o||i.navigator&&i.navigator.standalone)if(s&&s.resolve){var c=s.resolve(void 0);n=function(){c.then(u)}}else n=function(){r.call(i,u)};else{var d=!0,h=document.createTextNode("");new o(u).observe(h,{characterData:!0}),n=function(){h.data=d=!d}}return function(i){var r={fn:i,next:void 0};t&&(t.next=r),e||(e=r,n()),t=r}}},function(e,t,n){var i=n(18).navigator;e.exports=i&&i.userAgent||""},function(e,t,n){"use strict";var i=n(13),r=n(9),o=n(18),a=n(122),s=n(125);i(i.P+i.R,"Promise",{finally:function(e){var t=a(this,r.Promise||o.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then((function(){return n}))}:e,n?function(n){return s(t,e()).then((function(){throw n}))}:e)}})},function(e,t,n){"use strict";var i=n(13),r=n(90),o=n(124);i(i.S,"Promise",{try:function(e){var t=r.f(this),n=o(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){var i=n(11);i.OBJLoader=function(e){this.manager=void 0!==e?e:i.DefaultLoadingManager,this.materials=null,this.regexp={vertex_pattern:/^v\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,normal_pattern:/^vn\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,uv_pattern:/^vt\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,face_vertex:/^f\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)(?:\s+(-?\d+))?/,face_vertex_uv:/^f\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+))?/,face_vertex_uv_normal:/^f\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+)\/(-?\d+))?/,face_vertex_normal:/^f\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)(?:\s+(-?\d+)\/\/(-?\d+))?/,object_pattern:/^[og]\s*(.+)?/,smoothing_pattern:/^s\s+(\d+|on|off)/,material_library_pattern:/^mtllib /,material_use_pattern:/^usemtl /}},i.OBJLoader.prototype={constructor:i.OBJLoader,load:function(e,t,n,r){var o=this,a=new i.FileLoader(o.manager);a.setPath(this.path),a.load(e,(function(e){t(o.parse(e))}),n,r)},setPath:function(e){this.path=e},setMaterials:function(e){this.materials=e},_createParserState:function(){var e={objects:[],object:{},vertices:[],normals:[],uvs:[],materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);var n=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],uvs:[]},materials:[],smooth:!0,startMaterial:function(e,t){var n=this._finalize(!1);n&&(n.inherited||n.groupCount<=0)&&this.materials.splice(n.index,1);var i={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==n?n.smooth:this.smooth,groupStart:void 0!==n?n.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){var t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(i),i},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){var t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(var n=this.materials.length-1;n>=0;n--)this.materials[n].groupCount<=0&&this.materials.splice(n,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},n&&n.name&&"function"==typeof n.clone){var i=n.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){var n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseNormalIndex:function(e,t){var n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseUVIndex:function(e,t){var n=parseInt(e,10);return 2*(n>=0?n-1:n+t/2)},addVertex:function(e,t,n){var i=this.vertices,r=this.object.geometry.vertices;r.push(i[e+0]),r.push(i[e+1]),r.push(i[e+2]),r.push(i[t+0]),r.push(i[t+1]),r.push(i[t+2]),r.push(i[n+0]),r.push(i[n+1]),r.push(i[n+2])},addVertexLine:function(e){var t=this.vertices,n=this.object.geometry.vertices;n.push(t[e+0]),n.push(t[e+1]),n.push(t[e+2])},addNormal:function(e,t,n){var i=this.normals,r=this.object.geometry.normals;r.push(i[e+0]),r.push(i[e+1]),r.push(i[e+2]),r.push(i[t+0]),r.push(i[t+1]),r.push(i[t+2]),r.push(i[n+0]),r.push(i[n+1]),r.push(i[n+2])},addUV:function(e,t,n){var i=this.uvs,r=this.object.geometry.uvs;r.push(i[e+0]),r.push(i[e+1]),r.push(i[t+0]),r.push(i[t+1]),r.push(i[n+0]),r.push(i[n+1])},addUVLine:function(e){var t=this.uvs,n=this.object.geometry.uvs;n.push(t[e+0]),n.push(t[e+1])},addFace:function(e,t,n,i,r,o,a,s,l,u,c,d){var h,p=this.vertices.length,f=this.parseVertexIndex(e,p),m=this.parseVertexIndex(t,p),g=this.parseVertexIndex(n,p);if(void 0===i?this.addVertex(f,m,g):(h=this.parseVertexIndex(i,p),this.addVertex(f,m,h),this.addVertex(m,g,h)),void 0!==r){var y=this.uvs.length;f=this.parseUVIndex(r,y),m=this.parseUVIndex(o,y),g=this.parseUVIndex(a,y),void 0===i?this.addUV(f,m,g):(h=this.parseUVIndex(s,y),this.addUV(f,m,h),this.addUV(m,g,h))}if(void 0!==l){var v=this.normals.length;f=this.parseNormalIndex(l,v),m=l===u?f:this.parseNormalIndex(u,v),g=l===c?f:this.parseNormalIndex(c,v),void 0===i?this.addNormal(f,m,g):(h=this.parseNormalIndex(d,v),this.addNormal(f,m,h),this.addNormal(m,g,h))}},addLineGeometry:function(e,t){this.object.geometry.type="Line";for(var n=this.vertices.length,i=this.uvs.length,r=0,o=e.length;r0?S.addAttribute("normal",new i.BufferAttribute(new Float32Array(x.normals),3)):S.computeVertexNormals(),x.uvs.length>0&&S.addAttribute("uv",new i.BufferAttribute(new Float32Array(x.uvs),2));for(var E,T=[],C=0,O=w.length;C1){for(C=0,O=w.length;C=0?s.substring(0,l):s;u=u.toLowerCase();var c=l>=0?s.substring(l+1):"";if(c=c.trim(),"newmtl"===u)n={name:c},o[c]=n;else if(n)if("ka"===u||"kd"===u||"ks"===u){var d=c.split(r,3);n[u]=[parseFloat(d[0]),parseFloat(d[1]),parseFloat(d[2])]}else n[u]=c}}var h=new i.MTLLoader.MaterialCreator(this.texturePath||this.path,this.materialOptions);return h.setCrossOrigin(this.crossOrigin),h.setManager(this.manager),h.setMaterials(o),h}},i.MTLLoader.MaterialCreator=function(e,t){this.baseUrl=e||"",this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:i.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:i.RepeatWrapping},i.MTLLoader.MaterialCreator.prototype={constructor:i.MTLLoader.MaterialCreator,setCrossOrigin:function(e){this.crossOrigin=e},setManager:function(e){this.manager=e},setMaterials:function(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(e){if(!this.options)return e;var t={};for(var n in e){var i=e[n],r={};for(var o in t[n]=r,i){var a=!0,s=i[o],l=o.toLowerCase();switch(l){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(s=[s[0]/255,s[1]/255,s[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===s[0]&&0===s[1]&&0===s[2]&&(a=!1)}a&&(r[l]=s)}}return t},preload:function(){for(var e in this.materialsInfo)this.create(e)},getIndex:function(e){return this.nameLookup[e]},getAsArray:function(){var e=0;for(var t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray},create:function(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]},createMaterial_:function(e){var t=this,n=this.materialsInfo[e],r={name:e,side:this.side};function o(e,n){if(!r[e]){var i,o,a=t.getTextureParams(n,r),s=t.loadTexture((i=t.baseUrl,"string"!=typeof(o=a.url)||""===o?"":/^https?:\/\//i.test(o)?o:i+o));s.repeat.copy(a.scale),s.offset.copy(a.offset),s.wrapS=t.wrap,s.wrapT=t.wrap,r[e]=s}}for(var a in n){var s=n[a];if(""!==s)switch(a.toLowerCase()){case"kd":r.color=(new i.Color).fromArray(s);break;case"ks":r.specular=(new i.Color).fromArray(s);break;case"map_kd":o("map",s);break;case"map_ks":o("specularMap",s);break;case"map_bump":case"bump":o("bumpMap",s);break;case"ns":r.shininess=parseFloat(s);break;case"d":s<1&&(r.opacity=s,r.transparent=!0);break;case"Tr":s>0&&(r.opacity=1-s,r.transparent=!0)}}return this.materials[e]=new i.MeshPhongMaterial(r),this.materials[e]},getTextureParams:function(e,t){var n,r={scale:new i.Vector2(1,1),offset:new i.Vector2(0,0)},o=e.split(/\s+/);return(n=o.indexOf("-bm"))>=0&&(t.bumpScale=parseFloat(o[n+1]),o.splice(n,2)),(n=o.indexOf("-s"))>=0&&(r.scale.set(parseFloat(o[n+1]),parseFloat(o[n+2])),o.splice(n,4)),(n=o.indexOf("-o"))>=0&&(r.offset.set(parseFloat(o[n+1]),parseFloat(o[n+2])),o.splice(n,4)),r.url=o.join(" ").trim(),r},loadTexture:function(e,t,n,r,o){var a,s=i.Loader.Handlers.get(e),l=void 0!==this.manager?this.manager:i.DefaultLoadingManager;return null===s&&(s=new i.TextureLoader(l)),s.setCrossOrigin&&s.setCrossOrigin(this.crossOrigin),a=s.load(e,n,r,o),void 0!==t&&(a.mapping=t),a}}},function(e,t,n){var i=n(227),r=n(228);e.exports=function(e){function t(n,i){if(!(this instanceof t))return new t(n,i);e.BufferGeometry.call(this),Array.isArray(n)?i=i||{}:"object"==typeof n&&(i=n,n=[]),i=i||{},this.addAttribute("position",new e.BufferAttribute(void 0,3)),this.addAttribute("lineNormal",new e.BufferAttribute(void 0,2)),this.addAttribute("lineMiter",new e.BufferAttribute(void 0,1)),i.distances&&this.addAttribute("lineDistance",new e.BufferAttribute(void 0,1)),"function"==typeof this.setIndex?this.setIndex(new e.BufferAttribute(void 0,1)):this.addAttribute("index",new e.BufferAttribute(void 0,1)),this.update(n,i.closed)}return i(t,e.BufferGeometry),t.prototype.update=function(e,t){var n=r(e=e||[],t);t&&((e=e.slice()).push(e[0]),n.push(n[0]));var i=this.getAttribute("position"),o=this.getAttribute("lineNormal"),a=this.getAttribute("lineMiter"),s=this.getAttribute("lineDistance"),l="function"==typeof this.getIndex?this.getIndex():this.getAttribute("index"),u=Math.max(0,6*(e.length-1));if(!i.array||e.length!==i.array.length/3/2){var c=2*e.length;i.array=new Float32Array(3*c),o.array=new Float32Array(2*c),a.array=new Float32Array(c),l.array=new Uint16Array(u),s&&(s.array=new Float32Array(c))}void 0!==i.count&&(i.count=c),i.needsUpdate=!0,void 0!==o.count&&(o.count=c),o.needsUpdate=!0,void 0!==a.count&&(a.count=c),a.needsUpdate=!0,void 0!==l.count&&(l.count=u),l.needsUpdate=!0,s&&(void 0!==s.count&&(s.count=c),s.needsUpdate=!0);var d=0,h=0,p=0,f=l.array;e.forEach((function(e,t,n){var r=d;if(f[h++]=r+0,f[h++]=r+1,f[h++]=r+2,f[h++]=r+2,f[h++]=r+1,f[h++]=r+3,i.setXYZ(d++,e[0],e[1],0),i.setXYZ(d++,e[0],e[1],0),s){var o=t/(n.length-1);s.setX(p++,o),s.setX(p++,o)}}));var m=0,g=0;n.forEach((function(e){var t=e[0],n=e[1];o.setXY(m++,t[0],t[1]),o.setXY(m++,t[0],t[1]),a.setX(g++,-n),a.setX(g++,n)}))},t}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){var i=n(229),r=[0,0],o=[0,0],a=[0,0],s=[0,0];function l(e,t,n){e.push([[t[0],t[1]],n])}e.exports=function(e,t){var n=null,u=[];t&&(e=e.slice()).push(e[0]);for(var c=e.length,d=1;d2&&t){var g=e[c-2],y=e[0],v=e[1];i.direction(r,y,g),i.direction(o,v,y),i.normal(n,r);var b=i.computeMiter(a,s,r,o,1);u[0][0]=s.slice(),u[c-1][0]=s.slice(),u[0][1]=b,u[c-1][1]=b,u.pop()}return u}},function(e,t,n){var i=n(230),r=n(231),o=n(232),a=n(233),s=n(234),l=[0,0];e.exports.computeMiter=function(e,t,n,a,u){return i(e,n,a),o(e,e),r(t,-e[1],e[0]),r(l,-n[1],n[0]),u/s(t,l)},e.exports.normal=function(e,t){return r(e,-t[1],t[0]),e},e.exports.direction=function(e,t,n){return a(e,t,n),o(e,e),e}},function(e,t){e.exports=function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}},function(e,t){e.exports=function(e,t,n){return e[0]=t,e[1]=n,e}},function(e,t){e.exports=function(e,t){var n=t[0],i=t[1],r=n*n+i*i;r>0&&(r=1/Math.sqrt(r),e[0]=t[0]*r,e[1]=t[1]*r);return e}},function(e,t){e.exports=function(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}},function(e,t){e.exports=function(e,t){return e[0]*t[0]+e[1]*t[1]}},function(e,t,n){var i=n(72);e.exports=function(e){return function(t){var n="number"==typeof(t=t||{}).thickness?t.thickness:.1,r="number"==typeof t.opacity?t.opacity:1,o=null!==t.diffuse?t.diffuse:16777215;delete t.thickness,delete t.opacity,delete t.diffuse,delete t.precision;var a=i({uniforms:{thickness:{type:"f",value:n},opacity:{type:"f",value:r},diffuse:{type:"c",value:new e.Color(o)}},vertexShader:["uniform float thickness;","attribute float lineMiter;","attribute vec2 lineNormal;","void main() {","vec3 pointPos = position.xyz + vec3(lineNormal * thickness / 2.0 * lineMiter, 0.0);","gl_Position = projectionMatrix * modelViewMatrix * vec4(pointPos, 1.0);","}"].join("\n"),fragmentShader:["uniform vec3 diffuse;","uniform float opacity;","void main() {","gl_FragColor = vec4(diffuse, opacity);","}"].join("\n")},t);return(0|(parseInt(e.REVISION,10)||0))<72&&(a.attributes={lineMiter:{type:"f",value:0},lineNormal:{type:"v2",value:new e.Vector2}}),a}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=u(n(1)),r=u(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),a=n(53),s=u(n(237)),l=u(n(12));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){var t=this;(0,i.default)(this,e),this.type="default",this.loadedMap=null,this.updateMap=null,this.mesh=null,this.geometry=null,this.initialized=!1,this.inNaviMode=null,this.showCameraView=!1,(0,a.loadTexture)(s.default,(function(e){t.geometry=new o.PlaneGeometry(1,1),t.mesh=new o.Mesh(t.geometry,new o.MeshBasicMaterial({map:e}))}))}return(0,r.default)(e,[{key:"initialize",value:function(e){return!!this.mesh&&(!(this.loadedMap===this.updateMap&&!this.render(e))&&(this.initialized=!0,!0))}},{key:"loadGrid",value:function(e){var t=this;(0,a.loadTexture)(s.default,(function(n){console.log("using grid as ground image..."),t.mesh.material.map=n,t.mesh.type="grid",t.mesh.visible=!0,t.render(e)}))}},{key:"update",value:function(e,t,n){var i=this;if(!0===this.initialized){var r=l.default.options.showCameraView,s=r!==this.showCameraView;this.showCameraView=r;var u=this.inNaviMode!==l.default.hmi.inNavigationMode;if(this.inNaviMode=l.default.hmi.inNavigationMode,this.inNaviMode?(this.mesh.type="grid",u&&this.loadGrid(t)):this.mesh.type="reflection","grid"===this.mesh.type){var c=e.autoDrivingCar,d=t.applyOffset({x:c.positionX,y:c.positionY});this.mesh.position.set(d.x,d.y,0)}else if(this.loadedMap!==this.updateMap||u||s){if(r)return n.background=null,void(this.mesh.visible=!1);var h=this.titleCaseToSnakeCase(this.updateMap),p=window.location,f=PARAMETERS.server.port,m=p.protocol+"//"+p.hostname+":"+f+"/assets/map_data/"+h+"/background.jpg";(0,a.loadTexture)(m,(function(e){console.log("updating ground image with "+h),i.mesh.material.map=e,i.mesh.type="reflection",i.mesh.visible=!0,i.render(t,h)}),(function(e){i.loadGrid(t)})),this.loadedMap=this.updateMap,n.background=new o.Color(3095)}}}},{key:"updateImage",value:function(e){this.updateMap=e}},{key:"render",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"defaults";console.log("rendering ground image...");var n=PARAMETERS.ground[t],i=n.xres,r=n.yres,o=n.mpp,a=n.xorigin,s=n.yorigin,l=e.applyOffset({x:a,y:s});return null===l?(console.warn("Cannot find position for ground mesh!"),!1):("defaults"===t&&(l={x:0,y:0}),this.mesh.position.set(l.x,l.y,0),this.mesh.scale.set(i*o,r*o,1),this.mesh.material.needsUpdate=!0,this.mesh.overdraw=!1,!0)}},{key:"titleCaseToSnakeCase",value:function(e){return e.replace(/\s/g,"_").toLowerCase()}}]),e}();t.default=c},function(e,t,n){e.exports=n.p+"assets/2NEFng8KXMmYxDfgmv-0Av.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=g(n(44)),r=g(n(128)),o=g(n(1)),a=g(n(2)),s=g(n(92)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),u=n(53),c=g(n(132)),d=g(n(136)),h=g(n(137)),p=g(n(138)),f=g(n(139)),m=g(n(140));function g(e){return e&&e.__esModule?e:{default:e}}var y=.01,v=1.5;var b=function(){function e(t){(0,o.default)(this,e),this.renderer=t,this.mesh=!0,this.type="tile",this.range=PARAMETERS.ground.defaults.tileRange,this.metadata=null,this.mapId=null,this.mapUrlPrefix=null,this.hash=-1,this.currentTiles={},this.currentTrafficLights=[],this.currentStopSigns=[],this.currentYieldSigns=[],this.initialized=!1,this.trafficSignals=new d.default,this.stopSigns=new c.default(h.default,p.default,y),this.yieldSigns=new c.default(f.default,m.default,v)}return(0,a.default)(e,[{key:"initialize",value:function(e){this.metadata={tileLength:e.tile*e.mpp,left:e.left,top:e.top,numCols:e.wnum,numRows:e.hnum,mpp:e.mpp,tile:e.tile,imageUrl:e.image_url,availableMapTiles:new s.default(e.availableImages),allSignals:e.signal,allStopSigns:e.stopSign,allYieldSigns:e.yield},this.mapId=e.mapid,this.mapUrlPrefix=this.metadata.imageUrl+"/"+this.mapId,this.initialized=!0}},{key:"removeDrewObject",value:function(e,t,n){var i=t[e];i&&(n.remove(i),i.geometry&&i.geometry.dispose(),i.material&&i.material.dispose()),delete t[e]}},{key:"getItems",value:function(e,t,n){var i=this,r=[];return n.forEach((function(n){if(!(isNaN(n.x)||isNaN(n.y)||isNaN(n.heading))){var o=i.getRowAndCol(n.x,n.y),a=o.i,s=o.j;a===e&&s===t&&r.push(n)}})),r}},{key:"appendTiles",value:function(e,t,n,i,r){var o=this,a=this.metadata.mpp+"_"+e+"_"+t+"_"+this.metadata.tile+".png";if(this.metadata.availableMapTiles.has(a)){var s=this.metadata.imageUrl?this.mapUrlPrefix+"/"+a:this.mapUrlPrefix+"?mapId="+this.mapId+"&i="+e+"&j="+t,c=i.applyOffset({x:this.metadata.left+(e+.5)*this.metadata.tileLength,y:this.metadata.top-(t+.5)*this.metadata.tileLength,z:0});(0,u.loadTexture)(s,(function(e){e.anisotropy=o.renderer.getMaxAnisotropy();var t=new l.Mesh(new l.PlaneGeometry(1,1),new l.MeshBasicMaterial({map:e}));t.position.set(c.x,c.y,c.z),t.scale.set(o.metadata.tileLength,o.metadata.tileLength,1),t.overdraw=!1,o.currentTiles[n]=t,r.add(t)}))}}},{key:"removeExpiredTiles",value:function(e,t){for(var n in this.currentTiles)e.has(n)||this.removeDrewObject(n,this.currentTiles,t);var i=[];this.currentTrafficLights.forEach((function(t){var n=t.key,r=t.id;e.has(n)&&i.push(r)})),this.trafficSignals.removeExpired(i,t);var r=[];this.currentStopSigns.forEach((function(t){var n=t.key,i=t.id;e.has(n)&&r.push(i)})),this.stopSigns.removeExpired(r,t);var o=[];this.currentYieldSigns.forEach((function(t){e.has(t.key)&&o.push(t.id)})),this.yieldSigns.removeExpired(o,t)}},{key:"updateIndex",value:function(e,t,n,o){var a=this;if(e!==this.hash){this.hash=e,this.removeExpiredTiles(t,o);var l=function(e,t){var n=new s.default(e);for(var i in t)n.delete(i);return n}(t,this.currentTiles);if(!_.isEmpty(l)||!this.initialized){var u=function(e){a.currentTiles[e]=null;var t=e.split(","),i=parseInt(t[0]),s=parseInt(t[1]);if(s<0||s>a.metadata.numCols||i<0||i>a.metadata.numRows)return"continue";if(a.appendTiles(i,s,e,n,o),a.metadata.allSignals){var l=a.getItems(i,s,a.metadata.allSignals);a.trafficSignals.add(l,n,o),a.currentTrafficLights=[].concat((0,r.default)(a.currentTrafficLights),(0,r.default)(l.map((function(t){return{key:e,id:t.id}}))))}if(a.metadata.allStopSigns){var u=a.getItems(i,s,a.metadata.allStopSigns);a.stopSigns.add(u,n,o),a.currentStopSigns=[].concat((0,r.default)(a.currentStopSigns),(0,r.default)(u.map((function(t){return{key:e,id:t.id}}))))}if(a.metadata.allYieldSigns){var c=a.getItems(i,s,a.metadata.allYieldSigns);a.yieldSigns.add(c,n,o),a.currentYieldSigns=[].concat((0,r.default)(a.currentYieldSigns),(0,r.default)(c.map((function(t){return{key:e,id:t.id}}))))}},c=!0,d=!1,h=void 0;try{for(var p,f=(0,i.default)(l);!(c=(p=f.next()).done);c=!0)u(p.value)}catch(e){d=!0,h=e}finally{try{!c&&f.return&&f.return()}finally{if(d)throw h}}}}}},{key:"getRowAndCol",value:function(e,t){return{i:Math.floor((e-this.metadata.left)/this.metadata.tileLength),j:Math.floor((this.metadata.top-t)/this.metadata.tileLength)}}},{key:"update",value:function(e,t,n){if(t.isInitialized()&&this.initialized){for(var i=e.autoDrivingCar.positionX,r=e.autoDrivingCar.positionY,o=this.getRowAndCol(i,r),a=o.i,l=o.j,u=new s.default,c="",d=a-this.range;d<=a+this.range;d++)for(var h=l-this.range;h<=l+this.range;h++){var p=d+","+h;u.add(p),c+=p}this.updateIndex(c,u,t,n),this.trafficSignals.updateTrafficLightStatus(e.perceivedSignal)}}}]),e}();t.default=b},function(e,t,n){n(55),n(42),e.exports=n(240)},function(e,t,n){var i=n(25),r=n(89);e.exports=n(9).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,n){n(42),n(242),e.exports=n(9).Array.from},function(e,t,n){"use strict";var i=n(28),r=n(13),o=n(39),a=n(120),s=n(121),l=n(64),u=n(243),c=n(89);r(r.S+r.F*!n(127)((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,r,d,h=o(e),p="function"==typeof this?this:Array,f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m,y=0,v=c(h);if(g&&(m=i(m,f>2?arguments[2]:void 0,2)),null==v||p==Array&&s(v))for(n=new p(t=l(h.length));t>y;y++)u(n,y,g?m(h[y],y):h[y]);else for(d=v.call(h),n=new p;!(r=d.next()).done;y++)u(n,y,g?a(d,m,[r.value,y],!0):r.value);return n.length=y,n}})},function(e,t,n){"use strict";var i=n(24),r=n(49);e.exports=function(e,t,n){t in e?i.f(e,t,r(0,n)):e[t]=n}},function(e,t,n){n(86),n(42),n(55),n(245),n(251),n(254),n(256),e.exports=n(9).Set},function(e,t,n){"use strict";var i=n(246),r=n(130);e.exports=n(247)("Set",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return i.def(r(this,"Set"),e=0===e?0:e,e)}},i)},function(e,t,n){"use strict";var i=n(24).f,r=n(67),o=n(91),a=n(28),s=n(88),l=n(56),u=n(87),c=n(119),d=n(126),h=n(21),p=n(66).fastKey,f=n(130),m=h?"_s":"size",g=function(e,t){var n,i=p(t);if("F"!==i)return e._i[i];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var c=e((function(e,i){s(e,c,t,"_i"),e._t=t,e._i=r(null),e._f=void 0,e._l=void 0,e[m]=0,null!=i&&l(i,n,e[u],e)}));return o(c.prototype,{clear:function(){for(var e=f(this,t),n=e._i,i=e._f;i;i=i.n)i.r=!0,i.p&&(i.p=i.p.n=void 0),delete n[i.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),i=g(n,e);if(i){var r=i.n,o=i.p;delete n._i[i.i],i.r=!0,o&&(o.n=r),r&&(r.p=o),n._f==i&&(n._f=r),n._l==i&&(n._l=o),n[m]--}return!!i},forEach:function(e){f(this,t);for(var n,i=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(i(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),h&&i(c.prototype,"size",{get:function(){return f(this,t)[m]}}),c},def:function(e,t,n){var i,r,o=g(e,t);return o?o.v=n:(e._l=o={i:r=p(t,!0),k:t,v:n,p:i=e._l,n:void 0,r:!1},e._f||(e._f=o),i&&(i.n=o),e[m]++,"F"!==r&&(e._i[r]=o)),e},getEntry:g,setStrong:function(e,t,n){u(e,t,(function(e,n){this._t=f(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var i=n(18),r=n(13),o=n(66),a=n(37),s=n(33),l=n(91),u=n(56),c=n(88),d=n(22),h=n(54),p=n(24).f,f=n(248)(0),m=n(21);e.exports=function(e,t,n,g,y,v){var b=i[e],_=b,x=y?"set":"add",w=_&&_.prototype,M={};return m&&"function"==typeof _&&(v||w.forEach&&!a((function(){(new _).entries().next()})))?(_=t((function(t,n){c(t,_,e,"_c"),t._c=new b,null!=n&&u(n,y,t[x],t)})),f("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;e in w&&(!v||"clear"!=e)&&s(_.prototype,e,(function(n,i){if(c(this,_,e),!t&&v&&!d(n))return"get"==e&&void 0;var r=this._c[e](0===n?0:n,i);return t?this:r}))})),v||p(_.prototype,"size",{get:function(){return this._c.size}})):(_=g.getConstructor(t,e,y,x),l(_.prototype,n),o.NEED=!0),h(_,e),M[e]=_,r(r.G+r.W+r.F,M),v||g.setStrong(_,e,y),_}},function(e,t,n){var i=n(28),r=n(77),o=n(39),a=n(64),s=n(249);e.exports=function(e,t){var n=1==e,l=2==e,u=3==e,c=4==e,d=6==e,h=5==e||d,p=t||s;return function(t,s,f){for(var m,g,y=o(t),v=r(y),b=i(s,f,3),_=a(v.length),x=0,w=n?p(t,_):l?p(t,0):void 0;_>x;x++)if((h||x in v)&&(g=b(m=v[x],x,y),e))if(n)w[x]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(c)return!1;return d?-1:u||c?c:w}}},function(e,t,n){var i=n(250);e.exports=function(e,t){return new(i(e))(t)}},function(e,t,n){var i=n(22),r=n(131),o=n(19)("species");e.exports=function(e){var t;return r(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!r(t.prototype)||(t=void 0),i(t)&&null===(t=t[o])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){var i=n(13);i(i.P+i.R,"Set",{toJSON:n(252)("Set")})},function(e,t,n){var i=n(68),r=n(253);e.exports=function(e){return function(){if(i(this)!=e)throw TypeError(e+"#toJSON isn't generic");return r(this)}}},function(e,t,n){var i=n(56);e.exports=function(e,t){var n=[];return i(e,!1,n.push,n,t),n}},function(e,t,n){n(255)("Set")},function(e,t,n){"use strict";var i=n(13);e.exports=function(e){i(i.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){n(257)("Set")},function(e,t,n){"use strict";var i=n(13),r=n(48),o=n(28),a=n(56);e.exports=function(e){i(i.S,e,{from:function(e){var t,n,i,s,l=arguments[1];return r(this),(t=void 0!==l)&&r(l),null==e?new this:(n=[],t?(i=0,s=o(l,arguments[2],2),a(e,!1,(function(e){n.push(s(e,i++))}))):a(e,!1,n.push,n),new this(n))}})}},function(e,t,n){n(259),e.exports=n(9).Object.getPrototypeOf},function(e,t,n){var i=n(39),r=n(118);n(63)("getPrototypeOf",(function(){return function(e){return r(i(e))}}))},function(e,t,n){e.exports={default:n(261),__esModule:!0}},function(e,t,n){n(42),n(55),e.exports=n(93).f("iterator")},function(e,t,n){e.exports={default:n(263),__esModule:!0}},function(e,t,n){n(264),n(86),n(267),n(268),e.exports=n(9).Symbol},function(e,t,n){"use strict";var i=n(18),r=n(38),o=n(21),a=n(13),s=n(115),l=n(66).KEY,u=n(37),c=n(83),d=n(54),h=n(65),p=n(19),f=n(93),m=n(94),g=n(265),y=n(131),v=n(25),b=n(22),_=n(39),x=n(34),w=n(76),M=n(49),S=n(67),E=n(266),T=n(79),C=n(95),O=n(24),k=n(41),P=T.f,A=O.f,R=E.f,L=i.Symbol,I=i.JSON,D=I&&I.stringify,N=p("_hidden"),F=p("toPrimitive"),z={}.propertyIsEnumerable,B=c("symbol-registry"),U=c("symbols"),j=c("op-symbols"),W=Object.prototype,G="function"==typeof L&&!!C.f,V=i.QObject,H=!V||!V.prototype||!V.prototype.findChild,Y=o&&u((function(){return 7!=S(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a}))?function(e,t,n){var i=P(W,t);i&&delete W[t],A(e,t,n),i&&e!==W&&A(W,t,i)}:A,q=function(e){var t=U[e]=S(L.prototype);return t._k=e,t},X=G&&"symbol"==typeof L.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof L},K=function(e,t,n){return e===W&&K(j,t,n),v(e),t=w(t,!0),v(n),r(U,t)?(n.enumerable?(r(e,N)&&e[N][t]&&(e[N][t]=!1),n=S(n,{enumerable:M(0,!1)})):(r(e,N)||A(e,N,M(1,{})),e[N][t]=!0),Y(e,t,n)):A(e,t,n)},Z=function(e,t){v(e);for(var n,i=g(t=x(t)),r=0,o=i.length;o>r;)K(e,n=i[r++],t[n]);return e},J=function(e){var t=z.call(this,e=w(e,!0));return!(this===W&&r(U,e)&&!r(j,e))&&(!(t||!r(this,e)||!r(U,e)||r(this,N)&&this[N][e])||t)},$=function(e,t){if(e=x(e),t=w(t,!0),e!==W||!r(U,t)||r(j,t)){var n=P(e,t);return!n||!r(U,t)||r(e,N)&&e[N][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=R(x(e)),i=[],o=0;n.length>o;)r(U,t=n[o++])||t==N||t==l||i.push(t);return i},ee=function(e){for(var t,n=e===W,i=R(n?j:x(e)),o=[],a=0;i.length>a;)!r(U,t=i[a++])||n&&!r(W,t)||o.push(U[t]);return o};G||(s((L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(n){this===W&&t.call(j,n),r(this,N)&&r(this[N],e)&&(this[N][e]=!1),Y(this,e,M(1,n))};return o&&H&&Y(W,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),T.f=$,O.f=K,n(134).f=E.f=Q,n(51).f=J,C.f=ee,o&&!n(52)&&s(W,"propertyIsEnumerable",J,!0),f.f=function(e){return q(p(e))}),a(a.G+a.W+a.F*!G,{Symbol:L});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)p(te[ne++]);for(var ie=k(p.store),re=0;ie.length>re;)m(ie[re++]);a(a.S+a.F*!G,"Symbol",{for:function(e){return r(B,e+="")?B[e]:B[e]=L(e)},keyFor:function(e){if(!X(e))throw TypeError(e+" is not a symbol!");for(var t in B)if(B[t]===e)return t},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!G,"Object",{create:function(e,t){return void 0===t?S(e):Z(S(e),t)},defineProperty:K,defineProperties:Z,getOwnPropertyDescriptor:$,getOwnPropertyNames:Q,getOwnPropertySymbols:ee});var oe=u((function(){C.f(1)}));a(a.S+a.F*oe,"Object",{getOwnPropertySymbols:function(e){return C.f(_(e))}}),I&&a(a.S+a.F*(!G||u((function(){var e=L();return"[null]"!=D([e])||"{}"!=D({a:e})||"{}"!=D(Object(e))}))),"JSON",{stringify:function(e){for(var t,n,i=[e],r=1;arguments.length>r;)i.push(arguments[r++]);if(n=t=i[1],(b(t)||void 0!==e)&&!X(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!X(t))return t}),i[1]=t,D.apply(I,i)}}),L.prototype[F]||n(33)(L.prototype,F,L.prototype.valueOf),d(L,"Symbol"),d(Math,"Math",!0),d(i.JSON,"JSON",!0)},function(e,t,n){var i=n(41),r=n(95),o=n(51);e.exports=function(e){var t=i(e),n=r.f;if(n)for(var a,s=n(e),l=o.f,u=0;s.length>u;)l.call(e,a=s[u++])&&t.push(a);return t}},function(e,t,n){var i=n(34),r=n(134).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?function(e){try{return r(e)}catch(e){return a.slice()}}(e):r(i(e))}},function(e,t,n){n(94)("asyncIterator")},function(e,t,n){n(94)("observable")},function(e,t,n){e.exports={default:n(270),__esModule:!0}},function(e,t,n){n(271),e.exports=n(9).Object.setPrototypeOf},function(e,t,n){var i=n(13);i(i.S,"Object",{setPrototypeOf:n(272).set})},function(e,t,n){var i=n(22),r=n(25),o=function(e,t){if(r(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{(i=n(28)(Function.call,n(79).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){e.exports={default:n(274),__esModule:!0}},function(e,t,n){n(275);var i=n(9).Object;e.exports=function(e,t){return i.create(e,t)}},function(e,t,n){var i=n(13);i(i.S,"Object",{create:n(67)})},function(e,t,n){e.exports={default:n(277),__esModule:!0}},function(e,t,n){n(55),n(42),e.exports=n(278)},function(e,t,n){var i=n(68),r=n(19)("iterator"),o=n(43);e.exports=n(9).isIterable=function(e){var t=Object(e);return void 0!==t[r]||"@@iterator"in t||o.hasOwnProperty(i(t))}},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(3)),r=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function e(t,n,o){null===t&&(t=Function.prototype);var a=(0,r.default)(t,n);if(void 0===a){var s=(0,i.default)(t);return null===s?void 0:e(s,n,o)}if("value"in a)return a.value;var l=a.get;return void 0!==l?l.call(o):void 0}},function(e,t,n){e.exports=n.p+"c67591a7704dd9ff8b57ef65b6bd0521.mtl"},function(e,t,n){e.exports=n.p+"4f4c83b89b3899415dafca5f1c0fdee8.obj"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=x(n(23)),r=x(n(44)),o=x(n(69)),a=x(n(1)),s=x(n(2)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),u=x(n(12)),c=n(20),d=x(n(14)),h=n(27),p=n(141),f=x(p),m=x(n(132)),g=x(n(136)),y=x(n(137)),v=x(n(138)),b=x(n(139)),_=x(n(140));function x(e){return e&&e.__esModule?e:{default:e}}var w=.01,M=1.5,S=14329120,E=13421772,T=16744272,C=16737894,O=25600,k=3188223,P=16777215,A=12632256,R=function(){function e(){(0,a.default)(this,e),this.textRender=new f.default,this.hash=-1,this.data={},this.initialized=!1,this.elementKindsDrawn="",this.trafficSignals=new g.default,this.stopSigns=new m.default(y.default,v.default,w),this.yieldSigns=new m.default(b.default,_.default,M),this.zOffsetFactor=1}return(0,s.default)(e,[{key:"diffMapElements",value:function(e,t){var n=this,i={},r=!0,o=function(o){if(!n.shouldDrawObjectOfThisElementKind(o))return"continue";i[o]=[];for(var a=e[o],s=t[o],l=function(e){!!s&&s.find((function(t){return t.id.id===a[e]}))||(r=!1,i[o].push(a[e]))},u=0;u=2){var s=a[0],l=a[1];o.z=Math.atan2(l.y-s.y,l.x-s.x)}var u=this.textRender.drawText(e.id.id,n,E,p.TEXT_ALIGN.LEFT);if(u){var c=r||d.default.get(a,"[0]");c&&(u.position.set(c.x,c.y,c.z),u.rotation.set(o.x,o.y,o.z)),u.visible=!1,n.add(u)}return u}},{key:"addRoad",value:function(e,t,n){var i=this,r=[];return e.section.forEach((function(o){o.boundary.outerPolygon.edge.forEach((function(o){o.curve.segment.forEach((function(o,a){var s=t.applyOffsetToArray(o.lineSegment.point),l=i.addLaneMesh("CURB",s);l.name="Road-"+e.id.id,n.add(l),r.push(l)}))}))})),r}},{key:"addBorder",value:function(e,t,n,i){var r=[],o=n.applyOffsetToArray(e.polygon.point);o.push(o[0]);var a=(0,h.drawSegmentsFromPoints)(o,t,2,this.zOffsetFactor,!0,!1,1);return i.add(a),r.push(a),r}},{key:"addParkingSpaceId",value:function(e,t,n){var i=this.textRender.drawText(e.id.id,n,E),r=d.default.get(e,"polygon.point");if(r&&r.length>=3&&i){var o=r[0],a=r[1],s=r[2],l={x:(o.x+s.x)/2,y:(o.y+s.y)/2,z:.04};l=t.applyOffset(l);var u=Math.atan2(a.y-o.y,a.x-o.x);i.position.set(l.x,l.y,l.z),i.rotation.set(0,0,u),i.visible=!1,n.add(i)}return i}},{key:"addZone",value:function(e,t,n,i){var r=[],o=n.applyOffsetToArray(e.polygon.point);o.push(o[0]);var a=new l.MeshBasicMaterial({color:t,transparent:!0,opacity:.15}),s=(0,h.drawShapeFromPoints)(o,a,!1,3*this.zOffsetFactor,!1);i.add(s),r.push(s);var u=(0,h.drawSegmentsFromPoints)(o,t,2,this.zOffsetFactor,!0,!1,1);return i.add(u),r.push(u),r}},{key:"addCurve",value:function(e,t,n,i){var r=this,o=[];return e.forEach((function(e){e.segment.forEach((function(e){var a=n.applyOffsetToArray(e.lineSegment.point),s=(0,h.drawSegmentsFromPoints)(a,t,5,2*r.zOffsetFactor,!1);i.add(s),o.push(s)}))})),o}},{key:"addStopLine",value:function(e,t,n){return this.addCurve(e,P,t,n)}},{key:"removeDrewText",value:function(e,t){e&&(e.children.forEach((function(e){return e.visible=!1})),t.remove(e))}},{key:"removeDrewObjects",value:function(e,t){e&&e.forEach((function(e){t.remove(e),e.geometry&&e.geometry.dispose(),e.material&&e.material.dispose()}))}},{key:"removeAllElements",value:function(e){this.removeExpiredElements([],e),this.trafficSignals.removeAll(e),this.stopSigns.removeAll(e),this.yieldSigns.removeAll(e)}},{key:"removeExpiredElements",value:function(e,t){var n=this,i={},r=function(r){var o=n.shouldDrawObjectOfThisElementKind(r);i[r]=[];var a=n.data[r],s=e[r];a.forEach((function(e){o&&s&&s.includes(e.id.id)?i[r].push(e):(n.removeDrewObjects(e.drewObjects,t),n.removeDrewText(e.text,t))}))};for(var o in this.data)r(o);this.data=i}},{key:"appendMapData",value:function(e,t,n){for(var i in e)if(e[i]){this.data[i]||(this.data[i]=[]);for(var r=0;rc;)for(var p,f=l(arguments[c++]),m=d?r(f).concat(d(f)):r(f),g=m.length,y=0;g>y;)p=m[y++],i&&!h.call(f,p)||(n[p]=f[p]);return n}:u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=u(n(23)),r=u(n(1)),o=u(n(2)),a=u(n(14)),s=u(n(12)),l=n(27);function u(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){(0,r.default)(this,e),this.paths={}}return(0,o.default)(e,[{key:"update",value:function(e,t,n,r){var o=this,u=null;e.autoDrivingCar.width?u=e.autoDrivingCar.width:(console.warn("Unable to get the auto driving car's width, planning line width has been set to default: "+PARAMETERS.planning.defaults.width+" m."),u=PARAMETERS.planning.defaults.width);var c={};e.planningTrajectory&&(c.trajectory=e.planningTrajectory.map((function(e){return{x:e.positionX,y:e.positionY}}))),t&&t.path&&t.path.forEach((function(e){c[e.name]=e.pathPoint})),a.default.union((0,i.default)(this.paths),(0,i.default)(c)).forEach((function(e){var t="trajectory"===e?"showPlanningTrajectory":e;if(s.default.options[t]||s.default.options.customizedToggles.get(t)){var i=o.paths[e];i&&(r.remove(i),i.geometry.dispose(),i.material.dispose());var a=PARAMETERS.planning.pathProperties[e];if(a||(console.warn("No path properties found for ["+e+"]. Use default properties instead."),a=PARAMETERS.planning.pathProperties.default,PARAMETERS.planning.pathProperties[e]=a),c[e]){var d=function(e,t){if(!e)return[];for(var n=[],i=0;i0)if(Math.abs(n[n.length-1].x-o.x)+Math.abs(n[n.length-1].y-o.y)2){if(!a(n))throw new TypeError("polynomial()::invalid input argument. Options argument must be an object. Value: `"+n+"`.");if(n.hasOwnProperty("copy")&&(m=n.copy,!s(m)))throw new TypeError("polynomial()::invalid option. Copy option must be a boolean primitive. Option: `"+m+"`.");if(n.hasOwnProperty("accessor")&&(c=n.accessor,!l(c)))throw new TypeError("polynomial()::invalid option. Accessor must be a function. Option: `"+c+"`.")}if(d=t.length,h=m?new Array(d):t,c)for(f=0;f=i.markers[c].length?(d=i.getObstacleDecision(c),i.markers[c].push(d),n.add(d)):d=i.markers[c][o[c]];var h=t.applyOffset(new a.Vector3(s.positionX,s.positionY,0));if(null===h)return"continue";if(d.position.set(h.x,h.y,.2),d.rotation.set(Math.PI/2,s.heading-Math.PI/2,0),d.visible=!0,o[c]++,"YIELD"===c||"OVERTAKE"===c){var p=d.connect;p.geometry.vertices[0].set(r[l].positionX-s.positionX,r[l].positionY-s.positionY,0),p.geometry.verticesNeedUpdate=!0,p.geometry.computeLineDistances(),p.geometry.lineDistancesNeedUpdate=!0,p.rotation.set(Math.PI/-2,0,Math.PI/2-s.heading)}}else if("NUDGE"===c){var f=(0,L.drawShapeFromPoints)(t.applyOffsetToArray(s.polygonPoint),new a.MeshBasicMaterial({color:16744192}),!1,2);i.nudges.push(f),n.add(f)}},d=0;d.2&&(g-=.7)}))}})))}},{key:"getPredCircle",value:function(){var e=new o.MeshBasicMaterial({color:16777215,transparent:!1,opacity:.5}),t=(0,l.drawCircle)(.2,e);return this.predCircles.push(t),t}},{key:"drawGaussian",value:function(e,t,n,i){if(a.default.options.showGaussianInfo&&e&&e.ellipseA>.001&&e.ellipseB>.001){var r=new o.MeshBasicMaterial({color:t,transparent:!0,opacity:.35}),s=(0,l.drawEllipse)(e.ellipseA,e.ellipseB,r);s.position.set(n.x,n.y,.25),s.rotation.set(0,0,e.thetaA),this.predGaussian.push(s),i.add(s)}}}]),e}();t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(1)),r=s(n(2)),o=(function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);t.default=e}(n(11)),s(n(12))),a=n(27);function s(e){return e&&e.__esModule?e:{default:e}}n(14);var l=function(){function e(){(0,i.default)(this,e),this.routePaths=[],this.lastRoutingTime=-1}return(0,r.default)(e,[{key:"update",value:function(e,t,n,i){var r=this;this.routePaths.forEach((function(e){e.visible=o.default.options.showRouting})),this.lastRoutingTime!==e&&void 0!==t&&(this.lastRoutingTime=e,this.routePaths.forEach((function(e){i.remove(e),e.material.dispose(),e.geometry.dispose()})),t.forEach((function(e){var t=n.applyOffsetToArray(e.point),s=(0,a.drawThickBandFromPoints)(t,.3,16711680,.6,5);s.visible=o.default.options.showRouting,i.add(s),r.routePaths.push(s)})))}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=l(n(1)),r=l(n(2));!function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);t.default=e}(n(11));n(324);var o=l(n(325)),a=(l(n(12)),l(n(20))),s=n(27);function l(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(){(0,i.default)(this,e),this.routePoints=[],this.parkingSpaceId=null,this.inEditingMode=!1,this.pointId=0}return(0,r.default)(e,[{key:"isInEditingMode",value:function(){return this.inEditingMode}},{key:"enableEditingMode",value:function(e,t){this.inEditingMode=!0;e.fov=PARAMETERS.camera.Map.fov,e.near=PARAMETERS.camera.Map.near,e.far=PARAMETERS.camera.Map.far,e.updateProjectionMatrix(),a.default.requestMapElementIdsByRadius(PARAMETERS.routingEditor.radiusOfMapRequest)}},{key:"disableEditingMode",value:function(e){this.inEditingMode=!1,this.removeAllRoutePoints(e),this.parkingSpaceId=null,this.pointId=0}},{key:"addRoutingPoint",value:function(e,t,n){var i=t.applyOffset({x:e.x,y:e.y}),r=(0,s.drawImage)(o.default,3.5,3.5,i.x,i.y,.3);r.pointId=this.pointId,e.id=this.pointId,this.pointId+=1,this.routePoints.push(r),n.add(r),a.default.checkRoutingPoint(e)}},{key:"setParkingSpaceId",value:function(e){this.parkingSpaceId=e}},{key:"removeInvalidRoutingPoint",value:function(e,t,n){var i=this;alert(t),e&&(this.routePoints=this.routePoints.filter((function(t){return t.pointId!==e||(i.removeRoutingPoint(n,t),!1)})))}},{key:"removeLastRoutingPoint",value:function(e){var t=this.routePoints.pop();t&&this.removeRoutingPoint(e,t)}},{key:"removeAllRoutePoints",value:function(e){var t=this;this.routePoints.forEach((function(n){t.removeRoutingPoint(e,n)})),this.routePoints=[]}},{key:"removeRoutingPoint",value:function(e,t){e.remove(t),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}},{key:"sendRoutingRequest",value:function(e,t,n){if(0===this.routePoints.length)return alert("Please provide at least an end point."),!1;var i=this.routePoints.map((function(e){return e.position.z=0,n.applyOffset(e.position,!0)})),r=i.length>1?i[0]:n.applyOffset(e,!0),o=i.length>1?null:t,s=i[i.length-1],l=i.length>1?i.slice(1,-1):[];return a.default.requestRoute(r,o,l,s,this.parkingSpaceId),!0}}]),e}();t.default=u},function(e,t,n){var i=n(11);(i=n(11)).OrbitControls=function(e,t){var n,r,o,a,s;this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.target=new i.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.25,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={ORBIT:i.MOUSE.LEFT,ZOOM:i.MOUSE.MIDDLE,PAN:i.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return m.phi},this.getAzimuthalAngle=function(){return m.theta},this.reset=function(){l.target.copy(l.target0),l.object.position.copy(l.position0),l.object.zoom=l.zoom0,l.object.updateProjectionMatrix(),l.dispatchEvent(u),l.update(),p=h.NONE},this.update=(n=new i.Vector3,r=(new i.Quaternion).setFromUnitVectors(e.up,new i.Vector3(0,1,0)),o=r.clone().inverse(),a=new i.Vector3,s=new i.Quaternion,function(){var e=l.object.position;return n.copy(e).sub(l.target),n.applyQuaternion(r),m.setFromVector3(n),l.autoRotate&&p===h.NONE&&P(2*Math.PI/60/60*l.autoRotateSpeed),m.theta+=g.theta,m.phi+=g.phi,m.theta=Math.max(l.minAzimuthAngle,Math.min(l.maxAzimuthAngle,m.theta)),m.phi=Math.max(l.minPolarAngle,Math.min(l.maxPolarAngle,m.phi)),m.makeSafe(),m.radius*=y,m.radius=Math.max(l.minDistance,Math.min(l.maxDistance,m.radius)),l.target.add(v),n.setFromSpherical(m),n.applyQuaternion(o),e.copy(l.target).add(n),l.object.lookAt(l.target),!0===l.enableDamping?(g.theta*=1-l.dampingFactor,g.phi*=1-l.dampingFactor):g.set(0,0,0),y=1,v.set(0,0,0),!!(b||a.distanceToSquared(l.object.position)>f||8*(1-s.dot(l.object.quaternion))>f)&&(l.dispatchEvent(u),a.copy(l.object.position),s.copy(l.object.quaternion),b=!1,!0)}),this.dispose=function(){l.domElement.removeEventListener("contextmenu",Y,!1),l.domElement.removeEventListener("mousedown",z,!1),l.domElement.removeEventListener("wheel",j,!1),l.domElement.removeEventListener("touchstart",G,!1),l.domElement.removeEventListener("touchend",H,!1),l.domElement.removeEventListener("touchmove",V,!1),document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",W,!1)};var l=this,u={type:"change"},c={type:"start"},d={type:"end"},h={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY:4,TOUCH_PAN:5},p=h.NONE,f=1e-6,m=new i.Spherical,g=new i.Spherical,y=1,v=new i.Vector3,b=!1,_=new i.Vector2,x=new i.Vector2,w=new i.Vector2,M=new i.Vector2,S=new i.Vector2,E=new i.Vector2,T=new i.Vector2,C=new i.Vector2,O=new i.Vector2;function k(){return Math.pow(.95,l.zoomSpeed)}function P(e){g.theta-=e}function A(e){g.phi-=e}var R,L=(R=new i.Vector3,function(e,t){R.setFromMatrixColumn(t,0),R.multiplyScalar(-e),v.add(R)}),I=function(){var e=new i.Vector3;return function(t,n){e.setFromMatrixColumn(n,1),e.multiplyScalar(t),v.add(e)}}(),D=function(){var e=new i.Vector3;return function(t,n){var r=l.domElement===document?l.domElement.body:l.domElement;if(l.object instanceof i.PerspectiveCamera){var o=l.object.position;e.copy(o).sub(l.target);var a=e.length();a*=Math.tan(l.object.fov/2*Math.PI/180),L(2*t*a/r.clientHeight,l.object.matrix),I(2*n*a/r.clientHeight,l.object.matrix)}else l.object instanceof i.OrthographicCamera?(L(t*(l.object.right-l.object.left)/l.object.zoom/r.clientWidth,l.object.matrix),I(n*(l.object.top-l.object.bottom)/l.object.zoom/r.clientHeight,l.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),l.enablePan=!1)}}();function N(e){l.object instanceof i.PerspectiveCamera?y/=e:l.object instanceof i.OrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom*e)),l.object.updateProjectionMatrix(),b=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function F(e){l.object instanceof i.PerspectiveCamera?y*=e:l.object instanceof i.OrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom/e)),l.object.updateProjectionMatrix(),b=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function z(e){if(!1!==l.enabled){if(e.preventDefault(),e.button===l.mouseButtons.ORBIT){if(!1===l.enableRotate)return;!function(e){_.set(e.clientX,e.clientY)}(e),p=h.ROTATE}else if(e.button===l.mouseButtons.ZOOM){if(!1===l.enableZoom)return;!function(e){T.set(e.clientX,e.clientY)}(e),p=h.DOLLY}else if(e.button===l.mouseButtons.PAN){if(!1===l.enablePan)return;!function(e){M.set(e.clientX,e.clientY)}(e),p=h.PAN}p!==h.NONE&&(document.addEventListener("mousemove",B,!1),document.addEventListener("mouseup",U,!1),l.dispatchEvent(c))}}function B(e){if(!1!==l.enabled)if(e.preventDefault(),p===h.ROTATE){if(!1===l.enableRotate)return;!function(e){x.set(e.clientX,e.clientY),w.subVectors(x,_);var t=l.domElement===document?l.domElement.body:l.domElement;P(2*Math.PI*w.x/t.clientWidth*l.rotateSpeed),A(2*Math.PI*w.y/t.clientHeight*l.rotateSpeed),_.copy(x),l.update()}(e)}else if(p===h.DOLLY){if(!1===l.enableZoom)return;!function(e){C.set(e.clientX,e.clientY),O.subVectors(C,T),O.y>0?N(k()):O.y<0&&F(k()),T.copy(C),l.update()}(e)}else if(p===h.PAN){if(!1===l.enablePan)return;!function(e){S.set(e.clientX,e.clientY),E.subVectors(S,M),D(E.x,E.y),M.copy(S),l.update()}(e)}}function U(e){!1!==l.enabled&&(document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",U,!1),l.dispatchEvent(d),p=h.NONE)}function j(e){!1===l.enabled||!1===l.enableZoom||p!==h.NONE&&p!==h.ROTATE||(e.preventDefault(),e.stopPropagation(),function(e){e.deltaY<0?F(k()):e.deltaY>0&&N(k()),l.update()}(e),l.dispatchEvent(c),l.dispatchEvent(d))}function W(e){!1!==l.enabled&&!1!==l.enableKeys&&!1!==l.enablePan&&function(e){switch(e.keyCode){case l.keys.UP:D(0,l.keyPanSpeed),l.update();break;case l.keys.BOTTOM:D(0,-l.keyPanSpeed),l.update();break;case l.keys.LEFT:D(l.keyPanSpeed,0),l.update();break;case l.keys.RIGHT:D(-l.keyPanSpeed,0),l.update()}}(e)}function G(e){if(!1!==l.enabled){switch(e.touches.length){case 1:if(!1===l.enableRotate)return;!function(e){_.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_ROTATE;break;case 2:if(!1===l.enableZoom)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,i=Math.sqrt(t*t+n*n);T.set(0,i)}(e),p=h.TOUCH_DOLLY;break;case 3:if(!1===l.enablePan)return;!function(e){M.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_PAN;break;default:p=h.NONE}p!==h.NONE&&l.dispatchEvent(c)}}function V(e){if(!1!==l.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:if(!1===l.enableRotate)return;if(p!==h.TOUCH_ROTATE)return;!function(e){x.set(e.touches[0].pageX,e.touches[0].pageY),w.subVectors(x,_);var t=l.domElement===document?l.domElement.body:l.domElement;P(2*Math.PI*w.x/t.clientWidth*l.rotateSpeed),A(2*Math.PI*w.y/t.clientHeight*l.rotateSpeed),_.copy(x),l.update()}(e);break;case 2:if(!1===l.enableZoom)return;if(p!==h.TOUCH_DOLLY)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,i=Math.sqrt(t*t+n*n);C.set(0,i),O.subVectors(C,T),O.y>0?F(k()):O.y<0&&N(k()),T.copy(C),l.update()}(e);break;case 3:if(!1===l.enablePan)return;if(p!==h.TOUCH_PAN)return;!function(e){S.set(e.touches[0].pageX,e.touches[0].pageY),E.subVectors(S,M),D(E.x,E.y),M.copy(S),l.update()}(e);break;default:p=h.NONE}}function H(e){!1!==l.enabled&&(l.dispatchEvent(d),p=h.NONE)}function Y(e){e.preventDefault()}l.domElement.addEventListener("contextmenu",Y,!1),l.domElement.addEventListener("mousedown",z,!1),l.domElement.addEventListener("wheel",j,!1),l.domElement.addEventListener("touchstart",G,!1),l.domElement.addEventListener("touchend",H,!1),l.domElement.addEventListener("touchmove",V,!1),window.addEventListener("keydown",W,!1),this.update()},i.OrbitControls.prototype=Object.create(i.EventDispatcher.prototype),i.OrbitControls.prototype.constructor=i.OrbitControls,Object.defineProperties(i.OrbitControls.prototype,{center:{get:function(){return console.warn("THREE.OrbitControls: .center has been renamed to .target"),this.target}},noZoom:{get:function(){return console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),!this.enableZoom},set:function(e){console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),this.enableZoom=!e}},noRotate:{get:function(){return console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),!this.enableRotate},set:function(e){console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),this.enableRotate=!e}},noPan:{get:function(){return console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),!this.enablePan},set:function(e){console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),this.enablePan=!e}},noKeys:{get:function(){return console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),!this.enableKeys},set:function(e){console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),this.enableKeys=!e}},staticMoving:{get:function(){return console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),!this.enableDamping},set:function(e){console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),this.enableDamping=!e}},dynamicDampingFactor:{get:function(){return console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor},set:function(e){console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor=e}}})},function(e,t,n){e.exports=n.p+"assets/cQGVQz4W_CET1VNG7zZBI.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=l(n(1)),r=l(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),a=l(n(12)),s=n(27);function l(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(){(0,i.default)(this,e),this.circle=null,this.base=null}return(0,r.default)(e,[{key:"update",value:function(e,t,n){if(e.gps&&e.autoDrivingCar){if(!this.circle){var i=new o.MeshBasicMaterial({color:27391,transparent:!1,opacity:.5});this.circle=(0,s.drawCircle)(.2,i),n.add(this.circle)}if(!this.base){var r=a.default.hmi.vehicleParam;this.base=(0,s.drawSegmentsFromPoints)([new o.Vector3(r.frontEdgeToCenter,-r.leftEdgeToCenter,0),new o.Vector3(r.frontEdgeToCenter,r.rightEdgeToCenter,0),new o.Vector3(-r.backEdgeToCenter,r.rightEdgeToCenter,0),new o.Vector3(-r.backEdgeToCenter,-r.leftEdgeToCenter,0),new o.Vector3(r.frontEdgeToCenter,-r.leftEdgeToCenter,0)],27391,2,5),n.add(this.base)}var l=a.default.options.showPositionGps,u=t.applyOffset({x:e.gps.positionX,y:e.gps.positionY,z:.01});this.circle.position.set(u.x,u.y,u.z),this.circle.visible=l,this.base.position.set(u.x,u.y,u.z),this.base.rotation.set(0,0,e.gps.heading),this.base.visible=l}}}]),e}();t.default=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(n(1)),r=a(n(2)),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11));function a(e){return e&&e.__esModule?e:{default:e}}var s={.5:16711680,1:16744192,1.5:16776960,2:65280,2.5:255,3:4915330,10:9699539},l=function(){function e(){(0,i.default)(this,e),this.points=null,this.initialized=!1}return(0,r.default)(e,[{key:"initialize",value:function(){this.points=this.createPointCloud(s[.5]),this.initialized=!0}},{key:"createPointCloud",value:function(e){for(var t=new o.Geometry,n=[],i=0;i<1e5;++i){var r=new o.Vector3;r.set(0,0,-10),t.vertices.push(r),n[i]=new o.Color(e)}t.colors=n;var a=new o.PointsMaterial({size:.25,transparent:!0,opacity:.7,vertexColors:o.VertexColors}),s=new o.Points(t,a);return s.frustumCulled=!1,s}},{key:"update",value:function(e,t){if(null!==this.points)if(e.num.length%3==0){for(var n=e.num.length/3,i=n<1e5?n:1e5,r=.5,o=0;o1e4&&r>2e3){var o="Connection to the server has been lost.";a.default.monitor.insert("FATAL",o,n),u.default.getCurrentText()===o&&u.default.isSpeaking()||u.default.speakOnce(o)}e.initialize()},clearInterval(this.timer),this.timer=setInterval((function(){e.websocket.readyState===e.websocket.OPEN&&(e.updatePOI&&(e.requestDefaultRoutingEndPoint(),e.updatePOI=!1),e.requestSimulationWorld(a.default.options.showPNCMonitor),a.default.hmi.isCalibrationMode&&e.requestDataCollectionProgress())}),this.simWorldUpdatePeriodMs)}},{key:"updateMapIndex",value:function(e){var t=new Date,n=t-this.mapLastUpdateTimestamp;e.mapHash&&n>=this.mapUpdatePeriodMs&&(s.default.updateMapIndex(e.mapHash,e.mapElementIds,e.mapRadius),this.mapLastUpdateTimestamp=t)}},{key:"checkMessage",value:function(e){var t=(new Date).getTime(),n=t-this.simWorldLastUpdateTimestamp;0!==this.simWorldLastUpdateTimestamp&&n>200&&console.warn("Last sim_world_update took "+n+"ms"),this.secondLastSeqNum===e.sequenceNum&&console.warn("Received duplicate simulation_world:",this.lastSeqNum),this.secondLastSeqNum=this.lastSeqNum,this.lastSeqNum=e.sequenceNum,this.simWorldLastUpdateTimestamp=t}},{key:"requestSimulationWorld",value:function(e){this.websocket.send((0,i.default)({type:"RequestSimulationWorld",planning:e}))}},{key:"checkRoutingPoint",value:function(e){var t={type:"CheckRoutingPoint",point:e};this.websocket.send((0,i.default)(t))}},{key:"requestMapElementIdsByRadius",value:function(e){this.websocket.send((0,i.default)({type:"RetrieveMapElementIdsByRadius",radius:e}))}},{key:"requestRoute",value:function(e,t,n,r,o){var a={type:"SendRoutingRequest",start:e,end:r,waypoint:n};o&&(a.parkingSpaceId=o),t&&(a.start.heading=t),this.websocket.send((0,i.default)(a))}},{key:"requestDefaultRoutingEndPoint",value:function(){this.websocket.send((0,i.default)({type:"GetDefaultEndPoint"}))}},{key:"resetBackend",value:function(){this.websocket.send((0,i.default)({type:"Reset"}))}},{key:"dumpMessages",value:function(){this.websocket.send((0,i.default)({type:"Dump"}))}},{key:"changeSetupMode",value:function(e){this.websocket.send((0,i.default)({type:"HMIAction",action:"CHANGE_MODE",value:e}))}},{key:"changeMap",value:function(e){this.websocket.send((0,i.default)({type:"HMIAction",action:"CHANGE_MAP",value:e})),this.updatePOI=!0}},{key:"changeVehicle",value:function(e){this.websocket.send((0,i.default)({type:"HMIAction",action:"CHANGE_VEHICLE",value:e}))}},{key:"executeModeCommand",value:function(e){["SETUP_MODE","RESET_MODE","ENTER_AUTO_MODE"].includes(e)?(this.websocket.send((0,i.default)({type:"HMIAction",action:e})),setTimeout(this.requestHmiStatus,5e3)):console.error("Unknown mode command found:",e)}},{key:"executeModuleCommand",value:function(e,t){["START_MODULE","STOP_MODULE"].includes(t)?(this.websocket.send((0,i.default)({type:"HMIAction",action:t,value:e})),setTimeout(this.requestHmiStatus,5e3)):console.error("Unknown module command found:",t)}},{key:"submitDriveEvent",value:function(e,t,n,r){this.websocket.send((0,i.default)({type:"SubmitDriveEvent",event_time_ms:e,event_msg:t,event_type:n,is_reportable:r}))}},{key:"toggleSimControl",value:function(e){this.websocket.send((0,i.default)({type:"ToggleSimControl",enable:e}))}},{key:"requestRoutePath",value:function(){this.websocket.send((0,i.default)({type:"RequestRoutePath"}))}},{key:"requestHmiStatus",value:function(){this.websocket.send((0,i.default)({type:"HMIStatus"}))}},{key:"publishNavigationInfo",value:function(e){this.websocket.send(e)}},{key:"requestDataCollectionProgress",value:function(){this.websocket.send((0,i.default)({type:"RequestDataCollectionProgress"}))}}]),e}();t.default=h},function(e,t,n){!function(){"use strict";var t={PI:Math.PI,x_pi:3e3*Math.PI/180,delta:function(e,t){var n=6378245,i=.006693421622965943,r=this.transformLat(t-105,e-35),o=this.transformLon(t-105,e-35),a=e/180*this.PI,s=Math.sin(a);s=1-i*s*s;var l=Math.sqrt(s);return{lat:r=180*r/(n*(1-i)/(s*l)*this.PI),lon:o=180*o/(n/l*Math.cos(a)*this.PI)}},wgs84_gcj02:function(e,t){if(this.outOfChina(t,e))return[e,t];var n=this.delta(t,e);return[e+n.lon,t+n.lat]},gcj02_wgs84:function(e,t){if(this.outOfChina(t,e))return[e,t];var n=this.delta(t,e);return[e-n.lon,t-n.lat]},gcj02_wgs84_precise:function(e,t){for(var n,i,r=.01,o=.01,a=t-r,s=e-o,l=t+r,u=e+o,c=0;;){n=(a+l)/2,i=(s+u)/2;var d=this.gcj_encrypt(n,i);if(r=d.lat-t,o=d.lon-e,Math.abs(r)<1e-9&&Math.abs(o)<1e-9)break;if(r>0?l=n:a=n,o>0?u=i:s=i,++c>1e4)break}return[i,n]},gcj02_bd09ll:function(e,t){var n=e,i=t,r=Math.sqrt(n*n+i*i)+2e-5*Math.sin(i*this.x_pi),o=Math.atan2(i,n)+3e-6*Math.cos(n*this.x_pi);return[r*Math.cos(o)+.0065,r*Math.sin(o)+.006]},bd09ll_gcj02:function(e,t){var n=e-.0065,i=t-.006,r=Math.sqrt(n*n+i*i)-2e-5*Math.sin(i*this.x_pi),o=Math.atan2(i,n)-3e-6*Math.cos(n*this.x_pi);return[r*Math.cos(o),r*Math.sin(o)]},outOfChina:function(e,t){return t<72.004||t>137.8347||(e<.8293||e>55.8271)},transformLat:function(e,t){var n=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*this.PI)+20*Math.sin(2*e*this.PI))/3,n+=2*(20*Math.sin(t*this.PI)+40*Math.sin(t/3*this.PI))/3,n+=2*(160*Math.sin(t/12*this.PI)+320*Math.sin(t*this.PI/30))/3},transformLon:function(e,t){var n=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*this.PI)+20*Math.sin(2*e*this.PI))/3,n+=2*(20*Math.sin(e*this.PI)+40*Math.sin(e/3*this.PI))/3,n+=2*(150*Math.sin(e/12*this.PI)+300*Math.sin(e/30*this.PI))/3}},n={crs:{bd09ll:"+proj=longlat +datum=BD09",gcj02:"+proj=longlat +datum=GCJ02",wgs84:"+proj=longlat +datum=WGS84 +no_defs"},transform:function(e,t,n){if(!e)return null;if(!t||!n)throw new Error("must provide a valid fromCRS and toCRS.");if(this._isCoord(e))return this._transformCoordinate(e,t,n);if(this._isArray(e)){for(var i=[],r=0;r0&&(this.imageSrcData="data:image/jpeg;base64,"+new e(t.image).toString("base64")),this.imageAspectRatio=t.imageAspectRatio;var r=new y.Matrix4;if(t.localization&&n.isInitialized()){var o=n.applyOffset({x:t.localization[12],y:t.localization[13]});t.localization[12]=o.x,t.localization[13]=o.y,t.localization[14]=0,r.fromArray(t.localization)}var a=new y.Matrix4;t.localization2cameraTf&&a.fromArray(t.localization2cameraTf);var s=new y.Matrix4;s.multiplyMatrices(r,a);var l=this.getPositionAndRotationFromMatrix(a),u=this.getPositionAndRotationFromMatrix(r),c=this.getPositionAndRotationFromMatrix(s),d=n.applyOffset(c.position,!0);["x","y","z"].forEach((function(e){i.initPosition.set(e,d[e]),i.initStaticRotation.set(e,l.rotation[e]),i.initDynamicRotation.set(e,u.rotation[e])}))}},{key:"update",value:function(e,t,n){var i=this["delta"+e];i&&i.has(t)&&i.set(t,i.get(t)+n)}},{key:"get",value:function(){var e=this,t={},n={},i={};["x","y","z"].forEach((function(r){t[r]=e.initPosition.get(r)+e.deltaPosition.get(r),n[r]=e.initStaticRotation.get(r)+e.deltaStaticRotation.get(r),i[r]=e.initDynamicRotation.get(r)+e.deltaDynamicRotation.get(r)}));var r=new y.Quaternion,o=new y.Euler(n.x,n.y,n.z);r.setFromEuler(o);var a=new y.Quaternion,s=new y.Euler(i.x,i.y,i.z);a.setFromEuler(s);var l=new y.Quaternion;l.multiplyQuaternions(a,r);var u=(new y.Euler).setFromQuaternion(l);return{position:t,rotation:u}}},{key:"reset",value:function(){var e=this;["x","y","z"].forEach((function(t){e.deltaPosition.set(t,0),e.deltaStaticRotation.set(t,0),e.deltaDynamicRotation.set(t,0)}))}}]),t}(),r=_(i.prototype,"initPosition",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),o=_(i.prototype,"deltaPosition",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),a=_(i.prototype,"initStaticRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),s=_(i.prototype,"deltaStaticRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),l=_(i.prototype,"initDynamicRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),u=_(i.prototype,"deltaDynamicRotation",[g.observable],{enumerable:!0,initializer:function(){return g.observable.map()}}),c=_(i.prototype,"imageSrcData",[g.observable],{enumerable:!0,initializer:function(){return null}}),d=_(i.prototype,"imageAspectRatio",[g.observable],{enumerable:!0,initializer:function(){return null}}),_(i.prototype,"init",[g.action],(0,p.default)(i.prototype,"init"),i.prototype),_(i.prototype,"update",[g.action],(0,p.default)(i.prototype,"update"),i.prototype),_(i.prototype,"reset",[g.action],(0,p.default)(i.prototype,"reset"),i.prototype),i);t.default=x}).call(this,n(335).Buffer)},function(e,t,n){"use strict";(function(e){ /*! * The buffer module from node.js, for the browser. * @@ -62,7 +62,7 @@ var i=n(336),r=n(337),o=n(338);function a(){return l.TYPED_ARRAY_SUPPORT?2147483 * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&Symbol.for,r=i?Symbol.for("react.element"):60103,o=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,s=i?Symbol.for("react.strict_mode"):60108,l=i?Symbol.for("react.profiler"):60114,u=i?Symbol.for("react.provider"):60109,c=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,p=i?Symbol.for("react.forward_ref"):60112,f=i?Symbol.for("react.suspense"):60113,m=i?Symbol.for("react.suspense_list"):60120,g=i?Symbol.for("react.memo"):60115,y=i?Symbol.for("react.lazy"):60116,v=i?Symbol.for("react.fundamental"):60117,b=i?Symbol.for("react.responder"):60118;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case d:case h:case a:case l:case s:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case u:return e;default:return t}}case y:case g:case o:return t}}}function x(e){return _(e)===h}t.typeOf=_,t.AsyncMode=d,t.ConcurrentMode=h,t.ContextConsumer=c,t.ContextProvider=u,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=g,t.Portal=o,t.Profiler=l,t.StrictMode=s,t.Suspense=f,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===h||e===l||e===s||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===u||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===b)},t.isAsyncMode=function(e){return x(e)||_(e)===d},t.isConcurrentMode=x,t.isContextConsumer=function(e){return _(e)===c},t.isContextProvider=function(e){return _(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===p},t.isFragment=function(e){return _(e)===a},t.isLazy=function(e){return _(e)===y},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===o},t.isProfiler=function(e){return _(e)===l},t.isStrictMode=function(e){return _(e)===s},t.isSuspense=function(e){return _(e)===f}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=g(n(3)),o=g(n(1)),a=g(n(2)),s=g(n(4)),l=g(n(5)),u=g(n(0)),c=n(7),d=g(n(400)),h=g(n(420)),p=g(n(422)),f=g(n(431)),m=g(n(432));function g(e){return e&&e.__esModule?e:{default:e}}var y=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.store,t=e.options,n=e.routeEditingManager,i=e.hmi,r=e.newDisengagementReminder;return u.default.createElement("div",{className:"tools"},t.showTasks&&u.default.createElement(m.default,{options:t}),t.showModuleController&&u.default.createElement(h.default,null),t.showMenu&&u.default.createElement(p.default,{options:t}),t.showPOI&&u.default.createElement(f.default,{routeEditingManager:n,options:t,inNavigationMode:i.inNavigationMode}),t.showDataRecorder&&u.default.createElement(d.default,{newDisengagementReminder:r}))}}]),t}(u.default.Component))||i)||i;t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=v(n(23)),r=v(n(92)),o=v(n(3)),a=v(n(1)),s=v(n(2)),l=v(n(4)),u=v(n(5)),c=v(n(0)),d=v(n(401)),h=v(n(10)),p=v(n(14)),f=v(n(12)),m=v(n(20)),g=v(n(416)),y=v(n(60));function v(e){return e&&e.__esModule?e:{default:e}}var b=d.default.Root.fromJSON(n(419)).lookup("apollo.common.DriveEvent.Type").values,_=function(e){function t(e){(0,a.default)(this,t);var n=(0,l.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.state={eventTime:new Date(f.default.timestamp),eventMessage:"",eventTypes:new r.default,popupReminder:n.props.newDisengagementReminder,isReportable:!1},n.handleMessageChange=n.handleMessageChange.bind(n),n.handleTimestampUpdate=n.handleTimestampUpdate.bind(n),n.handleSubmit=n.handleSubmit.bind(n),n.handleCancel=n.handleCancel.bind(n),n.toggleTicket=n.toggleTicket.bind(n),n.setTextareaRef=function(e){n.textareaElement=e},n}return(0,u.default)(t,e),(0,s.default)(t,[{key:"componentWillReceiveProps",value:function(e){e.newDisengagementReminder&&(this.handleTimestampUpdate(),this.setState({popupReminder:!0}))}},{key:"handleMessageChange",value:function(e){this.setState({eventMessage:e.target.value})}},{key:"handleTimestampUpdate",value:function(){this.setState({eventTime:new Date(f.default.timestamp)})}},{key:"handleSubmit",value:function(e){return e.preventDefault(),this.state.eventMessage?this.state.eventTypes.size?(m.default.submitDriveEvent(this.state.eventTime.getTime(),this.state.eventMessage,this.state.eventTypes,this.state.isReportable),void f.default.handleOptionToggle("showDataRecorder")):alert("Please select at least one event type."):alert("Please provide a drive event message.")}},{key:"handleCancel",value:function(){f.default.handleOptionToggle("showDataRecorder")}},{key:"handleEventTypeSelection",value:function(e){var t=this.state.eventTypes;t.has(e)?t.delete(e):t.add(e),this.setState({eventTypes:new r.default(t)})}},{key:"toggleTicket",value:function(){this.setState((function(e){return{isReportable:!e.isReportable}}))}},{key:"renderTypeCheckBox",value:function(){var e=this;return(0,i.default)(b).map((function(t){return c.default.createElement("button",{key:t,onClick:e.handleEventTypeSelection.bind(e,t),className:(0,h.default)({"drive-event-type-button":!0,"drive-event-type-button-active":e.state.eventTypes.has(t)})},p.default.startCase(p.default.lowerCase(t)))}))}},{key:"render",value:function(){var e=this;return c.default.createElement("div",{className:"card data-recorder"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Add Drive Event")),c.default.createElement("div",{className:"card-content-column"},c.default.createElement("table",null,c.default.createElement("tbody",null,c.default.createElement("tr",{className:"drive-event-row"},c.default.createElement("td",null,"Event Time"),c.default.createElement("td",null,c.default.createElement("span",{className:"event-time"},this.state.eventTime.toString(),c.default.createElement("button",{className:"timestamp-button",onClick:this.handleTimestampUpdate},"Update Time")))),c.default.createElement("tr",{className:"drive-event-row"},c.default.createElement("td",null,"Types"),c.default.createElement("td",null,this.renderTypeCheckBox())),c.default.createElement("tr",{className:"drive-event-msg-row"},c.default.createElement("td",null,"Message"),c.default.createElement("td",null,c.default.createElement("textarea",{autoFocus:!this.state.popupReminder,ref:this.setTextareaRef,placeholder:"please enter a message...",value:this.state.eventMessage,onChange:this.handleMessageChange}))),c.default.createElement("tr",{className:"drive-event-row"},c.default.createElement("td",null,"File a ticket"),c.default.createElement("td",{className:"multiple-items"},c.default.createElement("span",null,c.default.createElement(y.default,{id:"isReportableData",isChecked:this.state.isReportable,disabled:!1,onClick:this.toggleTicket})),c.default.createElement("span",null,c.default.createElement("button",{className:"cancel-button",onClick:this.handleCancel},"Cancel"),c.default.createElement("button",{className:"submit-button",onClick:this.handleSubmit},"Submit"))))))),c.default.createElement(g.default,{open:this.state.popupReminder,onClose:function(){e.setState({popupReminder:!1}),e.textareaElement.focus()}},c.default.createElement("div",{className:"codriver-msg"},c.default.createElement("p",null,"Disengagement found. "),c.default.createElement("p",null,"Please record a drive event."))))}}]),t}(c.default.Component);t.default=_},function(e,t,n){"use strict";e.exports=n(402)},function(e,t,n){"use strict";var i=e.exports=n(403);i.build="light",i.load=function(e,t,n){return"function"==typeof t?(n=t,t=new i.Root):t||(t=new i.Root),t.load(e,n)},i.loadSync=function(e,t){return t||(t=new i.Root),t.loadSync(e)},i.encoder=n(158),i.decoder=n(163),i.verifier=n(164),i.converter=n(165),i.ReflectionObject=n(45),i.Namespace=n(58),i.Root=n(167),i.Enum=n(31),i.Type=n(159),i.Field=n(46),i.OneOf=n(100),i.MapField=n(160),i.Service=n(161),i.Method=n(162),i.Message=n(101),i.wrappers=n(166),i.types=n(59),i.util=n(17),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},function(e,t,n){"use strict";var i=t;function r(){i.Reader._configure(i.BufferReader),i.util._configure()}i.build="minimal",i.Writer=n(98),i.BufferWriter=n(410),i.Reader=n(99),i.BufferReader=n(411),i.util=n(30),i.rpc=n(156),i.roots=n(157),i.configure=r,i.Writer._configure(i.BufferWriter),r()},function(e,t,n){"use strict";var i=t;i.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var r=new Array(64),o=new Array(123),a=0;a<64;)o[r[a]=a<26?a+65:a<52?a+71:a<62?a-4:a-59|43]=a++;i.encode=function(e,t,n){for(var i,o=null,a=[],s=0,l=0;t>2],i=(3&u)<<4,l=1;break;case 1:a[s++]=r[i|u>>4],i=(15&u)<<2,l=2;break;case 2:a[s++]=r[i|u>>6],a[s++]=r[63&u],l=0}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,a)),s=0)}return l&&(a[s++]=r[i],a[s++]=61,1===l&&(a[s++]=61)),o?(s&&o.push(String.fromCharCode.apply(String,a.slice(0,s))),o.join("")):String.fromCharCode.apply(String,a.slice(0,s))};i.decode=function(e,t,n){for(var i,r=n,a=0,s=0;s1)break;if(void 0===(l=o[l]))throw Error("invalid encoding");switch(a){case 0:i=l,a=1;break;case 1:t[n++]=i<<2|(48&l)>>4,i=l,a=2;break;case 2:t[n++]=(15&i)<<4|(60&l)>>2,i=l,a=3;break;case 3:t[n++]=(3&i)<<6|l,a=0}}if(1===a)throw Error("invalid encoding");return n-r},i.test=function(e){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e)}},function(e,t,n){"use strict";function i(){this._listeners={}}e.exports=i,i.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},i.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i0?0:2147483648,n,i);else if(isNaN(t))e(2143289344,n,i);else if(t>34028234663852886e22)e((r<<31|2139095040)>>>0,n,i);else if(t<11754943508222875e-54)e((r<<31|Math.round(t/1401298464324817e-60))>>>0,n,i);else{var o=Math.floor(Math.log(t)/Math.LN2);e((r<<31|o+127<<23|8388607&Math.round(t*Math.pow(2,-o)*8388608))>>>0,n,i)}}function n(e,t,n){var i=e(t,n),r=2*(i>>31)+1,o=i>>>23&255,a=8388607&i;return 255===o?a?NaN:r*(1/0):0===o?1401298464324817e-60*r*a:r*Math.pow(2,o-150)*(a+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,o),e.readFloatLE=n.bind(null,a),e.readFloatBE=n.bind(null,s)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),i=128===n[7];function r(e,i,r){t[0]=e,i[r]=n[0],i[r+1]=n[1],i[r+2]=n[2],i[r+3]=n[3],i[r+4]=n[4],i[r+5]=n[5],i[r+6]=n[6],i[r+7]=n[7]}function o(e,i,r){t[0]=e,i[r]=n[7],i[r+1]=n[6],i[r+2]=n[5],i[r+3]=n[4],i[r+4]=n[3],i[r+5]=n[2],i[r+6]=n[1],i[r+7]=n[0]}function a(e,i){return n[0]=e[i],n[1]=e[i+1],n[2]=e[i+2],n[3]=e[i+3],n[4]=e[i+4],n[5]=e[i+5],n[6]=e[i+6],n[7]=e[i+7],t[0]}function s(e,i){return n[7]=e[i],n[6]=e[i+1],n[5]=e[i+2],n[4]=e[i+3],n[3]=e[i+4],n[2]=e[i+5],n[1]=e[i+6],n[0]=e[i+7],t[0]}e.writeDoubleLE=i?r:o,e.writeDoubleBE=i?o:r,e.readDoubleLE=i?a:s,e.readDoubleBE=i?s:a}():function(){function t(e,t,n,i,r,o){var a=i<0?1:0;if(a&&(i=-i),0===i)e(0,r,o+t),e(1/i>0?0:2147483648,r,o+n);else if(isNaN(i))e(0,r,o+t),e(2146959360,r,o+n);else if(i>17976931348623157e292)e(0,r,o+t),e((a<<31|2146435072)>>>0,r,o+n);else{var s;if(i<22250738585072014e-324)e((s=i/5e-324)>>>0,r,o+t),e((a<<31|s/4294967296)>>>0,r,o+n);else{var l=Math.floor(Math.log(i)/Math.LN2);1024===l&&(l=1023),e(4503599627370496*(s=i*Math.pow(2,-l))>>>0,r,o+t),e((a<<31|l+1023<<20|1048576*s&1048575)>>>0,r,o+n)}}}function n(e,t,n,i,r){var o=e(i,r+t),a=e(i,r+n),s=2*(a>>31)+1,l=a>>>20&2047,u=4294967296*(1048575&a)+o;return 2047===l?u?NaN:s*(1/0):0===l?5e-324*s*u:s*Math.pow(2,l-1075)*(u+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,o,4,0),e.readDoubleLE=n.bind(null,a,0,4),e.readDoubleBE=n.bind(null,s,4,0)}(),e}function r(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function o(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function a(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function s(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=i(i)},function(e,t,n){"use strict";var i=t;i.length=function(e){for(var t=0,n=0,i=0;i191&&i<224?o[a++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[a++]=55296+(i>>10),o[a++]=56320+(1023&i)):o[a++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((r||(r=[])).push(String.fromCharCode.apply(String,o)),a=0);return r?(a&&r.push(String.fromCharCode.apply(String,o.slice(0,a))),r.join("")):String.fromCharCode.apply(String,o.slice(0,a))},i.write=function(e,t,n){for(var i,r,o=n,a=0;a>6|192,t[n++]=63&i|128):55296==(64512&i)&&56320==(64512&(r=e.charCodeAt(a+1)))?(i=65536+((1023&i)<<10)+(1023&r),++a,t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128);return n-o}},function(e,t,n){"use strict";e.exports=function(e,t,n){var i=n||8192,r=i>>>1,o=null,a=i;return function(n){if(n<1||n>r)return e(n);a+n>i&&(o=e(i),a=0);var s=t.call(o,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},function(e,t,n){"use strict";e.exports=r;var i=n(30);function r(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=r.zero=new r(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var a=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if(i.isString(e)){if(!i.Long)return r.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):o},r.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;r.fromHash=function(e){return e===a?o:new r((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},r.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},r.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},function(e,t,n){"use strict";e.exports=a;var i=n(98);(a.prototype=Object.create(i.prototype)).constructor=a;var r=n(30),o=r.Buffer;function a(){i.call(this)}a.alloc=function(e){return(a.alloc=r._Buffer_allocUnsafe)(e)};var s=o&&o.prototype instanceof Uint8Array&&"set"===o.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var i=0;i>>0;return this.uint32(t),t&&this._push(s,t,e),this},a.prototype.string=function(e){var t=o.byteLength(e);return this.uint32(t),t&&this._push(l,t,e),this}},function(e,t,n){"use strict";e.exports=o;var i=n(99);(o.prototype=Object.create(i.prototype)).constructor=o;var r=n(30);function o(e){i.call(this,e)}r.Buffer&&(o.prototype._slice=r.Buffer.prototype.slice),o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len))}},function(e,t,n){"use strict";e.exports=r;var i=n(30);function r(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(r.prototype=Object.create(i.EventEmitter.prototype)).constructor=r,r.prototype.rpcCall=function e(t,n,r,o,a){if(!o)throw TypeError("request must be specified");var s=this;if(!a)return i.asPromise(e,s,t,n,r,o);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof r))try{n=r[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},r.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},function(e,t,n){"use strict";function i(e,t){"string"==typeof e&&(t=e,e=void 0);var n=[];function r(e){if("string"!=typeof e){var t=o();if(i.verbose&&console.log("codegen: "+t),t="return "+t,e){for(var a=Object.keys(e),s=new Array(a.length+1),l=new Array(a.length),u=0;u0&&".."!==t[o-1]?t.splice(--o,2):n?t.splice(o,1):++o:"."===t[o]?t.splice(o,1):++o;return i+t.join("/")};i.resolve=function(e,t,n){return n||(t=o(t)),r(t)?t:(n||(e=o(e)),(e=e.replace(/(?:\/|^)[^\/]+$/,"")).length?o(e+"/"+t):t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=c(n(3)),r=c(n(1)),o=c(n(2)),a=c(n(4)),s=c(n(5));n(417);var l=c(n(0)),u=c(n(32));function c(e){return e&&e.__esModule?e:{default:e}}var d=function(e){function t(e){(0,r.default)(this,t);var n=(0,a.default)(this,(t.__proto__||(0,i.default)(t)).call(this,e));return n.setOkButtonRef=function(e){n.okButton=e},n}return(0,s.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){var e=this;setTimeout((function(){e.okButton&&e.okButton.focus()}),0)}},{key:"componentDidUpdate",value:function(){this.okButton&&this.okButton.focus()}},{key:"render",value:function(){var e=this,t=this.props,n=t.open,i=t.header;return n?l.default.createElement("div",null,l.default.createElement("div",{className:"modal-background"}),l.default.createElement("div",{className:"modal-content"},l.default.createElement("div",{role:"dialog",className:"modal-dialog"},i&&l.default.createElement("header",null,l.default.createElement("span",null,this.props.header)),this.props.children),l.default.createElement("button",{ref:this.setOkButtonRef,className:"ok-button",onClick:function(){return e.props.onClose()}},"OK"))):null}}]),t}(l.default.Component),h=function(e){function t(e){(0,r.default)(this,t);var n=(0,a.default)(this,(t.__proto__||(0,i.default)(t)).call(this,e));return n.rootSelector=document.getElementById("root"),n.container=document.createElement("div"),n}return(0,s.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){this.rootSelector.appendChild(this.container)}},{key:"componentWillUnmount",value:function(){this.rootSelector.removeChild(this.container)}},{key:"render",value:function(){return u.default.createPortal(l.default.createElement(d,this.props),this.container)}}]),t}(l.default.Component);t.default=h},function(e,t,n){var i=n(418);"string"==typeof i&&(i=[[e.i,i,""]]);var r={transform:void 0};n(62)(i,r);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(61)(!1)).push([e.i,".modal-background {\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 1000; }\n\n.modal-content {\n position: fixed;\n top: 35%;\n left: 50%;\n width: 300px;\n height: 130px;\n transform: translate(-50%, -50%);\n text-align: center;\n background-color: rgba(0, 0, 0, 0.8);\n box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.75);\n z-index: 1001; }\n .modal-content header {\n background: #217cba;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 2rem;\n min-height: 50px; }\n .modal-content .modal-dialog {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 50px;\n left: 0px;\n padding: 5px; }\n .modal-content .ok-button {\n position: absolute;\n bottom: 0px;\n transform: translate(-50%, -50%);\n padding: 7px 25px;\n border: none;\n background: #006AFF;\n color: #ffffff;\n cursor: pointer; }\n .modal-content .ok-button:hover {\n background: #49a9ee; }\n",""])},function(e){e.exports=JSON.parse('{"nested":{"apollo":{"nested":{"dreamview":{"nested":{"PolygonPoint":{"fields":{"x":{"type":"double","id":1},"y":{"type":"double","id":2},"z":{"type":"double","id":3,"options":{"default":0}},"gaussianInfo":{"type":"apollo.common.GaussianInfo","id":4}}},"Prediction":{"fields":{"probability":{"type":"double","id":1},"predictedTrajectory":{"rule":"repeated","type":"PolygonPoint","id":2}}},"Decision":{"fields":{"type":{"type":"Type","id":1,"options":{"default":"IGNORE"}},"polygonPoint":{"rule":"repeated","type":"PolygonPoint","id":2},"heading":{"type":"double","id":3},"latitude":{"type":"double","id":4},"longitude":{"type":"double","id":5},"positionX":{"type":"double","id":6},"positionY":{"type":"double","id":7},"length":{"type":"double","id":8,"options":{"default":2.8}},"width":{"type":"double","id":9,"options":{"default":1.4}},"height":{"type":"double","id":10,"options":{"default":1.8}},"stopReason":{"type":"StopReasonCode","id":11},"changeLaneType":{"type":"apollo.routing.ChangeLaneType","id":12}},"nested":{"Type":{"values":{"IGNORE":0,"STOP":1,"NUDGE":2,"YIELD":3,"OVERTAKE":4,"FOLLOW":5,"SIDEPASS":6}},"StopReasonCode":{"values":{"STOP_REASON_HEAD_VEHICLE":1,"STOP_REASON_DESTINATION":2,"STOP_REASON_PEDESTRIAN":3,"STOP_REASON_OBSTACLE":4,"STOP_REASON_SIGNAL":100,"STOP_REASON_STOP_SIGN":101,"STOP_REASON_YIELD_SIGN":102,"STOP_REASON_CLEAR_ZONE":103,"STOP_REASON_CROSSWALK":104,"STOP_REASON_EMERGENCY":105,"STOP_REASON_NOT_READY":106,"STOP_REASON_PULL_OVER":107}}}},"Object":{"fields":{"id":{"type":"string","id":1},"polygonPoint":{"rule":"repeated","type":"PolygonPoint","id":2},"heading":{"type":"double","id":3},"latitude":{"type":"double","id":4},"longitude":{"type":"double","id":5},"positionX":{"type":"double","id":6},"positionY":{"type":"double","id":7},"length":{"type":"double","id":8,"options":{"default":2.8}},"width":{"type":"double","id":9,"options":{"default":1.4}},"height":{"type":"double","id":10,"options":{"default":1.8}},"speed":{"type":"double","id":11},"speedAcceleration":{"type":"double","id":12},"speedJerk":{"type":"double","id":13},"spin":{"type":"double","id":14},"spinAcceleration":{"type":"double","id":15},"spinJerk":{"type":"double","id":16},"speedHeading":{"type":"double","id":17},"kappa":{"type":"double","id":18},"dkappa":{"type":"double","id":35},"signalSet":{"rule":"repeated","type":"string","id":19},"currentSignal":{"type":"string","id":20},"timestampSec":{"type":"double","id":21},"decision":{"rule":"repeated","type":"Decision","id":22},"yieldedObstacle":{"type":"bool","id":32,"options":{"default":false}},"throttlePercentage":{"type":"double","id":23},"brakePercentage":{"type":"double","id":24},"steeringPercentage":{"type":"double","id":25},"steeringAngle":{"type":"double","id":26},"steeringRatio":{"type":"double","id":27},"disengageType":{"type":"DisengageType","id":28},"type":{"type":"Type","id":29},"subType":{"type":"apollo.perception.PerceptionObstacle.SubType","id":34},"prediction":{"rule":"repeated","type":"Prediction","id":30},"confidence":{"type":"double","id":31,"options":{"default":1}},"obstaclePriority":{"type":"apollo.prediction.ObstaclePriority","id":33}},"nested":{"DisengageType":{"values":{"DISENGAGE_NONE":0,"DISENGAGE_UNKNOWN":1,"DISENGAGE_MANUAL":2,"DISENGAGE_EMERGENCY":3,"DISENGAGE_AUTO_STEER_ONLY":4,"DISENGAGE_AUTO_SPEED_ONLY":5,"DISENGAGE_CHASSIS_ERROR":6}},"Type":{"values":{"UNKNOWN":0,"UNKNOWN_MOVABLE":1,"UNKNOWN_UNMOVABLE":2,"PEDESTRIAN":3,"BICYCLE":4,"VEHICLE":5,"VIRTUAL":6,"CIPV":7}}}},"DelaysInMs":{"fields":{"chassis":{"type":"double","id":1},"localization":{"type":"double","id":3},"perceptionObstacle":{"type":"double","id":4},"planning":{"type":"double","id":5},"prediction":{"type":"double","id":7},"trafficLight":{"type":"double","id":8},"control":{"type":"double","id":9}}},"RoutePath":{"fields":{"point":{"rule":"repeated","type":"PolygonPoint","id":1}}},"Latency":{"fields":{"timestampSec":{"type":"double","id":1},"totalTimeMs":{"type":"double","id":2}}},"MapElementIds":{"fields":{"lane":{"rule":"repeated","type":"string","id":1},"crosswalk":{"rule":"repeated","type":"string","id":2},"junction":{"rule":"repeated","type":"string","id":3},"signal":{"rule":"repeated","type":"string","id":4},"stopSign":{"rule":"repeated","type":"string","id":5},"yield":{"rule":"repeated","type":"string","id":6},"overlap":{"rule":"repeated","type":"string","id":7},"road":{"rule":"repeated","type":"string","id":8},"clearArea":{"rule":"repeated","type":"string","id":9},"parkingSpace":{"rule":"repeated","type":"string","id":10},"speedBump":{"rule":"repeated","type":"string","id":11},"pncJunction":{"rule":"repeated","type":"string","id":12}}},"ControlData":{"fields":{"timestampSec":{"type":"double","id":1},"stationError":{"type":"double","id":2},"lateralError":{"type":"double","id":3},"headingError":{"type":"double","id":4},"currentTargetPoint":{"type":"apollo.common.TrajectoryPoint","id":5}}},"Notification":{"fields":{"timestampSec":{"type":"double","id":1},"item":{"type":"apollo.common.monitor.MonitorMessageItem","id":2}}},"SimulationWorld":{"fields":{"timestamp":{"type":"double","id":1},"sequenceNum":{"type":"uint32","id":2},"object":{"rule":"repeated","type":"Object","id":3},"autoDrivingCar":{"type":"Object","id":4},"trafficSignal":{"type":"Object","id":5},"routePath":{"rule":"repeated","type":"RoutePath","id":6},"routingTime":{"type":"double","id":7},"planningTrajectory":{"rule":"repeated","type":"Object","id":8},"mainStop":{"type":"Object","id":9,"options":{"deprecated":true}},"mainDecision":{"type":"Object","id":10},"speedLimit":{"type":"double","id":11},"delay":{"type":"DelaysInMs","id":12},"monitor":{"type":"apollo.common.monitor.MonitorMessage","id":13,"options":{"deprecated":true}},"notification":{"rule":"repeated","type":"Notification","id":14},"engageAdvice":{"type":"string","id":15},"latency":{"keyType":"string","type":"Latency","id":16},"mapElementIds":{"type":"MapElementIds","id":17},"mapHash":{"type":"uint64","id":18},"mapRadius":{"type":"double","id":19},"planningData":{"type":"apollo.planning_internal.PlanningData","id":20},"gps":{"type":"Object","id":21},"laneMarker":{"type":"apollo.perception.LaneMarkers","id":22},"controlData":{"type":"ControlData","id":23},"navigationPath":{"rule":"repeated","type":"apollo.common.Path","id":24},"isRssSafe":{"type":"bool","id":25,"options":{"default":true}},"shadowLocalization":{"type":"Object","id":26},"perceivedSignal":{"rule":"repeated","type":"Object","id":27},"stories":{"keyType":"string","type":"bool","id":28}}},"Options":{"fields":{"legendDisplay":{"type":"bool","id":1,"options":{"default":true}},"x":{"type":"Axis","id":2},"y":{"type":"Axis","id":3},"aspectRatio":{"type":"double","id":4},"syncXyWindowSize":{"type":"bool","id":5,"options":{"default":false}}},"nested":{"Axis":{"fields":{"min":{"type":"double","id":1},"max":{"type":"double","id":2},"labelString":{"type":"string","id":3},"windowSize":{"type":"double","id":4},"stepSize":{"type":"double","id":5},"midValue":{"type":"double","id":6}}}}},"Line":{"fields":{"label":{"type":"string","id":1},"hideLabelInLegend":{"type":"bool","id":2,"options":{"default":false}},"point":{"rule":"repeated","type":"apollo.common.Point2D","id":3},"properties":{"keyType":"string","type":"string","id":4}}},"Polygon":{"fields":{"label":{"type":"string","id":1},"hideLabelInLegend":{"type":"bool","id":2,"options":{"default":false}},"point":{"rule":"repeated","type":"apollo.common.Point2D","id":3},"properties":{"keyType":"string","type":"string","id":4}}},"Car":{"fields":{"label":{"type":"string","id":1},"hideLabelInLegend":{"type":"bool","id":2,"options":{"default":false}},"x":{"type":"double","id":3},"y":{"type":"double","id":4},"heading":{"type":"double","id":5},"color":{"type":"string","id":6}}},"Chart":{"fields":{"title":{"type":"string","id":1},"options":{"type":"Options","id":2},"line":{"rule":"repeated","type":"Line","id":3},"polygon":{"rule":"repeated","type":"Polygon","id":4},"car":{"rule":"repeated","type":"Car","id":5}}},"CameraUpdate":{"fields":{"localization":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"localization2cameraTf":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}},"image":{"type":"bytes","id":3},"imageAspectRatio":{"type":"double","id":4}}}}},"common":{"nested":{"DriveEvent":{"fields":{"header":{"type":"apollo.common.Header","id":1},"event":{"type":"string","id":2},"location":{"type":"apollo.localization.Pose","id":3},"type":{"rule":"repeated","type":"Type","id":4,"options":{"packed":false}},"isReportable":{"type":"bool","id":5}},"nested":{"Type":{"values":{"CRITICAL":0,"PROBLEM":1,"DESIRED":2,"OUT_OF_SCOPE":3}}}},"EngageAdvice":{"fields":{"advice":{"type":"Advice","id":1,"options":{"default":"DISALLOW_ENGAGE"}},"reason":{"type":"string","id":2}},"nested":{"Advice":{"values":{"UNKNOWN":0,"DISALLOW_ENGAGE":1,"READY_TO_ENGAGE":2,"KEEP_ENGAGED":3,"PREPARE_DISENGAGE":4}}}},"ErrorCode":{"values":{"OK":0,"CONTROL_ERROR":1000,"CONTROL_INIT_ERROR":1001,"CONTROL_COMPUTE_ERROR":1002,"CANBUS_ERROR":2000,"CAN_CLIENT_ERROR_BASE":2100,"CAN_CLIENT_ERROR_OPEN_DEVICE_FAILED":2101,"CAN_CLIENT_ERROR_FRAME_NUM":2102,"CAN_CLIENT_ERROR_SEND_FAILED":2103,"CAN_CLIENT_ERROR_RECV_FAILED":2104,"LOCALIZATION_ERROR":3000,"LOCALIZATION_ERROR_MSG":3100,"LOCALIZATION_ERROR_LIDAR":3200,"LOCALIZATION_ERROR_INTEG":3300,"LOCALIZATION_ERROR_GNSS":3400,"PERCEPTION_ERROR":4000,"PERCEPTION_ERROR_TF":4001,"PERCEPTION_ERROR_PROCESS":4002,"PERCEPTION_FATAL":4003,"PERCEPTION_ERROR_NONE":4004,"PERCEPTION_ERROR_UNKNOWN":4005,"PREDICTION_ERROR":5000,"PLANNING_ERROR":6000,"PLANNING_ERROR_NOT_READY":6001,"HDMAP_DATA_ERROR":7000,"ROUTING_ERROR":8000,"ROUTING_ERROR_REQUEST":8001,"ROUTING_ERROR_RESPONSE":8002,"ROUTING_ERROR_NOT_READY":8003,"END_OF_INPUT":9000,"HTTP_LOGIC_ERROR":10000,"HTTP_RUNTIME_ERROR":10001,"RELATIVE_MAP_ERROR":11000,"RELATIVE_MAP_NOT_READY":11001,"DRIVER_ERROR_GNSS":12000,"DRIVER_ERROR_VELODYNE":13000}},"StatusPb":{"fields":{"errorCode":{"type":"ErrorCode","id":1,"options":{"default":"OK"}},"msg":{"type":"string","id":2}}},"PointENU":{"fields":{"x":{"type":"double","id":1,"options":{"default":null}},"y":{"type":"double","id":2,"options":{"default":null}},"z":{"type":"double","id":3,"options":{"default":0}}}},"PointLLH":{"fields":{"lon":{"type":"double","id":1,"options":{"default":null}},"lat":{"type":"double","id":2,"options":{"default":null}},"height":{"type":"double","id":3,"options":{"default":0}}}},"Point2D":{"fields":{"x":{"type":"double","id":1,"options":{"default":null}},"y":{"type":"double","id":2,"options":{"default":null}}}},"Point3D":{"fields":{"x":{"type":"double","id":1,"options":{"default":null}},"y":{"type":"double","id":2,"options":{"default":null}},"z":{"type":"double","id":3,"options":{"default":null}}}},"Quaternion":{"fields":{"qx":{"type":"double","id":1,"options":{"default":null}},"qy":{"type":"double","id":2,"options":{"default":null}},"qz":{"type":"double","id":3,"options":{"default":null}},"qw":{"type":"double","id":4,"options":{"default":null}}}},"Polygon":{"fields":{"point":{"rule":"repeated","type":"Point3D","id":1}}},"Header":{"fields":{"timestampSec":{"type":"double","id":1},"moduleName":{"type":"string","id":2},"sequenceNum":{"type":"uint32","id":3},"lidarTimestamp":{"type":"uint64","id":4},"cameraTimestamp":{"type":"uint64","id":5},"radarTimestamp":{"type":"uint64","id":6},"version":{"type":"uint32","id":7,"options":{"default":1}},"status":{"type":"StatusPb","id":8},"frameId":{"type":"string","id":9}}},"SLPoint":{"fields":{"s":{"type":"double","id":1},"l":{"type":"double","id":2}}},"FrenetFramePoint":{"fields":{"s":{"type":"double","id":1},"l":{"type":"double","id":2},"dl":{"type":"double","id":3},"ddl":{"type":"double","id":4}}},"SpeedPoint":{"fields":{"s":{"type":"double","id":1},"t":{"type":"double","id":2},"v":{"type":"double","id":3},"a":{"type":"double","id":4},"da":{"type":"double","id":5}}},"PathPoint":{"fields":{"x":{"type":"double","id":1},"y":{"type":"double","id":2},"z":{"type":"double","id":3},"theta":{"type":"double","id":4},"kappa":{"type":"double","id":5},"s":{"type":"double","id":6},"dkappa":{"type":"double","id":7},"ddkappa":{"type":"double","id":8},"laneId":{"type":"string","id":9},"xDerivative":{"type":"double","id":10},"yDerivative":{"type":"double","id":11}}},"Path":{"fields":{"name":{"type":"string","id":1},"pathPoint":{"rule":"repeated","type":"PathPoint","id":2}}},"TrajectoryPoint":{"fields":{"pathPoint":{"type":"PathPoint","id":1},"v":{"type":"double","id":2},"a":{"type":"double","id":3},"relativeTime":{"type":"double","id":4},"da":{"type":"double","id":5},"steer":{"type":"double","id":6},"gaussianInfo":{"type":"GaussianInfo","id":7}}},"Trajectory":{"fields":{"name":{"type":"string","id":1},"trajectoryPoint":{"rule":"repeated","type":"TrajectoryPoint","id":2}}},"VehicleMotionPoint":{"fields":{"trajectoryPoint":{"type":"TrajectoryPoint","id":1},"steer":{"type":"double","id":2}}},"VehicleMotion":{"fields":{"name":{"type":"string","id":1},"vehicleMotionPoint":{"rule":"repeated","type":"VehicleMotionPoint","id":2}}},"GaussianInfo":{"fields":{"sigmaX":{"type":"double","id":1},"sigmaY":{"type":"double","id":2},"correlation":{"type":"double","id":3},"areaProbability":{"type":"double","id":4},"ellipseA":{"type":"double","id":5},"ellipseB":{"type":"double","id":6},"thetaA":{"type":"double","id":7}}},"VehicleSignal":{"fields":{"turnSignal":{"type":"TurnSignal","id":1},"highBeam":{"type":"bool","id":2},"lowBeam":{"type":"bool","id":3},"horn":{"type":"bool","id":4},"emergencyLight":{"type":"bool","id":5}},"nested":{"TurnSignal":{"values":{"TURN_NONE":0,"TURN_LEFT":1,"TURN_RIGHT":2}}}},"Transform":{"fields":{"sourceFrame":{"type":"bytes","id":1},"targetFrame":{"type":"bytes","id":2},"translation":{"type":"Point3D","id":3},"rotation":{"type":"Quaternion","id":4}}},"Extrinsics":{"fields":{"tansforms":{"rule":"repeated","type":"Transform","id":1}}},"VehicleBrand":{"values":{"LINCOLN_MKZ":0,"GEM":1,"LEXUS":2,"TRANSIT":3,"GE3":4,"WEY":5,"ZHONGYUN":6,"CH":7}},"VehicleID":{"fields":{"vin":{"type":"string","id":1},"plate":{"type":"string","id":2},"otherUniqueId":{"type":"string","id":3}}},"LatencyParam":{"fields":{"deadTime":{"type":"double","id":1},"riseTime":{"type":"double","id":2},"peakTime":{"type":"double","id":3},"settlingTime":{"type":"double","id":4}}},"VehicleParam":{"fields":{"brand":{"type":"VehicleBrand","id":1},"vehicleId":{"type":"VehicleID","id":2},"frontEdgeToCenter":{"type":"double","id":3,"options":{"default":null}},"backEdgeToCenter":{"type":"double","id":4,"options":{"default":null}},"leftEdgeToCenter":{"type":"double","id":5,"options":{"default":null}},"rightEdgeToCenter":{"type":"double","id":6,"options":{"default":null}},"length":{"type":"double","id":7,"options":{"default":null}},"width":{"type":"double","id":8,"options":{"default":null}},"height":{"type":"double","id":9,"options":{"default":null}},"minTurnRadius":{"type":"double","id":10,"options":{"default":null}},"maxAcceleration":{"type":"double","id":11,"options":{"default":null}},"maxDeceleration":{"type":"double","id":12,"options":{"default":null}},"maxSteerAngle":{"type":"double","id":13,"options":{"default":null}},"maxSteerAngleRate":{"type":"double","id":14,"options":{"default":null}},"minSteerAngleRate":{"type":"double","id":15,"options":{"default":null}},"steerRatio":{"type":"double","id":16,"options":{"default":null}},"wheelBase":{"type":"double","id":17,"options":{"default":null}},"wheelRollingRadius":{"type":"double","id":18,"options":{"default":null}},"maxAbsSpeedWhenStopped":{"type":"float","id":19,"options":{"default":null}},"brakeDeadzone":{"type":"double","id":20,"options":{"default":null}},"throttleDeadzone":{"type":"double","id":21,"options":{"default":null}},"steeringLatencyParam":{"type":"LatencyParam","id":22},"throttleLatencyParam":{"type":"LatencyParam","id":23},"brakeLatencyParam":{"type":"LatencyParam","id":24}}},"VehicleConfig":{"fields":{"header":{"type":"apollo.common.Header","id":1},"vehicleParam":{"type":"VehicleParam","id":2},"extrinsics":{"type":"Extrinsics","id":3}}},"monitor":{"nested":{"MonitorMessageItem":{"fields":{"source":{"type":"MessageSource","id":1,"options":{"default":"UNKNOWN"}},"msg":{"type":"string","id":2},"logLevel":{"type":"LogLevel","id":3,"options":{"default":"INFO"}}},"nested":{"MessageSource":{"values":{"UNKNOWN":1,"CANBUS":2,"CONTROL":3,"DECISION":4,"LOCALIZATION":5,"PLANNING":6,"PREDICTION":7,"SIMULATOR":8,"HWSYS":9,"ROUTING":10,"MONITOR":11,"HMI":12,"RELATIVE_MAP":13,"GNSS":14,"CONTI_RADAR":15,"RACOBIT_RADAR":16,"ULTRASONIC_RADAR":17,"MOBILEYE":18,"DELPHI_ESR":19,"STORYTELLING":20}},"LogLevel":{"values":{"INFO":0,"WARN":1,"ERROR":2,"FATAL":3}}}},"MonitorMessage":{"fields":{"header":{"type":"apollo.common.Header","id":1},"item":{"rule":"repeated","type":"MonitorMessageItem","id":2}}}}}}},"localization":{"nested":{"Uncertainty":{"fields":{"positionStdDev":{"type":"apollo.common.Point3D","id":1},"orientationStdDev":{"type":"apollo.common.Point3D","id":2},"linearVelocityStdDev":{"type":"apollo.common.Point3D","id":3},"linearAccelerationStdDev":{"type":"apollo.common.Point3D","id":4},"angularVelocityStdDev":{"type":"apollo.common.Point3D","id":5}}},"LocalizationEstimate":{"fields":{"header":{"type":"apollo.common.Header","id":1},"pose":{"type":"apollo.localization.Pose","id":2},"uncertainty":{"type":"Uncertainty","id":3},"measurementTime":{"type":"double","id":4},"trajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":5},"msfStatus":{"type":"MsfStatus","id":6},"sensorStatus":{"type":"MsfSensorMsgStatus","id":7}}},"MeasureState":{"values":{"OK":0,"WARNNING":1,"ERROR":2,"CRITICAL_ERROR":3,"FATAL_ERROR":4}},"LocalizationStatus":{"fields":{"header":{"type":"apollo.common.Header","id":1},"fusionStatus":{"type":"MeasureState","id":2},"gnssStatus":{"type":"MeasureState","id":3,"options":{"deprecated":true}},"lidarStatus":{"type":"MeasureState","id":4,"options":{"deprecated":true}},"measurementTime":{"type":"double","id":5},"stateMessage":{"type":"string","id":6}}},"Pose":{"fields":{"position":{"type":"apollo.common.PointENU","id":1},"orientation":{"type":"apollo.common.Quaternion","id":2},"linearVelocity":{"type":"apollo.common.Point3D","id":3},"linearAcceleration":{"type":"apollo.common.Point3D","id":4},"angularVelocity":{"type":"apollo.common.Point3D","id":5},"heading":{"type":"double","id":6},"linearAccelerationVrf":{"type":"apollo.common.Point3D","id":7},"angularVelocityVrf":{"type":"apollo.common.Point3D","id":8},"eulerAngles":{"type":"apollo.common.Point3D","id":9}}},"LocalLidarStatus":{"values":{"MSF_LOCAL_LIDAR_NORMAL":0,"MSF_LOCAL_LIDAR_MAP_MISSING":1,"MSF_LOCAL_LIDAR_EXTRINSICS_MISSING":2,"MSF_LOCAL_LIDAR_MAP_LOADING_FAILED":3,"MSF_LOCAL_LIDAR_NO_OUTPUT":4,"MSF_LOCAL_LIDAR_OUT_OF_MAP":5,"MSF_LOCAL_LIDAR_NOT_GOOD":6,"MSF_LOCAL_LIDAR_UNDEFINED_STATUS":7}},"LocalLidarQuality":{"values":{"MSF_LOCAL_LIDAR_VERY_GOOD":0,"MSF_LOCAL_LIDAR_GOOD":1,"MSF_LOCAL_LIDAR_NOT_BAD":2,"MSF_LOCAL_LIDAR_BAD":3}},"LocalLidarConsistency":{"values":{"MSF_LOCAL_LIDAR_CONSISTENCY_00":0,"MSF_LOCAL_LIDAR_CONSISTENCY_01":1,"MSF_LOCAL_LIDAR_CONSISTENCY_02":2,"MSF_LOCAL_LIDAR_CONSISTENCY_03":3}},"GnssConsistency":{"values":{"MSF_GNSS_CONSISTENCY_00":0,"MSF_GNSS_CONSISTENCY_01":1,"MSF_GNSS_CONSISTENCY_02":2,"MSF_GNSS_CONSISTENCY_03":3}},"GnssPositionType":{"values":{"NONE":0,"FIXEDPOS":1,"FIXEDHEIGHT":2,"FLOATCONV":4,"WIDELANE":5,"NARROWLANE":6,"DOPPLER_VELOCITY":8,"SINGLE":16,"PSRDIFF":17,"WAAS":18,"PROPOGATED":19,"OMNISTAR":20,"L1_FLOAT":32,"IONOFREE_FLOAT":33,"NARROW_FLOAT":34,"L1_INT":48,"WIDE_INT":49,"NARROW_INT":50,"RTK_DIRECT_INS":51,"INS_SBAS":52,"INS_PSRSP":53,"INS_PSRDIFF":54,"INS_RTKFLOAT":55,"INS_RTKFIXED":56,"INS_OMNISTAR":57,"INS_OMNISTAR_HP":58,"INS_OMNISTAR_XP":59,"OMNISTAR_HP":64,"OMNISTAR_XP":65,"PPP_CONVERGING":68,"PPP":69,"INS_PPP_Converging":73,"INS_PPP":74,"MSG_LOSS":91}},"ImuMsgDelayStatus":{"values":{"IMU_DELAY_NORMAL":0,"IMU_DELAY_1":1,"IMU_DELAY_2":2,"IMU_DELAY_3":3,"IMU_DELAY_ABNORMAL":4}},"ImuMsgMissingStatus":{"values":{"IMU_MISSING_NORMAL":0,"IMU_MISSING_1":1,"IMU_MISSING_2":2,"IMU_MISSING_3":3,"IMU_MISSING_4":4,"IMU_MISSING_5":5,"IMU_MISSING_ABNORMAL":6}},"ImuMsgDataStatus":{"values":{"IMU_DATA_NORMAL":0,"IMU_DATA_ABNORMAL":1,"IMU_DATA_OTHER":2}},"MsfRunningStatus":{"values":{"MSF_SOL_LIDAR_GNSS":0,"MSF_SOL_X_GNSS":1,"MSF_SOL_LIDAR_X":2,"MSF_SOL_LIDAR_XX":3,"MSF_SOL_LIDAR_XXX":4,"MSF_SOL_X_X":5,"MSF_SOL_X_XX":6,"MSF_SOL_X_XXX":7,"MSF_SSOL_LIDAR_GNSS":8,"MSF_SSOL_X_GNSS":9,"MSF_SSOL_LIDAR_X":10,"MSF_SSOL_LIDAR_XX":11,"MSF_SSOL_LIDAR_XXX":12,"MSF_SSOL_X_X":13,"MSF_SSOL_X_XX":14,"MSF_SSOL_X_XXX":15,"MSF_NOSOL_LIDAR_GNSS":16,"MSF_NOSOL_X_GNSS":17,"MSF_NOSOL_LIDAR_X":18,"MSF_NOSOL_LIDAR_XX":19,"MSF_NOSOL_LIDAR_XXX":20,"MSF_NOSOL_X_X":21,"MSF_NOSOL_X_XX":22,"MSF_NOSOL_X_XXX":23,"MSF_RUNNING_INIT":24}},"MsfSensorMsgStatus":{"fields":{"imuDelayStatus":{"type":"ImuMsgDelayStatus","id":1},"imuMissingStatus":{"type":"ImuMsgMissingStatus","id":2},"imuDataStatus":{"type":"ImuMsgDataStatus","id":3}}},"MsfStatus":{"fields":{"localLidarConsistency":{"type":"LocalLidarConsistency","id":1},"gnssConsistency":{"type":"GnssConsistency","id":2},"localLidarStatus":{"type":"LocalLidarStatus","id":3},"localLidarQuality":{"type":"LocalLidarQuality","id":4},"gnssposPositionType":{"type":"GnssPositionType","id":5},"msfRunningStatus":{"type":"MsfRunningStatus","id":6}}}}},"canbus":{"nested":{"Chassis":{"fields":{"engineStarted":{"type":"bool","id":3},"engineRpm":{"type":"float","id":4,"options":{"default":null}},"speedMps":{"type":"float","id":5,"options":{"default":null}},"odometerM":{"type":"float","id":6,"options":{"default":null}},"fuelRangeM":{"type":"int32","id":7},"throttlePercentage":{"type":"float","id":8,"options":{"default":null}},"brakePercentage":{"type":"float","id":9,"options":{"default":null}},"steeringPercentage":{"type":"float","id":11,"options":{"default":null}},"steeringTorqueNm":{"type":"float","id":12,"options":{"default":null}},"parkingBrake":{"type":"bool","id":13},"highBeamSignal":{"type":"bool","id":14,"options":{"deprecated":true}},"lowBeamSignal":{"type":"bool","id":15,"options":{"deprecated":true}},"leftTurnSignal":{"type":"bool","id":16,"options":{"deprecated":true}},"rightTurnSignal":{"type":"bool","id":17,"options":{"deprecated":true}},"horn":{"type":"bool","id":18,"options":{"deprecated":true}},"wiper":{"type":"bool","id":19},"disengageStatus":{"type":"bool","id":20,"options":{"deprecated":true}},"drivingMode":{"type":"DrivingMode","id":21,"options":{"default":"COMPLETE_MANUAL"}},"errorCode":{"type":"ErrorCode","id":22,"options":{"default":"NO_ERROR"}},"gearLocation":{"type":"GearPosition","id":23},"steeringTimestamp":{"type":"double","id":24},"header":{"type":"apollo.common.Header","id":25},"chassisErrorMask":{"type":"int32","id":26,"options":{"default":0}},"signal":{"type":"apollo.common.VehicleSignal","id":27},"chassisGps":{"type":"ChassisGPS","id":28},"engageAdvice":{"type":"apollo.common.EngageAdvice","id":29},"wheelSpeed":{"type":"WheelSpeed","id":30},"surround":{"type":"Surround","id":31},"license":{"type":"License","id":32,"options":{"deprecated":true}},"vehicleId":{"type":"apollo.common.VehicleID","id":33}},"nested":{"DrivingMode":{"values":{"COMPLETE_MANUAL":0,"COMPLETE_AUTO_DRIVE":1,"AUTO_STEER_ONLY":2,"AUTO_SPEED_ONLY":3,"EMERGENCY_MODE":4}},"ErrorCode":{"values":{"NO_ERROR":0,"CMD_NOT_IN_PERIOD":1,"CHASSIS_ERROR":2,"CHASSIS_ERROR_ON_STEER":6,"CHASSIS_ERROR_ON_BRAKE":7,"CHASSIS_ERROR_ON_THROTTLE":8,"CHASSIS_ERROR_ON_GEAR":9,"MANUAL_INTERVENTION":3,"CHASSIS_CAN_NOT_IN_PERIOD":4,"UNKNOWN_ERROR":5}},"GearPosition":{"values":{"GEAR_NEUTRAL":0,"GEAR_DRIVE":1,"GEAR_REVERSE":2,"GEAR_PARKING":3,"GEAR_LOW":4,"GEAR_INVALID":5,"GEAR_NONE":6}}}},"ChassisGPS":{"fields":{"latitude":{"type":"double","id":1},"longitude":{"type":"double","id":2},"gpsValid":{"type":"bool","id":3},"year":{"type":"int32","id":4},"month":{"type":"int32","id":5},"day":{"type":"int32","id":6},"hours":{"type":"int32","id":7},"minutes":{"type":"int32","id":8},"seconds":{"type":"int32","id":9},"compassDirection":{"type":"double","id":10},"pdop":{"type":"double","id":11},"isGpsFault":{"type":"bool","id":12},"isInferred":{"type":"bool","id":13},"altitude":{"type":"double","id":14},"heading":{"type":"double","id":15},"hdop":{"type":"double","id":16},"vdop":{"type":"double","id":17},"quality":{"type":"GpsQuality","id":18},"numSatellites":{"type":"int32","id":19},"gpsSpeed":{"type":"double","id":20}}},"GpsQuality":{"values":{"FIX_NO":0,"FIX_2D":1,"FIX_3D":2,"FIX_INVALID":3}},"WheelSpeed":{"fields":{"isWheelSpdRrValid":{"type":"bool","id":1,"options":{"default":false}},"wheelDirectionRr":{"type":"WheelSpeedType","id":2,"options":{"default":"INVALID"}},"wheelSpdRr":{"type":"double","id":3,"options":{"default":0}},"isWheelSpdRlValid":{"type":"bool","id":4,"options":{"default":false}},"wheelDirectionRl":{"type":"WheelSpeedType","id":5,"options":{"default":"INVALID"}},"wheelSpdRl":{"type":"double","id":6,"options":{"default":0}},"isWheelSpdFrValid":{"type":"bool","id":7,"options":{"default":false}},"wheelDirectionFr":{"type":"WheelSpeedType","id":8,"options":{"default":"INVALID"}},"wheelSpdFr":{"type":"double","id":9,"options":{"default":0}},"isWheelSpdFlValid":{"type":"bool","id":10,"options":{"default":false}},"wheelDirectionFl":{"type":"WheelSpeedType","id":11,"options":{"default":"INVALID"}},"wheelSpdFl":{"type":"double","id":12,"options":{"default":0}}},"nested":{"WheelSpeedType":{"values":{"FORWARD":0,"BACKWARD":1,"STANDSTILL":2,"INVALID":3}}}},"Sonar":{"fields":{"range":{"type":"double","id":1},"translation":{"type":"apollo.common.Point3D","id":2},"rotation":{"type":"apollo.common.Quaternion","id":3}}},"Surround":{"fields":{"crossTrafficAlertLeft":{"type":"bool","id":1},"crossTrafficAlertLeftEnabled":{"type":"bool","id":2},"blindSpotLeftAlert":{"type":"bool","id":3},"blindSpotLeftAlertEnabled":{"type":"bool","id":4},"crossTrafficAlertRight":{"type":"bool","id":5},"crossTrafficAlertRightEnabled":{"type":"bool","id":6},"blindSpotRightAlert":{"type":"bool","id":7},"blindSpotRightAlertEnabled":{"type":"bool","id":8},"sonar00":{"type":"double","id":9},"sonar01":{"type":"double","id":10},"sonar02":{"type":"double","id":11},"sonar03":{"type":"double","id":12},"sonar04":{"type":"double","id":13},"sonar05":{"type":"double","id":14},"sonar06":{"type":"double","id":15},"sonar07":{"type":"double","id":16},"sonar08":{"type":"double","id":17},"sonar09":{"type":"double","id":18},"sonar10":{"type":"double","id":19},"sonar11":{"type":"double","id":20},"sonarEnabled":{"type":"bool","id":21},"sonarFault":{"type":"bool","id":22},"sonarRange":{"rule":"repeated","type":"double","id":23,"options":{"packed":false}},"sonar":{"rule":"repeated","type":"Sonar","id":24}}},"License":{"fields":{"vin":{"type":"string","id":1,"options":{"deprecated":true}}}}}},"planning":{"nested":{"autotuning":{"nested":{"PathPointwiseFeature":{"fields":{"l":{"type":"double","id":1},"dl":{"type":"double","id":2},"ddl":{"type":"double","id":3},"kappa":{"type":"double","id":4},"obstacleInfo":{"rule":"repeated","type":"ObstacleFeature","id":5},"leftBoundFeature":{"type":"BoundRelatedFeature","id":6},"rightBoundFeature":{"type":"BoundRelatedFeature","id":7}},"nested":{"ObstacleFeature":{"fields":{"lateralDistance":{"type":"double","id":1}}},"BoundRelatedFeature":{"fields":{"boundDistance":{"type":"double","id":1},"crossableLevel":{"type":"CrossableLevel","id":2}},"nested":{"CrossableLevel":{"values":{"CROSS_FREE":0,"CROSS_ABLE":1,"CROSS_FORBIDDEN":2}}}}}},"SpeedPointwiseFeature":{"fields":{"s":{"type":"double","id":1,"options":{"default":0}},"t":{"type":"double","id":2,"options":{"default":0}},"v":{"type":"double","id":3,"options":{"default":0}},"speedLimit":{"type":"double","id":4,"options":{"default":0}},"acc":{"type":"double","id":5,"options":{"default":0}},"jerk":{"type":"double","id":6,"options":{"default":0}},"followObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":7},"overtakeObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":8},"nudgeObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":9},"stopObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":10},"collisionTimes":{"type":"int32","id":11,"options":{"default":0}},"virtualObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":12},"lateralAcc":{"type":"double","id":13,"options":{"default":0}},"pathCurvatureAbs":{"type":"double","id":14,"options":{"default":0}},"sidepassFrontObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":15},"sidepassRearObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":16}},"nested":{"ObstacleFeature":{"fields":{"longitudinalDistance":{"type":"double","id":1},"obstacleSpeed":{"type":"double","id":2},"lateralDistance":{"type":"double","id":3,"options":{"default":10}},"probability":{"type":"double","id":4},"relativeV":{"type":"double","id":5}}}}},"TrajectoryPointwiseFeature":{"fields":{"pathInputFeature":{"type":"PathPointwiseFeature","id":1},"speedInputFeature":{"type":"SpeedPointwiseFeature","id":2}}},"TrajectoryFeature":{"fields":{"pointFeature":{"rule":"repeated","type":"TrajectoryPointwiseFeature","id":1}}},"PathPointRawFeature":{"fields":{"cartesianCoord":{"type":"apollo.common.PathPoint","id":1},"frenetCoord":{"type":"apollo.common.FrenetFramePoint","id":2}}},"SpeedPointRawFeature":{"fields":{"s":{"type":"double","id":1},"t":{"type":"double","id":2},"v":{"type":"double","id":3},"a":{"type":"double","id":4},"j":{"type":"double","id":5},"speedLimit":{"type":"double","id":6},"follow":{"rule":"repeated","type":"ObjectDecisionFeature","id":10},"overtake":{"rule":"repeated","type":"ObjectDecisionFeature","id":11},"virtualDecision":{"rule":"repeated","type":"ObjectDecisionFeature","id":13},"stop":{"rule":"repeated","type":"ObjectDecisionFeature","id":14},"collision":{"rule":"repeated","type":"ObjectDecisionFeature","id":15},"nudge":{"rule":"repeated","type":"ObjectDecisionFeature","id":12},"sidepassFront":{"rule":"repeated","type":"ObjectDecisionFeature","id":16},"sidepassRear":{"rule":"repeated","type":"ObjectDecisionFeature","id":17},"keepClear":{"rule":"repeated","type":"ObjectDecisionFeature","id":18}},"nested":{"ObjectDecisionFeature":{"fields":{"id":{"type":"int32","id":1},"relativeS":{"type":"double","id":2},"relativeL":{"type":"double","id":3},"relativeV":{"type":"double","id":4},"speed":{"type":"double","id":5}}}}},"ObstacleSTRawData":{"fields":{"obstacleStData":{"rule":"repeated","type":"ObstacleSTData","id":1},"obstacleStNudge":{"rule":"repeated","type":"ObstacleSTData","id":2},"obstacleStSidepass":{"rule":"repeated","type":"ObstacleSTData","id":3}},"nested":{"STPointPair":{"fields":{"sLower":{"type":"double","id":1},"sUpper":{"type":"double","id":2},"t":{"type":"double","id":3},"l":{"type":"double","id":4,"options":{"default":10}}}},"ObstacleSTData":{"fields":{"id":{"type":"int32","id":1},"speed":{"type":"double","id":2},"isVirtual":{"type":"bool","id":3},"probability":{"type":"double","id":4},"polygon":{"rule":"repeated","type":"STPointPair","id":8},"distribution":{"rule":"repeated","type":"STPointPair","id":9}}}}},"TrajectoryPointRawFeature":{"fields":{"pathFeature":{"type":"PathPointRawFeature","id":1},"speedFeature":{"type":"SpeedPointRawFeature","id":2}}},"TrajectoryRawFeature":{"fields":{"pointFeature":{"rule":"repeated","type":"TrajectoryPointRawFeature","id":1},"stRawData":{"type":"ObstacleSTRawData","id":2}}}}},"CosThetaSmootherConfig":{"fields":{"weightCosIncludedAngle":{"type":"double","id":1,"options":{"default":10000}},"weightAnchorPoints":{"type":"double","id":2,"options":{"default":1}},"weightLength":{"type":"double","id":3,"options":{"default":1}},"printLevel":{"type":"int32","id":4,"options":{"default":0}},"maxNumOfIterations":{"type":"int32","id":5,"options":{"default":500}},"acceptableNumOfIterations":{"type":"int32","id":6,"options":{"default":15}},"tol":{"type":"double","id":7,"options":{"default":1e-8}},"acceptableTol":{"type":"double","id":8,"options":{"default":0.1}},"ipoptUseAutomaticDifferentiation":{"type":"bool","id":9,"options":{"default":false}}}},"CreepDeciderConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":0.5}},"speedLimit":{"type":"double","id":2,"options":{"default":1}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":0.3}},"minBoundaryT":{"type":"double","id":4,"options":{"default":6}},"ignoreMaxStMinT":{"type":"double","id":5,"options":{"default":0.1}},"ignoreMinStMinS":{"type":"double","id":6,"options":{"default":15}}}},"SidePassSafetyConfig":{"fields":{"minObstacleLateralDistance":{"type":"double","id":1,"options":{"default":1}},"maxOverlapSRange":{"type":"double","id":2,"options":{"default":5}},"safeDurationReachRefLine":{"type":"double","id":3,"options":{"default":5}}}},"TargetLane":{"fields":{"id":{"type":"string","id":1},"startS":{"type":"double","id":2},"endS":{"type":"double","id":3},"speedLimit":{"type":"double","id":4}}},"ObjectIgnore":{"fields":{}},"StopReasonCode":{"values":{"STOP_REASON_HEAD_VEHICLE":1,"STOP_REASON_DESTINATION":2,"STOP_REASON_PEDESTRIAN":3,"STOP_REASON_OBSTACLE":4,"STOP_REASON_PREPARKING":5,"STOP_REASON_SIGNAL":100,"STOP_REASON_STOP_SIGN":101,"STOP_REASON_YIELD_SIGN":102,"STOP_REASON_CLEAR_ZONE":103,"STOP_REASON_CROSSWALK":104,"STOP_REASON_CREEPER":105,"STOP_REASON_REFERENCE_END":106,"STOP_REASON_YELLOW_SIGNAL":107,"STOP_REASON_PULL_OVER":108,"STOP_REASON_SIDEPASS_SAFETY":109,"STOP_REASON_PRE_OPEN_SPACE_STOP":200,"STOP_REASON_LANE_CHANGE_URGENCY":201,"STOP_REASON_EMERGENCY":202}},"ObjectStop":{"fields":{"reasonCode":{"type":"StopReasonCode","id":1},"distanceS":{"type":"double","id":2},"stopPoint":{"type":"apollo.common.PointENU","id":3},"stopHeading":{"type":"double","id":4},"waitForObstacle":{"rule":"repeated","type":"string","id":5}}},"ObjectNudge":{"fields":{"type":{"type":"Type","id":1},"distanceL":{"type":"double","id":2}},"nested":{"Type":{"values":{"LEFT_NUDGE":1,"RIGHT_NUDGE":2,"NO_NUDGE":3}}}},"ObjectYield":{"fields":{"distanceS":{"type":"double","id":1},"fencePoint":{"type":"apollo.common.PointENU","id":2},"fenceHeading":{"type":"double","id":3},"timeBuffer":{"type":"double","id":4}}},"ObjectFollow":{"fields":{"distanceS":{"type":"double","id":1},"fencePoint":{"type":"apollo.common.PointENU","id":2},"fenceHeading":{"type":"double","id":3}}},"ObjectOvertake":{"fields":{"distanceS":{"type":"double","id":1},"fencePoint":{"type":"apollo.common.PointENU","id":2},"fenceHeading":{"type":"double","id":3},"timeBuffer":{"type":"double","id":4}}},"ObjectSidePass":{"fields":{"type":{"type":"Type","id":1}},"nested":{"Type":{"values":{"LEFT":1,"RIGHT":2}}}},"ObjectAvoid":{"fields":{}},"ObjectStatus":{"fields":{"motionType":{"type":"ObjectMotionType","id":1},"decisionType":{"type":"ObjectDecisionType","id":2}}},"ObjectStatic":{"fields":{}},"ObjectDynamic":{"fields":{}},"ObjectMotionType":{"oneofs":{"motionTag":{"oneof":["static","dynamic"]}},"fields":{"static":{"type":"ObjectStatic","id":1},"dynamic":{"type":"ObjectDynamic","id":2}}},"ObjectDecisionType":{"oneofs":{"objectTag":{"oneof":["ignore","stop","follow","yield","overtake","nudge","avoid","sidePass"]}},"fields":{"ignore":{"type":"ObjectIgnore","id":1},"stop":{"type":"ObjectStop","id":2},"follow":{"type":"ObjectFollow","id":3},"yield":{"type":"ObjectYield","id":4},"overtake":{"type":"ObjectOvertake","id":5},"nudge":{"type":"ObjectNudge","id":6},"avoid":{"type":"ObjectAvoid","id":7},"sidePass":{"type":"ObjectSidePass","id":8}}},"ObjectDecision":{"fields":{"id":{"type":"string","id":1},"perceptionId":{"type":"int32","id":2},"objectDecision":{"rule":"repeated","type":"ObjectDecisionType","id":3}}},"ObjectDecisions":{"fields":{"decision":{"rule":"repeated","type":"ObjectDecision","id":1}}},"MainStop":{"fields":{"reasonCode":{"type":"StopReasonCode","id":1},"reason":{"type":"string","id":2},"stopPoint":{"type":"apollo.common.PointENU","id":3},"stopHeading":{"type":"double","id":4},"changeLaneType":{"type":"apollo.routing.ChangeLaneType","id":5}}},"EmergencyStopHardBrake":{"fields":{}},"EmergencyStopCruiseToStop":{"fields":{}},"MainEmergencyStop":{"oneofs":{"task":{"oneof":["hardBrake","cruiseToStop"]}},"fields":{"reasonCode":{"type":"ReasonCode","id":1},"reason":{"type":"string","id":2},"hardBrake":{"type":"EmergencyStopHardBrake","id":3},"cruiseToStop":{"type":"EmergencyStopCruiseToStop","id":4}},"nested":{"ReasonCode":{"values":{"ESTOP_REASON_INTERNAL_ERR":1,"ESTOP_REASON_COLLISION":2,"ESTOP_REASON_ST_FIND_PATH":3,"ESTOP_REASON_ST_MAKE_DECISION":4,"ESTOP_REASON_SENSOR_ERROR":5}}}},"MainCruise":{"fields":{"changeLaneType":{"type":"apollo.routing.ChangeLaneType","id":1}}},"MainChangeLane":{"fields":{"type":{"type":"Type","id":1},"defaultLane":{"rule":"repeated","type":"TargetLane","id":2},"defaultLaneStop":{"type":"MainStop","id":3},"targetLaneStop":{"type":"MainStop","id":4}},"nested":{"Type":{"values":{"LEFT":1,"RIGHT":2}}}},"MainMissionComplete":{"fields":{"stopPoint":{"type":"apollo.common.PointENU","id":1},"stopHeading":{"type":"double","id":2}}},"MainNotReady":{"fields":{"reason":{"type":"string","id":1}}},"MainParking":{"fields":{"status":{"type":"ParkingStatus","id":1}},"nested":{"ParkingStatus":{"values":{"IN_PARKING":1}}}},"MainDecision":{"oneofs":{"task":{"oneof":["cruise","stop","estop","changeLane","missionComplete","notReady","parking"]}},"fields":{"cruise":{"type":"MainCruise","id":1},"stop":{"type":"MainStop","id":2},"estop":{"type":"MainEmergencyStop","id":3},"changeLane":{"type":"MainChangeLane","id":4,"options":{"deprecated":true}},"missionComplete":{"type":"MainMissionComplete","id":6},"notReady":{"type":"MainNotReady","id":7},"parking":{"type":"MainParking","id":8},"targetLane":{"rule":"repeated","type":"TargetLane","id":5,"options":{"deprecated":true}}}},"DecisionResult":{"fields":{"mainDecision":{"type":"MainDecision","id":1},"objectDecision":{"type":"ObjectDecisions","id":2},"vehicleSignal":{"type":"apollo.common.VehicleSignal","id":3}}},"SpeedHeuristicConfig":{"fields":{"defaultSpeedConfig":{"type":"DpStSpeedConfig","id":1},"laneChangeSpeedConfig":{"type":"DpStSpeedConfig","id":2}}},"DpStSpeedConfig":{"fields":{"unitT":{"type":"double","id":1,"options":{"default":1}},"denseDimensionS":{"type":"int32","id":2,"options":{"default":41}},"denseUnitS":{"type":"double","id":3,"options":{"default":0.5}},"sparseUnitS":{"type":"double","id":4,"options":{"default":1}},"speedWeight":{"type":"double","id":10,"options":{"default":0}},"accelWeight":{"type":"double","id":11,"options":{"default":10}},"jerkWeight":{"type":"double","id":12,"options":{"default":10}},"obstacleWeight":{"type":"double","id":13,"options":{"default":1}},"referenceWeight":{"type":"double","id":14,"options":{"default":0}},"goDownBuffer":{"type":"double","id":15,"options":{"default":5}},"goUpBuffer":{"type":"double","id":16,"options":{"default":5}},"defaultObstacleCost":{"type":"double","id":20,"options":{"default":10000000000}},"defaultSpeedCost":{"type":"double","id":31,"options":{"default":1}},"exceedSpeedPenalty":{"type":"double","id":32,"options":{"default":10}},"lowSpeedPenalty":{"type":"double","id":33,"options":{"default":2.5}},"referenceSpeedPenalty":{"type":"double","id":34,"options":{"default":1}},"keepClearLowSpeedPenalty":{"type":"double","id":35,"options":{"default":10}},"accelPenalty":{"type":"double","id":40,"options":{"default":2}},"decelPenalty":{"type":"double","id":41,"options":{"default":2}},"positiveJerkCoeff":{"type":"double","id":50,"options":{"default":1}},"negativeJerkCoeff":{"type":"double","id":51,"options":{"default":300}},"maxAcceleration":{"type":"double","id":60,"options":{"default":4.5}},"maxDeceleration":{"type":"double","id":61,"options":{"default":-4.5}},"safeTimeBuffer":{"type":"double","id":70,"options":{"default":3}},"safeDistance":{"type":"double","id":71,"options":{"default":20}},"spatialPotentialPenalty":{"type":"double","id":80,"options":{"default":1}},"isLaneChanging":{"type":"bool","id":81,"options":{"default":false}}}},"FemPosDeviationSmootherConfig":{"fields":{"weightFemPosDeviation":{"type":"double","id":2,"options":{"default":10000000000}},"weightRefDeviation":{"type":"double","id":3,"options":{"default":1}},"weightPathLength":{"type":"double","id":4,"options":{"default":1}},"applyCurvatureConstraint":{"type":"bool","id":5,"options":{"default":false}},"weightCurvatureConstraintSlackVar":{"type":"double","id":6,"options":{"default":100}},"curvatureConstraint":{"type":"double","id":7,"options":{"default":0.2}},"useSqp":{"type":"bool","id":8,"options":{"default":false}},"sqpFtol":{"type":"double","id":9,"options":{"default":0.0001}},"sqpCtol":{"type":"double","id":10,"options":{"default":0.001}},"sqpPenMaxIter":{"type":"int32","id":11,"options":{"default":10}},"sqpSubMaxIter":{"type":"int32","id":12,"options":{"default":100}},"maxIter":{"type":"int32","id":100,"options":{"default":500}},"timeLimit":{"type":"double","id":101,"options":{"default":0}},"verbose":{"type":"bool","id":102,"options":{"default":false}},"scaledTermination":{"type":"bool","id":103,"options":{"default":true}},"warmStart":{"type":"bool","id":104,"options":{"default":true}},"printLevel":{"type":"int32","id":200,"options":{"default":0}},"maxNumOfIterations":{"type":"int32","id":201,"options":{"default":500}},"acceptableNumOfIterations":{"type":"int32","id":202,"options":{"default":15}},"tol":{"type":"double","id":203,"options":{"default":1e-8}},"acceptableTol":{"type":"double","id":204,"options":{"default":0.1}}}},"IpoptReturnStatus":{"values":{"SOLVE_SUCCEEDED":0,"SOLVED_TO_ACCEPTABLE_LEVEL":1,"INFEASIBLE_PROBLEM_DETECTED":2,"SEARCH_DIRECTION_BECOMES_TOO_SMALL":3,"DIVERGIN_ITERATES":4,"USER_REQUESTED_STOP":5,"FEASIBLE_POINT_FOUND":6,"MAXIMUM_ITERATIONS_EXCEEDED":-1,"RESTORATION_FAILED":-2,"ERROR_IN_STEP_COMPUTATION":-3,"NOT_ENOUGH_DEGREES_OF_FREEDOM":-10,"INVALID_PROGRAM_DEFINITION":-11,"INVALID_OPTION":-12,"INVALID_NUMBER_DETECTED":-13,"UNRECOVERABLE_EXCEPTION":-100,"NONIPOPT_EXCEPTION_THROWN":-101,"INSUFFICIENT_MEMORY":-102,"INTERNAL_ERROR":199}},"LaneChangeDeciderConfig":{"fields":{"enableLaneChangeUrgencyCheck":{"type":"bool","id":1}}},"LonCondition":{"fields":{"s":{"type":"double","id":1,"options":{"default":0}},"ds":{"type":"double","id":2,"options":{"default":0}},"dds":{"type":"double","id":3,"options":{"default":0}}}},"LatCondition":{"fields":{"l":{"type":"double","id":1,"options":{"default":0}},"dl":{"type":"double","id":2,"options":{"default":0}},"ddl":{"type":"double","id":3,"options":{"default":0}}}},"TStrategy":{"fields":{"tMarkers":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"tStep":{"type":"double","id":2,"options":{"default":0.5}},"strategy":{"type":"string","id":3}}},"SStrategy":{"fields":{"sMarkers":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"sStep":{"type":"double","id":2,"options":{"default":0.5}},"strategy":{"type":"string","id":3}}},"LonSampleConfig":{"fields":{"lonEndCondition":{"type":"LonCondition","id":1},"tStrategy":{"type":"TStrategy","id":2}}},"LatSampleConfig":{"fields":{"latEndCondition":{"type":"LatCondition","id":1},"sStrategy":{"type":"SStrategy","id":2}}},"LatticeSamplingConfig":{"fields":{"lonSampleConfig":{"type":"LonSampleConfig","id":1},"latSampleConfig":{"type":"LatSampleConfig","id":2}}},"StopPoint":{"fields":{"s":{"type":"double","id":1},"type":{"type":"Type","id":2,"options":{"default":"HARD"}}},"nested":{"Type":{"values":{"HARD":0,"SOFT":1}}}},"PlanningTarget":{"fields":{"stopPoint":{"type":"StopPoint","id":1},"cruiseSpeed":{"type":"double","id":2}}},"NaviObstacleDeciderConfig":{"fields":{"minNudgeDistance":{"type":"double","id":1,"options":{"default":0.2}},"maxNudgeDistance":{"type":"double","id":2,"options":{"default":1.2}},"maxAllowNudgeSpeed":{"type":"double","id":3,"options":{"default":16.667}},"safeDistance":{"type":"double","id":4,"options":{"default":0.2}},"nudgeAllowTolerance":{"type":"double","id":5,"options":{"default":0.05}},"cyclesNumber":{"type":"uint32","id":6,"options":{"default":3}},"judgeDisCoeff":{"type":"double","id":7,"options":{"default":2}},"basisDisValue":{"type":"double","id":8,"options":{"default":30}},"lateralVelocityValue":{"type":"double","id":9,"options":{"default":0.5}},"speedDeciderDetectRange":{"type":"double","id":10,"options":{"default":1}},"maxKeepNudgeCycles":{"type":"uint32","id":11,"options":{"default":100}}}},"NaviPathDeciderConfig":{"fields":{"minPathLength":{"type":"double","id":1,"options":{"default":5}},"minLookForwardTime":{"type":"uint32","id":2,"options":{"default":2}},"maxKeepLaneDistance":{"type":"double","id":3,"options":{"default":0.8}},"maxKeepLaneShiftY":{"type":"double","id":4,"options":{"default":20}},"minKeepLaneOffset":{"type":"double","id":5,"options":{"default":15}},"keepLaneShiftCompensation":{"type":"double","id":6,"options":{"default":0.01}},"moveDestLaneConfigTalbe":{"type":"MoveDestLaneConfigTable","id":7},"moveDestLaneCompensation":{"type":"double","id":8,"options":{"default":0.35}},"maxKappaThreshold":{"type":"double","id":9,"options":{"default":0}},"kappaMoveDestLaneCompensation":{"type":"double","id":10,"options":{"default":0}},"startPlanPointFrom":{"type":"uint32","id":11,"options":{"default":0}}}},"MoveDestLaneConfigTable":{"fields":{"lateralShift":{"rule":"repeated","type":"ShiftConfig","id":1}}},"ShiftConfig":{"fields":{"maxSpeed":{"type":"double","id":1,"options":{"default":4.16}},"maxMoveDestLaneShiftY":{"type":"double","id":3,"options":{"default":0.4}}}},"NaviSpeedDeciderConfig":{"fields":{"preferredAccel":{"type":"double","id":1,"options":{"default":2}},"preferredDecel":{"type":"double","id":2,"options":{"default":2}},"preferredJerk":{"type":"double","id":3,"options":{"default":2}},"maxAccel":{"type":"double","id":4,"options":{"default":4}},"maxDecel":{"type":"double","id":5,"options":{"default":5}},"obstacleBuffer":{"type":"double","id":6,"options":{"default":0.5}},"safeDistanceBase":{"type":"double","id":7,"options":{"default":2}},"safeDistanceRatio":{"type":"double","id":8,"options":{"default":1}},"followingAccelRatio":{"type":"double","id":9,"options":{"default":0.5}},"softCentricAccelLimit":{"type":"double","id":10,"options":{"default":1.2}},"hardCentricAccelLimit":{"type":"double","id":11,"options":{"default":1.5}},"hardSpeedLimit":{"type":"double","id":12,"options":{"default":100}},"hardAccelLimit":{"type":"double","id":13,"options":{"default":10}},"enableSafePath":{"type":"bool","id":14,"options":{"default":true}},"enablePlanningStartPoint":{"type":"bool","id":15,"options":{"default":true}},"enableAccelAutoCompensation":{"type":"bool","id":16,"options":{"default":true}},"kappaPreview":{"type":"double","id":17,"options":{"default":0}},"kappaThreshold":{"type":"double","id":18,"options":{"default":0}}}},"OpenSpaceFallBackDeciderConfig":{"fields":{"openSpacePredictionTimePeriod":{"type":"double","id":1,"options":{"default":5}},"openSpaceFallbackCollisionDistance":{"type":"double","id":2,"options":{"default":5}},"openSpaceFallbackStopDistance":{"type":"double","id":3,"options":{"default":2}},"openSpaceFallbackCollisionTimeBuffer":{"type":"double","id":4,"options":{"default":10}}}},"OpenSpacePreStopDeciderConfig":{"fields":{"stopType":{"type":"StopType","id":1},"rightawayStopDistance":{"type":"double","id":2,"options":{"default":2}},"stopDistanceToTarget":{"type":"double","id":3,"options":{"default":5}}},"nested":{"StopType":{"values":{"NOT_DEFINED":0,"PARKING":1,"PULL_OVER":2,"NARROW_STREET_U_TURN":3}}}},"OpenSpaceRoiDeciderConfig":{"fields":{"roiType":{"type":"RoiType","id":1},"roiLongitudinalRange":{"type":"double","id":2,"options":{"default":10}},"parkingStartRange":{"type":"double","id":3,"options":{"default":7}},"parkingInwards":{"type":"bool","id":4,"options":{"default":false}},"enablePerceptionObstacles":{"type":"bool","id":5},"parkingDepthBuffer":{"type":"double","id":6,"options":{"default":0.1}},"roiLinesegmentMinAngle":{"type":"double","id":7,"options":{"default":0.3}},"roiLinesegmentLength":{"type":"double","id":8,"options":{"default":1}},"perceptionObstacleFilteringDistance":{"type":"double","id":9,"options":{"default":1000}},"perceptionObstacleBuffer":{"type":"double","id":10},"curbHeadingTangentChangeUppperLimit":{"type":"double","id":11,"options":{"default":1}}},"nested":{"RoiType":{"values":{"NOT_DEFINED":0,"PARKING":1,"PULL_OVER":2,"PARK_AND_GO":3,"NARROW_STREET_U_TURN":4}}}},"OpenSpaceTrajectoryPartitionConfig":{"fields":{"gearShiftMaxT":{"type":"double","id":1},"gearShiftUnitT":{"type":"double","id":2},"gearShiftPeriodDuration":{"type":"double","id":3},"interpolatedPiecesNum":{"type":"uint64","id":4},"initialGearCheckHorizon":{"type":"uint64","id":5},"headingSearchRange":{"type":"double","id":6},"headingTrackRange":{"type":"double","id":7},"distanceSearchRange":{"type":"double","id":8,"options":{"default":0.000001}},"headingOffsetToMidpoint":{"type":"double","id":9},"lateralOffsetToMidpoint":{"type":"double","id":10,"options":{"default":0.1}},"longitudinalOffsetToMidpoint":{"type":"double","id":11,"options":{"default":0.1}},"vehicleBoxIouThresholdToMidpoint":{"type":"double","id":12,"options":{"default":0.95}},"linearVelocityThresholdOnEgo":{"type":"double","id":13,"options":{"default":0.2}}}},"OpenSpaceTrajectoryProviderConfig":{"fields":{"openSpaceTrajectoryOptimizerConfig":{"type":"OpenSpaceTrajectoryOptimizerConfig","id":1}}},"OpenSpaceTrajectoryOptimizerConfig":{"fields":{"hybridAStarConfig":{"type":"HybridAStarConfig","id":1},"dualVariableWarmStartConfig":{"type":"DualVariableConfig","id":2},"distanceApproachTrajectorySmootherConfig":{"type":"DistanceApproachTrajectorySmootherConfig","id":3},"deltaT":{"type":"float","id":4,"options":{"default":0.5}},"isNearDestinationThreshold":{"type":"double","id":5,"options":{"default":0.001}},"plannerOpenSpaceConfig":{"type":"PlannerOpenSpaceConfig","id":6}}},"HybridAStarConfig":{"fields":{"xyGridResolution":{"type":"double","id":1,"options":{"default":0.2}},"phiGridResolution":{"type":"double","id":2,"options":{"default":0.05}},"nextNodeNum":{"type":"uint64","id":3,"options":{"default":10}},"stepSize":{"type":"double","id":4,"options":{"default":0.5}},"trajForwardPenalty":{"type":"double","id":5,"options":{"default":0}},"trajBackPenalty":{"type":"double","id":6,"options":{"default":0}},"trajGearSwitchPenalty":{"type":"double","id":7,"options":{"default":10}},"trajSteerPenalty":{"type":"double","id":8,"options":{"default":100}},"trajSteerChangePenalty":{"type":"double","id":9,"options":{"default":10}},"gridAStarXyResolution":{"type":"double","id":15,"options":{"default":0.1}},"nodeRadius":{"type":"double","id":16,"options":{"default":0.5}}}},"DualVariableMode":{"values":{"DUAL_VARIABLE_IPOPT":0,"DUAL_VARIABLE_IPOPTQP":1,"DUAL_VARIABLE_OSQP":2,"DUAL_VARIABLE_DEBUG":3}},"DualVariableConfig":{"fields":{"weightD":{"type":"double","id":1,"options":{"default":1}},"ipoptConfig":{"type":"IpoptSolverConfig","id":2},"qpFormat":{"type":"DualVariableMode","id":3},"minSafetyDistance":{"type":"double","id":4,"options":{"default":0}},"debugOsqp":{"type":"bool","id":5,"options":{"default":false}},"beta":{"type":"double","id":6,"options":{"default":1}}}},"DistanceApproachTrajectorySmootherConfig":{"fields":{"weightSteer":{"type":"double","id":1},"weightA":{"type":"double","id":2},"weightSteerRate":{"type":"double","id":3},"weightARate":{"type":"double","id":4},"weightX":{"type":"double","id":5},"weightY":{"type":"double","id":6},"weightPhi":{"type":"double","id":7},"weightV":{"type":"double","id":8},"weightSteerStitching":{"type":"double","id":9},"weightAStitching":{"type":"double","id":10},"weightFirstOrderTime":{"type":"double","id":11},"weightSecondOrderTime":{"type":"double","id":12},"minSafetyDistance":{"type":"double","id":13,"options":{"default":0}},"maxSpeedForward":{"type":"double","id":14,"options":{"default":3}},"maxSpeedReverse":{"type":"double","id":15,"options":{"default":2}},"maxAccelerationForward":{"type":"double","id":16,"options":{"default":2}},"maxAccelerationReverse":{"type":"double","id":17,"options":{"default":2}},"minTimeSampleScaling":{"type":"double","id":18,"options":{"default":0.1}},"maxTimeSampleScaling":{"type":"double","id":19,"options":{"default":10}},"useFixTime":{"type":"bool","id":20,"options":{"default":false}},"ipoptConfig":{"type":"IpoptSolverConfig","id":21},"enableConstraintCheck":{"type":"bool","id":22},"enableHandDerivative":{"type":"bool","id":23},"enableDerivativeCheck":{"type":"bool","id":24},"enableInitialFinalCheck":{"type":"bool","id":25,"options":{"default":false}}}},"IpoptSolverConfig":{"fields":{"ipoptPrintLevel":{"type":"int32","id":1},"mumpsMemPercent":{"type":"int32","id":2},"mumpsPivtol":{"type":"double","id":3},"ipoptMaxIter":{"type":"int32","id":4},"ipoptTol":{"type":"double","id":5},"ipoptAcceptableConstrViolTol":{"type":"double","id":6},"ipoptMinHessianPerturbation":{"type":"double","id":7},"ipoptJacobianRegularizationValue":{"type":"double","id":8},"ipoptPrintTimingStatistics":{"type":"string","id":9},"ipoptAlphaForY":{"type":"string","id":10},"ipoptRecalcY":{"type":"string","id":11},"ipoptMuInit":{"type":"double","id":12,"options":{"default":0.1}}}},"DrivingAction":{"values":{"NONE":100,"FOLLOW":0,"CHANGE_LEFT":1,"CHANGE_RIGHT":2,"PULL_OVER":3,"STOP":4,"RESUME_CRUISE":5}},"PadMessage":{"fields":{"header":{"type":"apollo.common.Header","id":1},"action":{"type":"DrivingAction","id":2}}},"PathAssessmentDeciderConfig":{"fields":{}},"PathBoundsDeciderConfig":{"fields":{"isLaneBorrowing":{"type":"bool","id":1},"isPullOver":{"type":"bool","id":2},"pullOverDestinationToAdcBuffer":{"type":"double","id":3,"options":{"default":25}},"pullOverDestinationToPathendBuffer":{"type":"double","id":4,"options":{"default":10}},"pullOverRoadEdgeBuffer":{"type":"double","id":5,"options":{"default":0.15}},"pullOverApproachLonDistanceAdjustFactor":{"type":"double","id":6,"options":{"default":1.5}}}},"PathDeciderConfig":{"fields":{"staticObstacleBuffer":{"type":"double","id":1,"options":{"default":0.3}}}},"PathLaneBorrowDeciderConfig":{"fields":{"allowLaneBorrowing":{"type":"bool","id":1}}},"PathReuseDeciderConfig":{"fields":{"reusePath":{"type":"bool","id":1}}},"PiecewiseJerkNonlinearSpeedConfig":{"fields":{"accWeight":{"type":"double","id":1,"options":{"default":500}},"jerkWeight":{"type":"double","id":2,"options":{"default":100}},"latAccWeight":{"type":"double","id":3,"options":{"default":500}},"refSWeight":{"type":"double","id":4,"options":{"default":10}},"refVWeight":{"type":"double","id":5,"options":{"default":10}},"endSWeight":{"type":"double","id":6,"options":{"default":10}},"endVWeight":{"type":"double","id":7,"options":{"default":10}},"endAWeight":{"type":"double","id":8,"options":{"default":10}},"useWarmStart":{"type":"bool","id":100,"options":{"default":true}}}},"PiecewiseJerkPathConfig":{"fields":{"defaultPathConfig":{"type":"PiecewiseJerkPathWeights","id":1},"laneChangePathConfig":{"type":"PiecewiseJerkPathWeights","id":2}}},"PiecewiseJerkPathWeights":{"fields":{"lWeight":{"type":"double","id":1,"options":{"default":1}},"dlWeight":{"type":"double","id":2,"options":{"default":100}},"ddlWeight":{"type":"double","id":3,"options":{"default":1000}},"dddlWeight":{"type":"double","id":4,"options":{"default":10000}}}},"PiecewiseJerkSpeedConfig":{"fields":{"accWeight":{"type":"double","id":1,"options":{"default":1}},"jerkWeight":{"type":"double","id":2,"options":{"default":10}},"kappaPenaltyWeight":{"type":"double","id":3,"options":{"default":1000}},"refSWeight":{"type":"double","id":4,"options":{"default":10}},"refVWeight":{"type":"double","id":5,"options":{"default":10}}}},"DualWarmUpMode":{"values":{"IPOPT":0,"IPOPTQP":1,"OSQP":2,"DEBUG":3,"SLACKQP":4}},"DistanceApproachMode":{"values":{"DISTANCE_APPROACH_IPOPT":0,"DISTANCE_APPROACH_IPOPT_CUDA":1,"DISTANCE_APPROACH_IPOPT_FIXED_TS":2,"DISTANCE_APPROACH_IPOPT_FIXED_DUAL":3,"DISTANCE_APPROACH_IPOPT_RELAX_END":4,"DISTANCE_APPROACH_IPOPT_RELAX_END_SLACK":5}},"PlannerOpenSpaceConfig":{"fields":{"roiConfig":{"type":"ROIConfig","id":1},"warmStartConfig":{"type":"WarmStartConfig","id":2},"dualVariableWarmStartConfig":{"type":"DualVariableWarmStartConfig","id":3},"distanceApproachConfig":{"type":"DistanceApproachConfig","id":4},"iterativeAnchoringSmootherConfig":{"type":"IterativeAnchoringConfig","id":5},"trajectoryPartitionConfig":{"type":"TrajectoryPartitionConfig","id":6},"deltaT":{"type":"float","id":7,"options":{"default":1}},"isNearDestinationThreshold":{"type":"double","id":8,"options":{"default":0.001}},"enableCheckParallelTrajectory":{"type":"bool","id":9,"options":{"default":false}},"enableLinearInterpolation":{"type":"bool","id":10,"options":{"default":false}},"isNearDestinationThetaThreshold":{"type":"double","id":11,"options":{"default":0.05}}}},"ROIConfig":{"fields":{"roiLongitudinalRange":{"type":"double","id":1,"options":{"default":10}},"parkingStartRange":{"type":"double","id":2,"options":{"default":7}},"parkingInwards":{"type":"bool","id":3,"options":{"default":false}}}},"WarmStartConfig":{"fields":{"xyGridResolution":{"type":"double","id":1,"options":{"default":0.2}},"phiGridResolution":{"type":"double","id":2,"options":{"default":0.05}},"nextNodeNum":{"type":"uint64","id":3,"options":{"default":10}},"stepSize":{"type":"double","id":4,"options":{"default":0.5}},"trajForwardPenalty":{"type":"double","id":5,"options":{"default":0}},"trajBackPenalty":{"type":"double","id":6,"options":{"default":0}},"trajGearSwitchPenalty":{"type":"double","id":7,"options":{"default":10}},"trajSteerPenalty":{"type":"double","id":8,"options":{"default":100}},"trajSteerChangePenalty":{"type":"double","id":9,"options":{"default":10}},"gridAStarXyResolution":{"type":"double","id":15,"options":{"default":0.1}},"nodeRadius":{"type":"double","id":16,"options":{"default":0.5}},"sCurveConfig":{"type":"PiecewiseJerkSpeedConfig","id":17}}},"DualVariableWarmStartConfig":{"fields":{"weightD":{"type":"double","id":1,"options":{"default":1}},"ipoptConfig":{"type":"IpoptConfig","id":2},"qpFormat":{"type":"DualWarmUpMode","id":3},"minSafetyDistance":{"type":"double","id":4,"options":{"default":0}},"debugOsqp":{"type":"bool","id":5,"options":{"default":false}},"beta":{"type":"double","id":6,"options":{"default":1}},"osqpConfig":{"type":"OSQPConfig","id":7}}},"DistanceApproachConfig":{"fields":{"weightSteer":{"type":"double","id":1},"weightA":{"type":"double","id":2},"weightSteerRate":{"type":"double","id":3},"weightARate":{"type":"double","id":4},"weightX":{"type":"double","id":5},"weightY":{"type":"double","id":6},"weightPhi":{"type":"double","id":7},"weightV":{"type":"double","id":8},"weightSteerStitching":{"type":"double","id":9},"weightAStitching":{"type":"double","id":10},"weightFirstOrderTime":{"type":"double","id":11},"weightSecondOrderTime":{"type":"double","id":12},"minSafetyDistance":{"type":"double","id":13,"options":{"default":0}},"maxSpeedForward":{"type":"double","id":14,"options":{"default":3}},"maxSpeedReverse":{"type":"double","id":15,"options":{"default":2}},"maxAccelerationForward":{"type":"double","id":16,"options":{"default":2}},"maxAccelerationReverse":{"type":"double","id":17,"options":{"default":2}},"minTimeSampleScaling":{"type":"double","id":18,"options":{"default":0.1}},"maxTimeSampleScaling":{"type":"double","id":19,"options":{"default":10}},"useFixTime":{"type":"bool","id":20,"options":{"default":false}},"ipoptConfig":{"type":"IpoptConfig","id":21},"enableConstraintCheck":{"type":"bool","id":22},"enableHandDerivative":{"type":"bool","id":23},"enableDerivativeCheck":{"type":"bool","id":24},"enableInitialFinalCheck":{"type":"bool","id":25,"options":{"default":false}},"distanceApproachMode":{"type":"DistanceApproachMode","id":26},"enableJacobianAd":{"type":"bool","id":27,"options":{"default":false}},"enableCheckInitialState":{"type":"bool","id":28,"options":{"default":false}},"weightEndState":{"type":"double","id":29,"options":{"default":0}},"weightSlack":{"type":"double","id":30,"options":{"default":0}}}},"IpoptConfig":{"fields":{"ipoptPrintLevel":{"type":"int32","id":1},"mumpsMemPercent":{"type":"int32","id":2},"mumpsPivtol":{"type":"double","id":3},"ipoptMaxIter":{"type":"int32","id":4},"ipoptTol":{"type":"double","id":5},"ipoptAcceptableConstrViolTol":{"type":"double","id":6},"ipoptMinHessianPerturbation":{"type":"double","id":7},"ipoptJacobianRegularizationValue":{"type":"double","id":8},"ipoptPrintTimingStatistics":{"type":"string","id":9},"ipoptAlphaForY":{"type":"string","id":10},"ipoptRecalcY":{"type":"string","id":11},"ipoptMuInit":{"type":"double","id":12,"options":{"default":0.1}}}},"OSQPConfig":{"fields":{"alpha":{"type":"double","id":1,"options":{"default":1}},"epsAbs":{"type":"double","id":2,"options":{"default":0.001}},"epsRel":{"type":"double","id":3,"options":{"default":0.001}},"maxIter":{"type":"int32","id":4,"options":{"default":10000}},"polish":{"type":"bool","id":5,"options":{"default":true}},"osqpDebugLog":{"type":"bool","id":6,"options":{"default":false}}}},"IterativeAnchoringConfig":{"fields":{"interpolatedDeltaS":{"type":"double","id":1,"options":{"default":0.1}},"reanchoringTrailsNum":{"type":"int32","id":2,"options":{"default":50}},"reanchoringPosStddev":{"type":"double","id":3,"options":{"default":0.25}},"reanchoringLengthStddev":{"type":"double","id":4,"options":{"default":1}},"estimateBound":{"type":"bool","id":5,"options":{"default":false}},"defaultBound":{"type":"double","id":6,"options":{"default":2}},"vehicleShortestDimension":{"type":"double","id":7,"options":{"default":1.04}},"femPosDeviationSmootherConfig":{"type":"FemPosDeviationSmootherConfig","id":8},"collisionDecreaseRatio":{"type":"double","id":9,"options":{"default":0.9}},"maxForwardV":{"type":"double","id":10,"options":{"default":2}},"maxReverseV":{"type":"double","id":11,"options":{"default":2}},"maxForwardAcc":{"type":"double","id":12,"options":{"default":3}},"maxReverseAcc":{"type":"double","id":13,"options":{"default":2}},"maxAccJerk":{"type":"double","id":14,"options":{"default":4}},"deltaT":{"type":"double","id":15,"options":{"default":0.2}},"sCurveConfig":{"type":"PiecewiseJerkSpeedConfig","id":16}}},"TrajectoryPartitionConfig":{"fields":{"interpolatedPiecesNum":{"type":"uint64","id":1,"options":{"default":50}},"initialGearCheckHorizon":{"type":"uint64","id":2,"options":{"default":3}},"headingSearchingRange":{"type":"double","id":3,"options":{"default":0.3}},"gearShiftPeriodDuration":{"type":"double","id":4,"options":{"default":2}},"gearShiftMaxT":{"type":"double","id":5,"options":{"default":3}},"gearShiftUnitT":{"type":"double","id":6,"options":{"default":0.02}}}},"ADCSignals":{"fields":{"signal":{"rule":"repeated","type":"SignalType","id":1,"options":{"packed":false}}},"nested":{"SignalType":{"values":{"LEFT_TURN":1,"RIGHT_TURN":2,"LOW_BEAM_LIGHT":3,"HIGH_BEAM_LIGHT":4,"FOG_LIGHT":5,"EMERGENCY_LIGHT":6}}}},"EStop":{"fields":{"isEstop":{"type":"bool","id":1},"reason":{"type":"string","id":2}}},"TaskStats":{"fields":{"name":{"type":"string","id":1},"timeMs":{"type":"double","id":2}}},"LatencyStats":{"fields":{"totalTimeMs":{"type":"double","id":1},"taskStats":{"rule":"repeated","type":"TaskStats","id":2},"initFrameTimeMs":{"type":"double","id":3}}},"RSSInfo":{"fields":{"isRssSafe":{"type":"bool","id":1},"curDistLon":{"type":"double","id":2},"rssSafeDistLon":{"type":"double","id":3},"accLonRangeMinimum":{"type":"double","id":4},"accLonRangeMaximum":{"type":"double","id":5},"accLatLeftRangeMinimum":{"type":"double","id":6},"accLatLeftRangeMaximum":{"type":"double","id":7},"accLatRightRangeMinimum":{"type":"double","id":8},"accLatRightRangeMaximum":{"type":"double","id":9}}},"ADCTrajectory":{"fields":{"header":{"type":"apollo.common.Header","id":1},"totalPathLength":{"type":"double","id":2},"totalPathTime":{"type":"double","id":3},"trajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":12},"estop":{"type":"EStop","id":6},"pathPoint":{"rule":"repeated","type":"apollo.common.PathPoint","id":13},"isReplan":{"type":"bool","id":9,"options":{"default":false}},"replanReason":{"type":"string","id":22},"gear":{"type":"apollo.canbus.Chassis.GearPosition","id":10},"decision":{"type":"apollo.planning.DecisionResult","id":14},"latencyStats":{"type":"LatencyStats","id":15},"routingHeader":{"type":"apollo.common.Header","id":16},"debug":{"type":"apollo.planning_internal.Debug","id":8},"rightOfWayStatus":{"type":"RightOfWayStatus","id":17},"laneId":{"rule":"repeated","type":"apollo.hdmap.Id","id":18},"engageAdvice":{"type":"apollo.common.EngageAdvice","id":19},"criticalRegion":{"type":"CriticalRegion","id":20},"trajectoryType":{"type":"TrajectoryType","id":21,"options":{"default":"UNKNOWN"}},"targetLaneId":{"rule":"repeated","type":"apollo.hdmap.Id","id":23},"rssInfo":{"type":"RSSInfo","id":100}},"nested":{"RightOfWayStatus":{"values":{"UNPROTECTED":0,"PROTECTED":1}},"CriticalRegion":{"fields":{"region":{"rule":"repeated","type":"apollo.common.Polygon","id":1}}},"TrajectoryType":{"values":{"UNKNOWN":0,"NORMAL":1,"PATH_FALLBACK":2,"SPEED_FALLBACK":3,"PATH_REUSED":4}}}},"TaskConfig":{"oneofs":{"taskConfig":{"oneof":["speedHeuristicConfig","pathDeciderConfig","proceedWithCautionSpeedConfig","creepDeciderConfig","openSpacePreStopDeciderConfig","speedBoundsDeciderConfig","piecewiseJerkPathConfig","pathBoundsDeciderConfig","openSpaceFallbackDeciderConfig","openSpaceRoiDeciderConfig","openSpaceTrajectoryProviderConfig","openSpaceTrajectoryPartitionConfig","pathAssessmentDeciderConfig","piecewiseJerkSpeedConfig","pathLaneBorrowDeciderConfig","laneChangeDeciderConfig","ruleBasedStopDeciderConfig","pathReuseDeciderConfig","stBoundsDeciderConfig","piecewiseJerkNonlinearSpeedConfig"]}},"fields":{"taskType":{"type":"TaskType","id":1},"speedHeuristicConfig":{"type":"SpeedHeuristicConfig","id":3},"pathDeciderConfig":{"type":"PathDeciderConfig","id":7},"proceedWithCautionSpeedConfig":{"type":"ProceedWithCautionSpeedConfig","id":8},"creepDeciderConfig":{"type":"CreepDeciderConfig","id":10},"openSpacePreStopDeciderConfig":{"type":"OpenSpacePreStopDeciderConfig","id":11},"speedBoundsDeciderConfig":{"type":"SpeedBoundsDeciderConfig","id":15},"piecewiseJerkPathConfig":{"type":"PiecewiseJerkPathConfig","id":16},"pathBoundsDeciderConfig":{"type":"PathBoundsDeciderConfig","id":17},"openSpaceFallbackDeciderConfig":{"type":"OpenSpaceFallBackDeciderConfig","id":18},"openSpaceRoiDeciderConfig":{"type":"OpenSpaceRoiDeciderConfig","id":19},"openSpaceTrajectoryProviderConfig":{"type":"OpenSpaceTrajectoryProviderConfig","id":20},"openSpaceTrajectoryPartitionConfig":{"type":"OpenSpaceTrajectoryPartitionConfig","id":21},"pathAssessmentDeciderConfig":{"type":"PathAssessmentDeciderConfig","id":22},"piecewiseJerkSpeedConfig":{"type":"PiecewiseJerkSpeedConfig","id":23},"pathLaneBorrowDeciderConfig":{"type":"PathLaneBorrowDeciderConfig","id":24},"laneChangeDeciderConfig":{"type":"LaneChangeDeciderConfig","id":25},"ruleBasedStopDeciderConfig":{"type":"RuleBasedStopDeciderConfig","id":26},"pathReuseDeciderConfig":{"type":"PathReuseDeciderConfig","id":27},"stBoundsDeciderConfig":{"type":"STBoundsDeciderConfig","id":28},"piecewiseJerkNonlinearSpeedConfig":{"type":"PiecewiseJerkNonlinearSpeedConfig","id":29}},"nested":{"TaskType":{"values":{"DP_ST_SPEED_OPTIMIZER":1,"PATH_DECIDER":4,"SPEED_DECIDER":5,"NAVI_PATH_DECIDER":7,"NAVI_SPEED_DECIDER":8,"NAVI_OBSTACLE_DECIDER":9,"CREEP_DECIDER":11,"OPEN_SPACE_PRE_STOP_DECIDER":12,"PROCEED_WITH_CAUTION_SPEED":15,"DECIDER_RSS":16,"SPEED_BOUNDS_PRIORI_DECIDER":17,"SPEED_BOUNDS_FINAL_DECIDER":18,"PIECEWISE_JERK_PATH_OPTIMIZER":19,"PATH_BOUNDS_DECIDER":20,"OPEN_SPACE_ROI_DECIDER":21,"OPEN_SPACE_TRAJECTORY_PROVIDER":22,"OPEN_SPACE_TRAJECTORY_PARTITION":23,"OPEN_SPACE_FALLBACK_DECIDER":24,"PATH_ASSESSMENT_DECIDER":25,"PATH_LANE_BORROW_DECIDER":26,"PIECEWISE_JERK_SPEED_OPTIMIZER":27,"LANE_CHANGE_DECIDER":28,"RULE_BASED_STOP_DECIDER":29,"PATH_REUSE_DECIDER":30,"ST_BOUNDS_DECIDER":31,"PIECEWISE_JERK_NONLINEAR_SPEED_OPTIMIZER":32}}}},"ScenarioLaneFollowConfig":{"fields":{}},"ScenarioBareIntersectionUnprotectedConfig":{"fields":{"startBareIntersectionScenarioDistance":{"type":"double","id":1,"options":{"default":25}},"enableExplicitStop":{"type":"bool","id":2,"options":{"default":false}},"minPassSDistance":{"type":"double","id":3,"options":{"default":3}},"approachCruiseSpeed":{"type":"double","id":4,"options":{"default":6.7056}},"stopDistance":{"type":"double","id":5,"options":{"default":0.5}},"stopTimeoutSec":{"type":"float","id":6,"options":{"default":8}},"creepTimeoutSec":{"type":"float","id":7,"options":{"default":10}}}},"ScenarioStopSignUnprotectedConfig":{"fields":{"startStopSignScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"watchVehicleMaxValidStopDistance":{"type":"double","id":2,"options":{"default":5}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":3.5}},"stopDurationSec":{"type":"float","id":4,"options":{"default":1}},"minPassSDistance":{"type":"double","id":5,"options":{"default":3}},"stopTimeoutSec":{"type":"float","id":6,"options":{"default":8}},"creepTimeoutSec":{"type":"float","id":7,"options":{"default":10}}}},"ScenarioTrafficLightProtectedConfig":{"fields":{"startTrafficLightScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":2}},"minPassSDistance":{"type":"double","id":3,"options":{"default":3}}}},"ScenarioTrafficLightUnprotectedLeftTurnConfig":{"fields":{"startTrafficLightScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"approachCruiseSpeed":{"type":"double","id":2,"options":{"default":2.78}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":3.5}},"minPassSDistance":{"type":"double","id":4,"options":{"default":3}},"creepTimeoutSec":{"type":"float","id":5,"options":{"default":10}},"maxAdcSpeedBeforeCreep":{"type":"double","id":6,"options":{"default":5.56}}}},"ScenarioTrafficLightUnprotectedRightTurnConfig":{"fields":{"startTrafficLightScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"enableRightTurnOnRed":{"type":"bool","id":2,"options":{"default":false}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":3.5}},"minPassSDistance":{"type":"double","id":4,"options":{"default":3}},"redLightRightTurnStopDurationSec":{"type":"float","id":5,"options":{"default":3}},"creepTimeoutSec":{"type":"float","id":6,"options":{"default":10}},"maxAdcSpeedBeforeCreep":{"type":"double","id":7,"options":{"default":3}}}},"ScenarioPullOverConfig":{"fields":{"startPullOverScenarioDistance":{"type":"double","id":1,"options":{"default":50}},"pullOverMinDistanceBuffer":{"type":"double","id":2,"options":{"default":10}},"maxDistanceStopSearch":{"type":"double","id":3,"options":{"default":25}},"maxSErrorToEndPoint":{"type":"double","id":4,"options":{"default":0.2}},"maxLErrorToEndPoint":{"type":"double","id":5,"options":{"default":0.5}},"maxThetaErrorToEndPoint":{"type":"double","id":6,"options":{"default":0.2}},"maxDistanceErrorToEndPoint":{"type":"double","id":7,"options":{"default":0.2}},"passDestinationThreshold":{"type":"double","id":8,"options":{"default":10}},"maxValidStopDistance":{"type":"double","id":9,"options":{"default":1}},"sDistanceToStopForOpenSpaceParking":{"type":"double","id":10,"options":{"default":7}}}},"ScenarioEmergencyPullOverConfig":{"fields":{"maxStopDeceleration":{"type":"double","id":1,"options":{"default":3}},"slowDownDecelerationTime":{"type":"double","id":2,"options":{"default":3}},"targetSlowDownSpeed":{"type":"double","id":3,"options":{"default":2.5}},"stopDistance":{"type":"double","id":4,"options":{"default":1.5}}}},"ScenarioEmergencyStopConfig":{"fields":{"maxStopDeceleration":{"type":"double","id":1,"options":{"default":6}},"stopDistance":{"type":"double","id":2,"options":{"default":1}}}},"ScenarioValetParkingConfig":{"fields":{"parkingSpotRangeToStart":{"type":"double","id":1,"options":{"default":20}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":1}}}},"ScenarioNarrowStreetUTurnConfig":{"fields":{}},"ScenarioParkAndGoConfig":{"fields":{"frontObstacleBuffer":{"type":"double","id":1,"options":{"default":4}},"headingBuffer":{"type":"double","id":2,"options":{"default":0.5}},"minDistToDest":{"type":"double","id":3,"options":{"default":25}}}},"ScenarioYieldSignConfig":{"fields":{"startYieldSignScenarioDistance":{"type":"double","id":1,"options":{"default":10}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":4.5}},"minPassSDistance":{"type":"double","id":3,"options":{"default":3}},"creepTimeoutSec":{"type":"float","id":4,"options":{"default":10}}}},"ScenarioConfig":{"oneofs":{"scenarioConfig":{"oneof":["laneFollowConfig","bareIntersectionUnprotectedConfig","emergencyPullOverConfig","emergencyStopConfig","narrowStreetUTurnConfig","stopSignUnprotectedConfig","trafficLightProtectedConfig","trafficLightUnprotectedRightTurnConfig","trafficLightUnprotectedLeftTurnConfig","parkAndGoConfig","pullOverConfig","valetParkingConfig","yieldSignConfig"]}},"fields":{"scenarioType":{"type":"ScenarioType","id":1},"laneFollowConfig":{"type":"ScenarioLaneFollowConfig","id":2},"bareIntersectionUnprotectedConfig":{"type":"ScenarioBareIntersectionUnprotectedConfig","id":4},"emergencyPullOverConfig":{"type":"ScenarioEmergencyPullOverConfig","id":5},"emergencyStopConfig":{"type":"ScenarioEmergencyStopConfig","id":6},"narrowStreetUTurnConfig":{"type":"ScenarioNarrowStreetUTurnConfig","id":7},"stopSignUnprotectedConfig":{"type":"ScenarioStopSignUnprotectedConfig","id":8},"trafficLightProtectedConfig":{"type":"ScenarioTrafficLightProtectedConfig","id":9},"trafficLightUnprotectedRightTurnConfig":{"type":"ScenarioTrafficLightUnprotectedRightTurnConfig","id":10},"trafficLightUnprotectedLeftTurnConfig":{"type":"ScenarioTrafficLightUnprotectedLeftTurnConfig","id":11},"parkAndGoConfig":{"type":"ScenarioParkAndGoConfig","id":12},"pullOverConfig":{"type":"ScenarioPullOverConfig","id":13},"valetParkingConfig":{"type":"ScenarioValetParkingConfig","id":14},"yieldSignConfig":{"type":"ScenarioYieldSignConfig","id":15},"stageType":{"rule":"repeated","type":"StageType","id":16,"options":{"packed":false}},"stageConfig":{"rule":"repeated","type":"StageConfig","id":17}},"nested":{"ScenarioType":{"values":{"LANE_FOLLOW":0,"CHANGE_LANE":1,"BARE_INTERSECTION_UNPROTECTED":3,"STOP_SIGN_PROTECTED":4,"STOP_SIGN_UNPROTECTED":5,"TRAFFIC_LIGHT_PROTECTED":6,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN":7,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN":8,"YIELD_SIGN":9,"PULL_OVER":10,"VALET_PARKING":11,"EMERGENCY_PULL_OVER":12,"EMERGENCY_STOP":13,"NARROW_STREET_U_TURN":14,"PARK_AND_GO":15}},"StageType":{"values":{"NO_STAGE":0,"LANE_FOLLOW_DEFAULT_STAGE":1,"BARE_INTERSECTION_UNPROTECTED_APPROACH":200,"BARE_INTERSECTION_UNPROTECTED_INTERSECTION_CRUISE":201,"STOP_SIGN_UNPROTECTED_PRE_STOP":300,"STOP_SIGN_UNPROTECTED_STOP":301,"STOP_SIGN_UNPROTECTED_CREEP":302,"STOP_SIGN_UNPROTECTED_INTERSECTION_CRUISE":303,"TRAFFIC_LIGHT_PROTECTED_APPROACH":400,"TRAFFIC_LIGHT_PROTECTED_INTERSECTION_CRUISE":401,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN_APPROACH":410,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN_CREEP":411,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN_INTERSECTION_CRUISE":412,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN_STOP":420,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN_CREEP":421,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN_INTERSECTION_CRUISE":422,"PULL_OVER_APPROACH":500,"PULL_OVER_RETRY_APPROACH_PARKING":501,"PULL_OVER_RETRY_PARKING":502,"EMERGENCY_PULL_OVER_SLOW_DOWN":600,"EMERGENCY_PULL_OVER_APPROACH":601,"EMERGENCY_PULL_OVER_STANDBY":602,"EMERGENCY_STOP_APPROACH":610,"EMERGENCY_STOP_STANDBY":611,"VALET_PARKING_APPROACHING_PARKING_SPOT":700,"VALET_PARKING_PARKING":701,"PARK_AND_GO_CHECK":800,"PARK_AND_GO_CRUISE":801,"PARK_AND_GO_ADJUST":802,"YIELD_SIGN_APPROACH":900,"YIELD_SIGN_CREEP":901}},"StageConfig":{"fields":{"stageType":{"type":"StageType","id":1},"enabled":{"type":"bool","id":2,"options":{"default":true}},"taskType":{"rule":"repeated","type":"TaskConfig.TaskType","id":3,"options":{"packed":false}},"taskConfig":{"rule":"repeated","type":"TaskConfig","id":4}}}}},"PlannerPublicRoadConfig":{"fields":{}},"PlannerNaviConfig":{"fields":{"task":{"rule":"repeated","type":"TaskConfig.TaskType","id":1,"options":{"packed":false}},"naviPathDeciderConfig":{"type":"NaviPathDeciderConfig","id":2},"naviSpeedDeciderConfig":{"type":"NaviSpeedDeciderConfig","id":3},"naviObstacleDeciderConfig":{"type":"NaviObstacleDeciderConfig","id":4}}},"PlannerType":{"values":{"RTK":0,"PUBLIC_ROAD":1,"NAVI":2,"LATTICE":3}},"RtkPlanningConfig":{"fields":{"plannerType":{"type":"PlannerType","id":1}}},"StandardPlanningConfig":{"fields":{"plannerType":{"rule":"repeated","type":"PlannerType","id":1,"options":{"packed":false}},"plannerPublicRoadConfig":{"type":"PlannerPublicRoadConfig","id":2}}},"NavigationPlanningConfig":{"fields":{"plannerType":{"rule":"repeated","type":"PlannerType","id":1,"options":{"packed":false}},"plannerNaviConfig":{"type":"PlannerNaviConfig","id":4}}},"PlanningConfig":{"oneofs":{"planningConfig":{"oneof":["rtkPlanningConfig","standardPlanningConfig","navigationPlanningConfig"]}},"fields":{"rtkPlanningConfig":{"type":"RtkPlanningConfig","id":1},"standardPlanningConfig":{"type":"StandardPlanningConfig","id":2},"navigationPlanningConfig":{"type":"NavigationPlanningConfig","id":3},"defaultTaskConfig":{"rule":"repeated","type":"TaskConfig","id":5}}},"StatsGroup":{"fields":{"max":{"type":"double","id":1},"min":{"type":"double","id":2,"options":{"default":10000000000}},"sum":{"type":"double","id":3},"avg":{"type":"double","id":4},"num":{"type":"int32","id":5}}},"PlanningStats":{"fields":{"totalPathLength":{"type":"StatsGroup","id":1},"totalPathTime":{"type":"StatsGroup","id":2},"v":{"type":"StatsGroup","id":3},"a":{"type":"StatsGroup","id":4},"kappa":{"type":"StatsGroup","id":5},"dkappa":{"type":"StatsGroup","id":6}}},"BareIntersectionStatus":{"fields":{"currentPncJunctionOverlapId":{"type":"string","id":1},"donePncJunctionOverlapId":{"type":"string","id":2}}},"ChangeLaneStatus":{"fields":{"status":{"type":"Status","id":1},"pathId":{"type":"string","id":2},"timestamp":{"type":"double","id":3},"existLaneChangeStartPosition":{"type":"bool","id":4,"options":{"default":false}},"laneChangeStartPosition":{"type":"apollo.common.Point3D","id":5},"lastSucceedTimestamp":{"type":"double","id":6},"isCurrentOptSucceed":{"type":"bool","id":7,"options":{"default":false}}},"nested":{"Status":{"values":{"IN_CHANGE_LANE":1,"CHANGE_LANE_FAILED":2,"CHANGE_LANE_FINISHED":3}}}},"StopTime":{"fields":{"obstacleId":{"type":"string","id":1},"obstacleStopTimestamp":{"type":"double","id":2}}},"CrosswalkStatus":{"fields":{"crosswalkId":{"type":"string","id":1},"stopTime":{"rule":"repeated","type":"StopTime","id":2},"finishedCrosswalk":{"rule":"repeated","type":"string","id":3}}},"DestinationStatus":{"fields":{"hasPassedDestination":{"type":"bool","id":1,"options":{"default":false}}}},"EmergencyStopStatus":{"fields":{"stopFencePoint":{"type":"apollo.common.PointENU","id":1}}},"OpenSpaceStatus":{"fields":{"partitionedTrajectoriesIndexHistory":{"rule":"repeated","type":"string","id":1},"positionInit":{"type":"bool","id":2,"options":{"default":false}}}},"ParkAndGoStatus":{"fields":{"adcInitPosition":{"type":"apollo.common.PointENU","id":1},"adcInitHeading":{"type":"double","id":2}}},"PathDeciderStatus":{"fields":{"frontStaticObstacleCycleCounter":{"type":"int32","id":1,"options":{"default":0}},"ableToUseSelfLaneCounter":{"type":"int32","id":2,"options":{"default":0}},"isInPathLaneBorrowScenario":{"type":"bool","id":3,"options":{"default":false}},"frontStaticObstacleId":{"type":"string","id":4,"options":{"default":""}},"decidedSidePassDirection":{"rule":"repeated","type":"LaneBorrowDirection","id":5,"options":{"packed":false}}},"nested":{"LaneBorrowDirection":{"values":{"LEFT_BORROW":1,"RIGHT_BORROW":2}}}},"PathReuseDeciderStatus":{"fields":{"reusedPath":{"type":"bool","id":1,"options":{"default":true}},"laneChangeFailureCounter":{"type":"int32","id":2}}},"PedestrianStatus":{"fields":{"stopTime":{"rule":"repeated","type":"StopTime","id":1}}},"PullOverStatus":{"fields":{"pullOverType":{"type":"PullOverType","id":1},"planPullOverPath":{"type":"bool","id":2,"options":{"default":false}},"position":{"type":"apollo.common.PointENU","id":3},"theta":{"type":"double","id":4},"lengthFront":{"type":"double","id":5},"lengthBack":{"type":"double","id":6},"widthLeft":{"type":"double","id":7},"widthRight":{"type":"double","id":8}},"nested":{"PullOverType":{"values":{"PULL_OVER":1,"EMERGENCY_PULL_OVER":2}}}},"ReroutingStatus":{"fields":{"lastReroutingTime":{"type":"double","id":1},"needRerouting":{"type":"bool","id":2,"options":{"default":false}},"routingRequest":{"type":"apollo.routing.RoutingRequest","id":3}}},"RightOfWayStatus":{"fields":{"junction":{"keyType":"string","type":"bool","id":1}}},"ScenarioStatus":{"fields":{"scenarioType":{"type":"ScenarioConfig.ScenarioType","id":1},"stageType":{"type":"ScenarioConfig.StageType","id":2}}},"SidePassStatus":{"fields":{"changeLaneStopPathPoint":{"type":"apollo.common.PathPoint","id":1},"checkClearFlag":{"type":"bool","id":2}}},"StopSignStatus":{"fields":{"currentStopSignOverlapId":{"type":"string","id":1},"doneStopSignOverlapId":{"type":"string","id":2},"waitForObstacleId":{"rule":"repeated","type":"string","id":3}}},"TrafficLightStatus":{"fields":{"currentTrafficLightOverlapId":{"rule":"repeated","type":"string","id":1},"doneTrafficLightOverlapId":{"rule":"repeated","type":"string","id":2}}},"YieldSignStatus":{"fields":{"currentYieldSignOverlapId":{"rule":"repeated","type":"string","id":1},"doneYieldSignOverlapId":{"rule":"repeated","type":"string","id":2},"waitForObstacleId":{"rule":"repeated","type":"string","id":3}}},"PlanningStatus":{"fields":{"bareIntersection":{"type":"BareIntersectionStatus","id":1},"changeLane":{"type":"ChangeLaneStatus","id":2},"crosswalk":{"type":"CrosswalkStatus","id":3},"destination":{"type":"DestinationStatus","id":4},"emergencyStop":{"type":"EmergencyStopStatus","id":5},"engageAdvice":{"type":"apollo.common.EngageAdvice","id":6},"openSpace":{"type":"OpenSpaceStatus","id":7},"pedestrian":{"type":"PedestrianStatus","id":8},"parkAndGo":{"type":"ParkAndGoStatus","id":9},"pathDecider":{"type":"PathDeciderStatus","id":10},"pathReuseDecider":{"type":"PathReuseDeciderStatus","id":11},"pullOver":{"type":"PullOverStatus","id":12},"rerouting":{"type":"ReroutingStatus","id":13},"rightOfWay":{"type":"RightOfWayStatus","id":14},"scenario":{"type":"ScenarioStatus","id":15},"sidePass":{"type":"SidePassStatus","id":16},"stopSign":{"type":"StopSignStatus","id":17},"trafficLight":{"type":"TrafficLightStatus","id":18},"yieldSign":{"type":"YieldSignStatus","id":19}}},"ProceedWithCautionSpeedConfig":{"fields":{"maxDistance":{"type":"double","id":1,"options":{"default":5}}}},"QuadraticProgrammingProblem":{"fields":{"paramSize":{"type":"int32","id":1},"quadraticMatrix":{"type":"QPMatrix","id":2},"bias":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}},"equalityMatrix":{"type":"QPMatrix","id":4},"equalityValue":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"inequalityMatrix":{"type":"QPMatrix","id":6},"inequalityValue":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"inputMarker":{"rule":"repeated","type":"double","id":8,"options":{"packed":false}},"optimalParam":{"rule":"repeated","type":"double","id":9,"options":{"packed":false}}}},"QPMatrix":{"fields":{"rowSize":{"type":"int32","id":1},"colSize":{"type":"int32","id":2},"element":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}}}},"QuadraticProgrammingProblemSet":{"fields":{"problem":{"rule":"repeated","type":"QuadraticProgrammingProblem","id":1}}},"QpSplineSmootherConfig":{"fields":{"splineOrder":{"type":"uint32","id":1,"options":{"default":5}},"maxSplineLength":{"type":"double","id":2,"options":{"default":25}},"regularizationWeight":{"type":"double","id":3,"options":{"default":0.1}},"secondDerivativeWeight":{"type":"double","id":4,"options":{"default":0}},"thirdDerivativeWeight":{"type":"double","id":5,"options":{"default":100}}}},"SpiralSmootherConfig":{"fields":{"maxDeviation":{"type":"double","id":1,"options":{"default":0.1}},"piecewiseLength":{"type":"double","id":2,"options":{"default":10}},"maxIteration":{"type":"uint32","id":3,"options":{"default":1000}},"optTol":{"type":"double","id":4,"options":{"default":1e-8}},"optAcceptableTol":{"type":"double","id":5,"options":{"default":0.000001}},"optAcceptableIteration":{"type":"uint32","id":6,"options":{"default":15}},"weightCurveLength":{"type":"double","id":7,"options":{"default":1}},"weightKappa":{"type":"double","id":8,"options":{"default":1}},"weightDkappa":{"type":"double","id":9,"options":{"default":100}}}},"DiscretePointsSmootherConfig":{"oneofs":{"SmootherConfig":{"oneof":["cosThetaSmoothing","femPosDeviationSmoothing"]}},"fields":{"smoothingMethod":{"type":"SmoothingMethod","id":3,"options":{"default":"FEM_POS_DEVIATION_SMOOTHING"}},"cosThetaSmoothing":{"type":"CosThetaSmootherConfig","id":4},"femPosDeviationSmoothing":{"type":"FemPosDeviationSmootherConfig","id":5}},"nested":{"SmoothingMethod":{"values":{"NOT_DEFINED":0,"COS_THETA_SMOOTHING":1,"FEM_POS_DEVIATION_SMOOTHING":2}}}},"ReferenceLineSmootherConfig":{"oneofs":{"SmootherConfig":{"oneof":["qpSpline","spiral","discretePoints"]}},"fields":{"maxConstraintInterval":{"type":"double","id":1,"options":{"default":5}},"longitudinalBoundaryBound":{"type":"double","id":2,"options":{"default":1}},"maxLateralBoundaryBound":{"type":"double","id":3,"options":{"default":0.5}},"minLateralBoundaryBound":{"type":"double","id":4,"options":{"default":0.2}},"numOfTotalPoints":{"type":"uint32","id":5,"options":{"default":500}},"curbShift":{"type":"double","id":6,"options":{"default":0.2}},"lateralBuffer":{"type":"double","id":7,"options":{"default":0.2}},"resolution":{"type":"double","id":8,"options":{"default":0.02}},"qpSpline":{"type":"QpSplineSmootherConfig","id":20},"spiral":{"type":"SpiralSmootherConfig","id":21},"discretePoints":{"type":"DiscretePointsSmootherConfig","id":22}}},"RuleBasedStopDeciderConfig":{"fields":{"maxAdcStopSpeed":{"type":"double","id":1,"options":{"default":0.3}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":0.5}},"searchBeamLength":{"type":"double","id":3,"options":{"default":5}},"searchBeamRadiusIntensity":{"type":"double","id":4,"options":{"default":0.08}},"searchRange":{"type":"double","id":5,"options":{"default":3.14}},"isBlockAngleThreshold":{"type":"double","id":6,"options":{"default":1.57}},"approachDistanceForLaneChange":{"type":"double","id":10,"options":{"default":80}},"urgentDistanceForLaneChange":{"type":"double","id":11,"options":{"default":50}}}},"SLBoundary":{"fields":{"startS":{"type":"double","id":1},"endS":{"type":"double","id":2},"startL":{"type":"double","id":3},"endL":{"type":"double","id":4},"boundaryPoint":{"rule":"repeated","type":"apollo.common.SLPoint","id":5}}},"SpeedBoundsDeciderConfig":{"fields":{"totalTime":{"type":"double","id":1,"options":{"default":7}},"boundaryBuffer":{"type":"double","id":2,"options":{"default":0.1}},"highSpeedCentricAccelerationLimit":{"type":"double","id":3,"options":{"default":1.2}},"lowSpeedCentricAccelerationLimit":{"type":"double","id":4,"options":{"default":1.4}},"highSpeedThreshold":{"type":"double","id":5,"options":{"default":20}},"lowSpeedThreshold":{"type":"double","id":6,"options":{"default":7}},"minimalKappa":{"type":"double","id":7,"options":{"default":0.00001}},"pointExtension":{"type":"double","id":8,"options":{"default":1}},"lowestSpeed":{"type":"double","id":9,"options":{"default":2.5}},"numPointsToAvgKappa":{"type":"uint32","id":10,"options":{"default":4}},"collisionSafetyRange":{"type":"double","id":11,"options":{"default":1}},"staticObsNudgeSpeedRatio":{"type":"double","id":12},"dynamicObsNudgeSpeedRatio":{"type":"double","id":13},"centriJerkSpeedCoeff":{"type":"double","id":14}}},"SpiralCurveConfig":{"fields":{"simpsonSize":{"type":"int32","id":1,"options":{"default":9}},"newtonRaphsonTol":{"type":"double","id":2,"options":{"default":0.01}},"newtonRaphsonMaxIter":{"type":"int32","id":3,"options":{"default":20}}}},"STBoundsDeciderConfig":{"fields":{"totalTime":{"type":"double","id":1,"options":{"default":7}}}},"STDrivableBoundaryInstance":{"fields":{"t":{"type":"double","id":1},"sLower":{"type":"double","id":2},"sUpper":{"type":"double","id":3},"vObsLower":{"type":"double","id":4},"vObsUpper":{"type":"double","id":5}}},"STDrivableBoundary":{"fields":{"stBoundary":{"rule":"repeated","type":"STDrivableBoundaryInstance","id":1}}},"BacksideVehicleConfig":{"fields":{"backsideLaneWidth":{"type":"double","id":1,"options":{"default":4}}}},"ChangeLaneConfig":{"fields":{"minOvertakeDistance":{"type":"double","id":1,"options":{"default":10}},"minOvertakeTime":{"type":"double","id":2,"options":{"default":2}},"enableGuardObstacle":{"type":"bool","id":3,"options":{"default":false}},"guardDistance":{"type":"double","id":4,"options":{"default":100}},"minGuardSpeed":{"type":"double","id":5,"options":{"default":1}}}},"CreepConfig":{"fields":{"enabled":{"type":"bool","id":1},"creepDistanceToStopLine":{"type":"double","id":2,"options":{"default":1}},"stopDistance":{"type":"double","id":3,"options":{"default":0.5}},"speedLimit":{"type":"double","id":4,"options":{"default":1}},"maxValidStopDistance":{"type":"double","id":5,"options":{"default":0.3}},"minBoundaryT":{"type":"double","id":6,"options":{"default":6}},"minBoundaryS":{"type":"double","id":7,"options":{"default":3}}}},"CrosswalkConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":1}},"maxStopDeceleration":{"type":"double","id":2,"options":{"default":4}},"minPassSDistance":{"type":"double","id":3,"options":{"default":1}},"maxValidStopDistance":{"type":"double","id":4,"options":{"default":3}},"expandSDistance":{"type":"double","id":5,"options":{"default":2}},"stopStrictLDistance":{"type":"double","id":6,"options":{"default":4}},"stopLooseLDistance":{"type":"double","id":7,"options":{"default":5}},"stopTimeout":{"type":"double","id":8,"options":{"default":10}}}},"DestinationConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":0.5}}}},"KeepClearConfig":{"fields":{"enableKeepClearZone":{"type":"bool","id":1,"options":{"default":true}},"enableJunction":{"type":"bool","id":2,"options":{"default":true}},"minPassSDistance":{"type":"double","id":3,"options":{"default":2}},"alignWithTrafficSignTolerance":{"type":"double","id":4,"options":{"default":4.5}}}},"ReferenceLineEndConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":0.5}},"minReferenceLineRemainLength":{"type":"double","id":2,"options":{"default":50}}}},"ReroutingConfig":{"fields":{"cooldownTime":{"type":"double","id":1,"options":{"default":3}},"prepareReroutingTime":{"type":"double","id":2,"options":{"default":2}}}},"StopSignConfig":{"fields":{"enabled":{"type":"bool","id":1,"options":{"default":true}},"stopDistance":{"type":"double","id":2,"options":{"default":1}}}},"TrafficLightConfig":{"fields":{"enabled":{"type":"bool","id":1,"options":{"default":true}},"stopDistance":{"type":"double","id":2,"options":{"default":1}},"maxStopDeceleration":{"type":"double","id":3,"options":{"default":4}}}},"YieldSignConfig":{"fields":{"enabled":{"type":"bool","id":1,"options":{"default":true}},"stopDistance":{"type":"double","id":2,"options":{"default":1}},"startWatchDistance":{"type":"double","id":3,"options":{"default":2}}}},"TrafficRuleConfig":{"oneofs":{"config":{"oneof":["backsideVehicle","changeLane","crosswalk","destination","keepClear","referenceLineEnd","rerouting","stopSign","trafficLight","yieldSign"]}},"fields":{"ruleId":{"type":"RuleId","id":1},"enabled":{"type":"bool","id":2},"backsideVehicle":{"type":"BacksideVehicleConfig","id":3},"changeLane":{"type":"ChangeLaneConfig","id":4},"crosswalk":{"type":"CrosswalkConfig","id":5},"destination":{"type":"DestinationConfig","id":6},"keepClear":{"type":"KeepClearConfig","id":7},"referenceLineEnd":{"type":"ReferenceLineEndConfig","id":8},"rerouting":{"type":"ReroutingConfig","id":9},"stopSign":{"type":"StopSignConfig","id":10},"trafficLight":{"type":"TrafficLightConfig","id":11},"yieldSign":{"type":"YieldSignConfig","id":12}},"nested":{"RuleId":{"values":{"BACKSIDE_VEHICLE":1,"CHANGE_LANE":2,"CROSSWALK":3,"DESTINATION":4,"KEEP_CLEAR":5,"REFERENCE_LINE_END":6,"REROUTING":7,"STOP_SIGN":8,"TRAFFIC_LIGHT":9,"YIELD_SIGN":10}}}},"TrafficRuleConfigs":{"fields":{"config":{"rule":"repeated","type":"TrafficRuleConfig","id":1}}}}},"planning_internal":{"nested":{"Debug":{"fields":{"planningData":{"type":"PlanningData","id":2}}},"SpeedPlan":{"fields":{"name":{"type":"string","id":1},"speedPoint":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":2}}},"StGraphBoundaryDebug":{"fields":{"name":{"type":"string","id":1},"point":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":2},"type":{"type":"StBoundaryType","id":3}},"nested":{"StBoundaryType":{"values":{"ST_BOUNDARY_TYPE_UNKNOWN":1,"ST_BOUNDARY_TYPE_STOP":2,"ST_BOUNDARY_TYPE_FOLLOW":3,"ST_BOUNDARY_TYPE_YIELD":4,"ST_BOUNDARY_TYPE_OVERTAKE":5,"ST_BOUNDARY_TYPE_KEEP_CLEAR":6,"ST_BOUNDARY_TYPE_DRIVABLE_REGION":7}}}},"SLFrameDebug":{"fields":{"name":{"type":"string","id":1},"sampledS":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}},"staticObstacleLowerBound":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}},"dynamicObstacleLowerBound":{"rule":"repeated","type":"double","id":4,"options":{"packed":false}},"staticObstacleUpperBound":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"dynamicObstacleUpperBound":{"rule":"repeated","type":"double","id":6,"options":{"packed":false}},"mapLowerBound":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"mapUpperBound":{"rule":"repeated","type":"double","id":8,"options":{"packed":false}},"slPath":{"rule":"repeated","type":"apollo.common.SLPoint","id":9},"aggregatedBoundaryS":{"rule":"repeated","type":"double","id":10,"options":{"packed":false}},"aggregatedBoundaryLow":{"rule":"repeated","type":"double","id":11,"options":{"packed":false}},"aggregatedBoundaryHigh":{"rule":"repeated","type":"double","id":12,"options":{"packed":false}}}},"STGraphDebug":{"fields":{"name":{"type":"string","id":1},"boundary":{"rule":"repeated","type":"StGraphBoundaryDebug","id":2},"speedLimit":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":3},"speedProfile":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":4},"speedConstraint":{"type":"STGraphSpeedConstraint","id":5},"kernelCruiseRef":{"type":"STGraphKernelCuiseRef","id":6},"kernelFollowRef":{"type":"STGraphKernelFollowRef","id":7}},"nested":{"STGraphSpeedConstraint":{"fields":{"t":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"lowerBound":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}},"upperBound":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}}}},"STGraphKernelCuiseRef":{"fields":{"t":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"cruiseLineS":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}}}},"STGraphKernelFollowRef":{"fields":{"t":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"followLineS":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}}}}}},"SignalLightDebug":{"fields":{"adcSpeed":{"type":"double","id":1},"adcFrontS":{"type":"double","id":2},"signal":{"rule":"repeated","type":"SignalDebug","id":3}},"nested":{"SignalDebug":{"fields":{"lightId":{"type":"string","id":1},"color":{"type":"apollo.perception.TrafficLight.Color","id":2},"lightStopS":{"type":"double","id":3},"adcStopDeceleration":{"type":"double","id":4},"isStopWallCreated":{"type":"bool","id":5}}}}},"DecisionTag":{"fields":{"deciderTag":{"type":"string","id":1},"decision":{"type":"apollo.planning.ObjectDecisionType","id":2}}},"ObstacleDebug":{"fields":{"id":{"type":"string","id":1},"slBoundary":{"type":"apollo.planning.SLBoundary","id":2},"decisionTag":{"rule":"repeated","type":"DecisionTag","id":3},"verticesXCoords":{"rule":"repeated","type":"double","id":4,"options":{"packed":false}},"verticesYCoords":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}}}},"ReferenceLineDebug":{"fields":{"id":{"type":"string","id":1},"length":{"type":"double","id":2},"cost":{"type":"double","id":3},"isChangeLanePath":{"type":"bool","id":4},"isDrivable":{"type":"bool","id":5},"isProtected":{"type":"bool","id":6},"isOffroad":{"type":"bool","id":7},"minimumBoundary":{"type":"double","id":8},"averageKappa":{"type":"double","id":9,"options":{"deprecated":true}},"averageDkappa":{"type":"double","id":10,"options":{"deprecated":true}},"kappaRms":{"type":"double","id":11},"dkappaRms":{"type":"double","id":12},"kappaMaxAbs":{"type":"double","id":13},"dkappaMaxAbs":{"type":"double","id":14},"averageOffset":{"type":"double","id":15}}},"SampleLayerDebug":{"fields":{"slPoint":{"rule":"repeated","type":"apollo.common.SLPoint","id":1}}},"DpPolyGraphDebug":{"fields":{"sampleLayer":{"rule":"repeated","type":"SampleLayerDebug","id":1},"minCostPoint":{"rule":"repeated","type":"apollo.common.SLPoint","id":2}}},"ScenarioDebug":{"fields":{"scenarioType":{"type":"apollo.planning.ScenarioConfig.ScenarioType","id":1},"stageType":{"type":"apollo.planning.ScenarioConfig.StageType","id":2},"msg":{"type":"string","id":3}}},"Trajectories":{"fields":{"trajectory":{"rule":"repeated","type":"apollo.common.Trajectory","id":1}}},"OpenSpaceDebug":{"fields":{"trajectories":{"type":"apollo.planning_internal.Trajectories","id":1},"warmStartTrajectory":{"type":"apollo.common.VehicleMotion","id":2},"smoothedTrajectory":{"type":"apollo.common.VehicleMotion","id":3},"warmStartDualLambda":{"rule":"repeated","type":"double","id":4,"options":{"packed":false}},"warmStartDualMiu":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"optimizedDualLambda":{"rule":"repeated","type":"double","id":6,"options":{"packed":false}},"optimizedDualMiu":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"xyBoundary":{"rule":"repeated","type":"double","id":8,"options":{"packed":false}},"obstacles":{"rule":"repeated","type":"apollo.planning_internal.ObstacleDebug","id":9},"roiShiftPoint":{"type":"apollo.common.TrajectoryPoint","id":10},"endPoint":{"type":"apollo.common.TrajectoryPoint","id":11},"partitionedTrajectories":{"type":"apollo.planning_internal.Trajectories","id":12},"chosenTrajectory":{"type":"apollo.planning_internal.Trajectories","id":13},"isFallbackTrajectory":{"type":"bool","id":14},"fallbackTrajectory":{"type":"apollo.planning_internal.Trajectories","id":15},"trajectoryStitchingPoint":{"type":"apollo.common.TrajectoryPoint","id":16},"futureCollisionPoint":{"type":"apollo.common.TrajectoryPoint","id":17}}},"SmootherDebug":{"fields":{"isSmoothed":{"type":"bool","id":1},"type":{"type":"SmootherType","id":2,"options":{"default":"SMOOTHER_NONE"}},"reason":{"type":"string","id":3}},"nested":{"SmootherType":{"values":{"SMOOTHER_NONE":1,"SMOOTHER_CLOSE_STOP":2}}}},"PullOverDebug":{"fields":{"position":{"type":"apollo.common.PointENU","id":1},"theta":{"type":"double","id":2},"lengthFront":{"type":"double","id":3},"lengthBack":{"type":"double","id":4},"widthLeft":{"type":"double","id":5},"widthRight":{"type":"double","id":6}}},"PlanningData":{"fields":{"adcPosition":{"type":"apollo.localization.LocalizationEstimate","id":7},"chassis":{"type":"apollo.canbus.Chassis","id":8},"routing":{"type":"apollo.routing.RoutingResponse","id":9},"initPoint":{"type":"apollo.common.TrajectoryPoint","id":10},"path":{"rule":"repeated","type":"apollo.common.Path","id":6},"speedPlan":{"rule":"repeated","type":"SpeedPlan","id":13},"stGraph":{"rule":"repeated","type":"STGraphDebug","id":14},"slFrame":{"rule":"repeated","type":"SLFrameDebug","id":15},"predictionHeader":{"type":"apollo.common.Header","id":16},"signalLight":{"type":"SignalLightDebug","id":17},"obstacle":{"rule":"repeated","type":"ObstacleDebug","id":18},"referenceLine":{"rule":"repeated","type":"ReferenceLineDebug","id":19},"dpPolyGraph":{"type":"DpPolyGraphDebug","id":20},"latticeStImage":{"type":"LatticeStTraining","id":21},"relativeMap":{"type":"apollo.relative_map.MapMsg","id":22},"autoTuningTrainingData":{"type":"AutoTuningTrainingData","id":23},"frontClearDistance":{"type":"double","id":24},"chart":{"rule":"repeated","type":"apollo.dreamview.Chart","id":25},"scenario":{"type":"ScenarioDebug","id":26},"openSpace":{"type":"OpenSpaceDebug","id":27},"smoother":{"type":"SmootherDebug","id":28},"pullOver":{"type":"PullOverDebug","id":29}}},"LatticeStPixel":{"fields":{"s":{"type":"int32","id":1},"t":{"type":"int32","id":2},"r":{"type":"uint32","id":3},"g":{"type":"uint32","id":4},"b":{"type":"uint32","id":5}}},"LatticeStTraining":{"fields":{"pixel":{"rule":"repeated","type":"LatticeStPixel","id":1},"timestamp":{"type":"double","id":2},"annotation":{"type":"string","id":3},"numSGrids":{"type":"uint32","id":4},"numTGrids":{"type":"uint32","id":5},"sResolution":{"type":"double","id":6},"tResolution":{"type":"double","id":7}}},"CostComponents":{"fields":{"costComponent":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}}}},"AutoTuningTrainingData":{"fields":{"teacherComponent":{"type":"CostComponents","id":1},"studentComponent":{"type":"CostComponents","id":2}}},"CloudReferenceLineRequest":{"fields":{"laneSegment":{"rule":"repeated","type":"apollo.routing.LaneSegment","id":1}}},"CloudReferenceLineRoutingRequest":{"fields":{"routing":{"type":"apollo.routing.RoutingResponse","id":1}}},"CloudReferenceLineResponse":{"fields":{"segment":{"rule":"repeated","type":"apollo.common.Path","id":1}}}}},"perception":{"nested":{"TrafficLightBox":{"fields":{"x":{"type":"int32","id":1},"y":{"type":"int32","id":2},"width":{"type":"int32","id":3},"height":{"type":"int32","id":4},"color":{"type":"TrafficLight.Color","id":5},"selected":{"type":"bool","id":6},"cameraName":{"type":"string","id":7}}},"TrafficLightDebug":{"fields":{"cropbox":{"type":"TrafficLightBox","id":1},"box":{"rule":"repeated","type":"TrafficLightBox","id":2},"signalNum":{"type":"int32","id":3},"validPos":{"type":"int32","id":4},"tsDiffPos":{"type":"double","id":5},"tsDiffSys":{"type":"double","id":6},"projectError":{"type":"int32","id":7},"distanceToStopLine":{"type":"double","id":8},"cameraId":{"type":"int32","id":9,"options":{"deprecated":true}},"cropRoi":{"rule":"repeated","type":"TrafficLightBox","id":10},"projectedRoi":{"rule":"repeated","type":"TrafficLightBox","id":11},"rectifiedRoi":{"rule":"repeated","type":"TrafficLightBox","id":12},"debugRoi":{"rule":"repeated","type":"TrafficLightBox","id":13}}},"TrafficLight":{"fields":{"color":{"type":"Color","id":1},"id":{"type":"string","id":2},"confidence":{"type":"double","id":3,"options":{"default":1}},"trackingTime":{"type":"double","id":4},"blink":{"type":"bool","id":5},"remainingTime":{"type":"double","id":6}},"nested":{"Color":{"values":{"UNKNOWN":0,"RED":1,"YELLOW":2,"GREEN":3,"BLACK":4}}}},"TrafficLightDetection":{"fields":{"header":{"type":"apollo.common.Header","id":2},"trafficLight":{"rule":"repeated","type":"TrafficLight","id":1},"trafficLightDebug":{"type":"TrafficLightDebug","id":3},"containLights":{"type":"bool","id":4},"cameraId":{"type":"CameraID","id":5}},"nested":{"CameraID":{"values":{"CAMERA_FRONT_LONG":0,"CAMERA_FRONT_NARROW":1,"CAMERA_FRONT_SHORT":2,"CAMERA_FRONT_WIDE":3}}}},"BBox2D":{"fields":{"xmin":{"type":"double","id":1},"ymin":{"type":"double","id":2},"xmax":{"type":"double","id":3},"ymax":{"type":"double","id":4}}},"LightStatus":{"fields":{"brakeVisible":{"type":"double","id":1},"brakeSwitchOn":{"type":"double","id":2},"leftTurnVisible":{"type":"double","id":3},"leftTurnSwitchOn":{"type":"double","id":4},"rightTurnVisible":{"type":"double","id":5},"rightTurnSwitchOn":{"type":"double","id":6}}},"SensorMeasurement":{"fields":{"sensorId":{"type":"string","id":1},"id":{"type":"int32","id":2},"position":{"type":"apollo.common.Point3D","id":3},"theta":{"type":"double","id":4},"length":{"type":"double","id":5},"width":{"type":"double","id":6},"height":{"type":"double","id":7},"velocity":{"type":"apollo.common.Point3D","id":8},"type":{"type":"PerceptionObstacle.Type","id":9},"subType":{"type":"PerceptionObstacle.SubType","id":10},"timestamp":{"type":"double","id":11},"box":{"type":"BBox2D","id":12}}},"PerceptionObstacle":{"fields":{"id":{"type":"int32","id":1},"position":{"type":"apollo.common.Point3D","id":2},"theta":{"type":"double","id":3},"velocity":{"type":"apollo.common.Point3D","id":4},"length":{"type":"double","id":5},"width":{"type":"double","id":6},"height":{"type":"double","id":7},"polygonPoint":{"rule":"repeated","type":"apollo.common.Point3D","id":8},"trackingTime":{"type":"double","id":9},"type":{"type":"Type","id":10},"timestamp":{"type":"double","id":11},"pointCloud":{"rule":"repeated","type":"double","id":12},"confidence":{"type":"double","id":13,"options":{"deprecated":true}},"confidenceType":{"type":"ConfidenceType","id":14,"options":{"deprecated":true}},"drops":{"rule":"repeated","type":"apollo.common.Point3D","id":15,"options":{"deprecated":true}},"acceleration":{"type":"apollo.common.Point3D","id":16},"anchorPoint":{"type":"apollo.common.Point3D","id":17},"bbox2d":{"type":"BBox2D","id":18},"subType":{"type":"SubType","id":19},"measurements":{"rule":"repeated","type":"SensorMeasurement","id":20},"heightAboveGround":{"type":"double","id":21,"options":{"default":null}},"positionCovariance":{"rule":"repeated","type":"double","id":22},"velocityCovariance":{"rule":"repeated","type":"double","id":23},"accelerationCovariance":{"rule":"repeated","type":"double","id":24},"lightStatus":{"type":"LightStatus","id":25}},"nested":{"Type":{"values":{"UNKNOWN":0,"UNKNOWN_MOVABLE":1,"UNKNOWN_UNMOVABLE":2,"PEDESTRIAN":3,"BICYCLE":4,"VEHICLE":5}},"ConfidenceType":{"values":{"CONFIDENCE_UNKNOWN":0,"CONFIDENCE_CNN":1,"CONFIDENCE_RADAR":2}},"SubType":{"values":{"ST_UNKNOWN":0,"ST_UNKNOWN_MOVABLE":1,"ST_UNKNOWN_UNMOVABLE":2,"ST_CAR":3,"ST_VAN":4,"ST_TRUCK":5,"ST_BUS":6,"ST_CYCLIST":7,"ST_MOTORCYCLIST":8,"ST_TRICYCLIST":9,"ST_PEDESTRIAN":10,"ST_TRAFFICCONE":11}}}},"LaneMarker":{"fields":{"laneType":{"type":"apollo.hdmap.LaneBoundaryType.Type","id":1},"quality":{"type":"double","id":2},"modelDegree":{"type":"int32","id":3},"c0Position":{"type":"double","id":4},"c1HeadingAngle":{"type":"double","id":5},"c2Curvature":{"type":"double","id":6},"c3CurvatureDerivative":{"type":"double","id":7},"viewRange":{"type":"double","id":8},"longitudeStart":{"type":"double","id":9},"longitudeEnd":{"type":"double","id":10}}},"LaneMarkers":{"fields":{"leftLaneMarker":{"type":"LaneMarker","id":1},"rightLaneMarker":{"type":"LaneMarker","id":2},"nextLeftLaneMarker":{"rule":"repeated","type":"LaneMarker","id":3},"nextRightLaneMarker":{"rule":"repeated","type":"LaneMarker","id":4}}},"CIPVInfo":{"fields":{"cipvId":{"type":"int32","id":1},"potentialCipvId":{"rule":"repeated","type":"int32","id":2,"options":{"packed":false}}}},"PerceptionObstacles":{"fields":{"perceptionObstacle":{"rule":"repeated","type":"PerceptionObstacle","id":1},"header":{"type":"apollo.common.Header","id":2},"errorCode":{"type":"apollo.common.ErrorCode","id":3,"options":{"default":"OK"}},"laneMarker":{"type":"LaneMarkers","id":4},"cipvInfo":{"type":"CIPVInfo","id":5}}}}},"routing":{"nested":{"LaneWaypoint":{"fields":{"id":{"type":"string","id":1},"s":{"type":"double","id":2},"pose":{"type":"apollo.common.PointENU","id":3}}},"LaneSegment":{"fields":{"id":{"type":"string","id":1},"startS":{"type":"double","id":2},"endS":{"type":"double","id":3}}},"RoutingRequest":{"fields":{"header":{"type":"apollo.common.Header","id":1},"waypoint":{"rule":"repeated","type":"LaneWaypoint","id":2},"blacklistedLane":{"rule":"repeated","type":"LaneSegment","id":3},"blacklistedRoad":{"rule":"repeated","type":"string","id":4},"broadcast":{"type":"bool","id":5,"options":{"default":true}},"parkingSpace":{"type":"apollo.hdmap.ParkingSpace","id":6}}},"Measurement":{"fields":{"distance":{"type":"double","id":1}}},"ChangeLaneType":{"values":{"FORWARD":0,"LEFT":1,"RIGHT":2}},"Passage":{"fields":{"segment":{"rule":"repeated","type":"LaneSegment","id":1},"canExit":{"type":"bool","id":2},"changeLaneType":{"type":"ChangeLaneType","id":3,"options":{"default":"FORWARD"}}}},"RoadSegment":{"fields":{"id":{"type":"string","id":1},"passage":{"rule":"repeated","type":"Passage","id":2}}},"RoutingResponse":{"fields":{"header":{"type":"apollo.common.Header","id":1},"road":{"rule":"repeated","type":"RoadSegment","id":2},"measurement":{"type":"Measurement","id":3},"routingRequest":{"type":"RoutingRequest","id":4},"mapVersion":{"type":"bytes","id":5},"status":{"type":"apollo.common.StatusPb","id":6}}}}},"hdmap":{"nested":{"Projection":{"fields":{"proj":{"type":"string","id":1}}},"Header":{"fields":{"version":{"type":"bytes","id":1},"date":{"type":"bytes","id":2},"projection":{"type":"Projection","id":3},"district":{"type":"bytes","id":4},"generation":{"type":"bytes","id":5},"revMajor":{"type":"bytes","id":6},"revMinor":{"type":"bytes","id":7},"left":{"type":"double","id":8},"top":{"type":"double","id":9},"right":{"type":"double","id":10},"bottom":{"type":"double","id":11},"vendor":{"type":"bytes","id":12}}},"Map":{"fields":{"header":{"type":"Header","id":1},"crosswalk":{"rule":"repeated","type":"Crosswalk","id":2},"junction":{"rule":"repeated","type":"Junction","id":3},"lane":{"rule":"repeated","type":"Lane","id":4},"stopSign":{"rule":"repeated","type":"StopSign","id":5},"signal":{"rule":"repeated","type":"Signal","id":6},"yield":{"rule":"repeated","type":"YieldSign","id":7},"overlap":{"rule":"repeated","type":"Overlap","id":8},"clearArea":{"rule":"repeated","type":"ClearArea","id":9},"speedBump":{"rule":"repeated","type":"SpeedBump","id":10},"road":{"rule":"repeated","type":"Road","id":11},"parkingSpace":{"rule":"repeated","type":"ParkingSpace","id":12},"pncJunction":{"rule":"repeated","type":"PNCJunction","id":13}}},"ClearArea":{"fields":{"id":{"type":"Id","id":1},"overlapId":{"rule":"repeated","type":"Id","id":2},"polygon":{"type":"Polygon","id":3}}},"Crosswalk":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}},"Polygon":{"fields":{"point":{"rule":"repeated","type":"apollo.common.PointENU","id":1}}},"LineSegment":{"fields":{"point":{"rule":"repeated","type":"apollo.common.PointENU","id":1}}},"CurveSegment":{"oneofs":{"curveType":{"oneof":["lineSegment"]}},"fields":{"lineSegment":{"type":"LineSegment","id":1},"s":{"type":"double","id":6},"startPosition":{"type":"apollo.common.PointENU","id":7},"heading":{"type":"double","id":8},"length":{"type":"double","id":9}}},"Curve":{"fields":{"segment":{"rule":"repeated","type":"CurveSegment","id":1}}},"Id":{"fields":{"id":{"type":"string","id":1}}},"Junction":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}},"LaneBoundaryType":{"fields":{"s":{"type":"double","id":1},"types":{"rule":"repeated","type":"Type","id":2,"options":{"packed":false}}},"nested":{"Type":{"values":{"UNKNOWN":0,"DOTTED_YELLOW":1,"DOTTED_WHITE":2,"SOLID_YELLOW":3,"SOLID_WHITE":4,"DOUBLE_YELLOW":5,"CURB":6}}}},"LaneBoundary":{"fields":{"curve":{"type":"Curve","id":1},"length":{"type":"double","id":2},"virtual":{"type":"bool","id":3},"boundaryType":{"rule":"repeated","type":"LaneBoundaryType","id":4}}},"LaneSampleAssociation":{"fields":{"s":{"type":"double","id":1},"width":{"type":"double","id":2}}},"Lane":{"fields":{"id":{"type":"Id","id":1},"centralCurve":{"type":"Curve","id":2},"leftBoundary":{"type":"LaneBoundary","id":3},"rightBoundary":{"type":"LaneBoundary","id":4},"length":{"type":"double","id":5},"speedLimit":{"type":"double","id":6},"overlapId":{"rule":"repeated","type":"Id","id":7},"predecessorId":{"rule":"repeated","type":"Id","id":8},"successorId":{"rule":"repeated","type":"Id","id":9},"leftNeighborForwardLaneId":{"rule":"repeated","type":"Id","id":10},"rightNeighborForwardLaneId":{"rule":"repeated","type":"Id","id":11},"type":{"type":"LaneType","id":12},"turn":{"type":"LaneTurn","id":13},"leftNeighborReverseLaneId":{"rule":"repeated","type":"Id","id":14},"rightNeighborReverseLaneId":{"rule":"repeated","type":"Id","id":15},"junctionId":{"type":"Id","id":16},"leftSample":{"rule":"repeated","type":"LaneSampleAssociation","id":17},"rightSample":{"rule":"repeated","type":"LaneSampleAssociation","id":18},"direction":{"type":"LaneDirection","id":19},"leftRoadSample":{"rule":"repeated","type":"LaneSampleAssociation","id":20},"rightRoadSample":{"rule":"repeated","type":"LaneSampleAssociation","id":21},"selfReverseLaneId":{"rule":"repeated","type":"Id","id":22}},"nested":{"LaneType":{"values":{"NONE":1,"CITY_DRIVING":2,"BIKING":3,"SIDEWALK":4,"PARKING":5,"SHOULDER":6}},"LaneTurn":{"values":{"NO_TURN":1,"LEFT_TURN":2,"RIGHT_TURN":3,"U_TURN":4}},"LaneDirection":{"values":{"FORWARD":1,"BACKWARD":2,"BIDIRECTION":3}}}},"LaneOverlapInfo":{"fields":{"startS":{"type":"double","id":1},"endS":{"type":"double","id":2},"isMerge":{"type":"bool","id":3},"regionOverlapId":{"type":"Id","id":4}}},"SignalOverlapInfo":{"fields":{}},"StopSignOverlapInfo":{"fields":{}},"CrosswalkOverlapInfo":{"fields":{"regionOverlapId":{"type":"Id","id":1}}},"JunctionOverlapInfo":{"fields":{}},"YieldOverlapInfo":{"fields":{}},"ClearAreaOverlapInfo":{"fields":{}},"SpeedBumpOverlapInfo":{"fields":{}},"ParkingSpaceOverlapInfo":{"fields":{}},"PNCJunctionOverlapInfo":{"fields":{}},"RegionOverlapInfo":{"fields":{"id":{"type":"Id","id":1},"polygon":{"rule":"repeated","type":"Polygon","id":2}}},"ObjectOverlapInfo":{"oneofs":{"overlapInfo":{"oneof":["laneOverlapInfo","signalOverlapInfo","stopSignOverlapInfo","crosswalkOverlapInfo","junctionOverlapInfo","yieldSignOverlapInfo","clearAreaOverlapInfo","speedBumpOverlapInfo","parkingSpaceOverlapInfo","pncJunctionOverlapInfo"]}},"fields":{"id":{"type":"Id","id":1},"laneOverlapInfo":{"type":"LaneOverlapInfo","id":3},"signalOverlapInfo":{"type":"SignalOverlapInfo","id":4},"stopSignOverlapInfo":{"type":"StopSignOverlapInfo","id":5},"crosswalkOverlapInfo":{"type":"CrosswalkOverlapInfo","id":6},"junctionOverlapInfo":{"type":"JunctionOverlapInfo","id":7},"yieldSignOverlapInfo":{"type":"YieldOverlapInfo","id":8},"clearAreaOverlapInfo":{"type":"ClearAreaOverlapInfo","id":9},"speedBumpOverlapInfo":{"type":"SpeedBumpOverlapInfo","id":10},"parkingSpaceOverlapInfo":{"type":"ParkingSpaceOverlapInfo","id":11},"pncJunctionOverlapInfo":{"type":"PNCJunctionOverlapInfo","id":12}}},"Overlap":{"fields":{"id":{"type":"Id","id":1},"object":{"rule":"repeated","type":"ObjectOverlapInfo","id":2},"regionOverlap":{"rule":"repeated","type":"RegionOverlapInfo","id":3}}},"ParkingSpace":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3},"heading":{"type":"double","id":4}}},"ParkingLot":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}},"Passage":{"fields":{"id":{"type":"Id","id":1},"signalId":{"rule":"repeated","type":"Id","id":2},"yieldId":{"rule":"repeated","type":"Id","id":3},"stopSignId":{"rule":"repeated","type":"Id","id":4},"laneId":{"rule":"repeated","type":"Id","id":5},"type":{"type":"Type","id":6}},"nested":{"Type":{"values":{"UNKNOWN":0,"ENTRANCE":1,"EXIT":2}}}},"PassageGroup":{"fields":{"id":{"type":"Id","id":1},"passage":{"rule":"repeated","type":"Passage","id":2}}},"PNCJunction":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3},"passageGroup":{"rule":"repeated","type":"PassageGroup","id":4}}},"BoundaryEdge":{"fields":{"curve":{"type":"Curve","id":1},"type":{"type":"Type","id":2}},"nested":{"Type":{"values":{"UNKNOWN":0,"NORMAL":1,"LEFT_BOUNDARY":2,"RIGHT_BOUNDARY":3}}}},"BoundaryPolygon":{"fields":{"edge":{"rule":"repeated","type":"BoundaryEdge","id":1}}},"RoadBoundary":{"fields":{"outerPolygon":{"type":"BoundaryPolygon","id":1},"hole":{"rule":"repeated","type":"BoundaryPolygon","id":2}}},"RoadROIBoundary":{"fields":{"id":{"type":"Id","id":1},"roadBoundaries":{"rule":"repeated","type":"RoadBoundary","id":2}}},"RoadSection":{"fields":{"id":{"type":"Id","id":1},"laneId":{"rule":"repeated","type":"Id","id":2},"boundary":{"type":"RoadBoundary","id":3}}},"Road":{"fields":{"id":{"type":"Id","id":1},"section":{"rule":"repeated","type":"RoadSection","id":2},"junctionId":{"type":"Id","id":3},"type":{"type":"Type","id":4}},"nested":{"Type":{"values":{"UNKNOWN":0,"HIGHWAY":1,"CITY_ROAD":2,"PARK":3}}}},"Subsignal":{"fields":{"id":{"type":"Id","id":1},"type":{"type":"Type","id":2},"location":{"type":"apollo.common.PointENU","id":3}},"nested":{"Type":{"values":{"UNKNOWN":1,"CIRCLE":2,"ARROW_LEFT":3,"ARROW_FORWARD":4,"ARROW_RIGHT":5,"ARROW_LEFT_AND_FORWARD":6,"ARROW_RIGHT_AND_FORWARD":7,"ARROW_U_TURN":8}}}},"SignInfo":{"fields":{"type":{"type":"Type","id":1}},"nested":{"Type":{"values":{"None":0,"NO_RIGHT_TURN_ON_RED":1}}}},"Signal":{"fields":{"id":{"type":"Id","id":1},"boundary":{"type":"Polygon","id":2},"subsignal":{"rule":"repeated","type":"Subsignal","id":3},"overlapId":{"rule":"repeated","type":"Id","id":4},"type":{"type":"Type","id":5},"stopLine":{"rule":"repeated","type":"Curve","id":6},"signInfo":{"rule":"repeated","type":"SignInfo","id":7}},"nested":{"Type":{"values":{"UNKNOWN":1,"MIX_2_HORIZONTAL":2,"MIX_2_VERTICAL":3,"MIX_3_HORIZONTAL":4,"MIX_3_VERTICAL":5,"SINGLE":6}}}},"SpeedBump":{"fields":{"id":{"type":"Id","id":1},"overlapId":{"rule":"repeated","type":"Id","id":2},"position":{"rule":"repeated","type":"Curve","id":3}}},"SpeedControl":{"fields":{"name":{"type":"string","id":1},"polygon":{"type":"apollo.hdmap.Polygon","id":2},"speedLimit":{"type":"double","id":3}}},"SpeedControls":{"fields":{"speedControl":{"rule":"repeated","type":"SpeedControl","id":1}}},"StopSign":{"fields":{"id":{"type":"Id","id":1},"stopLine":{"rule":"repeated","type":"Curve","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3},"type":{"type":"StopType","id":4}},"nested":{"StopType":{"values":{"UNKNOWN":0,"ONE_WAY":1,"TWO_WAY":2,"THREE_WAY":3,"FOUR_WAY":4,"ALL_WAY":5}}}},"YieldSign":{"fields":{"id":{"type":"Id","id":1},"stopLine":{"rule":"repeated","type":"Curve","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}}}},"prediction":{"nested":{"Lane":{"fields":{"currentLaneFeature":{"rule":"repeated","type":"LaneFeature","id":1},"laneFeature":{"type":"LaneFeature","id":2},"nearbyLaneFeature":{"rule":"repeated","type":"LaneFeature","id":3},"laneGraph":{"type":"LaneGraph","id":4},"laneGraphOrdered":{"type":"LaneGraph","id":5},"labelUpdateTimeDelta":{"type":"double","id":26}}},"LaneFeature":{"fields":{"laneId":{"type":"string","id":1},"laneTurnType":{"type":"uint32","id":2},"laneS":{"type":"double","id":3},"laneL":{"type":"double","id":4},"angleDiff":{"type":"double","id":5},"distToLeftBoundary":{"type":"double","id":6},"distToRightBoundary":{"type":"double","id":7},"laneHeading":{"type":"double","id":8},"laneType":{"type":"apollo.hdmap.Lane.LaneType","id":9}}},"JunctionExit":{"fields":{"exitLaneId":{"type":"string","id":1},"exitPosition":{"type":"apollo.common.Point3D","id":2},"exitHeading":{"type":"double","id":3},"exitWidth":{"type":"double","id":4}}},"JunctionFeature":{"fields":{"junctionId":{"type":"string","id":1},"junctionRange":{"type":"double","id":2},"enterLane":{"type":"LaneFeature","id":3},"junctionExit":{"rule":"repeated","type":"JunctionExit","id":4},"junctionMlpFeature":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"junctionMlpLabel":{"rule":"repeated","type":"int32","id":6,"options":{"packed":false}},"junctionMlpProbability":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"startLaneId":{"rule":"repeated","type":"string","id":8}}},"ObstaclePriority":{"fields":{"priority":{"type":"Priority","id":25,"options":{"default":"NORMAL"}}},"nested":{"Priority":{"values":{"CAUTION":1,"NORMAL":2,"IGNORE":3}}}},"Trajectory":{"fields":{"probability":{"type":"double","id":1},"trajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":2}}},"Feature":{"fields":{"id":{"type":"int32","id":1},"polygonPoint":{"rule":"repeated","type":"apollo.common.Point3D","id":30},"position":{"type":"apollo.common.Point3D","id":2},"frontPosition":{"type":"apollo.common.Point3D","id":27},"velocity":{"type":"apollo.common.Point3D","id":3},"rawVelocity":{"type":"apollo.common.Point3D","id":28},"acceleration":{"type":"apollo.common.Point3D","id":4},"velocityHeading":{"type":"double","id":5},"speed":{"type":"double","id":6},"acc":{"type":"double","id":7},"theta":{"type":"double","id":8},"length":{"type":"double","id":9},"width":{"type":"double","id":10},"height":{"type":"double","id":11},"trackingTime":{"type":"double","id":12},"timestamp":{"type":"double","id":13},"lane":{"type":"Lane","id":14},"junctionFeature":{"type":"JunctionFeature","id":26},"tPosition":{"type":"apollo.common.Point3D","id":16},"tVelocity":{"type":"apollo.common.Point3D","id":17,"options":{"deprecated":true}},"tVelocityHeading":{"type":"double","id":18,"options":{"deprecated":true}},"tSpeed":{"type":"double","id":19,"options":{"deprecated":true}},"tAcceleration":{"type":"apollo.common.Point3D","id":20,"options":{"deprecated":true}},"tAcc":{"type":"double","id":21,"options":{"deprecated":true}},"isStill":{"type":"bool","id":22,"options":{"default":false}},"type":{"type":"apollo.perception.PerceptionObstacle.Type","id":23},"labelUpdateTimeDelta":{"type":"double","id":24},"priority":{"type":"ObstaclePriority","id":25},"isNearJunction":{"type":"bool","id":29,"options":{"default":false}},"futureTrajectoryPoints":{"rule":"repeated","type":"PredictionTrajectoryPoint","id":31},"shortTermPredictedTrajectoryPoints":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":32},"predictedTrajectory":{"rule":"repeated","type":"Trajectory","id":33},"adcTrajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":34}}},"ObstacleHistory":{"fields":{"feature":{"rule":"repeated","type":"Feature","id":1},"isTrainable":{"type":"bool","id":2,"options":{"default":false}}}},"FrameEnv":{"fields":{"timestamp":{"type":"double","id":1},"egoHistory":{"type":"ObstacleHistory","id":2},"obstaclesHistory":{"rule":"repeated","type":"ObstacleHistory","id":3}}},"LanePoint":{"fields":{"position":{"type":"apollo.common.Point3D","id":1},"heading":{"type":"double","id":2,"options":{"default":0}},"width":{"type":"double","id":3,"options":{"default":0}},"relativeS":{"type":"double","id":4,"options":{"default":0}},"relativeL":{"type":"double","id":5,"options":{"default":0}},"angleDiff":{"type":"double","id":6,"options":{"default":0}},"kappa":{"type":"double","id":7,"options":{"default":0}},"scenarioType":{"type":"ScenarioType","id":8},"speedLimit":{"type":"double","id":9}},"nested":{"ScenarioType":{"values":{"URBAN_ROAD":0,"JUNCTION":1,"HIGHWAY":2}}}},"LaneSegment":{"fields":{"laneId":{"type":"string","id":1},"startS":{"type":"double","id":2,"options":{"default":0}},"endS":{"type":"double","id":3,"options":{"default":0}},"laneTurnType":{"type":"uint32","id":4,"options":{"default":0}},"lanePoint":{"rule":"repeated","type":"LanePoint","id":5},"adcS":{"type":"double","id":7,"options":{"default":0}},"adcLanePointIdx":{"type":"int32","id":8,"options":{"default":0}},"totalLength":{"type":"double","id":6,"options":{"default":0}}}},"NearbyObstacle":{"fields":{"id":{"type":"int32","id":1},"s":{"type":"double","id":2},"l":{"type":"double","id":3}}},"StopSign":{"fields":{"stopSignId":{"type":"string","id":1},"laneId":{"type":"string","id":2},"laneS":{"type":"double","id":3},"laneSequenceS":{"type":"double","id":4}}},"LaneSequence":{"fields":{"laneSequenceId":{"type":"int32","id":1},"laneSegment":{"rule":"repeated","type":"LaneSegment","id":2},"adcLaneSegmentIdx":{"type":"int32","id":23,"options":{"default":0}},"pathPoint":{"rule":"repeated","type":"apollo.common.PathPoint","id":8},"laneType":{"type":"apollo.hdmap.Lane.LaneType","id":22},"laneS":{"type":"double","id":17},"laneL":{"type":"double","id":18},"vehicleOnLane":{"type":"bool","id":10},"nearbyObstacle":{"rule":"repeated","type":"NearbyObstacle","id":3},"stopSign":{"type":"StopSign","id":20},"rightOfWay":{"type":"int32","id":21},"features":{"type":"Features","id":4},"label":{"type":"int32","id":5,"options":{"default":0}},"probability":{"type":"double","id":6,"options":{"default":0}},"acceleration":{"type":"double","id":7,"options":{"default":0}},"timeToLaneCenter":{"type":"double","id":16},"timeToLaneEdge":{"type":"double","id":19},"behaviorType":{"type":"BehaviorType","id":9},"currLanePoint":{"rule":"repeated","type":"LanePoint","id":11},"leftNeighborPoint":{"rule":"repeated","type":"LanePoint","id":12},"rightNeighborPoint":{"rule":"repeated","type":"LanePoint","id":13},"leftNearbyObstacle":{"rule":"repeated","type":"NearbyObstacle","id":14},"rightNearbyObstacle":{"rule":"repeated","type":"NearbyObstacle","id":15}},"nested":{"Features":{"fields":{"mlpFeatures":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}}}},"BehaviorType":{"values":{"NOT_GOTO_LANE":1,"CONSTANT_SPEED":2,"SMALL_ACCELERATION":3,"LARGE_ACCELERATION":4,"SMALL_DECELERATION":5,"LARGE_DECELERATION":6}}}},"LaneGraph":{"fields":{"laneSequence":{"rule":"repeated","type":"LaneSequence","id":1}}},"LaneObstacle":{"fields":{"obstacleId":{"type":"int32","id":1},"laneId":{"type":"string","id":2},"laneS":{"type":"double","id":3},"laneL":{"type":"double","id":4}}},"PredictionPathPoint":{"fields":{"x":{"rule":"required","type":"double","id":1},"y":{"rule":"required","type":"double","id":2},"velocityHeading":{"type":"double","id":3}}},"PredictionTrajectoryPoint":{"fields":{"pathPoint":{"rule":"required","type":"PredictionPathPoint","id":1},"timestamp":{"rule":"required","type":"double","id":2}}}}},"relative_map":{"nested":{"NavigationPath":{"fields":{"path":{"type":"apollo.common.Path","id":1},"pathPriority":{"type":"uint32","id":2}}},"NavigationInfo":{"fields":{"header":{"type":"apollo.common.Header","id":1},"navigationPath":{"rule":"repeated","type":"NavigationPath","id":2}}},"MapMsg":{"fields":{"header":{"type":"apollo.common.Header","id":1},"hdmap":{"type":"apollo.hdmap.Map","id":2},"navigationPath":{"keyType":"string","type":"NavigationPath","id":3},"laneMarker":{"type":"apollo.perception.LaneMarkers","id":4},"localization":{"type":"apollo.localization.LocalizationEstimate","id":5}}},"SampleParam":{"fields":{"straightSampleInterval":{"type":"double","id":1,"options":{"default":3}},"smallKappaSampleInterval":{"type":"double","id":2,"options":{"default":1}},"middleKappaSampleInterval":{"type":"double","id":3,"options":{"default":0.4}},"largeKappaSampleInterval":{"type":"double","id":4,"options":{"default":0.1}},"smallKappa":{"type":"double","id":5,"options":{"default":0.002}},"middleKappa":{"type":"double","id":6,"options":{"default":0.008}},"largeKappa":{"type":"double","id":7,"options":{"default":0.02}}}},"NavigatorConfig":{"fields":{"enableNavigatorDownsample":{"type":"bool","id":1,"options":{"default":true}},"sampleParam":{"type":"SampleParam","id":2}}},"MapGenerationParam":{"fields":{"defaultLeftWidth":{"type":"double","id":1,"options":{"default":1.75}},"defaultRightWidth":{"type":"double","id":2,"options":{"default":1.75}},"defaultSpeedLimit":{"type":"double","id":3,"options":{"default":29.0576}}}},"NavigationLaneConfig":{"fields":{"minLaneMarkerQuality":{"type":"double","id":1,"options":{"default":0.5}},"laneSource":{"type":"LaneSource","id":2},"maxLenFromNavigationLine":{"type":"double","id":3,"options":{"default":250}},"minLenForNavigationLane":{"type":"double","id":4,"options":{"default":150}},"maxLenForNavigationLane":{"type":"double","id":5,"options":{"default":250}},"ratioNavigationLaneLenToSpeed":{"type":"double","id":6,"options":{"default":8}},"maxDistanceToNavigationLine":{"type":"double","id":7,"options":{"default":15}},"minViewRangeToUseLaneMarker":{"type":"double","id":8,"options":{"default":0.5}},"minLaneHalfWidth":{"type":"double","id":9,"options":{"default":1.5}},"maxLaneHalfWidth":{"type":"double","id":10,"options":{"default":2}},"laneMarkerWeight":{"type":"double","id":11,"options":{"default":0.1}}},"nested":{"LaneSource":{"values":{"PERCEPTION":1,"OFFLINE_GENERATED":2}}}},"RelativeMapConfig":{"fields":{"mapParam":{"type":"MapGenerationParam","id":1},"navigationLane":{"type":"NavigationLaneConfig","id":2}}}}}}}}}')},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=f(n(129)),o=f(n(3)),a=f(n(1)),s=f(n(2)),l=f(n(4)),u=f(n(5)),c=f(n(0)),d=n(7),h=f(n(60)),p=f(n(421));f(n(20));function f(e){return e&&e.__esModule?e:{default:e}}var m=(0,d.inject)("store")(i=(0,d.observer)(i=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this,t=this.props.store.hmi,n=(t.modes,t.currentMode,t.moduleStatus),i=t.componentStatus,o=(0,r.default)(n.keys()).sort().map((function(t){return c.default.createElement(h.default,{key:t,id:t,title:t,disabled:!1,isChecked:n.get(t),onClick:function(){e.props.store.hmi.toggleModule(t)},extraClasses:"controller"})})),a=(0,r.default)(i.keys()).sort().map((function(e){return c.default.createElement(p.default,{key:e,title:e,status:i.get(e)})}));return c.default.createElement("div",{className:"module-controller"},c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Components")),c.default.createElement("div",{className:"card-content-column"},a)),c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Modules")),c.default.createElement("div",{className:"card-content-row"},o)))}}]),t}(c.default.Component))||i)||i;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=d(n(3)),o=d(n(1)),a=d(n(2)),s=d(n(4)),l=d(n(5)),u=d(n(0)),c=n(7);function d(e){return e&&e.__esModule?e:{default:e}}var h={OK:"#1C9063",NOT_READY:"#B43131",NOT_PRESENT:"#B43131",ERR:"#B43131",UNDEF:"#B43131"},p=(0,c.observer)(i=function(e){function t(e){(0,o.default)(this,t);var n=(0,s.default)(this,(t.__proto__||(0,r.default)(t)).call(this,e));return n.showStatusMessage=n.showStatusMessage.bind(n),n}return(0,l.default)(t,e),(0,a.default)(t,[{key:"showStatusMessage",value:function(){this.props.status.message?alert(this.props.title+": "+this.props.status.message):alert("No message from "+this.props.title)}},{key:"render",value:function(){var e=this.props,t=e.title,n=e.status.status;return u.default.createElement("div",{className:"status-display"},u.default.createElement("div",{className:"name"},t),u.default.createElement("div",{className:"status",onClick:this.showStatusMessage},u.default.createElement("span",null,n),u.default.createElement("span",{className:"status-icon",style:{backgroundColor:h[n]}})))}}]),t}(u.default.Component))||i;t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r,o,a=C(n(80)),s=C(n(23)),l=C(n(3)),u=C(n(1)),c=C(n(2)),d=C(n(4)),h=C(n(5)),p=C(n(0)),f=n(7),m=(C(n(10)),C(n(14))),g=C(n(168)),y=C(n(146)),v=C(n(423)),b=C(n(424)),_=C(n(425)),x=C(n(426)),w=C(n(427)),M=C(n(428)),S=C(n(429)),E=C(n(430)),T=n(20);function C(e){return e&&e.__esModule?e:{default:e}}var O={perception:v.default,prediction:b.default,routing:_.default,decision:x.default,planning:w.default,camera:M.default,position:S.default,map:E.default},k=(0,f.observer)(i=function(e){function t(){return(0,u.default)(this,t),(0,d.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.id,n=e.title,i=e.optionName,r=e.options,o=e.isCustomized;return p.default.createElement("ul",{className:"item"},p.default.createElement("li",{id:t,onClick:function(){r.toggle(i,o),"perceptionPointCloud"===t&&T.POINT_CLOUD_WS.togglePointCloud(r.showPointCloud)}},p.default.createElement("div",{className:"switch"},p.default.createElement("input",{type:"checkbox",name:t,className:"toggle-switch",id:t,checked:o?r.customizedToggles.get(i):r[i],readOnly:!0}),p.default.createElement("label",{className:"toggle-switch-label",htmlFor:t})),p.default.createElement("span",null,n)))}}]),t}(p.default.Component))||i,P=(0,f.observer)(r=function(e){function t(e){(0,u.default)(this,t);var n=(0,d.default)(this,(t.__proto__||(0,l.default)(t)).call(this,e));for(var i in n.menuIdOptionMapping={},PARAMETERS.options){var r=PARAMETERS.options[i];r.menuId&&(n.menuIdOptionMapping[r.menuId]=i)}return n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.tabId,i=t.tabTitle,r=t.tabType,o=t.data,l=t.options,u=null;if("checkbox"===r){if(u=(0,s.default)(o).map((function(t){var n=o[t];return l.togglesToHide[t]?null:p.default.createElement(k,{key:t,id:t,title:n,optionName:e.menuIdOptionMapping[t],options:l,isCustomized:!1})})),"planning"===n&&l.customizedToggles.size>0){var c=l.customizedToggles.keys().map((function(e){var t=m.default.startCase(m.default.snakeCase(e));return p.default.createElement(k,{key:e,id:e,title:t,optionName:e,options:l,isCustomized:!0})}));u=u.concat(c)}}else if("radio"===r){if("camera"===n)u=(0,a.default)(o).filter((function(e){return!1!==PARAMETERS.options.cameraAngle["has"+e]})).map((function(e){return p.default.createElement(g.default,{key:n+"_"+e,id:n,onClick:function(){l.selectCamera(e)},checked:l.cameraAngle===e,title:m.default.startCase(e),options:l})}))}return p.default.createElement("div",{className:"card"},p.default.createElement("div",{className:"card-header summary"},p.default.createElement("span",null,p.default.createElement("img",{src:O[n]}),i)),p.default.createElement("div",{className:"card-content-column"},u))}}]),t}(p.default.Component))||r,A=(0,f.observer)(o=function(e){function t(){return(0,u.default)(this,t),(0,d.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props.options,t=(0,s.default)(y.default).map((function(t){var n=y.default[t];return p.default.createElement(P,{key:n.id,tabId:n.id,tabTitle:n.title,tabType:n.type,data:n.data,options:e})}));return p.default.createElement("div",{className:"tool-view-menu",id:"layer-menu"},t)}}]),t}(p.default.Component))||o;t.default=A},function(e,t,n){e.exports=n.p+"assets/IPd68HsWsSEjg0xV6WdqB.png"},function(e,t,n){e.exports=n.p+"assets/354QT2Q6zL4VqDgqmJTcG5.png"},function(e,t,n){e.exports=n.p+"assets/26GYFj0PnZ01JqnOJyxAM-.png"},function(e,t,n){e.exports=n.p+"assets/2Ypi25ytM9WW7KMSzPPPMP.png"},function(e,t,n){e.exports=n.p+"assets/1LUR-DseZqahKLxAtOVz8K.png"},function(e,t,n){e.exports=n.p+"assets/2H5A86LkKnR1ZeT78xVi_.png"},function(e,t,n){e.exports=n.p+"assets/rFzrh-bsqcp8pt7Peky74.png"},function(e,t,n){e.exports=n.p+"assets/1MqLBy7vqPW3xe5RaG9P6o.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(23)),o=p(n(3)),a=p(n(1)),s=p(n(2)),l=p(n(4)),u=p(n(5)),c=p(n(0)),d=n(7),h=(p(n(10)),p(n(168)));function p(e){return e&&e.__esModule?e:{default:e}}var f=(0,d.observer)(i=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this.props,t=e.routeEditingManager,n=e.options,i=e.inNavigationMode,o=(0,r.default)(t.defaultRoutingEndPoint).map((function(e,r){return c.default.createElement(h.default,{extraClasses:["poi-button"],key:"poi_"+e,id:"poi",title:e,onClick:function(){t.addDefaultEndPoint(e,i),n.showRouteEditingBar||t.sendRoutingRequest(i),n.showPOI=!1},autoFocus:0===r,checked:!1})}));return c.default.createElement("div",{className:"tool-view-menu",id:"poi-list"},c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Point of Interest")),c.default.createElement("div",{className:"card-content-row"},o)))}}]),t}(c.default.Component))||i;t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=g(n(3)),o=g(n(1)),a=g(n(2)),s=g(n(4)),l=g(n(5)),u=g(n(0)),c=n(7),d=g(n(433)),h=g(n(434)),p=g(n(435)),f=g(n(153)),m=g(n(169));function g(e){return e&&e.__esModule?e:{default:e}}var y=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.options;return u.default.createElement("div",{className:"tasks"},u.default.createElement(d.default,null),u.default.createElement(h.default,null),u.default.createElement(p.default,null),u.default.createElement(f.default,null),e.showVideo&&!e.showPNCMonitor&&u.default.createElement(m.default,null))}}]),t}(u.default.Component))||i)||i;t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=m(n(23)),o=m(n(3)),a=m(n(1)),s=m(n(2)),l=m(n(4)),u=m(n(5)),c=m(n(0)),d=n(7),h=m(n(10)),p=m(n(70)),f=m(n(20));function m(e){return e&&e.__esModule?e:{default:e}}var g=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this.props,t=e.name,n=e.commands,i=e.disabled,o=e.extraCommandClass,a=e.extraButtonClass,s=(0,r.default)(n).map((function(e){return c.default.createElement("button",{className:(0,h.default)("command-button",a),disabled:i,key:e,onClick:n[e]},e)})),l=t?c.default.createElement("span",{className:"name"},t+":"):null;return c.default.createElement("div",{className:(0,h.default)("command-group",o)},l,s)}}]),t}(c.default.Component),y=(0,d.inject)("store")(i=(0,d.observer)(i=function(e){function t(e){(0,a.default)(this,t);var n=(0,l.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.setup={Setup:function(){f.default.executeModeCommand("SETUP_MODE"),p.default.speakOnce("Setup")}},n.reset={"Reset All":function(){f.default.executeModeCommand("RESET_MODE"),p.default.speakOnce("Reset All")}},n.auto={"Start Auto":function(){f.default.executeModeCommand("ENTER_AUTO_MODE"),p.default.speakOnce("Start Auto")}},n}return(0,u.default)(t,e),(0,s.default)(t,[{key:"componentWillUpdate",value:function(){p.default.cancelAllInQueue()}},{key:"render",value:function(){var e=this.props.store.hmi,t=this.props.store.options.lockTaskPanel;return c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Quick Start")),c.default.createElement("div",{className:"card-content-column"},c.default.createElement(g,{disabled:t,commands:this.setup}),c.default.createElement(g,{disabled:t,commands:this.reset}),c.default.createElement(g,{disabled:!e.enableStartAuto||t,commands:this.auto,extraButtonClass:"start-auto-button",extraCommandClass:"start-auto-command"})))}}]),t}(c.default.Component))||i)||i;t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(3)),o=p(n(1)),a=p(n(2)),s=p(n(4)),l=p(n(5)),u=p(n(0)),c=n(7),d=p(n(60)),h=p(n(20));function p(e){return e&&e.__esModule?e:{default:e}}var f=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this,t=this.props.store,n=t.options,i=t.enableHMIButtonsOnly,r=t.hmi,o=i||n.lockTaskPanel,a=!r.inTeleopMode&&!n.showCameraView;return u.default.createElement("div",{className:"others card"},u.default.createElement("div",{className:"card-header"},u.default.createElement("span",null,"Others")),u.default.createElement("div",{className:"card-content-column"},u.default.createElement("button",{className:"command-button",disabled:o,onClick:function(){h.default.resetBackend()}},"Reset Backend Data"),u.default.createElement("button",{className:"command-button",disabled:o,onClick:function(){h.default.dumpMessages()}},"Dump Message"),u.default.createElement(d.default,{id:"panelLock",title:"Lock Task Panel",isChecked:n.lockTaskPanel,disabled:!1,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("lockTaskPanel")}}),a&&u.default.createElement(d.default,{id:"showPNCMonitor",title:"PNC Monitor",isChecked:n.showPNCMonitor,disabled:o,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("showPNCMonitor")}}),r.isCalibrationMode&&u.default.createElement(d.default,{id:"showDataCollectionMonitor",title:"Data Collection Monitor",isChecked:n.showDataCollectionMonitor,disabled:o||!r.isCalibrationMode,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("showDataCollectionMonitor")}}),u.default.createElement(d.default,{id:"toggleSimControl",title:"Sim Control",isChecked:n.enableSimControl,disabled:n.lockTaskPanel,extraClasses:"others-checkbox",onClick:function(){h.default.toggleSimControl(!n.enableSimControl),e.props.store.handleOptionToggle("enableSimControl")}}),u.default.createElement(d.default,{id:"showVideo",title:"Camera Sensor",isChecked:n.showVideo,disabled:o,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("showVideo")}})))}}]),t}(u.default.Component))||i)||i;t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(3)),o=p(n(1)),a=p(n(2)),s=p(n(4)),l=p(n(5)),u=p(n(0)),c=n(7),d=p(n(10)),h=n(40);function p(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props,t=e.time,n=e.warning,i="-"===t?t:(0,h.millisecondsToTime)(0|t);return u.default.createElement("div",{className:(0,d.default)({value:!0,warning:n})},i)}}]),t}(u.default.PureComponent),m=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.store.moduleDelay,t=e.keys().sort().map((function(t){var n=e.get(t),i=n.delay>2e3&&"TrafficLight"!==n.name;return u.default.createElement("div",{className:"delay-item",key:"delay_"+t},u.default.createElement("div",{className:"name"},n.name),u.default.createElement(f,{time:n.delay,warning:i}))}));return u.default.createElement("div",{className:"delay card"},u.default.createElement("div",{className:"card-header"},u.default.createElement("span",null,"Module Delay")),u.default.createElement("div",{className:"card-content-column"},t))}}]),t}(u.default.Component))||i)||i;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=y(n(3)),r=y(n(1)),o=y(n(2)),a=y(n(4)),s=y(n(5));n(437);var l=y(n(0)),u=n(71),c=n(97),d=y(n(439)),h=n(169),p=y(n(453)),f=y(n(455)),m=y(n(468)),g=y(n(469));function y(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(){return(0,r.default)(this,t),(0,a.default)(this,(t.__proto__||(0,i.default)(t)).apply(this,arguments))}return(0,s.default)(t,e),(0,o.default)(t,[{key:"renderMonitor",value:function(){var e=this.props,t=e.viewName,n=e.hmi;switch(t){case c.MONITOR_MENU.CONSOLE_TELEOP_MONITOR:return l.default.createElement(m.default,null);case c.MONITOR_MENU.CAR_TELEOP_MONITOR:return l.default.createElement(g.default,null);case c.MONITOR_MENU.CAMERA_PARAM:return l.default.createElement(d.default,null);case c.MONITOR_MENU.DATA_COLLECTION_MONITOR:return l.default.createElement(p.default,{dataCollectionUpdateStatus:n.dataCollectionUpdateStatus,dataCollectionProgress:n.dataCollectionProgress});case c.MONITOR_MENU.PNC_MONITOR:return l.default.createElement(f.default,null);default:return null}}},{key:"render",value:function(){var e=this.props.showCameraVideo;return l.default.createElement("div",{className:"right-pane"},e&&l.default.createElement(u.Tabs,null,l.default.createElement(u.TabList,null,l.default.createElement(u.Tab,null,"Camera View")),l.default.createElement(u.TabPanel,null,l.default.createElement(h.CameraVideo,null))),this.renderMonitor())}}]),t}(l.default.Component);t.default=v},function(e,t,n){var i=n(438);"string"==typeof i&&(i=[[e.i,i,""]]);var r={transform:void 0};n(62)(i,r);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(61)(!1)).push([e.i,".monitor {\n height: 100%;\n width: 100%;\n border-left: 1px solid #000000;\n box-sizing: border-box;\n background-color: #1D2226;\n overflow: auto; }\n .monitor .monitor-header {\n display: flex;\n height: 32px;\n box-sizing: border-box;\n min-width: 160px;\n border-bottom: 1px solid #000000;\n padding: 6px 12px;\n background: #2A3238;\n color: #FFFFFF; }\n .monitor .monitor-header .title {\n flex-grow: 1;\n margin: auto; }\n .monitor .monitor-content {\n display: flex;\n flex-direction: column;\n height: calc(100% - 32px);\n min-width: 160px; }\n .monitor .monitor-content .section {\n flex: 1 1 auto;\n padding: 5px 10px 5px 10px;\n border-bottom: 1px solid #000000; }\n .monitor .monitor-content .section .section-title {\n display: flex;\n width: fit-content;\n border-bottom: 1px solid #999999;\n padding: 5px; }\n .monitor .monitor-content .section .section-title span {\n margin-left: 10px;\n margin-top: 2px; }\n .monitor .monitor-content .section .section-subtitle {\n display: inline-block;\n margin: 10px 0px 10px 10px;\n border-bottom: 1px solid #999999;\n padding-bottom: 2px; }\n .monitor .monitor-content .section .section-content {\n padding: 10px 10px;\n color: #999999; }\n .monitor .monitor-content .section .section-content .section-content-row {\n display: flex;\n padding: 5px; }\n .monitor .monitor-content .section .section-content .section-content-row .field {\n flex: 1 1 auto; }\n .monitor .monitor-table-container {\n padding: 10px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-weight: normal; }\n .monitor .monitor-table-container .monitor-table-title {\n margin: 5px;\n border-bottom: 1px solid rgba(153, 153, 153, 0.5);\n padding-bottom: 5px;\n font-size: 12px;\n font-weight: 600;\n text-align: center; }\n .monitor .monitor-table-container .monitor-table {\n position: relative;\n width: 100%; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item {\n position: relative;\n width: 100%; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item .text {\n position: relative;\n width: 30%;\n padding: 2px 4px;\n color: #999999;\n font-size: 12px; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item .time {\n text-align: center; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item .active {\n color: #FFFFFF; }\n\n.pnc-monitor .scatter-graph {\n margin: 0px; }\n .pnc-monitor .scatter-graph:not(:first-child) {\n border-top: 1px solid #000000; }\n .pnc-monitor .scatter-graph:only-child {\n border-bottom: 1px solid #000000; }\n\n.data-collection-monitor {\n position: relative;\n width: 100%; }\n .data-collection-monitor .scenario-container {\n position: absolute; }\n .data-collection-monitor .section-divider-on-top {\n border-top: 2px solid #080A0C; }\n .data-collection-monitor .category-container {\n position: relative;\n width: 100%;\n margin-bottom: 15px;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n flex-wrap: wrap; }\n .data-collection-monitor .dummy-category {\n flex: 1 0 50%;\n align-self: flex-end;\n min-width: 130px;\n overflow: hidden;\n position: relative; }\n .data-collection-monitor .category {\n flex: 1 0 50%;\n align-self: flex-end;\n min-width: 130px;\n overflow: hidden;\n position: relative; }\n .data-collection-monitor .category .category-description {\n position: relative;\n margin: 15px 0px 0px 10px;\n font-size: 12px;\n color: #888888; }\n .data-collection-monitor .category .category-updated {\n color: #FFFFFF; }\n .data-collection-monitor .category .category-progress-background {\n position: relative;\n height: 6px;\n margin: 5px 10px;\n background-color: #333639; }\n .data-collection-monitor .category .category-progress-background .category-in-progress {\n position: absolute;\n height: 100%;\n background: #006AFF; }\n .data-collection-monitor .category .category-progress-background .category-completed {\n position: absolute;\n height: 100%;\n background: #113B73; }\n\n.camera-param {\n overflow: auto;\n user-select: none; }\n .camera-param .actions {\n display: flex; }\n .camera-param .actions .action {\n flex: 1 1 auto;\n text-align: center;\n cursor: pointer;\n padding: 2px;\n width: 24px; }\n .camera-param .actions .action svg:hover {\n fill: #FFFFFF; }\n .camera-param .camera-param-row {\n display: flex;\n padding-bottom: 5px;\n height: 24px; }\n .camera-param .camera-param-row .field {\n width: 40px;\n opacity: 0.6; }\n .camera-param .camera-param-row .value {\n flex-grow: 1;\n min-width: 100px;\n margin-right: 25px;\n text-align: right; }\n .camera-param .camera-param-row .delta {\n width: 25%;\n margin-right: 35px;\n text-align: center; }\n .camera-param .camera-param-row .action {\n width: 30px;\n display: flex;\n flex-direction: column; }\n .camera-param .camera-param-row .action svg {\n cursor: pointer; }\n .camera-param .camera-param-row .action svg:hover {\n fill: #FFFFFF; }\n\n.teleop .mute-button {\n width: 20px;\n border: 1px solid #383838;\n background: #181818;\n color: #999999;\n text-align: center;\n outline: none;\n cursor: pointer; }\n .teleop .mute-button:disabled {\n cursor: not-allowed; }\n\n.teleop .teleop-command-group {\n display: flex;\n flex-flow: column nowrap;\n justify-content: flex-start; }\n .teleop .teleop-command-group .teleop-button {\n min-height: 90px;\n font-size: 22px; }\n",""])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=g(n(23)),o=g(n(3)),a=g(n(1)),s=g(n(2)),l=g(n(4)),u=g(n(5)),c=n(0),d=g(c),h=g(n(170)),p=n(7),f=g(n(451)),m=g(n(452));function g(e){return e&&e.__esModule?e:{default:e}}var y=function(){return d.default.createElement("svg",{viewBox:"0 0 1024 1024",width:"20",height:"20",fill:"#999999"},d.default.createElement("path",{d:"M978.637 890.58H178.116V1024L0 846.551l176.115-174.78v133.42H933.94c29.353 0 44.696-12.008 44.696-41.36V496.99l88.725-141.426V800.52a88.724 88.724 0 0 1-88.725 88.058z m-88.724-667.101H133.42c-29.352 0-44.696 12.008-44.696 42.027v268.175L0 673.105v-450.96a88.724 88.724 0 0 1 88.724-88.725h800.522V0l178.116 178.116-176.115 176.115V220.81z"}))},v=function(e){var t=e.onClick;return d.default.createElement("svg",{viewBox:"0 0 1024 1024",width:"15",height:"15",onClick:t,fill:"#999999"},d.default.createElement("path",{d:"M820.00415442 790.08350547l-617.53286931-1e-8c-34.17530758 0-61.8167847-27.4267503-61.81678473-61.59899038 0-15.89285244 6.0951742-30.25807684 15.89285244-41.14165922l305.39062223-407.4809563c20.4634662-26.98809409 58.98852574-32.65074716 86.20054921-12.19034849 4.79147569 3.48470957 8.92343326 7.61973466 12.19034848 12.19034849L869.19806953 691.69567529c20.24260435 26.99116162 14.79774561 65.73401549-12.40814284 85.97968733C845.68548239 786.16627474 832.84481844 790.08350547 820.00415442 790.08350547L820.00415442 790.08350547z"}))},b=function(e){var t=e.onClick;return d.default.createElement("svg",{viewBox:"0 0 1024 1024",width:"15",height:"15",onClick:t,fill:"#999999"},d.default.createElement("path",{d:"M151.477 199.554l718.53099999 0c39.763 0 71.922 31.91 71.92200002 71.674 0 18.485-7.096 35.206-18.48600001 47.872l-355.33 474.125c-23.81 31.4-68.641 37.994-100.297 14.183-5.571-4.052-10.385-8.873-14.183-14.19l-359.398-479.178c-23.547-31.407-17.217-76.48 14.43699999-100.041 12.922-9.881 27.865-14.438 42.80500001-14.439v0l0-0.007zM151.477 199.554z"}))},_={Position:{X:"x",Y:"y",Z:"z"},StaticRotation:{Pitch:"x",Yaw:"y",Roll:"z"},DynamicRotation:{Pitch:"y",Yaw:"z",Roll:"x"}},x=(0,p.inject)("store")(i=(0,p.observer)(i=function(e){function t(e){(0,a.default)(this,t);var n=(0,l.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.resetParam=n.resetParam.bind(n),n}return(0,u.default)(t,e),(0,s.default)(t,[{key:"resetParam",value:function(){this.props.store.cameraData.reset()}},{key:"renderParamRow",value:function(e){var t=this.props.store.cameraData,n=void 0;switch(e){case"Position":n=2;break;case"StaticRotation":case"DynamicRotation":n=3;break;default:return console.warn("Unknown parameter type:",e),null}return(0,r.default)(_[e]).map((function(i){var r=_[e][i],o=Math.pow(.1,n),a=t["init"+e].get(r).toFixed(n),s=function(e){var t="#FFFFFF",n="-";return e>0?(t="#1C9063",n="+"+e):e<0&&(t="#B43131",n=e),{color:t,text:n}}(t["delta"+e].get(r).toFixed(n)),l=s.color,u=s.text;return d.default.createElement("div",{className:"camera-param-row",key:e+"_"+i},d.default.createElement("div",{className:"field"},i),d.default.createElement("div",{className:"value"},a),d.default.createElement("div",{className:"delta",style:{color:l}},u),d.default.createElement("div",{className:"action"},d.default.createElement(v,{onClick:function(){return t.update(e,r,o)}}),d.default.createElement(b,{onClick:function(){return t.update(e,r,-1*o)}})))}))}},{key:"renderCameraParam",value:function(){return d.default.createElement("div",{className:"monitor-content"},d.default.createElement("div",{className:"section"},d.default.createElement("div",{className:"section-title","data-tip":"Camera position in world coordinate system","data-for":"param"},d.default.createElement("img",{height:"20px",width:"20px",src:f.default}),d.default.createElement("span",null,"Position")),d.default.createElement("div",{className:"section-content"},this.renderParamRow("Position"))),d.default.createElement("div",{className:"section"},d.default.createElement("div",{className:"section-title"},d.default.createElement("img",{height:"18px",width:"20px",src:m.default}),d.default.createElement("span",null,"Rotation")),d.default.createElement("div",{className:"section-subtitle","data-tip":"Camera rotation in IMU coordinate system, default facing to Z negative direction","data-for":"param"},"Static"),d.default.createElement("div",{className:"section-content"},this.renderParamRow("StaticRotation")),d.default.createElement("div",{className:"section-subtitle","data-tip":"IMU rotation in world coordinate system","data-for":"param"},"Dynamic"),d.default.createElement("div",{className:"section-content"},this.renderParamRow("DynamicRotation"))),d.default.createElement(h.default,{id:"param",place:"right",delayShow:300,multiline:!0}))}},{key:"render",value:function(){return d.default.createElement("div",{className:"monitor camera-param"},d.default.createElement("div",{className:"monitor-header"},d.default.createElement("div",{className:"title"},"Camera Parameter"),d.default.createElement("div",{className:"actions"},d.default.createElement("div",{className:"action",onClick:this.resetParam,"data-tip":"Reset","data-for":"action"},d.default.createElement(y,null)),d.default.createElement(h.default,{id:"action",place:"left",delayShow:100}))),this.renderCameraParam())}}]),t}(c.Component))||i)||i;t.default=x},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e.hide=function(e){a(o.default.GLOBAL.HIDE,{target:e})},e.rebuild=function(){a(o.default.GLOBAL.REBUILD)},e.show=function(e){a(o.default.GLOBAL.SHOW,{target:e})},e.prototype.globalRebuild=function(){this.mount&&(this.unbindListener(),this.bindListener())},e.prototype.globalShow=function(e){if(this.mount){var t={currentTarget:e.detail.target};this.showTooltip(t,!0)}},e.prototype.globalHide=function(e){if(this.mount){var t=!!(e&&e.detail&&e.detail.target);this.hideTooltip({currentTarget:t&&e.detail.target},t)}}};var i,r=n(171),o=(i=r)&&i.__esModule?i:{default:i};var a=function(e,t){var n=void 0;"function"==typeof window.CustomEvent?n=new window.CustomEvent(e,{detail:t}):((n=document.createEvent("Event")).initEvent(e,!1,!0),n.detail=t),window.dispatchEvent(n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e.prototype.bindWindowEvents=function(e){window.removeEventListener(o.default.GLOBAL.HIDE,this.globalHide),window.addEventListener(o.default.GLOBAL.HIDE,this.globalHide,!1),window.removeEventListener(o.default.GLOBAL.REBUILD,this.globalRebuild),window.addEventListener(o.default.GLOBAL.REBUILD,this.globalRebuild,!1),window.removeEventListener(o.default.GLOBAL.SHOW,this.globalShow),window.addEventListener(o.default.GLOBAL.SHOW,this.globalShow,!1),e&&(window.removeEventListener("resize",this.onWindowResize),window.addEventListener("resize",this.onWindowResize,!1))},e.prototype.unbindWindowEvents=function(){window.removeEventListener(o.default.GLOBAL.HIDE,this.globalHide),window.removeEventListener(o.default.GLOBAL.REBUILD,this.globalRebuild),window.removeEventListener(o.default.GLOBAL.SHOW,this.globalShow),window.removeEventListener("resize",this.onWindowResize)},e.prototype.onWindowResize=function(){this.mount&&this.hideTooltip()}};var i,r=n(171),o=(i=r)&&i.__esModule?i:{default:i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e.prototype.isCustomEvent=function(e){return this.state.event||!!e.getAttribute("data-event")},e.prototype.customBindListener=function(e){var t=this,n=this.state,r=n.event,a=n.eventOff,s=e.getAttribute("data-event")||r,l=e.getAttribute("data-event-off")||a;s.split(" ").forEach((function(n){e.removeEventListener(n,o.get(e,n));var r=i.bind(t,l);o.set(e,n,r),e.addEventListener(n,r,!1)})),l&&l.split(" ").forEach((function(n){e.removeEventListener(n,t.hideTooltip),e.addEventListener(n,t.hideTooltip,!1)}))},e.prototype.customUnbindListener=function(e){var t=this.state,n=t.event,i=t.eventOff,r=n||e.getAttribute("data-event"),a=i||e.getAttribute("data-event-off");e.removeEventListener(r,o.get(e,n)),a&&e.removeEventListener(a,this.hideTooltip)}};var i=function(e,t){var n=this.state.show,i=this.props.id,o=t.currentTarget.getAttribute("data-iscapture"),a=o&&"true"===o||this.props.isCapture,s=t.currentTarget.getAttribute("currentItem");a||t.stopPropagation(),n&&"true"===s?e||this.hideTooltip(t):(t.currentTarget.setAttribute("currentItem","true"),r(t.currentTarget,this.getTargetArray(i)),this.showTooltip(t))},r=function(e,t){for(var n=0;nE},L=function(e){return function(e){var t=x[e].b;return _+t+S}(e)>T},I=function(e){return function(e){return P(e)<0}(e)||R(e)||function(e){return A(e)<0}(e)||L(e)},D=function(e){return!I(e)},N=["top","bottom","left","right"],F=[],z=0;z<4;z++){var B=N[z];D(B)&&F.push(B)}var U=!1,j=void 0;return D(u)&&u!==l?(U=!0,j=u):F.length>0&&I(u)&&I(l)&&(U=!0,j=F[0]),U?{isNewState:!0,newState:{place:j}}:{isNewState:!1,position:{left:parseInt(P(l)-k,10),top:parseInt(A(l)-O,10)}}};var i=function(e){var t=e.getBoundingClientRect(),n=t.height,i=t.width;return{height:parseInt(n,10),width:parseInt(i,10)}},r=function(e,t,n){var r=t.getBoundingClientRect(),o=r.top,a=r.left,s=i(t),l=s.width,u=s.height;return"float"===n?{mouseX:e.clientX,mouseY:e.clientY}:{mouseX:a+l/2,mouseY:o+u/2}},o=function(e,t,n,i,r){var o=void 0,a=void 0,s=void 0,l=void 0;return"float"===e?(o={l:-i/2,r:i/2,t:-(r+3+2),b:-3},s={l:-i/2,r:i/2,t:15,b:r+3+2+12},l={l:-(i+3+2),r:-3,t:-r/2,b:r/2},a={l:3,r:i+3+2,t:-r/2,b:r/2}):"solid"===e&&(o={l:-i/2,r:i/2,t:-(n/2+r+2),b:-n/2},s={l:-i/2,r:i/2,t:n/2,b:n/2+r+2},l={l:-(i+t/2+2),r:-t/2,t:-r/2,b:r/2},a={l:t/2,r:i+t/2+2,t:-r/2,b:r/2}),{top:o,bottom:s,left:l,right:a}},a=function(e){var t=0,n=0;for(var i in"[object String]"===Object.prototype.toString.apply(e)&&(e=JSON.parse(e.toString().replace(/\'/g,'"'))),e)"top"===i?n-=parseInt(e[i],10):"bottom"===i?n+=parseInt(e[i],10):"left"===i?t-=parseInt(e[i],10):"right"===i&&(t+=parseInt(e[i],10));return{extraOffset_X:t,extraOffset_Y:n}},s=function(e){for(var t=e;t&&"none"===window.getComputedStyle(t).getPropertyValue("transform");)t=t.parentElement;return{parentTop:t&&t.getBoundingClientRect().top||0,parentLeft:t&&t.getBoundingClientRect().left||0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,i){if(t)return t;if(null!=n)return n;if(null===n)return null;var r=//;return i&&"false"!==i&&r.test(e)?e.split(r).map((function(e,t){return o.default.createElement("span",{key:t,className:"multi-line"},e)})):e};var i,r=n(0),o=(i=r)&&i.__esModule?i:{default:i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseAria=function(e){var t={};return Object.keys(e).filter((function(e){return/(^aria-\w+$|^role$)/.test(e)})).forEach((function(n){t[n]=e[n]})),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.length;return e.hasOwnProperty?Array.prototype.slice.call(e):new Array(t).fill().map((function(t){return e[t]}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default='.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover,.__react_component_tooltip.allow_click{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'},function(e,t,n){e.exports=n.p+"assets/2fKcIvU88j_SvHu_QKgwa0.png"},function(e,t,n){e.exports=n.p+"assets/1Eo3zPMjhpRBJY8UPDpYQQ.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=f(n(36)),o=f(n(3)),a=f(n(1)),s=f(n(2)),l=f(n(4)),u=f(n(5)),c=f(n(0)),d=n(71),h=n(7),p=f(n(454));function f(e){return e&&e.__esModule?e:{default:e}}var m=(0,h.observer)(i=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this.props,t=e.dataCollectionUpdateStatus,n=e.dataCollectionProgress;if(!n||0===t.size)return c.default.createElement("div",{className:"no-data"},"No Data Found");var i=[],o=[];return n.entries().forEach((function(e){var n=(0,r.default)(e,2),a=n[0],s=n[1];i.push(c.default.createElement(d.Tab,{key:a},a)),o.push(c.default.createElement(d.TabPanel,{key:a},c.default.createElement(p.default,{statusMap:t.get(a),progressMap:s})))})),c.default.createElement("div",{className:"monitor data-collection-monitor"},c.default.createElement(d.Tabs,null,c.default.createElement(d.TabList,null,i),o))}}]),t}(c.default.Component))||i;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=h(n(3)),o=h(n(1)),a=h(n(2)),s=h(n(4)),l=h(n(5)),u=h(n(0)),c=n(7),d=h(n(10));function h(e){return e&&e.__esModule?e:{default:e}}var p=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"renderCategoryProgress",value:function(e,t,n,i){return u.default.createElement("div",{key:e,className:"category"},u.default.createElement("div",{className:(0,d.default)({"category-description":!0,"category-updated":n})},e),u.default.createElement("div",{className:"category-progress-background"},u.default.createElement("span",{className:i?"category-completed":"category-in-progress",style:{width:t+"%"}})))}},{key:"render",value:function(){var e=this,t=this.props,n=t.statusMap,i=t.progressMap,r=[],o=[];return n.forEach((function(t,n){var a=i.get(n),s=a>=100,l=e.renderCategoryProgress(n,a,t,s);s?o.push(l):r.push(l)})),r.length%2==1&&r.push(u.default.createElement("div",{className:"dummy-category",key:"in-progress-dummy"})),o.length%2==1&&o.push(u.default.createElement("div",{className:"dummy-category",key:"completed-dummy"})),u.default.createElement("div",{className:"scenario-container"},u.default.createElement("div",{className:"category-container"},r),o.length>0&&u.default.createElement("div",{className:"category-container section-divider-on-top"},o))}}]),t}(u.default.Component))||i;t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=f(n(3)),r=f(n(1)),o=f(n(2)),a=f(n(4)),s=f(n(5)),l=f(n(0)),u=n(71),c=f(n(456)),d=f(n(463)),h=f(n(465)),p=f(n(467));function f(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(){return(0,r.default)(this,t),(0,a.default)(this,(t.__proto__||(0,i.default)(t)).apply(this,arguments))}return(0,s.default)(t,e),(0,o.default)(t,[{key:"render",value:function(){return l.default.createElement("div",{className:"monitor pnc-monitor"},l.default.createElement(p.default,null),l.default.createElement(u.Tabs,null,l.default.createElement(u.TabList,null,l.default.createElement(u.Tab,null,"Planning"),l.default.createElement(u.Tab,null,"Control"),l.default.createElement(u.Tab,null,"Latency")),l.default.createElement(u.TabPanel,null,l.default.createElement(h.default,null)),l.default.createElement(u.TabPanel,null,l.default.createElement(c.default,null)),l.default.createElement(u.TabPanel,null,l.default.createElement(d.default,null))))}}]),t}(l.default.Component);t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(3)),o=p(n(1)),a=p(n(2)),s=p(n(4)),l=p(n(5)),u=p(n(0)),c=n(7),d=p(n(457)),h=n(102);p(h);function p(e){return e&&e.__esModule?e:{default:e}}var f=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.store.controlData,t=e.lastUpdatedTime,n=e.data;return t?u.default.createElement("div",null,(0,h.generateScatterGraph)(d.default.trajectoryGraph,n.trajectoryGraph,{pose:n.pose}),(0,h.generateScatterGraph)(d.default.speedGraph,n.speedGraph),(0,h.generateScatterGraph)(d.default.accelerationGraph,n.accelerationGraph),(0,h.generateScatterGraph)(d.default.curvatureGraph,n.curvatureGraph),(0,h.generateScatterGraph)(d.default.stationErrorGraph,n.stationErrorGraph),(0,h.generateScatterGraph)(d.default.lateralErrorGraph,n.lateralErrorGraph),(0,h.generateScatterGraph)(d.default.headingErrorGraph,n.headingErrorGraph)):null}}]),t}(u.default.Component))||i)||i;t.default=f},function(e,t){e.exports={trajectoryGraph:{title:"Trajectory",options:{aspectRatio:.9,syncXYWindowSize:!0,legend:{display:!0},axes:{x:{labelString:"x (m)"},y:{labelString:"y (m)"}}},properties:{cars:{pose:{color:"rgba(0, 255, 0, 0.55)"}},lines:{currentTargetPoint:{color:"rgba(360, 0, 0, 1)",borderWidth:0,pointRadius:7,fill:!1,showLine:!1,pointStyle:"crossRot"},real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},steerCurve:{color:"rgba(255, 206, 86, 1)",borderWidth:1,pointRadius:0,fill:!1,showLine:!0},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:1,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},speedGraph:{title:"Speed",options:{legend:{display:!0},axes:{x:{labelString:"t (second)"},y:{labelString:"speed (m/s)"}}},properties:{lines:{real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:2,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},curvatureGraph:{title:"Curvature",options:{legend:{display:!0},axes:{x:{labelString:"t (second)"},y:{labelString:"Curvature (m-1)"}}},properties:{lines:{real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:2,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},accelerationGraph:{title:"Acceleration",options:{legend:{display:!0},axes:{x:{labelString:"t (second)"},y:{labelString:"acceleration (m/s^2)"}}},properties:{lines:{real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:2,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},stationErrorGraph:{title:"Station Error",options:{legend:{display:!1},axes:{x:{labelString:"t (second)"},y:{labelString:"error (m)"}}},properties:{lines:{error:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"}}}},lateralErrorGraph:{title:"Lateral Error",options:{legend:{display:!1},axes:{x:{labelString:"t (second)"},y:{labelString:"error (m)"}}},properties:{lines:{error:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"}}}},headingErrorGraph:{title:"Heading Error",options:{legend:{display:!1},axes:{x:{labelString:"t (second)"},y:{labelString:"error (rad)"}}},properties:{lines:{error:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"}}}}}},function(e,t,n){e.exports={default:n(459),__esModule:!0}},function(e,t,n){n(460),e.exports=n(9).Math.log10},function(e,t,n){var i=n(13);i(i.S,"Math",{log10:function(e){return Math.log(e)*Math.LOG10E}})},function(e,t,n){ + */Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&Symbol.for,r=i?Symbol.for("react.element"):60103,o=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,s=i?Symbol.for("react.strict_mode"):60108,l=i?Symbol.for("react.profiler"):60114,u=i?Symbol.for("react.provider"):60109,c=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,p=i?Symbol.for("react.forward_ref"):60112,f=i?Symbol.for("react.suspense"):60113,m=i?Symbol.for("react.suspense_list"):60120,g=i?Symbol.for("react.memo"):60115,y=i?Symbol.for("react.lazy"):60116,v=i?Symbol.for("react.fundamental"):60117,b=i?Symbol.for("react.responder"):60118;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case d:case h:case a:case l:case s:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case u:return e;default:return t}}case y:case g:case o:return t}}}function x(e){return _(e)===h}t.typeOf=_,t.AsyncMode=d,t.ConcurrentMode=h,t.ContextConsumer=c,t.ContextProvider=u,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=g,t.Portal=o,t.Profiler=l,t.StrictMode=s,t.Suspense=f,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===h||e===l||e===s||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===u||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===b)},t.isAsyncMode=function(e){return x(e)||_(e)===d},t.isConcurrentMode=x,t.isContextConsumer=function(e){return _(e)===c},t.isContextProvider=function(e){return _(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===p},t.isFragment=function(e){return _(e)===a},t.isLazy=function(e){return _(e)===y},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===o},t.isProfiler=function(e){return _(e)===l},t.isStrictMode=function(e){return _(e)===s},t.isSuspense=function(e){return _(e)===f}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=g(n(3)),o=g(n(1)),a=g(n(2)),s=g(n(4)),l=g(n(5)),u=g(n(0)),c=n(7),d=g(n(400)),h=g(n(420)),p=g(n(422)),f=g(n(431)),m=g(n(432));function g(e){return e&&e.__esModule?e:{default:e}}var y=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.store,t=e.options,n=e.routeEditingManager,i=e.hmi,r=e.newDisengagementReminder;return u.default.createElement("div",{className:"tools"},t.showTasks&&u.default.createElement(m.default,{options:t}),t.showModuleController&&u.default.createElement(h.default,null),t.showMenu&&u.default.createElement(p.default,{options:t}),t.showPOI&&u.default.createElement(f.default,{routeEditingManager:n,options:t,inNavigationMode:i.inNavigationMode}),t.showDataRecorder&&u.default.createElement(d.default,{newDisengagementReminder:r}))}}]),t}(u.default.Component))||i)||i;t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=v(n(23)),r=v(n(92)),o=v(n(3)),a=v(n(1)),s=v(n(2)),l=v(n(4)),u=v(n(5)),c=v(n(0)),d=v(n(401)),h=v(n(10)),p=v(n(14)),f=v(n(12)),m=v(n(20)),g=v(n(416)),y=v(n(60));function v(e){return e&&e.__esModule?e:{default:e}}var b=d.default.Root.fromJSON(n(419)).lookup("apollo.common.DriveEvent.Type").values,_=function(e){function t(e){(0,a.default)(this,t);var n=(0,l.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.state={eventTime:new Date(f.default.timestamp),eventMessage:"",eventTypes:new r.default,popupReminder:n.props.newDisengagementReminder,isReportable:!1},n.handleMessageChange=n.handleMessageChange.bind(n),n.handleTimestampUpdate=n.handleTimestampUpdate.bind(n),n.handleSubmit=n.handleSubmit.bind(n),n.handleCancel=n.handleCancel.bind(n),n.toggleTicket=n.toggleTicket.bind(n),n.setTextareaRef=function(e){n.textareaElement=e},n}return(0,u.default)(t,e),(0,s.default)(t,[{key:"componentWillReceiveProps",value:function(e){e.newDisengagementReminder&&(this.handleTimestampUpdate(),this.setState({popupReminder:!0}))}},{key:"handleMessageChange",value:function(e){this.setState({eventMessage:e.target.value})}},{key:"handleTimestampUpdate",value:function(){this.setState({eventTime:new Date(f.default.timestamp)})}},{key:"handleSubmit",value:function(e){return e.preventDefault(),this.state.eventMessage?this.state.eventTypes.size?(m.default.submitDriveEvent(this.state.eventTime.getTime(),this.state.eventMessage,this.state.eventTypes,this.state.isReportable),void f.default.handleOptionToggle("showDataRecorder")):alert("Please select at least one event type."):alert("Please provide a drive event message.")}},{key:"handleCancel",value:function(){f.default.handleOptionToggle("showDataRecorder")}},{key:"handleEventTypeSelection",value:function(e){var t=this.state.eventTypes;t.has(e)?t.delete(e):t.add(e),this.setState({eventTypes:new r.default(t)})}},{key:"toggleTicket",value:function(){this.setState((function(e){return{isReportable:!e.isReportable}}))}},{key:"renderTypeCheckBox",value:function(){var e=this;return(0,i.default)(b).map((function(t){return c.default.createElement("button",{key:t,onClick:e.handleEventTypeSelection.bind(e,t),className:(0,h.default)({"drive-event-type-button":!0,"drive-event-type-button-active":e.state.eventTypes.has(t)})},p.default.startCase(p.default.lowerCase(t)))}))}},{key:"render",value:function(){var e=this;return c.default.createElement("div",{className:"card data-recorder"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Add Drive Event")),c.default.createElement("div",{className:"card-content-column"},c.default.createElement("table",null,c.default.createElement("tbody",null,c.default.createElement("tr",{className:"drive-event-row"},c.default.createElement("td",null,"Event Time"),c.default.createElement("td",null,c.default.createElement("span",{className:"event-time"},this.state.eventTime.toString(),c.default.createElement("button",{className:"timestamp-button",onClick:this.handleTimestampUpdate},"Update Time")))),c.default.createElement("tr",{className:"drive-event-row"},c.default.createElement("td",null,"Types"),c.default.createElement("td",null,this.renderTypeCheckBox())),c.default.createElement("tr",{className:"drive-event-msg-row"},c.default.createElement("td",null,"Message"),c.default.createElement("td",null,c.default.createElement("textarea",{autoFocus:!this.state.popupReminder,ref:this.setTextareaRef,placeholder:"please enter a message...",value:this.state.eventMessage,onChange:this.handleMessageChange}))),c.default.createElement("tr",{className:"drive-event-row"},c.default.createElement("td",null,"File a ticket"),c.default.createElement("td",{className:"multiple-items"},c.default.createElement("span",null,c.default.createElement(y.default,{id:"isReportableData",isChecked:this.state.isReportable,disabled:!1,onClick:this.toggleTicket})),c.default.createElement("span",null,c.default.createElement("button",{className:"cancel-button",onClick:this.handleCancel},"Cancel"),c.default.createElement("button",{className:"submit-button",onClick:this.handleSubmit},"Submit"))))))),c.default.createElement(g.default,{open:this.state.popupReminder,onClose:function(){e.setState({popupReminder:!1}),e.textareaElement.focus()}},c.default.createElement("div",{className:"codriver-msg"},c.default.createElement("p",null,"Disengagement found. "),c.default.createElement("p",null,"Please record a drive event."))))}}]),t}(c.default.Component);t.default=_},function(e,t,n){"use strict";e.exports=n(402)},function(e,t,n){"use strict";var i=e.exports=n(403);i.build="light",i.load=function(e,t,n){return"function"==typeof t?(n=t,t=new i.Root):t||(t=new i.Root),t.load(e,n)},i.loadSync=function(e,t){return t||(t=new i.Root),t.loadSync(e)},i.encoder=n(158),i.decoder=n(163),i.verifier=n(164),i.converter=n(165),i.ReflectionObject=n(45),i.Namespace=n(58),i.Root=n(167),i.Enum=n(31),i.Type=n(159),i.Field=n(46),i.OneOf=n(100),i.MapField=n(160),i.Service=n(161),i.Method=n(162),i.Message=n(101),i.wrappers=n(166),i.types=n(59),i.util=n(17),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},function(e,t,n){"use strict";var i=t;function r(){i.Reader._configure(i.BufferReader),i.util._configure()}i.build="minimal",i.Writer=n(98),i.BufferWriter=n(410),i.Reader=n(99),i.BufferReader=n(411),i.util=n(30),i.rpc=n(156),i.roots=n(157),i.configure=r,i.Writer._configure(i.BufferWriter),r()},function(e,t,n){"use strict";var i=t;i.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var r=new Array(64),o=new Array(123),a=0;a<64;)o[r[a]=a<26?a+65:a<52?a+71:a<62?a-4:a-59|43]=a++;i.encode=function(e,t,n){for(var i,o=null,a=[],s=0,l=0;t>2],i=(3&u)<<4,l=1;break;case 1:a[s++]=r[i|u>>4],i=(15&u)<<2,l=2;break;case 2:a[s++]=r[i|u>>6],a[s++]=r[63&u],l=0}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,a)),s=0)}return l&&(a[s++]=r[i],a[s++]=61,1===l&&(a[s++]=61)),o?(s&&o.push(String.fromCharCode.apply(String,a.slice(0,s))),o.join("")):String.fromCharCode.apply(String,a.slice(0,s))};i.decode=function(e,t,n){for(var i,r=n,a=0,s=0;s1)break;if(void 0===(l=o[l]))throw Error("invalid encoding");switch(a){case 0:i=l,a=1;break;case 1:t[n++]=i<<2|(48&l)>>4,i=l,a=2;break;case 2:t[n++]=(15&i)<<4|(60&l)>>2,i=l,a=3;break;case 3:t[n++]=(3&i)<<6|l,a=0}}if(1===a)throw Error("invalid encoding");return n-r},i.test=function(e){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e)}},function(e,t,n){"use strict";function i(){this._listeners={}}e.exports=i,i.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},i.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i0?0:2147483648,n,i);else if(isNaN(t))e(2143289344,n,i);else if(t>34028234663852886e22)e((r<<31|2139095040)>>>0,n,i);else if(t<11754943508222875e-54)e((r<<31|Math.round(t/1401298464324817e-60))>>>0,n,i);else{var o=Math.floor(Math.log(t)/Math.LN2);e((r<<31|o+127<<23|8388607&Math.round(t*Math.pow(2,-o)*8388608))>>>0,n,i)}}function n(e,t,n){var i=e(t,n),r=2*(i>>31)+1,o=i>>>23&255,a=8388607&i;return 255===o?a?NaN:r*(1/0):0===o?1401298464324817e-60*r*a:r*Math.pow(2,o-150)*(a+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,o),e.readFloatLE=n.bind(null,a),e.readFloatBE=n.bind(null,s)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),i=128===n[7];function r(e,i,r){t[0]=e,i[r]=n[0],i[r+1]=n[1],i[r+2]=n[2],i[r+3]=n[3],i[r+4]=n[4],i[r+5]=n[5],i[r+6]=n[6],i[r+7]=n[7]}function o(e,i,r){t[0]=e,i[r]=n[7],i[r+1]=n[6],i[r+2]=n[5],i[r+3]=n[4],i[r+4]=n[3],i[r+5]=n[2],i[r+6]=n[1],i[r+7]=n[0]}function a(e,i){return n[0]=e[i],n[1]=e[i+1],n[2]=e[i+2],n[3]=e[i+3],n[4]=e[i+4],n[5]=e[i+5],n[6]=e[i+6],n[7]=e[i+7],t[0]}function s(e,i){return n[7]=e[i],n[6]=e[i+1],n[5]=e[i+2],n[4]=e[i+3],n[3]=e[i+4],n[2]=e[i+5],n[1]=e[i+6],n[0]=e[i+7],t[0]}e.writeDoubleLE=i?r:o,e.writeDoubleBE=i?o:r,e.readDoubleLE=i?a:s,e.readDoubleBE=i?s:a}():function(){function t(e,t,n,i,r,o){var a=i<0?1:0;if(a&&(i=-i),0===i)e(0,r,o+t),e(1/i>0?0:2147483648,r,o+n);else if(isNaN(i))e(0,r,o+t),e(2146959360,r,o+n);else if(i>17976931348623157e292)e(0,r,o+t),e((a<<31|2146435072)>>>0,r,o+n);else{var s;if(i<22250738585072014e-324)e((s=i/5e-324)>>>0,r,o+t),e((a<<31|s/4294967296)>>>0,r,o+n);else{var l=Math.floor(Math.log(i)/Math.LN2);1024===l&&(l=1023),e(4503599627370496*(s=i*Math.pow(2,-l))>>>0,r,o+t),e((a<<31|l+1023<<20|1048576*s&1048575)>>>0,r,o+n)}}}function n(e,t,n,i,r){var o=e(i,r+t),a=e(i,r+n),s=2*(a>>31)+1,l=a>>>20&2047,u=4294967296*(1048575&a)+o;return 2047===l?u?NaN:s*(1/0):0===l?5e-324*s*u:s*Math.pow(2,l-1075)*(u+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,o,4,0),e.readDoubleLE=n.bind(null,a,0,4),e.readDoubleBE=n.bind(null,s,4,0)}(),e}function r(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function o(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function a(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function s(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=i(i)},function(e,t,n){"use strict";var i=t;i.length=function(e){for(var t=0,n=0,i=0;i191&&i<224?o[a++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[a++]=55296+(i>>10),o[a++]=56320+(1023&i)):o[a++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((r||(r=[])).push(String.fromCharCode.apply(String,o)),a=0);return r?(a&&r.push(String.fromCharCode.apply(String,o.slice(0,a))),r.join("")):String.fromCharCode.apply(String,o.slice(0,a))},i.write=function(e,t,n){for(var i,r,o=n,a=0;a>6|192,t[n++]=63&i|128):55296==(64512&i)&&56320==(64512&(r=e.charCodeAt(a+1)))?(i=65536+((1023&i)<<10)+(1023&r),++a,t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128);return n-o}},function(e,t,n){"use strict";e.exports=function(e,t,n){var i=n||8192,r=i>>>1,o=null,a=i;return function(n){if(n<1||n>r)return e(n);a+n>i&&(o=e(i),a=0);var s=t.call(o,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},function(e,t,n){"use strict";e.exports=r;var i=n(30);function r(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=r.zero=new r(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var a=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if(i.isString(e)){if(!i.Long)return r.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):o},r.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;r.fromHash=function(e){return e===a?o:new r((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},r.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},r.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},function(e,t,n){"use strict";e.exports=a;var i=n(98);(a.prototype=Object.create(i.prototype)).constructor=a;var r=n(30),o=r.Buffer;function a(){i.call(this)}a.alloc=function(e){return(a.alloc=r._Buffer_allocUnsafe)(e)};var s=o&&o.prototype instanceof Uint8Array&&"set"===o.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var i=0;i>>0;return this.uint32(t),t&&this._push(s,t,e),this},a.prototype.string=function(e){var t=o.byteLength(e);return this.uint32(t),t&&this._push(l,t,e),this}},function(e,t,n){"use strict";e.exports=o;var i=n(99);(o.prototype=Object.create(i.prototype)).constructor=o;var r=n(30);function o(e){i.call(this,e)}r.Buffer&&(o.prototype._slice=r.Buffer.prototype.slice),o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len))}},function(e,t,n){"use strict";e.exports=r;var i=n(30);function r(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(r.prototype=Object.create(i.EventEmitter.prototype)).constructor=r,r.prototype.rpcCall=function e(t,n,r,o,a){if(!o)throw TypeError("request must be specified");var s=this;if(!a)return i.asPromise(e,s,t,n,r,o);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof r))try{n=r[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},r.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},function(e,t,n){"use strict";function i(e,t){"string"==typeof e&&(t=e,e=void 0);var n=[];function r(e){if("string"!=typeof e){var t=o();if(i.verbose&&console.log("codegen: "+t),t="return "+t,e){for(var a=Object.keys(e),s=new Array(a.length+1),l=new Array(a.length),u=0;u0&&".."!==t[o-1]?t.splice(--o,2):n?t.splice(o,1):++o:"."===t[o]?t.splice(o,1):++o;return i+t.join("/")};i.resolve=function(e,t,n){return n||(t=o(t)),r(t)?t:(n||(e=o(e)),(e=e.replace(/(?:\/|^)[^\/]+$/,"")).length?o(e+"/"+t):t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=c(n(3)),r=c(n(1)),o=c(n(2)),a=c(n(4)),s=c(n(5));n(417);var l=c(n(0)),u=c(n(32));function c(e){return e&&e.__esModule?e:{default:e}}var d=function(e){function t(e){(0,r.default)(this,t);var n=(0,a.default)(this,(t.__proto__||(0,i.default)(t)).call(this,e));return n.setOkButtonRef=function(e){n.okButton=e},n}return(0,s.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){var e=this;setTimeout((function(){e.okButton&&e.okButton.focus()}),0)}},{key:"componentDidUpdate",value:function(){this.okButton&&this.okButton.focus()}},{key:"render",value:function(){var e=this,t=this.props,n=t.open,i=t.header;return n?l.default.createElement("div",null,l.default.createElement("div",{className:"modal-background"}),l.default.createElement("div",{className:"modal-content"},l.default.createElement("div",{role:"dialog",className:"modal-dialog"},i&&l.default.createElement("header",null,l.default.createElement("span",null,this.props.header)),this.props.children),l.default.createElement("button",{ref:this.setOkButtonRef,className:"ok-button",onClick:function(){return e.props.onClose()}},"OK"))):null}}]),t}(l.default.Component),h=function(e){function t(e){(0,r.default)(this,t);var n=(0,a.default)(this,(t.__proto__||(0,i.default)(t)).call(this,e));return n.rootSelector=document.getElementById("root"),n.container=document.createElement("div"),n}return(0,s.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){this.rootSelector.appendChild(this.container)}},{key:"componentWillUnmount",value:function(){this.rootSelector.removeChild(this.container)}},{key:"render",value:function(){return u.default.createPortal(l.default.createElement(d,this.props),this.container)}}]),t}(l.default.Component);t.default=h},function(e,t,n){var i=n(418);"string"==typeof i&&(i=[[e.i,i,""]]);var r={transform:void 0};n(62)(i,r);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(61)(!1)).push([e.i,".modal-background {\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 1000; }\n\n.modal-content {\n position: fixed;\n top: 35%;\n left: 50%;\n width: 300px;\n height: 130px;\n transform: translate(-50%, -50%);\n text-align: center;\n background-color: rgba(0, 0, 0, 0.8);\n box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.75);\n z-index: 1001; }\n .modal-content header {\n background: #217cba;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 2rem;\n min-height: 50px; }\n .modal-content .modal-dialog {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 50px;\n left: 0px;\n padding: 5px; }\n .modal-content .ok-button {\n position: absolute;\n bottom: 0px;\n transform: translate(-50%, -50%);\n padding: 7px 25px;\n border: none;\n background: #006AFF;\n color: #ffffff;\n cursor: pointer; }\n .modal-content .ok-button:hover {\n background: #49a9ee; }\n",""])},function(e){e.exports=JSON.parse('{"nested":{"apollo":{"nested":{"dreamview":{"nested":{"PolygonPoint":{"fields":{"x":{"type":"double","id":1},"y":{"type":"double","id":2},"z":{"type":"double","id":3,"options":{"default":0}},"gaussianInfo":{"type":"apollo.common.GaussianInfo","id":4}}},"Prediction":{"fields":{"probability":{"type":"double","id":1},"predictedTrajectory":{"rule":"repeated","type":"PolygonPoint","id":2}}},"Decision":{"fields":{"type":{"type":"Type","id":1,"options":{"default":"IGNORE"}},"polygonPoint":{"rule":"repeated","type":"PolygonPoint","id":2},"heading":{"type":"double","id":3},"latitude":{"type":"double","id":4},"longitude":{"type":"double","id":5},"positionX":{"type":"double","id":6},"positionY":{"type":"double","id":7},"length":{"type":"double","id":8,"options":{"default":2.8}},"width":{"type":"double","id":9,"options":{"default":1.4}},"height":{"type":"double","id":10,"options":{"default":1.8}},"stopReason":{"type":"StopReasonCode","id":11},"changeLaneType":{"type":"apollo.routing.ChangeLaneType","id":12}},"nested":{"Type":{"values":{"IGNORE":0,"STOP":1,"NUDGE":2,"YIELD":3,"OVERTAKE":4,"FOLLOW":5,"SIDEPASS":6}},"StopReasonCode":{"values":{"STOP_REASON_HEAD_VEHICLE":1,"STOP_REASON_DESTINATION":2,"STOP_REASON_PEDESTRIAN":3,"STOP_REASON_OBSTACLE":4,"STOP_REASON_SIGNAL":100,"STOP_REASON_STOP_SIGN":101,"STOP_REASON_YIELD_SIGN":102,"STOP_REASON_CLEAR_ZONE":103,"STOP_REASON_CROSSWALK":104,"STOP_REASON_EMERGENCY":105,"STOP_REASON_NOT_READY":106,"STOP_REASON_PULL_OVER":107}}}},"Object":{"fields":{"id":{"type":"string","id":1},"polygonPoint":{"rule":"repeated","type":"PolygonPoint","id":2},"heading":{"type":"double","id":3},"latitude":{"type":"double","id":4},"longitude":{"type":"double","id":5},"positionX":{"type":"double","id":6},"positionY":{"type":"double","id":7},"length":{"type":"double","id":8,"options":{"default":2.8}},"width":{"type":"double","id":9,"options":{"default":1.4}},"height":{"type":"double","id":10,"options":{"default":1.8}},"speed":{"type":"double","id":11},"speedAcceleration":{"type":"double","id":12},"speedJerk":{"type":"double","id":13},"spin":{"type":"double","id":14},"spinAcceleration":{"type":"double","id":15},"spinJerk":{"type":"double","id":16},"speedHeading":{"type":"double","id":17},"kappa":{"type":"double","id":18},"dkappa":{"type":"double","id":35},"signalSet":{"rule":"repeated","type":"string","id":19},"currentSignal":{"type":"string","id":20},"timestampSec":{"type":"double","id":21},"decision":{"rule":"repeated","type":"Decision","id":22},"yieldedObstacle":{"type":"bool","id":32,"options":{"default":false}},"throttlePercentage":{"type":"double","id":23},"brakePercentage":{"type":"double","id":24},"steeringPercentage":{"type":"double","id":25},"steeringAngle":{"type":"double","id":26},"steeringRatio":{"type":"double","id":27},"disengageType":{"type":"DisengageType","id":28},"type":{"type":"Type","id":29},"subType":{"type":"apollo.perception.PerceptionObstacle.SubType","id":34},"prediction":{"rule":"repeated","type":"Prediction","id":30},"confidence":{"type":"double","id":31,"options":{"default":1}},"obstaclePriority":{"type":"apollo.prediction.ObstaclePriority","id":33}},"nested":{"DisengageType":{"values":{"DISENGAGE_NONE":0,"DISENGAGE_UNKNOWN":1,"DISENGAGE_MANUAL":2,"DISENGAGE_EMERGENCY":3,"DISENGAGE_AUTO_STEER_ONLY":4,"DISENGAGE_AUTO_SPEED_ONLY":5,"DISENGAGE_CHASSIS_ERROR":6}},"Type":{"values":{"UNKNOWN":0,"UNKNOWN_MOVABLE":1,"UNKNOWN_UNMOVABLE":2,"PEDESTRIAN":3,"BICYCLE":4,"VEHICLE":5,"VIRTUAL":6,"CIPV":7}}}},"DelaysInMs":{"fields":{"chassis":{"type":"double","id":1},"localization":{"type":"double","id":3},"perceptionObstacle":{"type":"double","id":4},"planning":{"type":"double","id":5},"prediction":{"type":"double","id":7},"trafficLight":{"type":"double","id":8},"control":{"type":"double","id":9}}},"RoutePath":{"fields":{"point":{"rule":"repeated","type":"PolygonPoint","id":1}}},"Latency":{"fields":{"timestampSec":{"type":"double","id":1},"totalTimeMs":{"type":"double","id":2}}},"MapElementIds":{"fields":{"lane":{"rule":"repeated","type":"string","id":1},"crosswalk":{"rule":"repeated","type":"string","id":2},"junction":{"rule":"repeated","type":"string","id":3},"signal":{"rule":"repeated","type":"string","id":4},"stopSign":{"rule":"repeated","type":"string","id":5},"yield":{"rule":"repeated","type":"string","id":6},"overlap":{"rule":"repeated","type":"string","id":7},"road":{"rule":"repeated","type":"string","id":8},"clearArea":{"rule":"repeated","type":"string","id":9},"parkingSpace":{"rule":"repeated","type":"string","id":10},"speedBump":{"rule":"repeated","type":"string","id":11},"pncJunction":{"rule":"repeated","type":"string","id":12}}},"ControlData":{"fields":{"timestampSec":{"type":"double","id":1},"stationError":{"type":"double","id":2},"lateralError":{"type":"double","id":3},"headingError":{"type":"double","id":4},"currentTargetPoint":{"type":"apollo.common.TrajectoryPoint","id":5}}},"Notification":{"fields":{"timestampSec":{"type":"double","id":1},"item":{"type":"apollo.common.monitor.MonitorMessageItem","id":2}}},"SimulationWorld":{"fields":{"timestamp":{"type":"double","id":1},"sequenceNum":{"type":"uint32","id":2},"object":{"rule":"repeated","type":"Object","id":3},"autoDrivingCar":{"type":"Object","id":4},"trafficSignal":{"type":"Object","id":5},"routePath":{"rule":"repeated","type":"RoutePath","id":6},"routingTime":{"type":"double","id":7},"planningTrajectory":{"rule":"repeated","type":"Object","id":8},"mainStop":{"type":"Object","id":9,"options":{"deprecated":true}},"mainDecision":{"type":"Object","id":10},"speedLimit":{"type":"double","id":11},"delay":{"type":"DelaysInMs","id":12},"monitor":{"type":"apollo.common.monitor.MonitorMessage","id":13,"options":{"deprecated":true}},"notification":{"rule":"repeated","type":"Notification","id":14},"engageAdvice":{"type":"string","id":15},"latency":{"keyType":"string","type":"Latency","id":16},"mapElementIds":{"type":"MapElementIds","id":17},"mapHash":{"type":"uint64","id":18},"mapRadius":{"type":"double","id":19},"planningData":{"type":"apollo.planning_internal.PlanningData","id":20},"gps":{"type":"Object","id":21},"laneMarker":{"type":"apollo.perception.LaneMarkers","id":22},"controlData":{"type":"ControlData","id":23},"navigationPath":{"rule":"repeated","type":"apollo.common.Path","id":24},"isRssSafe":{"type":"bool","id":25,"options":{"default":true}},"shadowLocalization":{"type":"Object","id":26},"perceivedSignal":{"rule":"repeated","type":"Object","id":27},"stories":{"keyType":"string","type":"bool","id":28}}},"Options":{"fields":{"legendDisplay":{"type":"bool","id":1,"options":{"default":true}},"x":{"type":"Axis","id":2},"y":{"type":"Axis","id":3},"aspectRatio":{"type":"double","id":4},"syncXyWindowSize":{"type":"bool","id":5,"options":{"default":false}}},"nested":{"Axis":{"fields":{"min":{"type":"double","id":1},"max":{"type":"double","id":2},"labelString":{"type":"string","id":3},"windowSize":{"type":"double","id":4},"stepSize":{"type":"double","id":5},"midValue":{"type":"double","id":6}}}}},"Line":{"fields":{"label":{"type":"string","id":1},"hideLabelInLegend":{"type":"bool","id":2,"options":{"default":false}},"point":{"rule":"repeated","type":"apollo.common.Point2D","id":3},"properties":{"keyType":"string","type":"string","id":4}}},"Polygon":{"fields":{"label":{"type":"string","id":1},"hideLabelInLegend":{"type":"bool","id":2,"options":{"default":false}},"point":{"rule":"repeated","type":"apollo.common.Point2D","id":3},"properties":{"keyType":"string","type":"string","id":4}}},"Car":{"fields":{"label":{"type":"string","id":1},"hideLabelInLegend":{"type":"bool","id":2,"options":{"default":false}},"x":{"type":"double","id":3},"y":{"type":"double","id":4},"heading":{"type":"double","id":5},"color":{"type":"string","id":6}}},"Chart":{"fields":{"title":{"type":"string","id":1},"options":{"type":"Options","id":2},"line":{"rule":"repeated","type":"Line","id":3},"polygon":{"rule":"repeated","type":"Polygon","id":4},"car":{"rule":"repeated","type":"Car","id":5}}},"CameraUpdate":{"fields":{"localization":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"localization2cameraTf":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}},"image":{"type":"bytes","id":3},"imageAspectRatio":{"type":"double","id":4}}}}},"common":{"nested":{"DriveEvent":{"fields":{"header":{"type":"apollo.common.Header","id":1},"event":{"type":"string","id":2},"location":{"type":"apollo.localization.Pose","id":3},"type":{"rule":"repeated","type":"Type","id":4,"options":{"packed":false}},"isReportable":{"type":"bool","id":5}},"nested":{"Type":{"values":{"CRITICAL":0,"PROBLEM":1,"DESIRED":2,"OUT_OF_SCOPE":3}}}},"EngageAdvice":{"fields":{"advice":{"type":"Advice","id":1,"options":{"default":"DISALLOW_ENGAGE"}},"reason":{"type":"string","id":2}},"nested":{"Advice":{"values":{"UNKNOWN":0,"DISALLOW_ENGAGE":1,"READY_TO_ENGAGE":2,"KEEP_ENGAGED":3,"PREPARE_DISENGAGE":4}}}},"ErrorCode":{"values":{"OK":0,"CONTROL_ERROR":1000,"CONTROL_INIT_ERROR":1001,"CONTROL_COMPUTE_ERROR":1002,"CANBUS_ERROR":2000,"CAN_CLIENT_ERROR_BASE":2100,"CAN_CLIENT_ERROR_OPEN_DEVICE_FAILED":2101,"CAN_CLIENT_ERROR_FRAME_NUM":2102,"CAN_CLIENT_ERROR_SEND_FAILED":2103,"CAN_CLIENT_ERROR_RECV_FAILED":2104,"LOCALIZATION_ERROR":3000,"LOCALIZATION_ERROR_MSG":3100,"LOCALIZATION_ERROR_LIDAR":3200,"LOCALIZATION_ERROR_INTEG":3300,"LOCALIZATION_ERROR_GNSS":3400,"PERCEPTION_ERROR":4000,"PERCEPTION_ERROR_TF":4001,"PERCEPTION_ERROR_PROCESS":4002,"PERCEPTION_FATAL":4003,"PERCEPTION_ERROR_NONE":4004,"PERCEPTION_ERROR_UNKNOWN":4005,"PREDICTION_ERROR":5000,"PLANNING_ERROR":6000,"PLANNING_ERROR_NOT_READY":6001,"HDMAP_DATA_ERROR":7000,"ROUTING_ERROR":8000,"ROUTING_ERROR_REQUEST":8001,"ROUTING_ERROR_RESPONSE":8002,"ROUTING_ERROR_NOT_READY":8003,"END_OF_INPUT":9000,"HTTP_LOGIC_ERROR":10000,"HTTP_RUNTIME_ERROR":10001,"RELATIVE_MAP_ERROR":11000,"RELATIVE_MAP_NOT_READY":11001,"DRIVER_ERROR_GNSS":12000,"DRIVER_ERROR_VELODYNE":13000}},"StatusPb":{"fields":{"errorCode":{"type":"ErrorCode","id":1,"options":{"default":"OK"}},"msg":{"type":"string","id":2}}},"PointENU":{"fields":{"x":{"type":"double","id":1,"options":{"default":null}},"y":{"type":"double","id":2,"options":{"default":null}},"z":{"type":"double","id":3,"options":{"default":0}}}},"PointLLH":{"fields":{"lon":{"type":"double","id":1,"options":{"default":null}},"lat":{"type":"double","id":2,"options":{"default":null}},"height":{"type":"double","id":3,"options":{"default":0}}}},"Point2D":{"fields":{"x":{"type":"double","id":1,"options":{"default":null}},"y":{"type":"double","id":2,"options":{"default":null}}}},"Point3D":{"fields":{"x":{"type":"double","id":1,"options":{"default":null}},"y":{"type":"double","id":2,"options":{"default":null}},"z":{"type":"double","id":3,"options":{"default":null}}}},"Quaternion":{"fields":{"qx":{"type":"double","id":1,"options":{"default":null}},"qy":{"type":"double","id":2,"options":{"default":null}},"qz":{"type":"double","id":3,"options":{"default":null}},"qw":{"type":"double","id":4,"options":{"default":null}}}},"Polygon":{"fields":{"point":{"rule":"repeated","type":"Point3D","id":1}}},"Header":{"fields":{"timestampSec":{"type":"double","id":1},"moduleName":{"type":"string","id":2},"sequenceNum":{"type":"uint32","id":3},"lidarTimestamp":{"type":"uint64","id":4},"cameraTimestamp":{"type":"uint64","id":5},"radarTimestamp":{"type":"uint64","id":6},"version":{"type":"uint32","id":7,"options":{"default":1}},"status":{"type":"StatusPb","id":8},"frameId":{"type":"string","id":9}}},"SLPoint":{"fields":{"s":{"type":"double","id":1},"l":{"type":"double","id":2}}},"FrenetFramePoint":{"fields":{"s":{"type":"double","id":1},"l":{"type":"double","id":2},"dl":{"type":"double","id":3},"ddl":{"type":"double","id":4}}},"SpeedPoint":{"fields":{"s":{"type":"double","id":1},"t":{"type":"double","id":2},"v":{"type":"double","id":3},"a":{"type":"double","id":4},"da":{"type":"double","id":5}}},"PathPoint":{"fields":{"x":{"type":"double","id":1},"y":{"type":"double","id":2},"z":{"type":"double","id":3},"theta":{"type":"double","id":4},"kappa":{"type":"double","id":5},"s":{"type":"double","id":6},"dkappa":{"type":"double","id":7},"ddkappa":{"type":"double","id":8},"laneId":{"type":"string","id":9},"xDerivative":{"type":"double","id":10},"yDerivative":{"type":"double","id":11}}},"Path":{"fields":{"name":{"type":"string","id":1},"pathPoint":{"rule":"repeated","type":"PathPoint","id":2}}},"TrajectoryPoint":{"fields":{"pathPoint":{"type":"PathPoint","id":1},"v":{"type":"double","id":2},"a":{"type":"double","id":3},"relativeTime":{"type":"double","id":4},"da":{"type":"double","id":5},"steer":{"type":"double","id":6},"gaussianInfo":{"type":"GaussianInfo","id":7}}},"Trajectory":{"fields":{"name":{"type":"string","id":1},"trajectoryPoint":{"rule":"repeated","type":"TrajectoryPoint","id":2}}},"VehicleMotionPoint":{"fields":{"trajectoryPoint":{"type":"TrajectoryPoint","id":1},"steer":{"type":"double","id":2}}},"VehicleMotion":{"fields":{"name":{"type":"string","id":1},"vehicleMotionPoint":{"rule":"repeated","type":"VehicleMotionPoint","id":2}}},"GaussianInfo":{"fields":{"sigmaX":{"type":"double","id":1},"sigmaY":{"type":"double","id":2},"correlation":{"type":"double","id":3},"areaProbability":{"type":"double","id":4},"ellipseA":{"type":"double","id":5},"ellipseB":{"type":"double","id":6},"thetaA":{"type":"double","id":7}}},"VehicleSignal":{"fields":{"turnSignal":{"type":"TurnSignal","id":1},"highBeam":{"type":"bool","id":2},"lowBeam":{"type":"bool","id":3},"horn":{"type":"bool","id":4},"emergencyLight":{"type":"bool","id":5}},"nested":{"TurnSignal":{"values":{"TURN_NONE":0,"TURN_LEFT":1,"TURN_RIGHT":2}}}},"Transform":{"fields":{"sourceFrame":{"type":"bytes","id":1},"targetFrame":{"type":"bytes","id":2},"translation":{"type":"Point3D","id":3},"rotation":{"type":"Quaternion","id":4}}},"Extrinsics":{"fields":{"tansforms":{"rule":"repeated","type":"Transform","id":1}}},"VehicleBrand":{"values":{"LINCOLN_MKZ":0,"GEM":1,"LEXUS":2,"TRANSIT":3,"GE3":4,"WEY":5,"ZHONGYUN":6,"CH":7}},"VehicleID":{"fields":{"vin":{"type":"string","id":1},"plate":{"type":"string","id":2},"otherUniqueId":{"type":"string","id":3}}},"LatencyParam":{"fields":{"deadTime":{"type":"double","id":1},"riseTime":{"type":"double","id":2},"peakTime":{"type":"double","id":3},"settlingTime":{"type":"double","id":4}}},"VehicleParam":{"fields":{"brand":{"type":"VehicleBrand","id":1},"vehicleId":{"type":"VehicleID","id":2},"frontEdgeToCenter":{"type":"double","id":3,"options":{"default":null}},"backEdgeToCenter":{"type":"double","id":4,"options":{"default":null}},"leftEdgeToCenter":{"type":"double","id":5,"options":{"default":null}},"rightEdgeToCenter":{"type":"double","id":6,"options":{"default":null}},"length":{"type":"double","id":7,"options":{"default":null}},"width":{"type":"double","id":8,"options":{"default":null}},"height":{"type":"double","id":9,"options":{"default":null}},"minTurnRadius":{"type":"double","id":10,"options":{"default":null}},"maxAcceleration":{"type":"double","id":11,"options":{"default":null}},"maxDeceleration":{"type":"double","id":12,"options":{"default":null}},"maxSteerAngle":{"type":"double","id":13,"options":{"default":null}},"maxSteerAngleRate":{"type":"double","id":14,"options":{"default":null}},"minSteerAngleRate":{"type":"double","id":15,"options":{"default":null}},"steerRatio":{"type":"double","id":16,"options":{"default":null}},"wheelBase":{"type":"double","id":17,"options":{"default":null}},"wheelRollingRadius":{"type":"double","id":18,"options":{"default":null}},"maxAbsSpeedWhenStopped":{"type":"float","id":19,"options":{"default":null}},"brakeDeadzone":{"type":"double","id":20,"options":{"default":null}},"throttleDeadzone":{"type":"double","id":21,"options":{"default":null}},"steeringLatencyParam":{"type":"LatencyParam","id":22},"throttleLatencyParam":{"type":"LatencyParam","id":23},"brakeLatencyParam":{"type":"LatencyParam","id":24}}},"VehicleConfig":{"fields":{"header":{"type":"apollo.common.Header","id":1},"vehicleParam":{"type":"VehicleParam","id":2},"extrinsics":{"type":"Extrinsics","id":3}}},"monitor":{"nested":{"MonitorMessageItem":{"fields":{"source":{"type":"MessageSource","id":1,"options":{"default":"UNKNOWN"}},"msg":{"type":"string","id":2},"logLevel":{"type":"LogLevel","id":3,"options":{"default":"INFO"}}},"nested":{"MessageSource":{"values":{"UNKNOWN":1,"CANBUS":2,"CONTROL":3,"DECISION":4,"LOCALIZATION":5,"PLANNING":6,"PREDICTION":7,"SIMULATOR":8,"HWSYS":9,"ROUTING":10,"MONITOR":11,"HMI":12,"RELATIVE_MAP":13,"GNSS":14,"CONTI_RADAR":15,"RACOBIT_RADAR":16,"ULTRASONIC_RADAR":17,"MOBILEYE":18,"DELPHI_ESR":19,"STORYTELLING":20}},"LogLevel":{"values":{"INFO":0,"WARN":1,"ERROR":2,"FATAL":3}}}},"MonitorMessage":{"fields":{"header":{"type":"apollo.common.Header","id":1},"item":{"rule":"repeated","type":"MonitorMessageItem","id":2}}}}}}},"localization":{"nested":{"Uncertainty":{"fields":{"positionStdDev":{"type":"apollo.common.Point3D","id":1},"orientationStdDev":{"type":"apollo.common.Point3D","id":2},"linearVelocityStdDev":{"type":"apollo.common.Point3D","id":3},"linearAccelerationStdDev":{"type":"apollo.common.Point3D","id":4},"angularVelocityStdDev":{"type":"apollo.common.Point3D","id":5}}},"LocalizationEstimate":{"fields":{"header":{"type":"apollo.common.Header","id":1},"pose":{"type":"apollo.localization.Pose","id":2},"uncertainty":{"type":"Uncertainty","id":3},"measurementTime":{"type":"double","id":4},"trajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":5},"msfStatus":{"type":"MsfStatus","id":6},"sensorStatus":{"type":"MsfSensorMsgStatus","id":7}}},"MeasureState":{"values":{"OK":0,"WARNNING":1,"ERROR":2,"CRITICAL_ERROR":3,"FATAL_ERROR":4}},"LocalizationStatus":{"fields":{"header":{"type":"apollo.common.Header","id":1},"fusionStatus":{"type":"MeasureState","id":2},"gnssStatus":{"type":"MeasureState","id":3,"options":{"deprecated":true}},"lidarStatus":{"type":"MeasureState","id":4,"options":{"deprecated":true}},"measurementTime":{"type":"double","id":5},"stateMessage":{"type":"string","id":6}}},"Pose":{"fields":{"position":{"type":"apollo.common.PointENU","id":1},"orientation":{"type":"apollo.common.Quaternion","id":2},"linearVelocity":{"type":"apollo.common.Point3D","id":3},"linearAcceleration":{"type":"apollo.common.Point3D","id":4},"angularVelocity":{"type":"apollo.common.Point3D","id":5},"heading":{"type":"double","id":6},"linearAccelerationVrf":{"type":"apollo.common.Point3D","id":7},"angularVelocityVrf":{"type":"apollo.common.Point3D","id":8},"eulerAngles":{"type":"apollo.common.Point3D","id":9}}},"LocalLidarStatus":{"values":{"MSF_LOCAL_LIDAR_NORMAL":0,"MSF_LOCAL_LIDAR_MAP_MISSING":1,"MSF_LOCAL_LIDAR_EXTRINSICS_MISSING":2,"MSF_LOCAL_LIDAR_MAP_LOADING_FAILED":3,"MSF_LOCAL_LIDAR_NO_OUTPUT":4,"MSF_LOCAL_LIDAR_OUT_OF_MAP":5,"MSF_LOCAL_LIDAR_NOT_GOOD":6,"MSF_LOCAL_LIDAR_UNDEFINED_STATUS":7}},"LocalLidarQuality":{"values":{"MSF_LOCAL_LIDAR_VERY_GOOD":0,"MSF_LOCAL_LIDAR_GOOD":1,"MSF_LOCAL_LIDAR_NOT_BAD":2,"MSF_LOCAL_LIDAR_BAD":3}},"LocalLidarConsistency":{"values":{"MSF_LOCAL_LIDAR_CONSISTENCY_00":0,"MSF_LOCAL_LIDAR_CONSISTENCY_01":1,"MSF_LOCAL_LIDAR_CONSISTENCY_02":2,"MSF_LOCAL_LIDAR_CONSISTENCY_03":3}},"GnssConsistency":{"values":{"MSF_GNSS_CONSISTENCY_00":0,"MSF_GNSS_CONSISTENCY_01":1,"MSF_GNSS_CONSISTENCY_02":2,"MSF_GNSS_CONSISTENCY_03":3}},"GnssPositionType":{"values":{"NONE":0,"FIXEDPOS":1,"FIXEDHEIGHT":2,"FLOATCONV":4,"WIDELANE":5,"NARROWLANE":6,"DOPPLER_VELOCITY":8,"SINGLE":16,"PSRDIFF":17,"WAAS":18,"PROPOGATED":19,"OMNISTAR":20,"L1_FLOAT":32,"IONOFREE_FLOAT":33,"NARROW_FLOAT":34,"L1_INT":48,"WIDE_INT":49,"NARROW_INT":50,"RTK_DIRECT_INS":51,"INS_SBAS":52,"INS_PSRSP":53,"INS_PSRDIFF":54,"INS_RTKFLOAT":55,"INS_RTKFIXED":56,"INS_OMNISTAR":57,"INS_OMNISTAR_HP":58,"INS_OMNISTAR_XP":59,"OMNISTAR_HP":64,"OMNISTAR_XP":65,"PPP_CONVERGING":68,"PPP":69,"INS_PPP_Converging":73,"INS_PPP":74,"MSG_LOSS":91}},"ImuMsgDelayStatus":{"values":{"IMU_DELAY_NORMAL":0,"IMU_DELAY_1":1,"IMU_DELAY_2":2,"IMU_DELAY_3":3,"IMU_DELAY_ABNORMAL":4}},"ImuMsgMissingStatus":{"values":{"IMU_MISSING_NORMAL":0,"IMU_MISSING_1":1,"IMU_MISSING_2":2,"IMU_MISSING_3":3,"IMU_MISSING_4":4,"IMU_MISSING_5":5,"IMU_MISSING_ABNORMAL":6}},"ImuMsgDataStatus":{"values":{"IMU_DATA_NORMAL":0,"IMU_DATA_ABNORMAL":1,"IMU_DATA_OTHER":2}},"MsfRunningStatus":{"values":{"MSF_SOL_LIDAR_GNSS":0,"MSF_SOL_X_GNSS":1,"MSF_SOL_LIDAR_X":2,"MSF_SOL_LIDAR_XX":3,"MSF_SOL_LIDAR_XXX":4,"MSF_SOL_X_X":5,"MSF_SOL_X_XX":6,"MSF_SOL_X_XXX":7,"MSF_SSOL_LIDAR_GNSS":8,"MSF_SSOL_X_GNSS":9,"MSF_SSOL_LIDAR_X":10,"MSF_SSOL_LIDAR_XX":11,"MSF_SSOL_LIDAR_XXX":12,"MSF_SSOL_X_X":13,"MSF_SSOL_X_XX":14,"MSF_SSOL_X_XXX":15,"MSF_NOSOL_LIDAR_GNSS":16,"MSF_NOSOL_X_GNSS":17,"MSF_NOSOL_LIDAR_X":18,"MSF_NOSOL_LIDAR_XX":19,"MSF_NOSOL_LIDAR_XXX":20,"MSF_NOSOL_X_X":21,"MSF_NOSOL_X_XX":22,"MSF_NOSOL_X_XXX":23,"MSF_RUNNING_INIT":24}},"MsfSensorMsgStatus":{"fields":{"imuDelayStatus":{"type":"ImuMsgDelayStatus","id":1},"imuMissingStatus":{"type":"ImuMsgMissingStatus","id":2},"imuDataStatus":{"type":"ImuMsgDataStatus","id":3}}},"MsfStatus":{"fields":{"localLidarConsistency":{"type":"LocalLidarConsistency","id":1},"gnssConsistency":{"type":"GnssConsistency","id":2},"localLidarStatus":{"type":"LocalLidarStatus","id":3},"localLidarQuality":{"type":"LocalLidarQuality","id":4},"gnssposPositionType":{"type":"GnssPositionType","id":5},"msfRunningStatus":{"type":"MsfRunningStatus","id":6}}}}},"canbus":{"nested":{"Chassis":{"fields":{"engineStarted":{"type":"bool","id":3},"engineRpm":{"type":"float","id":4,"options":{"default":null}},"speedMps":{"type":"float","id":5,"options":{"default":null}},"odometerM":{"type":"float","id":6,"options":{"default":null}},"fuelRangeM":{"type":"int32","id":7},"throttlePercentage":{"type":"float","id":8,"options":{"default":null}},"brakePercentage":{"type":"float","id":9,"options":{"default":null}},"steeringPercentage":{"type":"float","id":11,"options":{"default":null}},"steeringTorqueNm":{"type":"float","id":12,"options":{"default":null}},"parkingBrake":{"type":"bool","id":13},"highBeamSignal":{"type":"bool","id":14,"options":{"deprecated":true}},"lowBeamSignal":{"type":"bool","id":15,"options":{"deprecated":true}},"leftTurnSignal":{"type":"bool","id":16,"options":{"deprecated":true}},"rightTurnSignal":{"type":"bool","id":17,"options":{"deprecated":true}},"horn":{"type":"bool","id":18,"options":{"deprecated":true}},"wiper":{"type":"bool","id":19},"disengageStatus":{"type":"bool","id":20,"options":{"deprecated":true}},"drivingMode":{"type":"DrivingMode","id":21,"options":{"default":"COMPLETE_MANUAL"}},"errorCode":{"type":"ErrorCode","id":22,"options":{"default":"NO_ERROR"}},"gearLocation":{"type":"GearPosition","id":23},"steeringTimestamp":{"type":"double","id":24},"header":{"type":"apollo.common.Header","id":25},"chassisErrorMask":{"type":"int32","id":26,"options":{"default":0}},"signal":{"type":"apollo.common.VehicleSignal","id":27},"chassisGps":{"type":"ChassisGPS","id":28},"engageAdvice":{"type":"apollo.common.EngageAdvice","id":29},"wheelSpeed":{"type":"WheelSpeed","id":30},"surround":{"type":"Surround","id":31},"license":{"type":"License","id":32,"options":{"deprecated":true}},"vehicleId":{"type":"apollo.common.VehicleID","id":33}},"nested":{"DrivingMode":{"values":{"COMPLETE_MANUAL":0,"COMPLETE_AUTO_DRIVE":1,"AUTO_STEER_ONLY":2,"AUTO_SPEED_ONLY":3,"EMERGENCY_MODE":4}},"ErrorCode":{"values":{"NO_ERROR":0,"CMD_NOT_IN_PERIOD":1,"CHASSIS_ERROR":2,"CHASSIS_ERROR_ON_STEER":6,"CHASSIS_ERROR_ON_BRAKE":7,"CHASSIS_ERROR_ON_THROTTLE":8,"CHASSIS_ERROR_ON_GEAR":9,"MANUAL_INTERVENTION":3,"CHASSIS_CAN_NOT_IN_PERIOD":4,"UNKNOWN_ERROR":5}},"GearPosition":{"values":{"GEAR_NEUTRAL":0,"GEAR_DRIVE":1,"GEAR_REVERSE":2,"GEAR_PARKING":3,"GEAR_LOW":4,"GEAR_INVALID":5,"GEAR_NONE":6}}}},"ChassisGPS":{"fields":{"latitude":{"type":"double","id":1},"longitude":{"type":"double","id":2},"gpsValid":{"type":"bool","id":3},"year":{"type":"int32","id":4},"month":{"type":"int32","id":5},"day":{"type":"int32","id":6},"hours":{"type":"int32","id":7},"minutes":{"type":"int32","id":8},"seconds":{"type":"int32","id":9},"compassDirection":{"type":"double","id":10},"pdop":{"type":"double","id":11},"isGpsFault":{"type":"bool","id":12},"isInferred":{"type":"bool","id":13},"altitude":{"type":"double","id":14},"heading":{"type":"double","id":15},"hdop":{"type":"double","id":16},"vdop":{"type":"double","id":17},"quality":{"type":"GpsQuality","id":18},"numSatellites":{"type":"int32","id":19},"gpsSpeed":{"type":"double","id":20}}},"GpsQuality":{"values":{"FIX_NO":0,"FIX_2D":1,"FIX_3D":2,"FIX_INVALID":3}},"WheelSpeed":{"fields":{"isWheelSpdRrValid":{"type":"bool","id":1,"options":{"default":false}},"wheelDirectionRr":{"type":"WheelSpeedType","id":2,"options":{"default":"INVALID"}},"wheelSpdRr":{"type":"double","id":3,"options":{"default":0}},"isWheelSpdRlValid":{"type":"bool","id":4,"options":{"default":false}},"wheelDirectionRl":{"type":"WheelSpeedType","id":5,"options":{"default":"INVALID"}},"wheelSpdRl":{"type":"double","id":6,"options":{"default":0}},"isWheelSpdFrValid":{"type":"bool","id":7,"options":{"default":false}},"wheelDirectionFr":{"type":"WheelSpeedType","id":8,"options":{"default":"INVALID"}},"wheelSpdFr":{"type":"double","id":9,"options":{"default":0}},"isWheelSpdFlValid":{"type":"bool","id":10,"options":{"default":false}},"wheelDirectionFl":{"type":"WheelSpeedType","id":11,"options":{"default":"INVALID"}},"wheelSpdFl":{"type":"double","id":12,"options":{"default":0}}},"nested":{"WheelSpeedType":{"values":{"FORWARD":0,"BACKWARD":1,"STANDSTILL":2,"INVALID":3}}}},"Sonar":{"fields":{"range":{"type":"double","id":1},"translation":{"type":"apollo.common.Point3D","id":2},"rotation":{"type":"apollo.common.Quaternion","id":3}}},"Surround":{"fields":{"crossTrafficAlertLeft":{"type":"bool","id":1},"crossTrafficAlertLeftEnabled":{"type":"bool","id":2},"blindSpotLeftAlert":{"type":"bool","id":3},"blindSpotLeftAlertEnabled":{"type":"bool","id":4},"crossTrafficAlertRight":{"type":"bool","id":5},"crossTrafficAlertRightEnabled":{"type":"bool","id":6},"blindSpotRightAlert":{"type":"bool","id":7},"blindSpotRightAlertEnabled":{"type":"bool","id":8},"sonar00":{"type":"double","id":9},"sonar01":{"type":"double","id":10},"sonar02":{"type":"double","id":11},"sonar03":{"type":"double","id":12},"sonar04":{"type":"double","id":13},"sonar05":{"type":"double","id":14},"sonar06":{"type":"double","id":15},"sonar07":{"type":"double","id":16},"sonar08":{"type":"double","id":17},"sonar09":{"type":"double","id":18},"sonar10":{"type":"double","id":19},"sonar11":{"type":"double","id":20},"sonarEnabled":{"type":"bool","id":21},"sonarFault":{"type":"bool","id":22},"sonarRange":{"rule":"repeated","type":"double","id":23,"options":{"packed":false}},"sonar":{"rule":"repeated","type":"Sonar","id":24}}},"License":{"fields":{"vin":{"type":"string","id":1,"options":{"deprecated":true}}}}}},"planning":{"nested":{"autotuning":{"nested":{"PathPointwiseFeature":{"fields":{"l":{"type":"double","id":1},"dl":{"type":"double","id":2},"ddl":{"type":"double","id":3},"kappa":{"type":"double","id":4},"obstacleInfo":{"rule":"repeated","type":"ObstacleFeature","id":5},"leftBoundFeature":{"type":"BoundRelatedFeature","id":6},"rightBoundFeature":{"type":"BoundRelatedFeature","id":7}},"nested":{"ObstacleFeature":{"fields":{"lateralDistance":{"type":"double","id":1}}},"BoundRelatedFeature":{"fields":{"boundDistance":{"type":"double","id":1},"crossableLevel":{"type":"CrossableLevel","id":2}},"nested":{"CrossableLevel":{"values":{"CROSS_FREE":0,"CROSS_ABLE":1,"CROSS_FORBIDDEN":2}}}}}},"SpeedPointwiseFeature":{"fields":{"s":{"type":"double","id":1,"options":{"default":0}},"t":{"type":"double","id":2,"options":{"default":0}},"v":{"type":"double","id":3,"options":{"default":0}},"speedLimit":{"type":"double","id":4,"options":{"default":0}},"acc":{"type":"double","id":5,"options":{"default":0}},"jerk":{"type":"double","id":6,"options":{"default":0}},"followObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":7},"overtakeObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":8},"nudgeObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":9},"stopObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":10},"collisionTimes":{"type":"int32","id":11,"options":{"default":0}},"virtualObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":12},"lateralAcc":{"type":"double","id":13,"options":{"default":0}},"pathCurvatureAbs":{"type":"double","id":14,"options":{"default":0}},"sidepassFrontObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":15},"sidepassRearObsFeature":{"rule":"repeated","type":"ObstacleFeature","id":16}},"nested":{"ObstacleFeature":{"fields":{"longitudinalDistance":{"type":"double","id":1},"obstacleSpeed":{"type":"double","id":2},"lateralDistance":{"type":"double","id":3,"options":{"default":10}},"probability":{"type":"double","id":4},"relativeV":{"type":"double","id":5}}}}},"TrajectoryPointwiseFeature":{"fields":{"pathInputFeature":{"type":"PathPointwiseFeature","id":1},"speedInputFeature":{"type":"SpeedPointwiseFeature","id":2}}},"TrajectoryFeature":{"fields":{"pointFeature":{"rule":"repeated","type":"TrajectoryPointwiseFeature","id":1}}},"PathPointRawFeature":{"fields":{"cartesianCoord":{"type":"apollo.common.PathPoint","id":1},"frenetCoord":{"type":"apollo.common.FrenetFramePoint","id":2}}},"SpeedPointRawFeature":{"fields":{"s":{"type":"double","id":1},"t":{"type":"double","id":2},"v":{"type":"double","id":3},"a":{"type":"double","id":4},"j":{"type":"double","id":5},"speedLimit":{"type":"double","id":6},"follow":{"rule":"repeated","type":"ObjectDecisionFeature","id":10},"overtake":{"rule":"repeated","type":"ObjectDecisionFeature","id":11},"virtualDecision":{"rule":"repeated","type":"ObjectDecisionFeature","id":13},"stop":{"rule":"repeated","type":"ObjectDecisionFeature","id":14},"collision":{"rule":"repeated","type":"ObjectDecisionFeature","id":15},"nudge":{"rule":"repeated","type":"ObjectDecisionFeature","id":12},"sidepassFront":{"rule":"repeated","type":"ObjectDecisionFeature","id":16},"sidepassRear":{"rule":"repeated","type":"ObjectDecisionFeature","id":17},"keepClear":{"rule":"repeated","type":"ObjectDecisionFeature","id":18}},"nested":{"ObjectDecisionFeature":{"fields":{"id":{"type":"int32","id":1},"relativeS":{"type":"double","id":2},"relativeL":{"type":"double","id":3},"relativeV":{"type":"double","id":4},"speed":{"type":"double","id":5}}}}},"ObstacleSTRawData":{"fields":{"obstacleStData":{"rule":"repeated","type":"ObstacleSTData","id":1},"obstacleStNudge":{"rule":"repeated","type":"ObstacleSTData","id":2},"obstacleStSidepass":{"rule":"repeated","type":"ObstacleSTData","id":3}},"nested":{"STPointPair":{"fields":{"sLower":{"type":"double","id":1},"sUpper":{"type":"double","id":2},"t":{"type":"double","id":3},"l":{"type":"double","id":4,"options":{"default":10}}}},"ObstacleSTData":{"fields":{"id":{"type":"int32","id":1},"speed":{"type":"double","id":2},"isVirtual":{"type":"bool","id":3},"probability":{"type":"double","id":4},"polygon":{"rule":"repeated","type":"STPointPair","id":8},"distribution":{"rule":"repeated","type":"STPointPair","id":9}}}}},"TrajectoryPointRawFeature":{"fields":{"pathFeature":{"type":"PathPointRawFeature","id":1},"speedFeature":{"type":"SpeedPointRawFeature","id":2}}},"TrajectoryRawFeature":{"fields":{"pointFeature":{"rule":"repeated","type":"TrajectoryPointRawFeature","id":1},"stRawData":{"type":"ObstacleSTRawData","id":2}}}}},"CosThetaSmootherConfig":{"fields":{"weightCosIncludedAngle":{"type":"double","id":1,"options":{"default":10000}},"weightAnchorPoints":{"type":"double","id":2,"options":{"default":1}},"weightLength":{"type":"double","id":3,"options":{"default":1}},"printLevel":{"type":"int32","id":4,"options":{"default":0}},"maxNumOfIterations":{"type":"int32","id":5,"options":{"default":500}},"acceptableNumOfIterations":{"type":"int32","id":6,"options":{"default":15}},"tol":{"type":"double","id":7,"options":{"default":1e-8}},"acceptableTol":{"type":"double","id":8,"options":{"default":0.1}},"ipoptUseAutomaticDifferentiation":{"type":"bool","id":9,"options":{"default":false}}}},"CreepDeciderConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":0.5}},"speedLimit":{"type":"double","id":2,"options":{"default":1}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":0.3}},"minBoundaryT":{"type":"double","id":4,"options":{"default":6}},"ignoreMaxStMinT":{"type":"double","id":5,"options":{"default":0.1}},"ignoreMinStMinS":{"type":"double","id":6,"options":{"default":15}}}},"SidePassSafetyConfig":{"fields":{"minObstacleLateralDistance":{"type":"double","id":1,"options":{"default":1}},"maxOverlapSRange":{"type":"double","id":2,"options":{"default":5}},"safeDurationReachRefLine":{"type":"double","id":3,"options":{"default":5}}}},"TargetLane":{"fields":{"id":{"type":"string","id":1},"startS":{"type":"double","id":2},"endS":{"type":"double","id":3},"speedLimit":{"type":"double","id":4}}},"ObjectIgnore":{"fields":{}},"StopReasonCode":{"values":{"STOP_REASON_HEAD_VEHICLE":1,"STOP_REASON_DESTINATION":2,"STOP_REASON_PEDESTRIAN":3,"STOP_REASON_OBSTACLE":4,"STOP_REASON_PREPARKING":5,"STOP_REASON_SIGNAL":100,"STOP_REASON_STOP_SIGN":101,"STOP_REASON_YIELD_SIGN":102,"STOP_REASON_CLEAR_ZONE":103,"STOP_REASON_CROSSWALK":104,"STOP_REASON_CREEPER":105,"STOP_REASON_REFERENCE_END":106,"STOP_REASON_YELLOW_SIGNAL":107,"STOP_REASON_PULL_OVER":108,"STOP_REASON_SIDEPASS_SAFETY":109,"STOP_REASON_PRE_OPEN_SPACE_STOP":200,"STOP_REASON_LANE_CHANGE_URGENCY":201,"STOP_REASON_EMERGENCY":202}},"ObjectStop":{"fields":{"reasonCode":{"type":"StopReasonCode","id":1},"distanceS":{"type":"double","id":2},"stopPoint":{"type":"apollo.common.PointENU","id":3},"stopHeading":{"type":"double","id":4},"waitForObstacle":{"rule":"repeated","type":"string","id":5}}},"ObjectNudge":{"fields":{"type":{"type":"Type","id":1},"distanceL":{"type":"double","id":2}},"nested":{"Type":{"values":{"LEFT_NUDGE":1,"RIGHT_NUDGE":2,"NO_NUDGE":3}}}},"ObjectYield":{"fields":{"distanceS":{"type":"double","id":1},"fencePoint":{"type":"apollo.common.PointENU","id":2},"fenceHeading":{"type":"double","id":3},"timeBuffer":{"type":"double","id":4}}},"ObjectFollow":{"fields":{"distanceS":{"type":"double","id":1},"fencePoint":{"type":"apollo.common.PointENU","id":2},"fenceHeading":{"type":"double","id":3}}},"ObjectOvertake":{"fields":{"distanceS":{"type":"double","id":1},"fencePoint":{"type":"apollo.common.PointENU","id":2},"fenceHeading":{"type":"double","id":3},"timeBuffer":{"type":"double","id":4}}},"ObjectSidePass":{"fields":{"type":{"type":"Type","id":1}},"nested":{"Type":{"values":{"LEFT":1,"RIGHT":2}}}},"ObjectAvoid":{"fields":{}},"ObjectStatus":{"fields":{"motionType":{"type":"ObjectMotionType","id":1},"decisionType":{"type":"ObjectDecisionType","id":2}}},"ObjectStatic":{"fields":{}},"ObjectDynamic":{"fields":{}},"ObjectMotionType":{"oneofs":{"motionTag":{"oneof":["static","dynamic"]}},"fields":{"static":{"type":"ObjectStatic","id":1},"dynamic":{"type":"ObjectDynamic","id":2}}},"ObjectDecisionType":{"oneofs":{"objectTag":{"oneof":["ignore","stop","follow","yield","overtake","nudge","avoid","sidePass"]}},"fields":{"ignore":{"type":"ObjectIgnore","id":1},"stop":{"type":"ObjectStop","id":2},"follow":{"type":"ObjectFollow","id":3},"yield":{"type":"ObjectYield","id":4},"overtake":{"type":"ObjectOvertake","id":5},"nudge":{"type":"ObjectNudge","id":6},"avoid":{"type":"ObjectAvoid","id":7},"sidePass":{"type":"ObjectSidePass","id":8}}},"ObjectDecision":{"fields":{"id":{"type":"string","id":1},"perceptionId":{"type":"int32","id":2},"objectDecision":{"rule":"repeated","type":"ObjectDecisionType","id":3}}},"ObjectDecisions":{"fields":{"decision":{"rule":"repeated","type":"ObjectDecision","id":1}}},"MainStop":{"fields":{"reasonCode":{"type":"StopReasonCode","id":1},"reason":{"type":"string","id":2},"stopPoint":{"type":"apollo.common.PointENU","id":3},"stopHeading":{"type":"double","id":4},"changeLaneType":{"type":"apollo.routing.ChangeLaneType","id":5}}},"EmergencyStopHardBrake":{"fields":{}},"EmergencyStopCruiseToStop":{"fields":{}},"MainEmergencyStop":{"oneofs":{"task":{"oneof":["hardBrake","cruiseToStop"]}},"fields":{"reasonCode":{"type":"ReasonCode","id":1},"reason":{"type":"string","id":2},"hardBrake":{"type":"EmergencyStopHardBrake","id":3},"cruiseToStop":{"type":"EmergencyStopCruiseToStop","id":4}},"nested":{"ReasonCode":{"values":{"ESTOP_REASON_INTERNAL_ERR":1,"ESTOP_REASON_COLLISION":2,"ESTOP_REASON_ST_FIND_PATH":3,"ESTOP_REASON_ST_MAKE_DECISION":4,"ESTOP_REASON_SENSOR_ERROR":5}}}},"MainCruise":{"fields":{"changeLaneType":{"type":"apollo.routing.ChangeLaneType","id":1}}},"MainChangeLane":{"fields":{"type":{"type":"Type","id":1},"defaultLane":{"rule":"repeated","type":"TargetLane","id":2},"defaultLaneStop":{"type":"MainStop","id":3},"targetLaneStop":{"type":"MainStop","id":4}},"nested":{"Type":{"values":{"LEFT":1,"RIGHT":2}}}},"MainMissionComplete":{"fields":{"stopPoint":{"type":"apollo.common.PointENU","id":1},"stopHeading":{"type":"double","id":2}}},"MainNotReady":{"fields":{"reason":{"type":"string","id":1}}},"MainParking":{"fields":{"status":{"type":"ParkingStatus","id":1}},"nested":{"ParkingStatus":{"values":{"IN_PARKING":1}}}},"MainDecision":{"oneofs":{"task":{"oneof":["cruise","stop","estop","changeLane","missionComplete","notReady","parking"]}},"fields":{"cruise":{"type":"MainCruise","id":1},"stop":{"type":"MainStop","id":2},"estop":{"type":"MainEmergencyStop","id":3},"changeLane":{"type":"MainChangeLane","id":4,"options":{"deprecated":true}},"missionComplete":{"type":"MainMissionComplete","id":6},"notReady":{"type":"MainNotReady","id":7},"parking":{"type":"MainParking","id":8},"targetLane":{"rule":"repeated","type":"TargetLane","id":5,"options":{"deprecated":true}}}},"DecisionResult":{"fields":{"mainDecision":{"type":"MainDecision","id":1},"objectDecision":{"type":"ObjectDecisions","id":2},"vehicleSignal":{"type":"apollo.common.VehicleSignal","id":3}}},"SpeedHeuristicConfig":{"fields":{"defaultSpeedConfig":{"type":"DpStSpeedConfig","id":1},"laneChangeSpeedConfig":{"type":"DpStSpeedConfig","id":2}}},"DpStSpeedConfig":{"fields":{"unitT":{"type":"double","id":1,"options":{"default":1}},"denseDimensionS":{"type":"int32","id":2,"options":{"default":41}},"denseUnitS":{"type":"double","id":3,"options":{"default":0.5}},"sparseUnitS":{"type":"double","id":4,"options":{"default":1}},"speedWeight":{"type":"double","id":10,"options":{"default":0}},"accelWeight":{"type":"double","id":11,"options":{"default":10}},"jerkWeight":{"type":"double","id":12,"options":{"default":10}},"obstacleWeight":{"type":"double","id":13,"options":{"default":1}},"referenceWeight":{"type":"double","id":14,"options":{"default":0}},"goDownBuffer":{"type":"double","id":15,"options":{"default":5}},"goUpBuffer":{"type":"double","id":16,"options":{"default":5}},"defaultObstacleCost":{"type":"double","id":20,"options":{"default":10000000000}},"defaultSpeedCost":{"type":"double","id":31,"options":{"default":1}},"exceedSpeedPenalty":{"type":"double","id":32,"options":{"default":10}},"lowSpeedPenalty":{"type":"double","id":33,"options":{"default":2.5}},"referenceSpeedPenalty":{"type":"double","id":34,"options":{"default":1}},"keepClearLowSpeedPenalty":{"type":"double","id":35,"options":{"default":10}},"accelPenalty":{"type":"double","id":40,"options":{"default":2}},"decelPenalty":{"type":"double","id":41,"options":{"default":2}},"positiveJerkCoeff":{"type":"double","id":50,"options":{"default":1}},"negativeJerkCoeff":{"type":"double","id":51,"options":{"default":300}},"maxAcceleration":{"type":"double","id":60,"options":{"default":4.5}},"maxDeceleration":{"type":"double","id":61,"options":{"default":-4.5}},"safeTimeBuffer":{"type":"double","id":70,"options":{"default":3}},"safeDistance":{"type":"double","id":71,"options":{"default":20}},"spatialPotentialPenalty":{"type":"double","id":80,"options":{"default":1}},"isLaneChanging":{"type":"bool","id":81,"options":{"default":false}}}},"FemPosDeviationSmootherConfig":{"fields":{"weightFemPosDeviation":{"type":"double","id":2,"options":{"default":10000000000}},"weightRefDeviation":{"type":"double","id":3,"options":{"default":1}},"weightPathLength":{"type":"double","id":4,"options":{"default":1}},"applyCurvatureConstraint":{"type":"bool","id":5,"options":{"default":false}},"weightCurvatureConstraintSlackVar":{"type":"double","id":6,"options":{"default":100}},"curvatureConstraint":{"type":"double","id":7,"options":{"default":0.2}},"useSqp":{"type":"bool","id":8,"options":{"default":false}},"sqpFtol":{"type":"double","id":9,"options":{"default":0.0001}},"sqpCtol":{"type":"double","id":10,"options":{"default":0.001}},"sqpPenMaxIter":{"type":"int32","id":11,"options":{"default":10}},"sqpSubMaxIter":{"type":"int32","id":12,"options":{"default":100}},"maxIter":{"type":"int32","id":100,"options":{"default":500}},"timeLimit":{"type":"double","id":101,"options":{"default":0}},"verbose":{"type":"bool","id":102,"options":{"default":false}},"scaledTermination":{"type":"bool","id":103,"options":{"default":true}},"warmStart":{"type":"bool","id":104,"options":{"default":true}},"printLevel":{"type":"int32","id":200,"options":{"default":0}},"maxNumOfIterations":{"type":"int32","id":201,"options":{"default":500}},"acceptableNumOfIterations":{"type":"int32","id":202,"options":{"default":15}},"tol":{"type":"double","id":203,"options":{"default":1e-8}},"acceptableTol":{"type":"double","id":204,"options":{"default":0.1}}}},"IpoptReturnStatus":{"values":{"SOLVE_SUCCEEDED":0,"SOLVED_TO_ACCEPTABLE_LEVEL":1,"INFEASIBLE_PROBLEM_DETECTED":2,"SEARCH_DIRECTION_BECOMES_TOO_SMALL":3,"DIVERGIN_ITERATES":4,"USER_REQUESTED_STOP":5,"FEASIBLE_POINT_FOUND":6,"MAXIMUM_ITERATIONS_EXCEEDED":-1,"RESTORATION_FAILED":-2,"ERROR_IN_STEP_COMPUTATION":-3,"NOT_ENOUGH_DEGREES_OF_FREEDOM":-10,"INVALID_PROGRAM_DEFINITION":-11,"INVALID_OPTION":-12,"INVALID_NUMBER_DETECTED":-13,"UNRECOVERABLE_EXCEPTION":-100,"NONIPOPT_EXCEPTION_THROWN":-101,"INSUFFICIENT_MEMORY":-102,"INTERNAL_ERROR":199}},"LaneChangeDeciderConfig":{"fields":{"enableLaneChangeUrgencyCheck":{"type":"bool","id":1}}},"LonCondition":{"fields":{"s":{"type":"double","id":1,"options":{"default":0}},"ds":{"type":"double","id":2,"options":{"default":0}},"dds":{"type":"double","id":3,"options":{"default":0}}}},"LatCondition":{"fields":{"l":{"type":"double","id":1,"options":{"default":0}},"dl":{"type":"double","id":2,"options":{"default":0}},"ddl":{"type":"double","id":3,"options":{"default":0}}}},"TStrategy":{"fields":{"tMarkers":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"tStep":{"type":"double","id":2,"options":{"default":0.5}},"strategy":{"type":"string","id":3}}},"SStrategy":{"fields":{"sMarkers":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"sStep":{"type":"double","id":2,"options":{"default":0.5}},"strategy":{"type":"string","id":3}}},"LonSampleConfig":{"fields":{"lonEndCondition":{"type":"LonCondition","id":1},"tStrategy":{"type":"TStrategy","id":2}}},"LatSampleConfig":{"fields":{"latEndCondition":{"type":"LatCondition","id":1},"sStrategy":{"type":"SStrategy","id":2}}},"LatticeSamplingConfig":{"fields":{"lonSampleConfig":{"type":"LonSampleConfig","id":1},"latSampleConfig":{"type":"LatSampleConfig","id":2}}},"StopPoint":{"fields":{"s":{"type":"double","id":1},"type":{"type":"Type","id":2,"options":{"default":"HARD"}}},"nested":{"Type":{"values":{"HARD":0,"SOFT":1}}}},"PlanningTarget":{"fields":{"stopPoint":{"type":"StopPoint","id":1},"cruiseSpeed":{"type":"double","id":2}}},"NaviObstacleDeciderConfig":{"fields":{"minNudgeDistance":{"type":"double","id":1,"options":{"default":0.2}},"maxNudgeDistance":{"type":"double","id":2,"options":{"default":1.2}},"maxAllowNudgeSpeed":{"type":"double","id":3,"options":{"default":16.667}},"safeDistance":{"type":"double","id":4,"options":{"default":0.2}},"nudgeAllowTolerance":{"type":"double","id":5,"options":{"default":0.05}},"cyclesNumber":{"type":"uint32","id":6,"options":{"default":3}},"judgeDisCoeff":{"type":"double","id":7,"options":{"default":2}},"basisDisValue":{"type":"double","id":8,"options":{"default":30}},"lateralVelocityValue":{"type":"double","id":9,"options":{"default":0.5}},"speedDeciderDetectRange":{"type":"double","id":10,"options":{"default":1}},"maxKeepNudgeCycles":{"type":"uint32","id":11,"options":{"default":100}}}},"NaviPathDeciderConfig":{"fields":{"minPathLength":{"type":"double","id":1,"options":{"default":5}},"minLookForwardTime":{"type":"uint32","id":2,"options":{"default":2}},"maxKeepLaneDistance":{"type":"double","id":3,"options":{"default":0.8}},"maxKeepLaneShiftY":{"type":"double","id":4,"options":{"default":20}},"minKeepLaneOffset":{"type":"double","id":5,"options":{"default":15}},"keepLaneShiftCompensation":{"type":"double","id":6,"options":{"default":0.01}},"moveDestLaneConfigTalbe":{"type":"MoveDestLaneConfigTable","id":7},"moveDestLaneCompensation":{"type":"double","id":8,"options":{"default":0.35}},"maxKappaThreshold":{"type":"double","id":9,"options":{"default":0}},"kappaMoveDestLaneCompensation":{"type":"double","id":10,"options":{"default":0}},"startPlanPointFrom":{"type":"uint32","id":11,"options":{"default":0}}}},"MoveDestLaneConfigTable":{"fields":{"lateralShift":{"rule":"repeated","type":"ShiftConfig","id":1}}},"ShiftConfig":{"fields":{"maxSpeed":{"type":"double","id":1,"options":{"default":4.16}},"maxMoveDestLaneShiftY":{"type":"double","id":3,"options":{"default":0.4}}}},"NaviSpeedDeciderConfig":{"fields":{"preferredAccel":{"type":"double","id":1,"options":{"default":2}},"preferredDecel":{"type":"double","id":2,"options":{"default":2}},"preferredJerk":{"type":"double","id":3,"options":{"default":2}},"maxAccel":{"type":"double","id":4,"options":{"default":4}},"maxDecel":{"type":"double","id":5,"options":{"default":5}},"obstacleBuffer":{"type":"double","id":6,"options":{"default":0.5}},"safeDistanceBase":{"type":"double","id":7,"options":{"default":2}},"safeDistanceRatio":{"type":"double","id":8,"options":{"default":1}},"followingAccelRatio":{"type":"double","id":9,"options":{"default":0.5}},"softCentricAccelLimit":{"type":"double","id":10,"options":{"default":1.2}},"hardCentricAccelLimit":{"type":"double","id":11,"options":{"default":1.5}},"hardSpeedLimit":{"type":"double","id":12,"options":{"default":100}},"hardAccelLimit":{"type":"double","id":13,"options":{"default":10}},"enableSafePath":{"type":"bool","id":14,"options":{"default":true}},"enablePlanningStartPoint":{"type":"bool","id":15,"options":{"default":true}},"enableAccelAutoCompensation":{"type":"bool","id":16,"options":{"default":true}},"kappaPreview":{"type":"double","id":17,"options":{"default":0}},"kappaThreshold":{"type":"double","id":18,"options":{"default":0}}}},"OpenSpaceFallBackDeciderConfig":{"fields":{"openSpacePredictionTimePeriod":{"type":"double","id":1,"options":{"default":5}},"openSpaceFallbackCollisionDistance":{"type":"double","id":2,"options":{"default":5}},"openSpaceFallbackStopDistance":{"type":"double","id":3,"options":{"default":2}},"openSpaceFallbackCollisionTimeBuffer":{"type":"double","id":4,"options":{"default":10}}}},"OpenSpacePreStopDeciderConfig":{"fields":{"stopType":{"type":"StopType","id":1},"rightawayStopDistance":{"type":"double","id":2,"options":{"default":2}},"stopDistanceToTarget":{"type":"double","id":3,"options":{"default":5}}},"nested":{"StopType":{"values":{"NOT_DEFINED":0,"PARKING":1,"PULL_OVER":2,"NARROW_STREET_U_TURN":3}}}},"OpenSpaceRoiDeciderConfig":{"fields":{"roiType":{"type":"RoiType","id":1},"roiLongitudinalRange":{"type":"double","id":2,"options":{"default":10}},"parkingStartRange":{"type":"double","id":3,"options":{"default":7}},"parkingInwards":{"type":"bool","id":4,"options":{"default":false}},"enablePerceptionObstacles":{"type":"bool","id":5},"parkingDepthBuffer":{"type":"double","id":6,"options":{"default":0.1}},"roiLinesegmentMinAngle":{"type":"double","id":7,"options":{"default":0.3}},"roiLinesegmentLength":{"type":"double","id":8,"options":{"default":1}},"perceptionObstacleFilteringDistance":{"type":"double","id":9,"options":{"default":1000}},"perceptionObstacleBuffer":{"type":"double","id":10},"curbHeadingTangentChangeUppperLimit":{"type":"double","id":11,"options":{"default":1}}},"nested":{"RoiType":{"values":{"NOT_DEFINED":0,"PARKING":1,"PULL_OVER":2,"PARK_AND_GO":3,"NARROW_STREET_U_TURN":4}}}},"OpenSpaceTrajectoryPartitionConfig":{"fields":{"gearShiftMaxT":{"type":"double","id":1},"gearShiftUnitT":{"type":"double","id":2},"gearShiftPeriodDuration":{"type":"double","id":3},"interpolatedPiecesNum":{"type":"uint64","id":4},"initialGearCheckHorizon":{"type":"uint64","id":5},"headingSearchRange":{"type":"double","id":6},"headingTrackRange":{"type":"double","id":7},"distanceSearchRange":{"type":"double","id":8,"options":{"default":0.000001}},"headingOffsetToMidpoint":{"type":"double","id":9},"lateralOffsetToMidpoint":{"type":"double","id":10,"options":{"default":0.1}},"longitudinalOffsetToMidpoint":{"type":"double","id":11,"options":{"default":0.1}},"vehicleBoxIouThresholdToMidpoint":{"type":"double","id":12,"options":{"default":0.95}},"linearVelocityThresholdOnEgo":{"type":"double","id":13,"options":{"default":0.2}}}},"OpenSpaceTrajectoryProviderConfig":{"fields":{"openSpaceTrajectoryOptimizerConfig":{"type":"OpenSpaceTrajectoryOptimizerConfig","id":1}}},"OpenSpaceTrajectoryOptimizerConfig":{"fields":{"hybridAStarConfig":{"type":"HybridAStarConfig","id":1},"dualVariableWarmStartConfig":{"type":"DualVariableConfig","id":2},"distanceApproachTrajectorySmootherConfig":{"type":"DistanceApproachTrajectorySmootherConfig","id":3},"deltaT":{"type":"float","id":4,"options":{"default":0.5}},"isNearDestinationThreshold":{"type":"double","id":5,"options":{"default":0.001}},"plannerOpenSpaceConfig":{"type":"PlannerOpenSpaceConfig","id":6}}},"HybridAStarConfig":{"fields":{"xyGridResolution":{"type":"double","id":1,"options":{"default":0.2}},"phiGridResolution":{"type":"double","id":2,"options":{"default":0.05}},"nextNodeNum":{"type":"uint64","id":3,"options":{"default":10}},"stepSize":{"type":"double","id":4,"options":{"default":0.5}},"trajForwardPenalty":{"type":"double","id":5,"options":{"default":0}},"trajBackPenalty":{"type":"double","id":6,"options":{"default":0}},"trajGearSwitchPenalty":{"type":"double","id":7,"options":{"default":10}},"trajSteerPenalty":{"type":"double","id":8,"options":{"default":100}},"trajSteerChangePenalty":{"type":"double","id":9,"options":{"default":10}},"gridAStarXyResolution":{"type":"double","id":15,"options":{"default":0.1}},"nodeRadius":{"type":"double","id":16,"options":{"default":0.5}}}},"DualVariableMode":{"values":{"DUAL_VARIABLE_IPOPT":0,"DUAL_VARIABLE_IPOPTQP":1,"DUAL_VARIABLE_OSQP":2,"DUAL_VARIABLE_DEBUG":3}},"DualVariableConfig":{"fields":{"weightD":{"type":"double","id":1,"options":{"default":1}},"ipoptConfig":{"type":"IpoptSolverConfig","id":2},"qpFormat":{"type":"DualVariableMode","id":3},"minSafetyDistance":{"type":"double","id":4,"options":{"default":0}},"debugOsqp":{"type":"bool","id":5,"options":{"default":false}},"beta":{"type":"double","id":6,"options":{"default":1}}}},"DistanceApproachTrajectorySmootherConfig":{"fields":{"weightSteer":{"type":"double","id":1},"weightA":{"type":"double","id":2},"weightSteerRate":{"type":"double","id":3},"weightARate":{"type":"double","id":4},"weightX":{"type":"double","id":5},"weightY":{"type":"double","id":6},"weightPhi":{"type":"double","id":7},"weightV":{"type":"double","id":8},"weightSteerStitching":{"type":"double","id":9},"weightAStitching":{"type":"double","id":10},"weightFirstOrderTime":{"type":"double","id":11},"weightSecondOrderTime":{"type":"double","id":12},"minSafetyDistance":{"type":"double","id":13,"options":{"default":0}},"maxSpeedForward":{"type":"double","id":14,"options":{"default":3}},"maxSpeedReverse":{"type":"double","id":15,"options":{"default":2}},"maxAccelerationForward":{"type":"double","id":16,"options":{"default":2}},"maxAccelerationReverse":{"type":"double","id":17,"options":{"default":2}},"minTimeSampleScaling":{"type":"double","id":18,"options":{"default":0.1}},"maxTimeSampleScaling":{"type":"double","id":19,"options":{"default":10}},"useFixTime":{"type":"bool","id":20,"options":{"default":false}},"ipoptConfig":{"type":"IpoptSolverConfig","id":21},"enableConstraintCheck":{"type":"bool","id":22},"enableHandDerivative":{"type":"bool","id":23},"enableDerivativeCheck":{"type":"bool","id":24},"enableInitialFinalCheck":{"type":"bool","id":25,"options":{"default":false}}}},"IpoptSolverConfig":{"fields":{"ipoptPrintLevel":{"type":"int32","id":1},"mumpsMemPercent":{"type":"int32","id":2},"mumpsPivtol":{"type":"double","id":3},"ipoptMaxIter":{"type":"int32","id":4},"ipoptTol":{"type":"double","id":5},"ipoptAcceptableConstrViolTol":{"type":"double","id":6},"ipoptMinHessianPerturbation":{"type":"double","id":7},"ipoptJacobianRegularizationValue":{"type":"double","id":8},"ipoptPrintTimingStatistics":{"type":"string","id":9},"ipoptAlphaForY":{"type":"string","id":10},"ipoptRecalcY":{"type":"string","id":11},"ipoptMuInit":{"type":"double","id":12,"options":{"default":0.1}}}},"DrivingAction":{"values":{"NONE":100,"FOLLOW":0,"CHANGE_LEFT":1,"CHANGE_RIGHT":2,"PULL_OVER":3,"STOP":4,"RESUME_CRUISE":5}},"PadMessage":{"fields":{"header":{"type":"apollo.common.Header","id":1},"action":{"type":"DrivingAction","id":2}}},"PathAssessmentDeciderConfig":{"fields":{}},"PathBoundsDeciderConfig":{"fields":{"isLaneBorrowing":{"type":"bool","id":1},"isPullOver":{"type":"bool","id":2},"pullOverDestinationToAdcBuffer":{"type":"double","id":3,"options":{"default":25}},"pullOverDestinationToPathendBuffer":{"type":"double","id":4,"options":{"default":10}},"pullOverRoadEdgeBuffer":{"type":"double","id":5,"options":{"default":0.15}},"pullOverApproachLonDistanceAdjustFactor":{"type":"double","id":6,"options":{"default":1.5}}}},"PathDeciderConfig":{"fields":{"staticObstacleBuffer":{"type":"double","id":1,"options":{"default":0.3}}}},"PathLaneBorrowDeciderConfig":{"fields":{"allowLaneBorrowing":{"type":"bool","id":1}}},"PathReuseDeciderConfig":{"fields":{"reusePath":{"type":"bool","id":1}}},"PiecewiseJerkNonlinearSpeedConfig":{"fields":{"accWeight":{"type":"double","id":1,"options":{"default":500}},"jerkWeight":{"type":"double","id":2,"options":{"default":100}},"latAccWeight":{"type":"double","id":3,"options":{"default":500}},"sPotentialWeight":{"type":"double","id":4,"options":{"default":10}},"refVWeight":{"type":"double","id":5,"options":{"default":10}},"refSWeight":{"type":"double","id":6,"options":{"default":10}},"endSWeight":{"type":"double","id":7,"options":{"default":10}},"endVWeight":{"type":"double","id":8,"options":{"default":10}},"endAWeight":{"type":"double","id":9,"options":{"default":10}},"softSBoundWeight":{"type":"double","id":10,"options":{"default":10}},"useWarmStart":{"type":"bool","id":100,"options":{"default":true}}}},"PiecewiseJerkPathConfig":{"fields":{"defaultPathConfig":{"type":"PiecewiseJerkPathWeights","id":1},"laneChangePathConfig":{"type":"PiecewiseJerkPathWeights","id":2}}},"PiecewiseJerkPathWeights":{"fields":{"lWeight":{"type":"double","id":1,"options":{"default":1}},"dlWeight":{"type":"double","id":2,"options":{"default":100}},"ddlWeight":{"type":"double","id":3,"options":{"default":1000}},"dddlWeight":{"type":"double","id":4,"options":{"default":10000}}}},"PiecewiseJerkSpeedConfig":{"fields":{"accWeight":{"type":"double","id":1,"options":{"default":1}},"jerkWeight":{"type":"double","id":2,"options":{"default":10}},"kappaPenaltyWeight":{"type":"double","id":3,"options":{"default":1000}},"refSWeight":{"type":"double","id":4,"options":{"default":10}},"refVWeight":{"type":"double","id":5,"options":{"default":10}}}},"DualWarmUpMode":{"values":{"IPOPT":0,"IPOPTQP":1,"OSQP":2,"DEBUG":3,"SLACKQP":4}},"DistanceApproachMode":{"values":{"DISTANCE_APPROACH_IPOPT":0,"DISTANCE_APPROACH_IPOPT_CUDA":1,"DISTANCE_APPROACH_IPOPT_FIXED_TS":2,"DISTANCE_APPROACH_IPOPT_FIXED_DUAL":3,"DISTANCE_APPROACH_IPOPT_RELAX_END":4,"DISTANCE_APPROACH_IPOPT_RELAX_END_SLACK":5}},"PlannerOpenSpaceConfig":{"fields":{"roiConfig":{"type":"ROIConfig","id":1},"warmStartConfig":{"type":"WarmStartConfig","id":2},"dualVariableWarmStartConfig":{"type":"DualVariableWarmStartConfig","id":3},"distanceApproachConfig":{"type":"DistanceApproachConfig","id":4},"iterativeAnchoringSmootherConfig":{"type":"IterativeAnchoringConfig","id":5},"trajectoryPartitionConfig":{"type":"TrajectoryPartitionConfig","id":6},"deltaT":{"type":"float","id":7,"options":{"default":1}},"isNearDestinationThreshold":{"type":"double","id":8,"options":{"default":0.001}},"enableCheckParallelTrajectory":{"type":"bool","id":9,"options":{"default":false}},"enableLinearInterpolation":{"type":"bool","id":10,"options":{"default":false}},"isNearDestinationThetaThreshold":{"type":"double","id":11,"options":{"default":0.05}}}},"ROIConfig":{"fields":{"roiLongitudinalRange":{"type":"double","id":1,"options":{"default":10}},"parkingStartRange":{"type":"double","id":2,"options":{"default":7}},"parkingInwards":{"type":"bool","id":3,"options":{"default":false}}}},"WarmStartConfig":{"fields":{"xyGridResolution":{"type":"double","id":1,"options":{"default":0.2}},"phiGridResolution":{"type":"double","id":2,"options":{"default":0.05}},"nextNodeNum":{"type":"uint64","id":3,"options":{"default":10}},"stepSize":{"type":"double","id":4,"options":{"default":0.5}},"trajForwardPenalty":{"type":"double","id":5,"options":{"default":0}},"trajBackPenalty":{"type":"double","id":6,"options":{"default":0}},"trajGearSwitchPenalty":{"type":"double","id":7,"options":{"default":10}},"trajSteerPenalty":{"type":"double","id":8,"options":{"default":100}},"trajSteerChangePenalty":{"type":"double","id":9,"options":{"default":10}},"gridAStarXyResolution":{"type":"double","id":15,"options":{"default":0.1}},"nodeRadius":{"type":"double","id":16,"options":{"default":0.5}},"sCurveConfig":{"type":"PiecewiseJerkSpeedConfig","id":17}}},"DualVariableWarmStartConfig":{"fields":{"weightD":{"type":"double","id":1,"options":{"default":1}},"ipoptConfig":{"type":"IpoptConfig","id":2},"qpFormat":{"type":"DualWarmUpMode","id":3},"minSafetyDistance":{"type":"double","id":4,"options":{"default":0}},"debugOsqp":{"type":"bool","id":5,"options":{"default":false}},"beta":{"type":"double","id":6,"options":{"default":1}},"osqpConfig":{"type":"OSQPConfig","id":7}}},"DistanceApproachConfig":{"fields":{"weightSteer":{"type":"double","id":1},"weightA":{"type":"double","id":2},"weightSteerRate":{"type":"double","id":3},"weightARate":{"type":"double","id":4},"weightX":{"type":"double","id":5},"weightY":{"type":"double","id":6},"weightPhi":{"type":"double","id":7},"weightV":{"type":"double","id":8},"weightSteerStitching":{"type":"double","id":9},"weightAStitching":{"type":"double","id":10},"weightFirstOrderTime":{"type":"double","id":11},"weightSecondOrderTime":{"type":"double","id":12},"minSafetyDistance":{"type":"double","id":13,"options":{"default":0}},"maxSpeedForward":{"type":"double","id":14,"options":{"default":3}},"maxSpeedReverse":{"type":"double","id":15,"options":{"default":2}},"maxAccelerationForward":{"type":"double","id":16,"options":{"default":2}},"maxAccelerationReverse":{"type":"double","id":17,"options":{"default":2}},"minTimeSampleScaling":{"type":"double","id":18,"options":{"default":0.1}},"maxTimeSampleScaling":{"type":"double","id":19,"options":{"default":10}},"useFixTime":{"type":"bool","id":20,"options":{"default":false}},"ipoptConfig":{"type":"IpoptConfig","id":21},"enableConstraintCheck":{"type":"bool","id":22},"enableHandDerivative":{"type":"bool","id":23},"enableDerivativeCheck":{"type":"bool","id":24},"enableInitialFinalCheck":{"type":"bool","id":25,"options":{"default":false}},"distanceApproachMode":{"type":"DistanceApproachMode","id":26},"enableJacobianAd":{"type":"bool","id":27,"options":{"default":false}},"enableCheckInitialState":{"type":"bool","id":28,"options":{"default":false}},"weightEndState":{"type":"double","id":29,"options":{"default":0}},"weightSlack":{"type":"double","id":30,"options":{"default":0}}}},"IpoptConfig":{"fields":{"ipoptPrintLevel":{"type":"int32","id":1},"mumpsMemPercent":{"type":"int32","id":2},"mumpsPivtol":{"type":"double","id":3},"ipoptMaxIter":{"type":"int32","id":4},"ipoptTol":{"type":"double","id":5},"ipoptAcceptableConstrViolTol":{"type":"double","id":6},"ipoptMinHessianPerturbation":{"type":"double","id":7},"ipoptJacobianRegularizationValue":{"type":"double","id":8},"ipoptPrintTimingStatistics":{"type":"string","id":9},"ipoptAlphaForY":{"type":"string","id":10},"ipoptRecalcY":{"type":"string","id":11},"ipoptMuInit":{"type":"double","id":12,"options":{"default":0.1}}}},"OSQPConfig":{"fields":{"alpha":{"type":"double","id":1,"options":{"default":1}},"epsAbs":{"type":"double","id":2,"options":{"default":0.001}},"epsRel":{"type":"double","id":3,"options":{"default":0.001}},"maxIter":{"type":"int32","id":4,"options":{"default":10000}},"polish":{"type":"bool","id":5,"options":{"default":true}},"osqpDebugLog":{"type":"bool","id":6,"options":{"default":false}}}},"IterativeAnchoringConfig":{"fields":{"interpolatedDeltaS":{"type":"double","id":1,"options":{"default":0.1}},"reanchoringTrailsNum":{"type":"int32","id":2,"options":{"default":50}},"reanchoringPosStddev":{"type":"double","id":3,"options":{"default":0.25}},"reanchoringLengthStddev":{"type":"double","id":4,"options":{"default":1}},"estimateBound":{"type":"bool","id":5,"options":{"default":false}},"defaultBound":{"type":"double","id":6,"options":{"default":2}},"vehicleShortestDimension":{"type":"double","id":7,"options":{"default":1.04}},"femPosDeviationSmootherConfig":{"type":"FemPosDeviationSmootherConfig","id":8},"collisionDecreaseRatio":{"type":"double","id":9,"options":{"default":0.9}},"maxForwardV":{"type":"double","id":10,"options":{"default":2}},"maxReverseV":{"type":"double","id":11,"options":{"default":2}},"maxForwardAcc":{"type":"double","id":12,"options":{"default":3}},"maxReverseAcc":{"type":"double","id":13,"options":{"default":2}},"maxAccJerk":{"type":"double","id":14,"options":{"default":4}},"deltaT":{"type":"double","id":15,"options":{"default":0.2}},"sCurveConfig":{"type":"PiecewiseJerkSpeedConfig","id":16}}},"TrajectoryPartitionConfig":{"fields":{"interpolatedPiecesNum":{"type":"uint64","id":1,"options":{"default":50}},"initialGearCheckHorizon":{"type":"uint64","id":2,"options":{"default":3}},"headingSearchingRange":{"type":"double","id":3,"options":{"default":0.3}},"gearShiftPeriodDuration":{"type":"double","id":4,"options":{"default":2}},"gearShiftMaxT":{"type":"double","id":5,"options":{"default":3}},"gearShiftUnitT":{"type":"double","id":6,"options":{"default":0.02}}}},"ADCSignals":{"fields":{"signal":{"rule":"repeated","type":"SignalType","id":1,"options":{"packed":false}}},"nested":{"SignalType":{"values":{"LEFT_TURN":1,"RIGHT_TURN":2,"LOW_BEAM_LIGHT":3,"HIGH_BEAM_LIGHT":4,"FOG_LIGHT":5,"EMERGENCY_LIGHT":6}}}},"EStop":{"fields":{"isEstop":{"type":"bool","id":1},"reason":{"type":"string","id":2}}},"TaskStats":{"fields":{"name":{"type":"string","id":1},"timeMs":{"type":"double","id":2}}},"LatencyStats":{"fields":{"totalTimeMs":{"type":"double","id":1},"taskStats":{"rule":"repeated","type":"TaskStats","id":2},"initFrameTimeMs":{"type":"double","id":3}}},"RSSInfo":{"fields":{"isRssSafe":{"type":"bool","id":1},"curDistLon":{"type":"double","id":2},"rssSafeDistLon":{"type":"double","id":3},"accLonRangeMinimum":{"type":"double","id":4},"accLonRangeMaximum":{"type":"double","id":5},"accLatLeftRangeMinimum":{"type":"double","id":6},"accLatLeftRangeMaximum":{"type":"double","id":7},"accLatRightRangeMinimum":{"type":"double","id":8},"accLatRightRangeMaximum":{"type":"double","id":9}}},"ADCTrajectory":{"fields":{"header":{"type":"apollo.common.Header","id":1},"totalPathLength":{"type":"double","id":2},"totalPathTime":{"type":"double","id":3},"trajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":12},"estop":{"type":"EStop","id":6},"pathPoint":{"rule":"repeated","type":"apollo.common.PathPoint","id":13},"isReplan":{"type":"bool","id":9,"options":{"default":false}},"replanReason":{"type":"string","id":22},"gear":{"type":"apollo.canbus.Chassis.GearPosition","id":10},"decision":{"type":"apollo.planning.DecisionResult","id":14},"latencyStats":{"type":"LatencyStats","id":15},"routingHeader":{"type":"apollo.common.Header","id":16},"debug":{"type":"apollo.planning_internal.Debug","id":8},"rightOfWayStatus":{"type":"RightOfWayStatus","id":17},"laneId":{"rule":"repeated","type":"apollo.hdmap.Id","id":18},"engageAdvice":{"type":"apollo.common.EngageAdvice","id":19},"criticalRegion":{"type":"CriticalRegion","id":20},"trajectoryType":{"type":"TrajectoryType","id":21,"options":{"default":"UNKNOWN"}},"targetLaneId":{"rule":"repeated","type":"apollo.hdmap.Id","id":23},"rssInfo":{"type":"RSSInfo","id":100}},"nested":{"RightOfWayStatus":{"values":{"UNPROTECTED":0,"PROTECTED":1}},"CriticalRegion":{"fields":{"region":{"rule":"repeated","type":"apollo.common.Polygon","id":1}}},"TrajectoryType":{"values":{"UNKNOWN":0,"NORMAL":1,"PATH_FALLBACK":2,"SPEED_FALLBACK":3,"PATH_REUSED":4}}}},"TaskConfig":{"oneofs":{"taskConfig":{"oneof":["speedHeuristicConfig","pathDeciderConfig","proceedWithCautionSpeedConfig","creepDeciderConfig","openSpacePreStopDeciderConfig","speedBoundsDeciderConfig","piecewiseJerkPathConfig","pathBoundsDeciderConfig","openSpaceFallbackDeciderConfig","openSpaceRoiDeciderConfig","openSpaceTrajectoryProviderConfig","openSpaceTrajectoryPartitionConfig","pathAssessmentDeciderConfig","piecewiseJerkSpeedConfig","pathLaneBorrowDeciderConfig","laneChangeDeciderConfig","ruleBasedStopDeciderConfig","pathReuseDeciderConfig","stBoundsDeciderConfig","piecewiseJerkNonlinearSpeedConfig"]}},"fields":{"taskType":{"type":"TaskType","id":1},"speedHeuristicConfig":{"type":"SpeedHeuristicConfig","id":3},"pathDeciderConfig":{"type":"PathDeciderConfig","id":7},"proceedWithCautionSpeedConfig":{"type":"ProceedWithCautionSpeedConfig","id":8},"creepDeciderConfig":{"type":"CreepDeciderConfig","id":10},"openSpacePreStopDeciderConfig":{"type":"OpenSpacePreStopDeciderConfig","id":11},"speedBoundsDeciderConfig":{"type":"SpeedBoundsDeciderConfig","id":15},"piecewiseJerkPathConfig":{"type":"PiecewiseJerkPathConfig","id":16},"pathBoundsDeciderConfig":{"type":"PathBoundsDeciderConfig","id":17},"openSpaceFallbackDeciderConfig":{"type":"OpenSpaceFallBackDeciderConfig","id":18},"openSpaceRoiDeciderConfig":{"type":"OpenSpaceRoiDeciderConfig","id":19},"openSpaceTrajectoryProviderConfig":{"type":"OpenSpaceTrajectoryProviderConfig","id":20},"openSpaceTrajectoryPartitionConfig":{"type":"OpenSpaceTrajectoryPartitionConfig","id":21},"pathAssessmentDeciderConfig":{"type":"PathAssessmentDeciderConfig","id":22},"piecewiseJerkSpeedConfig":{"type":"PiecewiseJerkSpeedConfig","id":23},"pathLaneBorrowDeciderConfig":{"type":"PathLaneBorrowDeciderConfig","id":24},"laneChangeDeciderConfig":{"type":"LaneChangeDeciderConfig","id":25},"ruleBasedStopDeciderConfig":{"type":"RuleBasedStopDeciderConfig","id":26},"pathReuseDeciderConfig":{"type":"PathReuseDeciderConfig","id":27},"stBoundsDeciderConfig":{"type":"STBoundsDeciderConfig","id":28},"piecewiseJerkNonlinearSpeedConfig":{"type":"PiecewiseJerkNonlinearSpeedConfig","id":29}},"nested":{"TaskType":{"values":{"DP_ST_SPEED_OPTIMIZER":1,"PATH_DECIDER":4,"SPEED_DECIDER":5,"NAVI_PATH_DECIDER":7,"NAVI_SPEED_DECIDER":8,"NAVI_OBSTACLE_DECIDER":9,"CREEP_DECIDER":11,"OPEN_SPACE_PRE_STOP_DECIDER":12,"PROCEED_WITH_CAUTION_SPEED":15,"DECIDER_RSS":16,"SPEED_BOUNDS_PRIORI_DECIDER":17,"SPEED_BOUNDS_FINAL_DECIDER":18,"PIECEWISE_JERK_PATH_OPTIMIZER":19,"PATH_BOUNDS_DECIDER":20,"OPEN_SPACE_ROI_DECIDER":21,"OPEN_SPACE_TRAJECTORY_PROVIDER":22,"OPEN_SPACE_TRAJECTORY_PARTITION":23,"OPEN_SPACE_FALLBACK_DECIDER":24,"PATH_ASSESSMENT_DECIDER":25,"PATH_LANE_BORROW_DECIDER":26,"PIECEWISE_JERK_SPEED_OPTIMIZER":27,"LANE_CHANGE_DECIDER":28,"RULE_BASED_STOP_DECIDER":29,"PATH_REUSE_DECIDER":30,"ST_BOUNDS_DECIDER":31,"PIECEWISE_JERK_NONLINEAR_SPEED_OPTIMIZER":32}}}},"ScenarioLaneFollowConfig":{"fields":{}},"ScenarioBareIntersectionUnprotectedConfig":{"fields":{"startBareIntersectionScenarioDistance":{"type":"double","id":1,"options":{"default":25}},"enableExplicitStop":{"type":"bool","id":2,"options":{"default":false}},"minPassSDistance":{"type":"double","id":3,"options":{"default":3}},"approachCruiseSpeed":{"type":"double","id":4,"options":{"default":6.7056}},"stopDistance":{"type":"double","id":5,"options":{"default":0.5}},"stopTimeoutSec":{"type":"float","id":6,"options":{"default":8}},"creepTimeoutSec":{"type":"float","id":7,"options":{"default":10}}}},"ScenarioStopSignUnprotectedConfig":{"fields":{"startStopSignScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"watchVehicleMaxValidStopDistance":{"type":"double","id":2,"options":{"default":5}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":3.5}},"stopDurationSec":{"type":"float","id":4,"options":{"default":1}},"minPassSDistance":{"type":"double","id":5,"options":{"default":3}},"stopTimeoutSec":{"type":"float","id":6,"options":{"default":8}},"creepTimeoutSec":{"type":"float","id":7,"options":{"default":10}}}},"ScenarioTrafficLightProtectedConfig":{"fields":{"startTrafficLightScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":2}},"minPassSDistance":{"type":"double","id":3,"options":{"default":3}}}},"ScenarioTrafficLightUnprotectedLeftTurnConfig":{"fields":{"startTrafficLightScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"approachCruiseSpeed":{"type":"double","id":2,"options":{"default":2.78}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":3.5}},"minPassSDistance":{"type":"double","id":4,"options":{"default":3}},"creepTimeoutSec":{"type":"float","id":5,"options":{"default":10}},"maxAdcSpeedBeforeCreep":{"type":"double","id":6,"options":{"default":5.56}}}},"ScenarioTrafficLightUnprotectedRightTurnConfig":{"fields":{"startTrafficLightScenarioDistance":{"type":"double","id":1,"options":{"default":5}},"enableRightTurnOnRed":{"type":"bool","id":2,"options":{"default":false}},"maxValidStopDistance":{"type":"double","id":3,"options":{"default":3.5}},"minPassSDistance":{"type":"double","id":4,"options":{"default":3}},"redLightRightTurnStopDurationSec":{"type":"float","id":5,"options":{"default":3}},"creepTimeoutSec":{"type":"float","id":6,"options":{"default":10}},"maxAdcSpeedBeforeCreep":{"type":"double","id":7,"options":{"default":3}}}},"ScenarioPullOverConfig":{"fields":{"startPullOverScenarioDistance":{"type":"double","id":1,"options":{"default":50}},"pullOverMinDistanceBuffer":{"type":"double","id":2,"options":{"default":10}},"maxDistanceStopSearch":{"type":"double","id":3,"options":{"default":25}},"maxSErrorToEndPoint":{"type":"double","id":4,"options":{"default":0.2}},"maxLErrorToEndPoint":{"type":"double","id":5,"options":{"default":0.5}},"maxThetaErrorToEndPoint":{"type":"double","id":6,"options":{"default":0.2}},"maxDistanceErrorToEndPoint":{"type":"double","id":7,"options":{"default":0.2}},"passDestinationThreshold":{"type":"double","id":8,"options":{"default":10}},"maxValidStopDistance":{"type":"double","id":9,"options":{"default":1}},"sDistanceToStopForOpenSpaceParking":{"type":"double","id":10,"options":{"default":7}}}},"ScenarioEmergencyPullOverConfig":{"fields":{"maxStopDeceleration":{"type":"double","id":1,"options":{"default":3}},"slowDownDecelerationTime":{"type":"double","id":2,"options":{"default":3}},"targetSlowDownSpeed":{"type":"double","id":3,"options":{"default":2.5}},"stopDistance":{"type":"double","id":4,"options":{"default":1.5}}}},"ScenarioEmergencyStopConfig":{"fields":{"maxStopDeceleration":{"type":"double","id":1,"options":{"default":6}},"stopDistance":{"type":"double","id":2,"options":{"default":1}}}},"ScenarioValetParkingConfig":{"fields":{"parkingSpotRangeToStart":{"type":"double","id":1,"options":{"default":20}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":1}}}},"ScenarioNarrowStreetUTurnConfig":{"fields":{}},"ScenarioParkAndGoConfig":{"fields":{"frontObstacleBuffer":{"type":"double","id":1,"options":{"default":4}},"headingBuffer":{"type":"double","id":2,"options":{"default":0.5}},"minDistToDest":{"type":"double","id":3,"options":{"default":25}}}},"ScenarioYieldSignConfig":{"fields":{"startYieldSignScenarioDistance":{"type":"double","id":1,"options":{"default":10}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":4.5}},"minPassSDistance":{"type":"double","id":3,"options":{"default":3}},"creepTimeoutSec":{"type":"float","id":4,"options":{"default":10}}}},"ScenarioConfig":{"oneofs":{"scenarioConfig":{"oneof":["laneFollowConfig","bareIntersectionUnprotectedConfig","emergencyPullOverConfig","emergencyStopConfig","narrowStreetUTurnConfig","stopSignUnprotectedConfig","trafficLightProtectedConfig","trafficLightUnprotectedRightTurnConfig","trafficLightUnprotectedLeftTurnConfig","parkAndGoConfig","pullOverConfig","valetParkingConfig","yieldSignConfig"]}},"fields":{"scenarioType":{"type":"ScenarioType","id":1},"laneFollowConfig":{"type":"ScenarioLaneFollowConfig","id":2},"bareIntersectionUnprotectedConfig":{"type":"ScenarioBareIntersectionUnprotectedConfig","id":4},"emergencyPullOverConfig":{"type":"ScenarioEmergencyPullOverConfig","id":5},"emergencyStopConfig":{"type":"ScenarioEmergencyStopConfig","id":6},"narrowStreetUTurnConfig":{"type":"ScenarioNarrowStreetUTurnConfig","id":7},"stopSignUnprotectedConfig":{"type":"ScenarioStopSignUnprotectedConfig","id":8},"trafficLightProtectedConfig":{"type":"ScenarioTrafficLightProtectedConfig","id":9},"trafficLightUnprotectedRightTurnConfig":{"type":"ScenarioTrafficLightUnprotectedRightTurnConfig","id":10},"trafficLightUnprotectedLeftTurnConfig":{"type":"ScenarioTrafficLightUnprotectedLeftTurnConfig","id":11},"parkAndGoConfig":{"type":"ScenarioParkAndGoConfig","id":12},"pullOverConfig":{"type":"ScenarioPullOverConfig","id":13},"valetParkingConfig":{"type":"ScenarioValetParkingConfig","id":14},"yieldSignConfig":{"type":"ScenarioYieldSignConfig","id":15},"stageType":{"rule":"repeated","type":"StageType","id":16,"options":{"packed":false}},"stageConfig":{"rule":"repeated","type":"StageConfig","id":17}},"nested":{"ScenarioType":{"values":{"LANE_FOLLOW":0,"CHANGE_LANE":1,"BARE_INTERSECTION_UNPROTECTED":3,"STOP_SIGN_PROTECTED":4,"STOP_SIGN_UNPROTECTED":5,"TRAFFIC_LIGHT_PROTECTED":6,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN":7,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN":8,"YIELD_SIGN":9,"PULL_OVER":10,"VALET_PARKING":11,"EMERGENCY_PULL_OVER":12,"EMERGENCY_STOP":13,"NARROW_STREET_U_TURN":14,"PARK_AND_GO":15}},"StageType":{"values":{"NO_STAGE":0,"LANE_FOLLOW_DEFAULT_STAGE":1,"BARE_INTERSECTION_UNPROTECTED_APPROACH":200,"BARE_INTERSECTION_UNPROTECTED_INTERSECTION_CRUISE":201,"STOP_SIGN_UNPROTECTED_PRE_STOP":300,"STOP_SIGN_UNPROTECTED_STOP":301,"STOP_SIGN_UNPROTECTED_CREEP":302,"STOP_SIGN_UNPROTECTED_INTERSECTION_CRUISE":303,"TRAFFIC_LIGHT_PROTECTED_APPROACH":400,"TRAFFIC_LIGHT_PROTECTED_INTERSECTION_CRUISE":401,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN_APPROACH":410,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN_CREEP":411,"TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN_INTERSECTION_CRUISE":412,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN_STOP":420,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN_CREEP":421,"TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN_INTERSECTION_CRUISE":422,"PULL_OVER_APPROACH":500,"PULL_OVER_RETRY_APPROACH_PARKING":501,"PULL_OVER_RETRY_PARKING":502,"EMERGENCY_PULL_OVER_SLOW_DOWN":600,"EMERGENCY_PULL_OVER_APPROACH":601,"EMERGENCY_PULL_OVER_STANDBY":602,"EMERGENCY_STOP_APPROACH":610,"EMERGENCY_STOP_STANDBY":611,"VALET_PARKING_APPROACHING_PARKING_SPOT":700,"VALET_PARKING_PARKING":701,"PARK_AND_GO_CHECK":800,"PARK_AND_GO_CRUISE":801,"PARK_AND_GO_ADJUST":802,"YIELD_SIGN_APPROACH":900,"YIELD_SIGN_CREEP":901}},"StageConfig":{"fields":{"stageType":{"type":"StageType","id":1},"enabled":{"type":"bool","id":2,"options":{"default":true}},"taskType":{"rule":"repeated","type":"TaskConfig.TaskType","id":3,"options":{"packed":false}},"taskConfig":{"rule":"repeated","type":"TaskConfig","id":4}}}}},"PlannerPublicRoadConfig":{"fields":{}},"PlannerNaviConfig":{"fields":{"task":{"rule":"repeated","type":"TaskConfig.TaskType","id":1,"options":{"packed":false}},"naviPathDeciderConfig":{"type":"NaviPathDeciderConfig","id":2},"naviSpeedDeciderConfig":{"type":"NaviSpeedDeciderConfig","id":3},"naviObstacleDeciderConfig":{"type":"NaviObstacleDeciderConfig","id":4}}},"PlannerType":{"values":{"RTK":0,"PUBLIC_ROAD":1,"NAVI":2,"LATTICE":3}},"RtkPlanningConfig":{"fields":{"plannerType":{"type":"PlannerType","id":1}}},"StandardPlanningConfig":{"fields":{"plannerType":{"rule":"repeated","type":"PlannerType","id":1,"options":{"packed":false}},"plannerPublicRoadConfig":{"type":"PlannerPublicRoadConfig","id":2}}},"NavigationPlanningConfig":{"fields":{"plannerType":{"rule":"repeated","type":"PlannerType","id":1,"options":{"packed":false}},"plannerNaviConfig":{"type":"PlannerNaviConfig","id":4}}},"PlanningConfig":{"oneofs":{"planningConfig":{"oneof":["rtkPlanningConfig","standardPlanningConfig","navigationPlanningConfig"]}},"fields":{"rtkPlanningConfig":{"type":"RtkPlanningConfig","id":1},"standardPlanningConfig":{"type":"StandardPlanningConfig","id":2},"navigationPlanningConfig":{"type":"NavigationPlanningConfig","id":3},"defaultTaskConfig":{"rule":"repeated","type":"TaskConfig","id":5}}},"StatsGroup":{"fields":{"max":{"type":"double","id":1},"min":{"type":"double","id":2,"options":{"default":10000000000}},"sum":{"type":"double","id":3},"avg":{"type":"double","id":4},"num":{"type":"int32","id":5}}},"PlanningStats":{"fields":{"totalPathLength":{"type":"StatsGroup","id":1},"totalPathTime":{"type":"StatsGroup","id":2},"v":{"type":"StatsGroup","id":3},"a":{"type":"StatsGroup","id":4},"kappa":{"type":"StatsGroup","id":5},"dkappa":{"type":"StatsGroup","id":6}}},"BareIntersectionStatus":{"fields":{"currentPncJunctionOverlapId":{"type":"string","id":1},"donePncJunctionOverlapId":{"type":"string","id":2}}},"ChangeLaneStatus":{"fields":{"status":{"type":"Status","id":1},"pathId":{"type":"string","id":2},"timestamp":{"type":"double","id":3},"existLaneChangeStartPosition":{"type":"bool","id":4,"options":{"default":false}},"laneChangeStartPosition":{"type":"apollo.common.Point3D","id":5},"lastSucceedTimestamp":{"type":"double","id":6},"isCurrentOptSucceed":{"type":"bool","id":7,"options":{"default":false}},"isClearToChangeLane":{"type":"bool","id":8,"options":{"default":false}}},"nested":{"Status":{"values":{"IN_CHANGE_LANE":1,"CHANGE_LANE_FAILED":2,"CHANGE_LANE_FINISHED":3}}}},"StopTime":{"fields":{"obstacleId":{"type":"string","id":1},"obstacleStopTimestamp":{"type":"double","id":2}}},"CrosswalkStatus":{"fields":{"crosswalkId":{"type":"string","id":1},"stopTime":{"rule":"repeated","type":"StopTime","id":2},"finishedCrosswalk":{"rule":"repeated","type":"string","id":3}}},"DestinationStatus":{"fields":{"hasPassedDestination":{"type":"bool","id":1,"options":{"default":false}}}},"EmergencyStopStatus":{"fields":{"stopFencePoint":{"type":"apollo.common.PointENU","id":1}}},"OpenSpaceStatus":{"fields":{"partitionedTrajectoriesIndexHistory":{"rule":"repeated","type":"string","id":1},"positionInit":{"type":"bool","id":2,"options":{"default":false}}}},"ParkAndGoStatus":{"fields":{"adcInitPosition":{"type":"apollo.common.PointENU","id":1},"adcInitHeading":{"type":"double","id":2},"inCheckStage":{"type":"bool","id":3}}},"PathDeciderStatus":{"fields":{"frontStaticObstacleCycleCounter":{"type":"int32","id":1,"options":{"default":0}},"ableToUseSelfLaneCounter":{"type":"int32","id":2,"options":{"default":0}},"isInPathLaneBorrowScenario":{"type":"bool","id":3,"options":{"default":false}},"frontStaticObstacleId":{"type":"string","id":4,"options":{"default":""}},"decidedSidePassDirection":{"rule":"repeated","type":"LaneBorrowDirection","id":5,"options":{"packed":false}}},"nested":{"LaneBorrowDirection":{"values":{"LEFT_BORROW":1,"RIGHT_BORROW":2}}}},"PathReuseDeciderStatus":{"fields":{"reusedPath":{"type":"bool","id":1,"options":{"default":true}},"laneChangeFailureCounter":{"type":"int32","id":2}}},"PedestrianStatus":{"fields":{"stopTime":{"rule":"repeated","type":"StopTime","id":1}}},"PullOverStatus":{"fields":{"pullOverType":{"type":"PullOverType","id":1},"planPullOverPath":{"type":"bool","id":2,"options":{"default":false}},"position":{"type":"apollo.common.PointENU","id":3},"theta":{"type":"double","id":4},"lengthFront":{"type":"double","id":5},"lengthBack":{"type":"double","id":6},"widthLeft":{"type":"double","id":7},"widthRight":{"type":"double","id":8}},"nested":{"PullOverType":{"values":{"PULL_OVER":1,"EMERGENCY_PULL_OVER":2}}}},"ReroutingStatus":{"fields":{"lastReroutingTime":{"type":"double","id":1},"needRerouting":{"type":"bool","id":2,"options":{"default":false}},"routingRequest":{"type":"apollo.routing.RoutingRequest","id":3}}},"RightOfWayStatus":{"fields":{"junction":{"keyType":"string","type":"bool","id":1}}},"ScenarioStatus":{"fields":{"scenarioType":{"type":"ScenarioConfig.ScenarioType","id":1},"stageType":{"type":"ScenarioConfig.StageType","id":2}}},"SidePassStatus":{"fields":{"changeLaneStopPathPoint":{"type":"apollo.common.PathPoint","id":1},"checkClearFlag":{"type":"bool","id":2}}},"StopSignStatus":{"fields":{"currentStopSignOverlapId":{"type":"string","id":1},"doneStopSignOverlapId":{"type":"string","id":2},"waitForObstacleId":{"rule":"repeated","type":"string","id":3}}},"TrafficLightStatus":{"fields":{"currentTrafficLightOverlapId":{"rule":"repeated","type":"string","id":1},"doneTrafficLightOverlapId":{"rule":"repeated","type":"string","id":2}}},"YieldSignStatus":{"fields":{"currentYieldSignOverlapId":{"rule":"repeated","type":"string","id":1},"doneYieldSignOverlapId":{"rule":"repeated","type":"string","id":2},"waitForObstacleId":{"rule":"repeated","type":"string","id":3}}},"PlanningStatus":{"fields":{"bareIntersection":{"type":"BareIntersectionStatus","id":1},"changeLane":{"type":"ChangeLaneStatus","id":2},"crosswalk":{"type":"CrosswalkStatus","id":3},"destination":{"type":"DestinationStatus","id":4},"emergencyStop":{"type":"EmergencyStopStatus","id":5},"engageAdvice":{"type":"apollo.common.EngageAdvice","id":6},"openSpace":{"type":"OpenSpaceStatus","id":7},"pedestrian":{"type":"PedestrianStatus","id":8},"parkAndGo":{"type":"ParkAndGoStatus","id":9},"pathDecider":{"type":"PathDeciderStatus","id":10},"pathReuseDecider":{"type":"PathReuseDeciderStatus","id":11},"pullOver":{"type":"PullOverStatus","id":12},"rerouting":{"type":"ReroutingStatus","id":13},"rightOfWay":{"type":"RightOfWayStatus","id":14},"scenario":{"type":"ScenarioStatus","id":15},"sidePass":{"type":"SidePassStatus","id":16},"stopSign":{"type":"StopSignStatus","id":17},"trafficLight":{"type":"TrafficLightStatus","id":18},"yieldSign":{"type":"YieldSignStatus","id":19}}},"ProceedWithCautionSpeedConfig":{"fields":{"maxDistance":{"type":"double","id":1,"options":{"default":5}}}},"QuadraticProgrammingProblem":{"fields":{"paramSize":{"type":"int32","id":1},"quadraticMatrix":{"type":"QPMatrix","id":2},"bias":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}},"equalityMatrix":{"type":"QPMatrix","id":4},"equalityValue":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"inequalityMatrix":{"type":"QPMatrix","id":6},"inequalityValue":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"inputMarker":{"rule":"repeated","type":"double","id":8,"options":{"packed":false}},"optimalParam":{"rule":"repeated","type":"double","id":9,"options":{"packed":false}}}},"QPMatrix":{"fields":{"rowSize":{"type":"int32","id":1},"colSize":{"type":"int32","id":2},"element":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}}}},"QuadraticProgrammingProblemSet":{"fields":{"problem":{"rule":"repeated","type":"QuadraticProgrammingProblem","id":1}}},"QpSplineSmootherConfig":{"fields":{"splineOrder":{"type":"uint32","id":1,"options":{"default":5}},"maxSplineLength":{"type":"double","id":2,"options":{"default":25}},"regularizationWeight":{"type":"double","id":3,"options":{"default":0.1}},"secondDerivativeWeight":{"type":"double","id":4,"options":{"default":0}},"thirdDerivativeWeight":{"type":"double","id":5,"options":{"default":100}}}},"SpiralSmootherConfig":{"fields":{"maxDeviation":{"type":"double","id":1,"options":{"default":0.1}},"piecewiseLength":{"type":"double","id":2,"options":{"default":10}},"maxIteration":{"type":"uint32","id":3,"options":{"default":1000}},"optTol":{"type":"double","id":4,"options":{"default":1e-8}},"optAcceptableTol":{"type":"double","id":5,"options":{"default":0.000001}},"optAcceptableIteration":{"type":"uint32","id":6,"options":{"default":15}},"weightCurveLength":{"type":"double","id":7,"options":{"default":1}},"weightKappa":{"type":"double","id":8,"options":{"default":1}},"weightDkappa":{"type":"double","id":9,"options":{"default":100}}}},"DiscretePointsSmootherConfig":{"oneofs":{"SmootherConfig":{"oneof":["cosThetaSmoothing","femPosDeviationSmoothing"]}},"fields":{"smoothingMethod":{"type":"SmoothingMethod","id":3,"options":{"default":"FEM_POS_DEVIATION_SMOOTHING"}},"cosThetaSmoothing":{"type":"CosThetaSmootherConfig","id":4},"femPosDeviationSmoothing":{"type":"FemPosDeviationSmootherConfig","id":5}},"nested":{"SmoothingMethod":{"values":{"NOT_DEFINED":0,"COS_THETA_SMOOTHING":1,"FEM_POS_DEVIATION_SMOOTHING":2}}}},"ReferenceLineSmootherConfig":{"oneofs":{"SmootherConfig":{"oneof":["qpSpline","spiral","discretePoints"]}},"fields":{"maxConstraintInterval":{"type":"double","id":1,"options":{"default":5}},"longitudinalBoundaryBound":{"type":"double","id":2,"options":{"default":1}},"maxLateralBoundaryBound":{"type":"double","id":3,"options":{"default":0.5}},"minLateralBoundaryBound":{"type":"double","id":4,"options":{"default":0.2}},"numOfTotalPoints":{"type":"uint32","id":5,"options":{"default":500}},"curbShift":{"type":"double","id":6,"options":{"default":0.2}},"lateralBuffer":{"type":"double","id":7,"options":{"default":0.2}},"resolution":{"type":"double","id":8,"options":{"default":0.02}},"qpSpline":{"type":"QpSplineSmootherConfig","id":20},"spiral":{"type":"SpiralSmootherConfig","id":21},"discretePoints":{"type":"DiscretePointsSmootherConfig","id":22}}},"RuleBasedStopDeciderConfig":{"fields":{"maxAdcStopSpeed":{"type":"double","id":1,"options":{"default":0.3}},"maxValidStopDistance":{"type":"double","id":2,"options":{"default":0.5}},"searchBeamLength":{"type":"double","id":3,"options":{"default":5}},"searchBeamRadiusIntensity":{"type":"double","id":4,"options":{"default":0.08}},"searchRange":{"type":"double","id":5,"options":{"default":3.14}},"isBlockAngleThreshold":{"type":"double","id":6,"options":{"default":1.57}},"approachDistanceForLaneChange":{"type":"double","id":10,"options":{"default":80}},"urgentDistanceForLaneChange":{"type":"double","id":11,"options":{"default":50}}}},"SLBoundary":{"fields":{"startS":{"type":"double","id":1},"endS":{"type":"double","id":2},"startL":{"type":"double","id":3},"endL":{"type":"double","id":4},"boundaryPoint":{"rule":"repeated","type":"apollo.common.SLPoint","id":5}}},"SpeedBoundsDeciderConfig":{"fields":{"totalTime":{"type":"double","id":1,"options":{"default":7}},"boundaryBuffer":{"type":"double","id":2,"options":{"default":0.1}},"highSpeedCentricAccelerationLimit":{"type":"double","id":3,"options":{"default":1.2}},"lowSpeedCentricAccelerationLimit":{"type":"double","id":4,"options":{"default":1.4}},"highSpeedThreshold":{"type":"double","id":5,"options":{"default":20}},"lowSpeedThreshold":{"type":"double","id":6,"options":{"default":7}},"minimalKappa":{"type":"double","id":7,"options":{"default":0.00001}},"pointExtension":{"type":"double","id":8,"options":{"default":1}},"lowestSpeed":{"type":"double","id":9,"options":{"default":2.5}},"numPointsToAvgKappa":{"type":"uint32","id":10,"options":{"default":4}},"collisionSafetyRange":{"type":"double","id":11,"options":{"default":1}},"staticObsNudgeSpeedRatio":{"type":"double","id":12},"dynamicObsNudgeSpeedRatio":{"type":"double","id":13},"centriJerkSpeedCoeff":{"type":"double","id":14}}},"SpiralCurveConfig":{"fields":{"simpsonSize":{"type":"int32","id":1,"options":{"default":9}},"newtonRaphsonTol":{"type":"double","id":2,"options":{"default":0.01}},"newtonRaphsonMaxIter":{"type":"int32","id":3,"options":{"default":20}}}},"STBoundsDeciderConfig":{"fields":{"totalTime":{"type":"double","id":1,"options":{"default":7}}}},"STDrivableBoundaryInstance":{"fields":{"t":{"type":"double","id":1},"sLower":{"type":"double","id":2},"sUpper":{"type":"double","id":3},"vObsLower":{"type":"double","id":4},"vObsUpper":{"type":"double","id":5}}},"STDrivableBoundary":{"fields":{"stBoundary":{"rule":"repeated","type":"STDrivableBoundaryInstance","id":1}}},"BacksideVehicleConfig":{"fields":{"backsideLaneWidth":{"type":"double","id":1,"options":{"default":4}}}},"ChangeLaneConfig":{"fields":{"minOvertakeDistance":{"type":"double","id":1,"options":{"default":10}},"minOvertakeTime":{"type":"double","id":2,"options":{"default":2}},"enableGuardObstacle":{"type":"bool","id":3,"options":{"default":false}},"guardDistance":{"type":"double","id":4,"options":{"default":100}},"minGuardSpeed":{"type":"double","id":5,"options":{"default":1}}}},"CreepConfig":{"fields":{"enabled":{"type":"bool","id":1},"creepDistanceToStopLine":{"type":"double","id":2,"options":{"default":1}},"stopDistance":{"type":"double","id":3,"options":{"default":0.5}},"speedLimit":{"type":"double","id":4,"options":{"default":1}},"maxValidStopDistance":{"type":"double","id":5,"options":{"default":0.3}},"minBoundaryT":{"type":"double","id":6,"options":{"default":6}},"minBoundaryS":{"type":"double","id":7,"options":{"default":3}}}},"CrosswalkConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":1}},"maxStopDeceleration":{"type":"double","id":2,"options":{"default":4}},"minPassSDistance":{"type":"double","id":3,"options":{"default":1}},"maxValidStopDistance":{"type":"double","id":4,"options":{"default":3}},"expandSDistance":{"type":"double","id":5,"options":{"default":2}},"stopStrictLDistance":{"type":"double","id":6,"options":{"default":4}},"stopLooseLDistance":{"type":"double","id":7,"options":{"default":5}},"stopTimeout":{"type":"double","id":8,"options":{"default":10}}}},"DestinationConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":0.5}}}},"KeepClearConfig":{"fields":{"enableKeepClearZone":{"type":"bool","id":1,"options":{"default":true}},"enableJunction":{"type":"bool","id":2,"options":{"default":true}},"minPassSDistance":{"type":"double","id":3,"options":{"default":2}},"alignWithTrafficSignTolerance":{"type":"double","id":4,"options":{"default":4.5}}}},"ReferenceLineEndConfig":{"fields":{"stopDistance":{"type":"double","id":1,"options":{"default":0.5}},"minReferenceLineRemainLength":{"type":"double","id":2,"options":{"default":50}}}},"ReroutingConfig":{"fields":{"cooldownTime":{"type":"double","id":1,"options":{"default":3}},"prepareReroutingTime":{"type":"double","id":2,"options":{"default":2}}}},"StopSignConfig":{"fields":{"enabled":{"type":"bool","id":1,"options":{"default":true}},"stopDistance":{"type":"double","id":2,"options":{"default":1}}}},"TrafficLightConfig":{"fields":{"enabled":{"type":"bool","id":1,"options":{"default":true}},"stopDistance":{"type":"double","id":2,"options":{"default":1}},"maxStopDeceleration":{"type":"double","id":3,"options":{"default":4}}}},"YieldSignConfig":{"fields":{"enabled":{"type":"bool","id":1,"options":{"default":true}},"stopDistance":{"type":"double","id":2,"options":{"default":1}},"startWatchDistance":{"type":"double","id":3,"options":{"default":2}}}},"TrafficRuleConfig":{"oneofs":{"config":{"oneof":["backsideVehicle","changeLane","crosswalk","destination","keepClear","referenceLineEnd","rerouting","stopSign","trafficLight","yieldSign"]}},"fields":{"ruleId":{"type":"RuleId","id":1},"enabled":{"type":"bool","id":2},"backsideVehicle":{"type":"BacksideVehicleConfig","id":3},"changeLane":{"type":"ChangeLaneConfig","id":4},"crosswalk":{"type":"CrosswalkConfig","id":5},"destination":{"type":"DestinationConfig","id":6},"keepClear":{"type":"KeepClearConfig","id":7},"referenceLineEnd":{"type":"ReferenceLineEndConfig","id":8},"rerouting":{"type":"ReroutingConfig","id":9},"stopSign":{"type":"StopSignConfig","id":10},"trafficLight":{"type":"TrafficLightConfig","id":11},"yieldSign":{"type":"YieldSignConfig","id":12}},"nested":{"RuleId":{"values":{"BACKSIDE_VEHICLE":1,"CHANGE_LANE":2,"CROSSWALK":3,"DESTINATION":4,"KEEP_CLEAR":5,"REFERENCE_LINE_END":6,"REROUTING":7,"STOP_SIGN":8,"TRAFFIC_LIGHT":9,"YIELD_SIGN":10}}}},"TrafficRuleConfigs":{"fields":{"config":{"rule":"repeated","type":"TrafficRuleConfig","id":1}}}}},"planning_internal":{"nested":{"Debug":{"fields":{"planningData":{"type":"PlanningData","id":2}}},"SpeedPlan":{"fields":{"name":{"type":"string","id":1},"speedPoint":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":2}}},"StGraphBoundaryDebug":{"fields":{"name":{"type":"string","id":1},"point":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":2},"type":{"type":"StBoundaryType","id":3}},"nested":{"StBoundaryType":{"values":{"ST_BOUNDARY_TYPE_UNKNOWN":1,"ST_BOUNDARY_TYPE_STOP":2,"ST_BOUNDARY_TYPE_FOLLOW":3,"ST_BOUNDARY_TYPE_YIELD":4,"ST_BOUNDARY_TYPE_OVERTAKE":5,"ST_BOUNDARY_TYPE_KEEP_CLEAR":6,"ST_BOUNDARY_TYPE_DRIVABLE_REGION":7}}}},"SLFrameDebug":{"fields":{"name":{"type":"string","id":1},"sampledS":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}},"staticObstacleLowerBound":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}},"dynamicObstacleLowerBound":{"rule":"repeated","type":"double","id":4,"options":{"packed":false}},"staticObstacleUpperBound":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"dynamicObstacleUpperBound":{"rule":"repeated","type":"double","id":6,"options":{"packed":false}},"mapLowerBound":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"mapUpperBound":{"rule":"repeated","type":"double","id":8,"options":{"packed":false}},"slPath":{"rule":"repeated","type":"apollo.common.SLPoint","id":9},"aggregatedBoundaryS":{"rule":"repeated","type":"double","id":10,"options":{"packed":false}},"aggregatedBoundaryLow":{"rule":"repeated","type":"double","id":11,"options":{"packed":false}},"aggregatedBoundaryHigh":{"rule":"repeated","type":"double","id":12,"options":{"packed":false}}}},"STGraphDebug":{"fields":{"name":{"type":"string","id":1},"boundary":{"rule":"repeated","type":"StGraphBoundaryDebug","id":2},"speedLimit":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":3},"speedProfile":{"rule":"repeated","type":"apollo.common.SpeedPoint","id":4},"speedConstraint":{"type":"STGraphSpeedConstraint","id":5},"kernelCruiseRef":{"type":"STGraphKernelCuiseRef","id":6},"kernelFollowRef":{"type":"STGraphKernelFollowRef","id":7}},"nested":{"STGraphSpeedConstraint":{"fields":{"t":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"lowerBound":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}},"upperBound":{"rule":"repeated","type":"double","id":3,"options":{"packed":false}}}},"STGraphKernelCuiseRef":{"fields":{"t":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"cruiseLineS":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}}}},"STGraphKernelFollowRef":{"fields":{"t":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}},"followLineS":{"rule":"repeated","type":"double","id":2,"options":{"packed":false}}}}}},"SignalLightDebug":{"fields":{"adcSpeed":{"type":"double","id":1},"adcFrontS":{"type":"double","id":2},"signal":{"rule":"repeated","type":"SignalDebug","id":3}},"nested":{"SignalDebug":{"fields":{"lightId":{"type":"string","id":1},"color":{"type":"apollo.perception.TrafficLight.Color","id":2},"lightStopS":{"type":"double","id":3},"adcStopDeceleration":{"type":"double","id":4},"isStopWallCreated":{"type":"bool","id":5}}}}},"DecisionTag":{"fields":{"deciderTag":{"type":"string","id":1},"decision":{"type":"apollo.planning.ObjectDecisionType","id":2}}},"ObstacleDebug":{"fields":{"id":{"type":"string","id":1},"slBoundary":{"type":"apollo.planning.SLBoundary","id":2},"decisionTag":{"rule":"repeated","type":"DecisionTag","id":3},"verticesXCoords":{"rule":"repeated","type":"double","id":4,"options":{"packed":false}},"verticesYCoords":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}}}},"ReferenceLineDebug":{"fields":{"id":{"type":"string","id":1},"length":{"type":"double","id":2},"cost":{"type":"double","id":3},"isChangeLanePath":{"type":"bool","id":4},"isDrivable":{"type":"bool","id":5},"isProtected":{"type":"bool","id":6},"isOffroad":{"type":"bool","id":7},"minimumBoundary":{"type":"double","id":8},"averageKappa":{"type":"double","id":9,"options":{"deprecated":true}},"averageDkappa":{"type":"double","id":10,"options":{"deprecated":true}},"kappaRms":{"type":"double","id":11},"dkappaRms":{"type":"double","id":12},"kappaMaxAbs":{"type":"double","id":13},"dkappaMaxAbs":{"type":"double","id":14},"averageOffset":{"type":"double","id":15}}},"SampleLayerDebug":{"fields":{"slPoint":{"rule":"repeated","type":"apollo.common.SLPoint","id":1}}},"DpPolyGraphDebug":{"fields":{"sampleLayer":{"rule":"repeated","type":"SampleLayerDebug","id":1},"minCostPoint":{"rule":"repeated","type":"apollo.common.SLPoint","id":2}}},"ScenarioDebug":{"fields":{"scenarioType":{"type":"apollo.planning.ScenarioConfig.ScenarioType","id":1},"stageType":{"type":"apollo.planning.ScenarioConfig.StageType","id":2},"msg":{"type":"string","id":3}}},"Trajectories":{"fields":{"trajectory":{"rule":"repeated","type":"apollo.common.Trajectory","id":1}}},"OpenSpaceDebug":{"fields":{"trajectories":{"type":"apollo.planning_internal.Trajectories","id":1},"warmStartTrajectory":{"type":"apollo.common.VehicleMotion","id":2},"smoothedTrajectory":{"type":"apollo.common.VehicleMotion","id":3},"warmStartDualLambda":{"rule":"repeated","type":"double","id":4,"options":{"packed":false}},"warmStartDualMiu":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"optimizedDualLambda":{"rule":"repeated","type":"double","id":6,"options":{"packed":false}},"optimizedDualMiu":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"xyBoundary":{"rule":"repeated","type":"double","id":8,"options":{"packed":false}},"obstacles":{"rule":"repeated","type":"apollo.planning_internal.ObstacleDebug","id":9},"roiShiftPoint":{"type":"apollo.common.TrajectoryPoint","id":10},"endPoint":{"type":"apollo.common.TrajectoryPoint","id":11},"partitionedTrajectories":{"type":"apollo.planning_internal.Trajectories","id":12},"chosenTrajectory":{"type":"apollo.planning_internal.Trajectories","id":13},"isFallbackTrajectory":{"type":"bool","id":14},"fallbackTrajectory":{"type":"apollo.planning_internal.Trajectories","id":15},"trajectoryStitchingPoint":{"type":"apollo.common.TrajectoryPoint","id":16},"futureCollisionPoint":{"type":"apollo.common.TrajectoryPoint","id":17}}},"SmootherDebug":{"fields":{"isSmoothed":{"type":"bool","id":1},"type":{"type":"SmootherType","id":2,"options":{"default":"SMOOTHER_NONE"}},"reason":{"type":"string","id":3}},"nested":{"SmootherType":{"values":{"SMOOTHER_NONE":1,"SMOOTHER_CLOSE_STOP":2}}}},"PullOverDebug":{"fields":{"position":{"type":"apollo.common.PointENU","id":1},"theta":{"type":"double","id":2},"lengthFront":{"type":"double","id":3},"lengthBack":{"type":"double","id":4},"widthLeft":{"type":"double","id":5},"widthRight":{"type":"double","id":6}}},"PlanningData":{"fields":{"adcPosition":{"type":"apollo.localization.LocalizationEstimate","id":7},"chassis":{"type":"apollo.canbus.Chassis","id":8},"routing":{"type":"apollo.routing.RoutingResponse","id":9},"initPoint":{"type":"apollo.common.TrajectoryPoint","id":10},"path":{"rule":"repeated","type":"apollo.common.Path","id":6},"speedPlan":{"rule":"repeated","type":"SpeedPlan","id":13},"stGraph":{"rule":"repeated","type":"STGraphDebug","id":14},"slFrame":{"rule":"repeated","type":"SLFrameDebug","id":15},"predictionHeader":{"type":"apollo.common.Header","id":16},"signalLight":{"type":"SignalLightDebug","id":17},"obstacle":{"rule":"repeated","type":"ObstacleDebug","id":18},"referenceLine":{"rule":"repeated","type":"ReferenceLineDebug","id":19},"dpPolyGraph":{"type":"DpPolyGraphDebug","id":20},"latticeStImage":{"type":"LatticeStTraining","id":21},"relativeMap":{"type":"apollo.relative_map.MapMsg","id":22},"autoTuningTrainingData":{"type":"AutoTuningTrainingData","id":23},"frontClearDistance":{"type":"double","id":24},"chart":{"rule":"repeated","type":"apollo.dreamview.Chart","id":25},"scenario":{"type":"ScenarioDebug","id":26},"openSpace":{"type":"OpenSpaceDebug","id":27},"smoother":{"type":"SmootherDebug","id":28},"pullOver":{"type":"PullOverDebug","id":29}}},"LatticeStPixel":{"fields":{"s":{"type":"int32","id":1},"t":{"type":"int32","id":2},"r":{"type":"uint32","id":3},"g":{"type":"uint32","id":4},"b":{"type":"uint32","id":5}}},"LatticeStTraining":{"fields":{"pixel":{"rule":"repeated","type":"LatticeStPixel","id":1},"timestamp":{"type":"double","id":2},"annotation":{"type":"string","id":3},"numSGrids":{"type":"uint32","id":4},"numTGrids":{"type":"uint32","id":5},"sResolution":{"type":"double","id":6},"tResolution":{"type":"double","id":7}}},"CostComponents":{"fields":{"costComponent":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}}}},"AutoTuningTrainingData":{"fields":{"teacherComponent":{"type":"CostComponents","id":1},"studentComponent":{"type":"CostComponents","id":2}}},"CloudReferenceLineRequest":{"fields":{"laneSegment":{"rule":"repeated","type":"apollo.routing.LaneSegment","id":1}}},"CloudReferenceLineRoutingRequest":{"fields":{"routing":{"type":"apollo.routing.RoutingResponse","id":1}}},"CloudReferenceLineResponse":{"fields":{"segment":{"rule":"repeated","type":"apollo.common.Path","id":1}}}}},"perception":{"nested":{"TrafficLightBox":{"fields":{"x":{"type":"int32","id":1},"y":{"type":"int32","id":2},"width":{"type":"int32","id":3},"height":{"type":"int32","id":4},"color":{"type":"TrafficLight.Color","id":5},"selected":{"type":"bool","id":6},"cameraName":{"type":"string","id":7}}},"TrafficLightDebug":{"fields":{"cropbox":{"type":"TrafficLightBox","id":1},"box":{"rule":"repeated","type":"TrafficLightBox","id":2},"signalNum":{"type":"int32","id":3},"validPos":{"type":"int32","id":4},"tsDiffPos":{"type":"double","id":5},"tsDiffSys":{"type":"double","id":6},"projectError":{"type":"int32","id":7},"distanceToStopLine":{"type":"double","id":8},"cameraId":{"type":"int32","id":9,"options":{"deprecated":true}},"cropRoi":{"rule":"repeated","type":"TrafficLightBox","id":10},"projectedRoi":{"rule":"repeated","type":"TrafficLightBox","id":11},"rectifiedRoi":{"rule":"repeated","type":"TrafficLightBox","id":12},"debugRoi":{"rule":"repeated","type":"TrafficLightBox","id":13}}},"TrafficLight":{"fields":{"color":{"type":"Color","id":1},"id":{"type":"string","id":2},"confidence":{"type":"double","id":3,"options":{"default":1}},"trackingTime":{"type":"double","id":4},"blink":{"type":"bool","id":5},"remainingTime":{"type":"double","id":6}},"nested":{"Color":{"values":{"UNKNOWN":0,"RED":1,"YELLOW":2,"GREEN":3,"BLACK":4}}}},"TrafficLightDetection":{"fields":{"header":{"type":"apollo.common.Header","id":2},"trafficLight":{"rule":"repeated","type":"TrafficLight","id":1},"trafficLightDebug":{"type":"TrafficLightDebug","id":3},"containLights":{"type":"bool","id":4},"cameraId":{"type":"CameraID","id":5}},"nested":{"CameraID":{"values":{"CAMERA_FRONT_LONG":0,"CAMERA_FRONT_NARROW":1,"CAMERA_FRONT_SHORT":2,"CAMERA_FRONT_WIDE":3}}}},"BBox2D":{"fields":{"xmin":{"type":"double","id":1},"ymin":{"type":"double","id":2},"xmax":{"type":"double","id":3},"ymax":{"type":"double","id":4}}},"LightStatus":{"fields":{"brakeVisible":{"type":"double","id":1},"brakeSwitchOn":{"type":"double","id":2},"leftTurnVisible":{"type":"double","id":3},"leftTurnSwitchOn":{"type":"double","id":4},"rightTurnVisible":{"type":"double","id":5},"rightTurnSwitchOn":{"type":"double","id":6}}},"SensorMeasurement":{"fields":{"sensorId":{"type":"string","id":1},"id":{"type":"int32","id":2},"position":{"type":"apollo.common.Point3D","id":3},"theta":{"type":"double","id":4},"length":{"type":"double","id":5},"width":{"type":"double","id":6},"height":{"type":"double","id":7},"velocity":{"type":"apollo.common.Point3D","id":8},"type":{"type":"PerceptionObstacle.Type","id":9},"subType":{"type":"PerceptionObstacle.SubType","id":10},"timestamp":{"type":"double","id":11},"box":{"type":"BBox2D","id":12}}},"PerceptionObstacle":{"fields":{"id":{"type":"int32","id":1},"position":{"type":"apollo.common.Point3D","id":2},"theta":{"type":"double","id":3},"velocity":{"type":"apollo.common.Point3D","id":4},"length":{"type":"double","id":5},"width":{"type":"double","id":6},"height":{"type":"double","id":7},"polygonPoint":{"rule":"repeated","type":"apollo.common.Point3D","id":8},"trackingTime":{"type":"double","id":9},"type":{"type":"Type","id":10},"timestamp":{"type":"double","id":11},"pointCloud":{"rule":"repeated","type":"double","id":12},"confidence":{"type":"double","id":13,"options":{"deprecated":true}},"confidenceType":{"type":"ConfidenceType","id":14,"options":{"deprecated":true}},"drops":{"rule":"repeated","type":"apollo.common.Point3D","id":15,"options":{"deprecated":true}},"acceleration":{"type":"apollo.common.Point3D","id":16},"anchorPoint":{"type":"apollo.common.Point3D","id":17},"bbox2d":{"type":"BBox2D","id":18},"subType":{"type":"SubType","id":19},"measurements":{"rule":"repeated","type":"SensorMeasurement","id":20},"heightAboveGround":{"type":"double","id":21,"options":{"default":null}},"positionCovariance":{"rule":"repeated","type":"double","id":22},"velocityCovariance":{"rule":"repeated","type":"double","id":23},"accelerationCovariance":{"rule":"repeated","type":"double","id":24},"lightStatus":{"type":"LightStatus","id":25}},"nested":{"Type":{"values":{"UNKNOWN":0,"UNKNOWN_MOVABLE":1,"UNKNOWN_UNMOVABLE":2,"PEDESTRIAN":3,"BICYCLE":4,"VEHICLE":5}},"ConfidenceType":{"values":{"CONFIDENCE_UNKNOWN":0,"CONFIDENCE_CNN":1,"CONFIDENCE_RADAR":2}},"SubType":{"values":{"ST_UNKNOWN":0,"ST_UNKNOWN_MOVABLE":1,"ST_UNKNOWN_UNMOVABLE":2,"ST_CAR":3,"ST_VAN":4,"ST_TRUCK":5,"ST_BUS":6,"ST_CYCLIST":7,"ST_MOTORCYCLIST":8,"ST_TRICYCLIST":9,"ST_PEDESTRIAN":10,"ST_TRAFFICCONE":11}}}},"LaneMarker":{"fields":{"laneType":{"type":"apollo.hdmap.LaneBoundaryType.Type","id":1},"quality":{"type":"double","id":2},"modelDegree":{"type":"int32","id":3},"c0Position":{"type":"double","id":4},"c1HeadingAngle":{"type":"double","id":5},"c2Curvature":{"type":"double","id":6},"c3CurvatureDerivative":{"type":"double","id":7},"viewRange":{"type":"double","id":8},"longitudeStart":{"type":"double","id":9},"longitudeEnd":{"type":"double","id":10}}},"LaneMarkers":{"fields":{"leftLaneMarker":{"type":"LaneMarker","id":1},"rightLaneMarker":{"type":"LaneMarker","id":2},"nextLeftLaneMarker":{"rule":"repeated","type":"LaneMarker","id":3},"nextRightLaneMarker":{"rule":"repeated","type":"LaneMarker","id":4}}},"CIPVInfo":{"fields":{"cipvId":{"type":"int32","id":1},"potentialCipvId":{"rule":"repeated","type":"int32","id":2,"options":{"packed":false}}}},"PerceptionObstacles":{"fields":{"perceptionObstacle":{"rule":"repeated","type":"PerceptionObstacle","id":1},"header":{"type":"apollo.common.Header","id":2},"errorCode":{"type":"apollo.common.ErrorCode","id":3,"options":{"default":"OK"}},"laneMarker":{"type":"LaneMarkers","id":4},"cipvInfo":{"type":"CIPVInfo","id":5}}}}},"routing":{"nested":{"LaneWaypoint":{"fields":{"id":{"type":"string","id":1},"s":{"type":"double","id":2},"pose":{"type":"apollo.common.PointENU","id":3}}},"LaneSegment":{"fields":{"id":{"type":"string","id":1},"startS":{"type":"double","id":2},"endS":{"type":"double","id":3}}},"RoutingRequest":{"fields":{"header":{"type":"apollo.common.Header","id":1},"waypoint":{"rule":"repeated","type":"LaneWaypoint","id":2},"blacklistedLane":{"rule":"repeated","type":"LaneSegment","id":3},"blacklistedRoad":{"rule":"repeated","type":"string","id":4},"broadcast":{"type":"bool","id":5,"options":{"default":true}},"parkingSpace":{"type":"apollo.hdmap.ParkingSpace","id":6}}},"Measurement":{"fields":{"distance":{"type":"double","id":1}}},"ChangeLaneType":{"values":{"FORWARD":0,"LEFT":1,"RIGHT":2}},"Passage":{"fields":{"segment":{"rule":"repeated","type":"LaneSegment","id":1},"canExit":{"type":"bool","id":2},"changeLaneType":{"type":"ChangeLaneType","id":3,"options":{"default":"FORWARD"}}}},"RoadSegment":{"fields":{"id":{"type":"string","id":1},"passage":{"rule":"repeated","type":"Passage","id":2}}},"RoutingResponse":{"fields":{"header":{"type":"apollo.common.Header","id":1},"road":{"rule":"repeated","type":"RoadSegment","id":2},"measurement":{"type":"Measurement","id":3},"routingRequest":{"type":"RoutingRequest","id":4},"mapVersion":{"type":"bytes","id":5},"status":{"type":"apollo.common.StatusPb","id":6}}}}},"hdmap":{"nested":{"Projection":{"fields":{"proj":{"type":"string","id":1}}},"Header":{"fields":{"version":{"type":"bytes","id":1},"date":{"type":"bytes","id":2},"projection":{"type":"Projection","id":3},"district":{"type":"bytes","id":4},"generation":{"type":"bytes","id":5},"revMajor":{"type":"bytes","id":6},"revMinor":{"type":"bytes","id":7},"left":{"type":"double","id":8},"top":{"type":"double","id":9},"right":{"type":"double","id":10},"bottom":{"type":"double","id":11},"vendor":{"type":"bytes","id":12}}},"Map":{"fields":{"header":{"type":"Header","id":1},"crosswalk":{"rule":"repeated","type":"Crosswalk","id":2},"junction":{"rule":"repeated","type":"Junction","id":3},"lane":{"rule":"repeated","type":"Lane","id":4},"stopSign":{"rule":"repeated","type":"StopSign","id":5},"signal":{"rule":"repeated","type":"Signal","id":6},"yield":{"rule":"repeated","type":"YieldSign","id":7},"overlap":{"rule":"repeated","type":"Overlap","id":8},"clearArea":{"rule":"repeated","type":"ClearArea","id":9},"speedBump":{"rule":"repeated","type":"SpeedBump","id":10},"road":{"rule":"repeated","type":"Road","id":11},"parkingSpace":{"rule":"repeated","type":"ParkingSpace","id":12},"pncJunction":{"rule":"repeated","type":"PNCJunction","id":13}}},"ClearArea":{"fields":{"id":{"type":"Id","id":1},"overlapId":{"rule":"repeated","type":"Id","id":2},"polygon":{"type":"Polygon","id":3}}},"Crosswalk":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}},"Polygon":{"fields":{"point":{"rule":"repeated","type":"apollo.common.PointENU","id":1}}},"LineSegment":{"fields":{"point":{"rule":"repeated","type":"apollo.common.PointENU","id":1}}},"CurveSegment":{"oneofs":{"curveType":{"oneof":["lineSegment"]}},"fields":{"lineSegment":{"type":"LineSegment","id":1},"s":{"type":"double","id":6},"startPosition":{"type":"apollo.common.PointENU","id":7},"heading":{"type":"double","id":8},"length":{"type":"double","id":9}}},"Curve":{"fields":{"segment":{"rule":"repeated","type":"CurveSegment","id":1}}},"Id":{"fields":{"id":{"type":"string","id":1}}},"Junction":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}},"LaneBoundaryType":{"fields":{"s":{"type":"double","id":1},"types":{"rule":"repeated","type":"Type","id":2,"options":{"packed":false}}},"nested":{"Type":{"values":{"UNKNOWN":0,"DOTTED_YELLOW":1,"DOTTED_WHITE":2,"SOLID_YELLOW":3,"SOLID_WHITE":4,"DOUBLE_YELLOW":5,"CURB":6}}}},"LaneBoundary":{"fields":{"curve":{"type":"Curve","id":1},"length":{"type":"double","id":2},"virtual":{"type":"bool","id":3},"boundaryType":{"rule":"repeated","type":"LaneBoundaryType","id":4}}},"LaneSampleAssociation":{"fields":{"s":{"type":"double","id":1},"width":{"type":"double","id":2}}},"Lane":{"fields":{"id":{"type":"Id","id":1},"centralCurve":{"type":"Curve","id":2},"leftBoundary":{"type":"LaneBoundary","id":3},"rightBoundary":{"type":"LaneBoundary","id":4},"length":{"type":"double","id":5},"speedLimit":{"type":"double","id":6},"overlapId":{"rule":"repeated","type":"Id","id":7},"predecessorId":{"rule":"repeated","type":"Id","id":8},"successorId":{"rule":"repeated","type":"Id","id":9},"leftNeighborForwardLaneId":{"rule":"repeated","type":"Id","id":10},"rightNeighborForwardLaneId":{"rule":"repeated","type":"Id","id":11},"type":{"type":"LaneType","id":12},"turn":{"type":"LaneTurn","id":13},"leftNeighborReverseLaneId":{"rule":"repeated","type":"Id","id":14},"rightNeighborReverseLaneId":{"rule":"repeated","type":"Id","id":15},"junctionId":{"type":"Id","id":16},"leftSample":{"rule":"repeated","type":"LaneSampleAssociation","id":17},"rightSample":{"rule":"repeated","type":"LaneSampleAssociation","id":18},"direction":{"type":"LaneDirection","id":19},"leftRoadSample":{"rule":"repeated","type":"LaneSampleAssociation","id":20},"rightRoadSample":{"rule":"repeated","type":"LaneSampleAssociation","id":21},"selfReverseLaneId":{"rule":"repeated","type":"Id","id":22}},"nested":{"LaneType":{"values":{"NONE":1,"CITY_DRIVING":2,"BIKING":3,"SIDEWALK":4,"PARKING":5,"SHOULDER":6}},"LaneTurn":{"values":{"NO_TURN":1,"LEFT_TURN":2,"RIGHT_TURN":3,"U_TURN":4}},"LaneDirection":{"values":{"FORWARD":1,"BACKWARD":2,"BIDIRECTION":3}}}},"LaneOverlapInfo":{"fields":{"startS":{"type":"double","id":1},"endS":{"type":"double","id":2},"isMerge":{"type":"bool","id":3},"regionOverlapId":{"type":"Id","id":4}}},"SignalOverlapInfo":{"fields":{}},"StopSignOverlapInfo":{"fields":{}},"CrosswalkOverlapInfo":{"fields":{"regionOverlapId":{"type":"Id","id":1}}},"JunctionOverlapInfo":{"fields":{}},"YieldOverlapInfo":{"fields":{}},"ClearAreaOverlapInfo":{"fields":{}},"SpeedBumpOverlapInfo":{"fields":{}},"ParkingSpaceOverlapInfo":{"fields":{}},"PNCJunctionOverlapInfo":{"fields":{}},"RegionOverlapInfo":{"fields":{"id":{"type":"Id","id":1},"polygon":{"rule":"repeated","type":"Polygon","id":2}}},"ObjectOverlapInfo":{"oneofs":{"overlapInfo":{"oneof":["laneOverlapInfo","signalOverlapInfo","stopSignOverlapInfo","crosswalkOverlapInfo","junctionOverlapInfo","yieldSignOverlapInfo","clearAreaOverlapInfo","speedBumpOverlapInfo","parkingSpaceOverlapInfo","pncJunctionOverlapInfo"]}},"fields":{"id":{"type":"Id","id":1},"laneOverlapInfo":{"type":"LaneOverlapInfo","id":3},"signalOverlapInfo":{"type":"SignalOverlapInfo","id":4},"stopSignOverlapInfo":{"type":"StopSignOverlapInfo","id":5},"crosswalkOverlapInfo":{"type":"CrosswalkOverlapInfo","id":6},"junctionOverlapInfo":{"type":"JunctionOverlapInfo","id":7},"yieldSignOverlapInfo":{"type":"YieldOverlapInfo","id":8},"clearAreaOverlapInfo":{"type":"ClearAreaOverlapInfo","id":9},"speedBumpOverlapInfo":{"type":"SpeedBumpOverlapInfo","id":10},"parkingSpaceOverlapInfo":{"type":"ParkingSpaceOverlapInfo","id":11},"pncJunctionOverlapInfo":{"type":"PNCJunctionOverlapInfo","id":12}}},"Overlap":{"fields":{"id":{"type":"Id","id":1},"object":{"rule":"repeated","type":"ObjectOverlapInfo","id":2},"regionOverlap":{"rule":"repeated","type":"RegionOverlapInfo","id":3}}},"ParkingSpace":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3},"heading":{"type":"double","id":4}}},"ParkingLot":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}},"Passage":{"fields":{"id":{"type":"Id","id":1},"signalId":{"rule":"repeated","type":"Id","id":2},"yieldId":{"rule":"repeated","type":"Id","id":3},"stopSignId":{"rule":"repeated","type":"Id","id":4},"laneId":{"rule":"repeated","type":"Id","id":5},"type":{"type":"Type","id":6}},"nested":{"Type":{"values":{"UNKNOWN":0,"ENTRANCE":1,"EXIT":2}}}},"PassageGroup":{"fields":{"id":{"type":"Id","id":1},"passage":{"rule":"repeated","type":"Passage","id":2}}},"PNCJunction":{"fields":{"id":{"type":"Id","id":1},"polygon":{"type":"Polygon","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3},"passageGroup":{"rule":"repeated","type":"PassageGroup","id":4}}},"BoundaryEdge":{"fields":{"curve":{"type":"Curve","id":1},"type":{"type":"Type","id":2}},"nested":{"Type":{"values":{"UNKNOWN":0,"NORMAL":1,"LEFT_BOUNDARY":2,"RIGHT_BOUNDARY":3}}}},"BoundaryPolygon":{"fields":{"edge":{"rule":"repeated","type":"BoundaryEdge","id":1}}},"RoadBoundary":{"fields":{"outerPolygon":{"type":"BoundaryPolygon","id":1},"hole":{"rule":"repeated","type":"BoundaryPolygon","id":2}}},"RoadROIBoundary":{"fields":{"id":{"type":"Id","id":1},"roadBoundaries":{"rule":"repeated","type":"RoadBoundary","id":2}}},"RoadSection":{"fields":{"id":{"type":"Id","id":1},"laneId":{"rule":"repeated","type":"Id","id":2},"boundary":{"type":"RoadBoundary","id":3}}},"Road":{"fields":{"id":{"type":"Id","id":1},"section":{"rule":"repeated","type":"RoadSection","id":2},"junctionId":{"type":"Id","id":3},"type":{"type":"Type","id":4}},"nested":{"Type":{"values":{"UNKNOWN":0,"HIGHWAY":1,"CITY_ROAD":2,"PARK":3}}}},"Subsignal":{"fields":{"id":{"type":"Id","id":1},"type":{"type":"Type","id":2},"location":{"type":"apollo.common.PointENU","id":3}},"nested":{"Type":{"values":{"UNKNOWN":1,"CIRCLE":2,"ARROW_LEFT":3,"ARROW_FORWARD":4,"ARROW_RIGHT":5,"ARROW_LEFT_AND_FORWARD":6,"ARROW_RIGHT_AND_FORWARD":7,"ARROW_U_TURN":8}}}},"SignInfo":{"fields":{"type":{"type":"Type","id":1}},"nested":{"Type":{"values":{"None":0,"NO_RIGHT_TURN_ON_RED":1}}}},"Signal":{"fields":{"id":{"type":"Id","id":1},"boundary":{"type":"Polygon","id":2},"subsignal":{"rule":"repeated","type":"Subsignal","id":3},"overlapId":{"rule":"repeated","type":"Id","id":4},"type":{"type":"Type","id":5},"stopLine":{"rule":"repeated","type":"Curve","id":6},"signInfo":{"rule":"repeated","type":"SignInfo","id":7}},"nested":{"Type":{"values":{"UNKNOWN":1,"MIX_2_HORIZONTAL":2,"MIX_2_VERTICAL":3,"MIX_3_HORIZONTAL":4,"MIX_3_VERTICAL":5,"SINGLE":6}}}},"SpeedBump":{"fields":{"id":{"type":"Id","id":1},"overlapId":{"rule":"repeated","type":"Id","id":2},"position":{"rule":"repeated","type":"Curve","id":3}}},"SpeedControl":{"fields":{"name":{"type":"string","id":1},"polygon":{"type":"apollo.hdmap.Polygon","id":2},"speedLimit":{"type":"double","id":3}}},"SpeedControls":{"fields":{"speedControl":{"rule":"repeated","type":"SpeedControl","id":1}}},"StopSign":{"fields":{"id":{"type":"Id","id":1},"stopLine":{"rule":"repeated","type":"Curve","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3},"type":{"type":"StopType","id":4}},"nested":{"StopType":{"values":{"UNKNOWN":0,"ONE_WAY":1,"TWO_WAY":2,"THREE_WAY":3,"FOUR_WAY":4,"ALL_WAY":5}}}},"YieldSign":{"fields":{"id":{"type":"Id","id":1},"stopLine":{"rule":"repeated","type":"Curve","id":2},"overlapId":{"rule":"repeated","type":"Id","id":3}}}}},"prediction":{"nested":{"Lane":{"fields":{"currentLaneFeature":{"rule":"repeated","type":"LaneFeature","id":1},"laneFeature":{"type":"LaneFeature","id":2},"nearbyLaneFeature":{"rule":"repeated","type":"LaneFeature","id":3},"laneGraph":{"type":"LaneGraph","id":4},"laneGraphOrdered":{"type":"LaneGraph","id":5},"labelUpdateTimeDelta":{"type":"double","id":26}}},"LaneFeature":{"fields":{"laneId":{"type":"string","id":1},"laneTurnType":{"type":"uint32","id":2},"laneS":{"type":"double","id":3},"laneL":{"type":"double","id":4},"angleDiff":{"type":"double","id":5},"distToLeftBoundary":{"type":"double","id":6},"distToRightBoundary":{"type":"double","id":7},"laneHeading":{"type":"double","id":8},"laneType":{"type":"apollo.hdmap.Lane.LaneType","id":9}}},"JunctionExit":{"fields":{"exitLaneId":{"type":"string","id":1},"exitPosition":{"type":"apollo.common.Point3D","id":2},"exitHeading":{"type":"double","id":3},"exitWidth":{"type":"double","id":4}}},"JunctionFeature":{"fields":{"junctionId":{"type":"string","id":1},"junctionRange":{"type":"double","id":2},"enterLane":{"type":"LaneFeature","id":3},"junctionExit":{"rule":"repeated","type":"JunctionExit","id":4},"junctionMlpFeature":{"rule":"repeated","type":"double","id":5,"options":{"packed":false}},"junctionMlpLabel":{"rule":"repeated","type":"int32","id":6,"options":{"packed":false}},"junctionMlpProbability":{"rule":"repeated","type":"double","id":7,"options":{"packed":false}},"startLaneId":{"rule":"repeated","type":"string","id":8}}},"ObstaclePriority":{"fields":{"priority":{"type":"Priority","id":25,"options":{"default":"NORMAL"}}},"nested":{"Priority":{"values":{"CAUTION":1,"NORMAL":2,"IGNORE":3}}}},"Trajectory":{"fields":{"probability":{"type":"double","id":1},"trajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":2}}},"Feature":{"fields":{"id":{"type":"int32","id":1},"polygonPoint":{"rule":"repeated","type":"apollo.common.Point3D","id":30},"position":{"type":"apollo.common.Point3D","id":2},"frontPosition":{"type":"apollo.common.Point3D","id":27},"velocity":{"type":"apollo.common.Point3D","id":3},"rawVelocity":{"type":"apollo.common.Point3D","id":28},"acceleration":{"type":"apollo.common.Point3D","id":4},"velocityHeading":{"type":"double","id":5},"speed":{"type":"double","id":6},"acc":{"type":"double","id":7},"theta":{"type":"double","id":8},"length":{"type":"double","id":9},"width":{"type":"double","id":10},"height":{"type":"double","id":11},"trackingTime":{"type":"double","id":12},"timestamp":{"type":"double","id":13},"lane":{"type":"Lane","id":14},"junctionFeature":{"type":"JunctionFeature","id":26},"tPosition":{"type":"apollo.common.Point3D","id":16},"tVelocity":{"type":"apollo.common.Point3D","id":17,"options":{"deprecated":true}},"tVelocityHeading":{"type":"double","id":18,"options":{"deprecated":true}},"tSpeed":{"type":"double","id":19,"options":{"deprecated":true}},"tAcceleration":{"type":"apollo.common.Point3D","id":20,"options":{"deprecated":true}},"tAcc":{"type":"double","id":21,"options":{"deprecated":true}},"isStill":{"type":"bool","id":22,"options":{"default":false}},"type":{"type":"apollo.perception.PerceptionObstacle.Type","id":23},"labelUpdateTimeDelta":{"type":"double","id":24},"priority":{"type":"ObstaclePriority","id":25},"isNearJunction":{"type":"bool","id":29,"options":{"default":false}},"futureTrajectoryPoints":{"rule":"repeated","type":"PredictionTrajectoryPoint","id":31},"shortTermPredictedTrajectoryPoints":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":32},"predictedTrajectory":{"rule":"repeated","type":"Trajectory","id":33},"adcTrajectoryPoint":{"rule":"repeated","type":"apollo.common.TrajectoryPoint","id":34}}},"ObstacleHistory":{"fields":{"feature":{"rule":"repeated","type":"Feature","id":1},"isTrainable":{"type":"bool","id":2,"options":{"default":false}}}},"FrameEnv":{"fields":{"timestamp":{"type":"double","id":1},"egoHistory":{"type":"ObstacleHistory","id":2},"obstaclesHistory":{"rule":"repeated","type":"ObstacleHistory","id":3}}},"LanePoint":{"fields":{"position":{"type":"apollo.common.Point3D","id":1},"heading":{"type":"double","id":2,"options":{"default":0}},"width":{"type":"double","id":3,"options":{"default":0}},"relativeS":{"type":"double","id":4,"options":{"default":0}},"relativeL":{"type":"double","id":5,"options":{"default":0}},"angleDiff":{"type":"double","id":6,"options":{"default":0}},"kappa":{"type":"double","id":7,"options":{"default":0}},"scenarioType":{"type":"ScenarioType","id":8},"speedLimit":{"type":"double","id":9}},"nested":{"ScenarioType":{"values":{"URBAN_ROAD":0,"JUNCTION":1,"HIGHWAY":2}}}},"LaneSegment":{"fields":{"laneId":{"type":"string","id":1},"startS":{"type":"double","id":2,"options":{"default":0}},"endS":{"type":"double","id":3,"options":{"default":0}},"laneTurnType":{"type":"uint32","id":4,"options":{"default":0}},"lanePoint":{"rule":"repeated","type":"LanePoint","id":5},"adcS":{"type":"double","id":7,"options":{"default":0}},"adcLanePointIdx":{"type":"int32","id":8,"options":{"default":0}},"totalLength":{"type":"double","id":6,"options":{"default":0}}}},"NearbyObstacle":{"fields":{"id":{"type":"int32","id":1},"s":{"type":"double","id":2},"l":{"type":"double","id":3}}},"StopSign":{"fields":{"stopSignId":{"type":"string","id":1},"laneId":{"type":"string","id":2},"laneS":{"type":"double","id":3},"laneSequenceS":{"type":"double","id":4}}},"LaneSequence":{"fields":{"laneSequenceId":{"type":"int32","id":1},"laneSegment":{"rule":"repeated","type":"LaneSegment","id":2},"adcLaneSegmentIdx":{"type":"int32","id":23,"options":{"default":0}},"pathPoint":{"rule":"repeated","type":"apollo.common.PathPoint","id":8},"laneType":{"type":"apollo.hdmap.Lane.LaneType","id":22},"laneS":{"type":"double","id":17},"laneL":{"type":"double","id":18},"vehicleOnLane":{"type":"bool","id":10},"nearbyObstacle":{"rule":"repeated","type":"NearbyObstacle","id":3},"stopSign":{"type":"StopSign","id":20},"rightOfWay":{"type":"int32","id":21},"features":{"type":"Features","id":4},"label":{"type":"int32","id":5,"options":{"default":0}},"probability":{"type":"double","id":6,"options":{"default":0}},"acceleration":{"type":"double","id":7,"options":{"default":0}},"timeToLaneCenter":{"type":"double","id":16},"timeToLaneEdge":{"type":"double","id":19},"behaviorType":{"type":"BehaviorType","id":9},"currLanePoint":{"rule":"repeated","type":"LanePoint","id":11},"leftNeighborPoint":{"rule":"repeated","type":"LanePoint","id":12},"rightNeighborPoint":{"rule":"repeated","type":"LanePoint","id":13},"leftNearbyObstacle":{"rule":"repeated","type":"NearbyObstacle","id":14},"rightNearbyObstacle":{"rule":"repeated","type":"NearbyObstacle","id":15}},"nested":{"Features":{"fields":{"mlpFeatures":{"rule":"repeated","type":"double","id":1,"options":{"packed":false}}}},"BehaviorType":{"values":{"NOT_GOTO_LANE":1,"CONSTANT_SPEED":2,"SMALL_ACCELERATION":3,"LARGE_ACCELERATION":4,"SMALL_DECELERATION":5,"LARGE_DECELERATION":6}}}},"LaneGraph":{"fields":{"laneSequence":{"rule":"repeated","type":"LaneSequence","id":1}}},"LaneObstacle":{"fields":{"obstacleId":{"type":"int32","id":1},"laneId":{"type":"string","id":2},"laneS":{"type":"double","id":3},"laneL":{"type":"double","id":4}}},"PredictionPathPoint":{"fields":{"x":{"rule":"required","type":"double","id":1},"y":{"rule":"required","type":"double","id":2},"velocityHeading":{"type":"double","id":3}}},"PredictionTrajectoryPoint":{"fields":{"pathPoint":{"rule":"required","type":"PredictionPathPoint","id":1},"timestamp":{"rule":"required","type":"double","id":2}}}}},"relative_map":{"nested":{"NavigationPath":{"fields":{"path":{"type":"apollo.common.Path","id":1},"pathPriority":{"type":"uint32","id":2}}},"NavigationInfo":{"fields":{"header":{"type":"apollo.common.Header","id":1},"navigationPath":{"rule":"repeated","type":"NavigationPath","id":2}}},"MapMsg":{"fields":{"header":{"type":"apollo.common.Header","id":1},"hdmap":{"type":"apollo.hdmap.Map","id":2},"navigationPath":{"keyType":"string","type":"NavigationPath","id":3},"laneMarker":{"type":"apollo.perception.LaneMarkers","id":4},"localization":{"type":"apollo.localization.LocalizationEstimate","id":5}}},"SampleParam":{"fields":{"straightSampleInterval":{"type":"double","id":1,"options":{"default":3}},"smallKappaSampleInterval":{"type":"double","id":2,"options":{"default":1}},"middleKappaSampleInterval":{"type":"double","id":3,"options":{"default":0.4}},"largeKappaSampleInterval":{"type":"double","id":4,"options":{"default":0.1}},"smallKappa":{"type":"double","id":5,"options":{"default":0.002}},"middleKappa":{"type":"double","id":6,"options":{"default":0.008}},"largeKappa":{"type":"double","id":7,"options":{"default":0.02}}}},"NavigatorConfig":{"fields":{"enableNavigatorDownsample":{"type":"bool","id":1,"options":{"default":true}},"sampleParam":{"type":"SampleParam","id":2}}},"MapGenerationParam":{"fields":{"defaultLeftWidth":{"type":"double","id":1,"options":{"default":1.75}},"defaultRightWidth":{"type":"double","id":2,"options":{"default":1.75}},"defaultSpeedLimit":{"type":"double","id":3,"options":{"default":29.0576}}}},"NavigationLaneConfig":{"fields":{"minLaneMarkerQuality":{"type":"double","id":1,"options":{"default":0.5}},"laneSource":{"type":"LaneSource","id":2},"maxLenFromNavigationLine":{"type":"double","id":3,"options":{"default":250}},"minLenForNavigationLane":{"type":"double","id":4,"options":{"default":150}},"maxLenForNavigationLane":{"type":"double","id":5,"options":{"default":250}},"ratioNavigationLaneLenToSpeed":{"type":"double","id":6,"options":{"default":8}},"maxDistanceToNavigationLine":{"type":"double","id":7,"options":{"default":15}},"minViewRangeToUseLaneMarker":{"type":"double","id":8,"options":{"default":0.5}},"minLaneHalfWidth":{"type":"double","id":9,"options":{"default":1.5}},"maxLaneHalfWidth":{"type":"double","id":10,"options":{"default":2}},"laneMarkerWeight":{"type":"double","id":11,"options":{"default":0.1}}},"nested":{"LaneSource":{"values":{"PERCEPTION":1,"OFFLINE_GENERATED":2}}}},"RelativeMapConfig":{"fields":{"mapParam":{"type":"MapGenerationParam","id":1},"navigationLane":{"type":"NavigationLaneConfig","id":2}}}}}}}}}')},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=f(n(129)),o=f(n(3)),a=f(n(1)),s=f(n(2)),l=f(n(4)),u=f(n(5)),c=f(n(0)),d=n(7),h=f(n(60)),p=f(n(421));f(n(20));function f(e){return e&&e.__esModule?e:{default:e}}var m=(0,d.inject)("store")(i=(0,d.observer)(i=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this,t=this.props.store.hmi,n=(t.modes,t.currentMode,t.moduleStatus),i=t.componentStatus,o=(0,r.default)(n.keys()).sort().map((function(t){return c.default.createElement(h.default,{key:t,id:t,title:t,disabled:!1,isChecked:n.get(t),onClick:function(){e.props.store.hmi.toggleModule(t)},extraClasses:"controller"})})),a=(0,r.default)(i.keys()).sort().map((function(e){return c.default.createElement(p.default,{key:e,title:e,status:i.get(e)})}));return c.default.createElement("div",{className:"module-controller"},c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Components")),c.default.createElement("div",{className:"card-content-column"},a)),c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Modules")),c.default.createElement("div",{className:"card-content-row"},o)))}}]),t}(c.default.Component))||i)||i;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=d(n(3)),o=d(n(1)),a=d(n(2)),s=d(n(4)),l=d(n(5)),u=d(n(0)),c=n(7);function d(e){return e&&e.__esModule?e:{default:e}}var h={OK:"#1C9063",NOT_READY:"#B43131",NOT_PRESENT:"#B43131",ERR:"#B43131",UNDEF:"#B43131"},p=(0,c.observer)(i=function(e){function t(e){(0,o.default)(this,t);var n=(0,s.default)(this,(t.__proto__||(0,r.default)(t)).call(this,e));return n.showStatusMessage=n.showStatusMessage.bind(n),n}return(0,l.default)(t,e),(0,a.default)(t,[{key:"showStatusMessage",value:function(){this.props.status.message?alert(this.props.title+": "+this.props.status.message):alert("No message from "+this.props.title)}},{key:"render",value:function(){var e=this.props,t=e.title,n=e.status.status;return u.default.createElement("div",{className:"status-display"},u.default.createElement("div",{className:"name"},t),u.default.createElement("div",{className:"status",onClick:this.showStatusMessage},u.default.createElement("span",null,n),u.default.createElement("span",{className:"status-icon",style:{backgroundColor:h[n]}})))}}]),t}(u.default.Component))||i;t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r,o,a=C(n(80)),s=C(n(23)),l=C(n(3)),u=C(n(1)),c=C(n(2)),d=C(n(4)),h=C(n(5)),p=C(n(0)),f=n(7),m=(C(n(10)),C(n(14))),g=C(n(168)),y=C(n(146)),v=C(n(423)),b=C(n(424)),_=C(n(425)),x=C(n(426)),w=C(n(427)),M=C(n(428)),S=C(n(429)),E=C(n(430)),T=n(20);function C(e){return e&&e.__esModule?e:{default:e}}var O={perception:v.default,prediction:b.default,routing:_.default,decision:x.default,planning:w.default,camera:M.default,position:S.default,map:E.default},k=(0,f.observer)(i=function(e){function t(){return(0,u.default)(this,t),(0,d.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.id,n=e.title,i=e.optionName,r=e.options,o=e.isCustomized;return p.default.createElement("ul",{className:"item"},p.default.createElement("li",{id:t,onClick:function(){r.toggle(i,o),"perceptionPointCloud"===t&&T.POINT_CLOUD_WS.togglePointCloud(r.showPointCloud)}},p.default.createElement("div",{className:"switch"},p.default.createElement("input",{type:"checkbox",name:t,className:"toggle-switch",id:t,checked:o?r.customizedToggles.get(i):r[i],readOnly:!0}),p.default.createElement("label",{className:"toggle-switch-label",htmlFor:t})),p.default.createElement("span",null,n)))}}]),t}(p.default.Component))||i,P=(0,f.observer)(r=function(e){function t(e){(0,u.default)(this,t);var n=(0,d.default)(this,(t.__proto__||(0,l.default)(t)).call(this,e));for(var i in n.menuIdOptionMapping={},PARAMETERS.options){var r=PARAMETERS.options[i];r.menuId&&(n.menuIdOptionMapping[r.menuId]=i)}return n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.tabId,i=t.tabTitle,r=t.tabType,o=t.data,l=t.options,u=null;if("checkbox"===r){if(u=(0,s.default)(o).map((function(t){var n=o[t];return l.togglesToHide[t]?null:p.default.createElement(k,{key:t,id:t,title:n,optionName:e.menuIdOptionMapping[t],options:l,isCustomized:!1})})),"planning"===n&&l.customizedToggles.size>0){var c=l.customizedToggles.keys().map((function(e){var t=m.default.startCase(m.default.snakeCase(e));return p.default.createElement(k,{key:e,id:e,title:t,optionName:e,options:l,isCustomized:!0})}));u=u.concat(c)}}else if("radio"===r){if("camera"===n)u=(0,a.default)(o).filter((function(e){return!1!==PARAMETERS.options.cameraAngle["has"+e]})).map((function(e){return p.default.createElement(g.default,{key:n+"_"+e,id:n,onClick:function(){l.selectCamera(e)},checked:l.cameraAngle===e,title:m.default.startCase(e),options:l})}))}return p.default.createElement("div",{className:"card"},p.default.createElement("div",{className:"card-header summary"},p.default.createElement("span",null,p.default.createElement("img",{src:O[n]}),i)),p.default.createElement("div",{className:"card-content-column"},u))}}]),t}(p.default.Component))||r,A=(0,f.observer)(o=function(e){function t(){return(0,u.default)(this,t),(0,d.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props.options,t=(0,s.default)(y.default).map((function(t){var n=y.default[t];return p.default.createElement(P,{key:n.id,tabId:n.id,tabTitle:n.title,tabType:n.type,data:n.data,options:e})}));return p.default.createElement("div",{className:"tool-view-menu",id:"layer-menu"},t)}}]),t}(p.default.Component))||o;t.default=A},function(e,t,n){e.exports=n.p+"assets/IPd68HsWsSEjg0xV6WdqB.png"},function(e,t,n){e.exports=n.p+"assets/354QT2Q6zL4VqDgqmJTcG5.png"},function(e,t,n){e.exports=n.p+"assets/26GYFj0PnZ01JqnOJyxAM-.png"},function(e,t,n){e.exports=n.p+"assets/2Ypi25ytM9WW7KMSzPPPMP.png"},function(e,t,n){e.exports=n.p+"assets/1LUR-DseZqahKLxAtOVz8K.png"},function(e,t,n){e.exports=n.p+"assets/2H5A86LkKnR1ZeT78xVi_.png"},function(e,t,n){e.exports=n.p+"assets/rFzrh-bsqcp8pt7Peky74.png"},function(e,t,n){e.exports=n.p+"assets/1MqLBy7vqPW3xe5RaG9P6o.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(23)),o=p(n(3)),a=p(n(1)),s=p(n(2)),l=p(n(4)),u=p(n(5)),c=p(n(0)),d=n(7),h=(p(n(10)),p(n(168)));function p(e){return e&&e.__esModule?e:{default:e}}var f=(0,d.observer)(i=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this.props,t=e.routeEditingManager,n=e.options,i=e.inNavigationMode,o=(0,r.default)(t.defaultRoutingEndPoint).map((function(e,r){return c.default.createElement(h.default,{extraClasses:["poi-button"],key:"poi_"+e,id:"poi",title:e,onClick:function(){t.addDefaultEndPoint(e,i),n.showRouteEditingBar||t.sendRoutingRequest(i),n.showPOI=!1},autoFocus:0===r,checked:!1})}));return c.default.createElement("div",{className:"tool-view-menu",id:"poi-list"},c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Point of Interest")),c.default.createElement("div",{className:"card-content-row"},o)))}}]),t}(c.default.Component))||i;t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=g(n(3)),o=g(n(1)),a=g(n(2)),s=g(n(4)),l=g(n(5)),u=g(n(0)),c=n(7),d=g(n(433)),h=g(n(434)),p=g(n(435)),f=g(n(153)),m=g(n(169));function g(e){return e&&e.__esModule?e:{default:e}}var y=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.options;return u.default.createElement("div",{className:"tasks"},u.default.createElement(d.default,null),u.default.createElement(h.default,null),u.default.createElement(p.default,null),u.default.createElement(f.default,null),e.showVideo&&!e.showPNCMonitor&&u.default.createElement(m.default,null))}}]),t}(u.default.Component))||i)||i;t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=m(n(23)),o=m(n(3)),a=m(n(1)),s=m(n(2)),l=m(n(4)),u=m(n(5)),c=m(n(0)),d=n(7),h=m(n(10)),p=m(n(70)),f=m(n(20));function m(e){return e&&e.__esModule?e:{default:e}}var g=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this.props,t=e.name,n=e.commands,i=e.disabled,o=e.extraCommandClass,a=e.extraButtonClass,s=(0,r.default)(n).map((function(e){return c.default.createElement("button",{className:(0,h.default)("command-button",a),disabled:i,key:e,onClick:n[e]},e)})),l=t?c.default.createElement("span",{className:"name"},t+":"):null;return c.default.createElement("div",{className:(0,h.default)("command-group",o)},l,s)}}]),t}(c.default.Component),y=(0,d.inject)("store")(i=(0,d.observer)(i=function(e){function t(e){(0,a.default)(this,t);var n=(0,l.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.setup={Setup:function(){f.default.executeModeCommand("SETUP_MODE"),p.default.speakOnce("Setup")}},n.reset={"Reset All":function(){f.default.executeModeCommand("RESET_MODE"),p.default.speakOnce("Reset All")}},n.auto={"Start Auto":function(){f.default.executeModeCommand("ENTER_AUTO_MODE"),p.default.speakOnce("Start Auto")}},n}return(0,u.default)(t,e),(0,s.default)(t,[{key:"componentWillUpdate",value:function(){p.default.cancelAllInQueue()}},{key:"render",value:function(){var e=this.props.store.hmi,t=this.props.store.options.lockTaskPanel;return c.default.createElement("div",{className:"card"},c.default.createElement("div",{className:"card-header"},c.default.createElement("span",null,"Quick Start")),c.default.createElement("div",{className:"card-content-column"},c.default.createElement(g,{disabled:t,commands:this.setup}),c.default.createElement(g,{disabled:t,commands:this.reset}),c.default.createElement(g,{disabled:!e.enableStartAuto||t,commands:this.auto,extraButtonClass:"start-auto-button",extraCommandClass:"start-auto-command"})))}}]),t}(c.default.Component))||i)||i;t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(3)),o=p(n(1)),a=p(n(2)),s=p(n(4)),l=p(n(5)),u=p(n(0)),c=n(7),d=p(n(60)),h=p(n(20));function p(e){return e&&e.__esModule?e:{default:e}}var f=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this,t=this.props.store,n=t.options,i=t.enableHMIButtonsOnly,r=t.hmi,o=i||n.lockTaskPanel,a=!r.inTeleopMode&&!n.showCameraView;return u.default.createElement("div",{className:"others card"},u.default.createElement("div",{className:"card-header"},u.default.createElement("span",null,"Others")),u.default.createElement("div",{className:"card-content-column"},u.default.createElement("button",{className:"command-button",disabled:o,onClick:function(){h.default.resetBackend()}},"Reset Backend Data"),u.default.createElement("button",{className:"command-button",disabled:o,onClick:function(){h.default.dumpMessages()}},"Dump Message"),u.default.createElement(d.default,{id:"panelLock",title:"Lock Task Panel",isChecked:n.lockTaskPanel,disabled:!1,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("lockTaskPanel")}}),a&&u.default.createElement(d.default,{id:"showPNCMonitor",title:"PNC Monitor",isChecked:n.showPNCMonitor,disabled:o,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("showPNCMonitor")}}),r.isCalibrationMode&&u.default.createElement(d.default,{id:"showDataCollectionMonitor",title:"Data Collection Monitor",isChecked:n.showDataCollectionMonitor,disabled:o||!r.isCalibrationMode,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("showDataCollectionMonitor")}}),u.default.createElement(d.default,{id:"toggleSimControl",title:"Sim Control",isChecked:n.enableSimControl,disabled:n.lockTaskPanel,extraClasses:"others-checkbox",onClick:function(){h.default.toggleSimControl(!n.enableSimControl),e.props.store.handleOptionToggle("enableSimControl")}}),u.default.createElement(d.default,{id:"showVideo",title:"Camera Sensor",isChecked:n.showVideo,disabled:o,extraClasses:"others-checkbox",onClick:function(){e.props.store.handleOptionToggle("showVideo")}})))}}]),t}(u.default.Component))||i)||i;t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(3)),o=p(n(1)),a=p(n(2)),s=p(n(4)),l=p(n(5)),u=p(n(0)),c=n(7),d=p(n(10)),h=n(40);function p(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props,t=e.time,n=e.warning,i="-"===t?t:(0,h.millisecondsToTime)(0|t);return u.default.createElement("div",{className:(0,d.default)({value:!0,warning:n})},i)}}]),t}(u.default.PureComponent),m=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.store.moduleDelay,t=e.keys().sort().map((function(t){var n=e.get(t),i=n.delay>2e3&&"TrafficLight"!==n.name;return u.default.createElement("div",{className:"delay-item",key:"delay_"+t},u.default.createElement("div",{className:"name"},n.name),u.default.createElement(f,{time:n.delay,warning:i}))}));return u.default.createElement("div",{className:"delay card"},u.default.createElement("div",{className:"card-header"},u.default.createElement("span",null,"Module Delay")),u.default.createElement("div",{className:"card-content-column"},t))}}]),t}(u.default.Component))||i)||i;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=y(n(3)),r=y(n(1)),o=y(n(2)),a=y(n(4)),s=y(n(5));n(437);var l=y(n(0)),u=n(71),c=n(97),d=y(n(439)),h=n(169),p=y(n(453)),f=y(n(455)),m=y(n(468)),g=y(n(469));function y(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(){return(0,r.default)(this,t),(0,a.default)(this,(t.__proto__||(0,i.default)(t)).apply(this,arguments))}return(0,s.default)(t,e),(0,o.default)(t,[{key:"renderMonitor",value:function(){var e=this.props,t=e.viewName,n=e.hmi;switch(t){case c.MONITOR_MENU.CONSOLE_TELEOP_MONITOR:return l.default.createElement(m.default,null);case c.MONITOR_MENU.CAR_TELEOP_MONITOR:return l.default.createElement(g.default,null);case c.MONITOR_MENU.CAMERA_PARAM:return l.default.createElement(d.default,null);case c.MONITOR_MENU.DATA_COLLECTION_MONITOR:return l.default.createElement(p.default,{dataCollectionUpdateStatus:n.dataCollectionUpdateStatus,dataCollectionProgress:n.dataCollectionProgress});case c.MONITOR_MENU.PNC_MONITOR:return l.default.createElement(f.default,null);default:return null}}},{key:"render",value:function(){var e=this.props.showCameraVideo;return l.default.createElement("div",{className:"right-pane"},e&&l.default.createElement(u.Tabs,null,l.default.createElement(u.TabList,null,l.default.createElement(u.Tab,null,"Camera View")),l.default.createElement(u.TabPanel,null,l.default.createElement(h.CameraVideo,null))),this.renderMonitor())}}]),t}(l.default.Component);t.default=v},function(e,t,n){var i=n(438);"string"==typeof i&&(i=[[e.i,i,""]]);var r={transform:void 0};n(62)(i,r);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(61)(!1)).push([e.i,".monitor {\n height: 100%;\n width: 100%;\n border-left: 1px solid #000000;\n box-sizing: border-box;\n background-color: #1D2226;\n overflow: auto; }\n .monitor .monitor-header {\n display: flex;\n height: 32px;\n box-sizing: border-box;\n min-width: 160px;\n border-bottom: 1px solid #000000;\n padding: 6px 12px;\n background: #2A3238;\n color: #FFFFFF; }\n .monitor .monitor-header .title {\n flex-grow: 1;\n margin: auto; }\n .monitor .monitor-content {\n display: flex;\n flex-direction: column;\n height: calc(100% - 32px);\n min-width: 160px; }\n .monitor .monitor-content .section {\n flex: 1 1 auto;\n padding: 5px 10px 5px 10px;\n border-bottom: 1px solid #000000; }\n .monitor .monitor-content .section .section-title {\n display: flex;\n width: fit-content;\n border-bottom: 1px solid #999999;\n padding: 5px; }\n .monitor .monitor-content .section .section-title span {\n margin-left: 10px;\n margin-top: 2px; }\n .monitor .monitor-content .section .section-subtitle {\n display: inline-block;\n margin: 10px 0px 10px 10px;\n border-bottom: 1px solid #999999;\n padding-bottom: 2px; }\n .monitor .monitor-content .section .section-content {\n padding: 10px 10px;\n color: #999999; }\n .monitor .monitor-content .section .section-content .section-content-row {\n display: flex;\n padding: 5px; }\n .monitor .monitor-content .section .section-content .section-content-row .field {\n flex: 1 1 auto; }\n .monitor .monitor-table-container {\n padding: 10px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-weight: normal; }\n .monitor .monitor-table-container .monitor-table-title {\n margin: 5px;\n border-bottom: 1px solid rgba(153, 153, 153, 0.5);\n padding-bottom: 5px;\n font-size: 12px;\n font-weight: 600;\n text-align: center; }\n .monitor .monitor-table-container .monitor-table {\n position: relative;\n width: 100%; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item {\n position: relative;\n width: 100%; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item .text {\n position: relative;\n width: 30%;\n padding: 2px 4px;\n color: #999999;\n font-size: 12px; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item .time {\n text-align: center; }\n .monitor .monitor-table-container .monitor-table .monitor-table-item .active {\n color: #FFFFFF; }\n\n.pnc-monitor .scatter-graph {\n margin: 0px; }\n .pnc-monitor .scatter-graph:not(:first-child) {\n border-top: 1px solid #000000; }\n .pnc-monitor .scatter-graph:only-child {\n border-bottom: 1px solid #000000; }\n\n.data-collection-monitor {\n position: relative;\n width: 100%; }\n .data-collection-monitor .scenario-container {\n position: absolute; }\n .data-collection-monitor .section-divider-on-top {\n border-top: 2px solid #080A0C; }\n .data-collection-monitor .category-container {\n position: relative;\n width: 100%;\n margin-bottom: 15px;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n flex-wrap: wrap; }\n .data-collection-monitor .dummy-category {\n flex: 1 0 50%;\n align-self: flex-end;\n min-width: 130px;\n overflow: hidden;\n position: relative; }\n .data-collection-monitor .category {\n flex: 1 0 50%;\n align-self: flex-end;\n min-width: 130px;\n overflow: hidden;\n position: relative; }\n .data-collection-monitor .category .category-description {\n position: relative;\n margin: 15px 0px 0px 10px;\n font-size: 12px;\n color: #888888; }\n .data-collection-monitor .category .category-updated {\n color: #FFFFFF; }\n .data-collection-monitor .category .category-progress-background {\n position: relative;\n height: 6px;\n margin: 5px 10px;\n background-color: #333639; }\n .data-collection-monitor .category .category-progress-background .category-in-progress {\n position: absolute;\n height: 100%;\n background: #006AFF; }\n .data-collection-monitor .category .category-progress-background .category-completed {\n position: absolute;\n height: 100%;\n background: #113B73; }\n\n.camera-param {\n overflow: auto;\n user-select: none; }\n .camera-param .actions {\n display: flex; }\n .camera-param .actions .action {\n flex: 1 1 auto;\n text-align: center;\n cursor: pointer;\n padding: 2px;\n width: 24px; }\n .camera-param .actions .action svg:hover {\n fill: #FFFFFF; }\n .camera-param .camera-param-row {\n display: flex;\n padding-bottom: 5px;\n height: 24px; }\n .camera-param .camera-param-row .field {\n width: 40px;\n opacity: 0.6; }\n .camera-param .camera-param-row .value {\n flex-grow: 1;\n min-width: 100px;\n margin-right: 25px;\n text-align: right; }\n .camera-param .camera-param-row .delta {\n width: 25%;\n margin-right: 35px;\n text-align: center; }\n .camera-param .camera-param-row .action {\n width: 30px;\n display: flex;\n flex-direction: column; }\n .camera-param .camera-param-row .action svg {\n cursor: pointer; }\n .camera-param .camera-param-row .action svg:hover {\n fill: #FFFFFF; }\n\n.teleop .mute-button {\n width: 20px;\n border: 1px solid #383838;\n background: #181818;\n color: #999999;\n text-align: center;\n outline: none;\n cursor: pointer; }\n .teleop .mute-button:disabled {\n cursor: not-allowed; }\n\n.teleop .teleop-command-group {\n display: flex;\n flex-flow: column nowrap;\n justify-content: flex-start; }\n .teleop .teleop-command-group .teleop-button {\n min-height: 90px;\n font-size: 22px; }\n",""])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=g(n(23)),o=g(n(3)),a=g(n(1)),s=g(n(2)),l=g(n(4)),u=g(n(5)),c=n(0),d=g(c),h=g(n(170)),p=n(7),f=g(n(451)),m=g(n(452));function g(e){return e&&e.__esModule?e:{default:e}}var y=function(){return d.default.createElement("svg",{viewBox:"0 0 1024 1024",width:"20",height:"20",fill:"#999999"},d.default.createElement("path",{d:"M978.637 890.58H178.116V1024L0 846.551l176.115-174.78v133.42H933.94c29.353 0 44.696-12.008 44.696-41.36V496.99l88.725-141.426V800.52a88.724 88.724 0 0 1-88.725 88.058z m-88.724-667.101H133.42c-29.352 0-44.696 12.008-44.696 42.027v268.175L0 673.105v-450.96a88.724 88.724 0 0 1 88.724-88.725h800.522V0l178.116 178.116-176.115 176.115V220.81z"}))},v=function(e){var t=e.onClick;return d.default.createElement("svg",{viewBox:"0 0 1024 1024",width:"15",height:"15",onClick:t,fill:"#999999"},d.default.createElement("path",{d:"M820.00415442 790.08350547l-617.53286931-1e-8c-34.17530758 0-61.8167847-27.4267503-61.81678473-61.59899038 0-15.89285244 6.0951742-30.25807684 15.89285244-41.14165922l305.39062223-407.4809563c20.4634662-26.98809409 58.98852574-32.65074716 86.20054921-12.19034849 4.79147569 3.48470957 8.92343326 7.61973466 12.19034848 12.19034849L869.19806953 691.69567529c20.24260435 26.99116162 14.79774561 65.73401549-12.40814284 85.97968733C845.68548239 786.16627474 832.84481844 790.08350547 820.00415442 790.08350547L820.00415442 790.08350547z"}))},b=function(e){var t=e.onClick;return d.default.createElement("svg",{viewBox:"0 0 1024 1024",width:"15",height:"15",onClick:t,fill:"#999999"},d.default.createElement("path",{d:"M151.477 199.554l718.53099999 0c39.763 0 71.922 31.91 71.92200002 71.674 0 18.485-7.096 35.206-18.48600001 47.872l-355.33 474.125c-23.81 31.4-68.641 37.994-100.297 14.183-5.571-4.052-10.385-8.873-14.183-14.19l-359.398-479.178c-23.547-31.407-17.217-76.48 14.43699999-100.041 12.922-9.881 27.865-14.438 42.80500001-14.439v0l0-0.007zM151.477 199.554z"}))},_={Position:{X:"x",Y:"y",Z:"z"},StaticRotation:{Pitch:"x",Yaw:"y",Roll:"z"},DynamicRotation:{Pitch:"y",Yaw:"z",Roll:"x"}},x=(0,p.inject)("store")(i=(0,p.observer)(i=function(e){function t(e){(0,a.default)(this,t);var n=(0,l.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.resetParam=n.resetParam.bind(n),n}return(0,u.default)(t,e),(0,s.default)(t,[{key:"resetParam",value:function(){this.props.store.cameraData.reset()}},{key:"renderParamRow",value:function(e){var t=this.props.store.cameraData,n=void 0;switch(e){case"Position":n=2;break;case"StaticRotation":case"DynamicRotation":n=3;break;default:return console.warn("Unknown parameter type:",e),null}return(0,r.default)(_[e]).map((function(i){var r=_[e][i],o=Math.pow(.1,n),a=t["init"+e].get(r).toFixed(n),s=function(e){var t="#FFFFFF",n="-";return e>0?(t="#1C9063",n="+"+e):e<0&&(t="#B43131",n=e),{color:t,text:n}}(t["delta"+e].get(r).toFixed(n)),l=s.color,u=s.text;return d.default.createElement("div",{className:"camera-param-row",key:e+"_"+i},d.default.createElement("div",{className:"field"},i),d.default.createElement("div",{className:"value"},a),d.default.createElement("div",{className:"delta",style:{color:l}},u),d.default.createElement("div",{className:"action"},d.default.createElement(v,{onClick:function(){return t.update(e,r,o)}}),d.default.createElement(b,{onClick:function(){return t.update(e,r,-1*o)}})))}))}},{key:"renderCameraParam",value:function(){return d.default.createElement("div",{className:"monitor-content"},d.default.createElement("div",{className:"section"},d.default.createElement("div",{className:"section-title","data-tip":"Camera position in world coordinate system","data-for":"param"},d.default.createElement("img",{height:"20px",width:"20px",src:f.default}),d.default.createElement("span",null,"Position")),d.default.createElement("div",{className:"section-content"},this.renderParamRow("Position"))),d.default.createElement("div",{className:"section"},d.default.createElement("div",{className:"section-title"},d.default.createElement("img",{height:"18px",width:"20px",src:m.default}),d.default.createElement("span",null,"Rotation")),d.default.createElement("div",{className:"section-subtitle","data-tip":"Camera rotation in IMU coordinate system, default facing to Z negative direction","data-for":"param"},"Static"),d.default.createElement("div",{className:"section-content"},this.renderParamRow("StaticRotation")),d.default.createElement("div",{className:"section-subtitle","data-tip":"IMU rotation in world coordinate system","data-for":"param"},"Dynamic"),d.default.createElement("div",{className:"section-content"},this.renderParamRow("DynamicRotation"))),d.default.createElement(h.default,{id:"param",place:"right",delayShow:300,multiline:!0}))}},{key:"render",value:function(){return d.default.createElement("div",{className:"monitor camera-param"},d.default.createElement("div",{className:"monitor-header"},d.default.createElement("div",{className:"title"},"Camera Parameter"),d.default.createElement("div",{className:"actions"},d.default.createElement("div",{className:"action",onClick:this.resetParam,"data-tip":"Reset","data-for":"action"},d.default.createElement(y,null)),d.default.createElement(h.default,{id:"action",place:"left",delayShow:100}))),this.renderCameraParam())}}]),t}(c.Component))||i)||i;t.default=x},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e.hide=function(e){a(o.default.GLOBAL.HIDE,{target:e})},e.rebuild=function(){a(o.default.GLOBAL.REBUILD)},e.show=function(e){a(o.default.GLOBAL.SHOW,{target:e})},e.prototype.globalRebuild=function(){this.mount&&(this.unbindListener(),this.bindListener())},e.prototype.globalShow=function(e){if(this.mount){var t={currentTarget:e.detail.target};this.showTooltip(t,!0)}},e.prototype.globalHide=function(e){if(this.mount){var t=!!(e&&e.detail&&e.detail.target);this.hideTooltip({currentTarget:t&&e.detail.target},t)}}};var i,r=n(171),o=(i=r)&&i.__esModule?i:{default:i};var a=function(e,t){var n=void 0;"function"==typeof window.CustomEvent?n=new window.CustomEvent(e,{detail:t}):((n=document.createEvent("Event")).initEvent(e,!1,!0),n.detail=t),window.dispatchEvent(n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e.prototype.bindWindowEvents=function(e){window.removeEventListener(o.default.GLOBAL.HIDE,this.globalHide),window.addEventListener(o.default.GLOBAL.HIDE,this.globalHide,!1),window.removeEventListener(o.default.GLOBAL.REBUILD,this.globalRebuild),window.addEventListener(o.default.GLOBAL.REBUILD,this.globalRebuild,!1),window.removeEventListener(o.default.GLOBAL.SHOW,this.globalShow),window.addEventListener(o.default.GLOBAL.SHOW,this.globalShow,!1),e&&(window.removeEventListener("resize",this.onWindowResize),window.addEventListener("resize",this.onWindowResize,!1))},e.prototype.unbindWindowEvents=function(){window.removeEventListener(o.default.GLOBAL.HIDE,this.globalHide),window.removeEventListener(o.default.GLOBAL.REBUILD,this.globalRebuild),window.removeEventListener(o.default.GLOBAL.SHOW,this.globalShow),window.removeEventListener("resize",this.onWindowResize)},e.prototype.onWindowResize=function(){this.mount&&this.hideTooltip()}};var i,r=n(171),o=(i=r)&&i.__esModule?i:{default:i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e.prototype.isCustomEvent=function(e){return this.state.event||!!e.getAttribute("data-event")},e.prototype.customBindListener=function(e){var t=this,n=this.state,r=n.event,a=n.eventOff,s=e.getAttribute("data-event")||r,l=e.getAttribute("data-event-off")||a;s.split(" ").forEach((function(n){e.removeEventListener(n,o.get(e,n));var r=i.bind(t,l);o.set(e,n,r),e.addEventListener(n,r,!1)})),l&&l.split(" ").forEach((function(n){e.removeEventListener(n,t.hideTooltip),e.addEventListener(n,t.hideTooltip,!1)}))},e.prototype.customUnbindListener=function(e){var t=this.state,n=t.event,i=t.eventOff,r=n||e.getAttribute("data-event"),a=i||e.getAttribute("data-event-off");e.removeEventListener(r,o.get(e,n)),a&&e.removeEventListener(a,this.hideTooltip)}};var i=function(e,t){var n=this.state.show,i=this.props.id,o=t.currentTarget.getAttribute("data-iscapture"),a=o&&"true"===o||this.props.isCapture,s=t.currentTarget.getAttribute("currentItem");a||t.stopPropagation(),n&&"true"===s?e||this.hideTooltip(t):(t.currentTarget.setAttribute("currentItem","true"),r(t.currentTarget,this.getTargetArray(i)),this.showTooltip(t))},r=function(e,t){for(var n=0;nE},L=function(e){return function(e){var t=x[e].b;return _+t+S}(e)>T},I=function(e){return function(e){return P(e)<0}(e)||R(e)||function(e){return A(e)<0}(e)||L(e)},D=function(e){return!I(e)},N=["top","bottom","left","right"],F=[],z=0;z<4;z++){var B=N[z];D(B)&&F.push(B)}var U=!1,j=void 0;return D(u)&&u!==l?(U=!0,j=u):F.length>0&&I(u)&&I(l)&&(U=!0,j=F[0]),U?{isNewState:!0,newState:{place:j}}:{isNewState:!1,position:{left:parseInt(P(l)-k,10),top:parseInt(A(l)-O,10)}}};var i=function(e){var t=e.getBoundingClientRect(),n=t.height,i=t.width;return{height:parseInt(n,10),width:parseInt(i,10)}},r=function(e,t,n){var r=t.getBoundingClientRect(),o=r.top,a=r.left,s=i(t),l=s.width,u=s.height;return"float"===n?{mouseX:e.clientX,mouseY:e.clientY}:{mouseX:a+l/2,mouseY:o+u/2}},o=function(e,t,n,i,r){var o=void 0,a=void 0,s=void 0,l=void 0;return"float"===e?(o={l:-i/2,r:i/2,t:-(r+3+2),b:-3},s={l:-i/2,r:i/2,t:15,b:r+3+2+12},l={l:-(i+3+2),r:-3,t:-r/2,b:r/2},a={l:3,r:i+3+2,t:-r/2,b:r/2}):"solid"===e&&(o={l:-i/2,r:i/2,t:-(n/2+r+2),b:-n/2},s={l:-i/2,r:i/2,t:n/2,b:n/2+r+2},l={l:-(i+t/2+2),r:-t/2,t:-r/2,b:r/2},a={l:t/2,r:i+t/2+2,t:-r/2,b:r/2}),{top:o,bottom:s,left:l,right:a}},a=function(e){var t=0,n=0;for(var i in"[object String]"===Object.prototype.toString.apply(e)&&(e=JSON.parse(e.toString().replace(/\'/g,'"'))),e)"top"===i?n-=parseInt(e[i],10):"bottom"===i?n+=parseInt(e[i],10):"left"===i?t-=parseInt(e[i],10):"right"===i&&(t+=parseInt(e[i],10));return{extraOffset_X:t,extraOffset_Y:n}},s=function(e){for(var t=e;t&&"none"===window.getComputedStyle(t).getPropertyValue("transform");)t=t.parentElement;return{parentTop:t&&t.getBoundingClientRect().top||0,parentLeft:t&&t.getBoundingClientRect().left||0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,i){if(t)return t;if(null!=n)return n;if(null===n)return null;var r=//;return i&&"false"!==i&&r.test(e)?e.split(r).map((function(e,t){return o.default.createElement("span",{key:t,className:"multi-line"},e)})):e};var i,r=n(0),o=(i=r)&&i.__esModule?i:{default:i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseAria=function(e){var t={};return Object.keys(e).filter((function(e){return/(^aria-\w+$|^role$)/.test(e)})).forEach((function(n){t[n]=e[n]})),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.length;return e.hasOwnProperty?Array.prototype.slice.call(e):new Array(t).fill().map((function(t){return e[t]}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default='.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;position:fixed;pointer-events:none;transition:opacity 0.3s ease-out;top:-999em;visibility:hidden;z-index:999}.__react_component_tooltip.allow_hover,.__react_component_tooltip.allow_click{pointer-events:auto}.__react_component_tooltip:before,.__react_component_tooltip:after{content:"";width:0;height:0;position:absolute}.__react_component_tooltip.show{opacity:0.9;margin-top:0px;margin-left:0px;visibility:visible}.__react_component_tooltip.type-dark{color:#fff;background-color:#222}.__react_component_tooltip.type-dark.place-top:after{border-top-color:#222;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-dark.place-bottom:after{border-bottom-color:#222;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-dark.place-left:after{border-left-color:#222;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-dark.place-right:after{border-right-color:#222;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-dark.border{border:1px solid #fff}.__react_component_tooltip.type-dark.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-dark.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-dark.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-dark.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-success{color:#fff;background-color:#8DC572}.__react_component_tooltip.type-success.place-top:after{border-top-color:#8DC572;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-success.place-bottom:after{border-bottom-color:#8DC572;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-success.place-left:after{border-left-color:#8DC572;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-success.place-right:after{border-right-color:#8DC572;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-success.border{border:1px solid #fff}.__react_component_tooltip.type-success.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-success.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-success.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-success.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-warning{color:#fff;background-color:#F0AD4E}.__react_component_tooltip.type-warning.place-top:after{border-top-color:#F0AD4E;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-warning.place-bottom:after{border-bottom-color:#F0AD4E;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-warning.place-left:after{border-left-color:#F0AD4E;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-warning.place-right:after{border-right-color:#F0AD4E;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-warning.border{border:1px solid #fff}.__react_component_tooltip.type-warning.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-warning.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-warning.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-warning.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-error{color:#fff;background-color:#BE6464}.__react_component_tooltip.type-error.place-top:after{border-top-color:#BE6464;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-error.place-bottom:after{border-bottom-color:#BE6464;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-error.place-left:after{border-left-color:#BE6464;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-error.place-right:after{border-right-color:#BE6464;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-error.border{border:1px solid #fff}.__react_component_tooltip.type-error.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-error.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-error.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-error.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-info{color:#fff;background-color:#337AB7}.__react_component_tooltip.type-info.place-top:after{border-top-color:#337AB7;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-info.place-bottom:after{border-bottom-color:#337AB7;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-info.place-left:after{border-left-color:#337AB7;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-info.place-right:after{border-right-color:#337AB7;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-info.border{border:1px solid #fff}.__react_component_tooltip.type-info.border.place-top:before{border-top:8px solid #fff}.__react_component_tooltip.type-info.border.place-bottom:before{border-bottom:8px solid #fff}.__react_component_tooltip.type-info.border.place-left:before{border-left:8px solid #fff}.__react_component_tooltip.type-info.border.place-right:before{border-right:8px solid #fff}.__react_component_tooltip.type-light{color:#222;background-color:#fff}.__react_component_tooltip.type-light.place-top:after{border-top-color:#fff;border-top-style:solid;border-top-width:6px}.__react_component_tooltip.type-light.place-bottom:after{border-bottom-color:#fff;border-bottom-style:solid;border-bottom-width:6px}.__react_component_tooltip.type-light.place-left:after{border-left-color:#fff;border-left-style:solid;border-left-width:6px}.__react_component_tooltip.type-light.place-right:after{border-right-color:#fff;border-right-style:solid;border-right-width:6px}.__react_component_tooltip.type-light.border{border:1px solid #222}.__react_component_tooltip.type-light.border.place-top:before{border-top:8px solid #222}.__react_component_tooltip.type-light.border.place-bottom:before{border-bottom:8px solid #222}.__react_component_tooltip.type-light.border.place-left:before{border-left:8px solid #222}.__react_component_tooltip.type-light.border.place-right:before{border-right:8px solid #222}.__react_component_tooltip.place-top{margin-top:-10px}.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;bottom:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;bottom:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-bottom{margin-top:10px}.__react_component_tooltip.place-bottom:before{border-left:10px solid transparent;border-right:10px solid transparent;top:-8px;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:after{border-left:8px solid transparent;border-right:8px solid transparent;top:-6px;left:50%;margin-left:-8px}.__react_component_tooltip.place-left{margin-left:-10px}.__react_component_tooltip.place-left:before{border-top:6px solid transparent;border-bottom:6px solid transparent;right:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-left:after{border-top:5px solid transparent;border-bottom:5px solid transparent;right:-6px;top:50%;margin-top:-4px}.__react_component_tooltip.place-right{margin-left:10px}.__react_component_tooltip.place-right:before{border-top:6px solid transparent;border-bottom:6px solid transparent;left:-8px;top:50%;margin-top:-5px}.__react_component_tooltip.place-right:after{border-top:5px solid transparent;border-bottom:5px solid transparent;left:-6px;top:50%;margin-top:-4px}.__react_component_tooltip .multi-line{display:block;padding:2px 0px;text-align:center}'},function(e,t,n){e.exports=n.p+"assets/2fKcIvU88j_SvHu_QKgwa0.png"},function(e,t,n){e.exports=n.p+"assets/1Eo3zPMjhpRBJY8UPDpYQQ.png"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=f(n(36)),o=f(n(3)),a=f(n(1)),s=f(n(2)),l=f(n(4)),u=f(n(5)),c=f(n(0)),d=n(71),h=n(7),p=f(n(454));function f(e){return e&&e.__esModule?e:{default:e}}var m=(0,h.observer)(i=function(e){function t(){return(0,a.default)(this,t),(0,l.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"render",value:function(){var e=this.props,t=e.dataCollectionUpdateStatus,n=e.dataCollectionProgress;if(!n||0===t.size)return c.default.createElement("div",{className:"no-data"},"No Data Found");var i=[],o=[];return n.entries().forEach((function(e){var n=(0,r.default)(e,2),a=n[0],s=n[1];i.push(c.default.createElement(d.Tab,{key:a},a)),o.push(c.default.createElement(d.TabPanel,{key:a},c.default.createElement(p.default,{statusMap:t.get(a),progressMap:s})))})),c.default.createElement("div",{className:"monitor data-collection-monitor"},c.default.createElement(d.Tabs,null,c.default.createElement(d.TabList,null,i),o))}}]),t}(c.default.Component))||i;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=h(n(3)),o=h(n(1)),a=h(n(2)),s=h(n(4)),l=h(n(5)),u=h(n(0)),c=n(7),d=h(n(10));function h(e){return e&&e.__esModule?e:{default:e}}var p=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"renderCategoryProgress",value:function(e,t,n,i){return u.default.createElement("div",{key:e,className:"category"},u.default.createElement("div",{className:(0,d.default)({"category-description":!0,"category-updated":n})},e),u.default.createElement("div",{className:"category-progress-background"},u.default.createElement("span",{className:i?"category-completed":"category-in-progress",style:{width:t+"%"}})))}},{key:"render",value:function(){var e=this,t=this.props,n=t.statusMap,i=t.progressMap,r=[],o=[];return n.forEach((function(t,n){var a=i.get(n),s=a>=100,l=e.renderCategoryProgress(n,a,t,s);s?o.push(l):r.push(l)})),r.length%2==1&&r.push(u.default.createElement("div",{className:"dummy-category",key:"in-progress-dummy"})),o.length%2==1&&o.push(u.default.createElement("div",{className:"dummy-category",key:"completed-dummy"})),u.default.createElement("div",{className:"scenario-container"},u.default.createElement("div",{className:"category-container"},r),o.length>0&&u.default.createElement("div",{className:"category-container section-divider-on-top"},o))}}]),t}(u.default.Component))||i;t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=f(n(3)),r=f(n(1)),o=f(n(2)),a=f(n(4)),s=f(n(5)),l=f(n(0)),u=n(71),c=f(n(456)),d=f(n(463)),h=f(n(465)),p=f(n(467));function f(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(){return(0,r.default)(this,t),(0,a.default)(this,(t.__proto__||(0,i.default)(t)).apply(this,arguments))}return(0,s.default)(t,e),(0,o.default)(t,[{key:"render",value:function(){return l.default.createElement("div",{className:"monitor pnc-monitor"},l.default.createElement(p.default,null),l.default.createElement(u.Tabs,null,l.default.createElement(u.TabList,null,l.default.createElement(u.Tab,null,"Planning"),l.default.createElement(u.Tab,null,"Control"),l.default.createElement(u.Tab,null,"Latency")),l.default.createElement(u.TabPanel,null,l.default.createElement(h.default,null)),l.default.createElement(u.TabPanel,null,l.default.createElement(c.default,null)),l.default.createElement(u.TabPanel,null,l.default.createElement(d.default,null))))}}]),t}(l.default.Component);t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,r=p(n(3)),o=p(n(1)),a=p(n(2)),s=p(n(4)),l=p(n(5)),u=p(n(0)),c=n(7),d=p(n(457)),h=n(102);p(h);function p(e){return e&&e.__esModule?e:{default:e}}var f=(0,c.inject)("store")(i=(0,c.observer)(i=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,(t.__proto__||(0,r.default)(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){var e=this.props.store.controlData,t=e.lastUpdatedTime,n=e.data;return t?u.default.createElement("div",null,(0,h.generateScatterGraph)(d.default.trajectoryGraph,n.trajectoryGraph,{pose:n.pose}),(0,h.generateScatterGraph)(d.default.speedGraph,n.speedGraph),(0,h.generateScatterGraph)(d.default.accelerationGraph,n.accelerationGraph),(0,h.generateScatterGraph)(d.default.curvatureGraph,n.curvatureGraph),(0,h.generateScatterGraph)(d.default.stationErrorGraph,n.stationErrorGraph),(0,h.generateScatterGraph)(d.default.lateralErrorGraph,n.lateralErrorGraph),(0,h.generateScatterGraph)(d.default.headingErrorGraph,n.headingErrorGraph)):null}}]),t}(u.default.Component))||i)||i;t.default=f},function(e,t){e.exports={trajectoryGraph:{title:"Trajectory",options:{aspectRatio:.9,syncXYWindowSize:!0,legend:{display:!0},axes:{x:{labelString:"x (m)"},y:{labelString:"y (m)"}}},properties:{cars:{pose:{color:"rgba(0, 255, 0, 0.55)"}},lines:{currentTargetPoint:{color:"rgba(360, 0, 0, 1)",borderWidth:0,pointRadius:7,fill:!1,showLine:!1,pointStyle:"crossRot"},real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},steerCurve:{color:"rgba(255, 206, 86, 1)",borderWidth:1,pointRadius:0,fill:!1,showLine:!0},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:1,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},speedGraph:{title:"Speed",options:{legend:{display:!0},axes:{x:{labelString:"t (second)"},y:{labelString:"speed (m/s)"}}},properties:{lines:{real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:2,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},curvatureGraph:{title:"Curvature",options:{legend:{display:!0},axes:{x:{labelString:"t (second)"},y:{labelString:"Curvature (m-1)"}}},properties:{lines:{real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:2,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},accelerationGraph:{title:"Acceleration",options:{legend:{display:!0},axes:{x:{labelString:"t (second)"},y:{labelString:"acceleration (m/s^2)"}}},properties:{lines:{real:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"},plan:{color:"rgba(1, 209, 193, 0.65)",borderWidth:0,pointRadius:2,fill:!1,showLine:!1},target:{color:"rgba(180, 255, 180, 0.7)",borderWidth:3,pointRadius:0,fill:!1,showLine:!0},autoModeZone:{color:"rgba(224, 224, 224, 0.15)",borderWidth:0,pointRadius:4,fill:!1,showLine:!0}}}},stationErrorGraph:{title:"Station Error",options:{legend:{display:!1},axes:{x:{labelString:"t (second)"},y:{labelString:"error (m)"}}},properties:{lines:{error:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"}}}},lateralErrorGraph:{title:"Lateral Error",options:{legend:{display:!1},axes:{x:{labelString:"t (second)"},y:{labelString:"error (m)"}}},properties:{lines:{error:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"}}}},headingErrorGraph:{title:"Heading Error",options:{legend:{display:!1},axes:{x:{labelString:"t (second)"},y:{labelString:"error (rad)"}}},properties:{lines:{error:{color:"rgba(0, 106, 255, 1)",borderWidth:2,pointRadius:0,fill:!1,showLine:"ture"}}}}}},function(e,t,n){e.exports={default:n(459),__esModule:!0}},function(e,t,n){n(460),e.exports=n(9).Math.log10},function(e,t,n){var i=n(13);i(i.S,"Math",{log10:function(e){return Math.log(e)*Math.LOG10E}})},function(e,t,n){ /*! * Chart.js v2.8.0 * https://www.chartjs.org diff --git a/modules/dreamview/frontend/dist/app.bundle.js.map b/modules/dreamview/frontend/dist/app.bundle.js.map index eacbcfaa78a2511931682dcc58d81c9e58ee1ed1..433619aaf6706d699ce5322b77100d363eae56cc 100644 --- a/modules/dreamview/frontend/dist/app.bundle.js.map +++ b/modules/dreamview/frontend/dist/app.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"app.bundle.js","sources":["webpack:///app.bundle.js"],"sourcesContent":["!function(e){function t(t){for(var n,r,o=t[0],a=t[1],s=0,u=[];s6?l-6:0),c=6;c>\",s=s||r,null==n[r]){if(t){var i=null===n[r]?\"null\":\"undefined\";return new Error(\"The \"+a+\" `\"+s+\"` is marked as required in `\"+o+\"`, but its value is `\"+i+\"`.\")}return null}return e.apply(void 0,[n,r,o,a,s].concat(u))}))}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function M(e){var t=void 0===e?\"undefined\":s(e);return Array.isArray(e)?\"array\":e instanceof RegExp?\"object\":function(e,t){return\"symbol\"===e||(\"Symbol\"===t[\"@@toStringTag\"]||\"function\"==typeof Symbol&&t instanceof Symbol)}(t,e)?\"symbol\":t}function S(e,t){return w((function(n,r,o,a,s){return Object(i.untracked)((function(){if(e&&M(n[r])===t.toLowerCase())return null;var a=void 0;switch(t){case\"Array\":a=i.isObservableArray;break;case\"Object\":a=i.isObservableObject;break;case\"Map\":a=i.isObservableMap;break;default:throw new Error(\"Unexpected mobxType: \"+t)}var l=n[r];if(!a(l)){var u=function(e){var t=M(e);if(\"object\"===t){if(e instanceof Date)return\"date\";if(e instanceof RegExp)return\"regexp\"}return t}(l),c=e?\" or javascript `\"+t.toLowerCase()+\"`\":\"\";return new Error(\"Invalid prop `\"+s+\"` of type `\"+u+\"` supplied to `\"+o+\"`, expected `mobx.Observable\"+t+\"`\"+c+\".\")}return null}))}))}function E(e,t){return w((function(n,r,o,a,s){for(var l=arguments.length,u=Array(l>5?l-5:0),c=5;c2&&void 0!==arguments[2]&&arguments[2],i=e[t],r=J[t],o=i?!0===n?function(){r.apply(this,arguments),i.apply(this,arguments)}:function(){i.apply(this,arguments),r.apply(this,arguments)}:r;e[t]=o}function K(e,t){if(Z(e,t))return!0;if(\"object\"!==(void 0===e?\"undefined\":s(e))||null===e||\"object\"!==(void 0===t?\"undefined\":s(t))||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r\",n=this._reactInternalInstance&&this._reactInternalInstance._rootNodeID||this._reactInternalFiber&&this._reactInternalFiber._debugID,o=!1,a=!1;d.call(this,\"props\"),d.call(this,\"state\");var s=this.render.bind(this),l=null,u=!1,c=function(){u=!1;var t=void 0,n=void 0;if(l.track((function(){z&&(e.__$mobRenderStart=Date.now());try{n=i.extras.allowStateChanges(!1,s)}catch(e){t=e}z&&(e.__$mobRenderEnd=Date.now())})),t)throw q.emit(t),t;return n};this.render=function(){return(l=new i.Reaction(t+\"#\"+n+\".render()\",(function(){if(!u&&(u=!0,\"function\"==typeof e.componentWillReact&&e.componentWillReact(),!0!==e.__$mobxIsUnmounted)){var t=!0;try{a=!0,o||r.Component.prototype.forceUpdate.call(e),t=!1}finally{a=!1,t&&l.dispose()}}}))).reactComponent=e,c.$mobx=l,e.render=c,c()}}function d(e){var t=this[e],n=new i.Atom(\"reactive \"+e);Object.defineProperty(this,e,{configurable:!0,enumerable:!0,get:function(){return n.reportObserved(),t},set:function(e){a||K(t,e)?t=e:(t=e,o=!0,n.reportChanged(),o=!1)}})}},componentWillUnmount:function(){if(!0!==B&&(this.render.$mobx&&this.render.$mobx.dispose(),this.__$mobxIsUnmounted=!0,z)){var e=G(this);e&&j&&j.delete(e),W.emit({event:\"destroy\",component:this,node:e})}},componentDidMount:function(){z&&V(this)},componentDidUpdate:function(){z&&V(this)},shouldComponentUpdate:function(e,t){return B&&console.warn(\"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\"),this.state!==t||!K(this.props,e)}};function $(e,t){if(\"string\"==typeof e)throw new Error(\"Store names should be provided as array\");if(Array.isArray(e))return U||(U=!0,console.warn('Mobx observer: Using observer to inject stores is deprecated since 4.0. Use `@inject(\"store1\", \"store2\") @observer ComponentClass` or `inject(\"store1\", \"store2\")(observer(componentClass))` instead of `@observer([\"store1\", \"store2\"]) ComponentClass`')),t?F.apply(null,e)($(t)):function(t){return $(e,t)};var n,i,o=e;if(!0===o.isMobxInjector&&console.warn(\"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\"),!(\"function\"!=typeof o||o.prototype&&o.prototype.render||o.isReactClass||r.Component.isPrototypeOf(o)))return $((i=n=function(e){function t(){return l(this,t),d(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return c(t,e),u(t,[{key:\"render\",value:function(){return o.call(this,this.props,this.context)}}]),t}(r.Component),n.displayName=o.displayName||o.name,n.contextTypes=o.contextTypes,n.propTypes=o.propTypes,n.defaultProps=o.defaultProps,i));if(!o)throw new Error(\"Please pass a valid component to 'observer'\");return function(e){X(e,\"componentWillMount\",!0),[\"componentDidMount\",\"componentWillUnmount\",\"componentDidUpdate\"].forEach((function(t){X(e,t)})),e.shouldComponentUpdate||(e.shouldComponentUpdate=J.shouldComponentUpdate)}(o.prototype||o),o.isMobXReactObserver=!0,o}var Q=$((function(e){var t=e.children,n=e.inject,i=e.render,r=t||i;if(void 0===r)return null;if(!n)return r();var a=F(n)(r);return o.a.createElement(a,null)}));Q.displayName=\"Observer\";var ee,te,ne=function(e,t,n,i,r){var o=\"children\"===t?\"render\":\"children\";return\"function\"==typeof e[t]&&\"function\"==typeof e[o]?new Error(\"Invalid prop,do not use children and render in the same time in`\"+n):\"function\"!=typeof e[t]&&\"function\"!=typeof e[o]?new Error(\"Invalid prop `\"+r+\"` of type `\"+s(e[t])+\"` supplied to `\"+n+\"`, expected `function`.\"):void 0};Q.propTypes={render:ne,children:ne};var ie={children:!0,key:!0,ref:!0},re=(te=ee=function(e){function t(){return l(this,t),d(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return c(t,e),u(t,[{key:\"render\",value:function(){return r.Children.only(this.props.children)}},{key:\"getChildContext\",value:function(){var e={},t=this.context.mobxStores;if(t)for(var n in t)e[n]=t[n];for(var i in this.props)ie[i]||\"suppressChangedStoreWarning\"===i||(e[i]=this.props[i]);return{mobxStores:e}}},{key:\"componentWillReceiveProps\",value:function(e){if(Object.keys(e).length!==Object.keys(this.props).length&&console.warn(\"MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children\"),!e.suppressChangedStoreWarning)for(var t in e)ie[t]||this.props[t]===e[t]||console.warn(\"MobX Provider: Provided store '\"+t+\"' has changed. Please avoid replacing stores as the change might not propagate to all children\")}}]),t}(r.Component),ee.contextTypes={mobxStores:R},ee.childContextTypes={mobxStores:R.isRequired},te);if(!r.Component)throw new Error(\"mobx-react requires React to be available\");if(!i.extras)throw new Error(\"mobx-react requires mobx to be available\");\"function\"==typeof a.unstable_batchedUpdates&&i.extras.setReactionScheduler(a.unstable_batchedUpdates);var oe=function(e){return q.on(e)};if(\"object\"===(\"undefined\"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__?\"undefined\":s(__MOBX_DEVTOOLS_GLOBAL_HOOK__))){var ae={spy:i.spy,extras:i.extras},se={renderReporter:W,componentByNodeRegistery:j,trackComponents:H};__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobxReact(se,ae)}},function(e,t,n){\"use strict\";n.r(t),function(e){n.d(t,\"extras\",(function(){return Pn})),n.d(t,\"Reaction\",(function(){return un})),n.d(t,\"untracked\",(function(){return en})),n.d(t,\"IDerivationState\",(function(){return St})),n.d(t,\"Atom\",(function(){return a})),n.d(t,\"BaseAtom\",(function(){return o})),n.d(t,\"useStrict\",(function(){return G})),n.d(t,\"isStrictModeEnabled\",(function(){return V})),n.d(t,\"spy\",(function(){return b})),n.d(t,\"comparer\",(function(){return ce})),n.d(t,\"asReference\",(function(){return gn})),n.d(t,\"asFlat\",(function(){return vn})),n.d(t,\"asStructure\",(function(){return yn})),n.d(t,\"asMap\",(function(){return bn})),n.d(t,\"isModifierDescriptor\",(function(){return je})),n.d(t,\"isObservableObject\",(function(){return Ce})),n.d(t,\"isBoxedObservable\",(function(){return z})),n.d(t,\"isObservableArray\",(function(){return D})),n.d(t,\"ObservableMap\",(function(){return Ze})),n.d(t,\"isObservableMap\",(function(){return $e})),n.d(t,\"map\",(function(){return Je})),n.d(t,\"transaction\",(function(){return Xe})),n.d(t,\"observable\",(function(){return Be})),n.d(t,\"computed\",(function(){return Mn})),n.d(t,\"isObservable\",(function(){return Oe})),n.d(t,\"isComputed\",(function(){return Sn})),n.d(t,\"extendObservable\",(function(){return Pe})),n.d(t,\"extendShallowObservable\",(function(){return Ae})),n.d(t,\"observe\",(function(){return En})),n.d(t,\"intercept\",(function(){return Tn})),n.d(t,\"autorun\",(function(){return de})),n.d(t,\"autorunAsync\",(function(){return pe})),n.d(t,\"when\",(function(){return he})),n.d(t,\"reaction\",(function(){return fe})),n.d(t,\"action\",(function(){return Q})),n.d(t,\"isAction\",(function(){return ne})),n.d(t,\"runInAction\",(function(){return te})),n.d(t,\"expr\",(function(){return Cn})),n.d(t,\"toJS\",(function(){return On})),n.d(t,\"createTransformer\",(function(){return kn})),n.d(t,\"whyRun\",(function(){return an})),n.d(t,\"trace\",(function(){return sn})),n.d(t,\"isArrayLike\",(function(){return _t}));\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};function r(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){function e(e){void 0===e&&(e=\"Atom@\"+tt()),this.name=e,this.isPendingUnobservation=!0,this.observers=[],this.observersIndexes={},this.diffValue=0,this.lastAccessedBy=0,this.lowestObserverState=St.NOT_TRACKING}return e.prototype.onBecomeUnobserved=function(){},e.prototype.reportObserved=function(){Ht(this)},e.prototype.reportChanged=function(){Gt(),function(e){if(e.lowestObserverState===St.STALE)return;e.lowestObserverState=St.STALE;var t=e.observers,n=t.length;for(;n--;){var i=t[n];i.dependenciesState===St.UP_TO_DATE&&(i.isTracing!==Et.NONE&&Yt(i,e),i.onBecomeStale()),i.dependenciesState=St.STALE}}(this),Vt()},e.prototype.toString=function(){return this.name},e}(),a=function(e){function t(t,n,i){void 0===t&&(t=\"Atom@\"+tt()),void 0===n&&(n=st),void 0===i&&(i=st);var r=e.call(this,t)||this;return r.name=t,r.onBecomeObservedHandler=n,r.onBecomeUnobservedHandler=i,r.isPendingUnobservation=!1,r.isBeingTracked=!1,r}return r(t,e),t.prototype.reportObserved=function(){return Gt(),e.prototype.reportObserved.call(this),this.isBeingTracked||(this.isBeingTracked=!0,this.onBecomeObservedHandler()),Vt(),!!Ot.trackingDerivation},t.prototype.onBecomeUnobserved=function(){this.isBeingTracked=!1,this.onBecomeUnobservedHandler()},t}(o),s=bt(\"Atom\",o);function l(e){return e.interceptors&&e.interceptors.length>0}function u(e,t){var n=e.interceptors||(e.interceptors=[]);return n.push(t),at((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function c(e,t){var n=tn();try{var i=e.interceptors;if(i)for(var r=0,o=i.length;r0}function h(e,t){var n=e.changeListeners||(e.changeListeners=[]);return n.push(t),at((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function p(e,t){var n=tn(),i=e.changeListeners;if(i){for(var r=0,o=(i=i.slice()).length;r=this.length,value:tt){for(var n=new Array(e-t),i=0;i0&&e+t+1>T&&L(e+t+1)},e.prototype.spliceWithArray=function(e,t,n){var i=this;Jt(this.atom);var r=this.values.length;if(void 0===e?e=0:e>r?e=r:e<0&&(e=Math.max(0,r+e)),t=1===arguments.length?r-e:null==t?0:Math.max(0,Math.min(t,r-e)),void 0===n&&(n=[]),l(this)){var o=c(this,{object:this.array,type:\"splice\",index:e,removedCount:t,added:n});if(!o)return Qe;t=o.removedCount,n=o.added}var a=(n=n.map((function(e){return i.enhancer(e,void 0)}))).length-t;this.updateArrayLength(r,a);var s=this.spliceItemsIntoValues(e,t,n);return 0===t&&0===n.length||this.notifyArraySplice(e,n,s),this.dehanceValues(s)},e.prototype.spliceItemsIntoValues=function(e,t,n){if(n.length<1e4)return(i=this.values).splice.apply(i,[e,t].concat(n));var i,r=this.values.slice(e,e+t);return this.values=this.values.slice(0,e).concat(n,this.values.slice(e+t)),r},e.prototype.notifyArrayChildUpdate=function(e,t,n){var i=!this.owned&&f(),r=d(this),o=r||i?{object:this.array,type:\"update\",index:e,newValue:t,oldValue:n}:null;i&&g(o),this.atom.reportChanged(),r&&p(this,o),i&&v()},e.prototype.notifyArraySplice=function(e,t,n){var i=!this.owned&&f(),r=d(this),o=r||i?{object:this.array,type:\"splice\",index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;i&&g(o),this.atom.reportChanged(),r&&p(this,o),i&&v()},e}(),k=function(e){function t(t,n,i,r){void 0===i&&(i=\"ObservableArray@\"+tt()),void 0===r&&(r=!1);var o=e.call(this)||this,a=new O(i,n,o,r);return gt(o,\"$mobx\",a),t&&t.length&&o.spliceWithArray(0,0,t),E&&Object.defineProperty(a.array,\"0\",P),o}return r(t,e),t.prototype.intercept=function(e){return this.$mobx.intercept(e)},t.prototype.observe=function(e,t){return void 0===t&&(t=!1),this.$mobx.observe(e,t)},t.prototype.clear=function(){return this.splice(0)},t.prototype.concat=function(){for(var e=[],t=0;t-1&&(this.splice(t,1),!0)},t.prototype.move=function(e,t){function n(e){if(e<0)throw new Error(\"[mobx.array] Index out of bounds: \"+e+\" is negative\");var t=this.$mobx.values.length;if(e>=t)throw new Error(\"[mobx.array] Index out of bounds: \"+e+\" is not smaller than \"+t)}if(n.call(this,e),n.call(this,t),e!==t){var i,r=this.$mobx.values;i=e0,\"actions should have valid names, got: '\"+e+\"'\");var n=function(){return W(e,t,this,arguments)};return n.originalFn=t,n.isMobxAction=!0,n}function W(e,t,n,i){var r=function(e,t,n,i){var r=f()&&!!e,o=0;if(r){o=Date.now();var a=i&&i.length||0,s=new Array(a);if(a>0)for(var l=0;l\";mt(e,t,Q(o,n))}),(function(e){return this[e]}),(function(){it(!1,U(\"m001\"))}),!1,!0),$=q((function(e,t,n){ie(e,t,n)}),(function(e){return this[e]}),(function(){it(!1,U(\"m001\"))}),!1,!1),Q=function(e,t,n,i){return 1===arguments.length&&\"function\"==typeof e?j(e.name||\"\",e):2===arguments.length&&\"function\"==typeof t?j(e,t):1===arguments.length&&\"string\"==typeof e?ee(e):ee(t).apply(null,arguments)};function ee(e){return function(t,n,i){if(i&&\"function\"==typeof i.value)return i.value=j(e,i.value),i.enumerable=!1,i.configurable=!0,i;if(void 0!==i&&void 0!==i.get)throw new Error(\"[mobx] action is not expected to be used with getters\");return J(e).apply(this,arguments)}}function te(e,t,n){var i=\"string\"==typeof e?e:e.name||\"\",r=\"function\"==typeof e?e:t,o=\"function\"==typeof e?t:n;return it(\"function\"==typeof r,U(\"m002\")),it(0===r.length,U(\"m003\")),it(\"string\"==typeof i&&i.length>0,\"actions should have valid names, got: '\"+i+\"'\"),W(i,r,o,void 0)}function ne(e){return\"function\"==typeof e&&!0===e.isMobxAction}function ie(e,t,n){var i=function(){return W(t,n,e,arguments)};i.isMobxAction=!0,mt(e,t,i)}Q.bound=function(e,t,n){if(\"function\"==typeof e){var i=j(\"\",e);return i.autoBind=!0,i}return $.apply(null,arguments)};var re=Object.prototype.toString;function oe(e,t){return ae(e,t)}function ae(e,t,n,i){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var r=typeof e;return(\"function\"===r||\"object\"===r||\"object\"==typeof t)&&function(e,t,n,i){e=se(e),t=se(t);var r=re.call(e);if(r!==re.call(t))return!1;switch(r){case\"[object RegExp]\":case\"[object String]\":return\"\"+e==\"\"+t;case\"[object Number]\":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case\"[object Date]\":case\"[object Boolean]\":return+e==+t;case\"[object Symbol]\":return\"undefined\"!=typeof Symbol&&Symbol.valueOf.call(e)===Symbol.valueOf.call(t)}var o=\"[object Array]\"===r;if(!o){if(\"object\"!=typeof e||\"object\"!=typeof t)return!1;var a=e.constructor,s=t.constructor;if(a!==s&&!(\"function\"==typeof a&&a instanceof a&&\"function\"==typeof s&&s instanceof s)&&\"constructor\"in e&&\"constructor\"in t)return!1}i=i||[];var l=(n=n||[]).length;for(;l--;)if(n[l]===e)return i[l]===t;if(n.push(e),i.push(t),o){if((l=e.length)!==t.length)return!1;for(;l--;)if(!ae(e[l],t[l],n,i))return!1}else{var u,c=Object.keys(e);if(l=c.length,Object.keys(t).length!==l)return!1;for(;l--;)if(u=c[l],!le(t,u)||!ae(e[u],t[u],n,i))return!1}return n.pop(),i.pop(),!0}(e,t,n,i)}function se(e){return D(e)?e.peek():$e(e)?e.entries():xt(e)?function(e){var t=[];for(;;){var n=e.next();if(n.done)break;t.push(n.value)}return t}(e.entries()):e}function le(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ue(e,t){return e===t}var ce={identity:ue,structural:function(e,t){return oe(e,t)},default:function(e,t){return function(e,t){return\"number\"==typeof e&&\"number\"==typeof t&&isNaN(e)&&isNaN(t)}(e,t)||ue(e,t)}};function de(e,t,n){var i,r,o;\"string\"==typeof e?(i=e,r=t,o=n):(i=e.name||\"Autorun@\"+tt(),r=e,o=t),it(\"function\"==typeof r,U(\"m004\")),it(!1===ne(r),U(\"m005\")),o&&(r=r.bind(o));var a=new un(i,(function(){this.track(s)}));function s(){r(a)}return a.schedule(),a.getDisposer()}function he(e,t,n,i){var r,o,a,s;return\"string\"==typeof e?(r=e,o=t,a=n,s=i):(r=\"When@\"+tt(),o=e,a=t,s=n),de(r,(function(e){if(o.call(s)){e.dispose();var t=tn();a.call(s),nn(t)}}))}function pe(e,t,n,i){var r,o,a,s;\"string\"==typeof e?(r=e,o=t,a=n,s=i):(r=e.name||\"AutorunAsync@\"+tt(),o=e,a=t,s=n),it(!1===ne(o),U(\"m006\")),void 0===a&&(a=1),s&&(o=o.bind(s));var l=!1,u=new un(r,(function(){l||(l=!0,setTimeout((function(){l=!1,u.isDisposed||u.track(c)}),a))}));function c(){o(u)}return u.schedule(),u.getDisposer()}function fe(e,t,n){var i;arguments.length>3&&nt(U(\"m007\")),je(e)&&nt(U(\"m008\")),(i=\"object\"==typeof n?n:{}).name=i.name||e.name||t.name||\"Reaction@\"+tt(),i.fireImmediately=!0===n||!0===i.fireImmediately,i.delay=i.delay||0,i.compareStructural=i.compareStructural||i.struct||!1,t=Q(i.name,i.context?t.bind(i.context):t),i.context&&(e=e.bind(i.context));var r,o=!0,a=!1,s=i.equals?i.equals:i.compareStructural||i.struct?ce.structural:ce.default,l=new un(i.name,(function(){o||i.delay<1?u():a||(a=!0,setTimeout((function(){a=!1,u()}),i.delay))}));function u(){if(!l.isDisposed){var n=!1;l.track((function(){var t=e(l);n=o||!s(r,t),r=t})),o&&i.fireImmediately&&t(r,l),o||!0!==n||t(r,l),o&&(o=!1)}}return l.schedule(),l.getDisposer()}var me=function(){function e(e,t,n,i,r){this.derivation=e,this.scope=t,this.equals=n,this.dependenciesState=St.NOT_TRACKING,this.observing=[],this.newObserving=null,this.isPendingUnobservation=!1,this.observers=[],this.observersIndexes={},this.diffValue=0,this.runId=0,this.lastAccessedBy=0,this.lowestObserverState=St.UP_TO_DATE,this.unboundDepsCount=0,this.__mapid=\"#\"+tt(),this.value=new qt(null),this.isComputing=!1,this.isRunningSetter=!1,this.isTracing=Et.NONE,this.name=i||\"ComputedValue@\"+tt(),r&&(this.setter=j(i+\"-setter\",r))}return e.prototype.onBecomeStale=function(){!function(e){if(e.lowestObserverState!==St.UP_TO_DATE)return;e.lowestObserverState=St.POSSIBLY_STALE;var t=e.observers,n=t.length;for(;n--;){var i=t[n];i.dependenciesState===St.UP_TO_DATE&&(i.dependenciesState=St.POSSIBLY_STALE,i.isTracing!==Et.NONE&&Yt(i,e),i.onBecomeStale())}}(this)},e.prototype.onBecomeUnobserved=function(){Qt(this),this.value=void 0},e.prototype.get=function(){it(!this.isComputing,\"Cycle detected in computation \"+this.name,this.derivation),0===Ot.inBatch?(Gt(),Kt(this)&&(this.isTracing!==Et.NONE&&console.log(\"[mobx.trace] '\"+this.name+\"' is being read outside a reactive context and doing a full recompute\"),this.value=this.computeValue(!1)),Vt()):(Ht(this),Kt(this)&&this.trackAndCompute()&&function(e){if(e.lowestObserverState===St.STALE)return;e.lowestObserverState=St.STALE;var t=e.observers,n=t.length;for(;n--;){var i=t[n];i.dependenciesState===St.POSSIBLY_STALE?i.dependenciesState=St.STALE:i.dependenciesState===St.UP_TO_DATE&&(e.lowestObserverState=St.UP_TO_DATE)}}(this));var e=this.value;if(Xt(e))throw e.cause;return e},e.prototype.peek=function(){var e=this.computeValue(!1);if(Xt(e))throw e.cause;return e},e.prototype.set=function(e){if(this.setter){it(!this.isRunningSetter,\"The setter of computed value '\"+this.name+\"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\"),this.isRunningSetter=!0;try{this.setter.call(this.scope,e)}finally{this.isRunningSetter=!1}}else it(!1,\"[ComputedValue '\"+this.name+\"'] It is not possible to assign a new value to a computed value.\")},e.prototype.trackAndCompute=function(){f()&&m({object:this.scope,type:\"compute\",fn:this.derivation});var e=this.value,t=this.dependenciesState===St.NOT_TRACKING,n=this.value=this.computeValue(!0);return t||Xt(e)||Xt(n)||!this.equals(e,n)},e.prototype.computeValue=function(e){var t;if(this.isComputing=!0,Ot.computationDepth++,e)t=$t(this,this.derivation,this.scope);else try{t=this.derivation.call(this.scope)}catch(e){t=new qt(e)}return Ot.computationDepth--,this.isComputing=!1,t},e.prototype.observe=function(e,t){var n=this,i=!0,r=void 0;return de((function(){var o=n.get();if(!i||t){var a=tn();e({type:\"update\",object:n,newValue:o,oldValue:r}),nn(a)}i=!1,r=o}))},e.prototype.toJSON=function(){return this.get()},e.prototype.toString=function(){return this.name+\"[\"+this.derivation.toString()+\"]\"},e.prototype.valueOf=function(){return Mt(this.get())},e.prototype.whyRun=function(){var e=Boolean(Ot.trackingDerivation),t=lt(this.isComputing?this.newObserving:this.observing).map((function(e){return e.name})),n=lt(Bt(this).map((function(e){return e.name})));return\"\\nWhyRun? computation '\"+this.name+\"':\\n * Running because: \"+(e?\"[active] the value of this computation is needed by a reaction\":this.isComputing?\"[get] The value of this computed was requested outside a reaction\":\"[idle] not running at the moment\")+\"\\n\"+(this.dependenciesState===St.NOT_TRACKING?U(\"m032\"):\" * This computation will re-run if any of the following observables changes:\\n \"+ut(t)+\"\\n \"+(this.isComputing&&e?\" (... or any observable accessed during the remainder of the current run)\":\"\")+\"\\n \"+U(\"m038\")+\"\\n\\n * If the outcome of this computation changes, the following observers will be re-run:\\n \"+ut(n)+\"\\n\")},e}();me.prototype[wt()]=me.prototype.valueOf;var ge=bt(\"ComputedValue\",me),ye=function(){function e(e,t){this.target=e,this.name=t,this.values={},this.changeListeners=null,this.interceptors=null}return e.prototype.observe=function(e,t){return it(!0!==t,\"`observe` doesn't support the fire immediately property for observable objects.\"),h(this,e)},e.prototype.intercept=function(e){return u(this,e)},e}();function ve(e,t){if(Ce(e)&&e.hasOwnProperty(\"$mobx\"))return e.$mobx;it(Object.isExtensible(e),U(\"m035\")),dt(e)||(t=(e.constructor.name||\"ObservableObject\")+\"@\"+tt()),t||(t=\"ObservableObject@\"+tt());var n=new ye(e,t);return gt(e,\"$mobx\",n),n}function be(e,t,n,i){if(e.values[t]&&!ge(e.values[t]))return it(\"value\"in n,\"The property \"+t+\" in \"+e.name+\" is already observable, cannot redefine it as computed property\"),void(e.target[t]=n.value);if(\"value\"in n)if(je(n.value)){var r=n.value;_e(e,t,r.initialValue,r.enhancer)}else ne(n.value)&&!0===n.value.autoBind?ie(e.target,t,n.value.originalFn):ge(n.value)?function(e,t,n){var i=e.name+\".\"+t;n.name=i,n.scope||(n.scope=e.target);e.values[t]=n,Object.defineProperty(e.target,t,Se(t))}(e,t,n.value):_e(e,t,n.value,i);else xe(e,t,n.get,n.set,ce.default,!0)}function _e(e,t,n,i){if(vt(e.target,t),l(e)){var r=c(e,{object:e.target,name:t,type:\"add\",newValue:n});if(!r)return;n=r.newValue}n=(e.values[t]=new F(n,i,e.name+\".\"+t,!1)).value,Object.defineProperty(e.target,t,function(e){return we[e]||(we[e]={configurable:!0,enumerable:!0,get:function(){return this.$mobx.values[e].get()},set:function(t){Ee(this,e,t)}})}(t)),function(e,t,n,i){var r=d(e),o=f(),a=r||o?{type:\"add\",object:t,name:n,newValue:i}:null;o&&g(a);r&&p(e,a);o&&v()}(e,e.target,t,n)}function xe(e,t,n,i,r,o){o&&vt(e.target,t),e.values[t]=new me(n,e.target,r,e.name+\".\"+t,i),o&&Object.defineProperty(e.target,t,Se(t))}var we={},Me={};function Se(e){return Me[e]||(Me[e]={configurable:!0,enumerable:!1,get:function(){return this.$mobx.values[e].get()},set:function(t){return this.$mobx.values[e].set(t)}})}function Ee(e,t,n){var i=e.$mobx,r=i.values[t];if(l(i)){if(!(s=c(i,{type:\"update\",object:e,name:t,newValue:n})))return;n=s.newValue}if((n=r.prepareNewValue(n))!==N){var o=d(i),a=f(),s=o||a?{type:\"update\",object:e,oldValue:r.value,name:t,newValue:n}:null;a&&g(s),r.setNewValue(n),o&&p(i,s),a&&v()}}var Te=bt(\"ObservableObjectAdministration\",ye);function Ce(e){return!!ct(e)&&(K(e),Te(e.$mobx))}function Oe(e,t){if(null==e)return!1;if(void 0!==t){if(D(e)||$e(e))throw new Error(U(\"m019\"));if(Ce(e)){var n=e.$mobx;return n.values&&!!n.values[t]}return!1}return Ce(e)||!!e.$mobx||s(e)||mn(e)||ge(e)}function ke(e){return it(!!e,\":(\"),q((function(t,n,i,r,o){vt(t,n),it(!o||!o.get,U(\"m022\")),_e(ve(t,void 0),n,i,e)}),(function(e){var t=this.$mobx.values[e];if(void 0!==t)return t.get()}),(function(e,t){Ee(this,e,t)}),!0,!1)}function Pe(e){for(var t=[],n=1;n=2,U(\"m014\")),it(\"object\"==typeof e,U(\"m015\")),it(!$e(e),U(\"m016\")),n.forEach((function(e){it(\"object\"==typeof e,U(\"m017\")),it(!Oe(e),U(\"m018\"))}));for(var i=ve(e),r={},o=n.length-1;o>=0;o--){var a=n[o];for(var s in a)if(!0!==r[s]&&ft(a,s)){if(r[s]=!0,e===a&&!yt(e,s))continue;be(i,s,Object.getOwnPropertyDescriptor(a,s),t)}}return e}var Le=ke(Ge),Ie=ke(Ve),De=ke(He),Ne=ke(Ye),Fe=ke(qe);var ze={box:function(e,t){return arguments.length>2&&Ue(\"box\"),new F(e,Ge,t)},shallowBox:function(e,t){return arguments.length>2&&Ue(\"shallowBox\"),new F(e,He,t)},array:function(e,t){return arguments.length>2&&Ue(\"array\"),new k(e,Ge,t)},shallowArray:function(e,t){return arguments.length>2&&Ue(\"shallowArray\"),new k(e,He,t)},map:function(e,t){return arguments.length>2&&Ue(\"map\"),new Ze(e,Ge,t)},shallowMap:function(e,t){return arguments.length>2&&Ue(\"shallowMap\"),new Ze(e,He,t)},object:function(e,t){arguments.length>2&&Ue(\"object\");var n={};return ve(n,t),Pe(n,e),n},shallowObject:function(e,t){arguments.length>2&&Ue(\"shallowObject\");var n={};return ve(n,t),Ae(n,e),n},ref:function(){return arguments.length<2?We(He,arguments[0]):De.apply(null,arguments)},shallow:function(){return arguments.length<2?We(Ve,arguments[0]):Ie.apply(null,arguments)},deep:function(){return arguments.length<2?We(Ge,arguments[0]):Le.apply(null,arguments)},struct:function(){return arguments.length<2?We(Ye,arguments[0]):Ne.apply(null,arguments)}},Be=function(e){if(void 0===e&&(e=void 0),\"string\"==typeof arguments[1])return Le.apply(null,arguments);if(it(arguments.length<=1,U(\"m021\")),it(!je(e),U(\"m020\")),Oe(e))return e;var t=Ge(e,void 0,void 0);return t!==e?t:Be.box(e)};function Ue(e){nt(\"Expected one or two arguments to observable.\"+e+\". Did you accidentally try to use observable.\"+e+\" as decorator?\")}function je(e){return\"object\"==typeof e&&null!==e&&!0===e.isMobxModifierDescriptor}function We(e,t){return it(!je(t),\"Modifiers cannot be nested\"),{isMobxModifierDescriptor:!0,initialValue:t,enhancer:e}}function Ge(e,t,n){return je(e)&&nt(\"You tried to assign a modifier wrapped value to a collection, please define modifiers when creating the collection, not when modifying it\"),Oe(e)?e:Array.isArray(e)?Be.array(e,n):dt(e)?Be.object(e,n):xt(e)?Be.map(e,n):e}function Ve(e,t,n){return je(e)&&nt(\"You tried to assign a modifier wrapped value to a collection, please define modifiers when creating the collection, not when modifying it\"),null==e?e:Ce(e)||D(e)||$e(e)?e:Array.isArray(e)?Be.shallowArray(e,n):dt(e)?Be.shallowObject(e,n):xt(e)?Be.shallowMap(e,n):nt(\"The shallow modifier / decorator can only used in combination with arrays, objects and maps\")}function He(e){return e}function Ye(e,t,n){if(oe(e,t))return t;if(Oe(e))return e;if(Array.isArray(e))return new k(e,Ye,n);if(xt(e))return new Ze(e,Ye,n);if(dt(e)){var i={};return ve(i,n),Re(i,Ye,[e]),i}return e}function qe(e,t,n){return oe(e,t)?t:e}function Xe(e,t){void 0===t&&(t=void 0),Gt();try{return e.apply(t)}finally{Vt()}}Object.keys(ze).forEach((function(e){return Be[e]=ze[e]})),Be.deep.struct=Be.struct,Be.ref.struct=function(){return arguments.length<2?We(qe,arguments[0]):Fe.apply(null,arguments)};var Ke={},Ze=function(){function e(e,t,n){void 0===t&&(t=Ge),void 0===n&&(n=\"ObservableMap@\"+tt()),this.enhancer=t,this.name=n,this.$mobx=Ke,this._data=Object.create(null),this._hasMap=Object.create(null),this._keys=new k(void 0,He,this.name+\".keys()\",!0),this.interceptors=null,this.changeListeners=null,this.dehancer=void 0,this.merge(e)}return e.prototype._has=function(e){return void 0!==this._data[e]},e.prototype.has=function(e){return!!this.isValidKey(e)&&(e=\"\"+e,this._hasMap[e]?this._hasMap[e].get():this._updateHasMapEntry(e,!1).get())},e.prototype.set=function(e,t){this.assertValidKey(e),e=\"\"+e;var n=this._has(e);if(l(this)){var i=c(this,{type:n?\"update\":\"add\",object:this,newValue:t,name:e});if(!i)return this;t=i.newValue}return n?this._updateValue(e,t):this._addValue(e,t),this},e.prototype.delete=function(e){var t=this;if((this.assertValidKey(e),e=\"\"+e,l(this))&&!(r=c(this,{type:\"delete\",object:this,name:e})))return!1;if(this._has(e)){var n=f(),i=d(this),r=i||n?{type:\"delete\",object:this,oldValue:this._data[e].value,name:e}:null;return n&&g(r),Xe((function(){t._keys.remove(e),t._updateHasMapEntry(e,!1),t._data[e].setNewValue(void 0),t._data[e]=void 0})),i&&p(this,r),n&&v(),!0}return!1},e.prototype._updateHasMapEntry=function(e,t){var n=this._hasMap[e];return n?n.setNewValue(t):n=this._hasMap[e]=new F(t,He,this.name+\".\"+e+\"?\",!1),n},e.prototype._updateValue=function(e,t){var n=this._data[e];if((t=n.prepareNewValue(t))!==N){var i=f(),r=d(this),o=r||i?{type:\"update\",object:this,oldValue:n.value,name:e,newValue:t}:null;i&&g(o),n.setNewValue(t),r&&p(this,o),i&&v()}},e.prototype._addValue=function(e,t){var n=this;Xe((function(){var i=n._data[e]=new F(t,n.enhancer,n.name+\".\"+e,!1);t=i.value,n._updateHasMapEntry(e,!0),n._keys.push(e)}));var i=f(),r=d(this),o=r||i?{type:\"add\",object:this,name:e,newValue:t}:null;i&&g(o),r&&p(this,o),i&&v()},e.prototype.get=function(e){return e=\"\"+e,this.has(e)?this.dehanceValue(this._data[e].get()):this.dehanceValue(void 0)},e.prototype.dehanceValue=function(e){return void 0!==this.dehancer?this.dehancer(e):e},e.prototype.keys=function(){return x(this._keys.slice())},e.prototype.values=function(){return x(this._keys.map(this.get,this))},e.prototype.entries=function(){var e=this;return x(this._keys.map((function(t){return[t,e.get(t)]})))},e.prototype.forEach=function(e,t){var n=this;this.keys().forEach((function(i){return e.call(t,n.get(i),i,n)}))},e.prototype.merge=function(e){var t=this;return $e(e)&&(e=e.toJS()),Xe((function(){dt(e)?Object.keys(e).forEach((function(n){return t.set(n,e[n])})):Array.isArray(e)?e.forEach((function(e){var n=e[0],i=e[1];return t.set(n,i)})):xt(e)?e.forEach((function(e,n){return t.set(n,e)})):null!=e&&nt(\"Cannot initialize map from \"+e)})),this},e.prototype.clear=function(){var e=this;Xe((function(){en((function(){e.keys().forEach(e.delete,e)}))}))},e.prototype.replace=function(e){var t=this;return Xe((function(){var n,i=dt(n=e)?Object.keys(n):Array.isArray(n)?n.map((function(e){return e[0]})):xt(n)?Array.from(n.keys()):$e(n)?n.keys():nt(\"Cannot get keys from \"+n);t.keys().filter((function(e){return-1===i.indexOf(e)})).forEach((function(e){return t.delete(e)})),t.merge(e)})),this},Object.defineProperty(e.prototype,\"size\",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),e.prototype.toJS=function(){var e=this,t={};return this.keys().forEach((function(n){return t[n]=e.get(n)})),t},e.prototype.toJSON=function(){return this.toJS()},e.prototype.isValidKey=function(e){return null!=e&&(\"string\"==typeof e||\"number\"==typeof e||\"boolean\"==typeof e)},e.prototype.assertValidKey=function(e){if(!this.isValidKey(e))throw new Error(\"[mobx.map] Invalid key: '\"+e+\"', only strings, numbers and booleans are accepted as key in observable maps.\")},e.prototype.toString=function(){var e=this;return this.name+\"[{ \"+this.keys().map((function(t){return t+\": \"+e.get(t)})).join(\", \")+\" }]\"},e.prototype.observe=function(e,t){return it(!0!==t,U(\"m033\")),h(this,e)},e.prototype.intercept=function(e){return u(this,e)},e}();function Je(e){return ot(\"`mobx.map` is deprecated, use `new ObservableMap` or `mobx.observable.map` instead\"),Be.map(e)}w(Ze.prototype,(function(){return this.entries()}));var $e=bt(\"ObservableMap\",Ze),Qe=[];function et(){return\"undefined\"!=typeof window?window:e}function tt(){return++Ot.mobxGuid}function nt(e,t){throw it(!1,e,t),\"X\"}function it(e,t,n){if(!e)throw new Error(\"[mobx] Invariant failed: \"+t+(n?\" in '\"+n+\"'\":\"\"))}Object.freeze(Qe);var rt=[];function ot(e){return-1===rt.indexOf(e)&&(rt.push(e),console.error(\"[mobx] Deprecated: \"+e),!0)}function at(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}var st=function(){};function lt(e){var t=[];return e.forEach((function(e){-1===t.indexOf(e)&&t.push(e)})),t}function ut(e,t,n){return void 0===t&&(t=100),void 0===n&&(n=\" - \"),e?e.slice(0,t).join(n)+(e.length>t?\" (... and \"+(e.length-t)+\"more)\":\"\"):\"\"}function ct(e){return null!==e&&\"object\"==typeof e}function dt(e){if(null===e||\"object\"!=typeof e)return!1;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}function ht(){for(var e=arguments[0],t=1,n=arguments.length;t0&&(t.dependencies=lt(e.observing).map(Ft)),t}function zt(e){var t={name:e.name};return function(e){return e.observers&&e.observers.length>0}(e)&&(t.observers=Bt(e).map(zt)),t}function Bt(e){return e.observers}function Ut(e,t){var n=e.observers.length;n&&(e.observersIndexes[t.__mapid]=n),e.observers[n]=t,e.lowestObserverState>t.dependenciesState&&(e.lowestObserverState=t.dependenciesState)}function jt(e,t){if(1===e.observers.length)e.observers.length=0,Wt(e);else{var n=e.observers,i=e.observersIndexes,r=n.pop();if(r!==t){var o=i[t.__mapid]||0;o?i[r.__mapid]=o:delete i[r.__mapid],n[o]=r}delete i[t.__mapid]}}function Wt(e){e.isPendingUnobservation||(e.isPendingUnobservation=!0,Ot.pendingUnobservations.push(e))}function Gt(){Ot.inBatch++}function Vt(){if(0==--Ot.inBatch){pn();for(var e=Ot.pendingUnobservations,t=0;t=1e3)return void n.push(\"(and many more)\");n.push(\"\"+new Array(i).join(\"\\t\")+t.name);t.dependencies&&t.dependencies.forEach((function(t){return e(t,n,i+1)}))}(Nt(e),n,1),new Function(\"debugger;\\n/*\\nTracing '\"+e.name+\"'\\n\\nYou are entering this break point because derivation '\"+e.name+\"' is being traced and '\"+t.name+\"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\"+(e instanceof me?e.derivation.toString():\"\")+\"\\n\\nThe dependencies for this derivation are:\\n\\n\"+n.join(\"\\n\")+\"\\n*/\\n \")()}}Rt.__mobxInstanceCount?(Rt.__mobxInstanceCount++,setTimeout((function(){kt||Pt||At||(At=!0,console.warn(\"[mobx] Warning: there are multiple mobx instances active. This might lead to unexpected results. See https://github.com/mobxjs/mobx/issues/1082 for details.\"))}),1)):Rt.__mobxInstanceCount=1,function(e){e[e.NOT_TRACKING=-1]=\"NOT_TRACKING\",e[e.UP_TO_DATE=0]=\"UP_TO_DATE\",e[e.POSSIBLY_STALE=1]=\"POSSIBLY_STALE\",e[e.STALE=2]=\"STALE\"}(St||(St={})),function(e){e[e.NONE=0]=\"NONE\",e[e.LOG=1]=\"LOG\",e[e.BREAK=2]=\"BREAK\"}(Et||(Et={}));var qt=function(e){this.cause=e};function Xt(e){return e instanceof qt}function Kt(e){switch(e.dependenciesState){case St.UP_TO_DATE:return!1;case St.NOT_TRACKING:case St.STALE:return!0;case St.POSSIBLY_STALE:for(var t=tn(),n=e.observing,i=n.length,r=0;r0;Ot.computationDepth>0&&t&&nt(U(\"m031\")+e.name),!Ot.allowStateChanges&&t&&nt(U(Ot.strictMode?\"m030a\":\"m030b\")+e.name)}function $t(e,t,n){rn(e),e.newObserving=new Array(e.observing.length+100),e.unboundDepsCount=0,e.runId=++Ot.runId;var i,r=Ot.trackingDerivation;Ot.trackingDerivation=e;try{i=t.call(n)}catch(e){i=new qt(e)}return Ot.trackingDerivation=r,function(e){for(var t=e.observing,n=e.observing=e.newObserving,i=St.UP_TO_DATE,r=0,o=e.unboundDepsCount,a=0;ai&&(i=s.dependenciesState)}n.length=r,e.newObserving=null,o=t.length;for(;o--;){0===(s=t[o]).diffValue&&jt(s,e),s.diffValue=0}for(;r--;){var s;1===(s=n[r]).diffValue&&(s.diffValue=0,Ut(s,e))}i!==St.UP_TO_DATE&&(e.dependenciesState=i,e.onBecomeStale())}(e),i}function Qt(e){var t=e.observing;e.observing=[];for(var n=t.length;n--;)jt(t[n],e);e.dependenciesState=St.NOT_TRACKING}function en(e){var t=tn(),n=e();return nn(t),n}function tn(){var e=Ot.trackingDerivation;return Ot.trackingDerivation=null,e}function nn(e){Ot.trackingDerivation=e}function rn(e){if(e.dependenciesState!==St.UP_TO_DATE){e.dependenciesState=St.UP_TO_DATE;for(var t=e.observing,n=t.length;n--;)t[n].lowestObserverState=St.UP_TO_DATE}}function on(e){return console.log(e),e}function an(e,t){return ot(\"`whyRun` is deprecated in favor of `trace`\"),(e=ln(arguments))?ge(e)||mn(e)?on(e.whyRun()):nt(U(\"m025\")):on(U(\"m024\"))}function sn(){for(var e=[],t=0;t0||Ot.isRunningReactions||hn(fn)}function fn(){Ot.isRunningReactions=!0;for(var e=Ot.pendingReactions,t=0;e.length>0;){++t===dn&&(console.error(\"Reaction doesn't converge to a stable state after \"+dn+\" iterations. Probably there is a cycle in the reactive function: \"+e[0]),e.splice(0));for(var n=e.splice(0),i=0,r=n.length;i=0&&Ot.globalReactionErrorHandlers.splice(t,1)}},reserveArrayBuffer:L,resetGlobalState:function(){Ot.resetId++;var e=new Ct;for(var t in e)-1===Tt.indexOf(t)&&(Ot[t]=e[t]);Ot.allowStateChanges=!Ot.strictMode},isolateGlobalState:function(){Pt=!0,et().__mobxInstanceCount--},shareGlobalState:function(){ot(\"Using `shareGlobalState` is not recommended, use peer dependencies instead. See https://github.com/mobxjs/mobx/issues/1082 for details.\"),kt=!0;var e=et(),t=Ot;if(e.__mobservableTrackingStack||e.__mobservableViewStack)throw new Error(\"[mobx] An incompatible version of mobservable is already loaded.\");if(e.__mobxGlobal&&e.__mobxGlobal.version!==t.version)throw new Error(\"[mobx] An incompatible version of mobx is already loaded.\");e.__mobxGlobal?Ot=e.__mobxGlobal:e.__mobxGlobal=t},spyReport:m,spyReportEnd:v,spyReportStart:g,setReactionScheduler:function(e){var t=hn;hn=function(n){return e((function(){return t(n)}))}}},An={Reaction:un,untracked:en,Atom:a,BaseAtom:o,useStrict:G,isStrictModeEnabled:V,spy:b,comparer:ce,asReference:gn,asFlat:vn,asStructure:yn,asMap:bn,isModifierDescriptor:je,isObservableObject:Ce,isBoxedObservable:z,isObservableArray:D,ObservableMap:Ze,isObservableMap:$e,map:Je,transaction:Xe,observable:Be,computed:Mn,isObservable:Oe,isComputed:Sn,extendObservable:Pe,extendShallowObservable:Ae,observe:En,intercept:Tn,autorun:de,autorunAsync:pe,when:he,reaction:fe,action:Q,isAction:ne,runInAction:te,expr:Cn,toJS:On,createTransformer:kn,whyRun:an,isArrayLike:_t,extras:Pn},Rn=!1,Ln=function(e){var t=An[e];Object.defineProperty(An,e,{get:function(){return Rn||(Rn=!0,console.warn(\"Using default export (`import mobx from 'mobx'`) is deprecated and won’t work in mobx@4.0.0\\nUse `import * as mobx from 'mobx'` instead\")),t}})};for(var In in An)Ln(In);\"object\"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:b,extras:Pn}),t.default=An}.call(this,n(47))},function(e,t){var n=e.exports={version:\"2.6.9\"};\"number\"==typeof __e&&(__e=n)},function(e,t,n){var i;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/!function(){\"use strict\";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t0?1:+e}),void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,\"name\",{get:function(){return this.toString().match(/^\\s*function\\s*([^\\(\\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(e){if(null==e)throw new TypeError(\"Cannot convert undefined or null to object\");for(var t=Object(e),n=1;n>=4,n[r]=t[19===r?3&e|8:e]);return n.join(\"\")}}(),clamp:function(e,t,n){return Math.max(t,Math.min(n,e))},euclideanModulo:function(e,t){return(e%t+t)%t},mapLinear:function(e,t,n,i,r){return i+(e-t)*(r-i)/(n-t)},lerp:function(e,t,n){return(1-n)*e+n*t},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},degToRad:function(e){return e*Mt.DEG2RAD},radToDeg:function(e){return e*Mt.RAD2DEG},isPowerOfTwo:function(e){return 0==(e&e-1)&&0!==e},nearestPowerOfTwo:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))},nextPowerOfTwo:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e}};function St(e,t){this.x=e||0,this.y=t||0}St.prototype={constructor:St,isVector2:!0,get width(){return this.x},set width(e){this.x=e},get height(){return this.y},set height(e){this.y=e},set:function(e,t){return this.x=e,this.y=t,this},setScalar:function(e){return this.x=e,this.y=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error(\"index is out of range: \"+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+e)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(e){return this.x=e.x,this.y=e.y,this},add:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)},addScalar:function(e){return this.x+=e,this.y+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this},sub:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)},subScalar:function(e){return this.x-=e,this.y-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this},multiply:function(e){return this.x*=e.x,this.y*=e.y,this},multiplyScalar:function(e){return isFinite(e)?(this.x*=e,this.y*=e):(this.x=0,this.y=0),this},divide:function(e){return this.x/=e.x,this.y/=e.y,this},divideScalar:function(e){return this.multiplyScalar(1/e)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this},clampScalar:function(e,t){return void 0===r&&(r=new St,o=new St),r.set(e,e),o.set(t,t),this.clamp(r,o)},clampLength:function(e,t){var n=this.length();return this.multiplyScalar(Math.max(e,Math.min(t,n))/n)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(e){return this.x*e.x+this.y*e.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length())},angle:function(){var e=Math.atan2(this.y,this.x);return e<0&&(e+=2*Math.PI),e},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,n=this.y-e.y;return t*t+n*n},distanceToManhattan:function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)},setLength:function(e){return this.multiplyScalar(e/this.length())},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this},lerpVectors:function(e,t,n){return this.subVectors(t,e).multiplyScalar(n).add(e)},equals:function(e){return e.x===this.x&&e.y===this.y},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e},fromBufferAttribute:function(e,t,n){return void 0!==n&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"),this.x=e.getX(t),this.y=e.getY(t),this},rotateAround:function(e,t){var n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,o=this.y-e.y;return this.x=r*n-o*i+e.x,this.y=r*i+o*n+e.y,this}};var Et,Tt,Ct,Ot,kt,Pt,At=0;function Rt(e,t,n,i,r,o,a,s,l,u){Object.defineProperty(this,\"id\",{value:At++}),this.uuid=Mt.generateUUID(),this.name=\"\",this.image=void 0!==e?e:Rt.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==t?t:Rt.DEFAULT_MAPPING,this.wrapS=void 0!==n?n:ve,this.wrapT=void 0!==i?i:ve,this.magFilter=void 0!==r?r:Me,this.minFilter=void 0!==o?o:Ee,this.anisotropy=void 0!==l?l:1,this.format=void 0!==a?a:Ue,this.type=void 0!==s?s:Te,this.offset=new St(0,0),this.repeat=new St(1,1),this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==u?u:pt,this.version=0,this.onUpdate=null}function Lt(e,t,n,i){this.x=e||0,this.y=t||0,this.z=n||0,this.w=void 0!==i?i:1}function It(e,t,n){this.uuid=Mt.generateUUID(),this.width=e,this.height=t,this.scissor=new Lt(0,0,e,t),this.scissorTest=!1,this.viewport=new Lt(0,0,e,t),void 0===(n=n||{}).minFilter&&(n.minFilter=Me),this.texture=new Rt(void 0,void 0,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0===n.stencilBuffer||n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}function Dt(e,t,n){It.call(this,e,t,n),this.activeCubeFace=0,this.activeMipMapLevel=0}function Nt(e,t,n,i){this._x=e||0,this._y=t||0,this._z=n||0,this._w=void 0!==i?i:1}function Ft(e,t,n){this.x=e||0,this.y=t||0,this.z=n||0}function zt(){this.elements=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}function Bt(e,t,n,i,r,o,a,s,l,u){e=void 0!==e?e:[],t=void 0!==t?t:ce,Rt.call(this,e,t,n,i,r,o,a,s,l,u),this.flipY=!1}Rt.DEFAULT_IMAGE=void 0,Rt.DEFAULT_MAPPING=ue,Rt.prototype={constructor:Rt,isTexture:!0,set needsUpdate(e){!0===e&&this.version++},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this},toJSON:function(e){if(void 0!==e.textures[this.uuid])return e.textures[this.uuid];var t={metadata:{version:4.4,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var n=this.image;void 0===n.uuid&&(n.uuid=Mt.generateUUID()),void 0===e.images[n.uuid]&&(e.images[n.uuid]={uuid:n.uuid,url:function(e){var t;return void 0!==e.toDataURL?t=e:((t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")).width=e.width,t.height=e.height,t.getContext(\"2d\").drawImage(e,0,0,e.width,e.height)),t.width>2048||t.height>2048?t.toDataURL(\"image/jpeg\",.6):t.toDataURL(\"image/png\")}(n)}),t.image=n.uuid}return e.textures[this.uuid]=t,t},dispose:function(){this.dispatchEvent({type:\"dispose\"})},transformUv:function(e){if(this.mapping===ue){if(e.multiply(this.repeat),e.add(this.offset),e.x<0||e.x>1)switch(this.wrapS){case ye:e.x=e.x-Math.floor(e.x);break;case ve:e.x=e.x<0?0:1;break;case be:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case ye:e.y=e.y-Math.floor(e.y);break;case ve:e.y=e.y<0?0:1;break;case be:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}this.flipY&&(e.y=1-e.y)}}},Object.assign(Rt.prototype,i.prototype),Lt.prototype={constructor:Lt,isVector4:!0,set:function(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this},setScalar:function(e){return this.x=e,this.y=e,this.z=e,this.w=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setW:function(e){return this.w=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error(\"index is out of range: \"+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this},add:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this},sub:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this},multiplyScalar:function(e){return isFinite(e)?(this.x*=e,this.y*=e,this.z*=e,this.w*=e):(this.x=0,this.y=0,this.z=0,this.w=0),this},applyMatrix4:function(e){var t=this.x,n=this.y,i=this.z,r=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*i+o[12]*r,this.y=o[1]*t+o[5]*n+o[9]*i+o[13]*r,this.z=o[2]*t+o[6]*n+o[10]*i+o[14]*r,this.w=o[3]*t+o[7]*n+o[11]*i+o[15]*r,this},divideScalar:function(e){return this.multiplyScalar(1/e)},setAxisAngleFromQuaternion:function(e){this.w=2*Math.acos(e.w);var t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this},setAxisAngleFromRotationMatrix:function(e){var t,n,i,r,o=e.elements,a=o[0],s=o[4],l=o[8],u=o[1],c=o[5],d=o[9],h=o[2],p=o[6],f=o[10];if(Math.abs(s-u)<.01&&Math.abs(l-h)<.01&&Math.abs(d-p)<.01){if(Math.abs(s+u)<.1&&Math.abs(l+h)<.1&&Math.abs(d+p)<.1&&Math.abs(a+c+f-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;var m=(a+1)/2,g=(c+1)/2,y=(f+1)/2,v=(s+u)/4,b=(l+h)/4,_=(d+p)/4;return m>g&&m>y?m<.01?(n=0,i=.707106781,r=.707106781):(i=v/(n=Math.sqrt(m)),r=b/n):g>y?g<.01?(n=.707106781,i=0,r=.707106781):(n=v/(i=Math.sqrt(g)),r=_/i):y<.01?(n=.707106781,i=.707106781,r=0):(n=b/(r=Math.sqrt(y)),i=_/r),this.set(n,i,r,t),this}var x=Math.sqrt((p-d)*(p-d)+(l-h)*(l-h)+(u-s)*(u-s));return Math.abs(x)<.001&&(x=1),this.x=(p-d)/x,this.y=(l-h)/x,this.z=(u-s)/x,this.w=Math.acos((a+c+f-1)/2),this},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this},clampScalar:function(){var e,t;return function(n,i){return void 0===e&&(e=new Lt,t=new Lt),e.set(n,n,n,n),t.set(i,i,i,i),this.clamp(e,t)}}(),floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length())},setLength:function(e){return this.multiplyScalar(e/this.length())},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this},lerpVectors:function(e,t,n){return this.subVectors(t,e).multiplyScalar(n).add(e)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e},fromBufferAttribute:function(e,t,n){return void 0!==n&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}},It.prototype={constructor:It,isWebGLRenderTarget:!0,setSize:function(e,t){this.width===e&&this.height===t||(this.width=e,this.height=t,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.width=e.width,this.height=e.height,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this},dispose:function(){this.dispatchEvent({type:\"dispose\"})}},Object.assign(It.prototype,i.prototype),Dt.prototype=Object.create(It.prototype),Dt.prototype.constructor=Dt,Dt.prototype.isWebGLRenderTargetCube=!0,Nt.prototype={constructor:Nt,get x(){return this._x},set x(e){this._x=e,this.onChangeCallback()},get y(){return this._y},set y(e){this._y=e,this.onChangeCallback()},get z(){return this._z},set z(e){this._z=e,this.onChangeCallback()},get w(){return this._w},set w(e){this._w=e,this.onChangeCallback()},set:function(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this.onChangeCallback(),this},setFromEuler:function(e,t){if(!1===(e&&e.isEuler))throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");var n=Math.cos(e._x/2),i=Math.cos(e._y/2),r=Math.cos(e._z/2),o=Math.sin(e._x/2),a=Math.sin(e._y/2),s=Math.sin(e._z/2),l=e.order;return\"XYZ\"===l?(this._x=o*i*r+n*a*s,this._y=n*a*r-o*i*s,this._z=n*i*s+o*a*r,this._w=n*i*r-o*a*s):\"YXZ\"===l?(this._x=o*i*r+n*a*s,this._y=n*a*r-o*i*s,this._z=n*i*s-o*a*r,this._w=n*i*r+o*a*s):\"ZXY\"===l?(this._x=o*i*r-n*a*s,this._y=n*a*r+o*i*s,this._z=n*i*s+o*a*r,this._w=n*i*r-o*a*s):\"ZYX\"===l?(this._x=o*i*r-n*a*s,this._y=n*a*r+o*i*s,this._z=n*i*s-o*a*r,this._w=n*i*r+o*a*s):\"YZX\"===l?(this._x=o*i*r+n*a*s,this._y=n*a*r+o*i*s,this._z=n*i*s-o*a*r,this._w=n*i*r-o*a*s):\"XZY\"===l&&(this._x=o*i*r-n*a*s,this._y=n*a*r-o*i*s,this._z=n*i*s+o*a*r,this._w=n*i*r+o*a*s),!1!==t&&this.onChangeCallback(),this},setFromAxisAngle:function(e,t){var n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this.onChangeCallback(),this},setFromRotationMatrix:function(e){var t,n=e.elements,i=n[0],r=n[4],o=n[8],a=n[1],s=n[5],l=n[9],u=n[2],c=n[6],d=n[10],h=i+s+d;return h>0?(t=.5/Math.sqrt(h+1),this._w=.25/t,this._x=(c-l)*t,this._y=(o-u)*t,this._z=(a-r)*t):i>s&&i>d?(t=2*Math.sqrt(1+i-s-d),this._w=(c-l)/t,this._x=.25*t,this._y=(r+a)/t,this._z=(o+u)/t):s>d?(t=2*Math.sqrt(1+s-i-d),this._w=(o-u)/t,this._x=(r+a)/t,this._y=.25*t,this._z=(l+c)/t):(t=2*Math.sqrt(1+d-i-s),this._w=(a-r)/t,this._x=(o+u)/t,this._y=(l+c)/t,this._z=.25*t),this.onChangeCallback(),this},setFromUnitVectors:function(){var e,t;return function(n,i){return void 0===e&&(e=new Ft),(t=n.dot(i)+1)<1e-6?(t=0,Math.abs(n.x)>Math.abs(n.z)?e.set(-n.y,n.x,0):e.set(0,-n.z,n.y)):e.crossVectors(n,i),this._x=e.x,this._y=e.y,this._z=e.z,this._w=t,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this.onChangeCallback(),this},multiply:function(e,t){return void 0!==t?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)},premultiply:function(e){return this.multiplyQuaternions(e,this)},multiplyQuaternions:function(e,t){var n=e._x,i=e._y,r=e._z,o=e._w,a=t._x,s=t._y,l=t._z,u=t._w;return this._x=n*u+o*a+i*l-r*s,this._y=i*u+o*s+r*a-n*l,this._z=r*u+o*l+n*s-i*a,this._w=o*u-n*a-i*s-r*l,this.onChangeCallback(),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var n=this._x,i=this._y,r=this._z,o=this._w,a=o*e._w+n*e._x+i*e._y+r*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=i,this._z=r,this;var s=Math.sqrt(1-a*a);if(Math.abs(s)<.001)return this._w=.5*(o+this._w),this._x=.5*(n+this._x),this._y=.5*(i+this._y),this._z=.5*(r+this._z),this;var l=Math.atan2(s,a),u=Math.sin((1-t)*l)/s,c=Math.sin(t*l)/s;return this._w=o*u+this._w*c,this._x=n*u+this._x*c,this._y=i*u+this._y*c,this._z=r*u+this._z*c,this.onChangeCallback(),this},equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w},fromArray:function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}},Object.assign(Nt,{slerp:function(e,t,n,i){return n.copy(e).slerp(t,i)},slerpFlat:function(e,t,n,i,r,o,a){var s=n[i+0],l=n[i+1],u=n[i+2],c=n[i+3],d=r[o+0],h=r[o+1],p=r[o+2],f=r[o+3];if(c!==f||s!==d||l!==h||u!==p){var m=1-a,g=s*d+l*h+u*p+c*f,y=g>=0?1:-1,v=1-g*g;if(v>Number.EPSILON){var b=Math.sqrt(v),_=Math.atan2(b,g*y);m=Math.sin(m*_)/b,a=Math.sin(a*_)/b}var x=a*y;if(s=s*m+d*x,l=l*m+h*x,u=u*m+p*x,c=c*m+f*x,m===1-a){var w=1/Math.sqrt(s*s+l*l+u*u+c*c);s*=w,l*=w,u*=w,c*=w}}e[t]=s,e[t+1]=l,e[t+2]=u,e[t+3]=c}}),Ft.prototype={constructor:Ft,isVector3:!0,set:function(e,t,n){return this.x=e,this.y=t,this.z=n,this},setScalar:function(e){return this.x=e,this.y=e,this.z=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error(\"index is out of range: \"+e)}return this},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},add:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this},sub:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},multiply:function(e,t){return void 0!==t?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)},multiplyScalar:function(e){return isFinite(e)?(this.x*=e,this.y*=e,this.z*=e):(this.x=0,this.y=0,this.z=0),this},multiplyVectors:function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this},applyEuler:function(e){return!1===(e&&e.isEuler)&&console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),void 0===Ct&&(Ct=new Nt),this.applyQuaternion(Ct.setFromEuler(e))},applyAxisAngle:function(){var e;return function(t,n){return void 0===e&&(e=new Nt),this.applyQuaternion(e.setFromAxisAngle(t,n))}}(),applyMatrix3:function(e){var t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this},applyMatrix4:function(e){var t=this.x,n=this.y,i=this.z,r=e.elements;this.x=r[0]*t+r[4]*n+r[8]*i+r[12],this.y=r[1]*t+r[5]*n+r[9]*i+r[13],this.z=r[2]*t+r[6]*n+r[10]*i+r[14];var o=r[3]*t+r[7]*n+r[11]*i+r[15];return this.divideScalar(o)},applyQuaternion:function(e){var t=this.x,n=this.y,i=this.z,r=e.x,o=e.y,a=e.z,s=e.w,l=s*t+o*i-a*n,u=s*n+a*t-r*i,c=s*i+r*n-o*t,d=-r*t-o*n-a*i;return this.x=l*s+d*-r+u*-a-c*-o,this.y=u*s+d*-o+c*-r-l*-a,this.z=c*s+d*-a+l*-o-u*-r,this},project:function(e){return void 0===Tt&&(Tt=new zt),Tt.multiplyMatrices(e.projectionMatrix,Tt.getInverse(e.matrixWorld)),this.applyMatrix4(Tt)},unproject:function(){var e;return function(t){return void 0===e&&(e=new zt),e.multiplyMatrices(t.matrixWorld,e.getInverse(t.projectionMatrix)),this.applyMatrix4(e)}}(),transformDirection:function(e){var t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()},divide:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this},divideScalar:function(e){return this.multiplyScalar(1/e)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this},clampScalar:function(){var e,t;return function(n,i){return void 0===e&&(e=new Ft,t=new Ft),e.set(n,n,n),t.set(i,i,i),this.clamp(e,t)}}(),clampLength:function(e,t){var n=this.length();return this.multiplyScalar(Math.max(e,Math.min(t,n))/n)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(e){return this.multiplyScalar(e/this.length())},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this},lerpVectors:function(e,t,n){return this.subVectors(t,e).multiplyScalar(n).add(e)},cross:function(e,t){if(void 0!==t)return console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(e,t);var n=this.x,i=this.y,r=this.z;return this.x=i*e.z-r*e.y,this.y=r*e.x-n*e.z,this.z=n*e.y-i*e.x,this},crossVectors:function(e,t){var n=e.x,i=e.y,r=e.z,o=t.x,a=t.y,s=t.z;return this.x=i*s-r*a,this.y=r*o-n*s,this.z=n*a-i*o,this},projectOnVector:function(e){var t=e.dot(this)/e.lengthSq();return this.copy(e).multiplyScalar(t)},projectOnPlane:function(e){return void 0===Et&&(Et=new Ft),Et.copy(this).projectOnVector(e),this.sub(Et)},reflect:function(){var e;return function(t){return void 0===e&&(e=new Ft),this.sub(e.copy(t).multiplyScalar(2*this.dot(t)))}}(),angleTo:function(e){var t=this.dot(e)/Math.sqrt(this.lengthSq()*e.lengthSq());return Math.acos(Mt.clamp(t,-1,1))},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i},distanceToManhattan:function(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)},setFromSpherical:function(e){var t=Math.sin(e.phi)*e.radius;return this.x=t*Math.sin(e.theta),this.y=Math.cos(e.phi)*e.radius,this.z=t*Math.cos(e.theta),this},setFromCylindrical:function(e){return this.x=e.radius*Math.sin(e.theta),this.y=e.y,this.z=e.radius*Math.cos(e.theta),this},setFromMatrixPosition:function(e){return this.setFromMatrixColumn(e,3)},setFromMatrixScale:function(e){var t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this},setFromMatrixColumn:function(e,t){if(\"number\"==typeof e){console.warn(\"THREE.Vector3: setFromMatrixColumn now expects ( matrix, index ).\");var n=e;e=t,t=n}return this.fromArray(e.elements,4*t)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e},fromBufferAttribute:function(e,t,n){return void 0!==n&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}},zt.prototype={constructor:zt,isMatrix4:!0,set:function(e,t,n,i,r,o,a,s,l,u,c,d,h,p,f,m){var g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=i,g[1]=r,g[5]=o,g[9]=a,g[13]=s,g[2]=l,g[6]=u,g[10]=c,g[14]=d,g[3]=h,g[7]=p,g[11]=f,g[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new zt).fromArray(this.elements)},copy:function(e){return this.elements.set(e.elements),this},copyPosition:function(e){var t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this},extractBasis:function(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this},makeBasis:function(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this},extractRotation:function(){var e;return function(t){void 0===e&&(e=new Ft);var n=this.elements,i=t.elements,r=1/e.setFromMatrixColumn(t,0).length(),o=1/e.setFromMatrixColumn(t,1).length(),a=1/e.setFromMatrixColumn(t,2).length();return n[0]=i[0]*r,n[1]=i[1]*r,n[2]=i[2]*r,n[4]=i[4]*o,n[5]=i[5]*o,n[6]=i[6]*o,n[8]=i[8]*a,n[9]=i[9]*a,n[10]=i[10]*a,this}}(),makeRotationFromEuler:function(e){!1===(e&&e.isEuler)&&console.error(\"THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");var t=this.elements,n=e.x,i=e.y,r=e.z,o=Math.cos(n),a=Math.sin(n),s=Math.cos(i),l=Math.sin(i),u=Math.cos(r),c=Math.sin(r);if(\"XYZ\"===e.order){var d=o*u,h=o*c,p=a*u,f=a*c;t[0]=s*u,t[4]=-s*c,t[8]=l,t[1]=h+p*l,t[5]=d-f*l,t[9]=-a*s,t[2]=f-d*l,t[6]=p+h*l,t[10]=o*s}else if(\"YXZ\"===e.order){var m=s*u,g=s*c,y=l*u,v=l*c;t[0]=m+v*a,t[4]=y*a-g,t[8]=o*l,t[1]=o*c,t[5]=o*u,t[9]=-a,t[2]=g*a-y,t[6]=v+m*a,t[10]=o*s}else if(\"ZXY\"===e.order){m=s*u,g=s*c,y=l*u,v=l*c;t[0]=m-v*a,t[4]=-o*c,t[8]=y+g*a,t[1]=g+y*a,t[5]=o*u,t[9]=v-m*a,t[2]=-o*l,t[6]=a,t[10]=o*s}else if(\"ZYX\"===e.order){d=o*u,h=o*c,p=a*u,f=a*c;t[0]=s*u,t[4]=p*l-h,t[8]=d*l+f,t[1]=s*c,t[5]=f*l+d,t[9]=h*l-p,t[2]=-l,t[6]=a*s,t[10]=o*s}else if(\"YZX\"===e.order){var b=o*s,_=o*l,x=a*s,w=a*l;t[0]=s*u,t[4]=w-b*c,t[8]=x*c+_,t[1]=c,t[5]=o*u,t[9]=-a*u,t[2]=-l*u,t[6]=_*c+x,t[10]=b-w*c}else if(\"XZY\"===e.order){b=o*s,_=o*l,x=a*s,w=a*l;t[0]=s*u,t[4]=-c,t[8]=l*u,t[1]=b*c+w,t[5]=o*u,t[9]=_*c-x,t[2]=x*c-_,t[6]=a*u,t[10]=w*c+b}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},makeRotationFromQuaternion:function(e){var t=this.elements,n=e.x,i=e.y,r=e.z,o=e.w,a=n+n,s=i+i,l=r+r,u=n*a,c=n*s,d=n*l,h=i*s,p=i*l,f=r*l,m=o*a,g=o*s,y=o*l;return t[0]=1-(h+f),t[4]=c-y,t[8]=d+g,t[1]=c+y,t[5]=1-(u+f),t[9]=p-m,t[2]=d-g,t[6]=p+m,t[10]=1-(u+h),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},lookAt:function(e,t,n){void 0===Ot&&(Ot=new Ft,kt=new Ft,Pt=new Ft);var i=this.elements;return Pt.subVectors(e,t).normalize(),0===Pt.lengthSq()&&(Pt.z=1),Ot.crossVectors(n,Pt).normalize(),0===Ot.lengthSq()&&(Pt.z+=1e-4,Ot.crossVectors(n,Pt).normalize()),kt.crossVectors(Pt,Ot),i[0]=Ot.x,i[4]=kt.x,i[8]=Pt.x,i[1]=Ot.y,i[5]=kt.y,i[9]=Pt.y,i[2]=Ot.z,i[6]=kt.z,i[10]=Pt.z,this},multiply:function(e,t){return void 0!==t?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)},premultiply:function(e){return this.multiplyMatrices(e,this)},multiplyMatrices:function(e,t){var n=e.elements,i=t.elements,r=this.elements,o=n[0],a=n[4],s=n[8],l=n[12],u=n[1],c=n[5],d=n[9],h=n[13],p=n[2],f=n[6],m=n[10],g=n[14],y=n[3],v=n[7],b=n[11],_=n[15],x=i[0],w=i[4],M=i[8],S=i[12],E=i[1],T=i[5],C=i[9],O=i[13],k=i[2],P=i[6],A=i[10],R=i[14],L=i[3],I=i[7],D=i[11],N=i[15];return r[0]=o*x+a*E+s*k+l*L,r[4]=o*w+a*T+s*P+l*I,r[8]=o*M+a*C+s*A+l*D,r[12]=o*S+a*O+s*R+l*N,r[1]=u*x+c*E+d*k+h*L,r[5]=u*w+c*T+d*P+h*I,r[9]=u*M+c*C+d*A+h*D,r[13]=u*S+c*O+d*R+h*N,r[2]=p*x+f*E+m*k+g*L,r[6]=p*w+f*T+m*P+g*I,r[10]=p*M+f*C+m*A+g*D,r[14]=p*S+f*O+m*R+g*N,r[3]=y*x+v*E+b*k+_*L,r[7]=y*w+v*T+b*P+_*I,r[11]=y*M+v*C+b*A+_*D,r[15]=y*S+v*O+b*R+_*N,this},multiplyToArray:function(e,t,n){var i=this.elements;return this.multiplyMatrices(e,t),n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=i[3],n[4]=i[4],n[5]=i[5],n[6]=i[6],n[7]=i[7],n[8]=i[8],n[9]=i[9],n[10]=i[10],n[11]=i[11],n[12]=i[12],n[13]=i[13],n[14]=i[14],n[15]=i[15],this},multiplyScalar:function(e){var t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this},applyToBufferAttribute:function(){var e;return function(t){void 0===e&&(e=new Ft);for(var n=0,i=t.count;n0)return e;var r=t*n,o=Gt[r];if(void 0===o&&(o=new Float32Array(r),Gt[r]=o),0!==t){i.toArray(o,0);for(var a=1,s=0;a!==t;++a)s+=n,e[a].toArray(o,s)}return o}function Yt(e,t){var n=Vt[t];void 0===n&&(n=new Int32Array(t),Vt[t]=n);for(var i=0;i!==t;++i)n[i]=e.allocTextureUnit();return n}function qt(e,t){e.uniform1f(this.addr,t)}function Xt(e,t){e.uniform1i(this.addr,t)}function Kt(e,t){void 0===t.x?e.uniform2fv(this.addr,t):e.uniform2f(this.addr,t.x,t.y)}function Zt(e,t){void 0!==t.x?e.uniform3f(this.addr,t.x,t.y,t.z):void 0!==t.r?e.uniform3f(this.addr,t.r,t.g,t.b):e.uniform3fv(this.addr,t)}function Jt(e,t){void 0===t.x?e.uniform4fv(this.addr,t):e.uniform4f(this.addr,t.x,t.y,t.z,t.w)}function $t(e,t){e.uniformMatrix2fv(this.addr,!1,t.elements||t)}function Qt(e,t){e.uniformMatrix3fv(this.addr,!1,t.elements||t)}function en(e,t){e.uniformMatrix4fv(this.addr,!1,t.elements||t)}function tn(e,t,n){var i=n.allocTextureUnit();e.uniform1i(this.addr,i),n.setTexture2D(t||Ut,i)}function nn(e,t,n){var i=n.allocTextureUnit();e.uniform1i(this.addr,i),n.setTextureCube(t||jt,i)}function rn(e,t){e.uniform2iv(this.addr,t)}function on(e,t){e.uniform3iv(this.addr,t)}function an(e,t){e.uniform4iv(this.addr,t)}function sn(e,t){e.uniform1fv(this.addr,t)}function ln(e,t){e.uniform1iv(this.addr,t)}function un(e,t){e.uniform2fv(this.addr,Ht(t,this.size,2))}function cn(e,t){e.uniform3fv(this.addr,Ht(t,this.size,3))}function dn(e,t){e.uniform4fv(this.addr,Ht(t,this.size,4))}function hn(e,t){e.uniformMatrix2fv(this.addr,!1,Ht(t,this.size,4))}function pn(e,t){e.uniformMatrix3fv(this.addr,!1,Ht(t,this.size,9))}function fn(e,t){e.uniformMatrix4fv(this.addr,!1,Ht(t,this.size,16))}function mn(e,t,n){var i=t.length,r=Yt(n,i);e.uniform1iv(this.addr,r);for(var o=0;o!==i;++o)n.setTexture2D(t[o]||Ut,r[o])}function gn(e,t,n){var i=t.length,r=Yt(n,i);e.uniform1iv(this.addr,r);for(var o=0;o!==i;++o)n.setTextureCube(t[o]||jt,r[o])}function yn(e,t,n){this.id=e,this.addr=n,this.setValue=function(e){switch(e){case 5126:return qt;case 35664:return Kt;case 35665:return Zt;case 35666:return Jt;case 35674:return $t;case 35675:return Qt;case 35676:return en;case 35678:return tn;case 35680:return nn;case 5124:case 35670:return Xt;case 35667:case 35671:return rn;case 35668:case 35672:return on;case 35669:case 35673:return an}}(t.type)}function vn(e,t,n){this.id=e,this.addr=n,this.size=t.size,this.setValue=function(e){switch(e){case 5126:return sn;case 35664:return un;case 35665:return cn;case 35666:return dn;case 35674:return hn;case 35675:return pn;case 35676:return fn;case 35678:return mn;case 35680:return gn;case 5124:case 35670:return ln;case 35667:case 35671:return rn;case 35668:case 35672:return on;case 35669:case 35673:return an}}(t.type)}function bn(e){this.id=e,Wt.call(this)}bn.prototype.setValue=function(e,t){for(var n=this.seq,i=0,r=n.length;i!==r;++i){var o=n[i];o.setValue(e,t[o.id])}};var _n=/([\\w\\d_]+)(\\])?(\\[|\\.)?/g;function xn(e,t){e.seq.push(t),e.map[t.id]=t}function wn(e,t,n){var i=e.name,r=i.length;for(_n.lastIndex=0;;){var o=_n.exec(i),a=_n.lastIndex,s=o[1],l=\"]\"===o[2],u=o[3];if(l&&(s|=0),void 0===u||\"[\"===u&&a+2===r){xn(n,void 0===u?new yn(s,e,t):new vn(s,e,t));break}var c=n.map[s];void 0===c&&xn(n,c=new bn(s)),n=c}}function Mn(e,t,n){Wt.call(this),this.renderer=n;for(var i=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),r=0;r 0.0 ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\t\\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t\\treturn distanceFalloff * maxDistanceCutoffFactor;\\n#else\\n\\t\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 ltcTextureCoords( const in GeometricContext geometry, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = (LUT_SIZE - 1.0)/LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5/LUT_SIZE;\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 P = geometry.position;\\n\\tfloat theta = acos( dot( N, V ) );\\n\\tvec2 uv = vec2(\\n\\t\\tsqrt( saturate( roughness ) ),\\n\\t\\tsaturate( theta / ( 0.5 * PI ) ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nvoid clipQuadToHorizon( inout vec3 L[5], out int n ) {\\n\\tint config = 0;\\n\\tif ( L[0].z > 0.0 ) config += 1;\\n\\tif ( L[1].z > 0.0 ) config += 2;\\n\\tif ( L[2].z > 0.0 ) config += 4;\\n\\tif ( L[3].z > 0.0 ) config += 8;\\n\\tn = 0;\\n\\tif ( config == 0 ) {\\n\\t} else if ( config == 1 ) {\\n\\t\\tn = 3;\\n\\t\\tL[1] = -L[1].z * L[0] + L[0].z * L[1];\\n\\t\\tL[2] = -L[3].z * L[0] + L[0].z * L[3];\\n\\t} else if ( config == 2 ) {\\n\\t\\tn = 3;\\n\\t\\tL[0] = -L[0].z * L[1] + L[1].z * L[0];\\n\\t\\tL[2] = -L[2].z * L[1] + L[1].z * L[2];\\n\\t} else if ( config == 3 ) {\\n\\t\\tn = 4;\\n\\t\\tL[2] = -L[2].z * L[1] + L[1].z * L[2];\\n\\t\\tL[3] = -L[3].z * L[0] + L[0].z * L[3];\\n\\t} else if ( config == 4 ) {\\n\\t\\tn = 3;\\n\\t\\tL[0] = -L[3].z * L[2] + L[2].z * L[3];\\n\\t\\tL[1] = -L[1].z * L[2] + L[2].z * L[1];\\n\\t} else if ( config == 5 ) {\\n\\t\\tn = 0;\\n\\t} else if ( config == 6 ) {\\n\\t\\tn = 4;\\n\\t\\tL[0] = -L[0].z * L[1] + L[1].z * L[0];\\n\\t\\tL[3] = -L[3].z * L[2] + L[2].z * L[3];\\n\\t} else if ( config == 7 ) {\\n\\t\\tn = 5;\\n\\t\\tL[4] = -L[3].z * L[0] + L[0].z * L[3];\\n\\t\\tL[3] = -L[3].z * L[2] + L[2].z * L[3];\\n\\t} else if ( config == 8 ) {\\n\\t\\tn = 3;\\n\\t\\tL[0] = -L[0].z * L[3] + L[3].z * L[0];\\n\\t\\tL[1] = -L[2].z * L[3] + L[3].z * L[2];\\n\\t\\tL[2] = L[3];\\n\\t} else if ( config == 9 ) {\\n\\t\\tn = 4;\\n\\t\\tL[1] = -L[1].z * L[0] + L[0].z * L[1];\\n\\t\\tL[2] = -L[2].z * L[3] + L[3].z * L[2];\\n\\t} else if ( config == 10 ) {\\n\\t\\tn = 0;\\n\\t} else if ( config == 11 ) {\\n\\t\\tn = 5;\\n\\t\\tL[4] = L[3];\\n\\t\\tL[3] = -L[2].z * L[3] + L[3].z * L[2];\\n\\t\\tL[2] = -L[2].z * L[1] + L[1].z * L[2];\\n\\t} else if ( config == 12 ) {\\n\\t\\tn = 4;\\n\\t\\tL[1] = -L[1].z * L[2] + L[2].z * L[1];\\n\\t\\tL[0] = -L[0].z * L[3] + L[3].z * L[0];\\n\\t} else if ( config == 13 ) {\\n\\t\\tn = 5;\\n\\t\\tL[4] = L[3];\\n\\t\\tL[3] = L[2];\\n\\t\\tL[2] = -L[1].z * L[2] + L[2].z * L[1];\\n\\t\\tL[1] = -L[1].z * L[0] + L[0].z * L[1];\\n\\t} else if ( config == 14 ) {\\n\\t\\tn = 5;\\n\\t\\tL[4] = -L[0].z * L[3] + L[3].z * L[0];\\n\\t\\tL[0] = -L[0].z * L[1] + L[1].z * L[0];\\n\\t} else if ( config == 15 ) {\\n\\t\\tn = 4;\\n\\t}\\n\\tif ( n == 3 )\\n\\t\\tL[3] = L[0];\\n\\tif ( n == 4 )\\n\\t\\tL[4] = L[0];\\n}\\nfloat integrateLtcBrdfOverRectEdge( vec3 v1, vec3 v2 ) {\\n\\tfloat cosTheta = dot( v1, v2 );\\n\\tfloat theta = acos( cosTheta );\\n\\tfloat res = cross( v1, v2 ).z * ( ( theta > 0.001 ) ? theta / sin( theta ) : 1.0 );\\n\\treturn res;\\n}\\nvoid initRectPoints( const in vec3 pos, const in vec3 halfWidth, const in vec3 halfHeight, out vec3 rectPoints[4] ) {\\n\\trectPoints[0] = pos - halfWidth - halfHeight;\\n\\trectPoints[1] = pos + halfWidth - halfHeight;\\n\\trectPoints[2] = pos + halfWidth + halfHeight;\\n\\trectPoints[3] = pos - halfWidth + halfHeight;\\n}\\nvec3 integrateLtcBrdfOverRect( const in GeometricContext geometry, const in mat3 brdfMat, const in vec3 rectPoints[4] ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 P = geometry.position;\\n\\tvec3 T1, T2;\\n\\tT1 = normalize(V - N * dot( V, N ));\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 brdfWrtSurface = brdfMat * transpose( mat3( T1, T2, N ) );\\n\\tvec3 clippedRect[5];\\n\\tclippedRect[0] = brdfWrtSurface * ( rectPoints[0] - P );\\n\\tclippedRect[1] = brdfWrtSurface * ( rectPoints[1] - P );\\n\\tclippedRect[2] = brdfWrtSurface * ( rectPoints[2] - P );\\n\\tclippedRect[3] = brdfWrtSurface * ( rectPoints[3] - P );\\n\\tint n;\\n\\tclipQuadToHorizon(clippedRect, n);\\n\\tif ( n == 0 )\\n\\t\\treturn vec3( 0, 0, 0 );\\n\\tclippedRect[0] = normalize( clippedRect[0] );\\n\\tclippedRect[1] = normalize( clippedRect[1] );\\n\\tclippedRect[2] = normalize( clippedRect[2] );\\n\\tclippedRect[3] = normalize( clippedRect[3] );\\n\\tclippedRect[4] = normalize( clippedRect[4] );\\n\\tfloat sum = 0.0;\\n\\tsum += integrateLtcBrdfOverRectEdge( clippedRect[0], clippedRect[1] );\\n\\tsum += integrateLtcBrdfOverRectEdge( clippedRect[1], clippedRect[2] );\\n\\tsum += integrateLtcBrdfOverRectEdge( clippedRect[2], clippedRect[3] );\\n\\tif (n >= 4)\\n\\t\\tsum += integrateLtcBrdfOverRectEdge( clippedRect[3], clippedRect[4] );\\n\\tif (n == 5)\\n\\t\\tsum += integrateLtcBrdfOverRectEdge( clippedRect[4], clippedRect[0] );\\n\\tsum = max( 0.0, sum );\\n\\tvec3 Lo_i = vec3( sum, sum, sum );\\n\\treturn Lo_i;\\n}\\nvec3 Rect_Area_Light_Specular_Reflectance(\\n\\t\\tconst in GeometricContext geometry,\\n\\t\\tconst in vec3 lightPos, const in vec3 lightHalfWidth, const in vec3 lightHalfHeight,\\n\\t\\tconst in float roughness,\\n\\t\\tconst in sampler2D ltcMat, const in sampler2D ltcMag ) {\\n\\tvec3 rectPoints[4];\\n\\tinitRectPoints( lightPos, lightHalfWidth, lightHalfHeight, rectPoints );\\n\\tvec2 uv = ltcTextureCoords( geometry, roughness );\\n\\tvec4 brdfLtcApproxParams, t;\\n\\tbrdfLtcApproxParams = texture2D( ltcMat, uv );\\n\\tt = texture2D( ltcMat, uv );\\n\\tfloat brdfLtcScalar = texture2D( ltcMag, uv ).a;\\n\\tmat3 brdfLtcApproxMat = mat3(\\n\\t\\tvec3( 1, 0, t.y ),\\n\\t\\tvec3( 0, t.z, 0 ),\\n\\t\\tvec3( t.w, 0, t.x )\\n\\t);\\n\\tvec3 specularReflectance = integrateLtcBrdfOverRect( geometry, brdfLtcApproxMat, rectPoints );\\n\\tspecularReflectance *= brdfLtcScalar;\\n\\treturn specularReflectance;\\n}\\nvec3 Rect_Area_Light_Diffuse_Reflectance(\\n\\t\\tconst in GeometricContext geometry,\\n\\t\\tconst in vec3 lightPos, const in vec3 lightHalfWidth, const in vec3 lightHalfHeight ) {\\n\\tvec3 rectPoints[4];\\n\\tinitRectPoints( lightPos, lightHalfWidth, lightHalfHeight, rectPoints );\\n\\tmat3 diffuseBrdfMat = mat3(1);\\n\\tvec3 diffuseReflectance = integrateLtcBrdfOverRect( geometry, diffuseBrdfMat, rectPoints );\\n\\treturn diffuseReflectance;\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\\n\\treturn specularColor * AB.x + AB.y;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n\",bumpmap_pars_fragment:\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\\n\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\\n\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t\\t\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\\n\\t\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\tif ( clipped ) discard;\\n\\t\\n\\t#endif\\n#endif\\n\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\\n\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n\",color_fragment:\"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",color_pars_fragment:\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\\n\",color_pars_vertex:\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\",color_vertex:\"#ifdef USE_COLOR\\n\\tvColor.xyz = color.xyz;\\n#endif\",common:\"#define PI 3.14159265359\\n#define PI2 6.28318530718\\n#define PI_HALF 1.5707963267949\\n#define RECIPROCAL_PI 0.31830988618\\n#define RECIPROCAL_PI2 0.15915494\\n#define LOG2 1.442695\\n#define EPSILON 1e-6\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transpose( const in mat3 v ) {\\n\\tmat3 tmp;\\n\\ttmp[0] = vec3(v[0].x, v[1].x, v[2].x);\\n\\ttmp[1] = vec3(v[0].y, v[1].y, v[2].y);\\n\\ttmp[2] = vec3(v[0].z, v[1].z, v[2].z);\\n\\treturn tmp;\\n}\\n\",cube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\treturn face;\\n}\\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\\n\\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 0.5 * log2(d);\\n\\treturn vec2(floor(mipLevel), fract(mipLevel));\\n}\\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\\n\\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = offset + vec2( texelOffset );\\n\\treturn base + s * ( scale - 2.0 * texelOffset );\\n}\\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\\n\",defaultnormal_vertex:\"#ifdef FLIP_SIDED\\n\\tobjectNormal = -objectNormal;\\n#endif\\nvec3 transformedNormal = normalMatrix * objectNormal;\\n\",displacementmap_pars_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\\n\",displacementmap_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\\n#endif\\n\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\\n\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\\n\",encodings_fragment:\" gl_FragColor = linearToOutputTexel( gl_FragColor );\\n\",encodings_pars_fragment:\"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = min( floor( D ) / 255.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\\n\\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract(Le);\\n\\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\\n\\treturn vec4( max(vRGB, 0.0), 1.0 );\\n}\\n\",envmap_fragment:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\\n\",envmap_pars_fragment:\"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\\n\\tuniform float reflectivity;\\n\\tuniform float envMapIntensity;\\n#endif\\n#ifdef USE_ENVMAP\\n\\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\tuniform float flipEnvMap;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\\n\",envmap_pars_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\\n\",envmap_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\n\",fog_vertex:\"\\n#ifdef USE_FOG\\nfogDepth = -mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n varying float fogDepth;\\n#endif\\n\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\\n\",fog_pars_fragment:\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\\n\",gradientmap_pars_fragment:\"#ifdef TOON\\n\\tuniform sampler2D gradientMap;\\n\\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\t\\tfloat dotNL = dot( normal, lightDirection );\\n\\t\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t\\t#ifdef USE_GRADIENTMAP\\n\\t\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",lightmap_fragment:\"#ifdef USE_LIGHTMAP\\n\\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n#endif\\n\",lightmap_pars_fragment:\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",lights_lambert_vertex:\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",lights_pars:\"uniform vec3 ambientLightColor;\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltcMat;\\tuniform sampler2D ltcMag;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = saturate( reflectVec.y * 0.5 + 0.5 );\\n\\t\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\\n\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\\n\",lights_phong_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tvec3\\tspecularColor;\\n\\tfloat\\tspecularShininess;\\n\\tfloat\\tspecularStrength;\\n};\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_BlinnPhong( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 matDiffColor = material.diffuseColor;\\n\\t\\tvec3 matSpecColor = material.specularColor;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = BlinnExponentToGGXRoughness( material.specularShininess );\\n\\t\\tvec3 spec = Rect_Area_Light_Specular_Reflectance(\\n\\t\\t\\t\\tgeometry,\\n\\t\\t\\t\\trectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight,\\n\\t\\t\\t\\troughness,\\n\\t\\t\\t\\tltcMat, ltcMag );\\n\\t\\tvec3 diff = Rect_Area_Light_Diffuse_Reflectance(\\n\\t\\t\\t\\tgeometry,\\n\\t\\t\\t\\trectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight );\\n\\t\\treflectedLight.directSpecular += lightColor * matSpecColor * spec / PI2;\\n\\t\\treflectedLight.directDiffuse += lightColor * matDiffColor * diff / PI2;\\n\\t}\\n#endif\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifdef TOON\\n\\t\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#else\\n\\t\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\t\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#endif\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\\n\",lights_physical_fragment:\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef STANDARD\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.clearCoat = saturate( clearCoat );\\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\\n#endif\\n\",lights_physical_pars_fragment:\"struct PhysicalMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tfloat\\tspecularRoughness;\\n\\tvec3\\tspecularColor;\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoat;\\n\\t\\tfloat clearCoatRoughness;\\n\\t#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 matDiffColor = material.diffuseColor;\\n\\t\\tvec3 matSpecColor = material.specularColor;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 spec = Rect_Area_Light_Specular_Reflectance(\\n\\t\\t\\t\\tgeometry,\\n\\t\\t\\t\\trectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight,\\n\\t\\t\\t\\troughness,\\n\\t\\t\\t\\tltcMat, ltcMag );\\n\\t\\tvec3 diff = Rect_Area_Light_Diffuse_Reflectance(\\n\\t\\t\\t\\tgeometry,\\n\\t\\t\\t\\trectAreaLight.position, rectAreaLight.halfWidth, rectAreaLight.halfHeight );\\n\\t\\treflectedLight.directSpecular += lightColor * matSpecColor * spec;\\n\\t\\treflectedLight.directDiffuse += lightColor * matDiffColor * diff;\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\\n\\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifndef STANDARD\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\tfloat dotNL = dotNV;\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\\n\",lights_template:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = normalize( vViewPosition );\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\\n\\t#endif\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\\n\\t#ifndef STANDARD\\n\\t\\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\\n\\t#else\\n\\t\\tvec3 clearCoatRadiance = vec3( 0.0 );\\n\\t#endif\\n\\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\\n#endif\\n\",logdepthbuf_fragment:\"#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\\n\\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#ifdef USE_LOGDEPTHBUF\\n\\tuniform float logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n#endif\\n\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n\\tuniform float logDepthBufFC;\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t#else\\n\\t\\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\\n\\t#endif\\n#endif\\n\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\\n\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n\",map_particle_fragment:\"#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n\",map_particle_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform vec4 offsetRepeat;\\n\\tuniform sampler2D map;\\n#endif\\n\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.r;\\n#endif\\n\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\\n#endif\\n\",morphtarget_pars_vertex:\"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_MORPHNORMALS\\n\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",morphtarget_vertex:\"#ifdef USE_MORPHTARGETS\\n\\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\\n\",normal_flip:\"#ifdef DOUBLE_SIDED\\n\\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n#else\\n\\tfloat flipNormal = 1.0;\\n#endif\\n\",normal_fragment:\"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal ) * flipNormal;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tnormal = perturbNormal2Arb( -vViewPosition, normal );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\\n\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\\n\\t\\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\\n\",packing:\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 1.0 - 2.0 * rgb.xyz;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\\n\",premultiplied_alpha_fragment:\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\\n\",project_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 mvPosition = modelViewMatrix * skinned;\\n#else\\n\\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\\n#endif\\ngl_Position = projectionMatrix * mvPosition;\\n\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.r;\\n#endif\\n\",roughnessmap_pars_fragment:\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",shadowmap_pars_fragment:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\\n\\t\\tconst vec2 offset = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = mix( a, b, f.x );\\n\\t\\treturn c;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n#endif\\n\",shadowmap_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\\n\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\\n\",skinbase_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform sampler2D boneTexture;\\n\\t\\tuniform int boneTextureWidth;\\n\\t\\tuniform int boneTextureHeight;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureWidth ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureWidth ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureWidth );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureHeight );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\\n\",skinning_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\tskinned = bindMatrixInverse * skinned;\\n#endif\\n\",skinnormal_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n#endif\\n\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\\n\",tonemapping_pars_fragment:\"#define saturate(a) clamp( a, 0.0, 1.0 )\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\\nvec3 Uncharted2ToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\n\",uv_pars_fragment:\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n#endif\",uv_pars_vertex:\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n\\tuniform vec4 offsetRepeat;\\n#endif\\n\",uv_vertex:\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\\n#endif\",uv2_pars_fragment:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_pars_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = uv2;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\\n\\t#ifdef USE_SKINNING\\n\\t\\tvec4 worldPosition = modelMatrix * skinned;\\n\\t#else\\n\\t\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\n\\t#endif\\n#endif\\n\",cube_frag:\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\\n\\tgl_FragColor.a *= opacity;\\n}\\n\",cube_vert:\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\\n\",depth_vert:\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",distanceRGBA_frag:\"uniform vec3 lightPos;\\nvarying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\\n}\\n\",distanceRGBA_vert:\"varying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition;\\n}\\n\",equirect_frag:\"uniform sampler2D tEquirect;\\nuniform float tFlip;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldPosition );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n}\\n\",equirect_vert:\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",linedashed_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshbasic_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshbasic_vert:\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshlambert_frag:\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphysical_frag:\"#define PHYSICAL\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifndef STANDARD\\n\\tuniform float clearCoat;\\n\\tuniform float clearCoatRoughness;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphysical_vert:\"#define PHYSICAL\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\\n\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\\n\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",points_vert:\"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tgl_PointSize = size * ( scale / - mvPosition.z );\\n\\t#else\\n\\t\\tgl_PointSize = size;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",shadow_frag:\"uniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\\n}\\n\",shadow_vert:\"#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\"};function Tn(e,t,n){return void 0===t&&void 0===n?this.set(e):this.setRGB(e,t,n)}Tn.prototype={constructor:Tn,isColor:!0,r:1,g:1,b:1,set:function(e){return e&&e.isColor?this.copy(e):\"number\"==typeof e?this.setHex(e):\"string\"==typeof e&&this.setStyle(e),this},setScalar:function(e){return this.r=e,this.g=e,this.b=e,this},setHex:function(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,this},setRGB:function(e,t,n){return this.r=e,this.g=t,this.b=n,this},setHSL:function(){function e(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}return function(t,n,i){if(t=Mt.euclideanModulo(t,1),n=Mt.clamp(n,0,1),i=Mt.clamp(i,0,1),0===n)this.r=this.g=this.b=i;else{var r=i<=.5?i*(1+n):i+n-i*n,o=2*i-r;this.r=e(o,r,t+1/3),this.g=e(o,r,t),this.b=e(o,r,t-1/3)}return this}}(),setStyle:function(e){function t(t){void 0!==t&&parseFloat(t)<1&&console.warn(\"THREE.Color: Alpha component of \"+e+\" will be ignored.\")}var n;if(n=/^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(e)){var i,r=n[1],o=n[2];switch(r){case\"rgb\":case\"rgba\":if(i=/^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(i[1],10))/255,this.g=Math.min(255,parseInt(i[2],10))/255,this.b=Math.min(255,parseInt(i[3],10))/255,t(i[5]),this;if(i=/^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(i[1],10))/100,this.g=Math.min(100,parseInt(i[2],10))/100,this.b=Math.min(100,parseInt(i[3],10))/100,t(i[5]),this;break;case\"hsl\":case\"hsla\":if(i=/^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o)){var a=parseFloat(i[1])/360,s=parseInt(i[2],10)/100,l=parseInt(i[3],10)/100;return t(i[5]),this.setHSL(a,s,l)}}}else if(n=/^\\#([A-Fa-f0-9]+)$/.exec(e)){var u,c=(u=n[1]).length;if(3===c)return this.r=parseInt(u.charAt(0)+u.charAt(0),16)/255,this.g=parseInt(u.charAt(1)+u.charAt(1),16)/255,this.b=parseInt(u.charAt(2)+u.charAt(2),16)/255,this;if(6===c)return this.r=parseInt(u.charAt(0)+u.charAt(1),16)/255,this.g=parseInt(u.charAt(2)+u.charAt(3),16)/255,this.b=parseInt(u.charAt(4)+u.charAt(5),16)/255,this}e&&e.length>0&&(void 0!==(u=Cn[e])?this.setHex(u):console.warn(\"THREE.Color: Unknown color \"+e));return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this},copyGammaToLinear:function(e,t){return void 0===t&&(t=2),this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this},copyLinearToGamma:function(e,t){void 0===t&&(t=2);var n=t>0?1/t:1;return this.r=Math.pow(e.r,n),this.g=Math.pow(e.g,n),this.b=Math.pow(e.b,n),this},convertGammaToLinear:function(){var e=this.r,t=this.g,n=this.b;return this.r=e*e,this.g=t*t,this.b=n*n,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return(\"000000\"+this.getHex().toString(16)).slice(-6)},getHSL:function(e){var t,n,i=e||{h:0,s:0,l:0},r=this.r,o=this.g,a=this.b,s=Math.max(r,o,a),l=Math.min(r,o,a),u=(l+s)/2;if(l===s)t=0,n=0;else{var c=s-l;switch(n=u<=.5?c/(s+l):c/(2-s-l),s){case r:t=(o-a)/c+(o.001&&k.scale>.001&&(x.x=k.x,x.y=k.y,x.z=k.z,b=k.size*k.scale/f.w,_.x=b*g,_.y=b,c.uniform3f(s.screenPosition,x.x,x.y,x.z),c.uniform2f(s.scale,_.x,_.y),c.uniform1f(s.rotation,k.rotation),c.uniform1f(s.opacity,k.opacity),c.uniform3f(s.color,k.color.r,k.color.g,k.color.b),d.setBlending(k.blending,k.blendEquation,k.blendSrc,k.blendDst),e.setTexture2D(k.texture,1),c.drawElements(c.TRIANGLES,6,c.UNSIGNED_SHORT,0))}}}d.enable(c.CULL_FACE),d.enable(c.DEPTH_TEST),d.setDepthWrite(!0),e.resetGLState()}}}function Ln(e,t){var n,i,r,o,a,s,l=e.context,u=e.state,c=new Ft,d=new Nt,h=new Ft;function p(){var t=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),u=new Uint16Array([0,1,2,0,2,3]);n=l.createBuffer(),i=l.createBuffer(),l.bindBuffer(l.ARRAY_BUFFER,n),l.bufferData(l.ARRAY_BUFFER,t,l.STATIC_DRAW),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,i),l.bufferData(l.ELEMENT_ARRAY_BUFFER,u,l.STATIC_DRAW),r=function(){var t=l.createProgram(),n=l.createShader(l.VERTEX_SHADER),i=l.createShader(l.FRAGMENT_SHADER);return l.shaderSource(n,[\"precision \"+e.getPrecision()+\" float;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform float rotation;\",\"uniform vec2 scale;\",\"uniform vec2 uvOffset;\",\"uniform vec2 uvScale;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"void main() {\",\"vUV = uvOffset + uv * uvScale;\",\"vec2 alignedPosition = position * scale;\",\"vec2 rotatedPosition;\",\"rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\",\"rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\",\"vec4 finalPosition;\",\"finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\",\"finalPosition.xy += rotatedPosition;\",\"finalPosition = projectionMatrix * finalPosition;\",\"gl_Position = finalPosition;\",\"}\"].join(\"\\n\")),l.shaderSource(i,[\"precision \"+e.getPrecision()+\" float;\",\"uniform vec3 color;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform int fogType;\",\"uniform vec3 fogColor;\",\"uniform float fogDensity;\",\"uniform float fogNear;\",\"uniform float fogFar;\",\"uniform float alphaTest;\",\"varying vec2 vUV;\",\"void main() {\",\"vec4 texture = texture2D( map, vUV );\",\"if ( texture.a < alphaTest ) discard;\",\"gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\",\"if ( fogType > 0 ) {\",\"float depth = gl_FragCoord.z / gl_FragCoord.w;\",\"float fogFactor = 0.0;\",\"if ( fogType == 1 ) {\",\"fogFactor = smoothstep( fogNear, fogFar, depth );\",\"} else {\",\"const float LOG2 = 1.442695;\",\"fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\",\"fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\",\"}\",\"gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\",\"}\",\"}\"].join(\"\\n\")),l.compileShader(n),l.compileShader(i),l.attachShader(t,n),l.attachShader(t,i),l.linkProgram(t),t}(),o={position:l.getAttribLocation(r,\"position\"),uv:l.getAttribLocation(r,\"uv\")},a={uvOffset:l.getUniformLocation(r,\"uvOffset\"),uvScale:l.getUniformLocation(r,\"uvScale\"),rotation:l.getUniformLocation(r,\"rotation\"),scale:l.getUniformLocation(r,\"scale\"),color:l.getUniformLocation(r,\"color\"),map:l.getUniformLocation(r,\"map\"),opacity:l.getUniformLocation(r,\"opacity\"),modelViewMatrix:l.getUniformLocation(r,\"modelViewMatrix\"),projectionMatrix:l.getUniformLocation(r,\"projectionMatrix\"),fogType:l.getUniformLocation(r,\"fogType\"),fogDensity:l.getUniformLocation(r,\"fogDensity\"),fogNear:l.getUniformLocation(r,\"fogNear\"),fogFar:l.getUniformLocation(r,\"fogFar\"),fogColor:l.getUniformLocation(r,\"fogColor\"),alphaTest:l.getUniformLocation(r,\"alphaTest\")};var c=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");c.width=8,c.height=8;var d=c.getContext(\"2d\");d.fillStyle=\"white\",d.fillRect(0,0,8,8),(s=new Rt(c)).needsUpdate=!0}function f(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:t.id-e.id}this.render=function(m,g){if(0!==t.length){void 0===r&&p(),l.useProgram(r),u.initAttributes(),u.enableAttribute(o.position),u.enableAttribute(o.uv),u.disableUnusedAttributes(),u.disable(l.CULL_FACE),u.enable(l.BLEND),l.bindBuffer(l.ARRAY_BUFFER,n),l.vertexAttribPointer(o.position,2,l.FLOAT,!1,16,0),l.vertexAttribPointer(o.uv,2,l.FLOAT,!1,16,8),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,i),l.uniformMatrix4fv(a.projectionMatrix,!1,g.projectionMatrix.elements),u.activeTexture(l.TEXTURE0),l.uniform1i(a.map,0);var y=0,v=0,b=m.fog;b?(l.uniform3f(a.fogColor,b.color.r,b.color.g,b.color.b),b.isFog?(l.uniform1f(a.fogNear,b.near),l.uniform1f(a.fogFar,b.far),l.uniform1i(a.fogType,1),y=1,v=1):b.isFogExp2&&(l.uniform1f(a.fogDensity,b.density),l.uniform1i(a.fogType,2),y=2,v=2)):(l.uniform1i(a.fogType,0),y=0,v=0);for(var _=0,x=t.length;_this.max.x||e.ythis.max.y)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y},getParameter:function(e,t){return(t||new St).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)},clampPoint:function(e,t){return(t||new St).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new St;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}};var In,Dn,Nn,Fn,zn,Bn,Un,jn,Wn,Gn,Vn,Hn=0;function Yn(){Object.defineProperty(this,\"id\",{value:Hn++}),this.uuid=Mt.generateUUID(),this.name=\"\",this.type=\"Material\",this.fog=!0,this.lights=!0,this.blending=T,this.side=y,this.shading=x,this.vertexColors=w,this.opacity=1,this.transparent=!1,this.blendSrc=U,this.blendDst=j,this.blendEquation=A,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Z,this.depthTest=!0,this.depthWrite=!0,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.alphaTest=0,this.premultipliedAlpha=!1,this.overdraw=0,this.visible=!0,this._needsUpdate=!0}function qn(e){Yn.call(this),this.type=\"ShaderMaterial\",this.defines={},this.uniforms={},this.vertexShader=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",this.fragmentShader=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,void 0!==e&&(void 0!==e.attributes&&console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\"),this.setValues(e))}function Xn(e){Yn.call(this),this.type=\"MeshDepthMaterial\",this.depthPacking=xt,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.setValues(e)}function Kn(e,t){this.min=void 0!==e?e:new Ft(1/0,1/0,1/0),this.max=void 0!==t?t:new Ft(-1/0,-1/0,-1/0)}function Zn(e,t){this.center=void 0!==e?e:new Ft,this.radius=void 0!==t?t:0}function Jn(){this.elements=new Float32Array([1,0,0,0,1,0,0,0,1]),arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}function $n(e,t){this.normal=void 0!==e?e:new Ft(1,0,0),this.constant=void 0!==t?t:0}function Qn(e,t,n,i,r,o){this.planes=[void 0!==e?e:new $n,void 0!==t?t:new $n,void 0!==n?n:new $n,void 0!==i?i:new $n,void 0!==r?r:new $n,void 0!==o?o:new $n]}function ei(e,t,n,i){var r=e.context,o=e.state,a=new Qn,s=new zt,l=t.shadows,u=new St,c=new St(i.maxTextureSize,i.maxTextureSize),d=new Ft,h=new Ft,p=[],f=1,g=2,_=1+(f|g),x=new Array(_),w=new Array(_),M={},S=[new Ft(1,0,0),new Ft(-1,0,0),new Ft(0,0,1),new Ft(0,0,-1),new Ft(0,1,0),new Ft(0,-1,0)],E=[new Ft(0,1,0),new Ft(0,1,0),new Ft(0,1,0),new Ft(0,1,0),new Ft(0,0,1),new Ft(0,0,-1)],T=[new Lt,new Lt,new Lt,new Lt,new Lt,new Lt],C=new Xn;C.depthPacking=wt,C.clipping=!0;for(var O=Pn.distanceRGBA,k=Sn.clone(O.uniforms),P=0;P!==_;++P){var A=0!=(P&f),R=0!=(P&g),L=C.clone();L.morphTargets=A,L.skinning=R,x[P]=L;var I=new qn({defines:{USE_SHADOWMAP:\"\"},uniforms:k,vertexShader:O.vertexShader,fragmentShader:O.fragmentShader,morphTargets:A,skinning:R,clipping:!0});w[P]=I}var D=this;function N(t,n,i,r){var o=t.geometry,a=null,s=x,l=t.customDepthMaterial;if(i&&(s=w,l=t.customDistanceMaterial),l)a=l;else{var u=!1;n.morphTargets&&(o&&o.isBufferGeometry?u=o.morphAttributes&&o.morphAttributes.position&&o.morphAttributes.position.length>0:o&&o.isGeometry&&(u=o.morphTargets&&o.morphTargets.length>0));var c=t.isSkinnedMesh&&n.skinning,d=0;u&&(d|=f),c&&(d|=g),a=s[d]}if(e.localClippingEnabled&&!0===n.clipShadows&&0!==n.clippingPlanes.length){var h=a.uuid,p=n.uuid,m=M[h];void 0===m&&(m={},M[h]=m);var _=m[p];void 0===_&&(_=a.clone(),m[p]=_),a=_}a.visible=n.visible,a.wireframe=n.wireframe;var S=n.side;return D.renderSingleSided&&S==b&&(S=y),D.renderReverseSided&&(S===y?S=v:S===v&&(S=y)),a.side=S,a.clipShadows=n.clipShadows,a.clippingPlanes=n.clippingPlanes,a.wireframeLinewidth=n.wireframeLinewidth,a.linewidth=n.linewidth,i&&void 0!==a.uniforms.lightPos&&a.uniforms.lightPos.value.copy(r),a}function F(e,t,n){if(!1!==e.visible){if(0!=(e.layers.mask&t.layers.mask)&&(e.isMesh||e.isLine||e.isPoints))if(e.castShadow&&(!1===e.frustumCulled||!0===a.intersectsObject(e)))!0===e.material.visible&&(e.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,e.matrixWorld),p.push(e));for(var i=e.children,r=0,o=i.length;r0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),n.skinning=this.skinning,n.morphTargets=this.morphTargets,t){var r=i(e.textures),o=i(e.images);r.length>0&&(n.textures=r),o.length>0&&(n.images=o)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(e){this.name=e.name,this.fog=e.fog,this.lights=e.lights,this.blending=e.blending,this.side=e.side,this.shading=e.shading,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.alphaTest=e.alphaTest,this.premultipliedAlpha=e.premultipliedAlpha,this.overdraw=e.overdraw,this.visible=e.visible,this.clipShadows=e.clipShadows,this.clipIntersection=e.clipIntersection;var t=e.clippingPlanes,n=null;if(null!==t){var i=t.length;n=new Array(i);for(var r=0;r!==i;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,this},update:function(){this.dispatchEvent({type:\"update\"})},dispose:function(){this.dispatchEvent({type:\"dispose\"})}},Object.assign(Yn.prototype,i.prototype),qn.prototype=Object.create(Yn.prototype),qn.prototype.constructor=qn,qn.prototype.isShaderMaterial=!0,qn.prototype.copy=function(e){return Yn.prototype.copy.call(this,e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Sn.clone(e.uniforms),this.defines=e.defines,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.lights=e.lights,this.clipping=e.clipping,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.morphNormals=e.morphNormals,this.extensions=e.extensions,this},qn.prototype.toJSON=function(e){var t=Yn.prototype.toJSON.call(this,e);return t.uniforms=this.uniforms,t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t},Xn.prototype=Object.create(Yn.prototype),Xn.prototype.constructor=Xn,Xn.prototype.isMeshDepthMaterial=!0,Xn.prototype.copy=function(e){return Yn.prototype.copy.call(this,e),this.depthPacking=e.depthPacking,this.skinning=e.skinning,this.morphTargets=e.morphTargets,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this},Kn.prototype={constructor:Kn,isBox3:!0,set:function(e,t){return this.min.copy(e),this.max.copy(t),this},setFromArray:function(e){for(var t=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,a=-1/0,s=0,l=e.length;sr&&(r=u),c>o&&(o=c),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(r,o,a),this},setFromBufferAttribute:function(e){for(var t=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,a=-1/0,s=0,l=e.count;sr&&(r=u),c>o&&(o=c),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(r,o,a),this},setFromPoints:function(e){this.makeEmpty();for(var t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z},getParameter:function(e,t){return(t||new Ft).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)},intersectsSphere:function(e){return void 0===Dn&&(Dn=new Ft),this.clampPoint(e.center,Dn),Dn.distanceToSquared(e.center)<=e.radius*e.radius},intersectsPlane:function(e){var t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=e.constant&&n>=e.constant},clampPoint:function(e,t){return(t||new Ft).copy(e).clamp(this.min,this.max)},distanceToPoint:function(){var e=new Ft;return function(t){return e.copy(t).clamp(this.min,this.max).sub(t).length()}}(),getBoundingSphere:function(){var e=new Ft;return function(t){var n=t||new Zn;return this.getCenter(n.center),n.radius=.5*this.getSize(e).length(),n}}(),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},applyMatrix4:(In=[new Ft,new Ft,new Ft,new Ft,new Ft,new Ft,new Ft,new Ft],function(e){return this.isEmpty()?this:(In[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),In[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),In[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),In[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),In[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),In[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),In[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),In[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(In),this)}),translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Zn.prototype={constructor:Zn,set:function(e,t){return this.center.copy(e),this.radius=t,this},setFromPoints:function(e,t){void 0===Nn&&(Nn=new Kn);var n=this.center;void 0!==t?n.copy(t):Nn.setFromPoints(e).getCenter(n);for(var i=0,r=0,o=e.length;rthis.radius*this.radius&&(i.sub(this.center).normalize(),i.multiplyScalar(this.radius).add(this.center)),i},getBoundingBox:function(e){var t=e||new Kn;return t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this},translate:function(e){return this.center.add(e),this},equals:function(e){return e.center.equals(this.center)&&e.radius===this.radius}},Jn.prototype={constructor:Jn,isMatrix3:!0,set:function(e,t,n,i,r,o,a,s,l){var u=this.elements;return u[0]=e,u[1]=i,u[2]=a,u[3]=t,u[4]=r,u[5]=s,u[6]=n,u[7]=o,u[8]=l,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(e){var t=e.elements;return this.set(t[0],t[3],t[6],t[1],t[4],t[7],t[2],t[5],t[8]),this},setFromMatrix4:function(e){var t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this},applyToBufferAttribute:function(){var e;return function(t){void 0===e&&(e=new Ft);for(var n=0,i=t.count;n1?void 0:i.copy(r).multiplyScalar(a).add(t.start)}}(),intersectsLine:function(e){var t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0},intersectsBox:function(e){return e.intersectsPlane(this)},intersectsSphere:function(e){return e.intersectsPlane(this)},coplanarPoint:function(e){return(e||new Ft).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var e=new Ft,t=new Jn;return function(n,i){var r=this.coplanarPoint(e).applyMatrix4(n),o=i||t.getNormalMatrix(n),a=this.normal.applyMatrix3(o).normalize();return this.constant=-r.dot(a),this}}(),translate:function(e){return this.constant=this.constant-e.dot(this.normal),this},equals:function(e){return e.normal.equals(this.normal)&&e.constant===this.constant}},Qn.prototype={constructor:Qn,set:function(e,t,n,i,r,o){var a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){for(var t=this.planes,n=0;n<6;n++)t[n].copy(e.planes[n]);return this},setFromMatrix:function(e){var t=this.planes,n=e.elements,i=n[0],r=n[1],o=n[2],a=n[3],s=n[4],l=n[5],u=n[6],c=n[7],d=n[8],h=n[9],p=n[10],f=n[11],m=n[12],g=n[13],y=n[14],v=n[15];return t[0].setComponents(a-i,c-s,f-d,v-m).normalize(),t[1].setComponents(a+i,c+s,f+d,v+m).normalize(),t[2].setComponents(a+r,c+l,f+h,v+g).normalize(),t[3].setComponents(a-r,c-l,f-h,v-g).normalize(),t[4].setComponents(a-o,c-u,f-p,v-y).normalize(),t[5].setComponents(a+o,c+u,f+p,v+y).normalize(),this},intersectsObject:(Bn=new Zn,function(e){var t=e.geometry;return null===t.boundingSphere&&t.computeBoundingSphere(),Bn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(Bn)}),intersectsSprite:function(){var e=new Zn;return function(t){return e.center.set(0,0,0),e.radius=.7071067811865476,e.applyMatrix4(t.matrixWorld),this.intersectsSphere(e)}}(),intersectsSphere:function(e){for(var t=this.planes,n=e.center,i=-e.radius,r=0;r<6;r++){if(t[r].distanceToPoint(n)0?e.min.x:e.max.x,zn.x=i.normal.x>0?e.max.x:e.min.x,Fn.y=i.normal.y>0?e.min.y:e.max.y,zn.y=i.normal.y>0?e.max.y:e.min.y,Fn.z=i.normal.z>0?e.min.z:e.max.z,zn.z=i.normal.z>0?e.max.z:e.min.z;var r=i.distanceToPoint(Fn),o=i.distanceToPoint(zn);if(r<0&&o<0)return!1}return!0}),containsPoint:function(e){for(var t=this.planes,n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}},ti.prototype={constructor:ti,set:function(e,t){return this.origin.copy(e),this.direction.copy(t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this},at:function(e,t){return(t||new Ft).copy(this.direction).multiplyScalar(e).add(this.origin)},lookAt:function(e){return this.direction.copy(e).sub(this.origin).normalize(),this},recast:function(){var e=new Ft;return function(t){return this.origin.copy(this.at(t,e)),this}}(),closestPointToPoint:function(e,t){var n=t||new Ft;n.subVectors(e,this.origin);var i=n.dot(this.direction);return i<0?n.copy(this.origin):n.copy(this.direction).multiplyScalar(i).add(this.origin)},distanceToPoint:function(e){return Math.sqrt(this.distanceSqToPoint(e))},distanceSqToPoint:function(){var e=new Ft;return function(t){var n=e.subVectors(t,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(t):(e.copy(this.direction).multiplyScalar(n).add(this.origin),e.distanceToSquared(t))}}(),distanceSqToSegment:(jn=new Ft,Wn=new Ft,Gn=new Ft,function(e,t,n,i){jn.copy(e).add(t).multiplyScalar(.5),Wn.copy(t).sub(e).normalize(),Gn.copy(this.origin).sub(jn);var r,o,a,s,l=.5*e.distanceTo(t),u=-this.direction.dot(Wn),c=Gn.dot(this.direction),d=-Gn.dot(Wn),h=Gn.lengthSq(),p=Math.abs(1-u*u);if(p>0)if(o=u*c-d,s=l*p,(r=u*d-c)>=0)if(o>=-s)if(o<=s){var f=1/p;a=(r*=f)*(r+u*(o*=f)+2*c)+o*(u*r+o+2*d)+h}else o=l,a=-(r=Math.max(0,-(u*o+c)))*r+o*(o+2*d)+h;else o=-l,a=-(r=Math.max(0,-(u*o+c)))*r+o*(o+2*d)+h;else o<=-s?a=-(r=Math.max(0,-(-u*l+c)))*r+(o=r>0?-l:Math.min(Math.max(-l,-d),l))*(o+2*d)+h:o<=s?(r=0,a=(o=Math.min(Math.max(-l,-d),l))*(o+2*d)+h):a=-(r=Math.max(0,-(u*l+c)))*r+(o=r>0?l:Math.min(Math.max(-l,-d),l))*(o+2*d)+h;else o=u>0?-l:l,a=-(r=Math.max(0,-(u*o+c)))*r+o*(o+2*d)+h;return n&&n.copy(this.direction).multiplyScalar(r).add(this.origin),i&&i.copy(Wn).multiplyScalar(o).add(jn),a}),intersectSphere:function(){var e=new Ft;return function(t,n){e.subVectors(t.center,this.origin);var i=e.dot(this.direction),r=e.dot(e)-i*i,o=t.radius*t.radius;if(r>o)return null;var a=Math.sqrt(o-r),s=i-a,l=i+a;return s<0&&l<0?null:s<0?this.at(l,n):this.at(s,n)}}(),intersectsSphere:function(e){return this.distanceToPoint(e.center)<=e.radius},distanceToPlane:function(e){var t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;var n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null},intersectPlane:function(e,t){var n=this.distanceToPlane(e);return null===n?null:this.at(n,t)},intersectsPlane:function(e){var t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0},intersectBox:function(e,t){var n,i,r,o,a,s,l=1/this.direction.x,u=1/this.direction.y,c=1/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,i=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,i=(e.min.x-d.x)*l),u>=0?(r=(e.min.y-d.y)*u,o=(e.max.y-d.y)*u):(r=(e.max.y-d.y)*u,o=(e.min.y-d.y)*u),n>o||r>i?null:((r>n||n!=n)&&(n=r),(o=0?(a=(e.min.z-d.z)*c,s=(e.max.z-d.z)*c):(a=(e.max.z-d.z)*c,s=(e.min.z-d.z)*c),n>s||a>i?null:((a>n||n!=n)&&(n=a),(s=0?n:i,t)))},intersectsBox:(Un=new Ft,function(e){return null!==this.intersectBox(e,Un)}),intersectTriangle:function(){var e=new Ft,t=new Ft,n=new Ft,i=new Ft;return function(r,o,a,s,l){t.subVectors(o,r),n.subVectors(a,r),i.crossVectors(t,n);var u,c=this.direction.dot(i);if(c>0){if(s)return null;u=1}else{if(!(c<0))return null;u=-1,c=-c}e.subVectors(this.origin,r);var d=u*this.direction.dot(n.crossVectors(e,n));if(d<0)return null;var h=u*this.direction.dot(t.cross(e));if(h<0)return null;if(d+h>c)return null;var p=-u*e.dot(i);return p<0?null:this.at(p/c,l)}}(),applyMatrix4:function(e){return this.direction.add(this.origin).applyMatrix4(e),this.origin.applyMatrix4(e),this.direction.sub(this.origin),this.direction.normalize(),this},equals:function(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}},ni.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"],ni.DefaultOrder=\"XYZ\",ni.prototype={constructor:ni,isEuler:!0,get x(){return this._x},set x(e){this._x=e,this.onChangeCallback()},get y(){return this._y},set y(e){this._y=e,this.onChangeCallback()},get z(){return this._z},set z(e){this._z=e,this.onChangeCallback()},get order(){return this._order},set order(e){this._order=e,this.onChangeCallback()},set:function(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._order=i||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this.onChangeCallback(),this},setFromRotationMatrix:function(e,t,n){var i=Mt.clamp,r=e.elements,o=r[0],a=r[4],s=r[8],l=r[1],u=r[5],c=r[9],d=r[2],h=r[6],p=r[10];return\"XYZ\"===(t=t||this._order)?(this._y=Math.asin(i(s,-1,1)),Math.abs(s)<.99999?(this._x=Math.atan2(-c,p),this._z=Math.atan2(-a,o)):(this._x=Math.atan2(h,u),this._z=0)):\"YXZ\"===t?(this._x=Math.asin(-i(c,-1,1)),Math.abs(c)<.99999?(this._y=Math.atan2(s,p),this._z=Math.atan2(l,u)):(this._y=Math.atan2(-d,o),this._z=0)):\"ZXY\"===t?(this._x=Math.asin(i(h,-1,1)),Math.abs(h)<.99999?(this._y=Math.atan2(-d,p),this._z=Math.atan2(-a,u)):(this._y=0,this._z=Math.atan2(l,o))):\"ZYX\"===t?(this._y=Math.asin(-i(d,-1,1)),Math.abs(d)<.99999?(this._x=Math.atan2(h,p),this._z=Math.atan2(l,o)):(this._x=0,this._z=Math.atan2(-a,u))):\"YZX\"===t?(this._z=Math.asin(i(l,-1,1)),Math.abs(l)<.99999?(this._x=Math.atan2(-c,u),this._y=Math.atan2(-d,o)):(this._x=0,this._y=Math.atan2(s,p))):\"XZY\"===t?(this._z=Math.asin(-i(a,-1,1)),Math.abs(a)<.99999?(this._x=Math.atan2(h,u),this._y=Math.atan2(s,o)):(this._x=Math.atan2(-c,p),this._y=0)):console.warn(\"THREE.Euler: .setFromRotationMatrix() given unsupported order: \"+t),this._order=t,!1!==n&&this.onChangeCallback(),this},setFromQuaternion:function(){var e;return function(t,n,i){return void 0===e&&(e=new zt),e.makeRotationFromQuaternion(t),this.setFromRotationMatrix(e,n,i)}}(),setFromVector3:function(e,t){return this.set(e.x,e.y,e.z,t||this._order)},reorder:(Vn=new Nt,function(e){return Vn.setFromEuler(this),this.setFromQuaternion(Vn,e)}),equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order},fromArray:function(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e},toVector3:function(e){return e?e.set(this._x,this._y,this._z):new Ft(this._x,this._y,this._z)},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}},ii.prototype={constructor:ii,set:function(e){this.mask=1<n&&(n=e[t]);return n}hi.DefaultUp=new Ft(0,1,0),hi.DefaultMatrixAutoUpdate=!0,hi.prototype={constructor:hi,isObject3D:!0,applyMatrix:function(e){this.matrix.multiplyMatrices(e,this.matrix),this.matrix.decompose(this.position,this.quaternion,this.scale)},setRotationFromAxisAngle:function(e,t){this.quaternion.setFromAxisAngle(e,t)},setRotationFromEuler:function(e){this.quaternion.setFromEuler(e,!0)},setRotationFromMatrix:function(e){this.quaternion.setFromRotationMatrix(e)},setRotationFromQuaternion:function(e){this.quaternion.copy(e)},rotateOnAxis:(si=new Nt,function(e,t){return si.setFromAxisAngle(e,t),this.quaternion.multiply(si),this}),rotateX:function(){var e=new Ft(1,0,0);return function(t){return this.rotateOnAxis(e,t)}}(),rotateY:function(){var e=new Ft(0,1,0);return function(t){return this.rotateOnAxis(e,t)}}(),rotateZ:function(){var e=new Ft(0,0,1);return function(t){return this.rotateOnAxis(e,t)}}(),translateOnAxis:function(){var e=new Ft;return function(t,n){return e.copy(t).applyQuaternion(this.quaternion),this.position.add(e.multiplyScalar(n)),this}}(),translateX:function(){var e=new Ft(1,0,0);return function(t){return this.translateOnAxis(e,t)}}(),translateY:function(){var e=new Ft(0,1,0);return function(t){return this.translateOnAxis(e,t)}}(),translateZ:function(){var e=new Ft(0,0,1);return function(t){return this.translateOnAxis(e,t)}}(),localToWorld:function(e){return e.applyMatrix4(this.matrixWorld)},worldToLocal:(ai=new zt,function(e){return e.applyMatrix4(ai.getInverse(this.matrixWorld))}),lookAt:function(){var e=new zt;return function(t){e.lookAt(t,this.position,this.up),this.quaternion.setFromRotationMatrix(e)}}(),add:function(e){if(arguments.length>1){for(var t=0;t1)for(var t=0;t0){i.children=[];for(var r=0;r0&&(n.geometries=o),a.length>0&&(n.materials=a),s.length>0&&(n.textures=s),l.length>0&&(n.images=l)}return n.object=i,n;function u(e){var t=[];for(var n in e){var i=e[n];delete i.metadata,t.push(i)}return t}},clone:function(e){return(new this.constructor).copy(this,e)},copy:function(e,t){if(void 0===t&&(t=!0),this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(var n=0;n0?r.multiplyScalar(1/Math.sqrt(o)):r.set(0,0,0)}),fi.barycoordFromPoint=function(){var e=new Ft,t=new Ft,n=new Ft;return function(i,r,o,a,s){e.subVectors(a,r),t.subVectors(o,r),n.subVectors(i,r);var l=e.dot(e),u=e.dot(t),c=e.dot(n),d=t.dot(t),h=t.dot(n),p=l*d-u*u,f=s||new Ft;if(0===p)return f.set(-2,-1,-1);var m=1/p,g=(d*c-u*h)*m,y=(l*h-u*c)*m;return f.set(1-g-y,y,g)}}(),fi.containsPoint=function(){var e=new Ft;return function(t,n,i,r){var o=fi.barycoordFromPoint(t,n,i,r,e);return o.x>=0&&o.y>=0&&o.x+o.y<=1}}(),fi.prototype={constructor:fi,set:function(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this},setFromPointsAndIndices:function(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this},area:function(){var e=new Ft,t=new Ft;return function(){return e.subVectors(this.c,this.b),t.subVectors(this.a,this.b),.5*e.cross(t).length()}}(),midpoint:function(e){return(e||new Ft).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(e){return fi.normal(this.a,this.b,this.c,e)},plane:function(e){return(e||new $n).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(e,t){return fi.barycoordFromPoint(e,this.a,this.b,this.c,t)},containsPoint:function(e){return fi.containsPoint(e,this.a,this.b,this.c)},closestPointToPoint:function(){var e,t,n,i;return function(r,o){void 0===e&&(e=new $n,t=[new pi,new pi,new pi],n=new Ft,i=new Ft);var a=o||new Ft,s=1/0;if(e.setFromCoplanarPoints(this.a,this.b,this.c),e.projectPoint(r,n),!0===this.containsPoint(n))a.copy(n);else{t[0].set(this.a,this.b),t[1].set(this.b,this.c),t[2].set(this.c,this.a);for(var l=0;l0,a=r[1]&&r[1].length>0,s=e.morphTargets,l=s.length;if(l>0){t=[];for(var u=0;u0){c=[];for(u=0;u0?1:-1,u.push(k.x,k.y,k.z),c.push(v/m),c.push(1-b/g),C+=1}}for(b=0;b0)for(h=0;h0&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var e,t,n;for(this.computeFaceNormals(),e=0,t=this.faces.length;e0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var e,t,n,i,r;for(n=0,i=this.faces.length;n0&&(e+=t[n].distanceTo(t[n-1])),this.lineDistances[n]=e},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Kn),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Zn),this.boundingSphere.setFromPoints(this.vertices)},merge:function(e,t,n){if(!1!==(e&&e.isGeometry)){var i,r=this.vertices.length,o=this.vertices,a=e.vertices,s=this.faces,l=e.faces,u=this.faceVertexUvs[0],c=e.faceVertexUvs[0],d=this.colors,h=e.colors;void 0===n&&(n=0),void 0!==t&&(i=(new Jn).getNormalMatrix(t));for(var p=0,f=a.length;p=0;n--){var f=h[n];for(this.faces.splice(f,1),a=0,s=this.faceVertexUvs.length;a0,g=p.vertexNormals.length>0,y=1!==p.color.r||1!==p.color.g||1!==p.color.b,v=p.vertexColors.length>0,b=0;if(b=M(b,0,0),b=M(b,1,!0),b=M(b,2,!1),b=M(b,3,f),b=M(b,4,m),b=M(b,5,g),b=M(b,6,y),b=M(b,7,v),a.push(b),a.push(p.a,p.b,p.c),a.push(p.materialIndex),f){var _=this.faceVertexUvs[0][r];a.push(T(_[0]),T(_[1]),T(_[2]))}if(m&&a.push(S(p.normal)),g){var x=p.vertexNormals;a.push(S(x[0]),S(x[1]),S(x[2]))}if(y&&a.push(E(p.color)),v){var w=p.vertexColors;a.push(E(w[0]),E(w[1]),E(w[2]))}}function M(e,t,n){return n?e|1<0&&(e.data.colors=u),d.length>0&&(e.data.uvs=[d]),e.data.faces=a,e},clone:function(){return(new Ri).copy(this)},copy:function(e){var t,n,i,r,o,a;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;var s=e.vertices;for(t=0,n=s.length;t65535?Si:wi)(e,1):this.index=e},addAttribute:function(e,t){return!1===(t&&t.isBufferAttribute)&&!1===(t&&t.isInterleavedBufferAttribute)?(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),void this.addAttribute(e,new yi(arguments[1],arguments[2]))):\"index\"===e?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),void this.setIndex(t)):(this.attributes[e]=t,this)},getAttribute:function(e){return this.attributes[e]},removeAttribute:function(e){return delete this.attributes[e],this},addGroup:function(e,t,n){this.groups.push({start:e,count:t,materialIndex:void 0!==n?n:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(e,t){this.drawRange.start=e,this.drawRange.count=t},applyMatrix:function(e){var t=this.attributes.position;void 0!==t&&(e.applyToBufferAttribute(t),t.needsUpdate=!0);var n=this.attributes.normal;void 0!==n&&((new Jn).getNormalMatrix(e).applyToBufferAttribute(n),n.needsUpdate=!0);return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var e;return function(t){return void 0===e&&(e=new zt),e.makeRotationX(t),this.applyMatrix(e),this}}(),rotateY:function(){var e;return function(t){return void 0===e&&(e=new zt),e.makeRotationY(t),this.applyMatrix(e),this}}(),rotateZ:function(){var e;return function(t){return void 0===e&&(e=new zt),e.makeRotationZ(t),this.applyMatrix(e),this}}(),translate:function(){var e;return function(t,n,i){return void 0===e&&(e=new zt),e.makeTranslation(t,n,i),this.applyMatrix(e),this}}(),scale:function(){var e;return function(t,n,i){return void 0===e&&(e=new zt),e.makeScale(t,n,i),this.applyMatrix(e),this}}(),lookAt:function(){var e;return function(t){void 0===e&&(e=new hi),e.lookAt(t),e.updateMatrix(),this.applyMatrix(e.matrix)}}(),center:function(){this.computeBoundingBox();var e=this.boundingBox.getCenter().negate();return this.translate(e.x,e.y,e.z),e},setFromObject:function(e){var t=e.geometry;if(e.isPoints||e.isLine){var n=new Ei(3*t.vertices.length,3),i=new Ei(3*t.colors.length,3);if(this.addAttribute(\"position\",n.copyVector3sArray(t.vertices)),this.addAttribute(\"color\",i.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length){var r=new Ei(t.lineDistances.length,1);this.addAttribute(\"lineDistance\",r.copyArray(t.lineDistances))}null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone())}else e.isMesh&&t&&t.isGeometry&&this.fromGeometry(t);return this},updateFromObject:function(e){var t,n=e.geometry;if(e.isMesh){var i=n.__directGeometry;if(!0===n.elementsNeedUpdate&&(i=void 0,n.elementsNeedUpdate=!1),void 0===i)return this.fromGeometry(n);i.verticesNeedUpdate=n.verticesNeedUpdate,i.normalsNeedUpdate=n.normalsNeedUpdate,i.colorsNeedUpdate=n.colorsNeedUpdate,i.uvsNeedUpdate=n.uvsNeedUpdate,i.groupsNeedUpdate=n.groupsNeedUpdate,n.verticesNeedUpdate=!1,n.normalsNeedUpdate=!1,n.colorsNeedUpdate=!1,n.uvsNeedUpdate=!1,n.groupsNeedUpdate=!1,n=i}return!0===n.verticesNeedUpdate&&(void 0!==(t=this.attributes.position)&&(t.copyVector3sArray(n.vertices),t.needsUpdate=!0),n.verticesNeedUpdate=!1),!0===n.normalsNeedUpdate&&(void 0!==(t=this.attributes.normal)&&(t.copyVector3sArray(n.normals),t.needsUpdate=!0),n.normalsNeedUpdate=!1),!0===n.colorsNeedUpdate&&(void 0!==(t=this.attributes.color)&&(t.copyColorsArray(n.colors),t.needsUpdate=!0),n.colorsNeedUpdate=!1),n.uvsNeedUpdate&&(void 0!==(t=this.attributes.uv)&&(t.copyVector2sArray(n.uvs),t.needsUpdate=!0),n.uvsNeedUpdate=!1),n.lineDistancesNeedUpdate&&(void 0!==(t=this.attributes.lineDistance)&&(t.copyArray(n.lineDistances),t.needsUpdate=!0),n.lineDistancesNeedUpdate=!1),n.groupsNeedUpdate&&(n.computeGroups(e.geometry),this.groups=n.groups,n.groupsNeedUpdate=!1),this},fromGeometry:function(e){return e.__directGeometry=(new Ci).fromGeometry(e),this.fromDirectGeometry(e.__directGeometry)},fromDirectGeometry:function(e){var t=new Float32Array(3*e.vertices.length);if(this.addAttribute(\"position\",new yi(t,3).copyVector3sArray(e.vertices)),e.normals.length>0){var n=new Float32Array(3*e.normals.length);this.addAttribute(\"normal\",new yi(n,3).copyVector3sArray(e.normals))}if(e.colors.length>0){var i=new Float32Array(3*e.colors.length);this.addAttribute(\"color\",new yi(i,3).copyColorsArray(e.colors))}if(e.uvs.length>0){var r=new Float32Array(2*e.uvs.length);this.addAttribute(\"uv\",new yi(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){var o=new Float32Array(2*e.uvs2.length);this.addAttribute(\"uv2\",new yi(o,2).copyVector2sArray(e.uvs2))}if(e.indices.length>0){var a=new(Oi(e.indices)>65535?Uint32Array:Uint16Array)(3*e.indices.length);this.setIndex(new yi(a,1).copyIndicesArray(e.indices))}for(var s in this.groups=e.groups,e.morphTargets){for(var l=[],u=e.morphTargets[s],c=0,d=u.length;c0){var f=new Ei(4*e.skinIndices.length,4);this.addAttribute(\"skinIndex\",f.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){var m=new Ei(4*e.skinWeights.length,4);this.addAttribute(\"skinWeight\",m.copyVector4sArray(e.skinWeights))}return null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Kn);var e=this.attributes.position;void 0!==e?this.boundingBox.setFromBufferAttribute(e):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var e=new Kn,t=new Ft;return function(){null===this.boundingSphere&&(this.boundingSphere=new Zn);var n=this.attributes.position;if(n){var i=this.boundingSphere.center;e.setFromBufferAttribute(n),e.getCenter(i);for(var r=0,o=0,a=n.count;o0&&(e.data.groups=JSON.parse(JSON.stringify(s)));var l=this.boundingSphere;return null!==l&&(e.data.boundingSphere={center:l.center.toArray(),radius:l.radius}),e},clone:function(){return(new Li).copy(this)},copy:function(e){var t,n,i;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;var r=e.index;null!==r&&this.setIndex(r.clone());var o=e.attributes;for(t in o){var a=o[t];this.addAttribute(t,a.clone())}var s=e.morphAttributes;for(t in s){var l=[],u=s[t];for(n=0,i=u.length;n0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var t=0,n=e.length;tt.far?null:{distance:l,point:f.clone(),object:e}}function y(e,t,n,a,s,l,h,f){i.fromBufferAttribute(a,l),r.fromBufferAttribute(a,h),o.fromBufferAttribute(a,f);var y=g(e,t,n,i,r,o,p);return y&&(s&&(u.fromBufferAttribute(s,l),c.fromBufferAttribute(s,h),d.fromBufferAttribute(s,f),y.uv=m(p,i,r,o,u,c,d)),y.face=new mi(l,h,f,fi.normal(i,r,o)),y.faceIndex=l),y}return function(h,f){var v,b=this.geometry,_=this.material,x=this.matrixWorld;if(void 0!==_&&(null===b.boundingSphere&&b.computeBoundingSphere(),n.copy(b.boundingSphere),n.applyMatrix4(x),!1!==h.ray.intersectsSphere(n)&&(e.getInverse(x),t.copy(h.ray).applyMatrix4(e),null===b.boundingBox||!1!==t.intersectsBox(b.boundingBox))))if(b.isBufferGeometry){var w,M,S,E,T,C=b.index,O=b.attributes.position,k=b.attributes.uv;if(null!==C)for(E=0,T=C.count;E0&&(L=z);for(var B=0,U=F.length;B/g,(function(e,t){var n=En[t];if(void 0===n)throw new Error(\"Can not resolve #include <\"+t+\">\");return er(n)}))}function tr(e){return e.replace(/for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g,(function(e,t,n,i){for(var r=\"\",o=parseInt(t);o0?e.gammaFactor:1,x=function(e,t,n){return[(e=e||{}).derivatives||t.envMapCubeUV||t.bumpMap||t.normalMap||t.flatShading?\"#extension GL_OES_standard_derivatives : enable\":\"\",(e.fragDepth||t.logarithmicDepthBuffer)&&n.get(\"EXT_frag_depth\")?\"#extension GL_EXT_frag_depth : enable\":\"\",e.drawBuffers&&n.get(\"WEBGL_draw_buffers\")?\"#extension GL_EXT_draw_buffers : require\":\"\",(e.shaderTextureLOD||t.envMap)&&n.get(\"EXT_shader_texture_lod\")?\"#extension GL_EXT_shader_texture_lod : enable\":\"\"].filter($i).join(\"\\n\")}(o,i,e.extensions),w=function(e){var t=[];for(var n in e){var i=e[n];!1!==i&&t.push(\"#define \"+n+\" \"+i)}return t.join(\"\\n\")}(a),M=r.createProgram();n.isRawShaderMaterial?(p=[w,\"\\n\"].filter($i).join(\"\\n\"),f=[x,w,\"\\n\"].filter($i).join(\"\\n\")):(p=[\"precision \"+i.precision+\" float;\",\"precision \"+i.precision+\" int;\",\"#define SHADER_NAME \"+n.__webglShader.name,w,i.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+_,\"#define MAX_BONES \"+i.maxBones,i.useFog&&i.fog?\"#define USE_FOG\":\"\",i.useFog&&i.fogExp?\"#define FOG_EXP2\":\"\",i.map?\"#define USE_MAP\":\"\",i.envMap?\"#define USE_ENVMAP\":\"\",i.envMap?\"#define \"+d:\"\",i.lightMap?\"#define USE_LIGHTMAP\":\"\",i.aoMap?\"#define USE_AOMAP\":\"\",i.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",i.bumpMap?\"#define USE_BUMPMAP\":\"\",i.normalMap?\"#define USE_NORMALMAP\":\"\",i.displacementMap&&i.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",i.specularMap?\"#define USE_SPECULARMAP\":\"\",i.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",i.metalnessMap?\"#define USE_METALNESSMAP\":\"\",i.alphaMap?\"#define USE_ALPHAMAP\":\"\",i.vertexColors?\"#define USE_COLOR\":\"\",i.flatShading?\"#define FLAT_SHADED\":\"\",i.skinning?\"#define USE_SKINNING\":\"\",i.useVertexTexture?\"#define BONE_TEXTURE\":\"\",i.morphTargets?\"#define USE_MORPHTARGETS\":\"\",i.morphNormals&&!1===i.flatShading?\"#define USE_MORPHNORMALS\":\"\",i.doubleSided?\"#define DOUBLE_SIDED\":\"\",i.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+i.numClippingPlanes,i.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",i.shadowMapEnabled?\"#define \"+u:\"\",i.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",i.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",i.logarithmicDepthBuffer&&e.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_COLOR\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter($i).join(\"\\n\"),f=[x,\"precision \"+i.precision+\" float;\",\"precision \"+i.precision+\" int;\",\"#define SHADER_NAME \"+n.__webglShader.name,w,i.alphaTest?\"#define ALPHATEST \"+i.alphaTest:\"\",\"#define GAMMA_FACTOR \"+_,i.useFog&&i.fog?\"#define USE_FOG\":\"\",i.useFog&&i.fogExp?\"#define FOG_EXP2\":\"\",i.map?\"#define USE_MAP\":\"\",i.envMap?\"#define USE_ENVMAP\":\"\",i.envMap?\"#define \"+c:\"\",i.envMap?\"#define \"+d:\"\",i.envMap?\"#define \"+h:\"\",i.lightMap?\"#define USE_LIGHTMAP\":\"\",i.aoMap?\"#define USE_AOMAP\":\"\",i.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",i.bumpMap?\"#define USE_BUMPMAP\":\"\",i.normalMap?\"#define USE_NORMALMAP\":\"\",i.specularMap?\"#define USE_SPECULARMAP\":\"\",i.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",i.metalnessMap?\"#define USE_METALNESSMAP\":\"\",i.alphaMap?\"#define USE_ALPHAMAP\":\"\",i.vertexColors?\"#define USE_COLOR\":\"\",i.gradientMap?\"#define USE_GRADIENTMAP\":\"\",i.flatShading?\"#define FLAT_SHADED\":\"\",i.doubleSided?\"#define DOUBLE_SIDED\":\"\",i.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+i.numClippingPlanes,\"#define UNION_CLIPPING_PLANES \"+(i.numClippingPlanes-i.numClipIntersection),i.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",i.shadowMapEnabled?\"#define \"+u:\"\",i.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",i.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",i.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",i.logarithmicDepthBuffer&&e.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",i.envMap&&e.extensions.get(\"EXT_shader_texture_lod\")?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",i.toneMapping!==re?\"#define TONE_MAPPING\":\"\",i.toneMapping!==re?En.tonemapping_pars_fragment:\"\",i.toneMapping!==re?Ji(\"toneMapping\",i.toneMapping):\"\",i.outputEncoding||i.mapEncoding||i.envMapEncoding||i.emissiveMapEncoding?En.encodings_pars_fragment:\"\",i.mapEncoding?Zi(\"mapTexelToLinear\",i.mapEncoding):\"\",i.envMapEncoding?Zi(\"envMapTexelToLinear\",i.envMapEncoding):\"\",i.emissiveMapEncoding?Zi(\"emissiveMapTexelToLinear\",i.emissiveMapEncoding):\"\",i.outputEncoding?(y=\"linearToOutputTexel\",v=i.outputEncoding,b=Ki(v),\"vec4 \"+y+\"( vec4 value ) { return LinearTo\"+b[0]+b[1]+\"; }\"):\"\",i.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter($i).join(\"\\n\")),s=Qi(s=er(s),i),l=Qi(l=er(l),i),n.isShaderMaterial||(s=tr(s),l=tr(l));var S=p+s,E=f+l,T=Hi(r,r.VERTEX_SHADER,S),C=Hi(r,r.FRAGMENT_SHADER,E);r.attachShader(M,T),r.attachShader(M,C),void 0!==n.index0AttributeName?r.bindAttribLocation(M,0,n.index0AttributeName):!0===i.morphTargets&&r.bindAttribLocation(M,0,\"position\"),r.linkProgram(M);var O,k,P=r.getProgramInfoLog(M),A=r.getShaderInfoLog(T),R=r.getShaderInfoLog(C),L=!0,I=!0;return!1===r.getProgramParameter(M,r.LINK_STATUS)?(L=!1,console.error(\"THREE.WebGLProgram: shader error: \",r.getError(),\"gl.VALIDATE_STATUS\",r.getProgramParameter(M,r.VALIDATE_STATUS),\"gl.getProgramInfoLog\",P,A,R)):\"\"!==P?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",P):\"\"!==A&&\"\"!==R||(I=!1),I&&(this.diagnostics={runnable:L,material:n,programLog:P,vertexShader:{log:A,prefix:p},fragmentShader:{log:R,prefix:f}}),r.deleteShader(T),r.deleteShader(C),this.getUniforms=function(){return void 0===O&&(O=new Mn(r,M,e)),O},this.getAttributes=function(){return void 0===k&&(k=function(e,t,n){for(var i={},r=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES),o=0;o0,shadowMapType:e.shadowMap.type,toneMapping:e.toneMapping,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:n.premultipliedAlpha,alphaTest:n.alphaTest,doubleSided:n.side===b,flipSided:n.side===v,depthPacking:void 0!==n.depthPacking&&n.depthPacking}},this.getProgramCode=function(e,t){var n=[];if(t.shaderID?n.push(t.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(var i in e.defines)n.push(i),n.push(e.defines[i]);for(var o=0;o65535?Si:wi)(a,1);return r(f,e.ELEMENT_ARRAY_BUFFER),i.wireframe=f,f},update:function(t){var n=i.get(t);t.geometry.isGeometry&&n.updateFromObject(t);var o=n.index,a=n.attributes;for(var s in null!==o&&r(o,e.ELEMENT_ARRAY_BUFFER),a)r(a[s],e.ARRAY_BUFFER);var l=n.morphAttributes;for(var s in l)for(var u=l[s],c=0,d=u.length;ct||e.height>t){var n=t/Math.max(e.width,e.height),i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");return i.width=Math.floor(e.width*n),i.height=Math.floor(e.height*n),i.getContext(\"2d\").drawImage(e,0,0,e.width,e.height,0,0,i.width,i.height),console.warn(\"THREE.WebGLRenderer: image is too big (\"+e.width+\"x\"+e.height+\"). Resized to \"+i.width+\"x\"+i.height,e),i}return e}function c(e){return Mt.isPowerOfTwo(e.width)&&Mt.isPowerOfTwo(e.height)}function d(t){return t===_e||t===xe||t===we?e.NEAREST:e.LINEAR}function h(t){var n=t.target;n.removeEventListener(\"dispose\",h),function(t){var n=i.get(t);if(t.image&&n.__image__webglTextureCube)e.deleteTexture(n.__image__webglTextureCube);else{if(void 0===n.__webglInit)return;e.deleteTexture(n.__webglTexture)}i.delete(t)}(n),s.textures--}function p(t){var n=t.target;n.removeEventListener(\"dispose\",p),function(t){var n=i.get(t),r=i.get(t.texture);if(!t)return;void 0!==r.__webglTexture&&e.deleteTexture(r.__webglTexture);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLRenderTargetCube)for(var o=0;o<6;o++)e.deleteFramebuffer(n.__webglFramebuffer[o]),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer[o]);else e.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer);i.delete(t.texture),i.delete(t)}(n),s.textures--}function f(t,a){var d=i.get(t);if(t.version>0&&d.__version!==t.version){var p=t.image;if(void 0===p)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\",t);else{if(!1!==p.complete)return void function(t,i,a){void 0===t.__webglInit&&(t.__webglInit=!0,i.addEventListener(\"dispose\",h),t.__webglTexture=e.createTexture(),s.textures++);n.activeTexture(e.TEXTURE0+a),n.bindTexture(e.TEXTURE_2D,t.__webglTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment);var d=u(i.image,r.maxTextureSize);(function(e){return e.wrapS!==ve||e.wrapT!==ve||e.minFilter!==_e&&e.minFilter!==Me})(i)&&!1===c(d)&&(d=function(e){if(e instanceof HTMLImageElement||e instanceof HTMLCanvasElement){var t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");return t.width=Mt.nearestPowerOfTwo(e.width),t.height=Mt.nearestPowerOfTwo(e.height),t.getContext(\"2d\").drawImage(e,0,0,t.width,t.height),console.warn(\"THREE.WebGLRenderer: image is not power of two (\"+e.width+\"x\"+e.height+\"). Resized to \"+t.width+\"x\"+t.height,e),t}return e}(d));var p=c(d),f=o(i.format),g=o(i.type);m(e.TEXTURE_2D,i,p);var y,v=i.mipmaps;if(i.isDepthTexture){var b=e.DEPTH_COMPONENT;if(i.type===Re){if(!l)throw new Error(\"Float Depth Texture only supported in WebGL2.0\");b=e.DEPTH_COMPONENT32F}else l&&(b=e.DEPTH_COMPONENT16);i.format===Ve&&b===e.DEPTH_COMPONENT&&i.type!==ke&&i.type!==Ae&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),i.type=ke,g=o(i.type)),i.format===He&&(b=e.DEPTH_STENCIL,i.type!==Fe&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),i.type=Fe,g=o(i.type))),n.texImage2D(e.TEXTURE_2D,0,b,d.width,d.height,0,f,g,null)}else if(i.isDataTexture)if(v.length>0&&p){for(var _=0,x=v.length;_-1?n.compressedTexImage2D(e.TEXTURE_2D,_,f,y.width,y.height,0,y.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):n.texImage2D(e.TEXTURE_2D,_,f,y.width,y.height,0,f,g,y.data);else if(v.length>0&&p){for(_=0,x=v.length;_1||i.get(a).__currentAnisotropy)&&(e.texParameterf(n,l.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),i.get(a).__currentAnisotropy=a.anisotropy)}}function g(t,r,a,s){var l=o(r.texture.format),u=o(r.texture.type);n.texImage2D(s,0,l,r.width,r.height,0,l,u,null),e.bindFramebuffer(e.FRAMEBUFFER,t),e.framebufferTexture2D(e.FRAMEBUFFER,a,s,i.get(r.texture).__webglTexture,0),e.bindFramebuffer(e.FRAMEBUFFER,null)}function y(t,n){e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer&&!n.stencilBuffer?(e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)):n.depthBuffer&&n.stencilBuffer?(e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)):e.renderbufferStorage(e.RENDERBUFFER,e.RGBA4,n.width,n.height),e.bindRenderbuffer(e.RENDERBUFFER,null)}function v(t){var n=i.get(t),r=!0===t.isWebGLRenderTargetCube;if(t.depthTexture){if(r)throw new Error(\"target.depthTexture not supported in Cube render targets\");!function(t,n){if(n&&n.isWebGLRenderTargetCube)throw new Error(\"Depth Texture with cube render targets is not supported!\");if(e.bindFramebuffer(e.FRAMEBUFFER,t),!n.depthTexture||!n.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");i.get(n.depthTexture).__webglTexture&&n.depthTexture.image.width===n.width&&n.depthTexture.image.height===n.height||(n.depthTexture.image.width=n.width,n.depthTexture.image.height=n.height,n.depthTexture.needsUpdate=!0),f(n.depthTexture,0);var r=i.get(n.depthTexture).__webglTexture;if(n.depthTexture.format===Ve)e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,r,0);else{if(n.depthTexture.format!==He)throw new Error(\"Unknown depthTexture format\");e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,r,0)}}(n.__webglFramebuffer,t)}else if(r){n.__webglDepthbuffer=[];for(var o=0;o<6;o++)e.bindFramebuffer(e.FRAMEBUFFER,n.__webglFramebuffer[o]),n.__webglDepthbuffer[o]=e.createRenderbuffer(),y(n.__webglDepthbuffer[o],t)}else e.bindFramebuffer(e.FRAMEBUFFER,n.__webglFramebuffer),n.__webglDepthbuffer=e.createRenderbuffer(),y(n.__webglDepthbuffer,t);e.bindFramebuffer(e.FRAMEBUFFER,null)}this.setTexture2D=f,this.setTextureCube=function(t,a){var l=i.get(t);if(6===t.image.length)if(t.version>0&&l.__version!==t.version){l.__image__webglTextureCube||(t.addEventListener(\"dispose\",h),l.__image__webglTextureCube=e.createTexture(),s.textures++),n.activeTexture(e.TEXTURE0+a),n.bindTexture(e.TEXTURE_CUBE_MAP,l.__image__webglTextureCube),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t.flipY);for(var d=t&&t.isCompressedTexture,p=t.image[0]&&t.image[0].isDataTexture,f=[],g=0;g<6;g++)f[g]=d||p?p?t.image[g].image:t.image[g]:u(t.image[g],r.maxCubemapSize);var y=c(f[0]),v=o(t.format),b=o(t.type);m(e.TEXTURE_CUBE_MAP,t,y);for(g=0;g<6;g++)if(d)for(var _,x=f[g].mipmaps,w=0,M=x.length;w-1?n.compressedTexImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+g,w,v,_.width,_.height,0,_.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+g,w,v,_.width,_.height,0,v,b,_.data);else p?n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+g,0,v,f[g].width,f[g].height,0,v,b,f[g].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+g,0,v,v,b,f[g]);t.generateMipmaps&&y&&e.generateMipmap(e.TEXTURE_CUBE_MAP),l.__version=t.version,t.onUpdate&&t.onUpdate(t)}else n.activeTexture(e.TEXTURE0+a),n.bindTexture(e.TEXTURE_CUBE_MAP,l.__image__webglTextureCube)},this.setTextureCubeDynamic=function(t,r){n.activeTexture(e.TEXTURE0+r),n.bindTexture(e.TEXTURE_CUBE_MAP,i.get(t).__webglTexture)},this.setupRenderTarget=function(t){var r=i.get(t),o=i.get(t.texture);t.addEventListener(\"dispose\",p),o.__webglTexture=e.createTexture(),s.textures++;var a=!0===t.isWebGLRenderTargetCube,l=c(t);if(a){r.__webglFramebuffer=[];for(var u=0;u<6;u++)r.__webglFramebuffer[u]=e.createFramebuffer()}else r.__webglFramebuffer=e.createFramebuffer();if(a){n.bindTexture(e.TEXTURE_CUBE_MAP,o.__webglTexture),m(e.TEXTURE_CUBE_MAP,t.texture,l);for(u=0;u<6;u++)g(r.__webglFramebuffer[u],t,e.COLOR_ATTACHMENT0,e.TEXTURE_CUBE_MAP_POSITIVE_X+u);t.texture.generateMipmaps&&l&&e.generateMipmap(e.TEXTURE_CUBE_MAP),n.bindTexture(e.TEXTURE_CUBE_MAP,null)}else n.bindTexture(e.TEXTURE_2D,o.__webglTexture),m(e.TEXTURE_2D,t.texture,l),g(r.__webglFramebuffer,t,e.COLOR_ATTACHMENT0,e.TEXTURE_2D),t.texture.generateMipmaps&&l&&e.generateMipmap(e.TEXTURE_2D),n.bindTexture(e.TEXTURE_2D,null);t.depthBuffer&&v(t)},this.updateRenderTargetMipmap=function(t){var r=t.texture;if(r.generateMipmaps&&c(t)&&r.minFilter!==_e&&r.minFilter!==Me){var o=t&&t.isWebGLRenderTargetCube?e.TEXTURE_CUBE_MAP:e.TEXTURE_2D,a=i.get(r).__webglTexture;n.bindTexture(o,a),e.generateMipmap(o),n.bindTexture(o,null)}}}function sr(){var e={};return{get:function(t){var n=t.uuid,i=e[n];return void 0===i&&(i={},e[n]=i),i},delete:function(t){delete e[t.uuid]},clear:function(){e={}}}}function lr(e,t,n){var i=new function(){var t=!1,n=new Lt,i=null,r=new Lt;return{setMask:function(n){i===n||t||(e.colorMask(n,n,n,n),i=n)},setLocked:function(e){t=e},setClear:function(t,i,o,a,s){!0===s&&(t*=a,i*=a,o*=a),n.set(t,i,o,a),!1===r.equals(n)&&(e.clearColor(t,i,o,a),r.copy(n))},reset:function(){t=!1,i=null,r.set(0,0,0,1)}}},r=new function(){var t=!1,n=null,i=null,r=null;return{setTest:function(t){t?V(e.DEPTH_TEST):H(e.DEPTH_TEST)},setMask:function(i){n===i||t||(e.depthMask(i),n=i)},setFunc:function(t){if(i!==t){if(t)switch(t){case q:e.depthFunc(e.NEVER);break;case X:e.depthFunc(e.ALWAYS);break;case K:e.depthFunc(e.LESS);break;case Z:e.depthFunc(e.LEQUAL);break;case J:e.depthFunc(e.EQUAL);break;case $:e.depthFunc(e.GEQUAL);break;case Q:e.depthFunc(e.GREATER);break;case ee:e.depthFunc(e.NOTEQUAL);break;default:e.depthFunc(e.LEQUAL)}else e.depthFunc(e.LEQUAL);i=t}},setLocked:function(e){t=e},setClear:function(t){r!==t&&(e.clearDepth(t),r=t)},reset:function(){t=!1,n=null,i=null,r=null}}},o=new function(){var t=!1,n=null,i=null,r=null,o=null,a=null,s=null,l=null,u=null;return{setTest:function(t){t?V(e.STENCIL_TEST):H(e.STENCIL_TEST)},setMask:function(i){n===i||t||(e.stencilMask(i),n=i)},setFunc:function(t,n,a){i===t&&r===n&&o===a||(e.stencilFunc(t,n,a),i=t,r=n,o=a)},setOp:function(t,n,i){a===t&&s===n&&l===i||(e.stencilOp(t,n,i),a=t,s=n,l=i)},setLocked:function(e){t=e},setClear:function(t){u!==t&&(e.clearStencil(t),u=t)},reset:function(){t=!1,n=null,i=null,r=null,o=null,a=null,s=null,l=null,u=null}}},a=e.getParameter(e.MAX_VERTEX_ATTRIBS),s=new Uint8Array(a),d=new Uint8Array(a),h=new Uint8Array(a),p={},f=null,m=null,g=null,y=null,v=null,b=null,_=null,x=null,w=!1,M=null,S=null,A=null,R=null,L=null,I=null,D=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),N=parseFloat(/^WebGL\\ ([0-9])/.exec(e.getParameter(e.VERSION))[1]),F=parseFloat(N)>=1,z=null,B={},U=new Lt,j=new Lt;function W(t,n,i){var r=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(var a=0;a0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return\"highp\";t=\"mediump\"}return\"mediump\"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}var o=void 0!==n.precision?n.precision:\"highp\",a=r(o);a!==o&&(console.warn(\"THREE.WebGLRenderer:\",o,\"not supported, using\",a,\"instead.\"),o=a);var s=!0===n.logarithmicDepthBuffer&&!!t.get(\"EXT_frag_depth\"),l=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),c=e.getParameter(e.MAX_TEXTURE_SIZE),d=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),h=e.getParameter(e.MAX_VERTEX_ATTRIBS),p=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),f=e.getParameter(e.MAX_VARYING_VECTORS),m=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),g=u>0,y=!!t.get(\"OES_texture_float\");return{getMaxAnisotropy:function(){if(void 0!==i)return i;var n=t.get(\"EXT_texture_filter_anisotropic\");return i=null!==n?e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:r,precision:o,logarithmicDepthBuffer:s,maxTextures:l,maxVertexTextures:u,maxTextureSize:c,maxCubemapSize:d,maxAttributes:h,maxVertexUniforms:p,maxVaryings:f,maxFragmentUniforms:m,vertexTextures:g,floatFragmentTextures:y,floatVertexTextures:g&&y}}function cr(e){var t={};return{get:function(n){if(void 0!==t[n])return t[n];var i;switch(n){case\"WEBGL_depth_texture\":i=e.getExtension(\"WEBGL_depth_texture\")||e.getExtension(\"MOZ_WEBGL_depth_texture\")||e.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":i=e.getExtension(\"EXT_texture_filter_anisotropic\")||e.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||e.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":i=e.getExtension(\"WEBGL_compressed_texture_s3tc\")||e.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||e.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":i=e.getExtension(\"WEBGL_compressed_texture_pvrtc\")||e.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;case\"WEBGL_compressed_texture_etc1\":i=e.getExtension(\"WEBGL_compressed_texture_etc1\");break;default:i=e.getExtension(n)}return null===i&&console.warn(\"THREE.WebGLRenderer: \"+n+\" extension not supported.\"),t[n]=i,i}}}function dr(){var e=this,t=null,n=0,i=!1,r=!1,o=new $n,a=new Jn,s={value:null,needsUpdate:!1};function l(){s.value!==t&&(s.value=t,s.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function u(t,n,i,r){var l=null!==t?t.length:0,u=null;if(0!==l){if(u=s.value,!0!==r||null===u){var c=i+4*l,d=n.matrixWorldInverse;a.getNormalMatrix(d),(null===u||u.length=0&&e.numSupportedMorphTargets++}if(e.morphNormals){e.numSupportedMorphNormals=0;for(c=0;c=0&&e.numSupportedMorphNormals++}var d=i.__webglShader.uniforms;(e.isShaderMaterial||e.isRawShaderMaterial)&&!0!==e.clipping||(i.numClippingPlanes=le.numPlanes,i.numIntersection=le.numIntersection,d.clippingPlanes=le.uniform),i.fog=t,i.lightsHash=ge.hash,e.lights&&(d.ambientLightColor.value=ge.ambient,d.directionalLights.value=ge.directional,d.spotLights.value=ge.spot,d.rectAreaLights.value=ge.rectArea,d.pointLights.value=ge.point,d.hemisphereLights.value=ge.hemi,d.directionalShadowMap.value=ge.directionalShadowMap,d.directionalShadowMatrix.value=ge.directionalShadowMatrix,d.spotShadowMap.value=ge.spotShadowMap,d.spotShadowMatrix.value=ge.spotShadowMatrix,d.pointShadowMap.value=ge.pointShadowMap,d.pointShadowMatrix.value=ge.pointShadowMatrix);var h=i.program.getUniforms(),p=Mn.seqWithValue(h.seq,d);i.uniformsList=p}(n,t,i),n.needsUpdate=!1);var a,s,l=!1,u=!1,c=!1,d=r.program,h=d.getUniforms(),p=r.__webglShader.uniforms;if(d.id!==T&&(M.useProgram(d.program),T=d.id,l=!0,u=!0,c=!0),n.id!==k&&(k=n.id,u=!0),l||e!==q){if(h.set(M,e,\"projectionMatrix\"),it.logarithmicDepthBuffer&&h.setValue(M,\"logDepthBufFC\",2/(Math.log(e.far+1)/Math.LN2)),e!==q&&(q=e,u=!0,c=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshStandardMaterial||n.envMap){var f=h.map.cameraPosition;void 0!==f&&f.setValue(M,pe.setFromMatrixPosition(e.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.skinning)&&h.setValue(M,\"viewMatrix\",e.matrixWorldInverse),h.set(M,S,\"toneMappingExposure\"),h.set(M,S,\"toneMappingWhitePoint\")}if(n.skinning){h.setOptional(M,i,\"bindMatrix\"),h.setOptional(M,i,\"bindMatrixInverse\");var m=i.skeleton;m&&(it.floatVertexTextures&&m.useVertexTexture?(h.set(M,m,\"boneTexture\"),h.set(M,m,\"boneTextureWidth\"),h.set(M,m,\"boneTextureHeight\")):h.setOptional(M,m,\"boneMatrices\"))}return u&&(n.lights&&(s=c,(a=p).ambientLightColor.needsUpdate=s,a.directionalLights.needsUpdate=s,a.pointLights.needsUpdate=s,a.spotLights.needsUpdate=s,a.rectAreaLights.needsUpdate=s,a.hemisphereLights.needsUpdate=s),t&&n.fog&&function(e,t){e.fogColor.value=t.color,t.isFog?(e.fogNear.value=t.near,e.fogFar.value=t.far):t.isFogExp2&&(e.fogDensity.value=t.density)}(p,t),(n.isMeshBasicMaterial||n.isMeshLambertMaterial||n.isMeshPhongMaterial||n.isMeshStandardMaterial||n.isMeshNormalMaterial||n.isMeshDepthMaterial)&&function(e,t){e.opacity.value=t.opacity,e.diffuse.value=t.color,t.emissive&&e.emissive.value.copy(t.emissive).multiplyScalar(t.emissiveIntensity);e.map.value=t.map,e.specularMap.value=t.specularMap,e.alphaMap.value=t.alphaMap,t.lightMap&&(e.lightMap.value=t.lightMap,e.lightMapIntensity.value=t.lightMapIntensity);t.aoMap&&(e.aoMap.value=t.aoMap,e.aoMapIntensity.value=t.aoMapIntensity);var n;t.map?n=t.map:t.specularMap?n=t.specularMap:t.displacementMap?n=t.displacementMap:t.normalMap?n=t.normalMap:t.bumpMap?n=t.bumpMap:t.roughnessMap?n=t.roughnessMap:t.metalnessMap?n=t.metalnessMap:t.alphaMap?n=t.alphaMap:t.emissiveMap&&(n=t.emissiveMap);if(void 0!==n){n.isWebGLRenderTarget&&(n=n.texture);var i=n.offset,r=n.repeat;e.offsetRepeat.value.set(i.x,i.y,r.x,r.y)}e.envMap.value=t.envMap,e.flipEnvMap.value=t.envMap&&t.envMap.isCubeTexture?-1:1,e.reflectivity.value=t.reflectivity,e.refractionRatio.value=t.refractionRatio}(p,n),n.isLineBasicMaterial?Ut(p,n):n.isLineDashedMaterial?(Ut(p,n),function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(p,n)):n.isPointsMaterial?function(e,t){if(e.diffuse.value=t.color,e.opacity.value=t.opacity,e.size.value=t.size*ne,e.scale.value=.5*te,e.map.value=t.map,null!==t.map){var n=t.map.offset,i=t.map.repeat;e.offsetRepeat.value.set(n.x,n.y,i.x,i.y)}}(p,n):n.isMeshLambertMaterial?function(e,t){t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap)}(p,n):n.isMeshToonMaterial?function(e,t){jt(e,t),t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(p,n):n.isMeshPhongMaterial?jt(p,n):n.isMeshPhysicalMaterial?function(e,t){e.clearCoat.value=t.clearCoat,e.clearCoatRoughness.value=t.clearCoatRoughness,Wt(e,t)}(p,n):n.isMeshStandardMaterial?Wt(p,n):n.isMeshDepthMaterial?n.displacementMap&&(p.displacementMap.value=n.displacementMap,p.displacementScale.value=n.displacementScale,p.displacementBias.value=n.displacementBias):n.isMeshNormalMaterial&&function(e,t){t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale);t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale));t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}(p,n),void 0!==p.ltcMat&&(p.ltcMat.value=THREE.UniformsLib.LTC_MAT_TEXTURE),void 0!==p.ltcMag&&(p.ltcMag.value=THREE.UniformsLib.LTC_MAG_TEXTURE),Mn.upload(M,r.uniformsList,p,S)),h.set(M,i,\"modelViewMatrix\"),h.set(M,i,\"normalMatrix\"),h.setValue(M,\"modelMatrix\",i.matrixWorld),d}function Ut(e,t){e.diffuse.value=t.color,e.opacity.value=t.opacity}function jt(e,t){e.specular.value=t.specular,e.shininess.value=Math.max(t.shininess,1e-4),t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale)),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias)}function Wt(e,t){e.roughness.value=t.roughness,e.metalness.value=t.metalness,t.roughnessMap&&(e.roughnessMap.value=t.roughnessMap),t.metalnessMap&&(e.metalnessMap.value=t.metalnessMap),t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap),t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale)),t.displacementMap&&(e.displacementMap.value=t.displacementMap,e.displacementScale.value=t.displacementScale,e.displacementBias.value=t.displacementBias),t.envMap&&(e.envMapIntensity.value=t.envMapIntensity)}function Gt(e){var t;if(e===ye)return M.REPEAT;if(e===ve)return M.CLAMP_TO_EDGE;if(e===be)return M.MIRRORED_REPEAT;if(e===_e)return M.NEAREST;if(e===xe)return M.NEAREST_MIPMAP_NEAREST;if(e===we)return M.NEAREST_MIPMAP_LINEAR;if(e===Me)return M.LINEAR;if(e===Se)return M.LINEAR_MIPMAP_NEAREST;if(e===Ee)return M.LINEAR_MIPMAP_LINEAR;if(e===Te)return M.UNSIGNED_BYTE;if(e===Ie)return M.UNSIGNED_SHORT_4_4_4_4;if(e===De)return M.UNSIGNED_SHORT_5_5_5_1;if(e===Ne)return M.UNSIGNED_SHORT_5_6_5;if(e===Ce)return M.BYTE;if(e===Oe)return M.SHORT;if(e===ke)return M.UNSIGNED_SHORT;if(e===Pe)return M.INT;if(e===Ae)return M.UNSIGNED_INT;if(e===Re)return M.FLOAT;if(e===Le&&null!==(t=nt.get(\"OES_texture_half_float\")))return t.HALF_FLOAT_OES;if(e===ze)return M.ALPHA;if(e===Be)return M.RGB;if(e===Ue)return M.RGBA;if(e===je)return M.LUMINANCE;if(e===We)return M.LUMINANCE_ALPHA;if(e===Ve)return M.DEPTH_COMPONENT;if(e===He)return M.DEPTH_STENCIL;if(e===A)return M.FUNC_ADD;if(e===R)return M.FUNC_SUBTRACT;if(e===L)return M.FUNC_REVERSE_SUBTRACT;if(e===N)return M.ZERO;if(e===F)return M.ONE;if(e===z)return M.SRC_COLOR;if(e===B)return M.ONE_MINUS_SRC_COLOR;if(e===U)return M.SRC_ALPHA;if(e===j)return M.ONE_MINUS_SRC_ALPHA;if(e===W)return M.DST_ALPHA;if(e===G)return M.ONE_MINUS_DST_ALPHA;if(e===V)return M.DST_COLOR;if(e===H)return M.ONE_MINUS_DST_COLOR;if(e===Y)return M.SRC_ALPHA_SATURATE;if((e===Ye||e===qe||e===Xe||e===Ke)&&null!==(t=nt.get(\"WEBGL_compressed_texture_s3tc\"))){if(e===Ye)return t.COMPRESSED_RGB_S3TC_DXT1_EXT;if(e===qe)return t.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(e===Xe)return t.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(e===Ke)return t.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((e===Ze||e===Je||e===$e||e===Qe)&&null!==(t=nt.get(\"WEBGL_compressed_texture_pvrtc\"))){if(e===Ze)return t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(e===Je)return t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(e===$e)return t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(e===Qe)return t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(e===et&&null!==(t=nt.get(\"WEBGL_compressed_texture_etc1\")))return t.COMPRESSED_RGB_ETC1_WEBGL;if((e===I||e===D)&&null!==(t=nt.get(\"EXT_blend_minmax\"))){if(e===I)return t.MIN_EXT;if(e===D)return t.MAX_EXT}return e===Fe&&null!==(t=nt.get(\"WEBGL_depth_texture\"))?t.UNSIGNED_INT_24_8_WEBGL:0}this.getContext=function(){return M},this.getContextAttributes=function(){return M.getContextAttributes()},this.forceContextLoss=function(){nt.get(\"WEBGL_lose_context\").loseContext()},this.getMaxAnisotropy=function(){return it.getMaxAnisotropy()},this.getPrecision=function(){return it.precision},this.getPixelRatio=function(){return ne},this.setPixelRatio=function(e){void 0!==e&&(ne=e,this.setSize(ae.z,ae.w,!1))},this.getSize=function(){return{width:ee,height:te}},this.setSize=function(e,n,i){ee=e,te=n,t.width=e*ne,t.height=n*ne,!1!==i&&(t.style.width=e+\"px\",t.style.height=n+\"px\"),this.setViewport(0,0,e,n)},this.setViewport=function(e,t,n,i){rt.viewport(ae.set(e,t,n,i))},this.setScissor=function(e,t,n,i){rt.scissor(ie.set(e,t,n,i))},this.setScissorTest=function(e){rt.setScissorTest(re=e)},this.getClearColor=function(){return $},this.setClearColor=function(e,t){$.set(e),Q=void 0!==t?t:1,rt.buffers.color.setClear($.r,$.g,$.b,Q,l)},this.getClearAlpha=function(){return Q},this.setClearAlpha=function(e){Q=e,rt.buffers.color.setClear($.r,$.g,$.b,Q,l)},this.clear=function(e,t,n){var i=0;(void 0===e||e)&&(i|=M.COLOR_BUFFER_BIT),(void 0===t||t)&&(i|=M.DEPTH_BUFFER_BIT),(void 0===n||n)&&(i|=M.STENCIL_BUFFER_BIT),M.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.clearTarget=function(e,t,n,i){this.setRenderTarget(e),this.clear(t,n,i)},this.resetGLState=xt,this.dispose=function(){f=[],m=-1,d=[],p=-1,t.removeEventListener(\"webglcontextlost\",Tt,!1)},this.renderBufferImmediate=function(e,t,n){rt.initAttributes();var i=ot.get(e);e.hasPositions&&!i.position&&(i.position=M.createBuffer()),e.hasNormals&&!i.normal&&(i.normal=M.createBuffer()),e.hasUvs&&!i.uv&&(i.uv=M.createBuffer()),e.hasColors&&!i.color&&(i.color=M.createBuffer());var r=t.getAttributes();if(e.hasPositions&&(M.bindBuffer(M.ARRAY_BUFFER,i.position),M.bufferData(M.ARRAY_BUFFER,e.positionArray,M.DYNAMIC_DRAW),rt.enableAttribute(r.position),M.vertexAttribPointer(r.position,3,M.FLOAT,!1,0,0)),e.hasNormals){if(M.bindBuffer(M.ARRAY_BUFFER,i.normal),!n.isMeshPhongMaterial&&!n.isMeshStandardMaterial&&!n.isMeshNormalMaterial&&n.shading===_)for(var o=0,a=3*e.count;o8&&(c.length=8);var f=n.morphAttributes;for(d=0,h=c.length;d=0){var c=o[l];if(void 0!==c){var d=c.normalized,h=c.itemSize,p=st.getAttributeProperties(c),f=p.__webglBuffer,m=p.type,g=p.bytesPerElement;if(c.isInterleavedBufferAttribute){var y=c.data,v=y.stride,b=c.offset;y&&y.isInstancedInterleavedBuffer?(rt.enableAttributeAndDivisor(u,y.meshPerAttribute,r),void 0===n.maxInstancedCount&&(n.maxInstancedCount=y.meshPerAttribute*y.count)):rt.enableAttribute(u),M.bindBuffer(M.ARRAY_BUFFER,f),M.vertexAttribPointer(u,h,m,d,v*g,(i*v+b)*g)}else c.isInstancedBufferAttribute?(rt.enableAttributeAndDivisor(u,c.meshPerAttribute,r),void 0===n.maxInstancedCount&&(n.maxInstancedCount=c.meshPerAttribute*c.count)):rt.enableAttribute(u),M.bindBuffer(M.ARRAY_BUFFER,f),M.vertexAttribPointer(u,h,m,d,0,i*h*g)}else if(void 0!==s){var _=s[l];if(void 0!==_)switch(_.length){case 2:M.vertexAttrib2fv(u,_);break;case 3:M.vertexAttrib3fv(u,_);break;case 4:M.vertexAttrib4fv(u,_);break;default:M.vertexAttrib1fv(u,_)}}}}rt.disableUnusedAttributes()}(i,a,n),null!==m&&M.bindBuffer(M.ELEMENT_ARRAY_BUFFER,st.getAttributeBuffer(m)));var x=0;null!==m?x=m.count:void 0!==b&&(x=b.count);var w=n.drawRange.start*_,S=n.drawRange.count*_,E=null!==o?o.start*_:0,T=null!==o?o.count*_:1/0,C=Math.max(w,E),O=Math.min(x,w+S,E+T)-1,k=Math.max(0,O-C+1);if(0!==k){if(r.isMesh)if(!0===i.wireframe)rt.setLineWidth(i.wireframeLinewidth*bt()),v.setMode(M.LINES);else switch(r.drawMode){case ct:v.setMode(M.TRIANGLES);break;case dt:v.setMode(M.TRIANGLE_STRIP);break;case ht:v.setMode(M.TRIANGLE_FAN)}else if(r.isLine){var A=i.linewidth;void 0===A&&(A=1),rt.setLineWidth(A*bt()),r.isLineSegments?v.setMode(M.LINES):v.setMode(M.LINE_STRIP)}else r.isPoints&&v.setMode(M.POINTS);n&&n.isInstancedBufferGeometry?n.maxInstancedCount>0&&v.renderInstances(n,C,k):v.render(C,k)}},this.render=function(e,t,n,i){if(void 0===t||!0===t.isCamera){P=\"\",k=-1,q=null,!0===e.autoUpdate&&e.updateMatrixWorld(),null===t.parent&&t.updateMatrixWorld(),t.matrixWorldInverse.getInverse(t.matrixWorld),he.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),se.setFromMatrix(he),c.length=0,p=-1,m=-1,y.length=0,x.length=0,ce=this.localClippingEnabled,ue=le.init(this.clippingPlanes,ce,t),function e(t,n){if(!1===t.visible)return;var i=0!=(t.layers.mask&n.layers.mask);if(i)if(t.isLight)c.push(t);else if(t.isSprite)!1!==t.frustumCulled&&!0!==(p=t,de.center.set(0,0,0),de.radius=.7071067811865476,de.applyMatrix4(p.matrixWorld),It(de))||y.push(t);else if(t.isLensFlare)x.push(t);else if(t.isImmediateRenderObject)!0===S.sortObjects&&(pe.setFromMatrixPosition(t.matrixWorld),pe.applyMatrix4(he)),Rt(t,null,t.material,pe.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.update(),!1===t.frustumCulled||!0===function(e){var t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere();return de.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),It(de)}(t))){var r=t.material;if(!0===r.visible){!0===S.sortObjects&&(pe.setFromMatrixPosition(t.matrixWorld),pe.applyMatrix4(he));var o=st.update(t);if(r.isMultiMaterial)for(var a=o.groups,s=r.materials,l=0,u=a.length;l=it.maxTextures&&console.warn(\"WebGLRenderer: trying to use \"+e+\" texture units while this GPU supports only \"+it.maxTextures),J+=1,e},this.setTexture2D=(Mt=!1,function(e,t){e&&e.isWebGLRenderTarget&&(Mt||(console.warn(\"THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead.\"),Mt=!0),e=e.texture),at.setTexture2D(e,t)}),this.setTexture=function(){var e=!1;return function(t,n){e||(console.warn(\"THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead.\"),e=!0),at.setTexture2D(t,n)}}(),this.setTextureCube=function(){var e=!1;return function(t,n){t&&t.isWebGLRenderTargetCube&&(e||(console.warn(\"THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),e=!0),t=t.texture),t&&t.isCubeTexture||Array.isArray(t.image)&&6===t.image.length?at.setTextureCube(t,n):at.setTextureCubeDynamic(t,n)}}(),this.getCurrentRenderTarget=function(){return C},this.setRenderTarget=function(e){C=e,e&&void 0===ot.get(e).__webglFramebuffer&&at.setupRenderTarget(e);var t,n=e&&e.isWebGLRenderTargetCube;if(e){var i=ot.get(e);t=n?i.__webglFramebuffer[e.activeCubeFace]:i.__webglFramebuffer,X.copy(e.scissor),K=e.scissorTest,Z.copy(e.viewport)}else t=null,X.copy(ie).multiplyScalar(ne),K=re,Z.copy(ae).multiplyScalar(ne);if(O!==t&&(M.bindFramebuffer(M.FRAMEBUFFER,t),O=t),rt.scissor(X),rt.setScissorTest(K),rt.viewport(Z),n){var r=ot.get(e.texture);M.framebufferTexture2D(M.FRAMEBUFFER,M.COLOR_ATTACHMENT0,M.TEXTURE_CUBE_MAP_POSITIVE_X+e.activeCubeFace,r.__webglTexture,e.activeMipMapLevel)}},this.readRenderTargetPixels=function(e,t,n,i,r,o){if(!1!==(e&&e.isWebGLRenderTarget)){var a=ot.get(e).__webglFramebuffer;if(a){var s=!1;a!==O&&(M.bindFramebuffer(M.FRAMEBUFFER,a),s=!0);try{var l=e.texture,u=l.format,c=l.type;if(u!==Ue&&Gt(u)!==M.getParameter(M.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");if(!(c===Te||Gt(c)===M.getParameter(M.IMPLEMENTATION_COLOR_READ_TYPE)||c===Re&&(nt.get(\"OES_texture_float\")||nt.get(\"WEBGL_color_buffer_float\"))||c===Le&&nt.get(\"EXT_color_buffer_half_float\")))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");M.checkFramebufferStatus(M.FRAMEBUFFER)===M.FRAMEBUFFER_COMPLETE?t>=0&&t<=e.width-i&&n>=0&&n<=e.height-r&&M.readPixels(t,n,i,r,Gt(u),Gt(c),o):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{s&&M.bindFramebuffer(M.FRAMEBUFFER,O)}}}else console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\")}}function pr(e,t){this.name=\"\",this.color=new Tn(e),this.density=void 0!==t?t:25e-5}function fr(e,t,n){this.name=\"\",this.color=new Tn(e),this.near=void 0!==t?t:1,this.far=void 0!==n?n:1e3}function mr(){hi.call(this),this.type=\"Scene\",this.background=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0}function gr(e,t,n,i,r){hi.call(this),this.lensFlares=[],this.positionScreen=new Ft,this.customUpdateCallback=void 0,void 0!==e&&this.add(e,t,n,i,r)}function yr(e){Yn.call(this),this.type=\"SpriteMaterial\",this.color=new Tn(16777215),this.map=null,this.rotation=0,this.fog=!1,this.lights=!1,this.setValues(e)}function vr(e){hi.call(this),this.type=\"Sprite\",this.material=void 0!==e?e:new yr}function br(){hi.call(this),this.type=\"LOD\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function _r(e,t,n){if(this.useVertexTexture=void 0===n||n,this.identityMatrix=new zt,e=e||[],this.bones=e.slice(0),this.useVertexTexture){var i=Math.sqrt(4*this.bones.length);i=Mt.nextPowerOfTwo(Math.ceil(i)),i=Math.max(i,4),this.boneTextureWidth=i,this.boneTextureHeight=i,this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new On(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,Ue,Re)}else this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===t)this.calculateInverses();else if(this.bones.length===t.length)this.boneInverses=t.slice(0);else{console.warn(\"THREE.Skeleton bonInverses is the wrong length.\"),this.boneInverses=[];for(var r=0,o=this.bones.length;r=e.HAVE_CURRENT_DATA&&(u.needsUpdate=!0)}()}function Pr(e,t,n,i,r,o,a,s,l,u,c,d){Rt.call(this,null,o,a,s,l,u,i,r,c,d),this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}function Ar(e,t,n,i,r,o,a,s,l){Rt.call(this,e,t,n,i,r,o,a,s,l),this.needsUpdate=!0}function Rr(e,t,n,i,r,o,a,s,l,u){if((u=void 0!==u?u:Ve)!==Ve&&u!==He)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===n&&u===Ve&&(n=ke),void 0===n&&u===He&&(n=Fe),Rt.call(this,null,i,r,o,a,s,u,n,l),this.image={width:e,height:t},this.magFilter=void 0!==a?a:_e,this.minFilter=void 0!==s?s:_e,this.flipY=!1,this.generateMipmaps=!1}function Lr(e){Li.call(this),this.type=\"WireframeGeometry\";var t,n,i,r,o,a,s,l,u=[],c=[0,0],d={},h=[\"a\",\"b\",\"c\"];if(e&&e.isGeometry){var p=e.faces;for(t=0,i=p.length;t.9&&a<.1&&(t<.2&&(o[e+0]+=1),n<.2&&(o[e+2]+=1),i<.2&&(o[e+4]+=1))}}()}(),this.addAttribute(\"position\",new Ei(r,3)),this.addAttribute(\"normal\",new Ei(r.slice(),3)),this.addAttribute(\"uv\",new Ei(o,2)),this.normalizeNormals()}function zr(e,t){Ri.call(this),this.type=\"TetrahedronGeometry\",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Br(e,t)),this.mergeVertices()}function Br(e,t){Fr.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],e,t),this.type=\"TetrahedronBufferGeometry\",this.parameters={radius:e,detail:t}}function Ur(e,t){Ri.call(this),this.type=\"OctahedronGeometry\",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new jr(e,t)),this.mergeVertices()}function jr(e,t){Fr.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],e,t),this.type=\"OctahedronBufferGeometry\",this.parameters={radius:e,detail:t}}function Wr(e,t){Ri.call(this),this.type=\"IcosahedronGeometry\",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Gr(e,t)),this.mergeVertices()}function Gr(e,t){var n=(1+Math.sqrt(5))/2,i=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1];Fr.call(this,i,[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],e,t),this.type=\"IcosahedronBufferGeometry\",this.parameters={radius:e,detail:t}}function Vr(e,t){Ri.call(this),this.type=\"DodecahedronGeometry\",this.parameters={radius:e,detail:t},this.fromBufferGeometry(new Hr(e,t)),this.mergeVertices()}function Hr(e,t){var n=(1+Math.sqrt(5))/2,i=1/n,r=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i];Fr.call(this,r,[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type=\"DodecahedronBufferGeometry\",this.parameters={radius:e,detail:t}}function Yr(e,t,n,i,r,o){Ri.call(this),this.type=\"TubeGeometry\",this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:i,closed:r},void 0!==o&&console.warn(\"THREE.TubeGeometry: taper has been removed.\");var a=new qr(e,t,n,i,r);this.tangents=a.tangents,this.normals=a.normals,this.binormals=a.binormals,this.fromBufferGeometry(a),this.mergeVertices()}function qr(e,t,n,i,r){Li.call(this),this.type=\"TubeBufferGeometry\",this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:i,closed:r},t=t||64,n=n||1,i=i||8,r=r||!1;var o=e.computeFrenetFrames(t,r);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;var a,s,l=new Ft,u=new Ft,c=new St,d=[],h=[],p=[],f=[];function m(r){var a=e.getPointAt(r/t),c=o.normals[r],p=o.binormals[r];for(s=0;s<=i;s++){var f=s/i*Math.PI*2,m=Math.sin(f),g=-Math.cos(f);u.x=g*c.x+m*p.x,u.y=g*c.y+m*p.y,u.z=g*c.z+m*p.z,u.normalize(),h.push(u.x,u.y,u.z),l.x=a.x+n*u.x,l.y=a.y+n*u.y,l.z=a.z+n*u.z,d.push(l.x,l.y,l.z)}}!function(){for(a=0;athis.scale.x*this.scale.y/4||t.push({distance:Math.sqrt(n),point:this.position,face:null,object:this})}),clone:function(){return new this.constructor(this.material).copy(this)}}),br.prototype=Object.assign(Object.create(hi.prototype),{constructor:br,copy:function(e){hi.prototype.copy.call(this,e,!1);for(var t=e.levels,n=0,i=t.length;n1){e.setFromMatrixPosition(n.matrixWorld),t.setFromMatrixPosition(this.matrixWorld);var r=e.distanceTo(t);i[0].object.visible=!0;for(var o=1,a=i.length;o=i[o].distance;o++)i[o-1].object.visible=!1,i[o].object.visible=!0;for(;oa))h.applyMatrix4(this.matrixWorld),(M=i.ray.origin.distanceTo(h))i.far||r.push({distance:M,point:d.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}else for(y=0,v=m.length/3-1;ya))h.applyMatrix4(this.matrixWorld),(M=i.ray.origin.distanceTo(h))i.far||r.push({distance:M,point:d.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}else if(s.isGeometry){var x=s.vertices,w=x.length;for(y=0;ya))h.applyMatrix4(this.matrixWorld),(M=i.ray.origin.distanceTo(h))i.far||r.push({distance:M,point:d.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Er.prototype=Object.assign(Object.create(Sr.prototype),{constructor:Er,isLineSegments:!0}),Tr.prototype=Object.create(Yn.prototype),Tr.prototype.constructor=Tr,Tr.prototype.isPointsMaterial=!0,Tr.prototype.copy=function(e){return Yn.prototype.copy.call(this,e),this.color.copy(e.color),this.map=e.map,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this},Cr.prototype=Object.assign(Object.create(hi.prototype),{constructor:Cr,isPoints:!0,raycast:function(){var e=new zt,t=new ti,n=new Zn;return function(i,r){var o=this,a=this.geometry,s=this.matrixWorld,l=i.params.Points.threshold;if(null===a.boundingSphere&&a.computeBoundingSphere(),n.copy(a.boundingSphere),n.applyMatrix4(s),!1!==i.ray.intersectsSphere(n)){e.getInverse(s),t.copy(i.ray).applyMatrix4(e);var u=l/((this.scale.x+this.scale.y+this.scale.z)/3),c=u*u,d=new Ft;if(a.isBufferGeometry){var h=a.index,p=a.attributes.position.array;if(null!==h)for(var f=h.array,m=0,g=f.length;mi.far)return;r.push({distance:u,distanceToRay:Math.sqrt(a),point:l.clone(),index:n,face:null,object:o})}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Or.prototype=Object.assign(Object.create(hi.prototype),{constructor:Or}),kr.prototype=Object.create(Rt.prototype),kr.prototype.constructor=kr,Pr.prototype=Object.create(Rt.prototype),Pr.prototype.constructor=Pr,Pr.prototype.isCompressedTexture=!0,Ar.prototype=Object.create(Rt.prototype),Ar.prototype.constructor=Ar,Rr.prototype=Object.create(Rt.prototype),Rr.prototype.constructor=Rr,Rr.prototype.isDepthTexture=!0,Lr.prototype=Object.create(Li.prototype),Lr.prototype.constructor=Lr,Ir.prototype=Object.create(Ri.prototype),Ir.prototype.constructor=Ir,Dr.prototype=Object.create(Li.prototype),Dr.prototype.constructor=Dr,Nr.prototype=Object.create(Ri.prototype),Nr.prototype.constructor=Nr,Fr.prototype=Object.create(Li.prototype),Fr.prototype.constructor=Fr,zr.prototype=Object.create(Ri.prototype),zr.prototype.constructor=zr,Br.prototype=Object.create(Fr.prototype),Br.prototype.constructor=Br,Ur.prototype=Object.create(Ri.prototype),Ur.prototype.constructor=Ur,jr.prototype=Object.create(Fr.prototype),jr.prototype.constructor=jr,Wr.prototype=Object.create(Ri.prototype),Wr.prototype.constructor=Wr,Gr.prototype=Object.create(Fr.prototype),Gr.prototype.constructor=Gr,Vr.prototype=Object.create(Ri.prototype),Vr.prototype.constructor=Vr,Hr.prototype=Object.create(Fr.prototype),Hr.prototype.constructor=Hr,Yr.prototype=Object.create(Ri.prototype),Yr.prototype.constructor=Yr,qr.prototype=Object.create(Li.prototype),qr.prototype.constructor=qr,Xr.prototype=Object.create(Ri.prototype),Xr.prototype.constructor=Xr,Kr.prototype=Object.create(Li.prototype),Kr.prototype.constructor=Kr,Zr.prototype=Object.create(Ri.prototype),Zr.prototype.constructor=Zr,Jr.prototype=Object.create(Li.prototype),Jr.prototype.constructor=Jr;var $r={area:function(e){for(var t=e.length,n=0,i=t-1,r=0;r=-Number.EPSILON&&w>=-Number.EPSILON&&x>=-Number.EPSILON))return!1;return!0}return function(t,n){var i=t.length;if(i<3)return null;var r,o,a,s=[],l=[],u=[];if($r.area(t)>0)for(o=0;o2;){if(d--<=0)return console.warn(\"THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()\"),n?u:s;if(c<=(r=o)&&(r=0),c<=(o=r+1)&&(o=0),c<=(a=o+1)&&(a=0),e(t,r,o,a,c,l)){var h,p,f,m,g;for(h=l[r],p=l[o],f=l[a],s.push([t[h],t[p],t[f]]),u.push([l[r],l[o],l[a]]),m=o,g=o+1;g2&&e[t-1].equals(e[0])&&e.pop()}function i(e,t,n){return e.x!==t.x?e.xNumber.EPSILON){var f;if(h>0){if(p<0||p>h)return[];if((f=u*c-l*d)<0||f>h)return[]}else{if(p>0||p0||fM?[]:v===M?o?[]:[g]:b<=M?[g,y]:[g,x])}function o(e,t,n,i){var r=t.x-e.x,o=t.y-e.y,a=n.x-e.x,s=n.y-e.y,l=i.x-e.x,u=i.y-e.y,c=r*s-o*a,d=r*u-o*l;if(Math.abs(c)>Number.EPSILON){var h=l*s-u*a;return c>0?d>=0&&h>=0:d>=0||h>=0}return d>0}n(e),t.forEach(n);for(var a,s,l,u,c,d,h={},p=e.concat(),f=0,m=t.length;fr&&(s=0);var l=o(i[e],i[a],i[s],n[t]);if(!l)return!1;var u=n.length-1,c=t-1;c<0&&(c=u);var d=t+1;return d>u&&(d=0),!!(l=o(n[t],n[c],n[d],i[e]))}function s(e,t){var n,o;for(n=0;n0)return!0;return!1}var l=[];function u(e,n){var i,o,a,s;for(i=0;i0)return!0;return!1}for(var c,d,h,p,f,m,g,y,v,b,_=[],x=0,w=t.length;x0;){if(--S<0){console.log(\"Infinite Loop! Holes left:\"+l.length+\", Probably Hole outside Shape!\");break}for(d=M;d=0)break;_[m]=!0}if(c>=0)break}}return i}(e,t),y=$r.triangulate(g,!1);for(a=0,s=y.length;a0)&&f.push(x,w,S),(l!==n-1||u0&&y(!0),t>0&&y(!1)),this.setIndex(u),this.addAttribute(\"position\",new Ei(c,3)),this.addAttribute(\"normal\",new Ei(d,3)),this.addAttribute(\"uv\",new Ei(h,2))}function po(e,t,n,i,r,o,a){co.call(this,0,e,t,n,i,r,o,a),this.type=\"ConeGeometry\",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:o,thetaLength:a}}function fo(e,t,n,i,r,o,a){ho.call(this,0,e,t,n,i,r,o,a),this.type=\"ConeBufferGeometry\",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:o,thetaLength:a}}function mo(e,t,n,i){Ri.call(this),this.type=\"CircleGeometry\",this.parameters={radius:e,segments:t,thetaStart:n,thetaLength:i},this.fromBufferGeometry(new go(e,t,n,i))}function go(e,t,n,i){Li.call(this),this.type=\"CircleBufferGeometry\",this.parameters={radius:e,segments:t,thetaStart:n,thetaLength:i},e=e||50,t=void 0!==t?Math.max(3,t):8,n=void 0!==n?n:0,i=void 0!==i?i:2*Math.PI;var r,o,a=[],s=[],l=[],u=[],c=new Ft,d=new St;for(s.push(0,0,0),l.push(0,0,1),u.push(.5,.5),o=0,r=3;o<=t;o++,r+=3){var h=n+o/t*i;c.x=e*Math.cos(h),c.y=e*Math.sin(h),s.push(c.x,c.y,c.z),l.push(0,0,1),d.x=(s[r]/e+1)/2,d.y=(s[r+1]/e+1)/2,u.push(d.x,d.y)}for(r=1;r<=t;r++)a.push(r,r+1,0);this.setIndex(a),this.addAttribute(\"position\",new Ei(s,3)),this.addAttribute(\"normal\",new Ei(l,3)),this.addAttribute(\"uv\",new Ei(u,2))}Qr.prototype=Object.create(Ri.prototype),Qr.prototype.constructor=Qr,Qr.prototype.addShapeList=function(e,t){for(var n=e.length,i=0;iNumber.EPSILON){var h=Math.sqrt(c),p=Math.sqrt(l*l+u*u),f=t.x-s/h,m=t.y+a/h,g=((n.x-u/p-f)*u-(n.y+l/p-m)*l)/(a*u-s*l),y=(i=f+a*g-e.x)*i+(r=m+s*g-e.y)*r;if(y<=2)return new St(i,r);o=Math.sqrt(y/2)}else{var v=!1;a>Number.EPSILON?l>Number.EPSILON&&(v=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(v=!0):Math.sign(s)===Math.sign(u)&&(v=!0),v?(i=-s,r=a,o=Math.sqrt(c)):(i=a,r=s,o=Math.sqrt(c/2))}return new St(i/o,r/o)}for(var z=[],B=0,U=C.length,j=U-1,W=B+1;B=0;k--){for(A=k/p,R=d*Math.cos(A*Math.PI/2),P=h*Math.sin(A*Math.PI/2),B=0,U=C.length;B=0;){n=B,(i=B-1)<0&&(i=e.length-1);var r=0,o=g+2*p;for(r=0;r0||0===e.search(/^data\\:image\\/jpeg/);r.format=i?Be:Ue,r.image=n,r.needsUpdate=!0,void 0!==t&&t(r)}),n,i),r},setCrossOrigin:function(e){return this.crossOrigin=e,this},setPath:function(e){return this.path=e,this}}),zo.prototype=Object.assign(Object.create(hi.prototype),{constructor:zo,isLight:!0,copy:function(e){return hi.prototype.copy.call(this,e),this.color.copy(e.color),this.intensity=e.intensity,this},toJSON:function(e){var t=hi.prototype.toJSON.call(this,e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}),Bo.prototype=Object.assign(Object.create(zo.prototype),{constructor:Bo,isHemisphereLight:!0,copy:function(e){return zo.prototype.copy.call(this,e),this.groundColor.copy(e.groundColor),this}}),Object.assign(Uo.prototype,{copy:function(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var e={};return 0!==this.bias&&(e.bias=this.bias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}),jo.prototype=Object.assign(Object.create(Uo.prototype),{constructor:jo,isSpotLightShadow:!0,update:function(e){var t=2*Mt.RAD2DEG*e.angle,n=this.mapSize.width/this.mapSize.height,i=e.distance||500,r=this.camera;t===r.fov&&n===r.aspect&&i===r.far||(r.fov=t,r.aspect=n,r.far=i,r.updateProjectionMatrix())}}),Wo.prototype=Object.assign(Object.create(zo.prototype),{constructor:Wo,isSpotLight:!0,copy:function(e){return zo.prototype.copy.call(this,e),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Go.prototype=Object.assign(Object.create(zo.prototype),{constructor:Go,isPointLight:!0,copy:function(e){return zo.prototype.copy.call(this,e),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}),Vo.prototype=Object.assign(Object.create(Uo.prototype),{constructor:Vo}),Ho.prototype=Object.assign(Object.create(zo.prototype),{constructor:Ho,isDirectionalLight:!0,copy:function(e){return zo.prototype.copy.call(this,e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}),Yo.prototype=Object.assign(Object.create(zo.prototype),{constructor:Yo,isAmbientLight:!0});var qo,Xo,Ko,Zo,Jo,$o={arraySlice:function(e,t,n){return $o.isTypedArray(e)?new e.constructor(e.subarray(t,n)):e.slice(t,n)},convertArray:function(e,t,n){return!e||!n&&e.constructor===t?e:\"number\"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)},isTypedArray:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)},getKeyframeOrder:function(e){for(var t=e.length,n=new Array(t),i=0;i!==t;++i)n[i]=i;return n.sort((function(t,n){return e[t]-e[n]})),n},sortedArray:function(e,t,n){for(var i=e.length,r=new e.constructor(i),o=0,a=0;a!==i;++o)for(var s=n[o]*t,l=0;l!==t;++l)r[a++]=e[s+l];return r},flattenJSON:function(e,t,n,i){for(var r=1,o=e[0];void 0!==o&&void 0===o[i];)o=e[r++];if(void 0!==o){var a=o[i];if(void 0!==a)if(Array.isArray(a))do{void 0!==(a=o[i])&&(t.push(o.time),n.push.apply(n,a)),o=e[r++]}while(void 0!==o);else if(void 0!==a.toArray)do{void 0!==(a=o[i])&&(t.push(o.time),a.toArray(n,n.length)),o=e[r++]}while(void 0!==o);else do{void 0!==(a=o[i])&&(t.push(o.time),n.push(a)),o=e[r++]}while(void 0!==o)}}};function Qo(e,t,n,i){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new t.constructor(n),this.sampleValues=t,this.valueSize=n}function ea(e,t,n,i){Qo.call(this,e,t,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function ta(e,t,n,i){Qo.call(this,e,t,n,i)}function na(e,t,n,i){Qo.call(this,e,t,n,i)}function ia(e,t,n,i){if(void 0===e)throw new Error(\"track name is undefined\");if(void 0===t||0===t.length)throw new Error(\"no keyframes in track named \"+e);this.name=e,this.times=$o.convertArray(t,this.TimeBufferType),this.values=$o.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation),this.validate(),this.optimize()}function ra(e,t,n,i){ia.call(this,e,t,n,i)}function oa(e,t,n,i){Qo.call(this,e,t,n,i)}function aa(e,t,n,i){ia.call(this,e,t,n,i)}function sa(e,t,n,i){ia.call(this,e,t,n,i)}function la(e,t,n,i){ia.call(this,e,t,n,i)}function ua(e,t,n){ia.call(this,e,t,n)}function ca(e,t,n,i){ia.call(this,e,t,n,i)}function da(e,t,n,i){ia.apply(this,arguments)}function ha(e,t,n){this.name=e,this.tracks=n,this.duration=void 0!==t?t:-1,this.uuid=Mt.generateUUID(),this.duration<0&&this.resetDuration(),this.optimize()}function pa(e){this.manager=void 0!==e?e:Ao,this.textures={}}function fa(e){this.manager=void 0!==e?e:Ao}function ma(){this.onLoadStart=function(){},this.onLoadProgress=function(){},this.onLoadComplete=function(){}}function ga(e){\"boolean\"==typeof e&&(console.warn(\"THREE.JSONLoader: showStatus parameter has been removed from constructor.\"),e=void 0),this.manager=void 0!==e?e:Ao,this.withCredentials=!1}function ya(e){this.manager=void 0!==e?e:Ao,this.texturePath=\"\"}function va(e,t,n,i,r){var o=.5*(i-t),a=.5*(r-n),s=e*e;return(2*n-2*i+o+a)*(e*s)+(-3*n+3*i-2*o-a)*s+o*e+n}function ba(e,t,n,i){return function(e,t){var n=1-e;return n*n*t}(e,t)+function(e,t){return 2*(1-e)*e*t}(e,n)+function(e,t){return e*e*t}(e,i)}function _a(e,t,n,i,r){return function(e,t){var n=1-e;return n*n*n*t}(e,t)+function(e,t){var n=1-e;return 3*n*n*e*t}(e,n)+function(e,t){return 3*(1-e)*e*e*t}(e,i)+function(e,t){return e*e*e*t}(e,r)}function xa(){}function wa(e,t){this.v1=e,this.v2=t}function Ma(){this.curves=[],this.autoClose=!1}function Sa(e,t,n,i,r,o,a,s){this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=o,this.aClockwise=a,this.aRotation=s||0}function Ea(e){this.points=void 0===e?[]:e}function Ta(e,t,n,i){this.v0=e,this.v1=t,this.v2=n,this.v3=i}function Ca(e,t,n){this.v0=e,this.v1=t,this.v2=n}Qo.prototype={constructor:Qo,evaluate:function(e){var t=this.parameterPositions,n=this._cachedIndex,i=t[n],r=t[n-1];e:{t:{var o;n:{i:if(!(e=r)break e;var s=t[1];e=(r=t[--n-1]))break t}o=n,n=0}for(;n>>1;et;)--o;if(++o,0!==r||o!==i){r>=o&&(r=(o=Math.max(o,1))-1);var a=this.getValueSize();this.times=$o.arraySlice(n,r,o),this.values=$o.arraySlice(this.values,r*a,o*a)}return this},validate:function(){var e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error(\"invalid value size in track\",this),e=!1);var n=this.times,i=this.values,r=n.length;0===r&&(console.error(\"track is empty\",this),e=!1);for(var o=null,a=0;a!==r;a++){var s=n[a];if(\"number\"==typeof s&&isNaN(s)){console.error(\"time is not a valid number\",this,a,s),e=!1;break}if(null!==o&&o>s){console.error(\"out of order keys\",this,a,s,o),e=!1;break}o=s}if(void 0!==i&&$o.isTypedArray(i)){a=0;for(var l=i.length;a!==l;++a){var u=i[a];if(isNaN(u)){console.error(\"value is not a valid number\",this,a,u),e=!1;break}}}return e},optimize:function(){for(var e=this.times,t=this.values,n=this.getValueSize(),i=this.getInterpolation()===at,r=1,o=e.length-1,a=1;a0){e[r]=e[o];for(f=o*n,m=r*n,h=0;h!==n;++h)t[m+h]=t[f+h];++r}return r!==e.length&&(this.times=$o.arraySlice(e,0,r),this.values=$o.arraySlice(t,0,r*n)),this}},ra.prototype=Object.assign(Object.create(qo),{constructor:ra,ValueTypeName:\"vector\"}),oa.prototype=Object.assign(Object.create(Qo.prototype),{constructor:oa,interpolate_:function(e,t,n,i){for(var r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=e*a,l=(n-t)/(i-t),u=s+a;s!==u;s+=4)Nt.slerpFlat(r,0,o,s-a,o,s,l);return r}}),aa.prototype=Object.assign(Object.create(qo),{constructor:aa,ValueTypeName:\"quaternion\",DefaultInterpolation:ot,InterpolantFactoryMethodLinear:function(e){return new oa(this.times,this.values,this.getValueSize(),e)},InterpolantFactoryMethodSmooth:void 0}),sa.prototype=Object.assign(Object.create(qo),{constructor:sa,ValueTypeName:\"number\"}),la.prototype=Object.assign(Object.create(qo),{constructor:la,ValueTypeName:\"string\",ValueBufferType:Array,DefaultInterpolation:rt,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),ua.prototype=Object.assign(Object.create(qo),{constructor:ua,ValueTypeName:\"bool\",ValueBufferType:Array,DefaultInterpolation:rt,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),ca.prototype=Object.assign(Object.create(qo),{constructor:ca,ValueTypeName:\"color\"}),da.prototype=qo,qo.constructor=da,Object.assign(da,{parse:function(e){if(void 0===e.type)throw new Error(\"track type undefined, can not parse\");var t=da._getTrackTypeForValueTypeName(e.type);if(void 0===e.times){var n=[],i=[];$o.flattenJSON(e.keys,n,i,\"value\"),e.times=n,e.values=i}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)},toJSON:function(e){var t,n=e.constructor;if(void 0!==n.toJSON)t=n.toJSON(e);else{t={name:e.name,times:$o.convertArray(e.times,Array),values:$o.convertArray(e.values,Array)};var i=e.getInterpolation();i!==e.DefaultInterpolation&&(t.interpolation=i)}return t.type=e.ValueTypeName,t},_getTrackTypeForValueTypeName:function(e){switch(e.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return sa;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return ra;case\"color\":return ca;case\"quaternion\":return aa;case\"bool\":case\"boolean\":return ua;case\"string\":return la}throw new Error(\"Unsupported typeName: \"+e)}}),ha.prototype={constructor:ha,resetDuration:function(){for(var e=0,t=0,n=this.tracks.length;t!==n;++t){var i=this.tracks[t];e=Math.max(e,i.times[i.times.length-1])}this.duration=e},trim:function(){for(var e=0;e1){var u=i[d=l[1]];u||(i[d]=u=[]),u.push(s)}}var c=[];for(var d in i)c.push(ha.CreateFromMorphTargetSequence(d,i[d],t,n));return c},parseAnimation:function(e,t){if(!e)return console.error(\" no animation in JSONLoader data\"),null;for(var n=function(e,t,n,i,r){if(0!==n.length){var o=[],a=[];$o.flattenJSON(n,o,a,i),0!==o.length&&r.push(new e(t,o,a))}},i=[],r=e.name||\"default\",o=e.length||-1,a=e.fps||30,s=e.hierarchy||[],l=0;l1?e.skinWeights[i+1]:0,s=t>2?e.skinWeights[i+2]:0,l=t>3?e.skinWeights[i+3]:0;n.skinWeights.push(new Lt(o,a,s,l))}if(e.skinIndices)for(i=0,r=e.skinIndices.length;i1?e.skinIndices[i+1]:0,d=t>2?e.skinIndices[i+2]:0,h=t>3?e.skinIndices[i+3]:0;n.skinIndices.push(new Lt(u,c,d,h))}n.bones=e.bones,n.bones&&n.bones.length>0&&(n.skinWeights.length!==n.skinIndices.length||n.skinIndices.length!==n.vertices.length)&&console.warn(\"When skinning, number of vertices (\"+n.vertices.length+\"), skinIndices (\"+n.skinIndices.length+\"), and skinWeights (\"+n.skinWeights.length+\") should match.\")}(),function(t){if(void 0!==e.morphTargets)for(var i=0,r=e.morphTargets.length;i0){console.warn('THREE.JSONLoader: \"morphColors\" no longer supported. Using them as face colors.');var c=n.faces,d=e.morphColors[0].colors;for(i=0,r=c.length;i0&&(n.animations=t)}(),n.computeFaceNormals(),n.computeBoundingSphere(),void 0===e.materials||0===e.materials.length)return{geometry:n};var r=ma.prototype.initMaterials(e.materials,t,this.crossOrigin);return{geometry:n,materials:r}}}),Object.assign(ya.prototype,{load:function(e,t,n,i){\"\"===this.texturePath&&(this.texturePath=e.substring(0,e.lastIndexOf(\"/\")+1));var r=this;new Ro(r.manager).load(e,(function(n){var o=null;try{o=JSON.parse(n)}catch(t){return void 0!==i&&i(t),void console.error(\"THREE:ObjectLoader: Can't parse \"+e+\".\",t.message)}var a=o.metadata;void 0!==a&&void 0!==a.type&&\"geometry\"!==a.type.toLowerCase()?r.parse(o,t):console.error(\"THREE.ObjectLoader: Can't load \"+e+\". Use THREE.JSONLoader instead.\")}),n,i)},setTexturePath:function(e){this.texturePath=e},setCrossOrigin:function(e){this.crossOrigin=e},parse:function(e,t){var n=this.parseGeometries(e.geometries),i=this.parseImages(e.images,(function(){void 0!==t&&t(a)})),r=this.parseTextures(e.textures,i),o=this.parseMaterials(e.materials,r),a=this.parseObject(e.object,n,o);return e.animations&&(a.animations=this.parseAnimations(e.animations)),void 0!==e.images&&0!==e.images.length||void 0!==t&&t(a),a},parseGeometries:function(e){var t={};if(void 0!==e)for(var n=new ga,i=new fa,r=0,o=e.length;r0){var o=new Do(new Po(t));o.setCrossOrigin(this.crossOrigin);for(var a=0,s=e.length;a0?new wr(s,l):new Ii(s,l);break;case\"LOD\":r=new br;break;case\"Line\":r=new Sr(o(t.geometry),a(t.material),t.mode);break;case\"LineSegments\":r=new Er(o(t.geometry),a(t.material));break;case\"PointCloud\":case\"Points\":r=new Cr(o(t.geometry),a(t.material));break;case\"Sprite\":r=new vr(a(t.material));break;case\"Group\":r=new Or;break;case\"SkinnedMesh\":console.warn(\"THREE.ObjectLoader.parseObject() does not support SkinnedMesh type. Instantiates Object3D instead.\");default:r=new hi}if(r.uuid=t.uuid,void 0!==t.name&&(r.name=t.name),void 0!==t.matrix?(e.fromArray(t.matrix),e.decompose(r.position,r.quaternion,r.scale)):(void 0!==t.position&&r.position.fromArray(t.position),void 0!==t.rotation&&r.rotation.fromArray(t.rotation),void 0!==t.quaternion&&r.quaternion.fromArray(t.quaternion),void 0!==t.scale&&r.scale.fromArray(t.scale)),void 0!==t.castShadow&&(r.castShadow=t.castShadow),void 0!==t.receiveShadow&&(r.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(r.shadow.bias=t.shadow.bias),void 0!==t.shadow.radius&&(r.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&r.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(r.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(r.visible=t.visible),void 0!==t.userData&&(r.userData=t.userData),void 0!==t.children)for(var u in t.children)r.add(this.parseObject(t.children[u],n,i));if(\"LOD\"===t.type)for(var c=t.levels,d=0;d0)){l=r;break}l=r-1}if(i[r=l]===n)return r/(o-1);var u=i[r];return(r+(n-u)/(i[r+1]-u))/(o-1)},getTangent:function(e){var t=e-1e-4,n=e+1e-4;t<0&&(t=0),n>1&&(n=1);var i=this.getPoint(t);return this.getPoint(n).clone().sub(i).normalize()},getTangentAt:function(e){var t=this.getUtoTmapping(e);return this.getTangent(t)},computeFrenetFrames:function(e,t){var n,i,r,o=new Ft,a=[],s=[],l=[],u=new Ft,c=new zt;for(n=0;n<=e;n++)i=n/e,a[n]=this.getTangentAt(i),a[n].normalize();s[0]=new Ft,l[0]=new Ft;var d=Number.MAX_VALUE,h=Math.abs(a[0].x),p=Math.abs(a[0].y),f=Math.abs(a[0].z);for(h<=d&&(d=h,o.set(1,0,0)),p<=d&&(d=p,o.set(0,1,0)),f<=d&&o.set(0,0,1),u.crossVectors(a[0],o).normalize(),s[0].crossVectors(a[0],u),l[0].crossVectors(a[0],s[0]),n=1;n<=e;n++)s[n]=s[n-1].clone(),l[n]=l[n-1].clone(),u.crossVectors(a[n-1],a[n]),u.length()>Number.EPSILON&&(u.normalize(),r=Math.acos(Mt.clamp(a[n-1].dot(a[n]),-1,1)),s[n].applyMatrix4(c.makeRotationAxis(u,r))),l[n].crossVectors(a[n],s[n]);if(!0===t)for(r=Math.acos(Mt.clamp(s[0].dot(s[e]),-1,1)),r/=e,a[0].dot(u.crossVectors(s[0],s[e]))>0&&(r=-r),n=1;n<=e;n++)s[n].applyMatrix4(c.makeRotationAxis(a[n],r*n)),l[n].crossVectors(a[n],s[n]);return{tangents:a,normals:s,binormals:l}}},wa.prototype=Object.create(xa.prototype),wa.prototype.constructor=wa,wa.prototype.isLineCurve=!0,wa.prototype.getPoint=function(e){if(1===e)return this.v2.clone();var t=this.v2.clone().sub(this.v1);return t.multiplyScalar(e).add(this.v1),t},wa.prototype.getPointAt=function(e){return this.getPoint(e)},wa.prototype.getTangent=function(e){return this.v2.clone().sub(this.v1).normalize()},Ma.prototype=Object.assign(Object.create(xa.prototype),{constructor:Ma,add:function(e){this.curves.push(e)},closePath:function(){var e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new wa(t,e))},getPoint:function(e){for(var t=e*this.getLength(),n=this.getCurveLengths(),i=0;i=t){var r=n[i]-t,o=this.curves[i],a=o.getLength(),s=0===a?0:1-r/a;return o.getPointAt(s)}i++}return null},getLength:function(){var e=this.getCurveLengths();return e[e.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var e=[],t=0,n=0,i=this.curves.length;n1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n},createPointsGeometry:function(e){var t=this.getPoints(e);return this.createGeometry(t)},createSpacedPointsGeometry:function(e){var t=this.getSpacedPoints(e);return this.createGeometry(t)},createGeometry:function(e){for(var t=new Ri,n=0,i=e.length;nt;)n-=t;nt.length-2?t.length-1:i+1],l=t[i>t.length-3?t.length-1:i+2];return new St(va(r,o.x,a.x,s.x,l.x),va(r,o.y,a.y,s.y,l.y))},Ta.prototype=Object.create(xa.prototype),Ta.prototype.constructor=Ta,Ta.prototype.getPoint=function(e){var t=this.v0,n=this.v1,i=this.v2,r=this.v3;return new St(_a(e,t.x,n.x,i.x,r.x),_a(e,t.y,n.y,i.y,r.y))},Ca.prototype=Object.create(xa.prototype),Ca.prototype.constructor=Ca,Ca.prototype.getPoint=function(e){var t=this.v0,n=this.v1,i=this.v2;return new St(ba(e,t.x,n.x,i.x),ba(e,t.y,n.y,i.y))};var Oa,ka=Object.assign(Object.create(Ma.prototype),{fromPoints:function(e){this.moveTo(e[0].x,e[0].y);for(var t=1,n=e.length;t0){var u=l.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(l);var c=l.getPoint(1);this.currentPoint.copy(c)}});function Pa(e){Ma.call(this),this.currentPoint=new St,e&&this.fromPoints(e)}function Aa(){Pa.apply(this,arguments),this.holes=[]}function Ra(){this.subPaths=[],this.currentPath=null}function La(e){this.data=e}function Ia(e){this.manager=void 0!==e?e:Ao}Pa.prototype=ka,ka.constructor=Pa,Aa.prototype=Object.assign(Object.create(ka),{constructor:Aa,getPointsHoles:function(e){for(var t=[],n=0,i=this.holes.length;nNumber.EPSILON){if(u<0&&(a=t[o],l=-l,s=t[r],u=-u),e.ys.y)continue;if(e.y===a.y){if(e.x===a.x)return!0}else{var c=u*(e.x-a.x)-l*(e.y-a.y);if(0===c)return!0;if(c<0)continue;i=!i}}else{if(e.y!==a.y)continue;if(s.x<=e.x&&e.x<=a.x||a.x<=e.x&&e.x<=s.x)return!0}}return i}var r=$r.isClockWise,o=this.subPaths;if(0===o.length)return[];if(!0===t)return n(o);var a,s,l,u=[];if(1===o.length)return s=o[0],(l=new Aa).curves=s.curves,u.push(l),u;var c=!r(o[0].getPoints());c=e?!c:c;var d,h,p=[],f=[],m=[],g=0;f[g]=void 0,m[g]=[];for(var y=0,v=o.length;y1){for(var b=!1,_=[],x=0,w=f.length;x0&&(b||(m=p))}y=0;for(var O=f.length;y0){this.source.connect(this.filters[0]);for(var e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(var e=1,t=this.filters.length;e=.5)for(var o=0;o!==r;++o)e[t+o]=e[n+o]},_slerp:function(e,t,n,i,r){Nt.slerpFlat(e,t,e,t,e,n,i)},_lerp:function(e,t,n,i,r){for(var o=1-i,a=0;a!==r;++a){var s=t+a;e[s]=e[s]*o+e[n+a]*i}}},as.prototype={constructor:as,getValue:function(e,t){this.bind(),this.getValue(e,t)},setValue:function(e,t){this.bind(),this.setValue(e,t)},bind:function(){var e=this.node,t=this.parsedPath,n=t.objectName,i=t.propertyName,r=t.propertyIndex;if(e||(e=as.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,e){if(n){var o=t.objectIndex;switch(n){case\"materials\":if(!e.material)return void console.error(\" can not bind to material as node does not have a material\",this);if(!e.material.materials)return void console.error(\" can not bind to material.materials as node.material does not have a materials array\",this);e=e.material.materials;break;case\"bones\":if(!e.skeleton)return void console.error(\" can not bind to bones as node does not have a skeleton\",this);e=e.skeleton.bones;for(var a=0;a=n){var d=n++,h=t[d];i[h.uuid]=c,t[c]=h,i[u]=d,t[d]=l;for(var p=0,f=o;p!==f;++p){var m=r[p],g=m[d],y=m[c];m[c]=g,m[d]=y}}}this.nCachedObjects_=n},uncache:function(e){for(var t=this._objects,n=t.length,i=this.nCachedObjects_,r=this._indicesByUUID,o=this._bindings,a=o.length,s=0,l=arguments.length;s!==l;++s){var u=arguments[s],c=u.uuid,d=r[c];if(void 0!==d)if(delete r[c],d0)for(var l=this._interpolants,u=this._propertyBindings,c=0,d=l.length;c!==d;++c)l[c].evaluate(a),u[c].accumulate(i,s)},_updateWeight:function(e){var t=0;if(this.enabled){t=this.weight;var n=this._weightInterpolant;if(null!==n){var i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=t,t},_updateTimeScale:function(e){var t=0;if(!this.paused){t=this.timeScale;var n=this._timeScaleInterpolant;if(null!==n)t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}return this._effectiveTimeScale=t,t},_updateTime:function(e){var t=this.time+e;if(0===e)return t;var n=this._clip.duration,i=this.loop,r=this._loopCount;if(i===tt){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(t>=n)t=n;else{if(!(t<0))break e;t=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:e<0?-1:1})}}else{var o=i===it;if(-1===r&&(e>=0?(r=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),t>=n||t<0){var a=Math.floor(t/n);t-=n*a,r+=Math.abs(a);var s=this.repetitions-r;if(s<0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,t=e>0?n:0,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:e>0?1:-1});else{if(0===s){var l=e<0;this._setEndings(l,!l,o)}else this._setEndings(!1,!1,o);this._loopCount=r,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:a})}}if(o&&1==(1&r))return this.time=t,n-t}return this.time=t,t},_setEndings:function(e,t,n){var i=this._interpolantSettings;n?(i.endingStart=lt,i.endingEnd=lt):(i.endingStart=e?this.zeroSlopeAtStart?lt:st:ut,i.endingEnd=t?this.zeroSlopeAtEnd?lt:st:ut)},_scheduleFading:function(e,t,n){var i=this._mixer,r=i.time,o=this._weightInterpolant;null===o&&(o=i._lendControlInterpolant(),this._weightInterpolant=o);var a=o.parameterPositions,s=o.sampleValues;return a[0]=r,s[0]=t,a[1]=r+e,s[1]=n,this}},us.prototype={constructor:us,clipAction:function(e,t){var n=t||this._root,i=n.uuid,r=\"string\"==typeof e?ha.findByName(n,e):e,o=null!==r?r.uuid:e,a=this._actionsByClip[o],s=null;if(void 0!==a){var l=a.actionByRoot[i];if(void 0!==l)return l;s=a.knownActions[0],null===r&&(r=s._clip)}if(null===r)return null;var u=new ls(this,r,t);return this._bindAction(u,s),this._addInactiveAction(u,o,i),u},existingAction:function(e,t){var n=t||this._root,i=n.uuid,r=\"string\"==typeof e?ha.findByName(n,e):e,o=r?r.uuid:e,a=this._actionsByClip[o];return void 0!==a&&a.actionByRoot[i]||null},stopAllAction:function(){var e=this._actions,t=this._nActiveActions,n=this._bindings,i=this._nActiveBindings;this._nActiveActions=0,this._nActiveBindings=0;for(var r=0;r!==t;++r)e[r].reset();for(r=0;r!==i;++r)n[r].useCount=0;return this},update:function(e){e*=this.timeScale;for(var t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),o=this._accuIndex^=1,a=0;a!==n;++a){var s=t[a];s.enabled&&s._update(i,e,r,o)}var l=this._bindings,u=this._nActiveBindings;for(a=0;a!==u;++a)l[a].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(e){var t=this._actions,n=e.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){for(var o=r.knownActions,a=0,s=o.length;a!==s;++a){var l=o[a];this._deactivateAction(l);var u=l._cacheIndex,c=t[t.length-1];l._cacheIndex=null,l._byClipCacheIndex=null,c._cacheIndex=u,t[u]=c,t.pop(),this._removeInactiveBindingsForAction(l)}delete i[n]}},uncacheRoot:function(e){var t=e.uuid,n=this._actionsByClip;for(var i in n){var r=n[i].actionByRoot[t];void 0!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}var o=this._bindingsByRootAndName[t];if(void 0!==o)for(var a in o){var s=o[a];s.restoreOriginalState(),this._removeInactiveBinding(s)}},uncacheAction:function(e,t){var n=this.existingAction(e,t);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}},Object.assign(us.prototype,{_bindAction:function(e,t){var n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,o=e._propertyBindings,a=e._interpolants,s=n.uuid,l=this._bindingsByRootAndName,u=l[s];void 0===u&&(u={},l[s]=u);for(var c=0;c!==r;++c){var d=i[c],h=d.name,p=u[h];if(void 0!==p)o[c]=p;else{if(void 0!==(p=o[c])){null===p._cacheIndex&&(++p.referenceCount,this._addInactiveBinding(p,s,h));continue}var f=t&&t._propertyBindings[c].binding.parsedPath;++(p=new os(as.create(n,h,f),d.ValueTypeName,d.getValueSize())).referenceCount,this._addInactiveBinding(p,s,h),o[c]=p}a[c].resultBuffer=p.buffer}},_activateAction:function(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){var t=(e._localRoot||this._root).uuid,n=e._clip.uuid,i=this._actionsByClip[n];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,n,t)}for(var r=e._propertyBindings,o=0,a=r.length;o!==a;++o){var s=r[o];0==s.useCount++&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}},_deactivateAction:function(e){if(this._isActiveAction(e)){for(var t=e._propertyBindings,n=0,i=t.length;n!==i;++n){var r=t[n];0==--r.useCount&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(e)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}},_isActiveAction:function(e){var t=e._cacheIndex;return null!==t&&t1)i[l=s[1]]||(i[l]={start:1/0,end:-1/0}),o<(u=i[l]).start&&(u.start=o),o>u.end&&(u.end=o),t||(t=l)}for(var l in i){var u=i[l];this.createAnimation(l,u.start,u.end,e)}this.firstAnimation=t},ws.prototype.setAnimationDirectionForward=function(e){var t=this.animationsMap[e];t&&(t.direction=1,t.directionBackwards=!1)},ws.prototype.setAnimationDirectionBackward=function(e){var t=this.animationsMap[e];t&&(t.direction=-1,t.directionBackwards=!0)},ws.prototype.setAnimationFPS=function(e,t){var n=this.animationsMap[e];n&&(n.fps=t,n.duration=(n.end-n.start)/n.fps)},ws.prototype.setAnimationDuration=function(e,t){var n=this.animationsMap[e];n&&(n.duration=t,n.fps=(n.end-n.start)/n.duration)},ws.prototype.setAnimationWeight=function(e,t){var n=this.animationsMap[e];n&&(n.weight=t)},ws.prototype.setAnimationTime=function(e,t){var n=this.animationsMap[e];n&&(n.time=t)},ws.prototype.getAnimationTime=function(e){var t=0,n=this.animationsMap[e];return n&&(t=n.time),t},ws.prototype.getAnimationDuration=function(e){var t=-1,n=this.animationsMap[e];return n&&(t=n.duration),t},ws.prototype.playAnimation=function(e){var t=this.animationsMap[e];t?(t.time=0,t.active=!0):console.warn(\"THREE.MorphBlendMesh: animation[\"+e+\"] undefined in .playAnimation()\")},ws.prototype.stopAnimation=function(e){var t=this.animationsMap[e];t&&(t.active=!1)},ws.prototype.update=function(e){for(var t=0,n=this.animationsList.length;ti.duration||i.time<0)&&(i.direction*=-1,i.time>i.duration&&(i.time=i.duration,i.directionBackwards=!0),i.time<0&&(i.time=0,i.directionBackwards=!1)):(i.time=i.time%i.duration,i.time<0&&(i.time+=i.duration));var o=i.start+Mt.clamp(Math.floor(i.time/r),0,i.length-1),a=i.weight;o!==i.currentFrame&&(this.morphTargetInfluences[i.lastFrame]=0,this.morphTargetInfluences[i.currentFrame]=1*a,this.morphTargetInfluences[o]=0,i.lastFrame=i.currentFrame,i.currentFrame=o);var s=i.time%r/r;i.directionBackwards&&(s=1-s),i.currentFrame!==i.lastFrame?(this.morphTargetInfluences[i.currentFrame]=s*a,this.morphTargetInfluences[i.lastFrame]=(1-s)*a):this.morphTargetInfluences[i.currentFrame]=a}}},Ms.prototype=Object.create(hi.prototype),Ms.prototype.constructor=Ms,Ms.prototype.isImmediateRenderObject=!0,Ss.prototype=Object.create(Er.prototype),Ss.prototype.constructor=Ss,Ss.prototype.update=function(){var e=new Ft,t=new Ft,n=new Jn;return function(){var i=[\"a\",\"b\",\"c\"];this.object.updateMatrixWorld(!0),n.getNormalMatrix(this.object.matrixWorld);var r=this.object.matrixWorld,o=this.geometry.attributes.position,a=this.object.geometry;if(a&&a.isGeometry)for(var s=a.vertices,l=a.faces,u=0,c=0,d=l.length;c.99999?this.quaternion.set(0,0,0,1):e.y<-.99999?this.quaternion.set(1,0,0,0):(Ka.set(e.z,0,-e.x).normalize(),Xa=Math.acos(e.y),this.quaternion.setFromAxisAngle(Ka,Xa))}),Ns.prototype.setLength=function(e,t,n){void 0===t&&(t=.2*e),void 0===n&&(n=.2*t),this.line.scale.set(1,Math.max(0,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()},Ns.prototype.setColor=function(e){this.line.material.color.copy(e),this.cone.material.color.copy(e)},Fs.prototype=Object.create(Er.prototype),Fs.prototype.constructor=Fs;var Bs=new Ft,Us=new zs,js=new zs,Ws=new zs;function Gs(e){this.points=e||[],this.closed=!1}function Vs(e,t,n,i){this.v0=e,this.v1=t,this.v2=n,this.v3=i}function Hs(e,t,n){this.v0=e,this.v1=t,this.v2=n}function Ys(e,t){this.v1=e,this.v2=t}function qs(e,t,n,i,r,o){Sa.call(this,e,t,n,n,i,r,o)}Gs.prototype=Object.create(xa.prototype),Gs.prototype.constructor=Gs,Gs.prototype.getPoint=function(e){var t=this.points,n=t.length;n<2&&console.log(\"duh, you need at least 2 points\");var i,r,o,a,s=(n-(this.closed?0:1))*e,l=Math.floor(s),u=s-l;if(this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/t.length)+1)*t.length:0===u&&l===n-1&&(l=n-2,u=1),this.closed||l>0?i=t[(l-1)%n]:(Bs.subVectors(t[0],t[1]).add(t[0]),i=Bs),r=t[l%n],o=t[(l+1)%n],this.closed||l+2\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */(function(){var o,a=200,s=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",l=\"Expected a function\",u=\"__lodash_hash_undefined__\",c=500,d=\"__lodash_placeholder__\",h=1,p=2,f=4,m=1,g=2,y=1,v=2,b=4,_=8,x=16,w=32,M=64,S=128,E=256,T=512,C=30,O=\"...\",k=800,P=16,A=1,R=2,L=1/0,I=9007199254740991,D=17976931348623157e292,N=NaN,F=4294967295,z=F-1,B=F>>>1,U=[[\"ary\",S],[\"bind\",y],[\"bindKey\",v],[\"curry\",_],[\"curryRight\",x],[\"flip\",T],[\"partial\",w],[\"partialRight\",M],[\"rearg\",E]],j=\"[object Arguments]\",W=\"[object Array]\",G=\"[object AsyncFunction]\",V=\"[object Boolean]\",H=\"[object Date]\",Y=\"[object DOMException]\",q=\"[object Error]\",X=\"[object Function]\",K=\"[object GeneratorFunction]\",Z=\"[object Map]\",J=\"[object Number]\",$=\"[object Null]\",Q=\"[object Object]\",ee=\"[object Proxy]\",te=\"[object RegExp]\",ne=\"[object Set]\",ie=\"[object String]\",re=\"[object Symbol]\",oe=\"[object Undefined]\",ae=\"[object WeakMap]\",se=\"[object WeakSet]\",le=\"[object ArrayBuffer]\",ue=\"[object DataView]\",ce=\"[object Float32Array]\",de=\"[object Float64Array]\",he=\"[object Int8Array]\",pe=\"[object Int16Array]\",fe=\"[object Int32Array]\",me=\"[object Uint8Array]\",ge=\"[object Uint8ClampedArray]\",ye=\"[object Uint16Array]\",ve=\"[object Uint32Array]\",be=/\\b__p \\+= '';/g,_e=/\\b(__p \\+=) '' \\+/g,xe=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,we=/&(?:amp|lt|gt|quot|#39);/g,Me=/[&<>\"']/g,Se=RegExp(we.source),Ee=RegExp(Me.source),Te=/<%-([\\s\\S]+?)%>/g,Ce=/<%([\\s\\S]+?)%>/g,Oe=/<%=([\\s\\S]+?)%>/g,ke=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,Pe=/^\\w*$/,Ae=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,Re=/[\\\\^$.*+?()[\\]{}|]/g,Le=RegExp(Re.source),Ie=/^\\s+|\\s+$/g,De=/^\\s+/,Ne=/\\s+$/,Fe=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,ze=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,Be=/,? & /,Ue=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,je=/\\\\(\\\\)?/g,We=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Ge=/\\w*$/,Ve=/^[-+]0x[0-9a-f]+$/i,He=/^0b[01]+$/i,Ye=/^\\[object .+?Constructor\\]$/,qe=/^0o[0-7]+$/i,Xe=/^(?:0|[1-9]\\d*)$/,Ke=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Ze=/($^)/,Je=/['\\n\\r\\u2028\\u2029\\\\]/g,$e=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",Qe=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",et=\"[\\\\ud800-\\\\udfff]\",tt=\"[\"+Qe+\"]\",nt=\"[\"+$e+\"]\",it=\"\\\\d+\",rt=\"[\\\\u2700-\\\\u27bf]\",ot=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]\",at=\"[^\\\\ud800-\\\\udfff\"+Qe+it+\"\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",st=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",lt=\"[^\\\\ud800-\\\\udfff]\",ut=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",ct=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",dt=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",ht=\"(?:\"+ot+\"|\"+at+\")\",pt=\"(?:\"+dt+\"|\"+at+\")\",ft=\"(?:\"+nt+\"|\"+st+\")\"+\"?\",mt=\"[\\\\ufe0e\\\\ufe0f]?\"+ft+(\"(?:\\\\u200d(?:\"+[lt,ut,ct].join(\"|\")+\")[\\\\ufe0e\\\\ufe0f]?\"+ft+\")*\"),gt=\"(?:\"+[rt,ut,ct].join(\"|\")+\")\"+mt,yt=\"(?:\"+[lt+nt+\"?\",nt,ut,ct,et].join(\"|\")+\")\",vt=RegExp(\"['’]\",\"g\"),bt=RegExp(nt,\"g\"),_t=RegExp(st+\"(?=\"+st+\")|\"+yt+mt,\"g\"),xt=RegExp([dt+\"?\"+ot+\"+(?:['’](?:d|ll|m|re|s|t|ve))?(?=\"+[tt,dt,\"$\"].join(\"|\")+\")\",pt+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=\"+[tt,dt+ht,\"$\"].join(\"|\")+\")\",dt+\"?\"+ht+\"+(?:['’](?:d|ll|m|re|s|t|ve))?\",dt+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?\",\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",it,gt].join(\"|\"),\"g\"),wt=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\"+$e+\"\\\\ufe0e\\\\ufe0f]\"),Mt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,St=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Et=-1,Tt={};Tt[ce]=Tt[de]=Tt[he]=Tt[pe]=Tt[fe]=Tt[me]=Tt[ge]=Tt[ye]=Tt[ve]=!0,Tt[j]=Tt[W]=Tt[le]=Tt[V]=Tt[ue]=Tt[H]=Tt[q]=Tt[X]=Tt[Z]=Tt[J]=Tt[Q]=Tt[te]=Tt[ne]=Tt[ie]=Tt[ae]=!1;var Ct={};Ct[j]=Ct[W]=Ct[le]=Ct[ue]=Ct[V]=Ct[H]=Ct[ce]=Ct[de]=Ct[he]=Ct[pe]=Ct[fe]=Ct[Z]=Ct[J]=Ct[Q]=Ct[te]=Ct[ne]=Ct[ie]=Ct[re]=Ct[me]=Ct[ge]=Ct[ye]=Ct[ve]=!0,Ct[q]=Ct[X]=Ct[ae]=!1;var Ot={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},kt=parseFloat,Pt=parseInt,At=\"object\"==typeof e&&e&&e.Object===Object&&e,Rt=\"object\"==typeof self&&self&&self.Object===Object&&self,Lt=At||Rt||Function(\"return this\")(),It=t&&!t.nodeType&&t,Dt=It&&\"object\"==typeof i&&i&&!i.nodeType&&i,Nt=Dt&&Dt.exports===It,Ft=Nt&&At.process,zt=function(){try{var e=Dt&&Dt.require&&Dt.require(\"util\").types;return e||Ft&&Ft.binding&&Ft.binding(\"util\")}catch(e){}}(),Bt=zt&&zt.isArrayBuffer,Ut=zt&&zt.isDate,jt=zt&&zt.isMap,Wt=zt&&zt.isRegExp,Gt=zt&&zt.isSet,Vt=zt&&zt.isTypedArray;function Ht(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Yt(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r-1}function $t(e,t,n){for(var i=-1,r=null==e?0:e.length;++i-1;);return n}function xn(e,t){for(var n=e.length;n--&&ln(t,e[n],0)>-1;);return n}var wn=pn({\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ą\":\"A\",\"ā\":\"a\",\"ă\":\"a\",\"ą\":\"a\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"Ď\":\"D\",\"Đ\":\"D\",\"ď\":\"d\",\"đ\":\"d\",\"Ē\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ę\":\"E\",\"Ě\":\"E\",\"ē\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ę\":\"e\",\"ě\":\"e\",\"Ĝ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ģ\":\"G\",\"ĝ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ģ\":\"g\",\"Ĥ\":\"H\",\"Ħ\":\"H\",\"ĥ\":\"h\",\"ħ\":\"h\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"Į\":\"I\",\"İ\":\"I\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"į\":\"i\",\"ı\":\"i\",\"Ĵ\":\"J\",\"ĵ\":\"j\",\"Ķ\":\"K\",\"ķ\":\"k\",\"ĸ\":\"k\",\"Ĺ\":\"L\",\"Ļ\":\"L\",\"Ľ\":\"L\",\"Ŀ\":\"L\",\"Ł\":\"L\",\"ĺ\":\"l\",\"ļ\":\"l\",\"ľ\":\"l\",\"ŀ\":\"l\",\"ł\":\"l\",\"Ń\":\"N\",\"Ņ\":\"N\",\"Ň\":\"N\",\"Ŋ\":\"N\",\"ń\":\"n\",\"ņ\":\"n\",\"ň\":\"n\",\"ŋ\":\"n\",\"Ō\":\"O\",\"Ŏ\":\"O\",\"Ő\":\"O\",\"ō\":\"o\",\"ŏ\":\"o\",\"ő\":\"o\",\"Ŕ\":\"R\",\"Ŗ\":\"R\",\"Ř\":\"R\",\"ŕ\":\"r\",\"ŗ\":\"r\",\"ř\":\"r\",\"Ś\":\"S\",\"Ŝ\":\"S\",\"Ş\":\"S\",\"Š\":\"S\",\"ś\":\"s\",\"ŝ\":\"s\",\"ş\":\"s\",\"š\":\"s\",\"Ţ\":\"T\",\"Ť\":\"T\",\"Ŧ\":\"T\",\"ţ\":\"t\",\"ť\":\"t\",\"ŧ\":\"t\",\"Ũ\":\"U\",\"Ū\":\"U\",\"Ŭ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ų\":\"U\",\"ũ\":\"u\",\"ū\":\"u\",\"ŭ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"ź\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"IJ\":\"IJ\",\"ij\":\"ij\",\"Œ\":\"Oe\",\"œ\":\"oe\",\"ʼn\":\"'n\",\"ſ\":\"s\"}),Mn=pn({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"});function Sn(e){return\"\\\\\"+Ot[e]}function En(e){return wt.test(e)}function Tn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function Cn(e,t){return function(n){return e(t(n))}}function On(e,t){for(var n=-1,i=e.length,r=0,o=[];++n\",\""\":'\"',\"'\":\"'\"});var In=function e(t){var n,i=(t=null==t?Lt:In.defaults(Lt.Object(),t,In.pick(Lt,St))).Array,r=t.Date,$e=t.Error,Qe=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,it=t.String,rt=t.TypeError,ot=i.prototype,at=Qe.prototype,st=tt.prototype,lt=t[\"__core-js_shared__\"],ut=at.toString,ct=st.hasOwnProperty,dt=0,ht=(n=/[^.]+$/.exec(lt&<.keys&<.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+n:\"\",pt=st.toString,ft=ut.call(tt),mt=Lt._,gt=nt(\"^\"+ut.call(ct).replace(Re,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),yt=Nt?t.Buffer:o,_t=t.Symbol,wt=t.Uint8Array,Ot=yt?yt.allocUnsafe:o,At=Cn(tt.getPrototypeOf,tt),Rt=tt.create,It=st.propertyIsEnumerable,Dt=ot.splice,Ft=_t?_t.isConcatSpreadable:o,zt=_t?_t.iterator:o,on=_t?_t.toStringTag:o,pn=function(){try{var e=Bo(tt,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}(),Dn=t.clearTimeout!==Lt.clearTimeout&&t.clearTimeout,Nn=r&&r.now!==Lt.Date.now&&r.now,Fn=t.setTimeout!==Lt.setTimeout&&t.setTimeout,zn=et.ceil,Bn=et.floor,Un=tt.getOwnPropertySymbols,jn=yt?yt.isBuffer:o,Wn=t.isFinite,Gn=ot.join,Vn=Cn(tt.keys,tt),Hn=et.max,Yn=et.min,qn=r.now,Xn=t.parseInt,Kn=et.random,Zn=ot.reverse,Jn=Bo(t,\"DataView\"),$n=Bo(t,\"Map\"),Qn=Bo(t,\"Promise\"),ei=Bo(t,\"Set\"),ti=Bo(t,\"WeakMap\"),ni=Bo(tt,\"create\"),ii=ti&&new ti,ri={},oi=da(Jn),ai=da($n),si=da(Qn),li=da(ei),ui=da(ti),ci=_t?_t.prototype:o,di=ci?ci.valueOf:o,hi=ci?ci.toString:o;function pi(e){if(Os(e)&&!ys(e)&&!(e instanceof yi)){if(e instanceof gi)return e;if(ct.call(e,\"__wrapped__\"))return ha(e)}return new gi(e)}var fi=function(){function e(){}return function(t){if(!Cs(t))return{};if(Rt)return Rt(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function mi(){}function gi(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function yi(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=F,this.__views__=[]}function vi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Di(e,t,n,i,r,a){var s,l=t&h,u=t&p,c=t&f;if(n&&(s=r?n(e,i,r,a):n(e)),s!==o)return s;if(!Cs(e))return e;var d=ys(e);if(d){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&\"string\"==typeof e[0]&&ct.call(e,\"index\")&&(n.index=e.index,n.input=e.input);return n}(e),!l)return no(e,s)}else{var m=Wo(e),g=m==X||m==K;if(xs(e))return Zr(e,l);if(m==Q||m==j||g&&!r){if(s=u||g?{}:Vo(e),!l)return u?function(e,t){return io(e,jo(e),t)}(e,function(e,t){return e&&io(t,ol(t),e)}(s,e)):function(e,t){return io(e,Uo(e),t)}(e,Ai(s,e))}else{if(!Ct[m])return r?e:{};s=function(e,t,n){var i=e.constructor;switch(t){case le:return Jr(e);case V:case H:return new i(+e);case ue:return function(e,t){var n=t?Jr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case ce:case de:case he:case pe:case fe:case me:case ge:case ye:case ve:return $r(e,n);case Z:return new i;case J:case ie:return new i(e);case te:return function(e){var t=new e.constructor(e.source,Ge.exec(e));return t.lastIndex=e.lastIndex,t}(e);case ne:return new i;case re:return r=e,di?tt(di.call(r)):{}}var r}(e,m,l)}}a||(a=new wi);var y=a.get(e);if(y)return y;a.set(e,s),Ls(e)?e.forEach((function(i){s.add(Di(i,t,n,i,e,a))})):ks(e)&&e.forEach((function(i,r){s.set(r,Di(i,t,n,r,e,a))}));var v=d?o:(c?u?Ro:Ao:u?ol:rl)(e);return qt(v||e,(function(i,r){v&&(i=e[r=i]),Oi(s,r,Di(i,t,n,r,e,a))})),s}function Ni(e,t,n){var i=n.length;if(null==e)return!i;for(e=tt(e);i--;){var r=n[i],a=t[r],s=e[r];if(s===o&&!(r in e)||!a(s))return!1}return!0}function Fi(e,t,n){if(\"function\"!=typeof e)throw new rt(l);return ra((function(){e.apply(o,n)}),t)}function zi(e,t,n,i){var r=-1,o=Jt,s=!0,l=e.length,u=[],c=t.length;if(!l)return u;n&&(t=Qt(t,yn(n))),i?(o=$t,s=!1):t.length>=a&&(o=bn,s=!1,t=new xi(t));e:for(;++r-1},bi.prototype.set=function(e,t){var n=this.__data__,i=ki(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},_i.prototype.clear=function(){this.size=0,this.__data__={hash:new vi,map:new($n||bi),string:new vi}},_i.prototype.delete=function(e){var t=Fo(this,e).delete(e);return this.size-=t?1:0,t},_i.prototype.get=function(e){return Fo(this,e).get(e)},_i.prototype.has=function(e){return Fo(this,e).has(e)},_i.prototype.set=function(e,t){var n=Fo(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},xi.prototype.add=xi.prototype.push=function(e){return this.__data__.set(e,u),this},xi.prototype.has=function(e){return this.__data__.has(e)},wi.prototype.clear=function(){this.__data__=new bi,this.size=0},wi.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},wi.prototype.get=function(e){return this.__data__.get(e)},wi.prototype.has=function(e){return this.__data__.has(e)},wi.prototype.set=function(e,t){var n=this.__data__;if(n instanceof bi){var i=n.__data__;if(!$n||i.length0&&n(s)?t>1?Vi(s,t-1,n,i,r):en(r,s):i||(r[r.length]=s)}return r}var Hi=so(),Yi=so(!0);function qi(e,t){return e&&Hi(e,t,rl)}function Xi(e,t){return e&&Yi(e,t,rl)}function Ki(e,t){return Zt(t,(function(t){return Ss(e[t])}))}function Zi(e,t){for(var n=0,i=(t=Yr(t,e)).length;null!=e&&nt}function er(e,t){return null!=e&&ct.call(e,t)}function tr(e,t){return null!=e&&t in tt(e)}function nr(e,t,n){for(var r=n?$t:Jt,a=e[0].length,s=e.length,l=s,u=i(s),c=1/0,d=[];l--;){var h=e[l];l&&t&&(h=Qt(h,yn(t))),c=Yn(h.length,c),u[l]=!n&&(t||a>=120&&h.length>=120)?new xi(l&&h):o}h=e[0];var p=-1,f=u[0];e:for(;++p=s)return l;var u=n[i];return l*(\"desc\"==u?-1:1)}}return e.index-t.index}(e,t,n)}))}function vr(e,t,n){for(var i=-1,r=t.length,o={};++i-1;)s!==e&&Dt.call(s,l,1),Dt.call(e,l,1);return e}function _r(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;Yo(r)?Dt.call(e,r,1):zr(e,r)}}return e}function xr(e,t){return e+Bn(Kn()*(t-e+1))}function wr(e,t){var n=\"\";if(!e||t<1||t>I)return n;do{t%2&&(n+=e),(t=Bn(t/2))&&(e+=e)}while(t);return n}function Mr(e,t){return oa(ea(e,t,Pl),e+\"\")}function Sr(e){return Si(pl(e))}function Er(e,t){var n=pl(e);return la(n,Ii(t,0,n.length))}function Tr(e,t,n,i){if(!Cs(e))return e;for(var r=-1,a=(t=Yr(t,e)).length,s=a-1,l=e;null!=l&&++ro?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=i(o);++r>>1,a=e[o];null!==a&&!Ds(a)&&(n?a<=t:a=a){var c=t?null:Mo(e);if(c)return kn(c);s=!1,r=bn,u=new xi}else u=t?[]:l;e:for(;++i=i?e:Pr(e,t,n)}var Kr=Dn||function(e){return Lt.clearTimeout(e)};function Zr(e,t){if(t)return e.slice();var n=e.length,i=Ot?Ot(n):new e.constructor(n);return e.copy(i),i}function Jr(e){var t=new e.constructor(e.byteLength);return new wt(t).set(new wt(e)),t}function $r(e,t){var n=t?Jr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Qr(e,t){if(e!==t){var n=e!==o,i=null===e,r=e==e,a=Ds(e),s=t!==o,l=null===t,u=t==t,c=Ds(t);if(!l&&!c&&!a&&e>t||a&&s&&u&&!l&&!c||i&&s&&u||!n&&u||!r)return 1;if(!i&&!a&&!c&&e1?n[r-1]:o,s=r>2?n[2]:o;for(a=e.length>3&&\"function\"==typeof a?(r--,a):o,s&&qo(n[0],n[1],s)&&(a=r<3?o:a,r=1),t=tt(t);++i-1?r[a?t[s]:s]:o}}function po(e){return Po((function(t){var n=t.length,i=n,r=gi.prototype.thru;for(e&&t.reverse();i--;){var a=t[i];if(\"function\"!=typeof a)throw new rt(l);if(r&&!s&&\"wrapper\"==Io(a))var s=new gi([],!0)}for(i=s?i:n;++i1&&_.reverse(),h&&cl))return!1;var c=a.get(e);if(c&&a.get(t))return c==t;var d=-1,h=!0,p=n&g?new xi:o;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e1?\"& \":\"\")+t[i],t=t.join(n>2?\", \":\" \"),e.replace(Fe,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}(i,function(e,t){return qt(U,(function(n){var i=\"_.\"+n[0];t&n[1]&&!Jt(e,i)&&e.push(i)})),e.sort()}(function(e){var t=e.match(ze);return t?t[1].split(Be):[]}(i),n)))}function sa(e){var t=0,n=0;return function(){var i=qn(),r=P-(i-n);if(n=i,r>0){if(++t>=k)return arguments[0]}else t=0;return e.apply(o,arguments)}}function la(e,t){var n=-1,i=e.length,r=i-1;for(t=t===o?i:t;++n1?e[t-1]:o;return n=\"function\"==typeof n?(e.pop(),n):o,Ra(e,n)}));function Ba(e){var t=pi(e);return t.__chain__=!0,t}function Ua(e,t){return t(e)}var ja=Po((function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,r=function(t){return Li(t,e)};return!(t>1||this.__actions__.length)&&i instanceof yi&&Yo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:Ua,args:[r],thisArg:o}),new gi(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(o),e}))):this.thru(r)}));var Wa=ro((function(e,t,n){ct.call(e,n)?++e[n]:Ri(e,n,1)}));var Ga=ho(ga),Va=ho(ya);function Ha(e,t){return(ys(e)?qt:Bi)(e,No(t,3))}function Ya(e,t){return(ys(e)?Xt:Ui)(e,No(t,3))}var qa=ro((function(e,t,n){ct.call(e,n)?e[n].push(t):Ri(e,n,[t])}));var Xa=Mr((function(e,t,n){var r=-1,o=\"function\"==typeof t,a=bs(e)?i(e.length):[];return Bi(e,(function(e){a[++r]=o?Ht(t,e,n):ir(e,t,n)})),a})),Ka=ro((function(e,t,n){Ri(e,n,t)}));function Za(e,t){return(ys(e)?Qt:hr)(e,No(t,3))}var Ja=ro((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var $a=Mr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&qo(e,t[0],t[1])?t=[]:n>2&&qo(t[0],t[1],t[2])&&(t=[t[0]]),yr(e,Vi(t,1),[])})),Qa=Nn||function(){return Lt.Date.now()};function es(e,t,n){return t=n?o:t,t=e&&null==t?e.length:t,Eo(e,S,o,o,o,o,t)}function ts(e,t){var n;if(\"function\"!=typeof t)throw new rt(l);return e=js(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var ns=Mr((function(e,t,n){var i=y;if(n.length){var r=On(n,Do(ns));i|=w}return Eo(e,i,t,n,r)})),is=Mr((function(e,t,n){var i=y|v;if(n.length){var r=On(n,Do(is));i|=w}return Eo(t,i,e,n,r)}));function rs(e,t,n){var i,r,a,s,u,c,d=0,h=!1,p=!1,f=!0;if(\"function\"!=typeof e)throw new rt(l);function m(t){var n=i,a=r;return i=r=o,d=t,s=e.apply(a,n)}function g(e){var n=e-c;return c===o||n>=t||n<0||p&&e-d>=a}function y(){var e=Qa();if(g(e))return v(e);u=ra(y,function(e){var n=t-(e-c);return p?Yn(n,a-(e-d)):n}(e))}function v(e){return u=o,f&&i?m(e):(i=r=o,s)}function b(){var e=Qa(),n=g(e);if(i=arguments,r=this,c=e,n){if(u===o)return function(e){return d=e,u=ra(y,t),h?m(e):s}(c);if(p)return Kr(u),u=ra(y,t),m(c)}return u===o&&(u=ra(y,t)),s}return t=Gs(t)||0,Cs(n)&&(h=!!n.leading,a=(p=\"maxWait\"in n)?Hn(Gs(n.maxWait)||0,t):a,f=\"trailing\"in n?!!n.trailing:f),b.cancel=function(){u!==o&&Kr(u),d=0,i=c=r=u=o},b.flush=function(){return u===o?s:v(Qa())},b}var os=Mr((function(e,t){return Fi(e,1,t)})),as=Mr((function(e,t,n){return Fi(e,Gs(t)||0,n)}));function ss(e,t){if(\"function\"!=typeof e||null!=t&&\"function\"!=typeof t)throw new rt(l);var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(ss.Cache||_i),n}function ls(e){if(\"function\"!=typeof e)throw new rt(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ss.Cache=_i;var us=qr((function(e,t){var n=(t=1==t.length&&ys(t[0])?Qt(t[0],yn(No())):Qt(Vi(t,1),yn(No()))).length;return Mr((function(i){for(var r=-1,o=Yn(i.length,n);++r=t})),gs=rr(function(){return arguments}())?rr:function(e){return Os(e)&&ct.call(e,\"callee\")&&!It.call(e,\"callee\")},ys=i.isArray,vs=Bt?yn(Bt):function(e){return Os(e)&&$i(e)==le};function bs(e){return null!=e&&Ts(e.length)&&!Ss(e)}function _s(e){return Os(e)&&bs(e)}var xs=jn||Gl,ws=Ut?yn(Ut):function(e){return Os(e)&&$i(e)==H};function Ms(e){if(!Os(e))return!1;var t=$i(e);return t==q||t==Y||\"string\"==typeof e.message&&\"string\"==typeof e.name&&!As(e)}function Ss(e){if(!Cs(e))return!1;var t=$i(e);return t==X||t==K||t==G||t==ee}function Es(e){return\"number\"==typeof e&&e==js(e)}function Ts(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=I}function Cs(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function Os(e){return null!=e&&\"object\"==typeof e}var ks=jt?yn(jt):function(e){return Os(e)&&Wo(e)==Z};function Ps(e){return\"number\"==typeof e||Os(e)&&$i(e)==J}function As(e){if(!Os(e)||$i(e)!=Q)return!1;var t=At(e);if(null===t)return!0;var n=ct.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof n&&n instanceof n&&ut.call(n)==ft}var Rs=Wt?yn(Wt):function(e){return Os(e)&&$i(e)==te};var Ls=Gt?yn(Gt):function(e){return Os(e)&&Wo(e)==ne};function Is(e){return\"string\"==typeof e||!ys(e)&&Os(e)&&$i(e)==ie}function Ds(e){return\"symbol\"==typeof e||Os(e)&&$i(e)==re}var Ns=Vt?yn(Vt):function(e){return Os(e)&&Ts(e.length)&&!!Tt[$i(e)]};var Fs=_o(dr),zs=_o((function(e,t){return e<=t}));function Bs(e){if(!e)return[];if(bs(e))return Is(e)?Rn(e):no(e);if(zt&&e[zt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[zt]());var t=Wo(e);return(t==Z?Tn:t==ne?kn:pl)(e)}function Us(e){return e?(e=Gs(e))===L||e===-L?(e<0?-1:1)*D:e==e?e:0:0===e?e:0}function js(e){var t=Us(e),n=t%1;return t==t?n?t-n:t:0}function Ws(e){return e?Ii(js(e),0,F):0}function Gs(e){if(\"number\"==typeof e)return e;if(Ds(e))return N;if(Cs(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=Cs(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(Ie,\"\");var n=He.test(e);return n||qe.test(e)?Pt(e.slice(2),n?2:8):Ve.test(e)?N:+e}function Vs(e){return io(e,ol(e))}function Hs(e){return null==e?\"\":Nr(e)}var Ys=oo((function(e,t){if(Jo(t)||bs(t))io(t,rl(t),e);else for(var n in t)ct.call(t,n)&&Oi(e,n,t[n])})),qs=oo((function(e,t){io(t,ol(t),e)})),Xs=oo((function(e,t,n,i){io(t,ol(t),e,i)})),Ks=oo((function(e,t,n,i){io(t,rl(t),e,i)})),Zs=Po(Li);var Js=Mr((function(e,t){e=tt(e);var n=-1,i=t.length,r=i>2?t[2]:o;for(r&&qo(t[0],t[1],r)&&(i=1);++n1),t})),io(e,Ro(e),n),i&&(n=Di(n,h|p|f,Oo));for(var r=t.length;r--;)zr(n,t[r]);return n}));var ul=Po((function(e,t){return null==e?{}:function(e,t){return vr(e,t,(function(t,n){return el(e,n)}))}(e,t)}));function cl(e,t){if(null==e)return{};var n=Qt(Ro(e),(function(e){return[e]}));return t=No(t),vr(e,n,(function(e,n){return t(e,n[0])}))}var dl=So(rl),hl=So(ol);function pl(e){return null==e?[]:vn(e,rl(e))}var fl=uo((function(e,t,n){return t=t.toLowerCase(),e+(n?ml(t):t)}));function ml(e){return Ml(Hs(e).toLowerCase())}function gl(e){return(e=Hs(e))&&e.replace(Ke,wn).replace(bt,\"\")}var yl=uo((function(e,t,n){return e+(n?\"-\":\"\")+t.toLowerCase()})),vl=uo((function(e,t,n){return e+(n?\" \":\"\")+t.toLowerCase()})),bl=lo(\"toLowerCase\");var _l=uo((function(e,t,n){return e+(n?\"_\":\"\")+t.toLowerCase()}));var xl=uo((function(e,t,n){return e+(n?\" \":\"\")+Ml(t)}));var wl=uo((function(e,t,n){return e+(n?\" \":\"\")+t.toUpperCase()})),Ml=lo(\"toUpperCase\");function Sl(e,t,n){return e=Hs(e),(t=n?o:t)===o?function(e){return Mt.test(e)}(e)?function(e){return e.match(xt)||[]}(e):function(e){return e.match(Ue)||[]}(e):e.match(t)||[]}var El=Mr((function(e,t){try{return Ht(e,o,t)}catch(e){return Ms(e)?e:new $e(e)}})),Tl=Po((function(e,t){return qt(t,(function(t){t=ca(t),Ri(e,t,ns(e[t],e))})),e}));function Cl(e){return function(){return e}}var Ol=po(),kl=po(!0);function Pl(e){return e}function Al(e){return lr(\"function\"==typeof e?e:Di(e,h))}var Rl=Mr((function(e,t){return function(n){return ir(n,e,t)}})),Ll=Mr((function(e,t){return function(n){return ir(e,n,t)}}));function Il(e,t,n){var i=rl(t),r=Ki(t,i);null!=n||Cs(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=Ki(t,rl(t)));var o=!(Cs(n)&&\"chain\"in n&&!n.chain),a=Ss(e);return qt(r,(function(n){var i=t[n];e[n]=i,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__),r=n.__actions__=no(this.__actions__);return r.push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,en([this.value()],arguments))})})),e}function Dl(){}var Nl=yo(Qt),Fl=yo(Kt),zl=yo(rn);function Bl(e){return Xo(e)?hn(ca(e)):function(e){return function(t){return Zi(t,e)}}(e)}var Ul=bo(),jl=bo(!0);function Wl(){return[]}function Gl(){return!1}var Vl=go((function(e,t){return e+t}),0),Hl=wo(\"ceil\"),Yl=go((function(e,t){return e/t}),1),ql=wo(\"floor\");var Xl,Kl=go((function(e,t){return e*t}),1),Zl=wo(\"round\"),Jl=go((function(e,t){return e-t}),0);return pi.after=function(e,t){if(\"function\"!=typeof t)throw new rt(l);return e=js(e),function(){if(--e<1)return t.apply(this,arguments)}},pi.ary=es,pi.assign=Ys,pi.assignIn=qs,pi.assignInWith=Xs,pi.assignWith=Ks,pi.at=Zs,pi.before=ts,pi.bind=ns,pi.bindAll=Tl,pi.bindKey=is,pi.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return ys(e)?e:[e]},pi.chain=Ba,pi.chunk=function(e,t,n){t=(n?qo(e,t,n):t===o)?1:Hn(js(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var a=0,s=0,l=i(zn(r/t));ar?0:r+n),(i=i===o||i>r?r:js(i))<0&&(i+=r),i=n>i?0:Ws(i);n>>0)?(e=Hs(e))&&(\"string\"==typeof t||null!=t&&!Rs(t))&&!(t=Nr(t))&&En(e)?Xr(Rn(e),0,n):e.split(t,n):[]},pi.spread=function(e,t){if(\"function\"!=typeof e)throw new rt(l);return t=null==t?0:Hn(js(t),0),Mr((function(n){var i=n[t],r=Xr(n,0,t);return i&&en(r,i),Ht(e,this,r)}))},pi.tail=function(e){var t=null==e?0:e.length;return t?Pr(e,1,t):[]},pi.take=function(e,t,n){return e&&e.length?Pr(e,0,(t=n||t===o?1:js(t))<0?0:t):[]},pi.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Pr(e,(t=i-(t=n||t===o?1:js(t)))<0?0:t,i):[]},pi.takeRightWhile=function(e,t){return e&&e.length?Ur(e,No(t,3),!1,!0):[]},pi.takeWhile=function(e,t){return e&&e.length?Ur(e,No(t,3)):[]},pi.tap=function(e,t){return t(e),e},pi.throttle=function(e,t,n){var i=!0,r=!0;if(\"function\"!=typeof e)throw new rt(l);return Cs(n)&&(i=\"leading\"in n?!!n.leading:i,r=\"trailing\"in n?!!n.trailing:r),rs(e,t,{leading:i,maxWait:t,trailing:r})},pi.thru=Ua,pi.toArray=Bs,pi.toPairs=dl,pi.toPairsIn=hl,pi.toPath=function(e){return ys(e)?Qt(e,ca):Ds(e)?[e]:no(ua(Hs(e)))},pi.toPlainObject=Vs,pi.transform=function(e,t,n){var i=ys(e),r=i||xs(e)||Ns(e);if(t=No(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:Cs(e)&&Ss(o)?fi(At(e)):{}}return(r?qt:qi)(e,(function(e,i,r){return t(n,e,i,r)})),n},pi.unary=function(e){return es(e,1)},pi.union=Oa,pi.unionBy=ka,pi.unionWith=Pa,pi.uniq=function(e){return e&&e.length?Fr(e):[]},pi.uniqBy=function(e,t){return e&&e.length?Fr(e,No(t,2)):[]},pi.uniqWith=function(e,t){return t=\"function\"==typeof t?t:o,e&&e.length?Fr(e,o,t):[]},pi.unset=function(e,t){return null==e||zr(e,t)},pi.unzip=Aa,pi.unzipWith=Ra,pi.update=function(e,t,n){return null==e?e:Br(e,t,Hr(n))},pi.updateWith=function(e,t,n,i){return i=\"function\"==typeof i?i:o,null==e?e:Br(e,t,Hr(n),i)},pi.values=pl,pi.valuesIn=function(e){return null==e?[]:vn(e,ol(e))},pi.without=La,pi.words=Sl,pi.wrap=function(e,t){return cs(Hr(t),e)},pi.xor=Ia,pi.xorBy=Da,pi.xorWith=Na,pi.zip=Fa,pi.zipObject=function(e,t){return Gr(e||[],t||[],Oi)},pi.zipObjectDeep=function(e,t){return Gr(e||[],t||[],Tr)},pi.zipWith=za,pi.entries=dl,pi.entriesIn=hl,pi.extend=qs,pi.extendWith=Xs,Il(pi,pi),pi.add=Vl,pi.attempt=El,pi.camelCase=fl,pi.capitalize=ml,pi.ceil=Hl,pi.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=Gs(n))==n?n:0),t!==o&&(t=(t=Gs(t))==t?t:0),Ii(Gs(e),t,n)},pi.clone=function(e){return Di(e,f)},pi.cloneDeep=function(e){return Di(e,h|f)},pi.cloneDeepWith=function(e,t){return Di(e,h|f,t=\"function\"==typeof t?t:o)},pi.cloneWith=function(e,t){return Di(e,f,t=\"function\"==typeof t?t:o)},pi.conformsTo=function(e,t){return null==t||Ni(e,t,rl(t))},pi.deburr=gl,pi.defaultTo=function(e,t){return null==e||e!=e?t:e},pi.divide=Yl,pi.endsWith=function(e,t,n){e=Hs(e),t=Nr(t);var i=e.length,r=n=n===o?i:Ii(js(n),0,i);return(n-=t.length)>=0&&e.slice(n,r)==t},pi.eq=ps,pi.escape=function(e){return(e=Hs(e))&&Ee.test(e)?e.replace(Me,Mn):e},pi.escapeRegExp=function(e){return(e=Hs(e))&&Le.test(e)?e.replace(Re,\"\\\\$&\"):e},pi.every=function(e,t,n){var i=ys(e)?Kt:ji;return n&&qo(e,t,n)&&(t=o),i(e,No(t,3))},pi.find=Ga,pi.findIndex=ga,pi.findKey=function(e,t){return an(e,No(t,3),qi)},pi.findLast=Va,pi.findLastIndex=ya,pi.findLastKey=function(e,t){return an(e,No(t,3),Xi)},pi.floor=ql,pi.forEach=Ha,pi.forEachRight=Ya,pi.forIn=function(e,t){return null==e?e:Hi(e,No(t,3),ol)},pi.forInRight=function(e,t){return null==e?e:Yi(e,No(t,3),ol)},pi.forOwn=function(e,t){return e&&qi(e,No(t,3))},pi.forOwnRight=function(e,t){return e&&Xi(e,No(t,3))},pi.get=Qs,pi.gt=fs,pi.gte=ms,pi.has=function(e,t){return null!=e&&Go(e,t,er)},pi.hasIn=el,pi.head=ba,pi.identity=Pl,pi.includes=function(e,t,n,i){e=bs(e)?e:pl(e),n=n&&!i?js(n):0;var r=e.length;return n<0&&(n=Hn(r+n,0)),Is(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&ln(e,t,n)>-1},pi.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:js(n);return r<0&&(r=Hn(i+r,0)),ln(e,t,r)},pi.inRange=function(e,t,n){return t=Us(t),n===o?(n=t,t=0):n=Us(n),function(e,t,n){return e>=Yn(t,n)&&e=-I&&e<=I},pi.isSet=Ls,pi.isString=Is,pi.isSymbol=Ds,pi.isTypedArray=Ns,pi.isUndefined=function(e){return e===o},pi.isWeakMap=function(e){return Os(e)&&Wo(e)==ae},pi.isWeakSet=function(e){return Os(e)&&$i(e)==se},pi.join=function(e,t){return null==e?\"\":Gn.call(e,t)},pi.kebabCase=yl,pi.last=Ma,pi.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i;return n!==o&&(r=(r=js(n))<0?Hn(i+r,0):Yn(r,i-1)),t==t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,r):sn(e,cn,r,!0)},pi.lowerCase=vl,pi.lowerFirst=bl,pi.lt=Fs,pi.lte=zs,pi.max=function(e){return e&&e.length?Wi(e,Pl,Qi):o},pi.maxBy=function(e,t){return e&&e.length?Wi(e,No(t,2),Qi):o},pi.mean=function(e){return dn(e,Pl)},pi.meanBy=function(e,t){return dn(e,No(t,2))},pi.min=function(e){return e&&e.length?Wi(e,Pl,dr):o},pi.minBy=function(e,t){return e&&e.length?Wi(e,No(t,2),dr):o},pi.stubArray=Wl,pi.stubFalse=Gl,pi.stubObject=function(){return{}},pi.stubString=function(){return\"\"},pi.stubTrue=function(){return!0},pi.multiply=Kl,pi.nth=function(e,t){return e&&e.length?gr(e,js(t)):o},pi.noConflict=function(){return Lt._===this&&(Lt._=mt),this},pi.noop=Dl,pi.now=Qa,pi.pad=function(e,t,n){e=Hs(e);var i=(t=js(t))?An(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return vo(Bn(r),n)+e+vo(zn(r),n)},pi.padEnd=function(e,t,n){e=Hs(e);var i=(t=js(t))?An(e):0;return t&&it){var i=e;e=t,t=i}if(n||e%1||t%1){var r=Kn();return Yn(e+r*(t-e+kt(\"1e-\"+((r+\"\").length-1))),t)}return xr(e,t)},pi.reduce=function(e,t,n){var i=ys(e)?tn:fn,r=arguments.length<3;return i(e,No(t,4),n,r,Bi)},pi.reduceRight=function(e,t,n){var i=ys(e)?nn:fn,r=arguments.length<3;return i(e,No(t,4),n,r,Ui)},pi.repeat=function(e,t,n){return t=(n?qo(e,t,n):t===o)?1:js(t),wr(Hs(e),t)},pi.replace=function(){var e=arguments,t=Hs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},pi.result=function(e,t,n){var i=-1,r=(t=Yr(t,e)).length;for(r||(r=1,e=o);++iI)return[];var n=F,i=Yn(e,F);t=No(t),e-=F;for(var r=gn(i,t);++n=a)return e;var l=n-An(i);if(l<1)return i;var u=s?Xr(s,0,l).join(\"\"):e.slice(0,l);if(r===o)return u+i;if(s&&(l+=u.length-l),Rs(r)){if(e.slice(l).search(r)){var c,d=u;for(r.global||(r=nt(r.source,Hs(Ge.exec(r))+\"g\")),r.lastIndex=0;c=r.exec(d);)var h=c.index;u=u.slice(0,h===o?l:h)}}else if(e.indexOf(Nr(r),l)!=l){var p=u.lastIndexOf(r);p>-1&&(u=u.slice(0,p))}return u+i},pi.unescape=function(e){return(e=Hs(e))&&Se.test(e)?e.replace(we,Ln):e},pi.uniqueId=function(e){var t=++dt;return Hs(e)+t},pi.upperCase=wl,pi.upperFirst=Ml,pi.each=Ha,pi.eachRight=Ya,pi.first=ba,Il(pi,(Xl={},qi(pi,(function(e,t){ct.call(pi.prototype,t)||(Xl[t]=e)})),Xl),{chain:!1}),pi.VERSION=\"4.17.15\",qt([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],(function(e){pi[e].placeholder=pi})),qt([\"drop\",\"take\"],(function(e,t){yi.prototype[e]=function(n){n=n===o?1:Hn(js(n),0);var i=this.__filtered__&&!t?new yi(this):this.clone();return i.__filtered__?i.__takeCount__=Yn(n,i.__takeCount__):i.__views__.push({size:Yn(n,F),type:e+(i.__dir__<0?\"Right\":\"\")}),i},yi.prototype[e+\"Right\"]=function(t){return this.reverse()[e](t).reverse()}})),qt([\"filter\",\"map\",\"takeWhile\"],(function(e,t){var n=t+1,i=n==A||3==n;yi.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:No(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}})),qt([\"head\",\"last\"],(function(e,t){var n=\"take\"+(t?\"Right\":\"\");yi.prototype[e]=function(){return this[n](1).value()[0]}})),qt([\"initial\",\"tail\"],(function(e,t){var n=\"drop\"+(t?\"\":\"Right\");yi.prototype[e]=function(){return this.__filtered__?new yi(this):this[n](1)}})),yi.prototype.compact=function(){return this.filter(Pl)},yi.prototype.find=function(e){return this.filter(e).head()},yi.prototype.findLast=function(e){return this.reverse().find(e)},yi.prototype.invokeMap=Mr((function(e,t){return\"function\"==typeof e?new yi(this):this.map((function(n){return ir(n,e,t)}))})),yi.prototype.reject=function(e){return this.filter(ls(No(e)))},yi.prototype.slice=function(e,t){e=js(e);var n=this;return n.__filtered__&&(e>0||t<0)?new yi(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=js(t))<0?n.dropRight(-t):n.take(t-e)),n)},yi.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},yi.prototype.toArray=function(){return this.take(F)},qi(yi.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),r=pi[i?\"take\"+(\"last\"==t?\"Right\":\"\"):t],a=i||/^find/.test(t);r&&(pi.prototype[t]=function(){var t=this.__wrapped__,s=i?[1]:arguments,l=t instanceof yi,u=s[0],c=l||ys(t),d=function(e){var t=r.apply(pi,en([e],s));return i&&h?t[0]:t};c&&n&&\"function\"==typeof u&&1!=u.length&&(l=c=!1);var h=this.__chain__,p=!!this.__actions__.length,f=a&&!h,m=l&&!p;if(!a&&c){t=m?t:new yi(this);var g=e.apply(t,s);return g.__actions__.push({func:Ua,args:[d],thisArg:o}),new gi(g,h)}return f&&m?e.apply(this,s):(g=this.thru(d),f?i?g.value()[0]:g.value():g)})})),qt([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],(function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?\"tap\":\"thru\",i=/^(?:pop|shift)$/.test(e);pi.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(ys(r)?r:[],e)}return this[n]((function(n){return t.apply(ys(n)?n:[],e)}))}})),qi(yi.prototype,(function(e,t){var n=pi[t];if(n){var i=n.name+\"\";ct.call(ri,i)||(ri[i]=[]),ri[i].push({name:t,func:n})}})),ri[fo(o,v).name]=[{name:\"wrapper\",func:o}],yi.prototype.clone=function(){var e=new yi(this.__wrapped__);return e.__actions__=no(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=no(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=no(this.__views__),e},yi.prototype.reverse=function(){if(this.__filtered__){var e=new yi(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},yi.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=ys(e),i=t<0,r=n?e.length:0,o=function(e,t,n){var i=-1,r=n.length;for(;++i=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},pi.prototype.plant=function(e){for(var t,n=this;n instanceof mi;){var i=ha(n);i.__index__=0,i.__values__=o,t?r.__wrapped__=i:t=i;var r=i;n=n.__wrapped__}return r.__wrapped__=e,t},pi.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof yi){var t=e;return this.__actions__.length&&(t=new yi(this)),(t=t.reverse()).__actions__.push({func:Ua,args:[Ca],thisArg:o}),new gi(t,this.__chain__)}return this.thru(Ca)},pi.prototype.toJSON=pi.prototype.valueOf=pi.prototype.value=function(){return jr(this.__wrapped__,this.__actions__)},pi.prototype.first=pi.prototype.head,zt&&(pi.prototype[zt]=function(){return this}),pi}();Lt._=In,(r=function(){return In}.call(t,n,t,i))===o||(i.exports=r)}).call(this)}).call(this,n(47),n(74)(e))},function(e,t,n){e.exports={default:n(191),__esModule:!0}},function(e,t,n){e.exports={default:n(193),__esModule:!0}},function(e,t,n){\"use strict\";var i,r,o=e.exports=n(30),a=n(157);o.codegen=n(413),o.fetch=n(414),o.path=n(415),o.fs=o.inquire(\"fs\"),o.toArray=function(e){if(e){for(var t=Object.keys(e),n=new Array(t.length),i=0;i3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=new i.MeshBasicMaterial({map:d.load(e),transparent:!0,depthWrite:!1}),l=new i.Mesh(new i.PlaneGeometry(t,n),s);return l.material.side=i.DoubleSide,l.position.set(r,o,a),l.overdraw=!0,l},t.drawDashedLineFromPoints=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16711680,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:4,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:2,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,l=!(arguments.length>7&&void 0!==arguments[7])||arguments[7],u=(new i.Path).createGeometry(e);u.computeLineDistances();var c=new i.LineDashedMaterial({color:t,dashSize:r,linewidth:n,gapSize:o,transparent:!0,opacity:s}),d=new i.Line(u,c);h(d,a),d.matrixAutoUpdate=l,l||d.updateMatrix();return d},t.drawCircle=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:32,r=new i.CircleGeometry(e,n);return new i.Mesh(r,t)},t.drawEllipse=function(e,t,n){var r=new i.Shape;r.absellipse(0,0,e,t,0,2*Math.PI,!1,0);var o=new i.ShapeBufferGeometry(r);return new i.Mesh(o,n)},t.drawThickBandFromPoints=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=u(e.map((function(e){return[e.x,e.y]}))),s=new i.ShaderMaterial(c({side:i.DoubleSide,diffuse:n,thickness:t,opacity:r,transparent:!0})),l=new i.Mesh(a,s);return h(l,o),l},t.drawSegmentsFromPoints=p,t.drawBox=function(e,t,n){var r=new i.CubeGeometry(e.x,e.y,e.z),o=new i.MeshBasicMaterial({color:t}),a=new i.Mesh(r,o),s=new i.BoxHelper(a);return s.material.linewidth=n,s},t.drawDashedBox=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.02,a=new i.CubeGeometry(e.x,e.y,e.z);a=new i.EdgesGeometry(a),(a=(new i.Geometry).fromBufferGeometry(a)).computeLineDistances();var s=new i.LineDashedMaterial({color:t,linewidth:n,dashSize:r,gapSize:o});return new i.LineSegments(a,s)},t.drawArrow=function(e,t,n,r,o){var a=new i.Vector3(0,e,0),s=new i.Vector3(0,0,0),l=new i.Vector3(r/2,e-n,0),u=new i.Vector3(-r/2,e-n,0);return p([s,a,l,a,u],o,t,1)},t.getShapeGeometryFromPoints=f,t.drawShapeFromPoints=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new i.MeshBasicMaterial({color:16711680}),n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=f(e,n),s=new i.Mesh(a,t);h(s,r),s.matrixAutoUpdate=o,!1===o&&s.updateMatrix();return s},t.disposeMeshGroup=function(e){if(!e)return;e.traverse((function(e){void 0!==e.geometry&&(e.geometry.dispose(),e.material.dispose())}))},t.disposeMesh=function(e){if(!e)return;e.geometry.dispose(),e.material.dispose()};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),r=a(n(226)),o=a(n(235));function a(e){return e&&e.__esModule?e:{default:e}}var s=n(14),l=.04,u=(0,r.default)(i),c=(0,o.default)(i),d=new i.TextureLoader;function h(e,t){if(t){var n=t*l;e.position.z+=n}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16711680,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,l=(new i.Path).createGeometry(e),u=new i.LineBasicMaterial({color:t,linewidth:n,transparent:a,opacity:s}),c=new i.Line(l,u);return h(c,r),c.matrixAutoUpdate=o,!1===o&&c.updateMatrix(),c}function f(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new i.Shape;if(t){n.moveTo(e[0].x,e[0].y);for(var r=1;r2&&void 0!==arguments[2]&&arguments[2];this.coordinates.isInitialized()&&!n||this.coordinates.initialize(e,t)}},{key:\"updateDimension\",value:function(e,t){e=e||(this.camera.aspect=e/t,this.camera.updateProjectionMatrix(),this.renderer.setSize(e,t),this.dimension.width=e,this.dimension.height=t)}},{key:\"enableOrbitControls\",value:function(e){var t=this.adc.mesh.position;this.camera.position.set(t.x,t.y,50),\"FLU\"===this.coordinates.systemName?this.camera.up.set(1,0,0):this.camera.up.set(0,0,1);var n=new o.Vector3(t.x,t.y,0);this.camera.lookAt(n),this.controls.target0=n.clone(),this.controls.position0=this.camera.position.clone(),this.controls.zoom0=this.camera.zoom,this.controls.minDistance=4,this.controls.maxDistance=4e3,this.controls.minPolarAngle=0,this.controls.maxPolarAngle=Math.PI/2,this.controls.enabled=!0,this.controls.enableRotate=e,this.controls.reset()}},{key:\"adjustCamera\",value:function(e,t){if(!this.routingEditor.isInEditingMode()){switch(this.camera.fov=PARAMETERS.camera[t].fov,this.camera.near=PARAMETERS.camera[t].near,this.camera.far=PARAMETERS.camera[t].far,t){case\"Default\":var n=this.viewDistance*Math.cos(e.rotation.y)*Math.cos(this.viewAngle),i=this.viewDistance*Math.sin(e.rotation.y)*Math.cos(this.viewAngle),r=this.viewDistance*Math.sin(this.viewAngle);this.camera.position.x=e.position.x-n,this.camera.position.y=e.position.y-i,this.camera.position.z=e.position.z+r,this.camera.up.set(0,0,1),this.camera.lookAt({x:e.position.x+n,y:e.position.y+i,z:0}),this.controls.enabled=!1;break;case\"Near\":n=.5*this.viewDistance*Math.cos(e.rotation.y)*Math.cos(this.viewAngle),i=.5*this.viewDistance*Math.sin(e.rotation.y)*Math.cos(this.viewAngle),r=.5*this.viewDistance*Math.sin(this.viewAngle),this.camera.position.x=e.position.x-n,this.camera.position.y=e.position.y-i,this.camera.position.z=e.position.z+r,this.camera.up.set(0,0,1),this.camera.lookAt({x:e.position.x+n,y:e.position.y+i,z:0}),this.controls.enabled=!1;break;case\"Overhead\":i=.5*this.viewDistance*Math.sin(e.rotation.y)*Math.cos(this.viewAngle),r=2*this.viewDistance*Math.sin(this.viewAngle),this.camera.position.x=e.position.x,this.camera.position.y=e.position.y+i,this.camera.position.z=2*(e.position.z+r),\"FLU\"===this.coordinates.systemName?this.camera.up.set(1,0,0):this.camera.up.set(0,1,0),this.camera.lookAt({x:e.position.x,y:e.position.y+i,z:0}),this.controls.enabled=!1;break;case\"Map\":this.controls.enabled||this.enableOrbitControls(!0);break;case\"CameraView\":var o=this.cameraData.get(),a=o.position,s=o.rotation,l=this.coordinates.applyOffset(a),u=l.x,c=l.y,d=l.z;this.camera.position.set(u,c,d),this.camera.rotation.set(s.x+Math.PI,-s.y,-s.z),this.controls.enabled=!1;var h=document.getElementById(\"camera-image\");h&&this.cameraData.imageSrcData&&(h.src=this.cameraData.imageSrcData)}this.camera.updateProjectionMatrix()}}},{key:\"enableRouteEditing\",value:function(){this.enableOrbitControls(!1),this.routingEditor.enableEditingMode(this.camera,this.adc),document.getElementById(this.canvasId).addEventListener(\"mousedown\",this.onMouseDownHandler,!1)}},{key:\"disableRouteEditing\",value:function(){this.routingEditor.disableEditingMode(this.scene);var e=document.getElementById(this.canvasId);e&&e.removeEventListener(\"mousedown\",this.onMouseDownHandler,!1)}},{key:\"addDefaultEndPoint\",value:function(e){for(var t=0;t1&&void 0!==arguments[1]&&arguments[1];t&&this.map.removeAllElements(this.scene),this.map.appendMapData(e,this.coordinates,this.scene)}},{key:\"updatePointCloud\",value:function(e){this.coordinates.isInitialized()&&this.adc.mesh&&this.pointCloud.update(e,this.adc.mesh)}},{key:\"updateMapIndex\",value:function(e,t,n){this.routingEditor.isInEditingMode()&&PARAMETERS.routingEditor.radiusOfMapRequest!==n||this.map.updateIndex(e,t,this.scene)}},{key:\"isMobileDevice\",value:function(){return navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPod/i)}},{key:\"getGeolocation\",value:function(e){if(this.coordinates.isInitialized()){var t=e.currentTarget.getBoundingClientRect(),n=new o.Vector3((e.clientX-t.left)/this.dimension.width*2-1,-(e.clientY-t.top)/this.dimension.height*2+1,0);n.unproject(this.camera);var i=n.sub(this.camera.position).normalize(),r=-this.camera.position.z/i.z,a=this.camera.position.clone().add(i.multiplyScalar(r));return this.coordinates.applyOffset(a,!0)}}},{key:\"getMouseOverLanes\",value:function(e){var t=e.currentTarget.getBoundingClientRect(),n=new o.Vector3((e.clientX-t.left)/this.dimension.width*2-1,-(e.clientY-t.top)/this.dimension.height*2+1,0),i=new o.Raycaster;i.setFromCamera(n,this.camera);var r=this.map.data.lane.reduce((function(e,t){return e.concat(t.drewObjects)}),[]);return i.intersectObjects(r).map((function(e){return e.object.name}))}}]),e}());t.default=S},function(e,t,n){\"use strict\";(function(e){var i=t;function r(e,t,n){for(var i=Object.keys(t),r=0;r0)},i.Buffer=function(){try{var e=i.inquire(\"buffer\").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return\"number\"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):\"undefined\"==typeof Uint8Array?e:new Uint8Array(e)},i.Array=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire(\"long\"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var n=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},i.merge=r,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=o,i.ProtocolError=o(\"ProtocolError\"),i.oneOfGetter=function(e){for(var t={},n=0;n-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},i.oneOfSetter=function(e){return function(t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0;if(e.constructor===Array&&e.length>0)for(;t1&&void 0!==arguments[1]&&arguments[1],n=new Date(e),i=n.getHours(),r=n.getMinutes(),o=n.getSeconds(),a=(i=i<10?\"0\"+i:i)+\":\"+(r=r<10?\"0\"+r:r)+\":\"+(o=o<10?\"0\"+o:o);if(t){var s=n.getMilliseconds();s<10?s=\"00\"+s:s<100&&(s=\"0\"+s),a+=\":\"+s}return a},t.calculateLaneMarkerPoints=function(e,t){if(!e||!t)return[];for(var n=e.positionX,i=e.positionY,r=e.heading,a=t.c0Position,s=t.c1HeadingAngle,l=t.c2Curvature,u=t.c3CurvatureDerivative,c=t.viewRange,d=[u,l,s,a],h=[],p=0;p=t.length?{value:void 0,done:!0}:(e=i(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t){e.exports={}},function(e,t,n){e.exports={default:n(239),__esModule:!0}},function(e,t,n){\"use strict\";e.exports=o,o.className=\"ReflectionObject\";var i,r=n(17);function o(e,t){if(!r.isString(e))throw TypeError(\"name must be a string\");if(t&&!r.isObject(t))throw TypeError(\"options must be an object\");this.options=t,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(o.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(\".\")}}}),o.prototype.toJSON=function(){throw Error()},o.prototype.onAdd=function(e){this.parent&&this.parent!==e&&this.parent.remove(this),this.parent=e,this.resolved=!1;var t=e.root;t instanceof i&&t._handleAdd(this)},o.prototype.onRemove=function(e){var t=e.root;t instanceof i&&t._handleRemove(this),this.parent=null,this.resolved=!1},o.prototype.resolve=function(){return this.resolved?this:(this.root instanceof i&&(this.resolved=!0),this)},o.prototype.getOption=function(e){if(this.options)return this.options[e]},o.prototype.setOption=function(e,t,n){return n&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},o.prototype.setOptions=function(e,t){if(e)for(var n=Object.keys(e),i=0;ib;b++)if((g=t?v(a(f=e[b])[0],f[1]):v(e[b]))===u||g===c)return g}else for(m=y.call(e);!(f=m.next()).done;)if((g=r(m,v,f.value,t))===u||g===c)return g}).BREAK=u,t.RETURN=c},function(e,t,n){\"use strict\";e.exports=function(){return new Worker(n.p+\"worker.bundle.js\")}},function(e,t,n){\"use strict\";e.exports=c;var i=n(45);((c.prototype=Object.create(i.prototype)).constructor=c).className=\"Namespace\";var r,o,a,s=n(46),l=n(17);function u(e,t){if(e&&e.length){for(var n={},i=0;i=t)return!0;return!1},c.isReservedName=function(e,t){if(e)for(var n=0;n0;){var i=e.shift();if(n.nested&&n.nested[i]){if(!((n=n.nested[i])instanceof c))throw Error(\"path conflicts with non-namespace objects\")}else n.add(n=new c(i))}return t&&n.addJSON(t),n},c.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t-1)return i}else if(i instanceof c&&(i=i.lookup(e.slice(1),t,!0)))return i}else for(var r=0;r=0&&c.splice(t,1)}function g(e){var t=document.createElement(\"style\");return e.attrs.type=\"text/css\",y(t,e.attrs),f(e,t),t}function y(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function v(e,t){var n,i,r,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var a=u++;n=l||(l=g(t)),i=x.bind(null,n,a,!1),r=x.bind(null,n,a,!0)}else e.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(e){var t=document.createElement(\"link\");return e.attrs.type=\"text/css\",e.attrs.rel=\"stylesheet\",y(t,e.attrs),f(e,t),t}(t),i=M.bind(null,n,t),r=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=g(t),i=w.bind(null,n),r=function(){m(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}e.exports=function(e,t){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(t=t||{}).attrs=\"object\"==typeof t.attrs?t.attrs:{},t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto=\"head\"),t.insertAt||(t.insertAt=\"bottom\");var n=p(e,t);return h(n,t),function(e){for(var i=[],r=0;r0?r(i(e),9007199254740991):0}},function(e,t){var n=0,i=Math.random();e.exports=function(e){return\"Symbol(\".concat(void 0===e?\"\":e,\")_\",(++n+i).toString(36))}},function(e,t,n){var i=n(65)(\"meta\"),r=n(22),o=n(38),a=n(24).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(37)((function(){return l(Object.preventExtensions({}))})),c=function(e){a(e,i,{value:{i:\"O\"+ ++s,w:{}}})},d=e.exports={KEY:i,NEED:!1,fastKey:function(e,t){if(!r(e))return\"symbol\"==typeof e?e:(\"string\"==typeof e?\"S\":\"P\")+e;if(!o(e,i)){if(!l(e))return\"F\";if(!t)return\"E\";c(e)}return e[i].i},getWeak:function(e,t){if(!o(e,i)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[i].w},onFreeze:function(e){return u&&d.NEED&&l(e)&&!o(e,i)&&c(e),e}}},function(e,t,n){var i=n(25),r=n(116),o=n(84),a=n(82)(\"IE_PROTO\"),s=function(){},l=function(){var e,t=n(75)(\"iframe\"),i=o.length;for(t.style.display=\"none\",n(117).appendChild(t),t.src=\"javascript:\",(e=t.contentWindow.document).open(),e.write(\"