From 4b4bb3b0ab68f659ab605f57501f8b3163446627 Mon Sep 17 00:00:00 2001 From: Nordi98 Date: Mon, 4 Aug 2025 20:32:58 +0200 Subject: [PATCH] ed --- resources/[carscripts]/jg-dealerships/.fxap | Bin 0 -> 178 bytes .../[carscripts]/jg-dealerships/README.md | 17 + .../jg-dealerships/client/cl-admin.lua | Bin 0 -> 2408 bytes .../jg-dealerships/client/cl-direct-sales.lua | Bin 0 -> 2700 bytes .../client/cl-display-vehicles.lua | Bin 0 -> 9018 bytes .../jg-dealerships/client/cl-employees.lua | Bin 0 -> 1350 bytes .../jg-dealerships/client/cl-finance.lua | Bin 0 -> 1168 bytes .../jg-dealerships/client/cl-locations.lua | 141 +++++ .../jg-dealerships/client/cl-main.lua | Bin 0 -> 3810 bytes .../jg-dealerships/client/cl-management.lua | Bin 0 -> 3314 bytes .../jg-dealerships/client/cl-purchase.lua | 88 +++ .../jg-dealerships/client/cl-sell-vehicle.lua | Bin 0 -> 1852 bytes .../jg-dealerships/client/cl-showroom.lua | Bin 0 -> 8275 bytes .../jg-dealerships/client/cl-spawn.lua | Bin 0 -> 6156 bytes .../jg-dealerships/client/cl-test-drive.lua | Bin 0 -> 2954 bytes .../jg-dealerships/config/config-cl.lua | 43 ++ .../jg-dealerships/config/config-sv.lua | 65 +++ .../jg-dealerships/config/config.lua | 307 +++++++++++ .../jg-dealerships/framework/cl-functions.lua | 415 +++++++++++++++ .../jg-dealerships/framework/esx/cl-esx.lua | 21 + .../jg-dealerships/framework/main.lua | 35 ++ .../jg-dealerships/framework/qb/cl-qb.lua | 32 ++ .../jg-dealerships/framework/qbx/cl-qbx.lua | 27 + .../jg-dealerships/framework/sv-functions.lua | 499 ++++++++++++++++++ .../jg-dealerships/fxmanifest.lua | 57 ++ .../jg-dealerships/install/run-esx.sql | 85 +++ .../jg-dealerships/install/run-qb.sql | 85 +++ .../jg-dealerships/locales/ar.lua | 219 ++++++++ .../jg-dealerships/locales/cn.lua | 220 ++++++++ .../jg-dealerships/locales/cs.lua | 219 ++++++++ .../jg-dealerships/locales/de.lua | 219 ++++++++ .../jg-dealerships/locales/en.lua | 219 ++++++++ .../jg-dealerships/locales/es.lua | 219 ++++++++ .../jg-dealerships/locales/fr.lua | 221 ++++++++ .../jg-dealerships/locales/hu.lua | 219 ++++++++ .../jg-dealerships/locales/it.lua | 220 ++++++++ .../jg-dealerships/locales/ja.lua | 217 ++++++++ .../jg-dealerships/locales/lt.lua | 219 ++++++++ .../jg-dealerships/locales/nl.lua | 219 ++++++++ .../jg-dealerships/locales/no.lua | 219 ++++++++ .../jg-dealerships/locales/pl.lua | 219 ++++++++ .../jg-dealerships/locales/pt.lua | 219 ++++++++ .../jg-dealerships/locales/sv.lua | 219 ++++++++ .../jg-dealerships/locales/tr.lua | 219 ++++++++ .../jg-dealerships/locales/vi.lua | 144 +++++ .../jg-dealerships/server/sv-admin.lua | Bin 0 -> 10552 bytes .../jg-dealerships/server/sv-direct-sales.lua | Bin 0 -> 4344 bytes .../server/sv-display-vehicles.lua | Bin 0 -> 1951 bytes .../jg-dealerships/server/sv-employees.lua | Bin 0 -> 5452 bytes .../jg-dealerships/server/sv-finance.lua | Bin 0 -> 7238 bytes .../jg-dealerships/server/sv-initsql.lua | Bin 0 -> 1212 bytes .../jg-dealerships/server/sv-locations.lua | Bin 0 -> 1041 bytes .../jg-dealerships/server/sv-main.lua | Bin 0 -> 2420 bytes .../jg-dealerships/server/sv-management.lua | Bin 0 -> 12279 bytes .../jg-dealerships/server/sv-purchase.lua | 182 +++++++ .../jg-dealerships/server/sv-sell-vehicle.lua | Bin 0 -> 3712 bytes .../jg-dealerships/server/sv-showroom.lua | Bin 0 -> 3035 bytes .../jg-dealerships/server/sv-spawn.lua | Bin 0 -> 3032 bytes .../jg-dealerships/server/sv-test-drive.lua | Bin 0 -> 2414 bytes .../server/sv-version-check.lua | Bin 0 -> 1909 bytes .../jg-dealerships/server/sv-webhooks.lua | 68 +++ .../jg-dealerships/shared/main.lua | 112 ++++ .../jg-dealerships/vehicle_images/README.md | 6 + .../web/dist/assets/index-90aa1eef.js | 77 +++ .../web/dist/assets/index-a42dd07c.css | 5 + .../web/dist/assets/loading-f9361a1d.gif | Bin 0 -> 64374 bytes .../jg-dealerships/web/dist/index.html | 14 + resources/[carscripts]/jg-textui/.fxap | Bin 0 -> 178 bytes resources/[carscripts]/jg-textui/.gitignore | 1 + resources/[carscripts]/jg-textui/LICENSE | 21 + resources/[carscripts]/jg-textui/README.md | 13 + resources/[carscripts]/jg-textui/client.lua | 16 + .../[carscripts]/jg-textui/fxmanifest.lua | 18 + .../[carscripts]/jg-textui/web/index.html | 13 + resources/[carscripts]/jg-textui/web/main.css | 38 ++ resources/[carscripts]/jg-textui/web/main.js | 19 + 76 files changed, 6389 insertions(+) create mode 100644 resources/[carscripts]/jg-dealerships/.fxap create mode 100644 resources/[carscripts]/jg-dealerships/README.md create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-admin.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-direct-sales.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-display-vehicles.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-employees.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-finance.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-locations.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-main.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-management.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-purchase.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-sell-vehicle.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-showroom.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-spawn.lua create mode 100644 resources/[carscripts]/jg-dealerships/client/cl-test-drive.lua create mode 100644 resources/[carscripts]/jg-dealerships/config/config-cl.lua create mode 100644 resources/[carscripts]/jg-dealerships/config/config-sv.lua create mode 100644 resources/[carscripts]/jg-dealerships/config/config.lua create mode 100644 resources/[carscripts]/jg-dealerships/framework/cl-functions.lua create mode 100644 resources/[carscripts]/jg-dealerships/framework/esx/cl-esx.lua create mode 100644 resources/[carscripts]/jg-dealerships/framework/main.lua create mode 100644 resources/[carscripts]/jg-dealerships/framework/qb/cl-qb.lua create mode 100644 resources/[carscripts]/jg-dealerships/framework/qbx/cl-qbx.lua create mode 100644 resources/[carscripts]/jg-dealerships/framework/sv-functions.lua create mode 100644 resources/[carscripts]/jg-dealerships/fxmanifest.lua create mode 100644 resources/[carscripts]/jg-dealerships/install/run-esx.sql create mode 100644 resources/[carscripts]/jg-dealerships/install/run-qb.sql create mode 100644 resources/[carscripts]/jg-dealerships/locales/ar.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/cn.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/cs.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/de.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/en.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/es.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/fr.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/hu.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/it.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/ja.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/lt.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/nl.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/no.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/pl.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/pt.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/sv.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/tr.lua create mode 100644 resources/[carscripts]/jg-dealerships/locales/vi.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-admin.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-direct-sales.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-display-vehicles.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-employees.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-finance.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-initsql.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-locations.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-main.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-management.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-purchase.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-sell-vehicle.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-showroom.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-spawn.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-test-drive.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-version-check.lua create mode 100644 resources/[carscripts]/jg-dealerships/server/sv-webhooks.lua create mode 100644 resources/[carscripts]/jg-dealerships/shared/main.lua create mode 100644 resources/[carscripts]/jg-dealerships/vehicle_images/README.md create mode 100644 resources/[carscripts]/jg-dealerships/web/dist/assets/index-90aa1eef.js create mode 100644 resources/[carscripts]/jg-dealerships/web/dist/assets/index-a42dd07c.css create mode 100644 resources/[carscripts]/jg-dealerships/web/dist/assets/loading-f9361a1d.gif create mode 100644 resources/[carscripts]/jg-dealerships/web/dist/index.html create mode 100644 resources/[carscripts]/jg-textui/.fxap create mode 100644 resources/[carscripts]/jg-textui/.gitignore create mode 100644 resources/[carscripts]/jg-textui/LICENSE create mode 100644 resources/[carscripts]/jg-textui/README.md create mode 100644 resources/[carscripts]/jg-textui/client.lua create mode 100644 resources/[carscripts]/jg-textui/fxmanifest.lua create mode 100644 resources/[carscripts]/jg-textui/web/index.html create mode 100644 resources/[carscripts]/jg-textui/web/main.css create mode 100644 resources/[carscripts]/jg-textui/web/main.js diff --git a/resources/[carscripts]/jg-dealerships/.fxap b/resources/[carscripts]/jg-dealerships/.fxap new file mode 100644 index 0000000000000000000000000000000000000000..11cb8adbb0a162004ba9446d513d681f57882935 GIT binary patch literal 178 zcmV;j08Rf!SV2$$000000GnPiGnqm`wSsz-s4>bobEQUTnRsc0ZcN=hgi~S>Rma)wF5x`uKpmcG162G`b^rhX literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/README.md b/resources/[carscripts]/jg-dealerships/README.md new file mode 100644 index 000000000..b8a8989fe --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/README.md @@ -0,0 +1,17 @@ +# JG Scripts Dealerships + +Hey there! Thanks so much for purchasing, it really means a lot to me. I've spent a lot of time on this script (almost a year total), and I hope you love it. This document has a bunch of the essential information that should help you out: + +## Useful Links + +🔧 Configure Dealerships in just minutes: https://configurator.jgscripts.com/dealerships + +📚 Documentation: https://docs.jgscripts.com/dealerships/introduction + +🔗 Official Website: https://jgscripts.com + +🛒 Store: https://store.jgscripts.com + +## Support + +Join Discord https://discord.jgscripts.com, and we will do whatever it takes to help you out and get you up and running! diff --git a/resources/[carscripts]/jg-dealerships/client/cl-admin.lua b/resources/[carscripts]/jg-dealerships/client/cl-admin.lua new file mode 100644 index 0000000000000000000000000000000000000000..90621c555ae6ec094a2638535201ca9167cde709 GIT binary patch literal 2408 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 qycB7Xt!Nd z)NqDCq9-cjOax;stPG%U)_VZAdRZZQE<` zXjo@0wW2GXY_7xVmAu5p%-cJQ3qr_xy8F01l{xl_MO;kn=S|y$$<;HR>5U{?0V&*e zfN(Bl9?G6$?DKq<08H{m8@eebi>0SFv`I}vgO%K%pe?!M@t>k4r{*bQ+oL9WnYwEO2^daAU@35xzaIR+sF5$? zLNYPSxn!uBC7JYL=A#nw8~{tXBB`GlPb<;;`srcVm++tocyf+?Iq*vB4E2;w-CJ+m zH8r#Qg7sfIzU-!5rA?#raC!p{{kz?Va3x4M)~0F%%vBtRb`-E#t07yA&GQ2WKqkxu zNtQDTbxr|OE~614*&x=NnQyc-RvyXg@HyTjjq2w6I!!OZ(;>D+Lbp;WxXkV_KIRY1 z*n*QTwzA({N?||{ekQE?ehE$oJZRg6nQS8Y12>}z4F7%AS_<%xK*B>FXK|r6)z{^t z?grAp!rWx&I^6H{s#wtk4yB*R{?83DJ@X3TNAxGc)+1Y}#fI8Yh(}LlhI)@>9akZK zE4Qr_&}}aK5eo3+133usc2dB20#MMEWuN1$u?|{X(8g1UV0R4sW%QPx0iCedpRNmtJL zcwaHqMZ#1q_gCT|&iH%Ch52oWG64d5;(y8FfIc*^6r|+ykoTzz`Q9VM?G1@E%O8Tj zQ9-AoB|(AKI0+Pe0(m2)%zc9>YdS?>Um7eW6w)(j(o zpa)Fi=h(h3yrv(IiDf$L3Ym%_N8#r>wFqmDP$XYuN)!2L)h`~V6cxzqSGsic;vJ@; zSIzIeKTB`7xS=rjRLcm=hUPv~BOx(6PqlbRisVPb`V)OXfXIbCv-@gnVcaH8NoXY0 z=L3NCBgFaEUs=r?g6`8-B;B)_ds9bK_5q)*AhgrBuKH^I#}TX7>V<_8o@ft@kK5mt zev9v30Z{Ox>FjLdw;8<)>e#N7lESeLpfQQ!hZkGJGSDUdUMq3Hj5i4h9CWT`ik=0l z1ZVMZgt8s&$>4MB*S|et@YWty7jX(^KbA#BHDuwY1mTjjm6=xkQcO@8QjAXR{bBd) zm(q}|K;uB~#(PkU>Iukw+H9BD8VLngH?LX&ib1$;#~daHsUK~i>aK$?_0w`mN_1$FuRudkf8+KUon{6`2%>7u z%WD+{?UfiW}AY)bqcQKFa6?U+9|ma2!3ufA_5 z8&a`8ULK}Pw9#j%EG7BZD}iEHXN!0+EZD~39dons208OoK{X_!xsoYz)ICWzR+7XR zs6~NhQt{Vu#PJ8MKBj9XzNz6Zxe)VODV>mfRp0BhdRUdHP@lJI7np)pS-x6DwFAN$ zU7+qkYiBtpF8cHHxLvhD7&q^BBMvWF=L#vSdxvH_oMI09a%tn^4OT-M{Fv7)B$Y;R z=SDfhl-70uH@2>VGtpUMJ4yJ%?%UDH7D65Ix(w6g&OV0>s7BjFGQ*(Z{QkNiemmMm zL+?*2l*m)>4+|RtbT8VXFcqKk1f>)d%K^8KIYOc{;3*g}gr9z>_!TmYf5ZaaAj>

DvtUyK+A^ws-0 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

a>&EU_Mpt zf@Ju2!KVKS*_pqTA$4NYn%QtpC_U55Tho95r$&Ab+z%VTE>$-xpOOc4(Pu(XN}^Aa zQU~L2hU$8y8h>4LpBT;3YJ77fAvAF-ztaCzgb!6i5zsk?P=!ok2D~7o-!5^HM%}MA ze)1Xe>{V&_BXhGMUJhLH4W~)qA|~Ci9di_Hlb~R)n$E}Q`&&vzjvU}o<@I4~Od{Kk zGt+suPJ-n71?}o(SR7V8-UXSchaNlVB%o++VFQi#1Z03lUHCBe{qcM_7FGs~uDAt; itpX~u2O8-$7~P`iby#M%1YiQUO_ozWv#&%uvGafGI6s;I literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/client/cl-locations.lua b/resources/[carscripts]/jg-dealerships/client/cl-locations.lua new file mode 100644 index 000000000..432bc8d99 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/client/cl-locations.lua @@ -0,0 +1,141 @@ +local blips, points = {}, {} + +---@param name string +---@param coords vector3 +---@param blipId integer +---@param blipColour integer +---@param blipScale number +local function createBlip(name, coords, blipId, blipColour, blipScale) + local blip = AddBlipForCoord(coords.x, coords.y, coords.z) + SetBlipSprite(blip, blipId) + SetBlipColour(blip, blipColour) + SetBlipScale(blip, blipScale) + SetBlipAsShortRange(blip, true) + BeginTextCommandSetBlipName("STRING") + AddTextComponentString(name) + EndTextCommandSetBlipName(blip) + return blip +end + +---@param coords vector3 +---@param marker table +local function drawMarkerOnFrame(coords, marker) + ---@diagnostic disable-next-line: missing-parameter + DrawMarker(marker.id, coords.x, coords.y, coords.z, 0, 0, 0, 0, 0, 0, marker.size.x, marker.size.y, marker.size.z, marker.color.r, marker.color.g, marker.color.b, marker.color.a, marker.bobUpAndDown, marker.faceCamera, 0, marker.rotate, marker.drawOnEnts) +end + +---@param coords vector3 +---@param dist number +---@param marker table | false | nil +---@param onEnter function +---@param onExit function +---@param nearby function | nil +local function createLocation(coords, dist, marker, onEnter, onExit, nearby) + local point = lib.points.new({ + coords = coords, + distance = dist, + }) + + function point:onEnter() onEnter(self) end + function point:onExit() onExit(self) end + if nearby then function point:nearby() nearby(self) end end + points[#points+1] = point + + if not marker then return end + + local markerPoint = lib.points.new({ + coords = coords, + distance = dist * 4, + }) + + function markerPoint:nearby() drawMarkerOnFrame(coords, marker) end + points[#points+1] = markerPoint +end + + +-- New code + +local function createDealershipZonesAndBlips() + for _, point in ipairs(points) do point:remove() end -- Remove existing zones + for _, blip in ipairs(blips) do RemoveBlip(blip) end -- Remove existing blips + + local dealerships = lib.callback.await("jg-dealerships:server:get-locations-data", false) + + for _, dealer in ipairs(dealerships) do + if dealer and dealer.config then + if IsShowroomAccessAllowed(dealer.name) or (dealer.type == "owned" and dealer.managementAccess) then + -- Showroom location + createLocation( + dealer.config.openShowroom?.coords or dealer.config.openShowroom, + dealer.config.openShowroom?.size or 5, + not dealer.config.hideMarkers and dealer.config.markers or false, + function() Framework.Client.ShowTextUI(Config.OpenShowroomPrompt) end, + function() Framework.Client.HideTextUI() end, + function() + if IsControlJustPressed(0, Config.OpenShowroomKeyBind) then + TriggerEvent("jg-dealerships:client:open-showroom", dealer.name) + end + end + ) + + -- Sell vehicle location (if enabled) + if dealer.config.enableSellVehicle then + createLocation( + dealer.config.sellVehicle?.coords or dealer.config.sellVehicle, + dealer.config.sellVehicle?.size or 5, + not dealer.config.hideMarkers and dealer.config.markers or false, + function() Framework.Client.ShowTextUI(Config.SellVehiclePrompt) end, + function() Framework.Client.HideTextUI() end, + function() + if IsControlJustPressed(0, Config.SellVehicleKeyBind) then + TriggerEvent("jg-dealerships:client:sell-vehicle", dealer.name) + end + end + ) + end + + -- Blip + if not dealer.config.hideBlip then + local blipName = Locale.dealership .. ": " .. dealer.label + local blip = createBlip( + blipName, + dealer.config.openShowroom?.coords or dealer.config.openShowroom, + dealer.config.blip.id, + dealer.config.blip.color, + dealer.config.blip.scale + ) + + blips[#blips + 1] = blip + end + end + + -- Management location + if dealer.type == "owned" and dealer.managementAccess then + createLocation( + dealer.config.openManagement?.coords or dealer.config.openManagement, + dealer.config.openManagement?.size or 5, + not dealer.config.hideMarkers and dealer.config.markers or false, + function() Framework.Client.ShowTextUI(Config.OpenManagementPrompt) end, + function() Framework.Client.HideTextUI() end, + function() + if IsControlJustPressed(0, Config.OpenManagementKeyBind) then + TriggerEvent("jg-dealerships:client:open-management", dealer.name) + end + end + ) + end + end + end +end + +RegisterNetEvent("jg-dealerships:client:update-blips-text-uis", function() + Wait(1000) + createDealershipZonesAndBlips() + SpawnAllDealershipDisplayVehicles() +end) + +CreateThread(function() + Wait(1000) + createDealershipZonesAndBlips() + SpawnAllDealershipDisplayVehicles() +end) \ No newline at end of file diff --git a/resources/[carscripts]/jg-dealerships/client/cl-main.lua b/resources/[carscripts]/jg-dealerships/client/cl-main.lua new file mode 100644 index 0000000000000000000000000000000000000000..255382bdbae04f08b261869e2974e0e598c38473 GIT binary patch literal 3810 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 G~7X{}YXus-ck6&1jPV zWj%<;qmpbQPP72S@5>N-W;x^H7{cOl6N&Y_u9)%b6(xdf!RJhB!UvKR@Y8kMf2y~p zU0|4A#fn=9rfHS`Izh9|qTjhtg5clknDRt+!9OK>coac2yHandS}qe+6F`oPD2~cG z7CRwNg^}mo|IqPLtAYMRf#YQt=MqL8)6BfP>L0@}=q26iYcxb@JKA`prGQRAVd5L| z8Ssi~7;pfyx+Nb~hl4$gObOXK1#ucf`&z7_w{J+Zn}642+s-?-8qv+uQy*TygvKe} zmeipUvmJz0|1tvn$0xwH-RO)K2EUOQB(Zk6?;B^z3k;U)F!CJdZFu>G#T)igXlH`K zp5BIz1p7iud0G{f_Fie?2PN-^(f>MZvcHIQ(Ck$JME4P^U=CDS(RU`mk`qQ<^4n*D z1>tKOK~5O}593}llld}c$+0%=(c(dLegpOgR2uEko<+@^$TnNrX{S*fUxu8_H=b%| zUX)K;-Bmgb?oZ}gu1XNoP3IJb&Wvf=_rMZRJ>S;?!VMNgdoe}t`Kh2L? zTHgIcz9G*keis&Yo(^kDY2h)cPW=d&Ne~Boa}Mr))1|xlPy2~x)8$j0JoY!ilYhCg z&o}1%M{Vlw_HX*~Y#4&_L(*F~e%r;IU+gWhg6dg>xIGVc8};`oj16jTg$C8UIz5mN z8RbC{yqb(oCh6BFm3OA!GL3<}&zYOmS86p~T1RHD9LV}fM*v&w=}XTGwf&KVSiGk6 zIe1zp_?zZS`qCY+&gT|jh{3mNo=u_ zoDe=X5KoX;f4p&LZjYuIG|OE-8Ob}(G+gG)aBBz=+XHeeM!W1HOep=E-yyjDKKj-G zwMORSFDoR!TgOP^*Nn|z688Lf=v<=r#7ukp)(^|h3~viBiL8g5Z3hf<3kjsg2LuoKG@ly(&WB+Z@~tuF zUq+8>PppN4qFz_6~ct^TRi2$2zram=G{5(;6Z}i#_P3st?3cMb~n%j!yK+#KF^~ zIps4Y+8te{Jxl#xYI;iIH?i~UK3RrZvOq1UphS^vgAis7I~F0>=^E=IRFEZR$WEy& zA}mE}NmdPr=}u$NXg>5u2 z(uemO@$toFWfn6{N?aZk^~~fU8pT-um*iozp50S62z2%xBgRIz3;*P3Z2HaP1*|Py z(CAd>Dv1_wizUk}E&|;ew^8-ov)?3#2WiisR`ccX*?}a!l4%P9tDabXQE5|?D@9wW z)bdyDU*eukjlv5OyzLI^5^_^*4^bVOg}BAhGHC}|XL*t@$80L}eJ8n|i6zg6J(L|@ zp3~&#kMNC2v2$7teb4$UGq^W3g~FB_Cmxh=&qIR!01`4%?%&g9ICweqnQXT@wX^2V zI@>URhY8lVs<3Yw+VzwUW7o1(HAm-Of1P*?G{KP2F*UCMQ^*O&rIXQ=j9M}5UMo-c z`dwD@@yYQMF1Z-0H`^XbvGuACvbkuxUYw=nd#Q0h;&G*Ae&~NGrOVUvS|IG@YM@Q_->u zxW3&=W;)0rF31$%BEK3hgK`jv!pZvziXFu$_OGV|oe>ZEM$WN`4Tg8f%&#Ur;|t)` z-cK8Su5r5i!oi~vHh*+OQ6iw5`LgeGCiX~@FNWvjs+3}GO2v8j2CPKZf^vR|a+Hzy zyYyi(wFo#4G~iltc^k`K6XYVHyErahsw0I>sidt6y!#LH>AdRma564}Snk?`r9EJLP92w4t_8R@6@$A>n6H(*t zeX@2-it2{zuxf;EwyMAU!HTa!c;2V6g$u#Ddod87V=6ZJ|2V;PleZ_z9EhxKH7-Wx z_EHr*t6sDs582b#?0Q-c+bv%UF-f#jwwu!EZgHeNF-!BTdXP+~PFv zln#=QxzSNHu$@=V-IgHjB8Q!Z6yUzmS{CQ3R-pZ5~1fVpQ zm4l9CGsU^>!pQg6x!CQ2d=hw*PL(6AIoFeM?k=8c#9DIgodyz43;9A;l{DFOp~OvIW+^lZfJ0Fbu?wO2bVcS?U&;J)hAx&c>3%z zCIp`RqsQ;mBZ}7@LR-=~QCJUSekukpJ?@#%Ap`CjB6JcbwM-!4f_?{d@s8wJ z?4wIBl>#_a=dDGE2?DhVL7qgzB&<_2Yi-?T*%wBw-;?W62 z(YB)tGx6}A9~njkJvHDtsS|$8kxMEpa)w8A85pia3(Ax-$+VAyt`l6h;!Aj&>A=Lx z@}AH6Ol49EFbLB~flH0j+oqe_4~OL^z%$~=hVI%U^j9SlcNdD87W7HBKBT9o=fvNU z;QxZ!+8%A5$Ws+8m(CzWai4*jVgq+9o&0qh^XY!Qt?)-CY{#BRm!0zCv?89C@X?ulpjJGo7* zCm=+QUA?ZHX4^!~R)0E@)e_2w`DBn{A`@Xbcn~x9cI2hw`DGOYlUW5Xjp`M(b5C$K zTeeDB(}Q!8VSa6%FdYdtj0PKc(%=JEwp#Zfocoma6Ob&HB!*aKI_-(MCn0gEYQ`C^c^n4)3^Z3YWi3{lP;55Q#RH!7`kmpB!Vrb`Pn9BXdEIa_|CR-+ER z*iI?QDjwK{=n^B1Ayv?B{d*OO=|`CT9}d&L^-;4KK=U-LcA#+4V?IvXe1`7E?_Ov! zBO-ev6*;7tNuqu!IxNpciJzA4fOIgrZ zG9{Oy0wf}p5_aDprrH1oL_m89pcxRB4H*mT?<`Nm0|#D|l~kaqQc*T&N(?6pf2jkK z6Y$HOXJUqsFf{pA?{VynK+f;l$t4Kh4bcelwp#JSJIWPFAKDkI=p0-#V z7#bLO_>qmH8ZyK!QPuO;(LtpSD2T%SxK+b9xc|>+U4|*ZpCI~_$It9)6zhn}wx-C( zHiiH2o>*w&iZ_lk{p?3h(#t#-%ms{DoQ?1MMHqtLh*%^IYh_0tb6Hp42!o#8V|kzt z5f~20DDBI}6jk7u22>?yY1!2di)huom}ynjNO7Ik|MEM8tdE<9ko>yC12@)}i2AZs z)FE^bz|*?j?p(}d1Y|6JJ2>JNy7%PHI%|A*HIgWgX4e2Y=5FDD1@?Ny(e2vInF`)g z;7Xh5;6WsX9wdXWd3y#sNJQ_nzL%w78ZBf{O^Y0`C7u5Z41_GuC*<&coYojHpMHdd zRci*`L4KaY!hssGE{`&9BFD`jDPfBehfd-uogAF;r4NF?TYCEOIG3B8p@*54*B(=s zK7~~pG`dh6J+sXa)0Z4ojEX}dj7n-h*IC^EMOfAO#m!lx8@B1ndKitlIfOPk3- zRSK0<<`U6^QO`47gZqm=qT5Pbxeb4_80FzJ5BLMwcw~e@sc7}Llbxtfd*-AK^xKI6 z=wGDkECsl|#p|@lPNV?I^IrVTh}uqAu(bc3VweJ)-g89%j$2r75F*Sr2M+F7Dk38v zoD-ivi2(6=d6G#u3CUX#ts3bK-+lhWyT&g%`_ysJsgQtNNs6Ujt^`{i|0a7?Gkzzg z`cX8g>AhAJMy8b2lXhzm2T5{D1AX}y+R!uf3p$&Y`5b?*|)V& zfk>15=79nwGKOCP8?OX9IgGr{To6bd6ewlQX&1Yv;>}gl@-En3RBK`pluPr#2HP?X zFS_Qr5c2r0(2NGr**g!37of|u;S~k|g+BCoW_1{$ti?wf4{^8w`MriT2#4F|u_PQbi66{sj`zj!ZlSHSHIc z!j2)YTI;ryBVl9`X=YG5MPY-i1*>c&O6e?W39LH%;9C4SoM2yijR~Kn(vT9w89}RU zavG1z?U>HSGsODgJ2{FM3*@b1N*)oYb8-)ZK*tI~6qG2o^8cJ( zT(xEO7T)h3G(lzl1Hn5G)=bp_T`ok-owjr%nm;K4{Yqp_PF$(K4W+p8j*tUcs@!UF zBYICp3N61i<=4>cA!8Wx2wPnsHu%>6Wp@Zd`}D32niE)r5-r|%K=BUKPw*sz&%Y-( zJoG?m!Al2cVI5`LNKY*nu!H&z{^-XmjkUfBXpaWY(jMGPng2sVIeTQ2u%8z+?!%>< z0aOKH&A4+B8rt=86L(o;4>F!UE*kAfZ(VK>BZ+0CY(SQ$a72(TRh%S;mrGb-qnVms zej7~YZ?KpTK#$Daeh8Bl~G2iB1ouAK4Lm z>;yo;KbyZs%0(_}WAbpx^jVTJGa~dnAqwBddv&=}Z2P=h4k^C~cWX|G?Vosz@qBD> zw2$R=YNX**l7Lo1Kd}MDt$*SM%RI-^?C>RuPw%p=78T2;@#ntkgkH1-3DR99UHm&= zedPEQ@jTPU$JDxlLPT7P))$-qq9{9#J9IQ-fZsb|e}T*@=K((*0#&Q3)7F#;AP?mMQOe)VeYw45 z9fRl4dlOS4q!PTJl4l4sYWSQQTo4oDmS!`o~y zW;Ygi?@KTLF7fyGTQ72fKyz7XIqYp4JDnGGJ*N~MN*V$vBRp1spP-;gdE}Xbn%&!S z``e{bBW-~TG~)#)6`+Ez@cY!JG@A6;qxkDn*egd_yg)_!r$@6hAd0LO30&~qK^HmD zK6>U5AnU{0I;4zj?9&+EoX01ukbu7o9!5`*z79gHldKkLV}=z+EDfJgu{?l+fz2kG zw|C@eMgYWzi>qj|>FGWN)L`4D?FJ?$aUTSp1>tHXJ4uMC`M z5t!`twU<&y35f00cw%hxrQ_zFuTHfpy6>Fw=&_SIC3Ao*4+l_5jt3QN#9_A%~#FbeFpuS@f zZ53}X3{AhJM)%Bv)P_%YQl3b$glP0eT1|3>DhW2fKo&m9V54QONkH4|u^x4MzF^)y z{#`qH3vtxqbm;k>&bzwrY2;Y$gFV4)B^kVZ#`5XzJOz~2zLb;^1Q*MQiC^I(5Nxjw z7*Y=BwLmI${VdsbW=LA5(m_u1LP2UTE#kKL`bJhK{AA~L18^(hTZ}@17LIVse#7&o zlSFX*Q*`uuIp9L*AGOq*vn!mtd!geXi*!;z2+h^Z$5lQ~$Fmx#2}~Y09*Z2Hto@XB zp?eca#~Kh;6iD@wh+{NVI{mRRVL@Z&P2AZhVQx?>53z&&Rg1K89k-9Hd2y#;15JmR z0{^88QDcZEIQLBw+5QAWrQ|sERl1A<$Av|V|3j|9k`RtZ($dZ0qfDjIiG^mjd(eAt zD=K%HpNttAiS(~ziBqrbU6GNj;*6%xEO$*N9>l-Ph=0y>UZN#tOo-Jg>Q~L!X^GR* zt1eXl6ZR)g8}c)Q46ZHPTV`Y1Nh)j8amx*{n!b#@v(4k9Vc`B7fH23VUS*MCumdwu z!Mo#ul3a#dqFmZkNceSLGlt+9kkugc&6g4_I|Jf?CB0Sv~w(UW@A0&uF33OYhjDoqmiwY3IG}ZrO!mQ}i$AT=dyv zhVYp)k(vTznB#ST;lk|Z25rFN8$(RAA2y8VWL;PcajsGFdK8duNGbX>(MfwJ?Pi_tA zH|=YbnI)#oFZ>kv4t z56Rw$v!?xNmCB)2SW6LGvqmYytMn!IinhK+5H`|*CK;ugivLk;^otr7PJpvzKI2VI zt$REMYHSN;4{cm%SRQkE(7o`14mckr7bWPYbq&my08$I^RlSl>zW}x*aAB0t5Z2+c zoai@Q{Ie+rS78xzwb?Rfd7Wf{zza~Vp3tn6gOdscY8Q|<7EG zCPxko=Cc~jm0VRF@XBt(y``cYJ*7iw6C3?{Rzpo5tVc+zmG=7-^Jj#Isz{36WvshR zF%Mx-+7|pLjDaOX`7c$SxfK^<+}T&_1f zmCumj((=?=r9q`esE}=H?oMN8n5C*D5z4IA!4}>~1;XR^oDECD?_{!hVhjVoS~4Q; zZERZk^ez^u`E7dcSROlLxHKU4_!E)D6aOOIm~~8Mm-$Xo)DIi_lP_q+Z~EsrW|28+ zTes$9APE$0k%I}r+RrI;Q2czBDddzzjtpBxdtU`yU$Q5S6v^{4!cah1hn%0`oiML0 z#3@N0k`xGsAC96~CDXg4*yl#fW;)%WB>mpVFp@Jq{iWC z*GxQHLlil2nYhFsikOnG16cB&O|3QK1z<6VQrsPNohP3c^r`w82^D+t8Ln4sE&^rr2DrHr|CnhyPfqIRR-krZg95qoAlq` z%crmL?H0l8+(L(v11byjCWDL7A2CdaI6;x!y(_+-kIUoh{ir&D2VmqXU`kp z7g2sI7Kk~aysDg^C3NeMik<}OE^0i6W9Jq7Q!*ruN7>MHYzhwY%|s*am$PdOjg8mgdMoxM=)vY7nyjg@_;)MNp+5txQIK?~UbW7qH%k6<7 zG@kicDJoEnezw8MjZnx4&u5)gJSpI+jIzR7QFAMY$hG8f<|ajVQF1>arJlGOZOpz2 zxTo0_UeMom7iis!u4-6FuIZM!ZgXJpuO)X3K00X{L&w-h6KJu|{1=kga+S;CW0LDr z$;y1Dl8F=)Y4ML@#?4BpJ^nR89Xl1Ra9$lC1(U?j{A9}lCg_JI4 zrz#3~P#JC~w?D)7<>J&T{G$XJdTQ_rnpW7NzdvvWKVW^JB4y3su3kOzxzD5mjo!t^ zs1;f0;Xm!!nxz#hm{jZ$2#c+jOW>(#B*T_iKk-G~QC13+K^`Cxz75SpH!yHi>)$Xi ze0o4Ovs9=4#OesnM}(&ty?+JYKQ}3;s;QO-Vq38%KpT`z6WrY28AfK1=8KoJSmNi3 ze<Bq9;x2=h!~m3H#|==j@PvwZK&f-(zt_F%%xa3e`dBRU#s z=QjjnK)djyj|CpG+p7t0Fb^O}Mk=Bz|B=+xX=)rt7&d!qdbLN;o&a!PY3y>9+h0LO zU^#VQ7C>2skse4!`@`OR3yaN7iKTR_rZ(O2#<#5Cr`?`zbB~GdO;{`n7I$LW63^hw zfn?!<2VJ~vs-qjJu5iQb<^GQ0E!UEV6Aqxcph9_(9ohJchq%(*Pl?=8DlJPNA<0cC zM+xszw*;h3QFE=CrwcS;I@<}2{TmnP;#OMY7-`)d57v&dC7$+9FAp0~0darT4Mqvq zMSLnes#H3WlpwsA++j7hTD0A%dRid7j5zQnY3)^bw-W+3fGJeYm-@PSX>Sanxuz-L e@F+yQ2mWF2c#wlGYoj*B_?@L@s2$?kh_^nv%+hiI literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/client/cl-test-drive.lua b/resources/[carscripts]/jg-dealerships/client/cl-test-drive.lua new file mode 100644 index 0000000000000000000000000000000000000000..90c229a0b2b1bb8c8c841326c19627c06c57e90e GIT binary patch literal 2954 zcmV;53w88HSV2$$000000Fp;;7EtLZBL~%RF@^;bI1%XVAeYx_+1B{)^3$BPU|#rd}IH)2ZmwTW`0T-)2i@3`=L*-6{tI5W&Y zK&pCl(+1IVWxHo!T9-LeOf&B>jP<5I-++1=!A{2A8q%}(H@$btSt{i#itH@PWLer_ zyd#0)bI0Qil4w!tAI^js^Efvi>VPB8LxWpT3a)WXpRr)|3EI#x7#3hpas6|N*{hXK zHWl9@5;7$F2ajQvLr}gaxrb&|s+j}m7s$ItLD6n`^m*wxUh__&>YE7W#H5gzjc+zW!% zCe&#cJXGGHJ(w@{I(59N1#=sPM>w7-nwqX)&daj-VBtUU-WgdNCqBN$AB` zvZB3vDfHf(;F3b>v@;C}+g+PhmvZ7*b5m*o+R?Dd^-QQwZu=o*vswy4$;_eL2H9as zX=VCWUM`!#n14OnCe7zD!f5U65J5i7Jb#oDdx*;C&L2g4k1dmA)dxL=b6l(|-fjac z!t->RK%c$Yuf1V6O5*}qaZ3bzIjWJ6J!4H7B8w4c@)xXCvPTIdQdubL@)t*^ zJCmib!ZQXj-MmcQ`^Mub1~DE=u7AYc7nqkWFDfy{etd2{tlCgst`jQ0Lc9iQ zAlFQ_#tZVj+`1K;=vGDEz}g4_2=J~`FZcD3>q%=go5!36f+K?fV`d%kRt^(z2vRYOHtB#M?Q69 zj12(7C%RU_* z;(=O&^pvg3cd{45K@uy{5mzef5Ehb<_FJKFymn4R^3)o>Y(M}?BwH1v*YYrMbk(z7 z0Dk1U1@{MOyQtGhFY~$QL3(>fWh)|yk&;b9-dL_D1Z#s( z7we)l=K1r1jky6b=xx6e7z)ryvlqM*Mo5;WunGC<6HBz7Vr;10aLW0)*lMHYnP|ZI%rhu z{O&H@5@dlt{q6HAxl*O$}h0A__Y-t8}Y$h85U{0))fz?dcHo|<)JJ`JLE;{9aq z1Q$`%sn@pd_7SkAmU`fO?lx^|$#hX2jerXX*V21k_SBi(83-jK-$w+UhF;2e@!Q!i z-v)dWB)2gT9#0-PC&&Y*C8D)JNF+i@>;qM35}6=|>!Rm}bC3d$w%k5c{0dmc>MAtQU?T%tgx9z2#qQRp&aSC6VZcF<+Y*8?dc>B^)fv68WUf=>?=s|h}tygWG zP}@V6DeY zhke^;76_xhK!WX6Soh#{#gsh8F@_3t)|U}(w`Tu@Me2|tHgqZeS;Rpg$tm`Fo^AQ8 z`Tq8z^swN-mc}Wqr;{z+Uw>;{_}JP@u9G}4k5I)XjS%#Auh@(!`cJcEK0JKG=bgFq zI)j?PM{ioF{<`~uoi=7E5OLkJ=k3Ya>hQi4UBNy#r5(QgKoUAB8c&=S24s*8->0V= zQF2a*a0cv9+@(rGYk%qSVaO8c7k%1`cf1mPR2A$6AD7X$IU&< z9F<>CY?JNtH}5vyNL*-$tlIzqCgnTqzdpwNg#4~I!Z(!C+r2E8Dip>NGPTG=#{$F| zPIjItojupJind2@C7Vvd3gfUo$_RH@%o*GM$!+nu!a|mkmQbPGt-LvovXDoSL(GR; zC42B41p-o|4@JXTBkU?GJD=q?!aKcnYdEBoNYk(-Osj~rS&C|$Dj_QR(GJS#oy8Gn zFWydvUxCv7nKn=lX&Mm5*489`fF!wDk06DvlZoeO)-li6zE7K4>BD~S(I7WD-&$H@ zPGBsq9izRhu*WpViq@zpQ8GhWD2Rrc6s#Zp3pItF!o{3Eh6H|H5UgP*XDi)4^ugf_ zrod{9+xAr|w?-8_#rQ@L+n3W8@Q#JKK`M_4$}-p0;RL=;@+ur_kAG<5V`A)L>6CC}_-)Ev;lqXsZ{&T{xzRE6(kT= 2 + +---@param society string +---@param societyType "job"|"gang" +---@return number balance +function Framework.Server.GetSocietyBalance(society, societyType) + if GetResourceState("okokBanking") == "started" then + return exports["okokBanking"]:GetAccount(society) + elseif GetResourceState("tgg-banking") == "started" then + return exports["tgg-banking"]:GetSocietyAccountMoney(society) + elseif GetResourceState("Renewed-Banking") == "started" then + return exports["Renewed-Banking"]:getAccountMoney(society) + elseif Config.Framework == "QBCore" then + if usingNewQBBanking then + return exports["qb-banking"]:GetAccountBalance(society) + else + if societyType == "job" then + return exports["qb-management"]:GetAccount(society) + elseif societyType == "gang" then + return exports["qb-management"]:GetGangAccount(society) + end + end + elseif Config.Framework == "ESX" then + local balance = promise.new() + + TriggerEvent("esx_society:getSociety", society, function(data) + if not data then return balance:resolve(0) end + + TriggerEvent("esx_addonaccount:getSharedAccount", data.account, function(account) + return balance:resolve(account.money) + end) + end) + + return Citizen.Await(balance) + end + + return 0 +end + +lib.callback.register("jg-dealerships:server:get-society-balance", function(_, society, type) + return Framework.Server.GetSocietyBalance(society, type) +end) + +---@param societyName string +---@param societyType "job"|"gang" +---@param amount number +function Framework.Server.RemoveFromSocietyFund(societyName, societyType, amount) + if GetResourceState("okokBanking") == "started" then + exports["okokBanking"]:RemoveMoney(societyName, amount) + elseif GetResourceState("tgg-banking") == "started" then + exports["tgg-banking"]:RemoveSocietyMoney(societyName, amount) + elseif GetResourceState("Renewed-Banking") == "started" then + exports["Renewed-Banking"]:removeAccountMoney(societyName, amount) + elseif Config.Framework == "QBCore" then + if usingNewQBBanking then + exports["qb-banking"]:RemoveMoney(societyName, amount) + else + if societyType == "job" then + exports["qb-management"]:RemoveMoney(societyName, amount) + elseif societyType == "gang" then + exports["qb-management"]:RemoveGangMoney(societyName, amount) + end + end + elseif Config.Framework == "ESX" then + TriggerEvent("esx_society:getSociety", societyName, function(society) + TriggerEvent("esx_addonaccount:getSharedAccount", society.account, function(account) + account.removeMoney(amount) + end) + end) + end +end + +---@param purchaseType "society"|"personal" +---@param society? string +---@param societyType? string +---@param model string|integer +---@param plate string +---@param financed? boolean +---@param financeData? table +---@return integer|nil vehicleId +function Framework.Server.SaveVehicleToGarage(src, purchaseType, society, societyType, model, plate, financed, financeData) + local vehicleId = nil + local props = json.encode({ + model = ConvertModelToHash(model), + plate = plate + }) + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + local playerData = Framework.Server.GetPlayer(src).PlayerData + local license = playerData.license + local citizenid = playerData.citizenid + + if purchaseType == "society" then + vehicleId = MySQL.insert.await( + "INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, financed, finance_data, job_vehicle, job_vehicle_rank, gang_vehicle, gang_vehicle_rank) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + {license, society, model, joaat(model), props, plate, financed, json.encode(financeData), societyType == "job" and 1 or 0, 0, societyType == "gang" and 1 or 0, 0} + ) + else + vehicleId = MySQL.insert.await( + "INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, financed, finance_data) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", + {license, citizenid, model, joaat(model), props, plate, financed, json.encode(financeData)} + ) + end + elseif Config.Framework == "ESX" then + local identifier = Framework.Server.GetPlayerIdentifier(src) + DebugPrint("Saving vehicle to garage for "..identifier.. " type: "..purchaseType, "debug") + if purchaseType == "society" and societyType == "job" then + vehicleId = MySQL.insert.await( + "INSERT INTO owned_vehicles (owner, plate, vehicle, financed, finance_data, job_vehicle, job_vehicle_rank) VALUES(?, ?, ?, ?, ?, ?, ?)", + {society, plate, props, financed, json.encode(financeData), 1, 0} + ) + else + vehicleId = MySQL.insert.await( + "INSERT INTO owned_vehicles (owner, plate, vehicle, financed, finance_data) VALUES(?, ?, ?, ?, ?)", + {identifier, plate, props, financed, json.encode(financeData)} + ) + end + end + + return vehicleId +end + +---@param vehicle boolean|QueryResult|unknown|{ [number]: { [string]: unknown }|{ [string]: unknown }} +---@return string | number | false model +function Framework.Server.GetModelColumn(vehicle) + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + return vehicle.vehicle or tonumber(vehicle.hash) or false + elseif Config.Framework == "ESX" then + if not vehicle or not vehicle.vehicle then return false end + + if type(vehicle.vehicle) == "string" then + if not json.decode(vehicle.vehicle) then return false end + return json.decode(vehicle.vehicle).model + else + return vehicle.vehicle.model + end + end + + return false +end + +---@param vehicle integer +---@return string | false plate +function Framework.Server.GetPlate(vehicle) + local plate = GetVehicleNumberPlateText(vehicle) + if not plate or plate == nil or plate == "" then return false end + + if GetResourceState("brazzers-fakeplates") == "started" then + local originalPlate = MySQL.scalar.await("SELECT plate FROM player_vehicles WHERE fakeplate = ?", {plate}) + if originalPlate then plate = originalPlate end + end + + local trPlate = string.gsub(plate, "^%s*(.-)%s*$", "%1") + return trPlate +end + +---Generate a plate based on a seed +---@param seed string +---@param checkIfExists? boolean Check if the plate exists in the DB +---@return string|false generatedPlate +function Framework.Server.VehicleGeneratePlate(seed, checkIfExists) + seed = seed or "1AA111AA" + + local CHARSET_NUMBERS, CHARSET_LETTERS = "0123456789", "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + local attempts = 0 + + while attempts < 20 do + local i, plate = 0, "" + + while i <= seed:len() do + local char = seed:sub(i, i) + + if char == "A" then + local randLetterPos = math.random(1, #CHARSET_LETTERS) + local randLetter = CHARSET_LETTERS:sub(randLetterPos, randLetterPos) + plate = plate .. randLetter + elseif char == "1" then + local randNumberPos = math.random(1, #CHARSET_NUMBERS) + local randNumber = CHARSET_NUMBERS:sub(randNumberPos, randNumberPos) + plate = plate .. randNumber + elseif char == "^" then + i = i + 1 + if i <= seed:len() then plate = plate .. seed:sub(i, i) end + else + plate = plate .. char + end + + i = i + 1 + end + + plate = plate:upper() + + if plate:len() > 8 then + error("^1[ERROR] You are generating a plate with more than 8 characters.") + return false + end + + if not checkIfExists then + return plate + end + + local result = MySQL.scalar.await("SELECT plate FROM " .. Framework.VehiclesTable .. " WHERE plate = ?", {plate}) + if not result then return plate end + + attempts = attempts + 1 + end + + return false +end + +lib.callback.register("jg-dealerships:server:vehicle-generate-plate", function(_, ...) + return Framework.Server.VehicleGeneratePlate(...) +end) + +exports("generatePlate", Framework.Server.VehicleGeneratePlate) + +-- +-- Player Functions +-- + +---@param src integer +function Framework.Server.GetPlayer(src) + if Config.Framework == "QBCore" then + return QBCore.Functions.GetPlayer(src) + elseif Config.Framework == "Qbox" then + return exports.qbx_core:GetPlayer(src) + elseif Config.Framework == "ESX" then + return ESX.GetPlayerFromId(src) + end +end + +---@param src integer +function Framework.Server.GetPlayerInfo(src) + local player = Framework.Server.GetPlayer(src) + if not player then return false end + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + return { + name = player.PlayerData.charinfo.firstname .. " " .. player.PlayerData.charinfo.lastname + } + elseif Config.Framework == "ESX" then + return { + name = player.getName() + } + end +end + +---@param identifier string +function Framework.Server.GetPlayerInfoFromIdentifier(identifier) + local player = MySQL.single.await("SELECT * FROM " .. Framework.PlayersTable .. " WHERE " .. Framework.PlayersTableId .. " = ?", {identifier}) + if not player then return false end + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + local charinfo = json.decode(player.charinfo) + return { + name = charinfo.firstname .. " " .. charinfo.lastname + } + elseif Config.Framework == "ESX" then + return { + name = player.firstname .. " " .. player.lastname + } + end +end + +---@param src integer +function Framework.Server.GetPlayerIdentifier(src) + local player = Framework.Server.GetPlayer(src) + if not player then return false end + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + return player.PlayerData.citizenid + elseif Config.Framework == "ESX" then + return player.getIdentifier() + end +end + +---@param identifier string +---@return integer | false src +function Framework.Server.GetPlayerFromIdentifier(identifier) + if Config.Framework == "QBCore" then + local player = QBCore.Functions.GetPlayerByCitizenId(identifier) + if not player then return false end + return player.PlayerData.source + elseif Config.Framework == "Qbox" then + local player = exports.qbx_core:GetPlayerByCitizenId(identifier) + if not player then return false end + return player.PlayerData.source + elseif Config.Framework == "ESX" then + local xPlayer = ESX.GetPlayerFromIdentifier(identifier) + if not xPlayer then return false end + return xPlayer.source + end + + return false +end + +-- +-- Player Money +-- + +---@param src integer +---@param type "cash" | "bank" | "money" +function Framework.Server.GetPlayerBalance(src, type) + local player = Framework.Server.GetPlayer(src) + if not player then return 0 end + + if type == "custom" then + -- Add your own custom balance system here + elseif Config.Framework == "QBCore" or Config.Framework == "Qbox" then + return player.PlayerData.money[type] + elseif Config.Framework == "ESX" then + if type == "cash" then type = "money" end + + for i, acc in pairs(player.getAccounts()) do + if acc.name == type then + return acc.money + end + end + + return 0 + end +end + +---@param src integer +---@param amount number +---@param account "cash" | "bank" | "money" +function Framework.Server.PlayerAddMoney(src, amount, account) + local player = Framework.Server.GetPlayer(src) + account = account or "bank" + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + player.Functions.AddMoney(account, Round(amount, 0)) + elseif Config.Framework == "ESX" then + if account == "cash" then account = "money" end + player.addAccountMoney(account, Round(amount, 0)) + end +end + +---@param src integer +---@param amount number +---@param account "cash" | "bank" | "money" +function Framework.Server.PlayerRemoveMoney(src, amount, account) + local player = Framework.Server.GetPlayer(src) + account = account or "bank" + + if account == "custom" then + -- Add your own custom balance system here + elseif Config.Framework == "QBCore" or Config.Framework == "Qbox" then + player.Functions.RemoveMoney(account, Round(amount, 0)) + elseif Config.Framework == "ESX" then + if account == "cash" then account = "money" end + player.removeAccountMoney(account, Round(amount, 0)) + end +end + +-- +-- Player Job +-- + +---@param src integer +---@param job string +---@param role "sales" | "supervisor" | "manager" | number +function Framework.Server.PlayerSetJob(src, job, role) + local player = Framework.Server.GetPlayer(src) + + -- Adjust this as necessary for your job setup + local rank = 1 -- sales + if role == "supervisor" then rank = 2 end + if role == "manager" then rank = 3 end + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + player.Functions.SetJob(job, rank) + elseif Config.Framework == "ESX" then + player.setJob(job, rank) + end +end + +---@param identifier string +---@param job string +---@param role "sales" | "supervisor" | "manager" | number +function Framework.Server.PlayerSetJobOffline(identifier, job, role) + -- Adjust this as necessary for your job setup + local rank = 1 -- sales + if role == "supervisor" then rank = 2 end + if role == "manager" then rank = 3 end + + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + local jobsList = {} + if Config.Framework == "QBCore" then jobsList = QBCore.Shared.Jobs + elseif Config.Framework == "Qbox" then jobsList = exports.qbx_core:GetJobs() end + + if not jobsList[job] then return false end + + local jobData = { + name = job, + label = jobsList[job].label, + onduty = jobsList[job].defaultDuty, + type = jobsList[job].type or "none", + grade = { + name = "No Grades", + level = 0, + }, + payment = 30, + isboss = false + } + if jobsList[job].grades[tostring(rank)] then + local jobgrade = jobsList[job].grades[tostring(rank)] + jobData.grade = {} + jobData.grade.name = jobgrade.name + jobData.grade.level = rank + jobData.payment = jobgrade.payment or 30 + jobData.isboss = jobgrade.isboss or false + end + + MySQL.update.await("UPDATE players SET job = ? WHERE citizenid = ?", {json.encode(jobData), identifier}) + elseif Config.Framework == "ESX" then + MySQL.update.await("UPDATE users SET job = ?, job_grade = ? WHERE identifier = ?", {job, rank, identifier}) + end +end + +function Framework.Server.GetPlayers() + local players = {} + if Config.Framework == "QBCore" then + players = QBCore.Functions.GetQBPlayers() + elseif Config.Framework == "Qbox" then + players = exports.qbx_core:GetQBPlayers() + elseif Config.Framework == "ESX" then + players = ESX.GetExtendedPlayers() + end + + for id, player in pairs(players) do + if Config.Framework == "QBCore" or Config.Framework == "Qbox" then + players[id].player_id = player.PlayerData.source + elseif Config.Framework == "ESX" then + players[id].player_id = player.source + end + end + + return players +end + +function Framework.Server.GetJobs() + if Config.Framework == "QBCore" then + return QBCore.Shared.Jobs + elseif Config.Framework == "Qbox" then + return exports.qbx_core:GetJobs() + elseif Config.Framework == "ESX" then + return ESX.GetJobs() + end +end + +-- +-- ti_fuel +-- + +RegisterNetEvent("jg-dealerships:server:save-ti-fuel-type", function(plate, type) + MySQL.query.await("ALTER TABLE " .. Framework.VehiclesTable .. " ADD COLUMN IF NOT EXISTS `ti_fuel_type` VARCHAR(100) DEFAULT '';") + MySQL.update.await("UPDATE " .. Framework.VehiclesTable .. " SET ti_fuel_type = ? WHERE plate = ?", {type, plate}); +end) + +lib.callback.register("jg-dealerships:server:get-ti-fuel-type", function(src, plate) + MySQL.query.await("ALTER TABLE " .. Framework.VehiclesTable .. " ADD COLUMN IF NOT EXISTS `ti_fuel_type` VARCHAR(100) DEFAULT '';") + return MySQL.scalar.await("SELECT ti_fuel_type FROM " .. Framework.VehiclesTable .. " WHERE plate = ?", {plate}) or false +end) + +-- +-- Brazzers-FakePlates +-- + +if GetResourceState("brazzers-fakeplates") == "started" then + lib.callback.register("jg-dealerships:server:brazzers-get-plate-from-fakeplate", function(_, fakeplate) + local result = MySQL.scalar.await("SELECT plate FROM player_vehicles WHERE fakeplate = ?", {fakeplate}) + if result then return result end + return false + end) + + lib.callback.register("jg-dealerships:server:brazzers-get-fakeplate-from-plate", function(_, plate) + local result = MySQL.scalar.await("SELECT fakeplate FROM player_vehicles WHERE plate = ?", {plate}) + if result then return result end + return false + end) +end \ No newline at end of file diff --git a/resources/[carscripts]/jg-dealerships/fxmanifest.lua b/resources/[carscripts]/jg-dealerships/fxmanifest.lua new file mode 100644 index 000000000..3295e334b --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/fxmanifest.lua @@ -0,0 +1,57 @@ +fx_version "cerulean" +game "gta5" +lua54 "yes" + +description "For support or other queries: discord.gg/jgscripts" +version 'v1.5.1' +author "JG Scripts" + +dependencies { + "oxmysql", + "ox_lib", + "/server:7290", + "/onesync", +} + +shared_scripts { + "@ox_lib/init.lua", + "config/config.lua", + "locales/*.lua", + "shared/main.lua", + "framework/main.lua" +} + +client_scripts { + "framework/**/cl-*.lua", + "client/cl-main.lua", + "client/*.lua", + "config/config-cl.lua" +} + +server_scripts { + "@oxmysql/lib/MySQL.lua", + "server/sv-webhooks.lua", + "framework/**/sv-*.lua", + "server/*.lua", + "config/config-sv.lua" +} + +ui_page "web/dist/index.html" + +files { + "web/dist/index.html", + "web/dist/**/*" +} + +escrow_ignore { + "shared/*", + "config/**/*", + "framework/**/*", + "locales/*", + "client/cl-locations.lua", + "server/sv-webhooks.lua", + "client/cl-purchase.lua", + "server/sv-purchase.lua" +} + +dependency '/assetpacks' \ No newline at end of file diff --git a/resources/[carscripts]/jg-dealerships/install/run-esx.sql b/resources/[carscripts]/jg-dealerships/install/run-esx.sql new file mode 100644 index 000000000..c713b701c --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/install/run-esx.sql @@ -0,0 +1,85 @@ +ALTER TABLE `owned_vehicles` ADD COLUMN IF NOT EXISTS `financed` tinyint(1) NOT NULL DEFAULT 0; +ALTER TABLE `owned_vehicles` ADD COLUMN IF NOT EXISTS `finance_data` longtext DEFAULT NULL; + +CREATE TABLE IF NOT EXISTS `dealership_data` ( + `name` varchar(100) NOT NULL, + `label` varchar(255) NOT NULL, + `balance` float NOT NULL DEFAULT 0, + `owner_id` varchar(255) DEFAULT NULL, + `owner_name` varchar(255) DEFAULT NULL, + `employee_commission` int(11) DEFAULT '10', + PRIMARY KEY (`name`) +); + +CREATE TABLE IF NOT EXISTS `dealership_vehicles` ( + `spawn_code` varchar(100) NOT NULL, + `brand` varchar(255) DEFAULT NULL, + `model` varchar(255) DEFAULT NULL, + `hashkey` varchar(100) DEFAULT NULL, + `category` varchar(100) NOT NULL, + `price` float NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`spawn_code`) +); + +CREATE TABLE IF NOT EXISTS `dealership_dispveh` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `dealership` varchar(100) NOT NULL, + `vehicle` varchar(100) NOT NULL, + `color` varchar(100) NOT NULL, + `coords` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_dispveh_dealership` (`dealership`), + KEY `fk_dispveh_vehicle` (`vehicle`) +); + +CREATE TABLE IF NOT EXISTS `dealership_orders` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `vehicle` varchar(100) NOT NULL, + `dealership` varchar(100) NOT NULL, + `quantity` int(11) NOT NULL DEFAULT 0, + `cost` float NOT NULL DEFAULT 0, + `delivery_time` int(11) NOT NULL, + `order_created` datetime NOT NULL DEFAULT current_timestamp(), + `fulfilled` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `orders_vehicle_fk` (`vehicle`), + KEY `orders_dealership_fk` (`dealership`) +); + +CREATE TABLE IF NOT EXISTS `dealership_sales` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `dealership` varchar(255) NOT NULL, + `vehicle` varchar(100) NOT NULL, + `plate` varchar(255) NOT NULL, + `player` varchar(255) NOT NULL, + `seller` varchar(255), + `purchase_type` varchar(50) NOT NULL, + `paid` float NOT NULL DEFAULT 0, + `owed` float NOT NULL DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_sales_vehicle` (`vehicle`), + KEY `fk_sales_dealership` (`dealership`), + KEY `fk_sales_player` (`player`), + KEY `fk_sales_plate` (`plate`) +); + +CREATE TABLE IF NOT EXISTS `dealership_stock` ( + `dealership` varchar(100) NOT NULL, + `vehicle` varchar(100) NOT NULL, + `stock` int(11) NOT NULL, + `price` float NOT NULL DEFAULT 0, + PRIMARY KEY (`dealership`, `vehicle`), + KEY `vehicle_fk` (`vehicle`) +); + +CREATE TABLE IF NOT EXISTS `dealership_employees` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `identifier` varchar(255) NOT NULL, + `dealership` varchar(255) NOT NULL, + `role` varchar(100) NOT NULL, + `joined` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_employees_dealership` (`dealership`) +); \ No newline at end of file diff --git a/resources/[carscripts]/jg-dealerships/install/run-qb.sql b/resources/[carscripts]/jg-dealerships/install/run-qb.sql new file mode 100644 index 000000000..baa214928 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/install/run-qb.sql @@ -0,0 +1,85 @@ +ALTER TABLE `player_vehicles` ADD COLUMN IF NOT EXISTS `financed` tinyint(1) NOT NULL DEFAULT 0; +ALTER TABLE `player_vehicles` ADD COLUMN IF NOT EXISTS `finance_data` longtext DEFAULT NULL; + +CREATE TABLE IF NOT EXISTS `dealership_data` ( + `name` varchar(100) NOT NULL, + `label` varchar(255) NOT NULL, + `balance` float NOT NULL DEFAULT 0, + `owner_id` varchar(255) DEFAULT NULL, + `owner_name` varchar(255) DEFAULT NULL, + `employee_commission` int(11) DEFAULT '10', + PRIMARY KEY (`name`) +); + +CREATE TABLE IF NOT EXISTS `dealership_vehicles` ( + `spawn_code` varchar(100) NOT NULL, + `brand` varchar(255) DEFAULT NULL, + `model` varchar(255) DEFAULT NULL, + `hashkey` varchar(100) DEFAULT NULL, + `category` varchar(100) NOT NULL, + `price` float NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`spawn_code`) +); + +CREATE TABLE IF NOT EXISTS `dealership_dispveh` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `dealership` varchar(100) NOT NULL, + `vehicle` varchar(100) NOT NULL, + `color` varchar(100) NOT NULL, + `coords` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_dispveh_dealership` (`dealership`), + KEY `fk_dispveh_vehicle` (`vehicle`) +); + +CREATE TABLE IF NOT EXISTS `dealership_orders` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `vehicle` varchar(100) NOT NULL, + `dealership` varchar(100) NOT NULL, + `quantity` int(11) NOT NULL DEFAULT 0, + `cost` float NOT NULL DEFAULT 0, + `delivery_time` int(11) NOT NULL, + `order_created` datetime NOT NULL DEFAULT current_timestamp(), + `fulfilled` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `orders_vehicle_fk` (`vehicle`), + KEY `orders_dealership_fk` (`dealership`) +); + +CREATE TABLE IF NOT EXISTS `dealership_sales` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `dealership` varchar(255) NOT NULL, + `vehicle` varchar(100) NOT NULL, + `plate` varchar(255) NOT NULL, + `player` varchar(255) NOT NULL, + `seller` varchar(255), + `purchase_type` varchar(50) NOT NULL, + `paid` float NOT NULL DEFAULT 0, + `owed` float NOT NULL DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_sales_vehicle` (`vehicle`), + KEY `fk_sales_dealership` (`dealership`), + KEY `fk_sales_player` (`player`), + KEY `fk_sales_plate` (`plate`) +); + +CREATE TABLE IF NOT EXISTS `dealership_stock` ( + `dealership` varchar(100) NOT NULL, + `vehicle` varchar(100) NOT NULL, + `stock` int(11) NOT NULL, + `price` float NOT NULL DEFAULT 0, + PRIMARY KEY (`dealership`, `vehicle`), + KEY `vehicle_fk` (`vehicle`) +); + +CREATE TABLE IF NOT EXISTS `dealership_employees` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `identifier` varchar(255) NOT NULL, + `dealership` varchar(255) NOT NULL, + `role` varchar(100) NOT NULL, + `joined` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_employees_dealership` (`dealership`) +); \ No newline at end of file diff --git a/resources/[carscripts]/jg-dealerships/locales/ar.lua b/resources/[carscripts]/jg-dealerships/locales/ar.lua new file mode 100644 index 000000000..c0d02807f --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/ar.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['ar'] = { + -- UI + vehicle = "مركبة", + vehicles = "مركبات", + dealership = "وكالة", + dealerships = "وكالات", + vehiclesCount = "مركبة/مركبات", + dealersCount = "وكيل/وكلاء", + accountBalance = "رصيد الحساب", + bank = "حساب بنكي", + cash = "نقد", + amount = "المبلغ", + societyFund = "صندوق المجتمع", + paymentSource = "مصدر الدفع", + purchase = "شراء", + personalPurchase = "شراء شخصي", + societyPurchase = "شراء للمجتمع", + purchaseType = "نوع الشراء", + deposit = "إيداع", + withdraw = "سحب", + all = "الكل", + yes = "نعم", + no = "لا", + add = "إضافة", + edit = "تعديل", + id = "معرف", + created = "تم الإنشاء", + type = "النوع", + name = "الاسم", + owner = "المالك", + bankBalance = "رصيد البنك", + status = "الحالة", + back = "رجوع", + previous = "السابق", + next = "التالي", + admin = "مسؤول", + vehiclesAdmin = "إدارة المركبات", + dealershipsAdmin = "إدارة الوكالات", + search = "بحث", + noDealershipsFound = "لم يتم العثور على وكالات", + noVehicles = "لم يتم العثور على مركبات", + page = "صفحة", + of = "من", + every = "كل", + show = "عرض", + active = "نشط", + activeFinance = "تمويل نشط", + failed = "فشل الدفع", + removed = "تمت الإزالة", + setOwner = "تعيين المالك", + manage = "إدارة", + deleteData = "حذف البيانات", + deleteVehicle = "حذف المركبة", + delete = "حذف", + deleteConfirmation = "هل أنت متأكد؟", + deleteConfirmationDanger = "هل أنت متأكد؟ هذا الإجراء لا يمكن التراجع عنه.", + setDealershipOwner = "تعيين مالك الوكالة", + overwriteDealerPrices = "تجاوز أسعار الوكالة", + nearbyPlayers = "اللاعبين القريبين", + noPlayersNearby = "لا يوجد لاعبين قريبين", + selectPlayer = "اختر لاعب", + required = "مطلوب", + forExample = "على سبيل المثال", + spawnCode = "رمز الاستدعاء", + brand = "العلامة التجارية", + model = "الموديل", + category = "الفئة", + price = "السعر", + import = "استيراد", + importing = "جارٍ الاستيراد", + importBehaviour = "سلوك الاستيراد", + importVehicles = "استيراد المركبات", + importFrom = "استيراد من", + dashboard = "لوحة القيادة", + displayVehicle = "عرض المركبة", + displayVehicles = "عرض المركبات", + orders = "الطلبات", + sales = "المبيعات", + vehiclesOnDisplay = "المركبات المعروضة", + employees = "الموظفين", + settings = "الإعدادات", + switchVehicle = "تبديل المركبة", + remove = "إزالة", + noDisplayVehicles = "لا توجد مركبات معروضة", + selectVehicle = "اختر مركبة", + colour = "اللون", + placeVehicle = "وضع المركبة", + orderVehicle = "طلب مركبة", + cancelOrder = "إلغاء الطلب", + delivery = "التسليم", + delivered = "تم التسليم", + noOrders = "لم يتم العثور على طلبات", + quantity = "الكمية", + totalCost = "التكلفة الإجمالية", + totalSales = "إجمالي المبيعات", + noSales = "لم يتم العثور على مبيعات", + paid = "مدفوع", + owed = "مستحق", + dealershipName = "اسم الوكالة", + save = "حفظ التغييرات", + cancel = "إلغاء", + notEnoughMoney = "لا يوجد ما يكفي من المال", + placeOrder = "تقديم الطلب", + purchaseCost = "تكلفة الشراء", + salePrice = "سعر البيع", + inStock = "متوفر في المخزون", + outOfStock = "غير متوفر في المخزون", + placeVehiclePrompt = "اضغط %{value} لوضع المركبة. يمكنك إجراء تعديلات دقيقة بعد ذلك!", + remaining = "المتبقي", + prePurchaseRepoWarning = "إذا لم تتمكن من متابعة دفعات التمويل، سيتم استعادة مركبتك.", + repossessionWarning = "فشلت دفعتك الأخيرة - سيتم استعادة مركبتك ما لم تقم بالدفع الآن.", + recurringPayment = "دفعة متكررة", + remainingBalance = "الرصيد المتبقي", + remainingPayments = "الدفعات المتبقية", + paymentTakenEvery = "يتم أخذ الدفع كل", + hours = "ساعات", + seconds = "ثواني", + nextPayment = "الدفعة التالية", + makePayment = "قم بالدفع", + vehicleRepossessed = "سيتم استعادة المركبة", + payInFull = "الدفع بالكامل", + earlyPaymentConfirmation = "هل أنت متأكد أنك تريد الدفع المبكر بمبلغ", + financedVehicles = "المركبات الممولة", + noFinancedVehicles = "ليس لديك مركبات بتمويل نشط", + financeBreakdown = "تفاصيل التمويل", + initialPayment = "الدفعة الأولى", + payments = "الدفعات", + length = "المدة", + interest = "الفائدة", + totalPayable = "الإجمالي المستحق", + leaveShowroom = "مغادرة صالة العرض", + handling = "المناولة", + topSpeed = "السرعة القصوى", + power = "القوة", + torque = "العزم", + brake = "الفرامل", + financing = "التمويل", + financingAvailable = "التمويل متاح", + paymentsOf = "دفعات من", + clear = "مسح", + testDrive = "تجربة قيادة", + allCategories = "جميع الفئات", + sortByName = "ترتيب حسب: الاسم", + sortByAvailability = "ترتيب حسب: التوفر", + sortByCheapest = "ترتيب حسب: الأرخص", + sortByMostExpensive = "ترتيب حسب: الأغلى", + sortByNewest = "ترتيب حسب: الأحدث", + purchaseVehicle = "شراء مركبة", + purchaseFor = "شراء لـ", + selectSociety = "اختر مجتمع", + financeOverPayments = "تمويل على %{value} دفعات", + payToday = "ادفع اليوم", + financeThen = "ثم", + seeFullBreakdown = "عرض التفاصيل الكاملة", + testDriveExit = "يمكنك الخروج من مركبتك في أي وقت لإنهاء تجربة القيادة.", + + -- NOTIFICATIONS + purchaseSuccess = "تهانينا على الشراء!", + depositSuccess = "تم الإيداع بنجاح", + withdrawSuccess = "تم السحب بنجاح", + errorNotEnoughMoney = "لا يوجد لديك ما يكفي من المال", + errorVehicleOutOfStock = "هذه المركبة غير متوفرة في المخزون", + errorCannotAffordVehicle = "لا يمكنك تحمل تكلفة هذه المركبة", + vehicleFinancePaymentMade = "تم دفع دفعة التمويل لمركبتك %{value}", + vehicleFinancePaidOff = "تهانينا، لقد دفعت بالكامل وتملك الآن مركبتك %{value}", + vehicleFinancePaymentFailed = "فشلت دفعة التمويل لمركبتك %{value}", + vehicleFinanceRepossessedSoon = "تحتاج إلى دفع لمركبتك %{value} أو سيتم استعادة مركبتك قريبًا", + vehicleFinanceRepossessed = "بسبب الفشل في الدفع، تم استعادة مركبتك برقم اللوحة %{value}", + dealershipNotEnoughFunds = "الوكالة لا تملك ما يكفي من الأموال", + dealershipVehiclesOrdered = "تم طلب المركبات بنجاح", + dealershipOrderCancelled = "تم إلغاء الطلب بنجاح", + errorVehicleWithSpawnCodeExists = "مركبة بهذا الرمز موجودة بالفعل", + errorExitVehicle = "تحتاج إلى الخروج من مركبتك أولاً", + + -- NEW v1.1 + purchaseRequest = "طلب شراء", + sendRequest = "إرسال الطلب", + dealer = "وكيل", + financed = "ممول", + signHere = "وقع هنا", + signFirstError = "يرجى التوقيع أولاً", + denyRequest = "رفض الطلب", + playerTooManyFinancedVehicles = "اللاعب لديه الكثير من المركبات الممولة", + employeePermissionsError = "ليس لديك الصلاحيات اللازمة للموظف", + managerRole = "مدير", + supervisorRole = "مشرف", + salesRole = "مبيعات", + ownerRole = "مالك", + employmentRequest = "طلب توظيف", + accept = "قبول", + jobOfferDescription = "تم عرض وظيفة لك في وكالة \"%{value}\". هل ترغب في القبول؟", + pending = "قيد الانتظار", + employeeHiredMsg = "تم قبول طلب التوظيف في الوكالة!", + employeeRejectedMsg = "تم رفض طلب التوظيف في الوكالة", + sellVehicle = "بيع مركبة", + vehicleTerms = "شروط المركبة", + financePayments = "دفعات التمويل", + commission = "العمولة", + role = "الدور", + firedNotification = "تم فصلك من وكالة \"%{value}\"", + dealershipTooFarAway = "أنت لست بالقرب من أي وكالات", + restoreDisplayVehicles = "استعادة صالة العرض", + customer = "عميل", + lessThanAMin = "أقل من دقيقة", + mins = "دقيقة/دقائق", + notInVehicle = "أنت لست جالسًا في مركبة", + notYourVehicleError = "هذه المركبة لا تخصك", + vehicleFinancedError = "لا يمكنك بيع هذه المركبة لأنها تحتوي على دفعات تمويل متبقية", + dealershipDoesntSellVehicle = "هذه الوكالة لا تستطيع شراء هذه المركبة", + dealershipWantsYourVehicle = "تهانينا! ترغب هذه الوكالة في شراء مركبتك.", + purchasePrice = "السعر المعروض: ", + + spawnCodeInvalid = "رمز الاستدعاء غير صالح", + salesRep = "ممثل مبيعات", + directSaleAccepted = "تم قبول طلب البيع المباشر! تم دفع عمولتك.", + directSaleRejected = "تم رفض طلب البيع المباشر" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/cn.lua b/resources/[carscripts]/jg-dealerships/locales/cn.lua new file mode 100644 index 000000000..dda0a11a6 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/cn.lua @@ -0,0 +1,220 @@ +Locales = Locales or {} + +Locales['cn'] = { + -- 界面 + vehicle = "车辆", + vehicles = "车辆", + dealership = "汽车销售商", + dealerships = "汽车销售商", + vehiclesCount = "辆车", + dealersCount = "个销售商", + accountBalance = "账户余额", + bank = "银行账户", + cash = "现金", + amount = "金额", + societyFund = "社团资金", + paymentSource = "支付来源", + purchase = "购买", + personalPurchase = "个人购买", + societyPurchase = "社团购买", + purchaseType = "购买类型", + deposit = "存款", + withdraw = "取款", + all = "全部", + yes = "是", + no = "否", + add = "添加", + edit = "编辑", + id = "ID", + created = "创建时间", + type = "类型", + name = "名称", + owner = "拥有者", + bankBalance = "银行余额", + status = "状态", + back = "返回", + previous = "上一步", + next = "下一步", + admin = "管理员", + vehiclesAdmin = "车辆管理员", + dealershipsAdmin = "销售商管理员", + search = "搜索", + noDealershipsFound = "未找到销售商", + noVehicles = "未找到车辆", + page = "页", + of = "共", + every = "每", + show = "显示", + active = "启用", + activeFinance = "启用融资", + failed = "支付失败", + removed = "已移除", + setOwner = "设置拥有者", + manage = "管理", + deleteData = "删除数据", + deleteVehicle = "删除车辆", + delete = "删除", + deleteConfirmation = "确定删除?", + deleteConfirmationDanger = "确定删除?此操作不可逆。", + setDealershipOwner = "设置销售商拥有者", + overwriteDealerPrices = "覆盖销售商价格", + nearbyPlayers = "附近玩家", + noPlayersNearby = "附近没有玩家", + selectPlayer = "选择玩家", + required = "必填", + forExample = "例如", + spawnCode = "生成代码", + brand = "品牌", + model = "型号", + category = "类别", + price = "价格", + import = "导入", + importing = "正在导入", + importBehaviour = "导入行为", + importVehicles = "导入车辆", + importFrom = "从...导入", + dashboard = "仪表盘", + displayVehicle = "展示车辆", + displayVehicles = "展示车辆", + orders = "订单", + sales = "销售", + vehiclesOnDisplay = "展厅展示车辆", + employees = "员工", + settings = "设置", + switchVehicle = "切换车辆", + remove = "移除", + noDisplayVehicles = "没有展示车辆", + selectVehicle = "选择车辆", + colour = "颜色", + placeVehicle = "放置车辆", + orderVehicle = "订购车辆", + cancelOrder = "取消订单", + delivery = "交付", + delivered = "已交付", + noOrders = "没有找到订单", + quantity = "数量", + totalCost = "总成本", + totalSales = "总销售额", + noSales = "没有找到销售记录", + paid = "已支付", + owed = "欠款", + dealershipName = "销售商名称", + save = "保存更改", + cancel = "取消", + notEnoughMoney = "余额不足", + placeOrder = "下订单", + purchaseCost = "购买成本", + salePrice = "销售价格", + inStock = "库存", + outOfStock = "售罄", + placeVehiclePrompt = "按 %{value} 放置车辆。您可以之后做更细致的调整!", + remaining = "剩余", + prePurchaseRepoWarning = "如果您未能按时付款,您的车辆将被回收。", + repossessionWarning = "您的最后一次付款失败——如果不立即付款,您的车辆将被回收。", + recurringPayment = "定期付款", + remainingBalance = "剩余余额", + remainingPayments = "剩余付款次数", + paymentTakenEvery = "每", + hours = "小时", + seconds = "秒", + nextPayment = "下一次付款", + makePayment = "付款", + vehicleRepossessed = "车辆将被回收", + payInFull = "一次性付款", + earlyPaymentConfirmation = "确定要提前支付", + financedVehicles = "融资车辆", + noFinancedVehicles = "您没有融资车辆", + financeBreakdown = "融资明细", + initialPayment = "首付", + payments = "付款次数", + length = "期限", + interest = "利率", + totalPayable = "总需支付", + leaveShowroom = "离开展厅", + handling = "操控", + topSpeed = "最高速度", + power = "功率", + torque = "扭矩", + brake = "刹车", + financing = "融资", + financingAvailable = "提供融资", + paymentsOf = "每期付款", + clear = "清除", + testDrive = "试驾", + allCategories = "所有类别", + sortByName = "按名称排序", + sortByAvailability = "按可用性排序", + sortByCheapest = "按最便宜排序", + sortByMostExpensive = "按最贵排序", + sortByNewest = "按最新排序", + purchaseVehicle = "购买车辆", + purchaseFor = "为...购买", + selectSociety = "选择社团", + financeOverPayments = "分期付款 %{value} 次", + payToday = "今天付款", + financeThen = "然后", + seeFullBreakdown = "查看完整明细", + testDriveExit = "您可以随时离开车辆以结束试驾。", + + -- 通知 + purchaseSuccess = "恭喜您购买成功!", + depositSuccess = "存款成功", + withdrawSuccess = "取款成功", + errorNotEnoughMoney = "余额不足", + errorVehicleOutOfStock = "该车辆已售罄", + errorCannotAffordVehicle = "您无法购买此车辆", + vehicleFinancePaymentMade = "您的车辆 %{value} 已成功付款", + vehicleFinancePaidOff = "恭喜您已付清并拥有车辆 %{value}", + vehicleFinancePaymentFailed = "您的车辆 %{value} 付款失败", + vehicleFinanceRepossessedSoon = "您需要支付车辆 %{value} 欠款,否则将被回收", + vehicleFinanceRepossessed = "由于未支付款项,您的车辆(车牌 %{value})已被回收", + dealershipNotEnoughFunds = "销售商资金不足", + dealershipVehiclesOrdered = "车辆已成功订购", + dealershipOrderCancelled = "订单已成功取消", + errorVehicleWithSpawnCodeExists = "该生成代码对应的车辆已存在", + errorExitVehicle = "您需要先下车", + errorPlacementCollision = "您不能在这里放置车辆", + + -- 新增 v1.1 + purchaseRequest = "购买请求", + sendRequest = "发送请求", + dealer = "销售商", + financed = "已融资", + signHere = "请在此签名", + signFirstError = "请先签名", + denyRequest = "拒绝请求", + playerTooManyFinancedVehicles = "玩家拥有的融资车辆过多", + employeePermissionsError = "您没有足够的员工权限", + managerRole = "经理", + supervisorRole = "主管", + salesRole = "销售", + ownerRole = "拥有者", + employmentRequest = "招聘申请", + accept = "接受", + jobOfferDescription = "您已获得来自 \"%{value}\" 销售商的工作邀请。您愿意接受吗?", + pending = "待定", + employeeHiredMsg = "销售商已接受您的聘用请求!", + employeeRejectedMsg = "销售商已拒绝您的聘用请求", + sellVehicle = "出售车辆", + vehicleTerms = "车辆条款", + financePayments = "融资付款", + commission = "佣金", + role = "角色", + firedNotification = "您已被 \"%{value}\" 销售商解雇", + dealershipTooFarAway = "您距离任何销售商太远", + restoreDisplayVehicles = "恢复展厅", + customer = "客户", + lessThanAMin = "少于一分钟", + mins = "分钟", + notInVehicle = "您没有坐在车辆中", + notYourVehicleError = "这不是您的车辆", + vehicleFinancedError = "此车辆有未付清的融资款项,不能出售", + dealershipDoesntSellVehicle = "此销售商不出售该车辆", + dealershipWantsYourVehicle = "恭喜!此销售商愿意购买您的车辆。", + purchasePrice = "报价:", + + spawnCodeInvalid = "生成代码无效", + salesRep = "销售代表", + directSaleAccepted = "直接销售请求已接受!您的佣金已支付。", + directSaleRejected = "直接销售请求已拒绝" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/cs.lua b/resources/[carscripts]/jg-dealerships/locales/cs.lua new file mode 100644 index 000000000..a7bac1282 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/cs.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['cs'] = { + -- UI + vehicle = "Vozidlo", + vehicles = "Vozidla", + dealership = "Prodejna vozidel", + dealerships = "Prodejny vozidel", + vehiclesCount = "vozidlo(a)", + dealersCount = "Obchodníci", + accountBalance = "Zůstatek na účtu", + bank = "Bankovní účet", + cash = "Hotovost", + amount = "Množství", + societyFund = "Společenský fond", + paymentSource = "Způsob platby", + purchase = "Nákup", + personalPurchase = "Osobní nákup", + societyPurchase = "Nákup společnosti", + purchaseType = "Typ nákupu", + deposit = "Vklad", + withdraw = "Vybrat", + all = "Vše", + yes = "Ano", + no = "Ne", + add = "Přidat", + edit = "Upravit", + id = "ID", + created = "Vytvořil", + type = "Typ", + name = "Jméno", + owner = "Vlastník", + bankBalance = "Bankovní zůstatek", + status = "Stav", + back = "Zpět", + previous = "Předchozí", + next = "Další", + admin = "Admin", + vehiclesAdmin = "Správce vozidel", + dealershipsAdmin = "Správce prodejen", + search = "Hledání", + noDealershipsFound = "Nebyli nalezeni žádní prodejci", + noVehicles = "Nebyla nalezena žádná vozidla", + page = "Stránka", + of = "z", + every = "každý", + show = "Ukázat", + active = "Aktivní", + activeFinance = "Aktivní finance", + failed = "Platba se nezdařila", + removed = "Odstraněný", + setOwner = "Nastavit vlastníka", + manage = "Spravovat", + deleteData = "Smazání dat", + deleteVehicle = "Smazat vozidlo", + delete = "Vymazat", + deleteConfirmation = "Opravdu?", + deleteConfirmationDanger = "Opravdu? Tato akce je nevratná.", + setDealershipOwner = "Nastavit majitele prodejny", + overwriteDealerPrices = "Přepsání prodejních cen", + nearbyPlayers = "Hráči v okolí", + noPlayersNearby = "V okolí nejsou žádní hráči", + selectPlayer = "Vyberte hráče", + required = "Požadovaný", + forExample = "Například", + spawnCode = "Kód pro spawn", + brand = "Značka", + model = "Model", + category = "Kategorie", + price = "Cena", + import = "Dovoz", + importing = "Importování", + importBehaviour = "Chování při importu", + importVehicles = "Importovaná vozidla", + importFrom = "Dovoz z", + dashboard = "Hlavní", + displayVehicle = "Zobrazit vozidlo", + displayVehicles = "Zobrazit vozidla", + orders = "Objednávky", + sales = "Prodej", + vehiclesOnDisplay = "Vystavená vozidla", + employees = "Zaměstnanci", + settings = "Nastavení", + switchVehicle = "Přepnout vozidlo", + remove = "Odstranit", + noDisplayVehicles = "Žádná vystavená vozidla", + selectVehicle = "Vybrat vozidlo", + colour = "Barva", + placeVehicle = "Místo vozidla", + orderVehicle = "Objednat vozidlo", + cancelOrder = "Zrušit objednávku", + delivery = "Doručení", + delivered = "Doručil", + noOrders = "Nebyly nalezeny žádné objednávky", + quantity = "Množství", + totalCost = "Celkové náklady", + totalSales = "Celkové tržby", + noSales = "Nebyl nalezen žádný prodej", + paid = "Zaplaceno", + owed = "Dlužil", + dealershipName = "Název prodejny", + save = "Uložit změny", + cancel = "Zrušit", + notEnoughMoney = "Nedostatek peněz", + placeOrder = "Zadat objednávku", + purchaseCost = "Nákupní náklady", + salePrice = "Prodejní cena", + inStock = "Na skladě", + outOfStock = "Není skladem", + placeVehiclePrompt = "Stiskněte %{value} umístit vozidlo. Poté můžete provést menší úpravy!", + remaining = "Zbývající", + prePurchaseRepoWarning = "Pokud nebudete schopni splácet své finanční závazky, bude vám vozidlo zabaveno.", + repossessionWarning = "Vaše poslední platba se nezdařila - vaše vozidlo bude zabaveno, pokud nyní neprovedete platbu.", + recurringPayment = "Opakovaná platba", + remainingBalance = "Zbývající zůstatek", + remainingPayments = "Zbývající platby", + paymentTakenEvery = "Platba se provádí každé", + hours = "hodiny", + seconds = "sekundy", + nextPayment = "Příští platba", + makePayment = "Proveďte platbu", + vehicleRepossessed = "Vozidlo bude zabaveno", + payInFull = "Zaplaťte v plné výši", + earlyPaymentConfirmation = "Opravdu chcete provést předčasnou platbu", + financedVehicles = "Financovaná vozidla", + noFinancedVehicles = "Nemáte žádná vozidla s aktivním financováním", + financeBreakdown = "Finanční členění", + initialPayment = "Počáteční platba", + payments = "Platby", + length = "Délka", + interest = "Úrok", + totalPayable = "Celkem splatné", + leaveShowroom = "Opustit showroom", + handling = "Handling", + topSpeed = "Maximální rychlost", + power = "Síla", + torque = "Točivý moment", + brake = "Brzda", + financing = "Financování", + financingAvailable = "Dostupné financování", + paymentsOf = "platby", + clear = "Vymazat", + testDrive = "Testovací jízda", + allCategories = "Všechny kategorie", + sortByName = "Seřadit podle: Název", + sortByAvailability = "Seřadit podle: Dostupnost", + sortByCheapest = "Seřadit podle: Nejlevnější", + sortByMostExpensive = "Seřadit podle: Nejdražší", + sortByNewest = "Seřadit podle: Nejnovější", + purchaseVehicle = "Koupit vozidlo", + purchaseFor = "Nákup za", + selectSociety = "Vyberte společnost", + financeOverPayments = "Zbývající částka k zaplacení je %{value}", + payToday = "Zaplaťte ještě dnes", + financeThen = "Potom", + seeFullBreakdown = "Zobrazit úplný rozpis", + testDriveExit = "Zkušební jízdu můžete kdykoli opustit a zkušební jízdu ukončit.", + + -- NOTIFICATIONS + purchaseSuccess = "Gratulujeme k nákupu!", + depositSuccess = "Vklad byl úspěšný", + withdrawSuccess = "Úspěšný výběr", + errorNotEnoughMoney = "Nemáte dost peněz", + errorVehicleOutOfStock = "Toto vozidlo není skladem", + errorCannotAffordVehicle = "Toto vozidlo si nemůžete dovolit", + vehicleFinancePaymentMade = "Finanční platba za vaše vozidlo %{value}", + vehicleFinancePaidOff = "Gratulujeme, vyplatili jste se a nyní vlastníte své vozidlo %{value}", + vehicleFinancePaymentFailed = "Finanční platba za vaše vozidlo se nezdařila %{value}", + vehicleFinanceRepossessedSoon = "Musíte provést platbu za své vozidlo %{value} nebo bude vaše vozidlo brzy zabaveno", + vehicleFinanceRepossessed = "Z důvodu nezaplacení bylo vaše vozidlo zabaveno i s poznávací značkou %{value}", + dealershipNotEnoughFunds = "Prodejce nemá dostatek finančních prostředků", + dealershipVehiclesOrdered = "Vozidlo (vozidla) bylo úspěšně objednáno", + dealershipOrderCancelled = "Objednávka byla úspěšně zrušena", + errorVehicleWithSpawnCodeExists = "Vozidlo s tímto spawn kódem již existuje", + errorExitVehicle = "Nejprve musíte opustit své vozidlo", + + -- NEW v1.1 + purchaseRequest = "Žádost o nákup", + sendRequest = "Odeslat žádost", + dealer = "Prodejce", + financed = "Financováno", + signHere = "Podepište se zde", + signFirstError = "Nejprve se podepište", + denyRequest = "Odmítnutí žádosti", + playerTooManyFinancedVehicles = "Hráč má příliš mnoho financovaných vozidel", + employeePermissionsError = "Nemáte potřebná oprávnění zaměstnance", + managerRole = "Manažer", + supervisorRole = "Supervizor", + salesRole = "Prodej", + ownerRole = "Majitel", + employmentRequest = "Žádost o zaměstnání", + accept = "Přijmout", + jobOfferDescription = "Byla vám nabídnuta práce u prodejce \"%{value}\". Chtěli byste ji přijmout?", + pending = "Čeká se na", + employeeHiredMsg = "Žádost o pronájem dealerství byla přijata!", + employeeRejectedMsg = "Žádost o pronájem dealerství byla zamítnuta", + sellVehicle = "Prodej vozidla", + vehicleTerms = "Podmínky pro vozidla", + financePayments = "Finanční platby", + commission = "Komise", + role = "Úloha", + firedNotification = "Byl jste propuštěn z \"%{value}\" dealerství", + dealershipTooFarAway = "Nejste v blízkosti žádného prodejce", + restoreDisplayVehicles = "Předváděcí místnost Restore", + customer = "Zákazník", + lessThanAMin = "Méně než minuta", + mins = "minuty", + notInVehicle = "Nesedíte ve vozidle", + notYourVehicleError = "Toto vozidlo vám nepatří", + vehicleFinancedError = "Toto vozidlo nemůžete prodat, protože na něm zůstávají finanční splátky", + dealershipDoesntSellVehicle = "Tento prodejce nemůže koupit toto vozidlo", + dealershipWantsYourVehicle = "Gratulujeme! Tento prodejce by rád zakoupil vaše vozidlo.", + purchasePrice = "Nabízená cena: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/de.lua b/resources/[carscripts]/jg-dealerships/locales/de.lua new file mode 100644 index 000000000..4f156a680 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/de.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['de'] = { + -- UI + vehicle = "Fahrzeug", + vehicles = "Fahrzeuge", + dealership = "Autohaus", + dealerships = "Autohäuser", + vehiclesCount = "Fahrzeuge Anzahl", + dealersCount = "Händler", + accountBalance = "Kontostand", + bank = "Bankkonto", + cash = "Bargeld", + amount = "Betrag", + societyFund = "Gewerbegeld", + paymentSource = "Zahlungsquelle", + purchase = "Kaufen", + personalPurchase = "Privater Kauf", + societyPurchase = "Gewerblicher Kauf", + purchaseType = "Kaufart", + deposit = "Einzahlen", + withdraw = "Auszahlen", + all = "Alle", + yes = "Ja", + no = "Nein", + add = "Hinzufügen", + edit = "Bearbeiten", + id = "ID", + created = "Erstellt", + type = "Typ", + name = "Name", + owner = "Besitzer", + bankBalance = "Kontostand", + status = "Status", + back = "Zurück", + previous = "Vorherige", + next = "Nächste", + admin = "Verwaltung", + vehiclesAdmin = "Fahrzeug Verwaltung", + dealershipsAdmin = "Autohaus Verwaltung", + search = "Suchen", + noDealershipsFound = "Keine Autohäuser gefunden", + noVehicles = "Keine Fahrzeuge", + page = "Seite", + of = "von", + every = "alle", + show = "Anzeigen", + active = "Aktiv", + activeFinance = "Aktive Finanzierung", + failed = "Fehlgeschlagen", + removed = "Entfernt", + setOwner = "Besitzer festlegen", + manage = "Verwalten", + deleteData = "Daten löschen", + deleteVehicle = "Fahrzeug entfernen", + delete = "Entfernen", + deleteConfirmation = "Sind Sie sich wirklich sicher?", + deleteConfirmationDanger = "Bestätigen, dies kann nicht rückgängig gemacht werden.", + setDealershipOwner = "Besitzer festlegen", + overwriteDealerPrices = "Händlerpreise Überschreiben", + nearbyPlayers = "Spieler in der Nähe", + noPlayersNearby = "Kein Spieler in der Nähe", + selectPlayer = "Einen Spieler auswählen", + required = "Erforderlich", + forExample = "Zum Beispiel", + spawnCode = "Spawnname", + brand = "Marke", + model = "Model", + category = "Kategorie", + price = "Preis", + import = "Importieren", + importing = "Importiere...", + importBehaviour = "Fahrzeug Daten", + importVehicles = "Fahrzeuge importieren", + importFrom = "Importieren von", + dashboard = "Dashboard", + displayVehicle = "Fahrzeug anzeigen", + displayVehicles = "Ausstellung", + orders = "Bestellungen", + sales = "Verkäufe", + vehiclesOnDisplay = "Fahrzeuge in der Ausstellung", + employees = "Mitarbeiter", + settings = "Einstellungen", + switchVehicle = "Fahrzeug wechseln", + remove = "Entfernen", + noDisplayVehicles = "Keine Ausstellungsfahrzeuge", + selectVehicle = "Fahrzeug auswählen", + colour = "Farbe", + placeVehicle = "Fahrzeug platzieren", + orderVehicle = "Fahrzeug/e bestellen", + cancelOrder = "Bestellung stornieren", + delivery = "Lieferung", + delivered = "Ausgeliefert", + noOrders = "keine Bestellungen", + quantity = "Menge", + totalCost = "Gesamtkosten", + totalSales = "Verkäufe", + noSales = "Keine Verkäufe", + paid = "Bezahlt", + owed = "Schulden", + dealershipName = "Händler Name", + save = "Speichern", + cancel = "Abbrechen", + notEnoughMoney = "Nicht genügend Geld", + placeOrder = "Bestellen", + purchaseCost = "Einkaufspreis", + salePrice = "Verkaufspreis", + inStock = "auf Lager", + outOfStock = "Ausverkauft", + placeVehiclePrompt = "Drücke %{value}, um das Fahrzeug zu platzieren. Du kannst später noch feinere Einstellungen vornehmen!", + remaining = "Verbleibend", + prePurchaseRepoWarning = "Wenn du deinen Zahlungen nicht nachkommst, wird dein Fahrzeug wieder entzogen.", + repossessionWarning = "Deine letzte Zahlung ist fehlgeschlagen: Wenn du nicht sofort eine Zahlung leistest, wird dein Fahrzeug beschlagnahmt.", + recurringPayment = "Wiederkehrende Zahlungen", + remainingBalance = "Verbleibender Betrag", + remainingPayments = "Erledigte Zahlungen", + paymentTakenEvery = "Die Zahlung wird fällig alle", + hours = "Stunden", + seconds = "Sekunden", + nextPayment = "Nächste Zahlung", + makePayment = "Vorrauszahlung leisten", + vehicleRepossessed = "Fahrzeug beschlagnahmt", + payInFull = "Vollständig bezahlen", + earlyPaymentConfirmation = "Möchtest du wirklich eine Vorrauszahlung in folgender Höhe tätigen", + financedVehicles = "Finanzierte Fahrzeuge", + noFinancedVehicles = "Du hast keine Fahrzeuge mit aktiver Finanzierung", + financeBreakdown = "Einzelheiten zur Finanzierung", + initialPayment = "Anzahlung", + payments = "Raten", + length = "Dauer", + interest = "Zinsen", + totalPayable = "Zu zahlende Summe", + leaveShowroom = "Verlassen", + handling = "Handling", + topSpeed = "vMax", + power = "Leistung", + torque = "Drehmoment", + brake = "Bremsen", + financing = "Finanzierung", + financingAvailable = "Finanzierung verfügbar", + paymentsOf = "Raten a", + clear = "Löschen", + testDrive = "Probefahrt", + allCategories = "Alle Kategorien", + sortByName = "Nach Namen sortieren", + sortByAvailability = "Nach Verfügbarkeit sortieren", + sortByCheapest = "Günstigste zuerst", + sortByMostExpensive = "Teuerste zuerst", + sortByNewest = "Neueste zuerst", + purchaseVehicle = "Fahrzeug kaufen", + purchaseFor = "Kauf durch", + selectSociety = "Wähle ein Unternehmen aus", + financeOverPayments = "Finanzierung durch %{value} Raten", + payToday = "Heute fälliger Betrag", + financeThen = "Danach", + seeFullBreakdown = "Einzelheiten zur Finanzierung", + testDriveExit = "Du kannst dein Fahrzeug jederzeit verlassen, um die Probefahrt zu beenden...", + + -- NOTIFICATIONS + purchaseSuccess = "Herzlichen Glückwunsch zu deinem Kauf!", + depositSuccess = "Der Betrag wurde erfolgreich einbezahlt!", + withdrawSuccess = "Der Betrag wurde erfolgreich ausbezahlt!", + errorNotEnoughMoney = "Du hast nicht genügend Geld!", + errorVehicleOutOfStock = "Dieses Fahrzeug ist leider nicht auf Lager!", + errorCannotAffordVehicle = "Du kannst dir dieses Fahrzeug nicht leisten!", + vehicleFinancePaymentMade = "Vorrauszahlung geleistet für das Fahrzeug mit folgendem Kennzeichen: %{value}", + vehicleFinancePaidOff = "Herzlichen Glückwunsch, Du hast vollständig bezahlt und besitzen nun das Fahrzeug mit dem Kennzeichen: %{value}", + vehicleFinancePaymentFailed = "Fehlgeschlagene Finanzierungszahlung für dein Fahrzeug mit dem Kennzeichen: %{value}", + vehicleFinanceRepossessedSoon = "Du musst eine Zahlung für dein Fahrzeug %{value} leisten oder dein Fahrzeug wird bald wieder eingezogen.", + vehicleFinanceRepossessed = "Wegen Nichtzahlung wurde dein Fahrzeug mit dem Kennzeichen %{value} wieder eingezogen.", + dealershipNotEnoughFunds = "Der Händler hat nicht genug Geld.", + dealershipVehiclesOrdered = "Die Fahrzeuge wurden erfolgreich bestellt!", + dealershipOrderCancelled = "Auftrag erfolgreich storniert", + errorVehicleWithSpawnCodeExists = "Ein Fahrzeug mit diesem Nummernsch existiert bereits!", + errorExitVehicle = "Du musst zuerst aus deinem Fahrzeug aussteigen.", + + -- NEW v1.1 + purchaseRequest = "Anfrage zum Kauf", + sendRequest = "Anfrage senden", + dealer = "Händler", + financed = "Finanziert", + signHere = "Hier unterschreiben", + signFirstError = "Bitte erst unterschreiben", + denyRequest = "Antrag ablehnen", + playerTooManyFinancedVehicles = "Spieler hat zu viele finanzierte Fahrzeuge", + employeePermissionsError = "Sie haben nicht die erforderlichen Mitarbeiterrechte", + managerRole = "Leiter", + supervisorRole = "Datenschutzbeauftragter", + salesRole = "Vertrieb", + ownerRole = "Eigentümer", + employmentRequest = "Antrag auf Beschäftigung", + accept = "Akzeptieren", + jobOfferDescription = "Ihnen wurde eine Stelle im Autohaus \"%{value}\" angeboten. Möchten Sie annehmen?", + pending = "Anhängig", + employeeHiredMsg = "Der Einstellungsantrag des Händlers wurde angenommen!", + employeeRejectedMsg = "Antrag auf Einstellung eines Händlers wurde abgelehn", + sellVehicle = "Fahrzeug verkaufen", + vehicleTerms = "Fahrzeugbedingungen", + financePayments = "Finanzierung Zahlungen", + commission = "Kommission", + role = "Rolle", + firedNotification = "Sie wurden vom Händler \"%{value}\" entlassen", + dealershipTooFarAway = "Sie sind nicht in der Nähe eines Autohauses", + restoreDisplayVehicles = "Ausstellungsraum restaurieren", + customer = "Kunde", + lessThanAMin = "Weniger als eine Minute", + mins = "min(s)", + notInVehicle = "Sie befinden sich nicht in einem Fahrzeug", + notYourVehicleError = "Dieses Fahrzeug gehört Ihnen nicht", + vehicleFinancedError = "Sie können dieses Fahrzeug nicht verkaufen, weil es noch Finanzierungsraten hat", + dealershipDoesntSellVehicle = "Dieses Autohaus kann dieses Fahrzeug nicht kaufen", + dealershipWantsYourVehicle = "Herzlichen Glückwunsch! Dieses Autohaus möchte Ihr Fahrzeug kaufen.", + purchasePrice = "Angebotener Preis: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/en.lua b/resources/[carscripts]/jg-dealerships/locales/en.lua new file mode 100644 index 000000000..5317d6ca6 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/en.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['en'] = { + -- UI + vehicle = "Vehicle", + vehicles = "Vehicles", + dealership = "Dealership", + dealerships = "Dealerships", + vehiclesCount = "vehicle(s)", + dealersCount = "dealer(s)", + accountBalance = "Account Balance", + bank = "Bank Account", + cash = "Cash", + amount = "Amount", + societyFund = "Society Fund", + paymentSource = "Payment Source", + purchase = "Purchase", + personalPurchase = "Personal Purchase", + societyPurchase = "Society Purchase", + purchaseType = "Purchase Type", + deposit = "Deposit", + withdraw = "Withdraw", + all = "All", + yes = "Yes", + no = "No", + add = "Add", + edit = "Edit", + id = "ID", + created = "Created", + type = "Type", + name = "Name", + owner = "Owner", + bankBalance = "Bank Balance", + status = "Status", + back = "Back", + previous = "Previous", + next = "Next", + admin = "Admin", + vehiclesAdmin = "Vehicles Admin", + dealershipsAdmin = "Dealerships Admin", + search = "Search", + noDealershipsFound = "No dealerships found", + noVehicles = "No vehicles found", + page = "Page", + of = "of", + every = "every", + show = "Show", + active = "Active", + activeFinance = "Active Finance", + failed = "Payment Failed", + removed = "Removed", + setOwner = "Set Owner", + manage = "Manage", + deleteData = "Delete Data", + deleteVehicle = "Delete Vehicle", + delete = "Delete", + deleteConfirmation = "Are you sure?", + deleteConfirmationDanger = "Are you sure? This action is irreversable.", + setDealershipOwner = "Set Dealership Owner", + overwriteDealerPrices = "Overwrite dealership prices", + nearbyPlayers = "Nearby players", + noPlayersNearby = "No players nearby", + selectPlayer = "Select player", + required = "Required", + forExample = "For example", + spawnCode = "Spawn Code", + brand = "Brand", + model = "Model", + category = "Category", + price = "Price", + import = "Import", + importing = "Importing", + importBehaviour = "Import Behaviour", + importVehicles = "Import vehicles", + importFrom = "Import from", + dashboard = "Dashboard", + displayVehicle = "Display Vehicle", + displayVehicles = "Display Vehicles", + orders = "Orders", + sales = "Sales", + vehiclesOnDisplay = "Vehicles on display", + employees = "Employees", + settings = "Settings", + switchVehicle = "Switch Vehicle", + remove = "Remove", + noDisplayVehicles = "No display vehicles", + selectVehicle = "Select vehicle", + colour = "Colour", + placeVehicle = "Place Vehicle", + orderVehicle = "Order vehicle", + cancelOrder = "Cancel Order", + delivery = "Delivery", + delivered = "Delivered", + noOrders = "No orders found", + quantity = "Quantity", + totalCost = "Total cost", + totalSales = "Total sales", + noSales = "No sales found", + paid = "Paid", + owed = "Owed", + dealershipName = "Dealership Name", + save = "Save Changes", + cancel = "Cancel", + notEnoughMoney = "Not enough money", + placeOrder = "Place Order", + purchaseCost = "Purchase Cost", + salePrice = "Sale Price", + inStock = "In stock", + outOfStock = "Out of stock", + placeVehiclePrompt = "Press %{value} to place vehicle. You can make finer adjustments afterwards!", + remaining = "Remaining", + prePurchaseRepoWarning = "If you can't keep up with your finance payments, your vehicle will be repossessed.", + repossessionWarning = "Your last payment failed - your vehicle will be repossessed unless you make a payment now.", + recurringPayment = "Recurring payment", + remainingBalance = "Remaining balance", + remainingPayments = "Remaining payments", + paymentTakenEvery = "Payment taken every", + hours = "hours", + seconds = "seconds", + nextPayment = "Next payment", + makePayment = "Make payment", + vehicleRepossessed = "Vehicle will be repossessed", + payInFull = "Pay in full", + earlyPaymentConfirmation = "Are you sure you want to make an early payment of", + financedVehicles = "Financed Vehicles", + noFinancedVehicles = "You have no vehicles with active finance", + financeBreakdown = "Finance Breakdown", + initialPayment = "Initial payment", + payments = "Payments", + length = "Length", + interest = "Interest", + totalPayable = "Total payable", + leaveShowroom = "Leave Showroom", + handling = "Handling", + topSpeed = "Top Speed", + power = "Power", + torque = "Torque", + brake = "Brake", + financing = "Financing", + financingAvailable = "Financing available", + paymentsOf = "payments of", + clear = "Clear", + testDrive = "Test Drive", + allCategories = "All Categories", + sortByName = "Sort by: Name", + sortByAvailability = "Sort by: Availability", + sortByCheapest = "Sort by: Cheapest", + sortByMostExpensive = "Sort by: Most Expensive", + sortByNewest = "Sort by: Newest", + purchaseVehicle = "Purchase Vehicle", + purchaseFor = "Purchase for", + selectSociety = "Select a society", + financeOverPayments = "Finance over %{value} payments", + payToday = "Pay today", + financeThen = "Then", + seeFullBreakdown = "See full breakdown", + testDriveExit = "You can exit your vehicle at any point to end the test drive.", + + -- NOTIFICATIONS + purchaseSuccess = "Congratulations on your purchase!", + depositSuccess = "Deposit successful", + withdrawSuccess = "Withdrawl successful", + errorNotEnoughMoney = "You don't have enough money", + errorVehicleOutOfStock = "This vehicle is out of stock", + errorCannotAffordVehicle = "You cannot afford this vehicle", + vehicleFinancePaymentMade = "Finance payment made for your vehicle %{value}", + vehicleFinancePaidOff = "Congratulations, you've paid off and now own your vehicle %{value}", + vehicleFinancePaymentFailed = "Finance payment failed for your vehicle %{value}", + vehicleFinanceRepossessedSoon = "You need to make a payment for your vehicle %{value} or your vehicle will be repossessed soon", + vehicleFinanceRepossessed = "Due to a failure to pay, your vehicle has been repossessed with the plate %{value}", + dealershipNotEnoughFunds = "Dealership doesn't have enough funds", + dealershipVehiclesOrdered = "Vehicle(s) have been successfully ordered", + dealershipOrderCancelled = "Order successfully cancelled", + errorVehicleWithSpawnCodeExists = "A vehicle with this spawn code already exists", + errorExitVehicle = "You need to exit your vehicle first", + + -- NEW v1.1 + purchaseRequest = "Purchase Request", + sendRequest = "Send Request", + dealer = "Dealer", + financed = "Financed", + signHere = "Sign here", + signFirstError = "Please sign first", + denyRequest = "Deny Request", + playerTooManyFinancedVehicles = "Player has too many financed vehicles", + employeePermissionsError = "You don't have the necessary employee permissions", + managerRole = "Manager", + supervisorRole = "Supervisor", + salesRole = "Sales", + ownerRole = "Owner", + employmentRequest = "Employment Request", + accept = "Accept", + jobOfferDescription = "You have been offered a job at the \"%{value}\" dealership. Would you like to accept?", + pending = "Pending", + employeeHiredMsg = "Dealership hire request was accepted!", + employeeRejectedMsg = "Dealership hire request was rejected", + sellVehicle = "Sell Vehicle", + vehicleTerms = "Vehicle terms", + financePayments = "Finance Payments", + commission = "Commission", + role = "Role", + firedNotification = "You have been fired from the \"%{value}\" dealership", + dealershipTooFarAway = "You aren't near any dealerships", + restoreDisplayVehicles = "Restore Showroom", + customer = "Customer", + lessThanAMin = "Less than a minute", + mins = "min(s)", + notInVehicle = "You are not sat in a vehicle", + notYourVehicleError = "This vehicle does not belong to you", + vehicleFinancedError = "You cannot sell this vehicle because it has finance payments remaining", + dealershipDoesntSellVehicle = "This dealership can't purchase this vehicle", + dealershipWantsYourVehicle = "Congratulations! This dealership would like to purchase your vehicle.", + purchasePrice = "Offered price: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/es.lua b/resources/[carscripts]/jg-dealerships/locales/es.lua new file mode 100644 index 000000000..b1a985669 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/es.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['es'] = { + -- UI + vehicle = "Vehículo", + vehicles = "Vehículos", + dealership = "Concesionario", + dealerships = "Concesionarios", + vehiclesCount = "Vehículo(s)", + dealersCount = "Concesionario(s)", + accountBalance = "Balance de Cuenta", + bank = "Cuenta de Banco", + cash = "Dinero", + amount = "Cantidad", --Before= Monto + societyFund = "Fondos de Sociedad", + paymentSource = "Tipo de Pago", + purchase = "Comprar", + personalPurchase = "Compra Personal", + societyPurchase = "Compra Sociedad", + purchaseType = "Tipo de Compra", + deposit = "Depositar", + withdraw = "Retirar", + all = "Todos", + yes = "Si", + no = "No", + add = "Añadir", + edit = "Editar", + id = "ID", + created = "Creado", + type = "Tipo", + name = "Nombre", + owner = "Dueño", + bankBalance = "Saldo Bancario", --Before = Balance Banco + status = "Estado", --Before = Esatus + back = "Regresar", + previous = "Atrás", + next = "Siguiente", + admin = "Administrar", --Before = Administar // But if that means Administrator then should be "Administrador" + vehiclesAdmin = "Administrar Vehículos", + dealershipsAdmin = "Administrar Concesionarios", + search = "Buscar", + noDealershipsFound = "No se encontraron concesionarios", + noVehicles = "No se encontraron vehículos", + page = "Página", + of = "de", + every = "cada", + show = "Mostrar", --Before = Mostar + active = "Activo", + activeFinance = "Financiaciones Activas", --Before = Finanzas Activas + failed = "Pago Fallido", + removed = "Removido", + setOwner = "Establecer Propietario", --Before = Poner Dueño + manage = "Gestionar", + deleteData = "Borrar Datos", + deleteVehicle = "Borrar Vehículo", + delete = "Borrar", + deleteConfirmation = "¿Estás seguro?", + deleteConfirmationDanger = "¿Estás seguro? Esta acción es irreversible.", + setDealershipOwner = "Establecer Propietario", + overwriteDealerPrices = "Sobrescribir Precios", + nearbyPlayers = "Jugadores Cercanos", + noPlayersNearby = "NO hay jugadores cercanos", + selectPlayer = "Seleccionar Jugador", + required = "Requerido", + forExample = "Por Ejemplo", + spawnCode = "Código", + brand = "Marca", + model = "Modelo", + category = "Categoría", + price = "Precio", + import = "Importar", + importing = "Importando", + importBehaviour = "Comportamiento de Importación", + importVehicles = "Importar Vehículos", + importFrom = "Importar de", + dashboard = "Panel", + displayVehicle = "Poner Vehículo en Exposición", --Before = Poner vehiculo en display + displayVehicles = "Vehículos en Exposición", --Before = Vehiculos en display + orders = "Pedidos", --Before = Ordenes + sales = "Ventas", + vehiclesOnDisplay = "Vehículos en Exposición", --Before = Vehiculos en display + employees = "Empleados", + settings = "Ajustes", + switchVehicle = "Cambiar Vehículo", + remove = "Remover", + noDisplayVehicles = "No Mostrar Vehículos", --Before = No display vehicles + selectVehicle = "Seleccionar Vehículo", --Before = Select vehicle + colour = "Color", + placeVehicle = "Poner Vehículo", + orderVehicle = "Ordenar Vehículos", + cancelOrder = "Cancelar Pedido", --Before = Cancelar Orden + delivery = "Entregando", + delivered = "Entregados", + noOrders = "Pedidos no Encontrados", --Before = Ordenes no encontradas + quantity = "Cantidad", + totalCost = "Precio Total", --Before = Costo Total + totalSales = "Ventas totales", + noSales = "No hay ventas encontradas", --Before = No ventas encontradas + paid = "Pagado", + owed = "Comprado", + dealershipName = "Nombre Concesionario", + save = "Guardar Cambios", + cancel = "Cancelar", + notEnoughMoney = "Dinero Insuficiente", + placeOrder = "Realizar Pedido", + purchaseCost = "Precio de Compra", --Before = Costo de la compra + salePrice = "Precio de Venta", + inStock = "En Stock", + outOfStock = "Agotado", + placeVehiclePrompt = "Presiona %{value} para colocar el vehículo. ¡Puedes hacer ajustes después!", + remaining = "Restante", + prePurchaseRepoWarning = "Si no puedes mantenerte al día con los pagos de financiaminento, tu vehículo será embargado.", + repossessionWarning = "Su último pago falló: tu vehículo será embargado a menos que realice un pago ahora.", + recurringPayment = "Pago Recurrente", + remainingBalance = "Balance Restante", + remainingPayments = "Pagos Restantes", + paymentTakenEvery = "Pago Tomado Cada", + hours = "horas", + seconds = "segundos", + nextPayment = "Siguiente Pago", + makePayment = "Hacer Pago", + vehicleRepossessed = "El vehículo será embargado", + payInFull = "Pagar Completo", + earlyPaymentConfirmation = "¿Estás segur@ de que quieres hacer un pago anticipado de", + financedVehicles = "Vehículos Financiados", + noFinancedVehicles = "No tienes vehículos con financiación activa", + financeBreakdown = "Detalles de Financiación", --Before= Detalles Financiamineto + initialPayment = "Pago Inicial", + payments = "Pagos", + length = "Tiempo", + interest = "Interés", + totalPayable = "Total a Pagar", + leaveShowroom = "Salir de la Sala de Exposición", --Before= Salir del Showroom + handling = "Manejo", + topSpeed = "Velocidad Máxima", + power = "Poder", + torque = "Torque", + brake = "Freno", + financing = "Financiación", --Before= Financiamiento + financingAvailable = "Financiación Disponible", --Before = Financiamiento disponible + paymentsOf = "pagos de", + clear = "Limpiar", + testDrive = "Prueba de Manejo", + allCategories = "Todas las Categorías", + sortByName = "Ordenar por: Nombre", + sortByAvailability = "Ordenar por: Disponibilidad", + sortByCheapest = "Ordenar por: Más Barato", + sortByMostExpensive = "Ordenar por: Más Caro", + sortByNewest = "Ordenar por: Más reciente", + purchaseVehicle = "Comprar Vehículo", + purchaseFor = "Compra Por", + selectSociety = "Selecciona una Sociedad", + financeOverPayments = "Financiar por %{value} pagos", + payToday = "Paga Hoy", + financeThen = "Después", + seeFullBreakdown = "Ver Desglose Completo", + testDriveExit = "Puedes salir del vehículo en cualquier momento para finalizar la prueba de manejo.", + + -- NOTIFICATIONS + purchaseSuccess = "¡Felicitaciones Por Su Compra!", + depositSuccess = "Depósito Exitoso", + withdrawSuccess = "Retiro Exitoso", + errorNotEnoughMoney = "No tienes suficiente dinero", + errorVehicleOutOfStock = "Este vehículo está agotado", + errorCannotAffordVehicle = "No puedes comprar este vehículo", + vehicleFinancePaymentMade = "Financia el pago realizado por tu vehículo %{value}", + vehicleFinancePaidOff = "Felicitaciones, ha pagado y ahora es dueño de tu vehículo. %{value}", + vehicleFinancePaymentFailed = "Pago de financiación fallido para tu vehículo %{value}", + vehicleFinanceRepossessedSoon = "Necesitas hacer un pago por tu vehículo %{value} o tu vehículo será embargado pronto", + vehicleFinanceRepossessed = "Por falta de pago, tu vehículo ha sido embargado con la placa %{value}", + dealershipNotEnoughFunds = "El concesionario no tiene fondos suficientes", + dealershipVehiclesOrdered = "Vehículos pedidos con éxito", + dealershipOrderCancelled = "Pedido Cancelado", + errorVehicleWithSpawnCodeExists = "Ya existe un vehículo con este código de generación", + errorExitVehicle = "Primero debes salir del vehículo.", + + -- NEW v1.1 + purchaseRequest = "Solicitud de Compra", + sendRequest = "Enviar Solicitud", + dealer = "Distribuidor", + financed = "Financiado", + signHere = "Firme aquí", + signFirstError = "Firma Primero", + denyRequest = "Denegar Solicitud", + playerTooManyFinancedVehicles = "El jugador tiene demasiados vehículos financiados actualmente", + employeePermissionsError = "No tiene los permisos necesarios", + managerRole = "Director", + supervisorRole = "Supervisor", + salesRole = "Supervisora", + ownerRole = "Propietario", + employmentRequest = "Solicitud de Empleo", + accept = "Aceptar", + jobOfferDescription = "Le han ofrecido un puesto de trabajo en el concesionario \"%{value}\". ¿Te gustaría aceptar?", + pending = "Pendiente", + employeeHiredMsg = "La solicitud de alquiler del concesionario ha sido aceptada!", + employeeRejectedMsg = "La solicitud de alquiler del concesionario ha sido rechazada", + sellVehicle = "Vender Vehículo", + vehicleTerms = "Condiciones del Vehículo", + financePayments = "Pagos Financieros", + commission = "Comisión", + role = "Rol", + firedNotification = "Has sido despedido de \"%{value}\".", + dealershipTooFarAway = "No estás cerca de ningún concesionario", + restoreDisplayVehicles = "Restaurar Sala de Exposición", + customer = "Cliente", + lessThanAMin = "Menos de un Minuto", + mins = "minuto(s)", + notInVehicle = "No estás sentado en un vehículo", + notYourVehicleError = "Este vehículo no te pertenece", + vehicleFinancedError = "No puedes vender este vehículo porque tiene pagos de financiación pendientes", + dealershipDoesntSellVehicle = "Este concesionario no puede comprar este vehículo", + dealershipWantsYourVehicle = "Enhorabuena. Este concesionario desea comprar tu vehículo.", + purchasePrice = "Precio Ofertado: ", + + spawnCodeInvalid = "Código de generación no válido", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/fr.lua b/resources/[carscripts]/jg-dealerships/locales/fr.lua new file mode 100644 index 000000000..c1a111f96 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/fr.lua @@ -0,0 +1,221 @@ + +Locales = Locales or {} + +Locales['fr'] = { + -- UI + vehicle = "Véhicule", + vehicles = "Véhicules", + dealership = "Concessionnaire", + dealerships = "Concessionnaires", + vehiclesCount = "véhicule(s)", + dealersCount = "Concessionnaire(s)", + accountBalance = "Solde du compte", + bank = "Compte bancaire", + cash = "Argent liquide", + amount = "Montant", + societyFund = "Fonds de la société", + paymentSource = "Source du paiement", + purchase = "Achat", + personalPurchase = "Achat personnel", + societyPurchase = "Achat de la société", + purchaseType = "Type d'achat", + deposit = "Dépôt", + withdraw = "Retirer", + all = "Tout", + yes = "Oui", + no = "Non", + add = "Ajouter", + edit = "Éditer", + id = "ID", + created = "Crée", + type = "Type", + name = "Nom", + owner = "Propriétaire", + bankBalance = "Solde bancaire", + status = "Statut", + back = "Retour", + previous = "Précédent", + next = "Suivant", + admin = "Administrateur", + vehiclesAdmin = "Administration des véhicules", + dealershipsAdmin = "Administration des concessionnaires", + search = "Recherche", + noDealershipsFound = "Aucun concessionnaire trouvé", + noVehicles = "Aucun véhicule trouvé", + page = "Page", + of = "de", + every = "tous", + show = "Afficher", + active = "Actif", + activeFinance = "Financement actif", + failed = "Échec du paiement", + removed = "Supprimé", + setOwner = "Choisir Propriétaire", + manage = "Gérer", + deleteData = "Supprimer les données", + deleteVehicle = "Supprimer un véhicule", + delete = "Supprimer", + deleteConfirmation = "Êtes-vous sûr?", + deleteConfirmationDanger = "En êtes-vous sûr? Cette action est irréversible.", + setDealershipOwner = "Choisir Propriétaire du Concessionnaire", + overwriteDealerPrices = "Remplacer les prix des concessionnaires", + nearbyPlayers = "Joueurs à proximité", + noPlayersNearby = "Pas de joueurs à proximité", + selectPlayer = "Sélectionner un joueur", + required = "Exigée", + forExample = "Par exemple", + spawnCode = "Spawn Code", + brand = "Marque", + model = "Modèle", + category = "Catégorie", + price = "Prix", + import = "Importation", + importing = "Importation", + importBehaviour = "Comportement d'importation", + importVehicles = "Véhicules importés", + importFrom = "Importer de", + dashboard = "Tableau de bord", + displayVehicle = "Véhicule d'affichage", + displayVehicles = "Véhicules d'exposition", + orders = "Commandes", + sales = "Vente", + vehiclesOnDisplay = "Véhicules exposés", + employees = "Salariés", + settings = "Paramètres", + switchVehicle = "Changement de véhicule", + remove = "Retirer", + noDisplayVehicles = "Pas de véhicules d'exposition", + selectVehicle = "Sélectionner un véhicule", + colour = "Couleur", + placeVehicle = "Placer le véhicule", + orderVehicle = "Commander un véhicule", + cancelOrder = "Annuler la commande", + delivery = "Livraison", + delivered = "Livré", + noOrders = "Aucune commande trouvée", + quantity = "Quantité", + totalCost = "Coût total", + totalSales = "Ventes totales", + noSales = "Aucune vente trouvée", + paid = "Payé", + owed = "dû", + dealershipName = "Nom du concessionnaire", + save = "Enregistrer les modifications", + cancel = "Annuler", + notEnoughMoney = "Pas assez d'argent", + placeOrder = "Passer une commande", + purchaseCost = "Prix D'achat", + salePrice = "Prix de vente", + inStock = "En stock", + outOfStock = "Rupture de stock", + placeVehiclePrompt = "Appuyer sur %{value} pour placer le véhicule. Vous pourrez faire des réglages plus fins par la suite!", + remaining = "Restant", + prePurchaseRepoWarning = "Si vous ne pouvez pas suivre vos paiements financiers, votre véhicule sera repris.", + repossessionWarning = "Votre dernier paiement a échoué : votre véhicule sera repris à moins que vous n'effectuiez un paiement maintenant!", + recurringPayment = "Paiement récurrent", + remainingBalance = "Solde restant", + remainingPayments = "Paiements restants", + paymentTakenEvery = "Paiement effectué chaque", + hours = "heures", + seconds = "secondes", + nextPayment = "Prochain paiement", + makePayment = "Effectuer le paiement", + vehicleRepossessed = "Le véhicule sera repris", + payInFull = "Payer intégralement", + earlyPaymentConfirmation = "Etes-vous sûr de vouloir effectuer un paiement anticipé de", + financedVehicles = "Véhicules financés", + noFinancedVehicles = "Vous n'avez aucun véhicule avec un financement actif", + financeBreakdown = "Répartition des finances", + initialPayment = "Paiement initialt", + payments = "Paiements", + length = "Longueur", + interest = "Intérêt", + totalPayable = "Total à payer", + leaveShowroom = "Quitter la salle d'exposition", + handling = "Conduite", + topSpeed = "Vitesse maximale", + power = "Puissance", + torque = "Torque", + brake = "Freinage", + financing = "Financement", + financingAvailable = "Financement disponible", + paymentsOf = "paiements de", + clear = "Nettoyer", + testDrive = "Essai routier", + allCategories = "Toutes les catégories", + sortByName = "Trier par : Nom", + sortByAvailability = "Trier par : Disponibilité", + sortByCheapest = "Trier par : le moins cher", + sortByMostExpensive = "Trier par : Les plus chers", + sortByNewest = "Trier par : Les plus récents", + purchaseVehicle = "Acheter un véhicule", + purchaseFor = "Acheter pour", + selectSociety = "Sélectionnez une société", + financeOverPayments = "Financement sur %{value} paiements", + payToday = "Payez aujourd'hui", + financeThen = "Alors", + seeFullBreakdown = "Voir la répartition complète", + testDriveExit = "Vous pouvez sortir de votre véhicule à tout moment pour terminer l’essai routier.", + + -- NOTIFICATIONS + purchaseSuccess = "Félicitations pour votre achat!", + depositSuccess = "Dépôt réussi", + withdrawSuccess = "Retrait réussi", + errorNotEnoughMoney = "Vous n'avez pas assez d'argent", + errorVehicleOutOfStock = "Ce véhicule est en rupture de stock", + errorCannotAffordVehicle = "Vous ne pouvez pas vous permettre ce véhicule", + vehicleFinancePaymentMade = "Paiement financier effectué pour votre véhicule %{value}", + vehicleFinancePaidOff = "Félicitations, vous avez payé et êtes désormais propriétaire de votre véhicule %{value}", + vehicleFinancePaymentFailed = "Échec du paiement du financement pour votre véhicule %{value}", + vehicleFinanceRepossessedSoon = "Vous devez effectuer un paiement pour votre véhicule %{value}, sinon votre véhicule sera bientôt repris", + vehicleFinanceRepossessed = "Suite à un défaut de paiement, votre véhicule a été repris avec la plaque %{value}", + dealershipNotEnoughFunds = "Le concessionnaire n'a pas assez de fonds", + dealershipVehiclesOrdered = "Le(s) véhicule(s) ont été commandés avec succès", + dealershipOrderCancelled = "Commande annulée avec succès", + errorVehicleWithSpawnCodeExists = "Un véhicule avec ce spawnCode existe déjà", + errorExitVehicle = "Vous devez d'abord sortir de votre véhicule", + + -- NEW v1.1 + purchaseRequest = "Demande d'achat", + sendRequest = "Envoyer la demande", + dealer = "Vendeur", + financed = "Financé", + signHere = "Signez ici", + signFirstError = "Veuillez d'abord signer", + denyRequest = "Refuser la demande", + playerTooManyFinancedVehicles = "Le joueur a trop de véhicules financés", + employeePermissionsError = "Vous ne disposez pas des autorisations d'employé nécessaires", + managerRole = "Directeur", + supervisorRole = "Superviseur", + salesRole = "Ventes", + ownerRole = "Propriétaire", + employmentRequest = "Offre d'emploi", + accept = "Accepter", + jobOfferDescription = "On vous a proposé un emploi chez le concessionnaire \"%{value}\". Souhaitez-vous accepter ?", + pending = "En attente", + employeeHiredMsg = "L'offre d'emploi du concessionnaire a été acceptée !", + employeeRejectedMsg = "La demande d'embauche d'un concessionnaire a été rejetée", + sellVehicle = "Vendre un véhicule", + vehicleTerms = "Conditions relatives aux véhicules", + financePayments = "Paiements financiers", + commission = "Commission", + role = "Rôle", + firedNotification = "Vous avez été licencié de la concession \"%{value}\"", + dealershipTooFarAway = "Vous n'êtes à proximité d'aucun concessionnaire", + restoreDisplayVehicles = "Restaurer la salle d'exposition", + customer = "Client", + lessThanAMin = "Moins d'une minute", + mins = "minute(s)", + notInVehicle = "Vous n'êtes pas assis dans un véhicule", + notYourVehicleError = "Ce véhicule ne vous appartient pas", + vehicleFinancedError = "Vous ne pouvez pas vendre ce véhicule car il lui reste des paiements financiers.", + dealershipDoesntSellVehicle = "Ce concessionnaire ne peut pas acheter ce véhicule", + dealershipWantsYourVehicle = "Félicitations! Ce concessionnaire souhaite acheter votre véhicule.", + purchasePrice = "Prix ​​proposé :", + + spawnCodeInvalid = "SpawnCode invalide", + salesRep = "Représentant des ventes", + directSaleAccepted = "Demande de vente directe acceptée ! Votre commission a été payée.", + directSaleRejected = "Demande de vente directe rejetée" +} +-- Translated by @Diamond_h4 diff --git a/resources/[carscripts]/jg-dealerships/locales/hu.lua b/resources/[carscripts]/jg-dealerships/locales/hu.lua new file mode 100644 index 000000000..61d790239 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/hu.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['hu'] = { + -- UI + vehicle = "Jármü", + vehicles = "Jármüvek", + dealership = "Kereskedés", + dealerships = "Kereskedések", + vehiclesCount = "jármü(vek)", + dealersCount = "kereskedés(ek)", + accountBalance = "Számla egyenleg", + bank = "Bank egyenleg", + cash = "Készpénz", + amount = "Összeg", + societyFund = "Céges kassza", + paymentSource = "Fizetésimód", + purchase = "Vásárlás", + personalPurchase = "Vásárlás", + societyPurchase = "Céges vásárlás", + purchaseType = "Vásárlási mód", + deposit = "Befizetés", + withdraw = "Kifizetés", + all = "Mind", + yes = "Igen", + no = "Nem", + add = "Hozzáadás", + edit = "Módositás", + id = "ID", + created = "Létrehozva", + type = "Tipus", + name = "Név", + owner = "Tulajdonos", + bankBalance = "Banki egyenleg", + status = "Státusz", + back = "Vissza", + previous = "Elözö", + next = "Következö", + admin = "Admin", + vehiclesAdmin = "Jármü adminisztráció", + dealershipsAdmin = "Kereskedés adminisztráció", + search = "Keresés", + noDealershipsFound = "Kereskedés nem található", + noVehicles = "Jármü nem található", + page = "Oldal", + of = "of", + every = "minden", + show = "Show", + active = "Aktiv", + activeFinance = "Akti részletfizetés", + failed = "Sikertelen fizetés", + removed = "Eltávolitva", + setOwner = "Tulaj beállitása", + manage = "Management", + deleteData = "Adat törlése", + deleteVehicle = "Jármü törlése", + delete = "Törlés", + deleteConfirmation = "Biztos vagy benne?", + deleteConfirmationDanger = "Biztos vagy benne? Ez a müvelet nem visszavonható.", + setDealershipOwner = "Kereskedés tulajdonos beállitása", + overwriteDealerPrices = "Kereskedési árak megváltoztatása", + nearbyPlayers = "Játékosok a közeledben", + noPlayersNearby = "Nincs játékos a közeledben", + selectPlayer = "Játékos kiválasztása", + required = "Szükséges", + forExample = "Például", + spawnCode = "Lehivókód", + brand = "Márka", + model = "Modell", + category = "Kategória", + price = "Ár", + import = "Import", + importing = "Importálás", + importBehaviour = "Import fajtája", + importVehicles = "Jármü import", + importFrom = "Importálva innen:", + dashboard = "Kezelöfelület", + displayVehicle = "Jármü bemutatása", + displayVehicles = "Jármüvek bemutatása", + orders = "Rendelések", + sales = "Eladások", + vehiclesOnDisplay = "Bemutatott jármüvek", + employees = "Alkalmazottak", + settings = "Beállitások", + switchVehicle = "Jármü váltás", + remove = "Elvesz", + noDisplayVehicles = "Nincsenek bemutató jármüvek", + selectVehicle = "Jármü választás", + colour = "Szin", + placeVehicle = "Jármü elhelyezése", + orderVehicle = "Jármü rendelése", + cancelOrder = "Rendelés visszavonása", + delivery = "Szállitás", + delivered = "Kiszállitva", + noOrders = "Nincs rendelés", + quantity = "Mennyiség", + totalCost = "Teljes költség", + totalSales = "Összes eladás", + noSales = "Nincsenek eladások", + paid = "Fizetve", + owed = "Tartozott", + dealershipName = "Kereskedés neve", + save = "Változtatások mentése", + cancel = "Mégse", + notEnoughMoney = "Nincs elég pénzed", + placeOrder = "Rendelés leadása", + purchaseCost = "Költség", + salePrice = "Eladási ár", + inStock = "Készleten", + outOfStock = "Nincs készleten", + placeVehiclePrompt = "Nyomj %{value} gombot a jármü elhelyezéshez. Késöbb tudsz módosítani!", + remaining = "Maradt", + prePurchaseRepoWarning = "Ha nem törleszted a részletfizetést a jármü autómatikusan visszavételre kerül.", + repossessionWarning = "Nem tudtad fedezni az utolsó részletet, fizess most vagy a jármü visszavételre kerül.", + recurringPayment = "Részletfizetés", + remainingBalance = "Hátralévö összeg", + remainingPayments = "Hátralévö részlet", + paymentTakenEvery = "A részlet minden", + hours = "óra", + seconds = "másodperc", + nextPayment = "Következö részlet", + makePayment = "Részlet kifizetése", + vehicleRepossessed = "A jármü visszavételre kerül", + payInFull = "Kifizetés egyben", + earlyPaymentConfirmation = "Biztosan elöbb kifizeted a részletét", + financedVehicles = "Lizingelt jármüvek", + noFinancedVehicles = "Nincs jármüved aktiv részletfizetéssel", + financeBreakdown = "Lizing megszakitása", + initialPayment = "Elsö részlet", + payments = "Kifizetések", + length = "Futamidö", + interest = "Érdeklödés", + totalPayable = "Teljes összeg", + leaveShowroom = "Bemutató elhagyása", + handling = "Kezelhetöség", + topSpeed = "Végsebesség", + power = "Löerö", + torque = "Nyomaték", + brake = "Fékerö", + financing = "Részletfizetés", + financingAvailable = "Részletfizetés elérhetö", + paymentsOf = "költsége", + clear = "Töröl", + testDrive = "Teszt vezetés", + allCategories = "Összes kategória", + sortByName = "Rendezés: Név", + sortByAvailability = "Rendezés: Elérhetö", + sortByCheapest = "Rendezés: Legolcsóbb", + sortByMostExpensive = "Rendezés: Legdrágább", + sortByNewest = "Rendezés: Legújabb", + purchaseVehicle = "Jármü megvásárlása", + purchaseFor = "Vásárlás", + selectSociety = "Válassz ki egy céget", + financeOverPayments = "Vásárlás %{value} részletben", + payToday = "Most fizetek", + financeThen = "Késöbb", + seeFullBreakdown = "Teljes lebontás megtekintése", + testDriveExit = "Bármikor kiszállhatsz tesztvezetés közben.", + + -- NOTIFICATIONS + purchaseSuccess = "Gratulálunk a vásárlásodhoz!", + depositSuccess = "Sikeres befizetés", + withdrawSuccess = "Sikeres kifizetés", + errorNotEnoughMoney = "Nincs elég pénzed", + errorVehicleOutOfStock = "Nincs készleten a jármü", + errorCannotAffordVehicle = "Nincs elég pénzed erre a jármüre", + vehicleFinancePaymentMade = "Részletfizetés választva a jármüre %{value}", + vehicleFinancePaidOff = "Gratulálunk! A %{value} minden részlete kilett fizetve!", + vehicleFinancePaymentFailed = "Sikertelen részlet beszedés %{value}", + vehicleFinanceRepossessedSoon = "Fizesd a %{value} részletét vagy vissza lesz véve a tulajdonodból!", + vehicleFinanceRepossessed = "Mivel nem fizetted a részletit igy vissza lett véve a %{value} rendszámú jármüved", + dealershipNotEnoughFunds = "Nincs elég pénze a kereskedésnek", + dealershipVehiclesOrdered = "Sikeresen megrendelted a jármüvet(jármüveket)", + dealershipOrderCancelled = "Sikeres rendelés visszavonás", + errorVehicleWithSpawnCodeExists = "Már van egy autó kinálatban ezzel a lehívó kóddal", + errorExitVehicle = "Szállj ki a jármüvedböl elöször", + + -- NEW v1.1 + purchaseRequest = "Vásárlási kérelem", + sendRequest = "Kérelem küldése", + dealer = "Kereskedő", + financed = "Finanszírozott", + signHere = "Itt írja alá", + signFirstError = "Kérjük, először írja alá", + denyRequest = "Kérelem elutasítása", + playerTooManyFinancedVehicles = "A játékosnak túl sok finanszírozott járműve van", + employeePermissionsError = "Nem rendelkezik a szükséges munkavállalói jogosultságokkal", + managerRole = "Menedzser", + supervisorRole = "Felügyelő", + salesRole = "Értékesítés", + ownerRole = "Tulajdonos", + employmentRequest = "Foglalkoztatási kérelem", + accept = "Elfogadom", + jobOfferDescription = "Önnek állást ajánlottak a \"%{érték}\" márkakereskedésben. Szeretné elfogadni?", + pending = "Függőben", + employeeHiredMsg = "A márkakereskedő bérleti kérelmét elfogadták!", + employeeRejectedMsg = "A márkakereskedő bérleti kérelmét elutasították", + sellVehicle = "Eladni jármű", + vehicleTerms = "Járművekre vonatkozó feltételek", + financePayments = "Pénzügyi kifizetések", + commission = "Bizottság", + role = "Szerepvállalás", + firedNotification = "Önt kirúgták a \"%{value}\" kereskedésből.", + dealershipTooFarAway = "Nem vagy közel egyetlen kereskedőhöz sem", + restoreDisplayVehicles = "Restore bemutatóterem", + customer = "Ügyfél", + lessThanAMin = "Kevesebb, mint egy perc", + mins = "perc(ek)", + notInVehicle = "Ön nem ül egy járműben", + notYourVehicleError = "Ez a jármű nem az Ön tulajdona", + vehicleFinancedError = "Ezt a járművet nem tudja eladni, mert még finanszírozási törlesztőrészletei vannak.", + dealershipDoesntSellVehicle = "Ez a kereskedés nem tudja megvásárolni ezt a járművet", + dealershipWantsYourVehicle = "Gratulálunk! Ez a kereskedés szeretné megvásárolni az Ön járművét.", + purchasePrice = "Kínált ár: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/it.lua b/resources/[carscripts]/jg-dealerships/locales/it.lua new file mode 100644 index 000000000..303203e36 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/it.lua @@ -0,0 +1,220 @@ +Locales = Locales or {} + +Locales['it'] = { + -- UI + vehicle = "Veicolo", + vehicles = "Veicoli", + dealership = "Concessionario", + dealerships = "Concessionari", + vehiclesCount = "veicolo/i", + dealersCount = "concessionario/i", + accountBalance = "Bilancio Conto", + bank = "Conto Bancario", + cash = "Contanti", + amount = "Quantità", + societyFund = "Fondo Società", + paymentSource = "Fonte Pagamento", + purchase = "Compra", + personalPurchase = "Compra Personale", + societyPurchase = "Compra Società", + purchaseType = "Tipo Acquisto", + deposit = "Deposita", + withdraw = "Preleva", + all = "Tutti", + yes = "Si", + no = "No", + add = "Aggiungi", + edit = "Modifica", + id = "ID", + created = "Creato", + type = "Tipo", + name = "Nome", + owner = "Proprietario", + bankBalance = "Bilancio Banca", + status = "Status", + back = "Indietro", + previous = "Precedente", + next = "Prossimo", + admin = "Admin", + vehiclesAdmin = "Veicoli Admin", + dealershipsAdmin = "Concessionari Admin", + search = "Cerca", + noDealershipsFound = "Nessuna concessionaria trovata", + noVehicles = "Nessun veicolo trovato", + page = "Pagina", + of = "di", + every = "ogni", + show = "Mostra", + active = "Attiva", + activeFinance = "Attiva Rateizzazione", + failed = "Pagamento Fallito", + removed = "Rimossa", + setOwner = "Imposta Proprietario", + manage = "Gestisci", + deleteData = "Elimina Dati", + deleteVehicle = "Elimina Veicolo", + delete = "Elimina", + deleteConfirmation = "Sei sicuro?", + deleteConfirmationDanger = "Sei sicuro? Questa azione è irreversibile.", + setDealershipOwner = "Imposta Proprietario Concessionario", + overwriteDealerPrices = "Sovrascrivi prezzi concessionario", + nearbyPlayers = "Player vicini", + noPlayersNearby = "Nessun player vicino", + selectPlayer = "Seleziona player", + required = "Richiesto", + forExample = "Per esempio", + spawnCode = "Codice Spawn", + brand = "Marchio", + model = "Modello", + category = "Categoria", + price = "Prezzo", + import = "Importa", + importing = "Importando", + importBehaviour = "Tipo Importazione", + importVehicles = "Importa veicoli", + importFrom = "Importa da", + dashboard = "Dashboard", + displayVehicle = "Mostra Veicolo", + displayVehicles = "Mostra Veicoli", + orders = "Ordini", + sales = "Vendite", + vehiclesOnDisplay = "Veicoli in mostra", + employees = "Impiegati", + settings = "Impostazioni", + switchVehicle = "Cambia Veicolo", + remove = "Rimuovi", + noDisplayVehicles = "Nessun veicolo in mostra", + selectVehicle = "Seleziona veicolo", + colour = "Colore", + placeVehicle = "Posiziona Veicolo", + orderVehicle = "Ordina veicolo", + cancelOrder = "Annulla Ordine", + delivery = "Consegna", + delivered = "Consegnato", + noOrders = "Nessun ordine trovato", + quantity = "Quantità", + totalCost = "Costo totale", + totalSales = "Totale vendite", + noSales = "Nessuna vendita trovata", + paid = "Pagato", + owed = "Dovuto", + dealershipName = "Nome Concessionario", + save = "Salva Cambiamenti", + cancel = "Annulla", + notEnoughMoney = "Non hai abbastanza soldi", + placeOrder = "Piazza Ordine", + purchaseCost = "Costo Acquisto", + salePrice = "Costo Vendita", + inStock = "In stock", + outOfStock = "Fuori stock", + placeVehiclePrompt = "Premi %{value} per posizionare il veicolo. Successivamente puoi apportare modifiche più precise!", + remaining = "Rimanenti", + prePurchaseRepoWarning = "Se non riesci a far fronte alle rate del finanziamento, il tuo veicolo verrà pignorato.", + repossessionWarning = "L'ultimo pagamento è fallito - se non effettui un pagamento ora, il tuo veicolo verrà pignorato.", + recurringPayment = "Pagamento ricorrente", + remainingBalance = "Bilancio rimanente", + remainingPayments = "Pagamenti rimanenti", + paymentTakenEvery = "Pagamento preso ogni", + hours = "ore", + seconds = "secondi", + nextPayment = "Prossimo pagamento", + makePayment = "Effettua pagamento", + vehicleRepossessed = "Il veicolo verrà pignorato", + payInFull = "Paga per intero", + earlyPaymentConfirmation = "Sei sicuro di voler effettuare un pagamento anticipato di", + financedVehicles = "Veicoli Rateizzati", + noFinancedVehicles = "Non hai veicoli con rateizzazione attiva", + financeBreakdown = "Ripartizione Finanziaria", + initialPayment = "Pagamento iniziale", + payments = "Pagamenti", + length = "Rate", + interest = "Interessi", + totalPayable = "Prezzo Totale", + leaveShowroom = "Lascia Showroom", + handling = "Manovrabilità", + topSpeed = "Velocità Max", + power = "Potenza", + torque = "Coppia", + brake = "Freno", + financing = "Rateizzazione", + financingAvailable = "Rateizzazione disponibile", + paymentsOf = "pagamenti di", + clear = "Resetta", + testDrive = "Test Drive", + allCategories = "Tutte Categorie", + sortByName = "Ordina per: Nome", + sortByAvailability = "Ordina per: Disponibilità", + sortByCheapest = "Ordina per: Più Economica", + sortByMostExpensive = "Ordina per: Più Costosa", + sortByNewest = "Ordina per: Più Nuova", + purchaseVehicle = "Acquista Veicolo", + purchaseFor = "Acquista per", + selectSociety = "Seleziona una società", + financeOverPayments = "Rateizza in %{value} pagamenti", + payToday = "Paga oggi", + financeThen = "Poi", + seeFullBreakdown = "Vedi ripartizione completa", + testDriveExit = "Puoi uscire dal veicolo in qualsiasi momento per terminare il test drive.", + + -- NOTIFICATIONS + purchaseSuccess = "Congratulazioni per il tuo acquisto!", + depositSuccess = "Depositato con successo", + withdrawSuccess = "Prelevato con successo", + errorNotEnoughMoney = "Non hai abbastanza soldi", + errorVehicleOutOfStock = "Il veicolo non è in magazzino", + errorCannotAffordVehicle = "Non ti puoi permettere questo veicolo", + vehicleFinancePaymentMade = "Pagamento rata fatto per il tuo veicolo %{value}", + vehicleFinancePaidOff = "Congratulazioni, hai pagato e ora possiedi il tuo veicolo %{value}", + vehicleFinancePaymentFailed = "Pagamento rata fallito per il tuo veicolo %{value}", + vehicleFinanceRepossessedSoon = "Devi pagare la rata del veicolo %{value} o verrà presto pignorato", + vehicleFinanceRepossessed = "A causa del mancato pagamento, il tuo veicolo è stato pignorato con la targa %{value}", + dealershipNotEnoughFunds = "Concessionario non ha abbastanza fondi", + dealershipVehiclesOrdered = "Veicolo/i ordinato/i con successo", + dealershipOrderCancelled = "Ordine annullato con successo", + errorVehicleWithSpawnCodeExists = "Esiste già un veicolo con questo codice spawn", + errorExitVehicle = "Devi prima uscire dal veicolo", + errorPlacementCollision = "Non puoi piazzare il veicolo qui", + + -- NEW v1.1 + purchaseRequest = "Richiesta Acquisto", + sendRequest = "Invia Richiesta", + dealer = "Venditore", + financed = "Rateizzata", + signHere = "Firma qui", + signFirstError = "Prima firma", + denyRequest = "Rifiuta Richiesta", + playerTooManyFinancedVehicles = "Il giocatore ha troppi veicoli rateizzati", + employeePermissionsError = "Non hai i permessi impiegato necessari", + managerRole = "Manager", + supervisorRole = "Supervisore", + salesRole = "Vendite", + ownerRole = "Proprietario", + employmentRequest = "Richiesta di Impiego", + accept = "Accetta", + jobOfferDescription = "Ti è stato offerto un lavoro al Concessionario \"%{value}\". Vuoi accettarlo?", + pending = "In attesa", + employeeHiredMsg = "Richiesta di assunzione nel concessionario accettata!", + employeeRejectedMsg = "Richiesta di assunzione nel concessionario rifiutata", + sellVehicle = "Vendi Veicolo", + vehicleTerms = "Termini Veicolo", + financePayments = "Rateizza Pagamenti", + commission = "Commissione", + role = "Ruolo", + firedNotification = "Sei stato licenziato dal concessionario \"%{value}\"", + dealershipTooFarAway = "Non sei vicino a nessun concessionario", + restoreDisplayVehicles = "Ripristina Showroom", + customer = "Cliente", + lessThanAMin = "Meno di un minuto", + mins = "minuto/i", + notInVehicle = "Non sei seduto in un veicolo", + notYourVehicleError = "Questo veicolo non ti appartiene", + vehicleFinancedError = "Non puoi vendere questo veicolo perché ha rate in sospeso", + dealershipDoesntSellVehicle = "Questo concessionario non può acquistare questo veicolo", + dealershipWantsYourVehicle = "Congratulazioni! Questo concessionario vorrebbe acquistare il tuo veicolo.", + purchasePrice = "Prezzo offerto: ", + + spawnCodeInvalid = "Codice spawn non valido", + salesRep = "Resp. Vendite", + directSaleAccepted = "Richiesta di vendita diretta accettata! La tua commissione è stata pagata.", + directSaleRejected = "Richiesta di vendita diretta rifiutata!" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/ja.lua b/resources/[carscripts]/jg-dealerships/locales/ja.lua new file mode 100644 index 000000000..d987a48ba --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/ja.lua @@ -0,0 +1,217 @@ +Locales['ja'] = { + -- UI + vehicle = "車両", + vehicles = "車両", + dealership = "ディーラー", + dealerships = "ディーラー", + vehiclesCount = "台の車両", + dealersCount = "件のディーラー", + accountBalance = "口座残高", + bank = "銀行口座", + cash = "現金", + amount = "金額", + societyFund = "社会資金", + paymentSource = "支払元", + purchase = "購入", + personalPurchase = "個人購入", + societyPurchase = "社会購入", + purchaseType = "購入タイプ", + deposit = "入金", + withdraw = "出金", + all = "すべて", + yes = "はい", + no = "いいえ", + add = "追加", + edit = "編集", + id = "ID", + created = "作成日", + type = "タイプ", + name = "名前", + owner = "オーナー", + bankBalance = "銀行残高", + status = "ステータス", + back = "戻る", + previous = "前へ", + next = "次へ", + admin = "管理者", + vehiclesAdmin = "車両管理者", + dealershipsAdmin = "ディーラー管理者", + search = "検索", + noDealershipsFound = "ディーラーが見つかりません", + noVehicles = "車両が見つかりません", + page = "ページ", + of = "の", + every = "毎", + show = "表示", + active = "アクティブ", + activeFinance = "アクティブな支払い", + failed = "支払い失敗", + removed = "削除されました", + setOwner = "オーナー設定", + manage = "管理", + deleteData = "データ削除", + deleteVehicle = "車両削除", + delete = "削除", + deleteConfirmation = "本当に削除してもよろしいですか?", + deleteConfirmationDanger = "本当に削除してもよろしいですか? この操作は元に戻せません。", + setDealershipOwner = "ディーラーオーナー設定", + overwriteDealerPrices = "ディーラー価格の上書き", + nearbyPlayers = "近くのプレイヤー", + noPlayersNearby = "近くにプレイヤーがいません", + selectPlayer = "プレイヤーを選択", + required = "必須", + forExample = "例として", + spawnCode = "スポーンコード(座標)", + brand = "ブランド", + model = "モデル", + category = "カテゴリー", + price = "価格", + import = "インポート", + importing = "インポート中", + importBehaviour = "インポート動作", + importVehicles = "車両をインポート", + importFrom = "インポート元", + dashboard = "ダッシュボード", + displayVehicle = "表示車両", + displayVehicles = "表示車両", + orders = "注文", + sales = "販売", + vehiclesOnDisplay = "展示車両", + employees = "従業員", + settings = "設定", + switchVehicle = "車両を変更", + remove = "削除", + noDisplayVehicles = "表示車両がありません", + selectVehicle = "車両を選択", + colour = "色", + placeVehicle = "車両を配置", + orderVehicle = "車両を注文", + cancelOrder = "注文キャンセル", + delivery = "配送", + delivered = "配達済み", + noOrders = "注文がありません", + quantity = "数量", + totalCost = "総費用", + totalSales = "総販売", + noSales = "販売がありません", + paid = "支払い済み", + owed = "未払い", + dealershipName = "ディーラー名", + save = "変更を保存", + cancel = "キャンセル", + notEnoughMoney = "お金が足りません", + placeOrder = "注文を確定", + purchaseCost = "購入費用", + salePrice = "販売価格", + inStock = "在庫あり", + outOfStock = "在庫切れ", + placeVehiclePrompt = "車両を配置するには、%{value} を押してください。その後、細かい調整が可能です。", + remaining = "残り", + prePurchaseRepoWarning = "支払いができない場合、車両は即座に差し押さえられます。", + repossessionWarning = "最後の支払いが失敗しました - すぐに支払わないと車両が差し押さえられます。", + recurringPayment = "定期的な支払い", + remainingBalance = "残りの残高", + remainingPayments = "残りの支払い回数", + paymentTakenEvery = "毎回支払い", + hours = "時間", + seconds = "秒", + nextPayment = "次の支払い", + makePayment = "支払いを行う", + vehicleRepossessed = "車両は差し押さえられました", + payInFull = "全額支払う", + earlyPaymentConfirmation = "本当に早期支払いを行いますか?", + financedVehicles = "ファイナンス車両", + noFinancedVehicles = "ファイナンス中の車両はありません", + financeBreakdown = "ファイナンス詳細", + initialPayment = "初回支払い", + payments = "支払い回数", + length = "期間", + interest = "利息", + totalPayable = "総支払額", + leaveShowroom = "ショールームを出る", + handling = "ハンドリング", + topSpeed = "最高速度", + power = "馬力", + torque = "トルク", + brake = "ブレーキ", + financing = "ファイナンス中", + financingAvailable = "ファイナンス利用可能", + paymentsOf = "の支払い回数", + clear = "クリア", + testDrive = "試乗", + allCategories = "すべてのカテゴリー", + sortByName = "並び替え: 名前順", + sortByAvailability = "並び替え: 在庫順", + sortByCheapest = "並び替え: 安い順", + sortByMostExpensive = "並び替え: 高い順", + sortByNewest = "並び替え: 新しい順", + purchaseVehicle = "車両を購入", + purchaseFor = "購入金額", + selectSociety = "社会を選択", + financeOverPayments = "%{value}回の支払いでファイナンス", + payToday = "今日支払う", + financeThen = "その後", + seeFullBreakdown = "詳細を見る", + testDriveExit = "試乗を終了するには、車両から降りることができます。", + + -- NOTIFICATIONS + purchaseSuccess = "購入おめでとうございます!", + depositSuccess = "入金成功", + withdrawSuccess = "出金成功", + errorNotEnoughMoney = "お金が足りません", + errorVehicleOutOfStock = "この車両は在庫切れです", + errorCannotAffordVehicle = "この車両は購入できません", + vehicleFinancePaymentMade = "車両のファイナンス支払いが完了しました %{value}", + vehicleFinancePaidOff = "おめでとうございます、車両 %{value} のファイナンスが完済され、所有権が移転されました", + vehicleFinancePaymentFailed = "車両のファイナンス支払いが失敗しました %{value}", + vehicleFinanceRepossessedSoon = "車両 %{value} の支払いが未済です。今すぐ支払わないと差し押さえされます。", + vehicleFinanceRepossessed = "支払い失敗により、車両 %{value} は差し押さえられました。", + dealershipNotEnoughFunds = "ディーラーに十分な資金がありません", + dealershipVehiclesOrdered = "車両が正常に注文されました", + dealershipOrderCancelled = "注文が正常にキャンセルされました", + errorVehicleWithSpawnCodeExists = "このスポーンコードの車両は既に存在します", + errorExitVehicle = "まず車両から降りてください", + + -- NEW v1.1 + purchaseRequest = "購入リクエスト", + sendRequest = "リクエスト送信", + dealer = "ディーラー", + financed = "ファイナンス済み", + signHere = "ここにサイン", + signFirstError = "最初にサインしてください", + denyRequest = "リクエスト拒否", + playerTooManyFinancedVehicles = "プレイヤーはファイナンス中の車両が多すぎます", + employeePermissionsError = "必要な従業員権限がありません", + managerRole = "マネージャー", + supervisorRole = "スーパーバイザー", + salesRole = "営業", + ownerRole = "オーナー", + employmentRequest = "雇用リクエスト", + accept = "承認", + jobOfferDescription = "\"%{value}\" ディーラーでの職を提供されています。受け入れますか?", + pending = "保留中", + employeeHiredMsg = "ディーラーの雇用リクエストが承認されました!", + employeeRejectedMsg = "ディーラーの雇用リクエストが拒否されました", + sellVehicle = "車両を売る", + vehicleTerms = "車両契約条件", + financePayments = "ファイナンス支払い", + commission = "手数料", + role = "役職", + firedNotification = "\"%{value}\" ディーラーから解雇されました", + dealershipTooFarAway = "ディーラーが遠すぎます", + restoreDisplayVehicles = "ショールームを復元", + customer = "顧客", + lessThanAMin = "1分未満", + mins = "分", + notInVehicle = "車両に乗っていません", + notYourVehicleError = "この車両はあなたのものではありません", + vehicleFinancedError = "この車両はファイナンス支払いが残っているため、販売できません", + dealershipDoesntSellVehicle = "このディーラーはこの車両を購入できません", + dealershipWantsYourVehicle = "おめでとうございます! このディーラーはあなたの車両を購入したいと言っています。", + purchasePrice = "提示価格: ", + + spawnCodeInvalid = "スポーンコード無効", + salesRep = "営業担当", + directSaleAccepted = "直販リクエストが承認されました! 手数料が支払われました。", + directSaleRejected = "直販リクエストが拒否されました" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/lt.lua b/resources/[carscripts]/jg-dealerships/locales/lt.lua new file mode 100644 index 000000000..4eedb73c8 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/lt.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['lt'] = { + -- UI + vehicle = "Tr.priemonė", + vehicles = "Tr.priemonės", + dealership = "Salonas", + dealerships = "Salonas", + vehiclesCount = "Tr.priemonė(s)", + dealersCount = "Tr.priemonių parduotuvė(s)", + accountBalance = "Paskyros Balansas", + bank = "Banko Sąskaita", + cash = "Grynieji", + amount = "Suma", + societyFund = "Bendrijos Fondas", + paymentSource = "Pajamų Šaltinis", + purchase = "Pirkti", + personalPurchase = "Asmeninis Pirkimas", + societyPurchase = "Bendrijos Pirkimas", + purchaseType = "Pirkimo Tipas", + deposit = "Įnešti", + withdraw = "Išgryninti", + all = "Visi", + yes = "Taip", + no = "Ne", + add = "Pridėti", + edit = "Keisti", + id = "ID", + created = "Sūkurtas", + type = "Tipas", + name = "Vardas", + owner = "Savininkas", + bankBalance = "Banko Likutis", + status = "Statusas", + back = "Atgal", + previous = "Ankstesnis", + next = "Kitas", + admin = "Admin", + vehiclesAdmin = "Tr.priemonės admin", + dealershipsAdmin = "Tr.priemonių parduotuvės admin", + search = "Ieškoti", + noDealershipsFound = "Tr.priemonių parduotuvės nerasta", + noVehicles = "Tr.priemonės nerastos", + page = "Puslapis", + of = "Iš", + every = "Visi", + show = "Rodyti", + active = "Aktyvus", + activeFinance = "Jūsų aktyvus finansas", + failed = "Pavedimas nepavyko", + removed = "Pašalintas", + setOwner = "Paskirti savininką", + manage = "Tvarkyti", + deleteData = "Ištrinti duomenis", + deleteVehicle = "Ištrinti tr.priemonę", + delete = "Ištrinti", + deleteConfirmation = "Ar esate įsitikinęs?", + deleteConfirmationDanger = "Ar esate įsitikinęs? šio veiksmo atšaukti negalėsite.", + setDealershipOwner = "Paskirti tr.priemonių parduotuvės savininką", + overwriteDealerPrices = "Pakeisti tr.priemonių parduotuvės kainas", + nearbyPlayers = "Šalia esantys asmenys", + noPlayersNearby = "Šalia nieko nėra", + selectPlayer = "Pasirinkti Asmenį", + required = "Reikiamas", + forExample = "Pavyzdžiui", + spawnCode = "Kodas", + brand = "Markė", + model = "Modelis", + category = "Kategorija", + price = "Kaina", + import = "Įkelti", + importing = "Įkeliama", + importBehaviour = "Import Behaviour", + importVehicles = "Įkelti tr.priemones", + importFrom = "Įkelt iš", + dashboard = "Prietaisų Skydelis", + displayVehicle = "Rodyti tr.priemonę", + displayVehicles = "Rodyti tr.priemones", + orders = "Užsakymai", + sales = "Pardavimai", + vehiclesOnDisplay = "Eksponuojamos tr.priemonės", + employees = "Darbuotojai", + settings = "Nustatymai", + switchVehicle = "Pakeisti tr.priemonę", + remove = "Pašalinti", + noDisplayVehicles = "Nėra eksponuojamų tr.priemonių", + selectVehicle = "Pasirinkti tr. priemonę", + colour = "Spalva", + placeVehicle = "Pastatyti tr.priemonę", + orderVehicle = "Užsakyti tr.priemonę", + cancelOrder = "Atšaukti Užsakymą", + delivery = "Pristatymas", + delivered = "Pristatyta", + noOrders = "Užsakymu nerasta", + quantity = "Kiekis", + totalCost = "Visa kaina", + totalSales = "Visi pardavimai", + noSales = "Pardavimų nerasta", + paid = "Sumokėta", + owed = "Įsiskolinta", + dealershipName = "tr.priemonių Parduotuvės Pavadinimas", + save = "Išsaugoti Pakeitimus", + cancel = "Atšaukti", + notEnoughMoney = "Nepakankamas pinigų kiekis", + placeOrder = "Pateikti Užsakymą", + purchaseCost = "Pirkimo Kaina", + salePrice = "Pardavimo Kaina", + inStock = "Turimas kiekis", + outOfStock = "Išparduota", + placeVehiclePrompt = "Paspauskite %{value} ,kad pastatytumėte tr.priemonę. Pakeitimus galėsite daryti vėliau!", + remaining = "Likę", + prePurchaseRepoWarning = "Jei negalite atsiskaityti su finansiniais mokėjimais, jūsų transporto priemonė bus grąžinta.", + repossessionWarning = "Paskutinis mokėjimas nepavyko jūsų transporto priemonė bus grąžinta, nebent mokėsite dabar.", + recurringPayment = "Pasikartojantis mokėjimas", + remainingBalance = "Esamas likutis", + remainingPayments = "Likę mokėjimai", + paymentTakenEvery = "PMokėjimas imamas kas", + hours = "valandos", + seconds = "sekundės", + nextPayment = "Kitas mokėjimas", + makePayment = "Sumokėti", + vehicleRepossessed = "Transporto priemonė bus atimta", + payInFull = "Mokėti pilnai", + earlyPaymentConfirmation = "Ar tikrai norite atlikti išankstinį mokėjimą?", + financedVehicles = "Finansuojamos transporto priemonės", + noFinancedVehicles = "Jūs neturite tr.priemonių už kurias reikėtų mokėti", + financeBreakdown = "Finansų suskirstymas", + initialPayment = "Pradinis mokėjimas", + payments = "Mokėjimai", + length = "Ilgis", + interest = "Palūkanos", + totalPayable = "Iš viso mokėtina", + leaveShowroom = "Palikti", + handling = "Tvarkymas", + topSpeed = "Didžiausias greitis", + power = "Galia", + torque = "Sukimo momentas", + brake = "Stabdymas", + financing = "Finansavimas", + financingAvailable = "Galimas finansavimas", + paymentsOf = "mokėjimai iš", + clear = "Clear", + testDrive = "Bandomasis Važiavimas", + allCategories = "Visos Kategotijos", + sortByName = "Rušioti pagal: Pavadinimą", + sortByAvailability = "Rūšiuoti pagal: Prieinamumą", + sortByCheapest = "Rūšiuoti pagal: Pigiausias", + sortByMostExpensive = "Rūšiuoti pagal: Brangiausias", + sortByNewest = "Rūšiuoti pagal: Naujausias", + purchaseVehicle = "Pirkti tr.priemonę", + purchaseFor = "Pirkti už", + selectSociety = "Pasirinkite Bendriją", + financeOverPayments = "Finansuokite daugiau nei %{value} mokėjimų", + payToday = "Mokėkite šiandien", + financeThen = "Tada", + seeFullBreakdown = "Žiūrėti visą suskirstymą", + testDriveExit = "Galite bet kada išlipti iš transporto priemonės, kad baigtumėte bandomąjį važiavimą.", + + -- NOTIFICATIONS + purchaseSuccess = "Sveikiname įsigijus pirkinį!", + depositSuccess = "Depozitas sėkmingas", + withdrawSuccess = "Išėmimas sėkmingas", + errorNotEnoughMoney = "Jūs neturite pakankamai pinigų", + errorVehicleOutOfStock = "Šios tr.priemonės nėra sandėlyje", + errorCannotAffordVehicle = "Jūs negalite sau leisti šios transporto priemonės", + vehicleFinancePaymentMade = "Pavedimas už tr.priemonę sėkmingas %{value}", + vehicleFinancePaidOff = "Sveikiname, jūs sumokėjote ir dabar turite nuosavą transporto priemonę %{value}", + vehicleFinancePaymentFailed = "Nepavyko nuskaičiuoti pinigų už tr.priemonę %{value}", + vehicleFinanceRepossessedSoon = "Turite sumokėti už savo tr.priemonę %{value} arba jūsų tr.priemonė netrukus bus grąžinta", + vehicleFinanceRepossessed = "Dėl nemokėjimo jūsų transporto priemonė buvo atimta su valstybiniu numeriu %{value}", + dealershipNotEnoughFunds = "Tr.priemonių parduotuvė neturi pakankamai lėšų", + dealershipVehiclesOrdered = "Transporto priemonė(s) sėkmingai užsakyta(os).", + dealershipOrderCancelled = "Užsakymas sėkmingai atšauktas", + errorVehicleWithSpawnCodeExists = "Transporto priemonė su šiuo kodu jau yra", + errorExitVehicle = "Pirmiausia turite išlipti iš transporto priemonės", + + -- NEW v1.1 + purchaseRequest = "Purchase Request", + sendRequest = "Send Request", + dealer = "Dealer", + financed = "Financed", + signHere = "Sign here", + signFirstError = "Please sign first", + denyRequest = "Deny Request", + playerTooManyFinancedVehicles = "Player has too many financed vehicles", + employeePermissionsError = "You don't have the necessary employee permissions", + managerRole = "Manager", + supervisorRole = "Supervisor", + salesRole = "Sales", + ownerRole = "Owner", + employmentRequest = "Employment Request", + accept = "Accept", + jobOfferDescription = "You have been offered a job at the \"%{value}\" dealership. Would you like to accept?", + pending = "Pending", + employeeHiredMsg = "Dealership hire request was accepted!", + employeeRejectedMsg = "Dealership hire request was rejected", + sellVehicle = "Sell Vehicle", + vehicleTerms = "Vehicle terms", + financePayments = "Finance Payments", + commission = "Commission", + role = "Role", + firedNotification = "You have been fired from the \"%{value}\" dealership", + dealershipTooFarAway = "You aren't near any dealerships", + restoreDisplayVehicles = "Restore Showroom", + customer = "Customer", + lessThanAMin = "Less than a minute", + mins = "min(s)", + notInVehicle = "You are not sat in a vehicle", + notYourVehicleError = "This vehicle does not belong to you", + vehicleFinancedError = "You cannot sell this vehicle because it has finance payments remaining", + dealershipDoesntSellVehicle = "This dealership can't purchase this vehicle", + dealershipWantsYourVehicle = "Congratulations! This dealership would like to purchase your vehicle.", + purchasePrice = "Offered price: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/nl.lua b/resources/[carscripts]/jg-dealerships/locales/nl.lua new file mode 100644 index 000000000..a6cd414e6 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/nl.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['nl'] = { + -- UI + vehicle = "Voertuig", + vehicles = "Voertuigen", + dealership = "Autodealer", + dealerships = "Autodealers", + vehiclesCount = "Aantal voertuigen", + dealersCount = "Aantal dealers", + accountBalance = "Rekeningsaldo", + bank = "Bank", + cash = "Contant geld", + amount = "Bedrag", + societyFund = "Maatschappelijk fonds", + paymentSource = "Betaalbron", + purchase = "Aankoop", + personalPurchase = "Persoonlijke aankoop", + societyPurchase = "Maatschappelijke aankoop", + purchaseType = "Type aankoop", + deposit = "Storting", + withdraw = "Opname", + all = "Alle", + yes = "Ja", + no = "Nee", + add = "Toevoegen", + edit = "Bewerken", + id = "ID", + created = "Aangemaakt", + type = "Type", + name = "Naam", + owner = "Eigenaar", + bankBalance = "Banksaldo", + status = "Status", + back = "Terug", + previous = "Vorige", + next = "Volgende", + admin = "Beheerder", + vehiclesAdmin = "Voertuigbeheerder", + dealershipsAdmin = "Autodealer beheerder", + search = "Zoeken", + noDealershipsFound = "Geen autodealers gevonden", + noVehicles = "Geen voertuigen gevonden", + page = "Pagina", + of = "van", + every = "elke", + show = "Weergeven", + active = "Actief", + activeFinance = "Actieve financiering", + failed = "Betaling mislukt", + removed = "Verwijderd", + setOwner = "Eigenaar instellen", + manage = "Beheren", + deleteData = "Gegevens verwijderen", + deleteVehicle = "Voertuig verwijderen", + delete = "Verwijderen", + deleteConfirmation = "Weet je het zeker?", + deleteConfirmationDanger = "Weet je het zeker? Deze actie kan niet ongedaan worden gemaakt.", + setDealershipOwner = "Autodealer eigenaar instellen", + overwriteDealerPrices = "Dealerprijzen overschrijven", + nearbyPlayers = "Spelers in de buurt", + noPlayersNearby = "Geen spelers in de buurt", + selectPlayer = "Speler selecteren", + required = "Vereist", + forExample = "Bijvoorbeeld", + spawnCode = "Spawn-code", + brand = "Merk", + model = "Model", + category = "Categorie", + price = "Prijs", + import = "Importeren", + importing = "Importeren", + importBehaviour = "Importgedrag", + importVehicles = "Voertuigen importeren", + importFrom = "Importeren van", + dashboard = "Dashboard", + displayVehicle = "Voertuig weergeven", + displayVehicles = "Voertuigen weergeven", + orders = "Bestellingen", + sales = "Verkoop", + vehiclesOnDisplay = "Voertuigen op display", + employees = "Werknemers", + settings = "Instellingen", + switchVehicle = "Voertuig wisselen", + remove = "Verwijderen", + noDisplayVehicles = "Geen voertuigen op display", + selectVehicle = "Voertuig selecteren", + colour = "Kleur", + placeVehicle = "Voertuig plaatsen", + orderVehicle = "Voertuig bestellen", + cancelOrder = "Bestelling annuleren", + delivery = "Levering", + delivered = "Geleverd", + noOrders = "Geen bestellingen", + quantity = "Hoeveelheid", + totalCost = "Totale kosten", + totalSales = "Totale verkoop", + noSales = "Geen verkoop gevonden", + paid = "Betaald", + owed = "Verschuldigd", + dealershipName = "Naam autodealer", + save = "Wijzigingen opslaan", + cancel = "Annuleren", + notEnoughMoney = "Niet genoeg geld", + placeOrder = "Bestelling plaatsen", + purchaseCost = "Aankoopprijs", + salePrice = "Verkoopprijs", + inStock = "Op voorraad", + outOfStock = "Niet op voorraad", + placeVehiclePrompt = "Druk op %{value} om het voertuig te plaatsen. Daarna kun je verdere aanpassingen maken!", + remaining = "Resterend", + prePurchaseRepoWarning = "Als je je kredietbetalingen niet volgt, wordt je voertuig in beslag genomen.", + repossessionWarning = "Je laatste betaling is mislukt - als je nu niet betaalt, wordt je voertuig binnenkort in beslag genomen.", + recurringPayment = "Terugkerende betaling", + remainingBalance = "Resterend saldo", + remainingPayments = "Resterende betalingen", + paymentTakenEvery = "Betaling genomen om de", + hours = "Uur", + seconds = "Seconden", + nextPayment = "Volgende betaling", + makePayment = "Betaling doen", + vehicleRepossessed = "Voertuig wordt in beslag genomen", + payInFull = "Volledig betalen", + earlyPaymentConfirmation = "Weet je zeker dat je eerder wilt betalen?", + financedVehicles = "Gefinancierde voertuigen", + noFinancedVehicles = "Je hebt geen actieve gefinancierde voertuigen", + financeBreakdown = "Financiële breakdown", + initialPayment = "Eerste betaling", + payments = "Betalingen", + length = "Lengte", + interest = "Rente", + totalPayable = "Totaal te betalen", + leaveShowroom = "Showroom verlaten", + handling = "Besturing", + topSpeed = "Topsnelheid", + power = "Vermogen", + torque = "Koppel", + brake = "Rem", + financing = "Financiering", + financingAvailable = "Financiering beschikbaar", + paymentsOf = "betalingen van", + clear = "Wis", + testDrive = "Proefrit", + allCategories = "Alle categorieën", + sortByName = "Sorteer op naam", + sortByAvailability = "Sorteer op beschikbaarheid", + sortByCheapest = "Sorteer op goedkoopste", + sortByMostExpensive = "Sorteer op duurste", + sortByNewest = "Sorteer op nieuwste", + purchaseVehicle = "Voertuig kopen", + purchaseFor = "Kopen voor", + selectSociety = "Selecteer een samenleving", + financeOverPayments = "%{value} betalingen over financiering", + payToday = "Vandaag betalen", + financeThen = "Dan", + seeFullBreakdown = "Bekijk de volledige breakdown", + testDriveExit = "Je kunt op elk moment uit je voertuig stappen om de proefrit te beëindigen.", + + -- NOTIFICATIONS + purchaseSuccess = "Bedankt voor je aankoop!", + depositSuccess = "Storting succesvol", + withdrawSuccess = "Opname succesvol", + errorNotEnoughMoney = "Niet genoeg geld", + errorVehicleOutOfStock = "Dit voertuig is niet op voorraad", + errorCannotAffordVehicle = "Je kunt dit voertuig niet betalen", + vehicleFinancePaymentMade = "Betaling van %{value} voor je voertuig is gelukt", + vehicleFinancePaidOff = "Gefeliciteerd, je hebt je voertuig volledig afbetaald! %{value}", + vehicleFinancePaymentFailed = "Betaling van %{value} voor je voertuig is mislukt", + vehicleFinanceRepossessedSoon = "Je moet betalen voor je voertuig %{value}, anders wordt het binnenkort in beslag genomen", + vehicleFinanceRepossessed = "Vanwege niet-betaling is je voertuig met kenteken %{value} in beslag genomen.", + dealershipNotEnoughFunds = "De autodealer heeft niet genoeg fondsen", + dealershipVehiclesOrdered = "Voertuigen succesvol besteld bij de autodealer", + dealershipOrderCancelled = "Bestelling bij de autodealer succesvol geannuleerd", + errorVehicleWithSpawnCodeExists = "Er bestaat al een voertuig met deze spawn-code", + errorExitVehicle = "Je moet eerst uit je voertuig stappen", + + -- NEW v1.1 + purchaseRequest = "Aankoopverzoek", + sendRequest = "Verzoek versturen", + dealer = "Dealer", + financed = "Gefinancierd", + signHere = "Onderteken hier", + signFirstError = "Onderteken eerst alsjeblieft", + denyRequest = "Verzoek afwijzen", + playerTooManyFinancedVehicles = "Deze speler heeft te veel gefinancierde voertuigen", + employeePermissionsError = "Je hebt niet de vereiste rechten als werknemer", + managerRole = "Manager", + supervisorRole = "Supervisor", + salesRole = "Verkoop", + ownerRole = "Eigenaar", + employmentRequest = "Verzoek tot aanstelling", + accept = "Accepteren", + jobOfferDescription = "Je hebt een baanaanbieding ontvangen van \"%{value}\" autodealer. Wil je het accepteren?", + pending = "In behandeling", + employeeHiredMsg = "Je bent aangenomen bij de autodealer!", + employeeRejectedMsg = "Je verzoek tot aanstelling bij de autodealer is afgewezen", + sellVehicle = "Voertuig verkopen", + vehicleTerms = "Voorwaarden voertuig", + financePayments = "Financiële betalingen", + commission = "Commissie", + role = "Rol", + firedNotification = "Je bent ontslagen bij de autodealer \"%{value}\"", + dealershipTooFarAway = "Je bent te ver verwijderd van een autodealer", + restoreDisplayVehicles = "Toon voertuigen", + customer = "Klant", + lessThanAMin = "Minder dan een minuut", + mins = "minuten", + notInVehicle = "Je zit niet in een voertuig", + notYourVehicleError = "Dit voertuig is niet van jou", + vehicleFinancedError = "Je kunt dit voertuig niet verkopen omdat er nog resterende financieringsbetalingen zijn", + dealershipDoesntSellVehicle = "Deze autodealer verkoopt dit voertuig niet", + dealershipWantsYourVehicle = "Gefeliciteerd! Deze autodealer wil je voertuig kopen.", + purchasePrice = "Aangeboden prijs: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/no.lua b/resources/[carscripts]/jg-dealerships/locales/no.lua new file mode 100644 index 000000000..929791b30 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/no.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['no'] = { + -- UI + vehicle = "Kjøretøy", + vehicles = "Kjøretøy", + dealership = "Forhandler", + dealerships = "Forhandlere", + vehiclesCount = "Kjøretøy", + dealersCount = "Forhandlere", + accountBalance = "Saldo", + bank = "Bankkonto", + cash = "Kontant", + amount = "Beløp", + societyFund = "Bedriftskonto", + paymentSource = "Betalingsmetode", + purchase = "Kjøp", + personalPurchase = "Personlig Kjøp", + societyPurchase = "Bedrifts Kjøp", + purchaseType = "Kjøpstype", + deposit = "Innskudd", + withdraw = "Uttak", + all = "Alle", + yes = "Ja", + no = "Nei", + add = "Legg til", + edit = "Endre", + id = "ID", + created = "Opprettet", + type = "Type", + name = "Navn", + owner = "Eier", + bankBalance = "Saldo", + status = "Status", + back = "Tilbake", + previous = "tidligere", + next = "Neste", + admin = "Admin Meny", + vehiclesAdmin = "Kjøretøy Admin", + dealershipsAdmin = "Forhandler Admin", + search = "Søk", + noDealershipsFound = "Ingen forhandlere funnet", + noVehicles = "Ingen kjøretøy funnet", + page = "Side", + of = "av", + every = "hver", + show = "Vis", + active = "Aktiv", + activeFinance = "Aktiv Finansiering", + failed = "Betaling Feilet", + removed = "Fjernet", + setOwner = "Velg Eier", + manage = "Administrere", + deleteData = "Fjern Data", + deleteVehicle = "Slett Kjøretøy", + delete = "Slett", + deleteConfirmation = "Er du sikker?", + deleteConfirmationDanger = "Er du sikker? Denne handlingen kan ikke reverseres.", + setDealershipOwner = "Velg Forhandler Eier", + overwriteDealerPrices = "Overkjør forhandlerpriser", + nearbyPlayers = "Personer i nærheten", + noPlayersNearby = "Ingen personer i nærheten", + selectPlayer = "Velg spiller", + required = "Påkrevd", + forExample = "For eksempel", + spawnCode = "Spawn Kode", + brand = "Merke", + model = "Modell", + category = "Kategori", + price = "Pris", + import = "Importer", + importing = "Importerer", + importBehaviour = "Import Metode", + importVehicles = "Importer kjøretøy", + importFrom = "Importer Fra", + dashboard = "Hovedmeny", + displayVehicle = "Still ut kjøretøy", + displayVehicles = "Still ut kjøretøy", + orders = "Ordre", + sales = "Salg", + vehiclesOnDisplay = "Kjøretøy på utstilling", + employees = "Ansatte", + settings = "Instillinger", + switchVehicle = "Bytt kjøretøy", + remove = "Fjern", + noDisplayVehicles = "Ingen kjøretøy på utstilling", + selectVehicle = "Velg kjøretøy", + colour = "Farge", + placeVehicle = "Plasser kjøretøy", + orderVehicle = "Bestill kjøretøy", + cancelOrder = "Kanseller bestilling", + delivery = "Leveranse", + delivered = "Levert", + noOrders = "Ingen ordre funnet", + quantity = "Antall", + totalCost = "Totale utgifter", + totalSales = "Totale salg", + noSales = "Ingen salg funnet", + paid = "Betalt", + owed = "Å betale", + dealershipName = "Forhandlernavn", + save = "Lagre endringer", + cancel = "Avbryt", + notEnoughMoney = "Ikke nok penger", + placeOrder = "Legg inn bestilling", + purchaseCost = "Kjøpskostnad", + salePrice = "Salgspris", + inStock = "På lager", + outOfStock = "Utsolgt", + placeVehiclePrompt = "Trykk %{value} for å plassere kjøretøy. Du kan fortsette å justere etterpå!", + remaining = "Gjenstående", + prePurchaseRepoWarning = "Hvis ikke du kan betale for finansieringen, vil kjøretøyet ditt bli tatt tilbake!.", + repossessionWarning = "Din siste betalingen mislyktes - kjøretøyet blir tatt tilbake om du ikke gjennomfør en betaling til finansieringen nå! .", + recurringPayment = "Gjentakende Avdrag", + remainingBalance = "Gjenstående Saldo ", + remainingPayments = "Gjenstående Avdrag", + paymentTakenEvery = "Betaling tas hver", + hours = "time(r)", + seconds = "sekunder", + nextPayment = "Den neste betalingen skjer om", + makePayment = "Betal et avdrag", + vehicleRepossessed = "Kjøretøyet vil bli tatt tilbake", + payInFull = "Fullfør nedbetaling", + earlyPaymentConfirmation = "Er du sikker på at du vil gjennomføre et avdrag?", + financedVehicles = "Finansierte Kjøretøy", + noFinancedVehicles = "Du har ingen kjøretøy med aktive nedbetalinger", + financeBreakdown = "Finansplan", + initialPayment = "Førstegangsbetaling", + payments = "Betalinger", + length = "Lengde", + interest = "Renter", + totalPayable = "Totalt å betale", + leaveShowroom = "Forlat utstillingsrom", + handling = "Kjøreegenskaper", + topSpeed = "Topp Hastighet", + power = "Effekt", + torque = "Moment", + brake = "Bremser", + financing = "Finansiering", + financingAvailable = "Finansiering tilgjengelig", + paymentsOf = "betalinger av", + clear = "Tøm", + testDrive = "Prøvekjøring", + allCategories = "Alle Kategorier", + sortByName = "Sorter etter: Navn", + sortByAvailability = "Sorter etter: Tilgjengelighet", + sortByCheapest = "Sorter etter: Billigst", + sortByMostExpensive = "Sorter etter: Dyrest", + sortByNewest = "Sorter etter: Nyest", + purchaseVehicle = "Kjøp Kjøretøy", + purchaseFor = "Kjøp for", + selectSociety = "Velg Firma", + financeOverPayments = "Finansiering over %{value} betalinger", + payToday = "Betal i dag", + financeThen = "Da", + seeFullBreakdown = "Se fullstendig oversikt", + testDriveExit = "Du kan forlate kjøretøyet til en hver tid for å avslutte prøveturen.", + + -- NOTIFICATIONS + purchaseSuccess = "Gratulerer med nytt kjøretøy!", + depositSuccess = "Innskudd vellykket", + withdrawSuccess = "Uttak vellykket", + errorNotEnoughMoney = "Du har ikke nok penger", + errorVehicleOutOfStock = "Dette kjøretøyet er ikke på lager", + errorCannotAffordVehicle = "Du har ikke råd til dette kjøretøyet", + vehicleFinancePaymentMade = "Nedbetaling gjennomført %{value}", + vehicleFinancePaidOff = "Gratulerer, du har nå betalt ferdig kjøretøyet, og er nå fulleier %{value}", + vehicleFinancePaymentFailed = "Nedbetaling for kjøretøyet feilet %{value}", + vehicleFinanceRepossessedSoon = "Du må gjennomføre et innskudd for kjøretøyet ditt %{value} ellers vil kjøretøyet bli tatt tilbake", + vehicleFinanceRepossessed = "På grunn av manglende betaling, har kjøretøyet ditt blitt tatt tilbake til forhandler. Gjelder kjøretøy med skiltnummer %{value}", + dealershipNotEnoughFunds = "Forhandleren har ikke nok penger", + dealershipVehiclesOrdered = "Bestilling av kjøretøy gjennomført", + dealershipOrderCancelled = "Bestillingen ble kansellert", + errorVehicleWithSpawnCodeExists = "Et kjøretøy med denne spawn koden finnes allerede", + errorExitVehicle = "Du må forlate kjøretøyet først", + + -- NEW v1.1 + purchaseRequest = "Kjøpsforespørsel", + sendRequest = "Send forespørsel", + dealer = "Forhandler", + financed = "Finansiert", + signHere = "Signer her", + signFirstError = "Vennligst signer først", + denyRequest = "Nekte forespørsel", + playerTooManyFinancedVehicles = "Spilleren har for mange finansierte kjøretøyer", + employeePermissionsError = "Du har ikke nødvendige ansattes tillatelser", + managerRole = "Sjef", + supervisorRole = "Veileder", + salesRole = "Salg", + ownerRole = "Eieren", + employmentRequest = "Ansettelsesforespørsel", + accept = "Aksepterer", + jobOfferDescription = "Du har blitt tilbudt en jobb på \"%{value}\" forhandler.Vil du godta?", + pending = "Pending", + employeeHiredMsg = "Kjøretlyforhandler tilbud ble akseptert!", + employeeRejectedMsg = "Kjøretlyforhandler tilbud ble avvist", + sellVehicle = "Selg kjøretøy", + vehicleTerms = "Kjøretøyer", + financePayments = "Finansbetalinger", + commission = "Kommisjon", + role = "Rolle", + firedNotification = "Du har fått sparken fra \"%{value}\" forhandler", + dealershipTooFarAway = "Du er ikke i nærheten av noen forhandlere", + restoreDisplayVehicles = "Gjenopprett showroom", + customer = "Kunde", + lessThanAMin = "Mindre enn ett minutt", + mins = "min(s)", + notInVehicle = "Du sitter ikke i et kjøretøy", + notYourVehicleError = "Dette kjøretøyet tilhører ikke deg", + vehicleFinancedError = "Du kan ikke selge dette kjøretøyet fordi det har finansbetalinger utestående", + dealershipDoesntSellVehicle = "Dette forhandleren kan ikke kjøpe dette kjøretøyet", + dealershipWantsYourVehicle = "Gratulerer! Denne forhandleren vil gjerne kjøpe kjøretøyet ditt.", + purchasePrice = "Tilbudt pris: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/pl.lua b/resources/[carscripts]/jg-dealerships/locales/pl.lua new file mode 100644 index 000000000..73b155d16 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/pl.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['pl'] = { + -- UI + vehicle = "Pojazd", + vehicles = "Pojazdy", + dealership = "Dealer samochodowy", + dealerships = "Dealerzy samochodowi", + vehiclesCount = "Liczba pojazdów", + dealersCount = "Liczba dealerów", + accountBalance = "Saldo konta", + bank = "Bank", + cash = "Gotówka", + amount = "Kwota", + societyFund = "Fundusz społeczny", + paymentSource = "Źródło płatności", + purchase = "Zakup", + personalPurchase = "Osobisty zakup", + societyPurchase = "Zakup społeczny", + purchaseType = "Typ zakupu", + deposit = "Depozyt", + withdraw = "Wypłata", + all = "Wszystko", + yes = "Tak", + no = "Nie", + add = "Dodaj", + edit = "Edytuj", + id = "ID", + created = "Utworzono", + type = "Typ", + name = "Nazwa", + owner = "Właściciel", + bankBalance = "Saldo bankowe", + status = "Status", + back = "Powrót", + previous = "Poprzedni", + next = "Następny", + admin = "Administrator", + vehiclesAdmin = "Administrator pojazdów", + dealershipsAdmin = "Administrator dealerów", + search = "Szukaj", + noDealershipsFound = "Nie znaleziono dealerów samochodowych", + noVehicles = "Brak pojazdów", + page = "Strona", + of = "z", + every = "każdy", + show = "Pokaż", + active = "Aktywny", + activeFinance = "Aktywna finansowanie", + failed = "Niepowodzenie", + removed = "Usunięty", + setOwner = "Ustaw właściciela", + manage = "Zarządzaj", + deleteData = "Usuń dane", + deleteVehicle = "Usuń pojazd", + delete = "Usuń", + deleteConfirmation = "Na pewno?", + deleteConfirmationDanger = "Czy na pewno? Tej operacji nie można cofnąć.", + setDealershipOwner = "Ustaw właściciela dealerowi", + overwriteDealerPrices = "Nadpisz ceny dealerów", + nearbyPlayers = "Gracze w pobliżu", + noPlayersNearby = "Brak graczy w pobliżu", + selectPlayer = "Wybierz gracza", + required = "Wymagane", + forExample = "Na przykład", + spawnCode = "Kod spawnu", + brand = "Marka", + model = "Model", + category = "Kategoria", + price = "Cena", + import = "Importuj", + importing = "Importowanie", + importBehaviour = "Zachowanie importu", + importVehicles = "Importuj pojazdy", + importFrom = "Importuj z", + dashboard = "Deska rozdzielcza", + displayVehicle = "Wyświetl pojazd", + displayVehicles = "Wyświetl pojazdy", + orders = "Zamówienia", + sales = "Sprzedaż", + vehiclesOnDisplay = "Pojazdy na wystawie", + employees = "Pracownicy", + settings = "Ustawienia", + switchVehicle = "Zmień pojazd", + remove = "Usuń", + noDisplayVehicles = "Brak pojazdów na wystawie", + selectVehicle = "Wybierz pojazd", + colour = "Kolor", + placeVehicle = "Umieść pojazd", + orderVehicle = "Zamów pojazd", + cancelOrder = "Anuluj zamówienie", + delivery = "Dostawa", + delivered = "Dostarczono", + noOrders = "Brak zamówień", + quantity = "Ilość", + totalCost = "Całkowity koszt", + totalSales = "Całkowita sprzedaż", + noSales = "Brak sprzedaży", + paid = "Zapłacono", + owed = "Dłużne", + dealershipName = "Nazwa dealera samochodowego", + save = "Zapisz zmiany", + cancel = "Anuluj", + notEnoughMoney = "Za mało środków", + placeOrder = "Złóż zamówienie", + purchaseCost = "Koszt zakupu", + salePrice = "Cena sprzedaży", + inStock = "Na stanie", + outOfStock = "Brak w magazynie", + placeVehiclePrompt = "Naciśnij %{value}, aby umieścić pojazd. Następnie możesz wprowadzić dalsze zmiany!", + remaining = "Pozostało", + prePurchaseRepoWarning = "Jeśli nie spłacisz rat kredytu, twój pojazd zostanie zarekwirowany.", + repossessionWarning = "Twoja ostatnia płatność nie powiodła się - jeśli teraz nie zapłacisz, twój pojazd zostanie niedługo zarekwirowany.", + recurringPayment = "Płatność cykliczna", + remainingBalance = "Pozostałe saldo", + remainingPayments = "Pozostałe płatności", + paymentTakenEvery = "Płatność pobierana co", + hours = "Godzin", + seconds = "Sekundy", + nextPayment = "Następna płatność", + makePayment = "Dokonaj płatności", + vehicleRepossessed = "Twój pojazd zostanie zarekwirowany", + payInFull = "Zapłać całość", + earlyPaymentConfirmation = "Czy na pewno chcesz zapłacić wcześniej?", + financedVehicles = "Pojazdy objęte finansowaniem", + noFinancedVehicles = "Nie masz żadnych aktywnych pojazdów objętych finansowaniem", + financeBreakdown = "Podział finansów", + initialPayment = "Pierwsza płatność", + payments = "Płatności", + length = "Długość", + interest = "Oprocentowanie", + totalPayable = "Całkowita kwota do zapłaty", + leaveShowroom = "Opuść salon", + handling = "Zarządzanie", + topSpeed = "Maksymalna prędkość", + power = "Moc", + torque = "Moment obrotowy", + brake = "Hamulec", + financing = "Finansowanie", + financingAvailable = "Dostępne finansowanie", + paymentsOf = "płatności po", + clear = "Wyczyść", + testDrive = "Jazda próbna", + allCategories = "Wszystkie kategorie", + sortByName = "Sortuj według nazwy", + sortByAvailability = "Sortuj według dostępności", + sortByCheapest = "Sortuj według najniższej ceny", + sortByMostExpensive = "Sortuj według najwyższej ceny", + sortByNewest = "Sortuj według najnowszych", + purchaseVehicle = "Kup pojazd", + purchaseFor = "Kup dla", + selectSociety = "Wybierz społeczność", + financeOverPayments = "%{value} płatności ponad finansowanie", + payToday = "Zapłać dzisiaj", + financeThen = "Następnie", + seeFullBreakdown = "Zobacz pełny podział", + testDriveExit = "Możesz w każdej chwili opuścić pojazd, aby zakończyć jazdę próbną.", + + -- NOTIFICATIONS + purchaseSuccess = "Dziękujemy za zakup!", + depositSuccess = "Udany depozyt", + withdrawSuccess = "Udany przelew", + errorNotEnoughMoney = "Za mało środków", + errorVehicleOutOfStock = "Ten pojazd nie jest dostępny", + errorCannotAffordVehicle = "Nie stać cię na ten pojazd", + vehicleFinancePaymentMade = "Płatność %{value} za twój pojazd zakończona powodzeniem", + vehicleFinancePaidOff = "Gratulacje, spłaciłeś swojego pojazda! Pozostało %{value}", + vehicleFinancePaymentFailed = "Płatność %{value} za twój pojazd nie powiodła się", + vehicleFinanceRepossessedSoon = "Musisz zapłacić %{value} za twój pojazd, w przeciwnym razie wkrótce zostanie zarekwirowany", + vehicleFinanceRepossessed = "Z powodu niezapłacenia, twój pojazd o numerze rejestracyjnym %{value} został zarekwirowany.", + dealershipNotEnoughFunds = "Dealer samochodowy nie ma wystarczających funduszy", + dealershipVehiclesOrdered = "Pojazdy zostały pomyślnie zamówione u dealera samochodowego", + dealershipOrderCancelled = "Zamówienie u dealera samochodowego zostało pomyślnie anulowane", + errorVehicleWithSpawnCodeExists = "Pojazd o tym kodzie spawnu już istnieje", + errorExitVehicle = "Najpierw musisz opuścić pojazd", + + -- NEW v1.1 + purchaseRequest = "Prośba o zakup", + sendRequest = "Wyślij prośbę", + dealer = "Dealer", + financed = "Finansowane", + signHere = "Podpisz tutaj", + signFirstError = "Najpierw podpisz, proszę", + denyRequest = "Odrzuć prośbę", + playerTooManyFinancedVehicles = "Ten gracz ma zbyt wiele finansowanych pojazdów", + employeePermissionsError = "Nie masz wymaganych uprawnień jako pracownik", + managerRole = "Manager", + supervisorRole = "Przełożony", + salesRole = "Sprzedaż", + ownerRole = "Właściciel", + employmentRequest = "Prośba o zatrudnienie", + accept = "Akceptuj", + jobOfferDescription = "Otrzymałeś ofertę pracy od \"%{value}\" dealera samochodowego. Czy chcesz ją zaakceptować?", + pending = "Oczekuje", + employeeHiredMsg = "Zostałeś zatrudniony u dealera samochodowego!", + employeeRejectedMsg = "Twoja prośba o zatrudnienie u dealera samochodowego została odrzucona", + sellVehicle = "Sprzedaj pojazd", + vehicleTerms = "Warunki pojazdu", + financePayments = "Płatności finansowe", + commission = "Prowizja", + role = "Rola", + firedNotification = "Zostałeś zwolniony u dealera samochodowego \"%{value}\"", + dealershipTooFarAway = "Jesteś zbyt daleko od dealera samochodowego", + restoreDisplayVehicles = "Przywróć pojazdy", + customer = "Klient", + lessThanAMin = "Mniej niż minutę", + mins = "minut(y)", + notInVehicle = "Nie jesteś w pojeździe", + notYourVehicleError = "Ten pojazd nie należy do ciebie", + vehicleFinancedError = "Nie możesz sprzedać tego pojazdu, ponieważ pozostały jeszcze płatności finansowe", + dealershipDoesntSellVehicle = "Ten dealer samochodowy nie sprzedaje tego pojazdu", + dealershipWantsYourVehicle = "Gratulacje! Ten dealer samochodowy chce kupić twój pojazd.", + purchasePrice = "Zaproponowana cena: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/pt.lua b/resources/[carscripts]/jg-dealerships/locales/pt.lua new file mode 100644 index 000000000..bcbf4087d --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/pt.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['pt'] = { + -- UI + vehicle = "Veículo", + vehicles = "Veículos", + dealership = "Concessionária", + dealerships = "Concessionárias", + vehiclesCount = "veículo(s)", + dealersCount = "concessionária(s)", + accountBalance = "Saldo da Conta", + bank = "Conta Bancária", + cash = "Dinheiro", + amount = "Valor", + societyFund = "Fundo da Sociedade", + paymentSource = "Origem do Pagamento", + purchase = "Compra", + personalPurchase = "Compra Pessoal", + societyPurchase = "Compra da Sociedade", + purchaseType = "Tipo de Compra", + deposit = "Depósito", + withdraw = "Retirar", + all = "Todos", + yes = "Sim", + no = "Não", + add = "Adicionar", + edit = "Editar", + id = "ID", + created = "Criado", + type = "Tipo", + name = "Nome", + owner = "Proprietário", + bankBalance = "Saldo Bancário", + status = "Status", + back = "Voltar", + previous = "Anterior", + next = "Próximo", + admin = "Admin", + vehiclesAdmin = "Administração de Veículos", + dealershipsAdmin = "Administração de Concessionárias", + search = "Buscar", + noDealershipsFound = "Nenhuma concessionária encontrada", + noVehicles = "Nenhum veículo encontrado", + page = "Página", + of = "de", + every = "todos", + show = "Mostrar", + active = "Ativo", + activeFinance = "Financiamento Ativo", + failed = "Pagamento Falhou", + removed = "Removido", + setOwner = "Definir Proprietário", + manage = "Gerenciar", + deleteData = "Excluir Dados", + deleteVehicle = "Excluir Veículo", + delete = "Excluir", + deleteConfirmation = "Você tem certeza?", + deleteConfirmationDanger = "Você tem certeza? Essa ação é irreversível.", + setDealershipOwner = "Definir Proprietário da Concessionária", + overwriteDealerPrices = "Sobrescrever preços da concessionária", + nearbyPlayers = "Jogadores Próximos", + noPlayersNearby = "Nenhum jogador próximo", + selectPlayer = "Selecionar jogador", + required = "Obrigatório", + forExample = "Por exemplo", + spawnCode = "Código de Spawn", + brand = "Marca", + model = "Modelo", + category = "Categoria", + price = "Preço", + import = "Importar", + importing = "Importando", + importBehaviour = "Comportamento de Importação", + importVehicles = "Importar veículos", + importFrom = "Importar de", + dashboard = "Painel de Controle", + displayVehicle = "Exibir Veículo", + displayVehicles = "Exibir Veículos", + orders = "Pedidos", + sales = "Vendas", + vehiclesOnDisplay = "Veículos em Exibição", + employees = "Funcionários", + settings = "Configurações", + switchVehicle = "Trocar Veículo", + remove = "Remover", + noDisplayVehicles = "Nenhum veículo em exibição", + selectVehicle = "Selecionar veículo", + colour = "Cor", + placeVehicle = "Colocar Veículo", + orderVehicle = "Pedir Veículo", + cancelOrder = "Cancelar Pedido", + delivery = "Entrega", + delivered = "Entregue", + noOrders = "Nenhum pedido encontrado", + quantity = "Quantidade", + totalCost = "Custo Total", + totalSales = "Total de Vendas", + noSales = "Nenhuma venda encontrada", + paid = "Pago", + owed = "Devido", + dealershipName = "Nome da Concessionária", + save = "Salvar Alterações", + cancel = "Cancelar", + notEnoughMoney = "Dinheiro insuficiente", + placeOrder = "Fazer Pedido", + purchaseCost = "Custo de Compra", + salePrice = "Preço de Venda", + inStock = "Em estoque", + outOfStock = "Sem estoque", + placeVehiclePrompt = "Pressione %{value} para colocar o veículo. Podes fazer ajustes finos posteriormente!", + remaining = "Restante", + prePurchaseRepoWarning = "Se não conseguires pagar as suas parcelas, o teu veículo será retomado.", + repossessionWarning = "O teu último pagamento falhou - o teu veículo será retomado, a menos que faças um pagamento agora.", + recurringPayment = "Pagamento Recorrente", + remainingBalance = "Saldo Restante", + remainingPayments = "Parcelas Restantes", + paymentTakenEvery = "Pagamento realizado a cada", + hours = "horas", + seconds = "segundos", + nextPayment = "Próximo pagamento", + makePayment = "Realizar pagamento", + vehicleRepossessed = "Veículo será retomado", + payInFull = "Pagar integralmente", + earlyPaymentConfirmation = "Tem certeza de que deseja fazer um pagamento antecipado de", + financedVehicles = "Veículos Financiados", + noFinancedVehicles = "Não possui veículos com financiamento ativo", + financeBreakdown = "Detalhes do Financiamento", + initialPayment = "Pagamento Inicial", + payments = "Parcelas", + length = "Duração", + interest = "Juros", + totalPayable = "Total a Pagar", + leaveShowroom = "Sair da Exibição", + handling = "Manuseio", + topSpeed = "Velocidade Máxima", + power = "Potência", + torque = "Torque", + brake = "Freio", + financing = "Financiamento", + financingAvailable = "Financiamento disponível", + paymentsOf = "parcelas de", + clear = "Limpar", + testDrive = "Test Drive", + allCategories = "Todas as Categorias", + sortByName = "Ordenar por: Nome", + sortByAvailability = "Ordenar por: Disponibilidade", + sortByCheapest = "Ordenar por: Mais Barato", + sortByMostExpensive = "Ordenar por: Mais Caro", + sortByNewest = "Ordenar por: Mais Recente", + purchaseVehicle = "Comprar Veículo", + purchaseFor = "Comprar para", + selectSociety = "Selecionar uma sociedade", + financeOverPayments = "Financiar em %{value} parcelas", + payToday = "Pagar hoje", + financeThen = "Depois", + seeFullBreakdown = "Ver detalhes completos", + testDriveExit = "Pode sair do veículo a qualquer momento para encerrar o teste drive.", + + -- NOTIFICATIONS + purchaseSuccess = "Parabéns pela sua compra!", + depositSuccess = "Depósito realizado com sucesso", + withdrawSuccess = "Retirada realizada com sucesso", + errorNotEnoughMoney = "Você não tem dinheiro suficiente", + errorVehicleOutOfStock = "Este veículo está sem estoque", + errorCannotAffordVehicle = "Você não pode pagar por este veículo", + vehicleFinancePaymentMade = "Pagamento do financiamento realizado para o seu veículo %{value}", + vehicleFinancePaidOff = "Parabéns, você quitou e agora é dono do seu veículo %{value}", + vehicleFinancePaymentFailed = "Falha no pagamento do financiamento para o seu veículo %{value}", + vehicleFinanceRepossessedSoon = "Precisa fazer um pagamento para o teu veículo %{value} ou ele será retomado em breve", + vehicleFinanceRepossessed = "Devido à falta de pagamento, o teu veículo foi retomado com a placa %{value}", + dealershipNotEnoughFunds = "A concessionária não tem fundos suficientes", + dealershipVehiclesOrdered = "Veículo(s) foram pedidos com sucesso", + dealershipOrderCancelled = "Pedido cancelado com sucesso", + errorVehicleWithSpawnCodeExists = "Já existe um veículo com este código de spawn", + errorExitVehicle = "Precisa sair do veículo primeiro", + + -- NEW v1.1 + purchaseRequest = "Pedido de compra", + sendRequest = "Enviar pedido", + dealer = "Comerciante", + financed = "Financiado", + signHere = "Assinar aqui", + signFirstError = "Por favor, assine primeiro", + denyRequest = "Recusar pedido", + playerTooManyFinancedVehicles = "O jogador tem demasiados veículos financiados", + employeePermissionsError = "Não tem as permissões necessárias para os empregados", + managerRole = "Diretor", + supervisorRole = "Supervisor", + salesRole = "Vendas", + ownerRole = "Proprietário", + employmentRequest = "Pedido de emprego", + accept = "Aceitar", + jobOfferDescription = "Ofereceram-lhe um emprego no concessionário \"%{value}\". Gostarias de aceitar?", + pending = "Pendente", + employeeHiredMsg = "O pedido de aluguer do concessionário foi aceite!", + employeeRejectedMsg = "O pedido de aluguer do concessionário foi rejeitado", + sellVehicle = "Vender veículo", + vehicleTerms = "Condições do veículo", + financePayments = "Pagamentos financeiros", + commission = "Comissão", + role = "Papel", + firedNotification = "Foi despedido do concessionário \"%{value}\"", + dealershipTooFarAway = "Não está perto de nenhum concessionário", + restoreDisplayVehicles = "Salão de exposição Restore", + customer = "Cliente", + lessThanAMin = "Menos de um minuto", + mins = "mínimo(s)", + notInVehicle = "Não está sentado num veículo", + notYourVehicleError = "Este veículo não lhe pertence", + vehicleFinancedError = "Não pode vender este veículo porque ainda tem prestações de financiamento", + dealershipDoesntSellVehicle = "Este concessionário não pode comprar este veículo", + dealershipWantsYourVehicle = "Parabéns! Este concessionário gostaria de comprar o seu veículo.", + purchasePrice = "Preço de oferta: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/sv.lua b/resources/[carscripts]/jg-dealerships/locales/sv.lua new file mode 100644 index 000000000..d44c47ebb --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/sv.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['sv'] = { + -- UI + vehicle = "Fordon", + vehicles = "Fordon", + dealership = "Bilfirma", + dealerships = "Bilfirmor", + vehiclesCount = "Fordon", + dealersCount = "Bilfirmor", + accountBalance = "Konto Saldo", + bank = "Bankkonto", + cash = "Kontant", + amount = "Summa", + societyFund = "Företagskonto", + paymentSource = "Betalningsmetod", + purchase = "Köp", + personalPurchase = "Personligtköp", + societyPurchase = "Företagsköp", + purchaseType = "Köp typ", + deposit = "Sätt in", + withdraw = "Ta ut", + all = "Alla", + yes = "Ja", + no = "Nej", + add = "Lägg till", + edit = "Ändra", + id = "ID", + created = "Skapad", + type = "Typ", + name = "Namn", + owner = "Ägare", + bankBalance = "Banksaldo", + status = "Status", + back = "Tillbaka", + previous = "Förgående", + next = "Nästa", + admin = "Admin", + vehiclesAdmin = "Fordons Admin", + dealershipsAdmin = "Firma Admin", + search = "Sök", + noDealershipsFound = "Inga firmor hittades", + noVehicles = "Inga fordon hittades", + page = "Sida", + of = "av", + every = "varje", + show = "Visa", + active = "Aktiv", + activeFinance = "Aktiv Delbetalning", + failed = "Betalnings misslyckades", + removed = "Borttagen", + setOwner = "Sätt ägare", + manage = "Ändra", + deleteData = "Tabort Data", + deleteVehicle = "Tabort Fordon", + delete = "Tabort", + deleteConfirmation = "Är du säker?", + deleteConfirmationDanger = "Är du säker? Denna är oreversebalt.", + setDealershipOwner = "Sätt firma ägare", + overwriteDealerPrices = "Överskriv firma priser", + nearbyPlayers = "Närliggande spelare", + noPlayersNearby = "Inga spelare i närheten", + selectPlayer = "Välj spelare", + required = "Obligatorisk", + forExample = "För exempel", + spawnCode = "Spawnnamn", + brand = "Märke", + model = "Modell", + category = "Kategori", + price = "Pris", + import = "Import", + importing = "Importerar", + importBehaviour = "Importera behaviour", + importVehicles = "Importera Fordon", + importFrom = "Importera från", + dashboard = "Översikt", + displayVehicle = "Uppvisa Fordon", + displayVehicles = "Uppvisade Fordon", + orders = "Beställningar", + sales = "Försäljningar", + vehiclesOnDisplay = "Uppvisade Fordon", + employees = "Anställda", + settings = "Inställningar", + switchVehicle = "Byt Fordon", + remove = "Ta bort", + noDisplayVehicles = "Inga uppvisade fordon", + selectVehicle = "Välj fordon", + colour = "Färg", + placeVehicle = "Placera Fordon", + orderVehicle = "Beställ Fordon", + cancelOrder = "Avbryt Order", + delivery = "Leverans", + delivered = "Levererad", + noOrders = "Inga beställningar hittades", + quantity = "Mängd", + totalCost = "Totala kostnad", + totalSales = "Totala försäljningar", + noSales = "Inga försäljningar hittades", + paid = "Betalad", + owed = "Delbetalad", + dealershipName = "Bilfirma Namn", + save = "Spara Ändringar", + cancel = "Avbryt", + notEnoughMoney = "Du har inte råd", + placeOrder = "Placera Beställning", + purchaseCost = "Kostnad", + salePrice = "Försäljnings Pris", + inStock = "I lager", + outOfStock = "Slut i lager", + placeVehiclePrompt = "Tryck %{value} för att placera fordon. Du kan finjustera efteråt!", + remaining = "Kvartstående", + prePurchaseRepoWarning = "Om du inte hinner betala fordonet i tid så kommer det att återtas.", + repossessionWarning = "Din senaste betalning misslyckades - Ditt fordon kommer att återhämtas om du inte gör en betalning nu.", + recurringPayment = "Återkommande Betalning", + remainingBalance = "Kvarstående Balans", + remainingPayments = "Kvartsående Betalningar", + paymentTakenEvery = "Betalning hämtas varje", + hours = "timmar", + seconds = "sekunder", + nextPayment = "Nästa betalning", + makePayment = "Utför betalning", + vehicleRepossessed = "Ditt fordon kommer återtas", + payInFull = "Betala av helt", + earlyPaymentConfirmation = "Är du säker på att du vill göra en förbetalning på", + financedVehicles = "Delbetalade Fordon", + noFinancedVehicles = "Du har inga delbetalde fordon", + financeBreakdown = "Finans Översikt", + initialPayment = "Första betalning", + payments = "Betalningar", + length = "Längd", + interest = "Ränta", + totalPayable = "Totals Betalbart", + leaveShowroom = "Lämna bilkatalog", + handling = "Handling", + topSpeed = "Topp Hastighet", + power = "Kraft", + torque = "Vridmoment", + brake = "Broms", + financing = "Delbetalning", + financingAvailable = "Delbetalning Tillgängligt", + paymentsOf = "betalningar på", + clear = "Rensa", + testDrive = "Testkör", + allCategories = "Alla Kategorier", + sortByName = "Sortera: Namn", + sortByAvailability = "Sortera: Lager", + sortByCheapest = "Sortera: Billigast", + sortByMostExpensive = "Sortera: Dyrast", + sortByNewest = "Sortera: Nyast", + purchaseVehicle = "Köp Fordon", + purchaseFor = "Köp för", + selectSociety = "Välj företag", + financeOverPayments = "Delbetala över %{value} betalningar", + payToday = "Betala idag", + financeThen = "Sedan", + seeFullBreakdown = "Se hela översikten", + testDriveExit = "Du kan kliva ut ur fordonet när som för att avbryta testkörningen", + + -- NOTIFICATIONS + purchaseSuccess = "Grattis på ditt fordon!", + depositSuccess = "Instättning lyckades", + withdrawSuccess = "Uttag lyckades", + errorNotEnoughMoney = "Du har inte råd", + errorVehicleOutOfStock = "Detta fordon är slut i lager", + errorCannotAffordVehicle = "Du har inte råd med detta fordon", + vehicleFinancePaymentMade = "Betalning gjordes för ditt fordon %{value}", + vehicleFinancePaidOff = "Grattis, du har betalat av och äger nu %{value}", + vehicleFinancePaymentFailed = "Delbetalning misslyckades för %{value}", + vehicleFinanceRepossessedSoon = "Du måste göra en betalning för %{value} annars kommer ditt fordon återtas inom kort", + vehicleFinanceRepossessed = "Pågrund av en misslyckad betalning, så har ditt fordon med regplåt %{value} återhämtats.", + dealershipNotEnoughFunds = "Firman har inte råd", + dealershipVehiclesOrdered = "Fordon(en) har beställts", + dealershipOrderCancelled = "Beställning avbröts", + errorVehicleWithSpawnCodeExists = "Ett fordon med detta spawnnamn finns redan", + errorExitVehicle = "Du måste lämna ditt fordon först", + + -- NEW v1.1 + purchaseRequest = "Betalnings förfrågan", + sendRequest = "Skicka förfrågan", + dealer = "Bilfirma", + financed = "Delbetalad", + signHere = "Singnera här", + signFirstError = "Vänligen signera först", + denyRequest = "Neka Förfrågan", + playerTooManyFinancedVehicles = "Spelaren har för många delbetalade fordon", + employeePermissionsError = "Du har inte rätt behörigheter för att utföra detta", + managerRole = "Chef", + supervisorRole = "Handledare", + salesRole = "Försäljare", + ownerRole = "Ägare", + employmentRequest = "Anställnings Förfrågan", + accept = "Acceptera", + jobOfferDescription = "Du har blivit erbjuden ett jobb på \"%{value}\". Vill du godkänna detta jobb?", + pending = "Väntar", + employeeHiredMsg = "Anställnings förfrågan accepterades!", + employeeRejectedMsg = "Anställnings förfrågan nekades", + sellVehicle = "Sälj Fordon", + vehicleTerms = "Fordons vilkor", + financePayments = "Mängd Delbetalningar", + commission = "Provision", + role = "Roll", + firedNotification = "Du har blivit avskedad från \"%{value}\"", + dealershipTooFarAway = "Du är inte i närheten av en bilfirma", + restoreDisplayVehicles = "Återställ Uppvisade Fordon", + customer = "Kund", + lessThanAMin = "Mindre än en minut", + mins = "minut(er)", + notInVehicle = "Du sitter inte i ett fordon", + notYourVehicleError = "Detta fordon tillhör inte dig", + vehicleFinancedError = "Du kan inte sälja detta fordon för det är inte avbetalat än", + dealershipDoesntSellVehicle = "Bilfirman kan inte köpa detta fordon", + dealershipWantsYourVehicle = "Grattis! Bilfirman hade velat köpa ditt fordon!.", + purchasePrice = "Erbjudet pris: ", + + spawnCodeInvalid = "Spawnnamn Ogiltigt", + salesRep = "Försäljare", + directSaleAccepted = "Försäljningen accepterades, du har fått din provision!", + directSaleRejected = "Försäljningen misslyckades" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/tr.lua b/resources/[carscripts]/jg-dealerships/locales/tr.lua new file mode 100644 index 000000000..1c676a2e7 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/tr.lua @@ -0,0 +1,219 @@ +Locales = Locales or {} + +Locales['tr'] = { + -- UI + vehicle = "Araç", + vehicles = "Araçlar", + dealership = "Galeri", + dealerships = "Galeriler", + vehiclesCount = "Araçlar", + dealersCount = "Galeriler", + accountBalance = "Hesap Bakiyesi", + bank = "Banka", + cash = "Nakit", + amount = "Miktar", + societyFund = "Toplum Fonu", + paymentSource = "Ödeme Türü", + purchase = "Satın al", + personalPurchase = "Kişisel satın al", + societyPurchase = "Toplum satın al", + purchaseType = "Satın Alma Türü", + deposit = "Depozito", + withdraw = "Geri çek", + all = "Hepsi", + yes = "Evet", + no = "Hayır", + add = "Ekle", + edit = "Düzenle", + id = "ID", + created = "Oluşturuldu", + type = "Tip", + name = "İsim", + owner = "Mal sahibi", + bankBalance = "Banka hesap bakiyesi", + status = "Durum", + back = "Geri", + previous = "Önceki", + next = "Sonraki", + admin = "Yönetici", + vehiclesAdmin = "Araç Yöneticisi", + dealershipsAdmin = "Galeri Yöneticisi", + search = "Ara", + noDealershipsFound = "Galeri bulunamadı", + noVehicles = "Araç bulunamadı", + page = "Sayfa", + of = "ile ilgili", + every = "her bir", + show = "Göster", + active = "Aktif", + activeFinance = "Kredi Aktif", + failed = "Ödeme başarısız", + removed = "Kaldırıldı", + setOwner = "Sahibini Ayarla", + manage = "Ayarlar", + deleteData = "Verileri Sil", + deleteVehicle = "Aracı Sil", + delete = "Sil", + deleteConfirmation = "Emin misin?", + deleteConfirmationDanger = "Emin misin? Bu işlem geri alınamaz.", + setDealershipOwner = "Galeri Sahibini Ayarla", + overwriteDealerPrices = "Galeri fiyatlarının üzerine yaz", + nearbyPlayers = "Yakındaki oyuncular", + noPlayersNearby = "Yakınlarda oyuncu yok", + selectPlayer = "Kişi seç", + required = "Gerekli", + forExample = "Örneğin", + spawnCode = "Işınlama Kodu", + brand = "Marka", + model = "Model", + category = "Katagori", + price = "Fiyat", + import = "İçe aktar", + importing = "İthalat", + importBehaviour = "Davranışı İçe Aktar", + importVehicles = "Araçları içe aktarın", + importFrom = "için aktar", + dashboard = "Gösterge Paneli", + displayVehicle = "Araç Görüntüle", + displayVehicles = "Araç Görüntüle", + orders = "Emirler", + sales = "Satış", + vehiclesOnDisplay = "Sergilenen araçlar", + employees = "Çalışanlar", + settings = "Ayarlar", + switchVehicle = "Araç Değiştir", + remove = "Kaldır", + noDisplayVehicles = "Gösterilen araç yok", + selectVehicle = "Araç seçin", + colour = "Renk", + placeVehicle = "Araç Yerleştir", + orderVehicle = "Araç Siparişi", + cancelOrder = "Siparişi iptal et", + delivery = "Teslimat", + delivered = "Teslim edilenler", + noOrders = "Sipariş Bulunamadı", + quantity = "Miktar", + totalCost = "Toplam tutar", + totalSales = "Total sales", + noSales = "Satış bulunamadı", + paid = "Nakit Ödeme", + owed = "Kredi Çek", + dealershipName = "Galeri Adı", + save = "Değişiklikleri Kaydet", + cancel = "Vazgeç", + notEnoughMoney = "Yetersiz para", + placeOrder = "Sipariş Ver", + purchaseCost = "Satın alma maliyeti", + salePrice = "Satış ücreti", + inStock = "Stokta var", + outOfStock = "Stoklar tükendi", + placeVehiclePrompt = "Aracı yerleştirmek için %{value} tuşuna basın. Sonrasında daha ince ayarlamalar yapabilirsiniz!", + remaining = "Geriye kalan", + prePurchaseRepoWarning = "Kredi ödemelerinizi takip edemezseniz, aracınıza el konulacaktır..", + repossessionWarning = "Son ödemeniz başarısız oldu - şimdi ödeme yapmazsanız aracınıza el konulacak.", + recurringPayment = "Yinelenen ödeme", + remainingBalance = "Kalan bakiye", + remainingPayments = "Kalan ödemeler", + paymentTakenEvery = "Ödeme alındı", + hours = "Saat", + seconds = "Saniye", + nextPayment = "Sonraki ödeme", + makePayment = "Ödeme yap", + vehicleRepossessed = "Araç geri alınacaktır", + payInFull = "Hepsini öde", + earlyPaymentConfirmation = "Erken ödeme yapmak istediğinizden emin misiniz?", + financedVehicles = "Kredili Araçlar", + noFinancedVehicles = "Aktif Krediye sahip aracınız yok", + financeBreakdown = "Kredi Dağılımı", + initialPayment = "İlk ödeme", + payments = "Ödemeler", + length = "Uzunluk", + interest = "Faiz", + totalPayable = "Toplam Ödenecek Tutar", + leaveShowroom = "Showroom'dan Ayrıl", + handling = "kullanım", + topSpeed = "En yüksek hız", + power = "Güç", + torque = "Tork", + brake = "Fren", + financing = "Finansman", + financingAvailable = "Finansman Mevcut", + paymentsOf = "ödemeleri", + clear = "Temizle", + testDrive = "Test Sürüşü", + allCategories = "Tüm Kategoriler", + sortByName = "İsme göre sırala", + sortByAvailability = "satışa göre sırala", + sortByCheapest = "En ucuza göre sırala", + sortByMostExpensive = "En pahalıya göre sırala", + sortByNewest = "Yeniye göre sırala", + purchaseVehicle = "Araç Satın Al", + purchaseFor = "için satın al", + selectSociety = "Bir topluluk seçin", + financeOverPayments = "%{value} ödeme üzerinden finansman", + payToday = "Bugün öde", + financeThen = "Daha sonra", + seeFullBreakdown = "Tam dökümü görün", + testDriveExit = "Test sürüşünü erken sonlandırmak için istediğiniz zaman aracınızdan çıkabilirsiniz..", + + -- NOTIFICATIONS + purchaseSuccess = "Satın aldığınız için teşekkürler!", + depositSuccess = "Para yatırma işlemi başarılı", + withdrawSuccess = "Para çekme başarılı", + errorNotEnoughMoney = "Yeterli paran yok", + errorVehicleOutOfStock = "Bu araç stokta yok", + errorCannotAffordVehicle = "Bu araca paranız yetmez", + vehicleFinancePaymentMade = "Aracınız için yapılan kredi ödemesi %{value}", + vehicleFinancePaidOff = "Tebrikler, parasını ödediniz ve şimdi aracınızın sahibi oldunuz %{value}", + vehicleFinancePaymentFailed = "%{value} aracınız için kredi ödemesi başarısız oldu", + vehicleFinanceRepossessedSoon = "%{value} aracınız için kredi ödemesi yapmanız gerekiyor, aksi takdirde aracınıza yakında el konulacak", + vehicleFinanceRepossessed = "Ödeme yapılmaması nedeniyle, %{value} plakalı aracınıza el konuldu.", + dealershipNotEnoughFunds = "Bayinin yeterli fonu yok", + dealershipVehiclesOrdered = "Araçlar başarıyla sipariş edildi", + dealershipOrderCancelled = "Sipariş başarıyla iptal edildi", + errorVehicleWithSpawnCodeExists = "Bu ışınlanma koduna sahip bir araç zaten var", + errorExitVehicle = "Önce aracınızdan çıkmanız gerekiyor", + + -- NEW v1.1 + purchaseRequest = "Satın Alma Talebi", + sendRequest = "İstek Gönder", + dealer = "Bayi", + financed = "Finanse Edildi", + signHere = "Burayı imzalayın", + signFirstError = "Lütfen önce imzalayın", + denyRequest = "Talebi Reddet", + playerTooManyFinancedVehicles = "Oyuncunun çok fazla finanse edilmiş aracı var", + employeePermissionsError = "Gerekli çalışan izinlerine sahip değilsiniz", + managerRole = "Müdür", + supervisorRole = "Süpervizör", + salesRole = "Satış", + ownerRole = "Sahibi", + employmentRequest = "İstihdam Talebi", + accept = "Kabul et", + jobOfferDescription = "Size \"%{değer}\" bayisinden bir iş teklifi geldi. Kabul etmek ister misiniz?", + pending = "Beklemede", + employeeHiredMsg = "Bayilik kiralama talebi kabul edildi!", + employeeRejectedMsg = "Bayilik kiralama talebi reddedildi", + sellVehicle = "Araç Satışı", + vehicleTerms = "Araç şartları", + financePayments = "Finans Ödemeleri", + commission = "Komisyon", + role = "Rol", + firedNotification = "\"%{değer}\" bayiliğinden kovuldunuz", + dealershipTooFarAway = "Hiçbir bayiye yakın değilsiniz", + restoreDisplayVehicles = "Gösteri Merkezi", + customer = "Müşteri", + lessThanAMin = "Bir dakikadan az", + mins = "dakika(lar)", + notInVehicle = "Bir aracın içinde oturmuyorsunuz", + notYourVehicleError = "Bu araç size ait değil", + vehicleFinancedError = "Bu aracı satamazsınız çünkü kalan finansman ödemeleri var", + dealershipDoesntSellVehicle = "Bu bayi bu aracı satın alamaz", + dealershipWantsYourVehicle = "Tebrikler! Bu bayi aracınızı satın almak istiyor.", + purchasePrice = "Teklif edilen fiyat: ", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/locales/vi.lua b/resources/[carscripts]/jg-dealerships/locales/vi.lua new file mode 100644 index 000000000..c0dc95ab6 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/locales/vi.lua @@ -0,0 +1,144 @@ +Locales = Locales or {} + +Locales['vi'] = { + yes = "Có", + no = "Không", + garage = "Bãi đậu xe", + jobGarage = "Bãi đậu xe công việc", + gangGarage = "Gang Garage", + player = "Người chơi", + impound = "Bị giam", + inGarage = "Trong gara", + notInGarage = "Bên ngoài", + car = "Xe", + air = "Máy bay", + sea = "Thuyền", + fuel = "Xăng", + engine = "Động cơ", + body = "Thân vỏ", + day = "ngày", + days = "ngày", + hour = "giờ", + hours = "giờ", + + -- User Interface + noVehicles = "Không có xe nào trong gara này", + vehicles = "Xe", + vehiclePlate = "Biển số xe", + vehicleNotInGarage = "Xe không ở trong gara", + vehicleTakeOut = "Lấy xe", + vehicleReturnAndTakeOut = "Thanh toán và lấy xe", + vehicleReturnToOwnersGarage = "Gửi về garage", + transferToGarageOrPlayer = "Chuyển xe về garage hoặc người chơi khác", + transferToGarage = "Chuyển xe đến Garage", + transferToPlayer = "Chuyển xe đến người chơi", + vehicleTransfer = "Chuyển xe", + noAvailableGarages = "Không có gara", + currentGarage = "Gara hiện tại", + noPlayersOnline = "Không có người chơi online", + createPrivateGarage = "Tạo gara cá nhân", + pgAlertHeadsUp = "Đứng lên!", + pgAlertText = "Gara sẽ được tạo ra và xe được lấy ra sẽ xuất hiện ngay vị trí mà bạn đang đứng.", + garageName = "Tên Gara", + impoundInformation = "Thông tin giam xe", + impoundedBy = "Giam bởi", + impoundedReason = "Lý do", + impoundPlayerCanCollect = "Bạn có thể lấy xe của mình từ bãi giam xe.", + impoundCollectionContact = "Vui lòng liên hệ %{value} hoặc Police để chuộc lại xe của bạn.", + impoundNoVehicles = "Bạn không có Xe nào bị giam giữ", + impoundAvailable = "Được phép lấy vào lúc ", + impoundRetrievableByOwner = "Chủ xe có thể tự lấy xe ra", + impoundNoReason = "Lý do trống", + impoundVehicle = "Tạm giữ xe", + impoundReasonField = "Lý do", + impoundTime = "Thời gian giam", + impoundAvailableImmediately = "Không có", + impoundCost = "Giá", + changeVehiclePlate = "Đổi biển số xe", + newPlate = "Biển số mới", + search = "Tìm kiếm theo tên hoặc biển số xe", + + --NEW-- + noPrivateGarages = "Không có nhà để xe riêng", + editPrivateGarage = "Chỉnh sửa nhà để xe riêng", + owners = "Chủ sở hữu", + location = "Vị trí", + next = "Kế tiếp", + previous = "Trở về", + page = "Trang", + of = "của", + show = "Hiển thị", + save = "Lưu", + edit = "Sửa", + delete = "Xoá", + garageDeleteConfirm = "Bạn có chắc chắn muốn xóa gara này không?", + privGarageSearch = "Tìm bằng tên", + garageUpdatedSuccess = "Garage đã cập nhật thành công!", + getCurrentCoords = "Lấy toạ độ", + identifier = "CMND", + name = "Tên", + noPlayers = "Không có người chơi nào được thêm vào", + addPlayer = "Thêm người chơi", + loadingVehicle = "Đang tải dữ liệu xe...", + + -- Notifications + insertVehicleTypeError = "Bạn chỉ có thể để %{value} vào trong gara này!", + insertVehiclePublicError = "Bạn không thể cất xe tổ chức vào trong gara công cộng!", + vehicleParkedSuccess = "Cất xe vào gara thành công", + vehicleNotOwnedError = "Bạn không phải là chủ sở hữu của chiếc xe này!", + vehicleNotOwnedByPlayerError = "Xe này không thuộc sở hữu của người chơi nào!", + notEnoughMoneyError = "Bạn không đủ tiền trong ngân hàng!", + vehicleNotYoursError = "Xe này không thuộc về bạn!", + notJobOrGangVehicle = "Đây không phải là xe của %{value}", + invalidGangError = "Tên gang không hợp lệ!", + invalidJobError = "Tên job không hợp lệ!", + notInsideVehicleError = "Bạn không ngồi trên xe", + vehicleAddedToGangGarageSuccess = "Xe này đã được thêm vào %{value}!", + vehicleAddedToJobGarageSuccess = "Xe này đã được thêm vào %{value}!", + moveCloserToVehicleError = "Bạn cần di chuyển đến gần xe hơn!", + noVehiclesNearbyError = "Không có chiếc xe nào gần bạn!", + commandPermissionsError = "Bạn không thể sử dụng lệnh này!", + actionNotAllowedError = "Bạn không được phép làm điều này!", + garageNameExistsError = "Tên gara này đã tồn tại!", + vehiclePlateExistsError = "Biển số xe này đã tồn tại", + playerNotOnlineError = "Người chơi này không online", + vehicleTransferSuccess = "Xe được chuyển đến %{value}", + vehicleTransferSuccessGeneral = "Xe của bạn đã được chuyển thành công!", + vehicleReceived = "Bạn đã nhận được một chiếc xe với biển số %{value}", + vehicleImpoundSuccess = "Tạm giữ xe thành công!", + vehicleImpoundRemoveSuccess = "Xe đã được chuộc thành công", + vehicleImpoundReturnedToOwnerSuccess = "Xe này đã được chuyển về gara chủ sở hữu", + garageCreatedSuccess = "Tạo gara thành công!", + vehiclePlateUpdateSuccess = "Biển số xe được đổi thành: %{value}", + vehicleDeletedSuccess = "Xe này đã được xoá khỏi database %{value}", + playerIsDead = "Bạn không thể làm điều này trong khi bạn đã chết", + + -- Commands + cmdSetGangVehicle = "Thêm Xe hiện tại vào một Gang", + cmdRemoveGangVehicle = "Đặt xe gang thành xe cá nhân", + cmdSetJobVehicle = "Thêm xe hiện tại vào một nghề nào đó", + cmdRemoveJobVehicle = "Đặt xe nghề thành xe cá nhân", + cmdArgGangName = "Tên Gang", + cmdArgJobName = "Tên Job", + cmgArgMinGangRank = "Rank tối thiểu", + cmgArgMinJobRank = "Rank tối thiểu", + cmdArgPlayerId = "ID của chủ sở hữu mới", + cmdImpoundVehicle = "Giam xe", + cmdChangePlate = "Đổi biển số (Admin only)", + cmdDeleteVeh = "Xoá xe khỏi dữ liệu máy chủ VĨNH VIỄN (Admin only)", + cmdCreatePrivGarage = "Tạo garage riêng cho người chơi", + + vehicleSetup = "Cài đặt phương tiện", + extras = "Extras", + extra = "Extra", + liveries = "Liveries", + livery = "Livery", + noLiveries = "Không có liveries này", + noExtras = "Không có extras này", + none = "Không có", + + spawnCodeInvalid = "Spawn code invalid", + salesRep = "Sales Rep", + directSaleAccepted = "Direct sale request accepted! Your commission has been paid.", + directSaleRejected = "Direct sale request rejected" +} diff --git a/resources/[carscripts]/jg-dealerships/server/sv-admin.lua b/resources/[carscripts]/jg-dealerships/server/sv-admin.lua new file mode 100644 index 0000000000000000000000000000000000000000..9c50a23b0fe1e1d6f4ced9a55a1584085a7f5803 GIT binary patch literal 10552 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 GMOo~FX`wFw literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-direct-sales.lua b/resources/[carscripts]/jg-dealerships/server/sv-direct-sales.lua new file mode 100644 index 0000000000000000000000000000000000000000..1756908ee588fa6256a274bb46d32e4e3415819a GIT binary patch literal 4344 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 literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-display-vehicles.lua b/resources/[carscripts]/jg-dealerships/server/sv-display-vehicles.lua new file mode 100644 index 0000000000000000000000000000000000000000..51fe902b13674a0fcc5a48256de0188ac604f905 GIT binary patch literal 1951 zcmV;Q2VnR{SV2$$000000CSU8PiUBshxj)*^8nq*uUJnDRVrOWpg42RNeuf$ceC8$ z5b7r2S4G`!Xh%3X=+^)RvHrnpQo>B;x}g9C2K3J)(Mt zINt_k2wBTey!Y`GWr05C#wf@xvkE>pA55+Vm3^L5uD&y}6UVr0+E>9&<wY$xsf3 ztrG5-HoBVE<45kr4iStGd2Pr(e~Sq2to*xi#|FQe%sm+{#68~bHVMj$8%UeYm!2|E zZ;T&8@(G?44F(rZyaN!t>w@oheW(XTJjz^gD?mS3u+e&(4pWECURX1z7J-wepp-ys z8#%Lzcd&_0%M)mK#HFaj#&m@cOQ)fdSSqH*I&B{YrmMpz@W1*8vQhJs9^@{AoVvT*3qoFXpf^`w}YF zPVJl|ao{i^Bd<`?&f4dq+&cZl#-ts1nebNc8-&Fu5u(JPo(IwVIv;ZqR_`fgB1>efVM!q?# zEd~aKPE0dJNlt(7jWa8+Ar~rXmQ{DWe7H2%wfpceS?k1i5WK2WbgobU=HKCv)q^-% zuz!l)QwZ=*z`cZxH>Ala#rc|E40S8SOQpqCS5XHc=e6+f>2T|9|6^!fXH^ppLm?hPqrsT+Y#0zMT9R!B2PVL&F`)u*FN;VLh_bhh? z>3JeoIw@sEGX};79omUvXYu#hH z7y58=@o8*Lnh4_OWER^L(DvWjC)mU{moEr3v+wT` zA5S?$lyf>G;5-N-zE#bMGbLi6FLn0WwUw=kL}IEm2$j!cjd?Odl#aAo0tIG7|De{L z8!yrwP7iP!yN%?bYR%8 z(29FX7PHsrQry{%2!M>(x}t4=?RtS40YzE$GY8HV0VkVMc9*}LB4rpJJb=T~0!{NM znqw(_i!Inr2T;C{T}_u!TXjIuK@d6_X6q4eeYgP5K?Yn}Q|?%Ktutzk>((&W+2(m2 zDnRneSGnD`(^wWe`0J29^w}twhBLm9JHKlzjbjx*+nn)2^TP7W`3A$OFmv;3MpzFM z{9>H9$DMh1t$h7lnxLYpRL=`JN^>v`$AoZdJpkhni`#v=63>Z8;>PvAjd~XIjLBNr zOabS3P*^hvSn=DZv{hct&6Cl8R1U7e?!r0E1C;thZ{YZ?UWzDpR`nE|j4~xk3ZP17 zGC1)JNN9W6P-}8(8L+3^LO{DTX{4QXLJzzOv+@9$H~4FK*?EsO;f~*tCB+q11o!(h z$t9!)3*T&;Z2)YduhZcHNe znc|BaHs#cwz>!XZYCMgA${)LOM0#6465h^HmGAzKA)%9d%h^3GscI=P8y|149oJlP zkoNv5wAQ0SHANK~HkgKomyMzaUTJAMzTw)b8wm*2N6V##kIK#Rg7>03wQyB?M zYHq?ZZJgXj%-|tE_mDjgmj6GVQwuFOj9dWCa}gAB$W2V!AF`LW(U3W5s-(@{4h zjS)S@HUy_@g;9lSY5)bMAo7A{~ljGLu)_ za_a{>w7Xv=gzVE0BQV>)A#pVmYf{FatI9(|uxC{8PvIKzy3_YL1cTo}m(W#4Wi+3v lf5o#Cma8`qKZ40x3J~Bmx>(aI& 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 C$EnZ& literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-finance.lua b/resources/[carscripts]/jg-dealerships/server/sv-finance.lua new file mode 100644 index 0000000000000000000000000000000000000000..82188882298c0e8cd0f8953c7219379f887fca5a GIT binary patch literal 7238 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 U8%8_-Kx;pySe|F_nEg{YC9R|XEC2ui literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-initsql.lua b/resources/[carscripts]/jg-dealerships/server/sv-initsql.lua new file mode 100644 index 0000000000000000000000000000000000000000..b1a220b66553d5aad0795c51d129eb28df716ff6 GIT binary patch literal 1212 zcmV;t1Vj5qSV2$$000000M8G=8>@y>j4-3fn>xB2s}Mm!YkSL=ixPVi+iKd2$cQ`T zD^hH0;?P3%Ly#qC?SAF(lsbA`idPBOz({G10r@<$C_iv{BdCZj^F#9iu3F5iC zf;ht4b2Yvio@O*&y1fShTw0f(ieNoPR4$Fw4r5v6a{$5?Qt~&Rn1XcAv+4;od{B@j zjl%lgIU!GjBBx^4#)~2*VRvmC@6DvfhSlEA)$yI~dPfb)S+X6JP`+mZyvA|lGLqYb zbUE0!j_xdx#2tIsgg{}lPAP@%7DFdY!~QYeBV2XlC+utaR(AL!$#&Cqgr>x6DDth? z?*Iaq4~-l68~4Wk12!hy_Uzf@J8)wLzEhYv)T~?onThFjHNkTfNqg1Vnf2D09l|E3 zduYTn<}XBmt=o881cy%Voiig)bKe874Y~44?A?g;A~qJtfrpi3OKC1c{I+yZ91`VG zE!)W3M9)_Kb6uS>uXSMG2=X18FE>uaX50<>$2hlar%274TO7{a_wVjlhE0{d&Hbvv z?lVp*_?IV!E)>^Mmu&VsrQ!E}$8;Fvo{Z*@u_Z?Ntifqj3)AfDpm;BXroUdPkA{77{ z0>Vq>8!TikfnH#}|D^T%UzLg;jr4XWYD`ES;3cvp_U-CNz`I)W=LgaNv;NV>=M%$UtC athM=1{WBa5%!PB_%UQ@Q?gq;0+~ZS@7;6*& literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-locations.lua b/resources/[carscripts]/jg-dealerships/server/sv-locations.lua new file mode 100644 index 0000000000000000000000000000000000000000..416ef942ec2f37c259a8d44c13cf83d0fe7791c5 GIT binary patch literal 1041 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 literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-management.lua b/resources/[carscripts]/jg-dealerships/server/sv-management.lua new file mode 100644 index 0000000000000000000000000000000000000000..2867096b8eea435b0d358f303ae41b92c3456208 GIT binary patch literal 12279 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 RcTQQx{%ulA%;2da0gEXowlV+! literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-purchase.lua b/resources/[carscripts]/jg-dealerships/server/sv-purchase.lua new file mode 100644 index 000000000..9eb69b5f1 --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/server/sv-purchase.lua @@ -0,0 +1,182 @@ +---@param dealershipId string +---@param coords vector4 +---@param purchaseType "personal"|"society" +---@param society string +---@param societyType "job"|"gang" +---@param model string +---@param colour string +---@param paymentMethod "bank"|"cash" +---@param financed boolean +---@param directSaleUuid? string +---@return boolean, integer?, integer?, string?, number? +local function purchaseVehicle(src, dealershipId, coords, purchaseType, society, societyType, model, colour, paymentMethod, financed, directSaleUuid) + local dealership = Config.DealershipLocations[dealershipId] + local pendingSale, sellerPlayer, sellerPlayerName = nil, nil, nil + + -- If directSaleUuid was provided, fetch info + if directSaleUuid then + pendingSale = PendingDirectSales[directSaleUuid] + if not pendingSale then return false end + + -- Is the intended recipient accepting? + if src ~= pendingSale.playerId then return false end + + if pendingSale.dealerPlayerId then + sellerPlayer = Framework.Server.GetPlayerIdentifier(pendingSale.dealerPlayerId) + sellerPlayerName = Framework.Server.GetPlayerInfo(pendingSale.dealerPlayerId) + sellerPlayerName = sellerPlayerName and sellerPlayerName.name or nil + end + + financed = pendingSale.finance -- In case this was somehow changed by in transit by manually firing the purchase-vehicle event + end + + -- Financed but the dealership location doesn't allow that? + if not dealership.enableFinance and financed then return false end + + -- Check if valid payment method + local isValidPaymentMethod = lib.table.contains(dealership.paymentOptions or {"cash", "bank"}, paymentMethod) + if not isValidPaymentMethod and paymentMethod ~= "societyFund" then + Framework.Server.Notify(src, "INVALID_PAYMENT_METHOD", "error") + DebugPrint(("%s attempted to purchase a vehicle with an invalid payment method: %s"):format(tostring(src), paymentMethod), "warning") + return false + end + + local plate = Framework.Server.VehicleGeneratePlate(Config.PlateFormat, true) + if not plate then + Framework.Server.Notify(src, "COULD_NOT_GENERATE_PLATE", "error") + return false + end + + -- Get vehicle data + local vehicleData = MySQL.single.await("SELECT * FROM dealership_stock WHERE vehicle = ? AND dealership = ?", {model, dealershipId}) + if not vehicleData then + DebugPrint("Vehicle not found in dealership(" .. dealershipId .. ") stock: " .. model, "warning") + return false + end + + -- Check stock level + local vehicleStock = vehicleData.stock + if dealership.type == "owned" and vehicleStock < 1 then + Framework.Server.Notify(src, Locale.errorVehicleOutOfStock, "error") + return false + end + + local player = Framework.Server.GetPlayerIdentifier(src) + local financeData = nil + local amountToPay = Round(vehicleData.price) + local accountBalance = Framework.Server.GetPlayerBalance(src, paymentMethod) + local paymentType, paid, owed = "full", amountToPay, 0 + local downPayment, noOfPayments = Config.FinanceDownPayment, Config.FinancePayments + + if purchaseType == "society" and paymentMethod == "societyFund" then + accountBalance = Framework.Server.GetSocietyBalance(society, societyType) + end + + if financed and purchaseType == "personal" then + amountToPay = Round(vehicleData.price * (1 + Config.FinanceInterest) * downPayment) -- down payment + + if pendingSale then + downPayment, noOfPayments = pendingSale.downPayment, pendingSale.noOfPayments + amountToPay = Round(vehicleData.price * (1 + Config.FinanceInterest) * downPayment) + end + + financeData = { + total = Round(vehicleData.price * (1 + Config.FinanceInterest)), + paid = amountToPay, + recurring_payment = Round((vehicleData.price * (1 + Config.FinanceInterest) * (1 - downPayment)) / noOfPayments), + payments_complete = 0, + total_payments = noOfPayments, + payment_interval = Config.FinancePaymentInterval, + payment_failed = false, + seconds_to_next_payment = Config.FinancePaymentInterval * 3600, + seconds_to_repo = 0, + dealership_id = dealershipId, + vehicle = model + } + + local vehiclesOnFinance = MySQL.scalar.await("SELECT COUNT(*) as total FROM " .. Framework.VehiclesTable .. " WHERE financed = 1 AND " .. Framework.PlayerId .. " = ?", {player}) + + if vehiclesOnFinance >= (Config.MaxFinancedVehiclesPerPlayer or 999999) then + Framework.Server.Notify(src, "TOO_MANY_FINANCED_VEHICLES", "error") + return false + end + + paymentType = "finance" + owed = financeData.total - financeData.paid + end + + if amountToPay > accountBalance then + Framework.Server.Notify(src, Locale.errorCannotAffordVehicle, "error") + return false + end + + -- Pre check func in config-sv.lua + if not PurchaseVehiclePreCheck(src, dealershipId, plate, model, purchaseType, amountToPay, paymentMethod, society, societyType, financed, noOfPayments, downPayment, (not not directSaleUuid), pendingSale?.dealerPlayerId) then + DebugPrint(("PurchaseVehiclePreCheck failed for player %s"):format(tostring(src)), "debug") + return false + end + + -- Remove money + if purchaseType == "society" and paymentMethod == "societyFund" then + Framework.Server.RemoveFromSocietyFund(society, societyType, amountToPay) + else + Framework.Server.PlayerRemoveMoney(src, amountToPay, paymentMethod) + end + + if dealership.type == "owned" then + MySQL.update.await("UPDATE dealership_stock SET stock = stock - 1 WHERE vehicle = ? AND dealership = ?", {model, dealershipId}) + MySQL.update.await("UPDATE dealership_data SET balance = balance + ? WHERE name = ?", {amountToPay, dealershipId}) + UpdateDealershipShowroomCache(dealershipId) + end + + MySQL.insert.await("INSERT INTO dealership_sales (dealership, vehicle, plate, player, seller, purchase_type, paid, owed) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", {dealershipId, model, plate, player, sellerPlayer, paymentType, paid, owed}) + + -- Save vehicle to garage + local vehicleId = Framework.Server.SaveVehicleToGarage(src, purchaseType, society, societyType, model, plate, financed, financeData) + + -- Spawn vehicle on server (if configured) + local netId = nil + + if Config.SpawnVehiclesWithServerSetter then + local warp = not Config.DoNotSpawnInsideVehicle + local properties = { + plate = plate, + colour = colour + } + + netId = SpawnVehicleServer(src, vehicleId or 0, model, plate, coords, warp, properties, "purchase") + if not netId or netId == 0 then + Framework.Server.Notify(src, "Could not spawn vehicle with Config.SpawnVehiclesWithServerSetter", "error") + DebugPrint("Could not spawn vehicle with Config.SpawnVehiclesWithServerSetter", "warning") + return false + end + end + + -- Send webhook + SendWebhook(src, Webhooks.Purchase, "New Vehicle Purchase", "success", { + { key = "Vehicle", value = model }, + { key = "Plate", value = plate }, + { key = "Financed", value = financed and "Yes" or "No" }, + { key = "Amount Paid", value = amountToPay }, + { key = "Payment method", value = paymentMethod }, + { key = "Dealership", value = dealershipId }, + { key = "Seller Name", value = sellerPlayerName or "-" } + }) + + Framework.Server.Notify(src, Locale.purchaseSuccess, "success") + + return true, netId, vehicleId, plate, amountToPay +end + +lib.callback.register("jg-dealerships:server:purchase-vehicle", function(...) + return purchaseVehicle(...) +end) + +RegisterNetEvent("jg-dealerships:server:update-purchased-vehicle-props", function(purchaseType, society, plate, props) + local src = source + local identifier = purchaseType == "society" and society or Framework.Server.GetPlayerIdentifier(src) + + MySQL.update.await("UPDATE " .. Framework.VehiclesTable .. " SET " .. Framework.VehProps .. " = ? WHERE plate = ? AND " .. Framework.PlayerId .. " = ?", { + json.encode(props), plate, identifier + }) +end) \ No newline at end of file diff --git a/resources/[carscripts]/jg-dealerships/server/sv-sell-vehicle.lua b/resources/[carscripts]/jg-dealerships/server/sv-sell-vehicle.lua new file mode 100644 index 0000000000000000000000000000000000000000..0d887d6785818a8fad9df00312a877d804e70f68 GIT binary patch literal 3712 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 axme?pY#UtmTQie1!{4V7a7Fvc3T$%(-s7(T literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-test-drive.lua b/resources/[carscripts]/jg-dealerships/server/sv-test-drive.lua new file mode 100644 index 0000000000000000000000000000000000000000..57500ea42892c1555b59aadc4ec417837327ada2 GIT binary patch literal 2414 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 literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/server/sv-version-check.lua b/resources/[carscripts]/jg-dealerships/server/sv-version-check.lua new file mode 100644 index 0000000000000000000000000000000000000000..6d6a17c366b6cc160e2d91459917ce49918ad902 GIT binary patch literal 1909 zcmV-*2a5PcSV2$$000000D%s_u(LDdb zqU2uU#h}mG<%shtV3CbIC=rW_{XyD&`Vz&U4?hhP{9QFueca#kku@ML%tPa&&G zJAJK|%f92Ucc;6&rWl5Rrp5V$72N9SHmu_OX~UX-SE_uBekgWNv%o5%C+zmKLw`NN zt!h@GJk1kdv$Pl^zDv&ec~gd|4PWG2t9n}YpXww&-A8XYn+A>^HCqIHin@eiEbw{? zd@#)99UVK4mxFr|dg;S289jN?Q;ZHn=71$mbn7bDph9eqmOT{y>WHJ=;O}`y%}k}K zcDW{)e6ZX<;}0@GE4f+Or1R;9%k3h$-YXe8pT~J`j~+&Pt2P{jy4;`N5fB6Fa9mm| zWkxG>#(bP7a#O1Q*{L6FFk=yCyRJz#pFnc!fKUkKuNDSiK0b64xtHLLT`J=cv6?RQ z0ap$9ky-Y|YgOQRT%;uvt$d97%JYHo@x$|SfrjKXF?ZN`p>k(Jr7y6!*eKy3T!5gB z7s=_jKKEDlXS7#`WCBa|GiQKXGdsG^T~X5{MPif>R$X3$V^RIZ$o1lXE=7e+`;agX>%JJDQ34=NHw7u(erffV+mw2G;*y-(e&y>6UPBU2{wq4Dw= zJ)&wJUY}V+1J7div2-k9*FbaW&0`x7rhK3S221%qu!_PSPir@AwYwHpzsvSJ(~Cq_ z29aW*3gi4zAT2&2Ik=*vbDm6w+%u%|X?1PSWF3?(Z?-{q(MaP$1)rvkxP0|sOa|!q z3ewqQHLb+Ai1rL2unWRg&@TM<80RC$Dqum2X@0i{G$)PKZoJcGZoLdqYKK+4xQ`d~ug!UfOEnGy^Pq0Y-F@r-`|q`*0q@(-k=N!#?m;-= zgrz!4BeLB*t=S#NJlG6ex2G^IEE1z-3+04EbW*>n*!K>C8no=0^D}4&K!F(c85Q45 zZzriqX{5U6f+X8no!wK9-{R8+qW)XTD^VZV7X=2ML118Tv#;^6_r0DA@)`v4D+8<> zRPX0*h8Jx;YQ>~J6_vkLTCMcXPeOPi#G{Z~>y-pqT;jcWdomfdgeWKJ14!>WeNJx zsCQjH9bQ68^O7P@`XxukyPE;X=S0VO~!ykPBD9)zySemrhz4u6yhI2OU~g}*PL zc3ZGR4C74f4^GJ}@F}dEy20|oI!yy?v%GcADD4l9V%CO?zsVeUdKlxBt5bFWsveB(4*hOW#_8mIuUFHuu$=3$SF*oZ_Fb;V!x%o+z3o zSuzkv#SoZ2+8+k&9ha~m3vAlq-B%u8zDhl!CIj?^lgs|ZaNAC&MJ7s18>ct>XhhWO zbq{Vav?*xk=2(Gb;bQ&Jry@9OhL+CbuQR|kvWiD@Lp1oRk8XWjiE^Hii%Xm>j)mHXYBwEtOa zRw%XS?X6e)N;PCZeKlsFy9@~DNx}|ZJAbizDSeM3JOe^qIcLYD3-dY)cE!Y()=>(t||e((t={exports:{}}).exports,t),t.exports);var EL=Hb((pn,hn)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var jf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function fi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Wb(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var Mg={exports:{}},pu={},$g={exports:{}},je={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vs=Symbol.for("react.element"),Ub=Symbol.for("react.portal"),Gb=Symbol.for("react.fragment"),qb=Symbol.for("react.strict_mode"),Kb=Symbol.for("react.profiler"),Zb=Symbol.for("react.provider"),Yb=Symbol.for("react.context"),Qb=Symbol.for("react.forward_ref"),Xb=Symbol.for("react.suspense"),Jb=Symbol.for("react.memo"),eE=Symbol.for("react.lazy"),Dm=Symbol.iterator;function tE(e){return e===null||typeof e!="object"?null:(e=Dm&&e[Dm]||e["@@iterator"],typeof e=="function"?e:null)}var Ig={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Fg=Object.assign,Dg={};function qo(e,t,n){this.props=e,this.context=t,this.refs=Dg,this.updater=n||Ig}qo.prototype.isReactComponent={};qo.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};qo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ag(){}Ag.prototype=qo.prototype;function Bf(e,t,n){this.props=e,this.context=t,this.refs=Dg,this.updater=n||Ig}var zf=Bf.prototype=new Ag;zf.constructor=Bf;Fg(zf,qo.prototype);zf.isPureReactComponent=!0;var Am=Array.isArray,Lg=Object.prototype.hasOwnProperty,Vf={current:null},jg={key:!0,ref:!0,__self:!0,__source:!0};function Bg(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)Lg.call(t,r)&&!jg.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,_e=U[ke];if(0>>1;kei(ht,ne))ct<_e&&0>i(Ot,ht)?(U[ke]=Ot,U[ct]=ne,ke=ct):(U[ke]=ht,U[rt]=ne,ke=rt);else if(ct<_e&&0>i(Ot,ne))U[ke]=Ot,U[ct]=ne,ke=ct;else break e}}return re}function i(U,re){var ne=U.sortIndex-re.sortIndex;return ne!==0?ne:U.id-re.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var u=[],l=[],f=1,h=null,p=3,y=!1,C=!1,x=!1,N=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(U){for(var re=n(l);re!==null;){if(re.callback===null)r(l);else if(re.startTime<=U)r(l),re.sortIndex=re.expirationTime,t(u,re);else break;re=n(l)}}function T(U){if(x=!1,b(U),!C)if(n(u)!==null)C=!0,ge(R);else{var re=n(l);re!==null&&xe(T,re.startTime-U)}}function R(U,re){C=!1,x&&(x=!1,w(A),A=-1),y=!0;var ne=p;try{for(b(re),h=n(u);h!==null&&(!(h.expirationTime>re)||U&&!W());){var ke=h.callback;if(typeof ke=="function"){h.callback=null,p=h.priorityLevel;var _e=ke(h.expirationTime<=re);re=e.unstable_now(),typeof _e=="function"?h.callback=_e:h===n(u)&&r(u),b(re)}else r(u);h=n(u)}if(h!==null)var Je=!0;else{var rt=n(l);rt!==null&&xe(T,rt.startTime-re),Je=!1}return Je}finally{h=null,p=ne,y=!1}}var M=!1,F=null,A=-1,I=5,$=-1;function W(){return!(e.unstable_now()-$U||125ke?(U.sortIndex=ne,t(l,U),n(u)===null&&U===n(l)&&(x?(w(A),A=-1):x=!0,xe(T,ne-ke))):(U.sortIndex=_e,t(u,U),C||y||(C=!0,ge(R))),U},e.unstable_shouldYield=W,e.unstable_wrapCallback=function(U){var re=p;return function(){var ne=p;p=re;try{return U.apply(this,arguments)}finally{p=ne}}}})(Wg);Hg.exports=Wg;var fE=Hg.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ug=m,gn=fE;function q(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vd=Object.prototype.hasOwnProperty,pE=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,jm={},Bm={};function hE(e){return vd.call(Bm,e)?!0:vd.call(jm,e)?!1:pE.test(e)?Bm[e]=!0:(jm[e]=!0,!1)}function mE(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function vE(e,t,n,r){if(t===null||typeof t>"u"||mE(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function en(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var Lt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Lt[e]=new en(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Lt[t]=new en(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Lt[e]=new en(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Lt[e]=new en(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Lt[e]=new en(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Lt[e]=new en(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Lt[e]=new en(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Lt[e]=new en(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Lt[e]=new en(e,5,!1,e.toLowerCase(),null,!1,!1)});var Uf=/[\-:]([a-z])/g;function Gf(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Uf,Gf);Lt[t]=new en(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Uf,Gf);Lt[t]=new en(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Uf,Gf);Lt[t]=new en(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Lt[e]=new en(e,1,!1,e.toLowerCase(),null,!1,!1)});Lt.xlinkHref=new en("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Lt[e]=new en(e,1,!1,e.toLowerCase(),null,!0,!0)});function qf(e,t,n,r){var i=Lt.hasOwnProperty(t)?Lt[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var u=` +`+i[a].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=a&&0<=s);break}}}finally{wc=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Ta(e):""}function yE(e){switch(e.tag){case 5:return Ta(e.type);case 16:return Ta("Lazy");case 13:return Ta("Suspense");case 19:return Ta("SuspenseList");case 0:case 2:case 15:return e=Sc(e.type,!1),e;case 11:return e=Sc(e.type.render,!1),e;case 1:return e=Sc(e.type,!0),e;default:return""}}function Sd(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case po:return"Fragment";case fo:return"Portal";case yd:return"Profiler";case Kf:return"StrictMode";case gd:return"Suspense";case wd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Kg:return(e.displayName||"Context")+".Consumer";case qg:return(e._context.displayName||"Context")+".Provider";case Zf:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Yf:return t=e.displayName||null,t!==null?t:Sd(e.type)||"Memo";case Vr:t=e._payload,e=e._init;try{return Sd(e(t))}catch{}}return null}function gE(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Sd(t);case 8:return t===Kf?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function li(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Yg(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function wE(e){var t=Yg(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function zs(e){e._valueTracker||(e._valueTracker=wE(e))}function Qg(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Yg(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ml(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function xd(e,t){var n=t.checked;return pt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Vm(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=li(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Xg(e,t){t=t.checked,t!=null&&qf(e,"checked",t,!1)}function Cd(e,t){Xg(e,t);var n=li(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?bd(e,t.type,n):t.hasOwnProperty("defaultValue")&&bd(e,t.type,li(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Hm(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function bd(e,t,n){(t!=="number"||Ml(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Na=Array.isArray;function To(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Vs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Za(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var $a={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},SE=["Webkit","ms","Moz","O"];Object.keys($a).forEach(function(e){SE.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),$a[t]=$a[e]})});function n0(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||$a.hasOwnProperty(e)&&$a[e]?(""+t).trim():t+"px"}function r0(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=n0(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var xE=pt({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Td(e,t){if(t){if(xE[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(q(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(q(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(q(61))}if(t.style!=null&&typeof t.style!="object")throw Error(q(62))}}function Nd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Od=null;function Qf(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rd=null,No=null,Oo=null;function Gm(e){if(e=ws(e)){if(typeof Rd!="function")throw Error(q(280));var t=e.stateNode;t&&(t=gu(t),Rd(e.stateNode,e.type,t))}}function i0(e){No?Oo?Oo.push(e):Oo=[e]:No=e}function o0(){if(No){var e=No,t=Oo;if(Oo=No=null,Gm(e),t)for(e=0;e>>=0,e===0?32:31-(ME(e)/$E|0)|0}var Hs=64,Ws=4194304;function Oa(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Dl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=Oa(s):(o&=a,o!==0&&(r=Oa(o)))}else a=n&~i,a!==0?r=Oa(a):o!==0&&(r=Oa(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function ys(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Yn(t),e[t]=n}function AE(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Fa),tv=String.fromCharCode(32),nv=!1;function k0(e,t){switch(e){case"keyup":return dk.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function T0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ho=!1;function pk(e,t){switch(e){case"compositionend":return T0(t);case"keypress":return t.which!==32?null:(nv=!0,tv);case"textInput":return e=t.data,e===tv&&nv?null:e;default:return null}}function hk(e,t){if(ho)return e==="compositionend"||!op&&k0(e,t)?(e=b0(),vl=np=Yr=null,ho=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=av(n)}}function _0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?_0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function P0(){for(var e=window,t=Ml();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ml(e.document)}return t}function ap(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function bk(e){var t=P0(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&_0(n.ownerDocument.documentElement,n)){if(r!==null&&ap(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=sv(n,o);var a=sv(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,mo=null,Fd=null,Aa=null,Dd=!1;function lv(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dd||mo==null||mo!==Ml(r)||(r=mo,"selectionStart"in r&&ap(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Aa&&ts(Aa,r)||(Aa=r,r=jl(Fd,"onSelect"),0go||(e.current=Vd[go],Vd[go]=null,go--)}function nt(e,t){go++,Vd[go]=e.current,e.current=t}var ui={},Ut=hi(ui),on=hi(!1),ji=ui;function Io(e,t){var n=e.type.contextTypes;if(!n)return ui;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function an(e){return e=e.childContextTypes,e!=null}function zl(){st(on),st(Ut)}function mv(e,t,n){if(Ut.current!==ui)throw Error(q(168));nt(Ut,t),nt(on,n)}function B0(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(q(108,gE(e)||"Unknown",i));return pt({},n,r)}function Vl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ui,ji=Ut.current,nt(Ut,e),nt(on,on.current),!0}function vv(e,t,n){var r=e.stateNode;if(!r)throw Error(q(169));n?(e=B0(e,t,ji),r.__reactInternalMemoizedMergedChildContext=e,st(on),st(Ut),nt(Ut,e)):st(on),nt(on,n)}var yr=null,wu=!1,Ic=!1;function z0(e){yr===null?yr=[e]:yr.push(e)}function Fk(e){wu=!0,z0(e)}function mi(){if(!Ic&&yr!==null){Ic=!0;var e=0,t=Ze;try{var n=yr;for(Ze=1;e>=a,i-=a,Sr=1<<32-Yn(t)+i|n<A?(I=F,F=null):I=F.sibling;var $=p(w,F,b[A],T);if($===null){F===null&&(F=I);break}e&&F&&$.alternate===null&&t(w,F),E=o($,E,A),M===null?R=$:M.sibling=$,M=$,F=I}if(A===b.length)return n(w,F),ut&&bi(w,A),R;if(F===null){for(;AA?(I=F,F=null):I=F.sibling;var W=p(w,F,$.value,T);if(W===null){F===null&&(F=I);break}e&&F&&W.alternate===null&&t(w,F),E=o(W,E,A),M===null?R=W:M.sibling=W,M=W,F=I}if($.done)return n(w,F),ut&&bi(w,A),R;if(F===null){for(;!$.done;A++,$=b.next())$=h(w,$.value,T),$!==null&&(E=o($,E,A),M===null?R=$:M.sibling=$,M=$);return ut&&bi(w,A),R}for(F=r(w,F);!$.done;A++,$=b.next())$=y(F,w,A,$.value,T),$!==null&&(e&&$.alternate!==null&&F.delete($.key===null?A:$.key),E=o($,E,A),M===null?R=$:M.sibling=$,M=$);return e&&F.forEach(function(Z){return t(w,Z)}),ut&&bi(w,A),R}function N(w,E,b,T){if(typeof b=="object"&&b!==null&&b.type===po&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case Bs:e:{for(var R=b.key,M=E;M!==null;){if(M.key===R){if(R=b.type,R===po){if(M.tag===7){n(w,M.sibling),E=i(M,b.props.children),E.return=w,w=E;break e}}else if(M.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Vr&&bv(R)===M.type){n(w,M.sibling),E=i(M,b.props),E.ref=va(w,M,b),E.return=w,w=E;break e}n(w,M);break}else t(w,M);M=M.sibling}b.type===po?(E=$i(b.props.children,w.mode,T,b.key),E.return=w,w=E):(T=El(b.type,b.key,b.props,null,w.mode,T),T.ref=va(w,E,b),T.return=w,w=T)}return a(w);case fo:e:{for(M=b.key;E!==null;){if(E.key===M)if(E.tag===4&&E.stateNode.containerInfo===b.containerInfo&&E.stateNode.implementation===b.implementation){n(w,E.sibling),E=i(E,b.children||[]),E.return=w,w=E;break e}else{n(w,E);break}else t(w,E);E=E.sibling}E=Vc(b,w.mode,T),E.return=w,w=E}return a(w);case Vr:return M=b._init,N(w,E,M(b._payload),T)}if(Na(b))return C(w,E,b,T);if(da(b))return x(w,E,b,T);Qs(w,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,E!==null&&E.tag===6?(n(w,E.sibling),E=i(E,b),E.return=w,w=E):(n(w,E),E=zc(b,w.mode,T),E.return=w,w=E),a(w)):n(w,E)}return N}var Do=Z0(!0),Y0=Z0(!1),Ss={},ar=hi(Ss),os=hi(Ss),as=hi(Ss);function Pi(e){if(e===Ss)throw Error(q(174));return e}function mp(e,t){switch(nt(as,t),nt(os,e),nt(ar,Ss),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:kd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=kd(t,e)}st(ar),nt(ar,t)}function Ao(){st(ar),st(os),st(as)}function Q0(e){Pi(as.current);var t=Pi(ar.current),n=kd(t,e.type);t!==n&&(nt(os,e),nt(ar,n))}function vp(e){os.current===e&&(st(ar),st(os))}var dt=hi(0);function Kl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Fc=[];function yp(){for(var e=0;en?n:4,e(!0);var r=Dc.transition;Dc.transition={};try{e(!1),t()}finally{Ze=n,Dc.transition=r}}function pw(){return Dn().memoizedState}function jk(e,t,n){var r=oi(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},hw(e))mw(t,n);else if(n=U0(e,t,n,r),n!==null){var i=Xt();Qn(n,e,r,i),vw(n,t,r)}}function Bk(e,t,n){var r=oi(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(hw(e))mw(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,Xn(s,a)){var u=t.interleaved;u===null?(i.next=i,pp(t)):(i.next=u.next,u.next=i),t.interleaved=i;return}}catch{}finally{}n=U0(e,t,i,r),n!==null&&(i=Xt(),Qn(n,e,r,i),vw(n,t,r))}}function hw(e){var t=e.alternate;return e===ft||t!==null&&t===ft}function mw(e,t){La=Zl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function vw(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Jf(e,n)}}var Yl={readContext:Fn,useCallback:Bt,useContext:Bt,useEffect:Bt,useImperativeHandle:Bt,useInsertionEffect:Bt,useLayoutEffect:Bt,useMemo:Bt,useReducer:Bt,useRef:Bt,useState:Bt,useDebugValue:Bt,useDeferredValue:Bt,useTransition:Bt,useMutableSource:Bt,useSyncExternalStore:Bt,useId:Bt,unstable_isNewReconciler:!1},zk={readContext:Fn,useCallback:function(e,t){return rr().memoizedState=[e,t===void 0?null:t],e},useContext:Fn,useEffect:kv,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Sl(4194308,4,lw.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Sl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Sl(4,2,e,t)},useMemo:function(e,t){var n=rr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=rr();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=jk.bind(null,ft,e),[r.memoizedState,e]},useRef:function(e){var t=rr();return e={current:e},t.memoizedState=e},useState:Ev,useDebugValue:Cp,useDeferredValue:function(e){return rr().memoizedState=e},useTransition:function(){var e=Ev(!1),t=e[0];return e=Lk.bind(null,e[1]),rr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ft,i=rr();if(ut){if(n===void 0)throw Error(q(407));n=n()}else{if(n=t(),Mt===null)throw Error(q(349));zi&30||ew(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,kv(nw.bind(null,r,o,e),[e]),r.flags|=2048,us(9,tw.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=rr(),t=Mt.identifierPrefix;if(ut){var n=xr,r=Sr;n=(r&~(1<<32-Yn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ss++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[ir]=t,e[is]=r,kw(e,t,!1,!1),t.stateNode=e;e:{switch(a=Nd(n,r),n){case"dialog":it("cancel",e),it("close",e),i=r;break;case"iframe":case"object":case"embed":it("load",e),i=r;break;case"video":case"audio":for(i=0;ijo&&(t.flags|=128,r=!0,ya(o,!1),t.lanes=4194304)}else{if(!r)if(e=Kl(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ya(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!ut)return zt(t),null}else 2*gt()-o.renderingStartTime>jo&&n!==1073741824&&(t.flags|=128,r=!0,ya(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=gt(),t.sibling=null,n=dt.current,nt(dt,r?n&1|2:n&1),t):(zt(t),null);case 22:case 23:return Op(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?cn&1073741824&&(zt(t),t.subtreeFlags&6&&(t.flags|=8192)):zt(t),null;case 24:return null;case 25:return null}throw Error(q(156,t.tag))}function Zk(e,t){switch(lp(t),t.tag){case 1:return an(t.type)&&zl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ao(),st(on),st(Ut),yp(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return vp(t),null;case 13:if(st(dt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(q(340));Fo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return st(dt),null;case 4:return Ao(),null;case 10:return fp(t.type._context),null;case 22:case 23:return Op(),null;case 24:return null;default:return null}}var Js=!1,Vt=!1,Yk=typeof WeakSet=="function"?WeakSet:Set,ce=null;function Co(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){yt(e,t,r)}else n.current=null}function ef(e,t,n){try{n()}catch(r){yt(e,t,r)}}var Iv=!1;function Qk(e,t){if(Ad=Al,e=P0(),ap(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,u=-1,l=0,f=0,h=e,p=null;t:for(;;){for(var y;h!==n||i!==0&&h.nodeType!==3||(s=a+i),h!==o||r!==0&&h.nodeType!==3||(u=a+r),h.nodeType===3&&(a+=h.nodeValue.length),(y=h.firstChild)!==null;)p=h,h=y;for(;;){if(h===e)break t;if(p===n&&++l===i&&(s=a),p===o&&++f===r&&(u=a),(y=h.nextSibling)!==null)break;h=p,p=h.parentNode}h=y}n=s===-1||u===-1?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ld={focusedElem:e,selectionRange:n},Al=!1,ce=t;ce!==null;)if(t=ce,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ce=e;else for(;ce!==null;){t=ce;try{var C=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(C!==null){var x=C.memoizedProps,N=C.memoizedState,w=t.stateNode,E=w.getSnapshotBeforeUpdate(t.elementType===t.type?x:Un(t.type,x),N);w.__reactInternalSnapshotBeforeUpdate=E}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(q(163))}}catch(T){yt(t,t.return,T)}if(e=t.sibling,e!==null){e.return=t.return,ce=e;break}ce=t.return}return C=Iv,Iv=!1,C}function ja(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&ef(t,n,o)}i=i.next}while(i!==r)}}function Cu(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function tf(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ow(e){var t=e.alternate;t!==null&&(e.alternate=null,Ow(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ir],delete t[is],delete t[zd],delete t[$k],delete t[Ik])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Rw(e){return e.tag===5||e.tag===3||e.tag===4}function Fv(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Rw(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function nf(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Bl));else if(r!==4&&(e=e.child,e!==null))for(nf(e,t,n),e=e.sibling;e!==null;)nf(e,t,n),e=e.sibling}function rf(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(rf(e,t,n),e=e.sibling;e!==null;)rf(e,t,n),e=e.sibling}var Dt=null,Gn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)_w(e,t,n),n=n.sibling}function _w(e,t,n){if(or&&typeof or.onCommitFiberUnmount=="function")try{or.onCommitFiberUnmount(hu,n)}catch{}switch(n.tag){case 5:Vt||Co(n,t);case 6:var r=Dt,i=Gn;Dt=null,Lr(e,t,n),Dt=r,Gn=i,Dt!==null&&(Gn?(e=Dt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Dt.removeChild(n.stateNode));break;case 18:Dt!==null&&(Gn?(e=Dt,n=n.stateNode,e.nodeType===8?$c(e.parentNode,n):e.nodeType===1&&$c(e,n),Ja(e)):$c(Dt,n.stateNode));break;case 4:r=Dt,i=Gn,Dt=n.stateNode.containerInfo,Gn=!0,Lr(e,t,n),Dt=r,Gn=i;break;case 0:case 11:case 14:case 15:if(!Vt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&ef(n,t,a),i=i.next}while(i!==r)}Lr(e,t,n);break;case 1:if(!Vt&&(Co(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){yt(n,t,s)}Lr(e,t,n);break;case 21:Lr(e,t,n);break;case 22:n.mode&1?(Vt=(r=Vt)||n.memoizedState!==null,Lr(e,t,n),Vt=r):Lr(e,t,n);break;default:Lr(e,t,n)}}function Dv(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Yk),t.forEach(function(r){var i=aT.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function zn(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=gt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Jk(r/1960))-r,10e?16:e,Qr===null)var r=!1;else{if(e=Qr,Qr=null,Jl=0,We&6)throw Error(q(331));var i=We;for(We|=4,ce=e.current;ce!==null;){var o=ce,a=o.child;if(ce.flags&16){var s=o.deletions;if(s!==null){for(var u=0;ugt()-Tp?Mi(e,0):kp|=n),sn(e,t)}function Lw(e,t){t===0&&(e.mode&1?(t=Ws,Ws<<=1,!(Ws&130023424)&&(Ws=4194304)):t=1);var n=Xt();e=Nr(e,t),e!==null&&(ys(e,t,n),sn(e,n))}function oT(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Lw(e,n)}function aT(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(q(314))}r!==null&&r.delete(t),Lw(e,n)}var jw;jw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||on.current)rn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return rn=!1,qk(e,t,n);rn=!!(e.flags&131072)}else rn=!1,ut&&t.flags&1048576&&V0(t,Wl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;xl(e,t),e=t.pendingProps;var i=Io(t,Ut.current);_o(t,n),i=wp(null,t,r,e,i,n);var o=Sp();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,an(r)?(o=!0,Vl(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,hp(t),i.updater=Su,t.stateNode=i,i._reactInternals=t,qd(t,r,e,n),t=Yd(null,t,r,!0,o,n)):(t.tag=0,ut&&o&&sp(t),Yt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(xl(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=lT(r),e=Un(r,e),i){case 0:t=Zd(null,t,r,e,n);break e;case 1:t=Pv(null,t,r,e,n);break e;case 11:t=Rv(null,t,r,e,n);break e;case 14:t=_v(null,t,r,Un(r.type,e),n);break e}throw Error(q(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Un(r,i),Zd(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Un(r,i),Pv(e,t,r,i,n);case 3:e:{if(Cw(t),e===null)throw Error(q(387));r=t.pendingProps,o=t.memoizedState,i=o.element,G0(e,t),ql(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Lo(Error(q(423)),t),t=Mv(e,t,r,n,i);break e}else if(r!==i){i=Lo(Error(q(424)),t),t=Mv(e,t,r,n,i);break e}else for(fn=ni(t.stateNode.containerInfo.firstChild),mn=t,ut=!0,qn=null,n=Y0(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Fo(),r===i){t=Or(e,t,n);break e}Yt(e,t,r,n)}t=t.child}return t;case 5:return Q0(t),e===null&&Wd(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,jd(r,i)?a=null:o!==null&&jd(r,o)&&(t.flags|=32),xw(e,t),Yt(e,t,a,n),t.child;case 6:return e===null&&Wd(t),null;case 13:return bw(e,t,n);case 4:return mp(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Do(t,null,r,n):Yt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Un(r,i),Rv(e,t,r,i,n);case 7:return Yt(e,t,t.pendingProps,n),t.child;case 8:return Yt(e,t,t.pendingProps.children,n),t.child;case 12:return Yt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,nt(Ul,r._currentValue),r._currentValue=a,o!==null)if(Xn(o.value,a)){if(o.children===i.children&&!on.current){t=Or(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var u=s.firstContext;u!==null;){if(u.context===r){if(o.tag===1){u=br(-1,n&-n),u.tag=2;var l=o.updateQueue;if(l!==null){l=l.shared;var f=l.pending;f===null?u.next=u:(u.next=f.next,f.next=u),l.pending=u}}o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),Ud(o.return,n,t),s.lanes|=n;break}u=u.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(q(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),Ud(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}Yt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,_o(t,n),i=Fn(i),r=r(i),t.flags|=1,Yt(e,t,r,n),t.child;case 14:return r=t.type,i=Un(r,t.pendingProps),i=Un(r.type,i),_v(e,t,r,i,n);case 15:return ww(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Un(r,i),xl(e,t),t.tag=1,an(r)?(e=!0,Vl(t)):e=!1,_o(t,n),K0(t,r,i),qd(t,r,i,n),Yd(null,t,r,!0,e,n);case 19:return Ew(e,t,n);case 22:return Sw(e,t,n)}throw Error(q(156,t.tag))};function Bw(e,t){return f0(e,t)}function sT(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pn(e,t,n,r){return new sT(e,t,n,r)}function _p(e){return e=e.prototype,!(!e||!e.isReactComponent)}function lT(e){if(typeof e=="function")return _p(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Zf)return 11;if(e===Yf)return 14}return 2}function ai(e,t){var n=e.alternate;return n===null?(n=Pn(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function El(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")_p(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case po:return $i(n.children,i,o,t);case Kf:a=8,i|=8;break;case yd:return e=Pn(12,n,t,i|2),e.elementType=yd,e.lanes=o,e;case gd:return e=Pn(13,n,t,i),e.elementType=gd,e.lanes=o,e;case wd:return e=Pn(19,n,t,i),e.elementType=wd,e.lanes=o,e;case Zg:return Eu(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case qg:a=10;break e;case Kg:a=9;break e;case Zf:a=11;break e;case Yf:a=14;break e;case Vr:a=16,r=null;break e}throw Error(q(130,e==null?e:typeof e,""))}return t=Pn(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function $i(e,t,n,r){return e=Pn(7,e,r,t),e.lanes=n,e}function Eu(e,t,n,r){return e=Pn(22,e,r,t),e.elementType=Zg,e.lanes=n,e.stateNode={isHidden:!1},e}function zc(e,t,n){return e=Pn(6,e,null,t),e.lanes=n,e}function Vc(e,t,n){return t=Pn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function uT(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Cc(0),this.expirationTimes=Cc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Cc(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Pp(e,t,n,r,i,o,a,s,u){return e=new uT(e,t,n,s,u),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Pn(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},hp(o),e}function cT(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ww)}catch(e){console.error(e)}}Ww(),Vg.exports=Sn;var Uw=Vg.exports;const Eo=fi(Uw);var Wv=Uw;md.createRoot=Wv.createRoot,md.hydrateRoot=Wv.hydrateRoot;var Gw={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r=[],i=0;i1?f-1:0),p=1;p{o.target===e&&(i(),t(o))},n+r)}function wa(...e){return e.filter(t=>t!=null).reduce((t,n)=>{if(typeof n!="function")throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return t===null?n:function(...i){t.apply(this,i),n.apply(this,i)}},null)}function t1(e){e.offsetHeight}var Qv=function(t){return!t||typeof t=="function"?t:function(n){t.current=n}};function DT(e,t){var n=Qv(e),r=Qv(t);return function(i){n&&n(i),r&&r(i)}}function Yi(e,t){return m.useMemo(function(){return DT(e,t)},[e,t])}function AT(e){return e&&"setState"in e?Eo.findDOMNode(e):e??null}const LT=Kn.forwardRef(({onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:i,onExited:o,addEndListener:a,children:s,childRef:u,...l},f)=>{const h=m.useRef(null),p=Yi(h,u),y=M=>{p(AT(M))},C=M=>F=>{M&&h.current&&M(h.current,F)},x=m.useCallback(C(e),[e]),N=m.useCallback(C(t),[t]),w=m.useCallback(C(n),[n]),E=m.useCallback(C(r),[r]),b=m.useCallback(C(i),[i]),T=m.useCallback(C(o),[o]),R=m.useCallback(C(a),[a]);return c(MT,{ref:f,...l,onEnter:x,onEntered:w,onEntering:N,onExit:E,onExited:T,onExiting:b,addEndListener:R,nodeRef:h,children:typeof s=="function"?(M,F)=>s(M,{...F,ref:y}):Kn.cloneElement(s,{ref:y})})}),n1=LT,jT={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]};function r1(e,t){const n=`offset${e[0].toUpperCase()}${e.slice(1)}`,r=t[n],i=jT[e];return r+parseInt(Er(t,i[0]),10)+parseInt(Er(t,i[1]),10)}const BT={[Wr]:"collapse",[nu]:"collapsing",[gr]:"collapsing",[Kr]:"collapse show"},zT={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,getDimensionValue:r1},i1=Kn.forwardRef(({onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:i,className:o,children:a,dimension:s="height",getDimensionValue:u=r1,...l},f)=>{const h=typeof s=="function"?s():s,p=m.useMemo(()=>wa(w=>{w.style[h]="0"},e),[h,e]),y=m.useMemo(()=>wa(w=>{const E=`scroll${h[0].toUpperCase()}${h.slice(1)}`;w.style[h]=`${w[E]}px`},t),[h,t]),C=m.useMemo(()=>wa(w=>{w.style[h]=null},n),[h,n]),x=m.useMemo(()=>wa(w=>{w.style[h]=`${u(h,w)}px`,t1(w)},r),[r,u,h]),N=m.useMemo(()=>wa(w=>{w.style[h]=null},i),[h,i]);return c(n1,{ref:f,addEndListener:e1,...l,"aria-expanded":l.role?l.in:null,onEnter:p,onEntering:y,onEntered:C,onExit:x,onExiting:N,childRef:a.ref,children:(w,E)=>Kn.cloneElement(a,{...E,className:be(o,a.props.className,BT[w],h==="width"&&"collapse-horizontal")})})});i1.defaultProps=zT;const VT=i1;function o1(e,t){return Array.isArray(e)?e.includes(t):e===t}const a1=m.createContext({});a1.displayName="AccordionContext";const _u=a1,s1=m.forwardRef(({as:e="div",bsPrefix:t,className:n,children:r,eventKey:i,...o},a)=>{const{activeEventKey:s}=m.useContext(_u);return t=$e(t,"accordion-collapse"),c(VT,{ref:a,in:o1(s,i),...o,className:be(n,t),children:c(e,{children:m.Children.only(r)})})});s1.displayName="AccordionCollapse";const l1=s1,u1=m.createContext({eventKey:""});u1.displayName="AccordionItemContext";const Ap=u1,c1=m.forwardRef(({as:e="div",bsPrefix:t,className:n,onEnter:r,onEntering:i,onEntered:o,onExit:a,onExiting:s,onExited:u,...l},f)=>{t=$e(t,"accordion-body");const{eventKey:h}=m.useContext(Ap);return c(l1,{eventKey:h,onEnter:r,onEntering:i,onEntered:o,onExit:a,onExiting:s,onExited:u,children:c(e,{ref:f,...l,className:be(n,t)})})});c1.displayName="AccordionBody";const HT=c1;function WT(e,t){const{activeEventKey:n,onSelect:r,alwaysOpen:i}=m.useContext(_u);return o=>{let a=e===n?null:e;i&&(Array.isArray(n)?n.includes(e)?a=n.filter(s=>s!==e):a=[...n,e]:a=[e]),r==null||r(a,o),t==null||t(o)}}const d1=m.forwardRef(({as:e="button",bsPrefix:t,className:n,onClick:r,...i},o)=>{t=$e(t,"accordion-button");const{eventKey:a}=m.useContext(Ap),s=WT(a,r),{activeEventKey:u}=m.useContext(_u);return e==="button"&&(i.type="button"),c(e,{ref:o,onClick:s,...i,"aria-expanded":Array.isArray(u)?u.includes(a):a===u,className:be(n,t,!o1(u,a)&&"collapsed")})});d1.displayName="AccordionButton";const f1=d1,p1=m.forwardRef(({as:e="h2",bsPrefix:t,className:n,children:r,onClick:i,...o},a)=>(t=$e(t,"accordion-header"),c(e,{ref:a,...o,className:be(n,t),children:c(f1,{onClick:i,children:r})})));p1.displayName="AccordionHeader";const UT=p1,h1=m.forwardRef(({as:e="div",bsPrefix:t,className:n,eventKey:r,...i},o)=>{t=$e(t,"accordion-item");const a=m.useMemo(()=>({eventKey:r}),[r]);return c(Ap.Provider,{value:a,children:c(e,{ref:o,...i,className:be(n,t)})})});h1.displayName="AccordionItem";const GT=h1,m1=m.forwardRef((e,t)=>{const{as:n="div",activeKey:r,bsPrefix:i,className:o,onSelect:a,flush:s,alwaysOpen:u,...l}=xs(e,{activeKey:"onSelect"}),f=$e(i,"accordion"),h=m.useMemo(()=>({activeEventKey:r,onSelect:a,alwaysOpen:u}),[r,a,u]);return c(_u.Provider,{value:h,children:c(n,{ref:t,...l,className:be(o,f,s&&`${f}-flush`)})})});m1.displayName="Accordion";const kl=Object.assign(m1,{Button:f1,Collapse:l1,Item:GT,Header:UT,Body:HT});function qT(e){var t=m.useRef(e);return m.useEffect(function(){t.current=e},[e]),t}function wt(e){var t=qT(e);return m.useCallback(function(){return t.current&&t.current.apply(t,arguments)},[t])}function v1(){return m.useState(null)}function KT(e,t,n,r){r===void 0&&(r=!1);var i=wt(n);m.useEffect(function(){var o=typeof e=="function"?e():e;return o.addEventListener(t,i,r),function(){return o.removeEventListener(t,i,r)}},[e])}function y1(){var e=m.useRef(!0),t=m.useRef(function(){return e.current});return m.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t.current}function g1(e){var t=m.useRef(null);return m.useEffect(function(){t.current=e}),t.current}var ZT=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",YT=typeof document<"u";const hf=YT||ZT?m.useLayoutEffect:m.useEffect,QT=["as","disabled"];function XT(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}function JT(e){return!e||e.trim()==="#"}function Lp({tagName:e,disabled:t,href:n,target:r,rel:i,role:o,onClick:a,tabIndex:s=0,type:u}){e||(n!=null||r!=null||i!=null?e="a":e="button");const l={tagName:e};if(e==="button")return[{type:u||"button",disabled:t},l];const f=p=>{if((t||e==="a"&&JT(n))&&p.preventDefault(),t){p.stopPropagation();return}a==null||a(p)},h=p=>{p.key===" "&&(p.preventDefault(),f(p))};return e==="a"&&(n||(n="#"),t&&(n=void 0)),[{role:o??"button",disabled:void 0,tabIndex:t?void 0:s,href:n,target:e==="a"?r:void 0,"aria-disabled":t||void 0,rel:e==="a"?i:void 0,onClick:f,onKeyDown:h},l]}const jp=m.forwardRef((e,t)=>{let{as:n,disabled:r}=e,i=XT(e,QT);const[o,{tagName:a}]=Lp(Object.assign({tagName:n,disabled:r},i));return c(a,Object.assign({},i,o,{ref:t}))});jp.displayName="Button";const eN=["onKeyDown"];function tN(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}function nN(e){return!e||e.trim()==="#"}const w1=m.forwardRef((e,t)=>{let{onKeyDown:n}=e,r=tN(e,eN);const[i]=Lp(Object.assign({tagName:"a"},r)),o=wt(a=>{i.onKeyDown(a),n==null||n(a)});return nN(r.href)||r.role==="button"?c("a",Object.assign({ref:t},r,i,{onKeyDown:o})):c("a",Object.assign({ref:t},r,{onKeyDown:n}))});w1.displayName="Anchor";const Pu=w1,rN={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1},iN={[gr]:"show",[Kr]:"show"},Bp=m.forwardRef(({className:e,children:t,transitionClasses:n={},...r},i)=>{const o=m.useCallback((a,s)=>{t1(a),r.onEnter==null||r.onEnter(a,s)},[r]);return c(n1,{ref:i,addEndListener:e1,...r,onEnter:o,childRef:t.ref,children:(a,s)=>m.cloneElement(t,{...s,className:be("fade",e,t.props.className,iN[a],n[a])})})});Bp.defaultProps=rN;Bp.displayName="Fade";const Qo=Bp,oN={"aria-label":De.string,onClick:De.func,variant:De.oneOf(["white"])},aN={"aria-label":"Close"},Mu=m.forwardRef(({className:e,variant:t,...n},r)=>c("button",{ref:r,type:"button",className:be("btn-close",t&&`btn-close-${t}`,e),...n}));Mu.displayName="CloseButton";Mu.propTypes=oN;Mu.defaultProps=aN;const zp=Mu,$u=e=>m.forwardRef((t,n)=>c("div",{...t,ref:n,className:be(t.className,e)}));var sN=/-(.)/g;function lN(e){return e.replace(sN,function(t,n){return n.toUpperCase()})}const uN=e=>e[0].toUpperCase()+lN(e).slice(1);function Nt(e,{displayName:t=uN(e),Component:n,defaultProps:r}={}){const i=m.forwardRef(({className:o,bsPrefix:a,as:s=n||"div",...u},l)=>{const f=$e(a,e);return c(s,{ref:l,className:be(o,f),...u})});return i.defaultProps=r,i.displayName=t,i}const S1=$u("h4");S1.displayName="DivStyledAsH4";const cN=Nt("alert-heading",{Component:S1}),dN=Nt("alert-link",{Component:Pu}),fN={variant:"primary",show:!0,transition:Qo,closeLabel:"Close alert"},Vp=m.forwardRef((e,t)=>{const{bsPrefix:n,show:r,closeLabel:i,closeVariant:o,className:a,children:s,variant:u,onClose:l,dismissible:f,transition:h,...p}=xs(e,{show:"onClose"}),y=$e(n,"alert"),C=wt(w=>{l&&l(!1,w)}),x=h===!0?Qo:h,N=g("div",{role:"alert",...x?void 0:p,ref:t,className:be(a,y,u&&`${y}-${u}`,f&&`${y}-dismissible`),children:[f&&c(zp,{onClick:C,"aria-label":i,variant:o}),s]});return x?c(x,{unmountOnExit:!0,...p,ref:void 0,in:r,children:N}):r?N:null});Vp.displayName="Alert";Vp.defaultProps=fN;const Bo=Object.assign(Vp,{Link:dN,Heading:cN}),pN={bg:"primary",pill:!1},Hp=m.forwardRef(({bsPrefix:e,bg:t,pill:n,text:r,className:i,as:o="span",...a},s)=>{const u=$e(e,"badge");return c(o,{ref:s,...a,className:be(i,u,n&&"rounded-pill",r&&`text-${r}`,t&&`bg-${t}`)})});Hp.displayName="Badge";Hp.defaultProps=pN;const vn=Hp,hN={active:!1,linkProps:{}},Wp=m.forwardRef(({bsPrefix:e,active:t,children:n,className:r,as:i="li",linkAs:o=Pu,linkProps:a,href:s,title:u,target:l,...f},h)=>{const p=$e(e,"breadcrumb-item");return c(i,{ref:h,...f,className:be(p,r,{active:t}),"aria-current":t?"page":void 0,children:t?n:c(o,{...a,href:s,title:u,target:l,children:n})})});Wp.displayName="BreadcrumbItem";Wp.defaultProps=hN;const mN=Wp,vN={label:"breadcrumb",listProps:{}},Up=m.forwardRef(({bsPrefix:e,className:t,listProps:n,children:r,label:i,as:o="nav",...a},s)=>{const u=$e(e,"breadcrumb");return c(o,{"aria-label":i,className:t,ref:s,...a,children:c("ol",{...n,className:be(u,n==null?void 0:n.className),children:r})})});Up.displayName="Breadcrumb";Up.defaultProps=vN;const hr=Object.assign(Up,{Item:mN}),yN={variant:"primary",active:!1,disabled:!1},Gp=m.forwardRef(({as:e,bsPrefix:t,variant:n,size:r,active:i,className:o,...a},s)=>{const u=$e(t,"btn"),[l,{tagName:f}]=Lp({tagName:e,...a});return c(f,{...l,...a,ref:s,className:be(o,u,i&&"active",n&&`${u}-${n}`,r&&`${u}-${r}`,a.href&&a.disabled&&"disabled")})});Gp.displayName="Button";Gp.defaultProps=yN;const ee=Gp,gN={vertical:!1,role:"group"},qp=m.forwardRef(({bsPrefix:e,size:t,vertical:n,className:r,as:i="div",...o},a)=>{const s=$e(e,"btn-group");let u=s;return n&&(u=`${s}-vertical`),c(i,{...o,ref:a,className:be(r,u,t&&`${s}-${t}`)})});qp.displayName="ButtonGroup";qp.defaultProps=gN;const x1=qp,C1=m.forwardRef(({bsPrefix:e,className:t,variant:n,as:r="img",...i},o)=>{const a=$e(e,"card-img");return c(r,{ref:o,className:be(n?`${a}-${n}`:a,t),...i})});C1.displayName="CardImg";const wN=C1,b1=m.createContext(null);b1.displayName="CardHeaderContext";const E1=b1,k1=m.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},i)=>{const o=$e(e,"card-header"),a=m.useMemo(()=>({cardHeaderBsPrefix:o}),[o]);return c(E1.Provider,{value:a,children:c(n,{ref:i,...r,className:be(t,o)})})});k1.displayName="CardHeader";const SN=k1,xN=$u("h5"),CN=$u("h6"),T1=Nt("card-body"),bN=Nt("card-title",{Component:xN}),EN=Nt("card-subtitle",{Component:CN}),kN=Nt("card-link",{Component:"a"}),TN=Nt("card-text",{Component:"p"}),NN=Nt("card-footer"),ON=Nt("card-img-overlay"),RN={body:!1},Kp=m.forwardRef(({bsPrefix:e,className:t,bg:n,text:r,border:i,body:o,children:a,as:s="div",...u},l)=>{const f=$e(e,"card");return c(s,{ref:l,...u,className:be(t,f,n&&`bg-${n}`,r&&`text-${r}`,i&&`border-${i}`),children:o?c(T1,{children:a}):a})});Kp.displayName="Card";Kp.defaultProps=RN;const Ue=Object.assign(Kp,{Img:wN,Title:bN,Subtitle:EN,Body:T1,Link:kN,Text:TN,Header:SN,Footer:NN,ImgOverlay:ON});function _N(e){var t=m.useRef(e);return t.current=e,t}function N1(e){var t=_N(e);m.useEffect(function(){return function(){return t.current()}},[])}function mf(e,t){let n=0;return m.Children.map(e,r=>m.isValidElement(r)?t(r,n++):r)}function PN(e,t){let n=0;m.Children.forEach(e,r=>{m.isValidElement(r)&&t(r,n++)})}function MN(e,t){return m.Children.toArray(e).some(n=>m.isValidElement(n)&&n.type===t)}function $N({as:e,bsPrefix:t,className:n,...r}){t=$e(t,"col");const i=Kw(),o=Zw(),a=[],s=[];return i.forEach(u=>{const l=r[u];delete r[u];let f,h,p;typeof l=="object"&&l!=null?{span:f,offset:h,order:p}=l:f=l;const y=u!==o?`-${u}`:"";f&&a.push(f===!0?`${t}${y}`:`${t}${y}-${f}`),p!=null&&s.push(`order${y}-${p}`),h!=null&&s.push(`offset${y}-${h}`)}),[{...r,className:be(n,...a,...s)},{as:e,bsPrefix:t,spans:a}]}const O1=m.forwardRef((e,t)=>{const[{className:n,...r},{as:i="div",bsPrefix:o,spans:a}]=$N(e);return c(i,{...r,ref:t,className:be(n,!a.length&&o)})});O1.displayName="Col";const Xe=O1;var IN=Function.prototype.bind.call(Function.prototype.call,[].slice);function wr(e,t){return IN(e.querySelectorAll(t))}function R1(){var e=m.useReducer(function(n){return!n},!1),t=e[1];return t}const FN=m.createContext(null),Iu=FN;var Xv=Object.prototype.hasOwnProperty;function Jv(e,t,n){for(n of e.keys())if(Va(n,t))return n}function Va(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&Va(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=Jv(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=Jv(t,i),!i)||!Va(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(Xv.call(e,n)&&++r&&!Xv.call(t,n)||!(n in t)||!Va(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}function DN(e){var t=y1();return[e[0],m.useCallback(function(n){if(t())return e[1](n)},[t,e[1]])]}var ln="top",An="bottom",Ln="right",un="left",Zp="auto",bs=[ln,An,Ln,un],zo="start",ds="end",AN="clippingParents",_1="viewport",Sa="popper",LN="reference",ey=bs.reduce(function(e,t){return e.concat([t+"-"+zo,t+"-"+ds])},[]),P1=[].concat(bs,[Zp]).reduce(function(e,t){return e.concat([t,t+"-"+zo,t+"-"+ds])},[]),jN="beforeRead",BN="read",zN="afterRead",VN="beforeMain",HN="main",WN="afterMain",UN="beforeWrite",GN="write",qN="afterWrite",KN=[jN,BN,zN,VN,HN,WN,UN,GN,qN];function sr(e){return e.split("-")[0]}function jn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Wi(e){var t=jn(e).Element;return e instanceof t||e instanceof Element}function lr(e){var t=jn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Yp(e){if(typeof ShadowRoot>"u")return!1;var t=jn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var Ii=Math.max,ru=Math.min,Vo=Math.round;function vf(){var e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function M1(){return!/^((?!chrome|android).)*safari/i.test(vf())}function Ho(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&lr(e)&&(i=e.offsetWidth>0&&Vo(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Vo(r.height)/e.offsetHeight||1);var a=Wi(e)?jn(e):window,s=a.visualViewport,u=!M1()&&n,l=(r.left+(u&&s?s.offsetLeft:0))/i,f=(r.top+(u&&s?s.offsetTop:0))/o,h=r.width/i,p=r.height/o;return{width:h,height:p,top:f,right:l+h,bottom:f+p,left:l,x:l,y:f}}function Qp(e){var t=Ho(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function $1(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Yp(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ci(e){return e?(e.nodeName||"").toLowerCase():null}function Rr(e){return jn(e).getComputedStyle(e)}function ZN(e){return["table","td","th"].indexOf(ci(e))>=0}function vi(e){return((Wi(e)?e.ownerDocument:e.document)||window.document).documentElement}function Fu(e){return ci(e)==="html"?e:e.assignedSlot||e.parentNode||(Yp(e)?e.host:null)||vi(e)}function ty(e){return!lr(e)||Rr(e).position==="fixed"?null:e.offsetParent}function YN(e){var t=/firefox/i.test(vf()),n=/Trident/i.test(vf());if(n&&lr(e)){var r=Rr(e);if(r.position==="fixed")return null}var i=Fu(e);for(Yp(i)&&(i=i.host);lr(i)&&["html","body"].indexOf(ci(i))<0;){var o=Rr(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function Es(e){for(var t=jn(e),n=ty(e);n&&ZN(n)&&Rr(n).position==="static";)n=ty(n);return n&&(ci(n)==="html"||ci(n)==="body"&&Rr(n).position==="static")?t:n||YN(e)||t}function Xp(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ha(e,t,n){return Ii(e,ru(t,n))}function QN(e,t,n){var r=Ha(e,t,n);return r>n?n:r}function I1(){return{top:0,right:0,bottom:0,left:0}}function F1(e){return Object.assign({},I1(),e)}function D1(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var XN=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,F1(typeof t!="number"?t:D1(t,bs))};function JN(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=sr(n.placement),u=Xp(s),l=[un,Ln].indexOf(s)>=0,f=l?"height":"width";if(!(!o||!a)){var h=XN(i.padding,n),p=Qp(o),y=u==="y"?ln:un,C=u==="y"?An:Ln,x=n.rects.reference[f]+n.rects.reference[u]-a[u]-n.rects.popper[f],N=a[u]-n.rects.reference[u],w=Es(o),E=w?u==="y"?w.clientHeight||0:w.clientWidth||0:0,b=x/2-N/2,T=h[y],R=E-p[f]-h[C],M=E/2-p[f]/2+b,F=Ha(T,M,R),A=u;n.modifiersData[r]=(t={},t[A]=F,t.centerOffset=F-M,t)}}function eO(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||$1(t.elements.popper,i)&&(t.elements.arrow=i))}const tO={name:"arrow",enabled:!0,phase:"main",fn:JN,effect:eO,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Wo(e){return e.split("-")[1]}var nO={top:"auto",right:"auto",bottom:"auto",left:"auto"};function rO(e){var t=e.x,n=e.y,r=window,i=r.devicePixelRatio||1;return{x:Vo(t*i)/i||0,y:Vo(n*i)/i||0}}function ny(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,u=e.gpuAcceleration,l=e.adaptive,f=e.roundOffsets,h=e.isFixed,p=a.x,y=p===void 0?0:p,C=a.y,x=C===void 0?0:C,N=typeof f=="function"?f({x:y,y:x}):{x:y,y:x};y=N.x,x=N.y;var w=a.hasOwnProperty("x"),E=a.hasOwnProperty("y"),b=un,T=ln,R=window;if(l){var M=Es(n),F="clientHeight",A="clientWidth";if(M===jn(n)&&(M=vi(n),Rr(M).position!=="static"&&s==="absolute"&&(F="scrollHeight",A="scrollWidth")),M=M,i===ln||(i===un||i===Ln)&&o===ds){T=An;var I=h&&M===R&&R.visualViewport?R.visualViewport.height:M[F];x-=I-r.height,x*=u?1:-1}if(i===un||(i===ln||i===An)&&o===ds){b=Ln;var $=h&&M===R&&R.visualViewport?R.visualViewport.width:M[A];y-=$-r.width,y*=u?1:-1}}var W=Object.assign({position:s},l&&nO),Z=f===!0?rO({x:y,y:x}):{x:y,y:x};if(y=Z.x,x=Z.y,u){var G;return Object.assign({},W,(G={},G[T]=E?"0":"",G[b]=w?"0":"",G.transform=(R.devicePixelRatio||1)<=1?"translate("+y+"px, "+x+"px)":"translate3d("+y+"px, "+x+"px, 0)",G))}return Object.assign({},W,(t={},t[T]=E?x+"px":"",t[b]=w?y+"px":"",t.transform="",t))}function iO(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,a=o===void 0?!0:o,s=n.roundOffsets,u=s===void 0?!0:s,l={placement:sr(t.placement),variation:Wo(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ny(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ny(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const oO={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:iO,data:{}};var rl={passive:!0};function aO(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,s=a===void 0?!0:a,u=jn(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&l.forEach(function(f){f.addEventListener("scroll",n.update,rl)}),s&&u.addEventListener("resize",n.update,rl),function(){o&&l.forEach(function(f){f.removeEventListener("scroll",n.update,rl)}),s&&u.removeEventListener("resize",n.update,rl)}}const sO={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:aO,data:{}};var lO={left:"right",right:"left",bottom:"top",top:"bottom"};function Tl(e){return e.replace(/left|right|bottom|top/g,function(t){return lO[t]})}var uO={start:"end",end:"start"};function ry(e){return e.replace(/start|end/g,function(t){return uO[t]})}function Jp(e){var t=jn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function eh(e){return Ho(vi(e)).left+Jp(e).scrollLeft}function cO(e,t){var n=jn(e),r=vi(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,u=0;if(i){o=i.width,a=i.height;var l=M1();(l||!l&&t==="fixed")&&(s=i.offsetLeft,u=i.offsetTop)}return{width:o,height:a,x:s+eh(e),y:u}}function dO(e){var t,n=vi(e),r=Jp(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Ii(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=Ii(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+eh(e),u=-r.scrollTop;return Rr(i||n).direction==="rtl"&&(s+=Ii(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:u}}function th(e){var t=Rr(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function A1(e){return["html","body","#document"].indexOf(ci(e))>=0?e.ownerDocument.body:lr(e)&&th(e)?e:A1(Fu(e))}function Wa(e,t){var n;t===void 0&&(t=[]);var r=A1(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=jn(r),a=i?[o].concat(o.visualViewport||[],th(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(Wa(Fu(a)))}function yf(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function fO(e,t){var n=Ho(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function iy(e,t,n){return t===_1?yf(cO(e,n)):Wi(t)?fO(t,n):yf(dO(vi(e)))}function pO(e){var t=Wa(Fu(e)),n=["absolute","fixed"].indexOf(Rr(e).position)>=0,r=n&&lr(e)?Es(e):e;return Wi(r)?t.filter(function(i){return Wi(i)&&$1(i,r)&&ci(i)!=="body"}):[]}function hO(e,t,n,r){var i=t==="clippingParents"?pO(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(u,l){var f=iy(e,l,r);return u.top=Ii(f.top,u.top),u.right=ru(f.right,u.right),u.bottom=ru(f.bottom,u.bottom),u.left=Ii(f.left,u.left),u},iy(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function L1(e){var t=e.reference,n=e.element,r=e.placement,i=r?sr(r):null,o=r?Wo(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,u;switch(i){case ln:u={x:a,y:t.y-n.height};break;case An:u={x:a,y:t.y+t.height};break;case Ln:u={x:t.x+t.width,y:s};break;case un:u={x:t.x-n.width,y:s};break;default:u={x:t.x,y:t.y}}var l=i?Xp(i):null;if(l!=null){var f=l==="y"?"height":"width";switch(o){case zo:u[l]=u[l]-(t[f]/2-n[f]/2);break;case ds:u[l]=u[l]+(t[f]/2-n[f]/2);break}}return u}function fs(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,a=o===void 0?e.strategy:o,s=n.boundary,u=s===void 0?AN:s,l=n.rootBoundary,f=l===void 0?_1:l,h=n.elementContext,p=h===void 0?Sa:h,y=n.altBoundary,C=y===void 0?!1:y,x=n.padding,N=x===void 0?0:x,w=F1(typeof N!="number"?N:D1(N,bs)),E=p===Sa?LN:Sa,b=e.rects.popper,T=e.elements[C?E:p],R=hO(Wi(T)?T:T.contextElement||vi(e.elements.popper),u,f,a),M=Ho(e.elements.reference),F=L1({reference:M,element:b,strategy:"absolute",placement:i}),A=yf(Object.assign({},b,F)),I=p===Sa?A:M,$={top:R.top-I.top+w.top,bottom:I.bottom-R.bottom+w.bottom,left:R.left-I.left+w.left,right:I.right-R.right+w.right},W=e.modifiersData.offset;if(p===Sa&&W){var Z=W[i];Object.keys($).forEach(function(G){var te=[Ln,An].indexOf(G)>=0?1:-1,Oe=[ln,An].indexOf(G)>=0?"y":"x";$[G]+=Z[Oe]*te})}return $}function mO(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,u=n.allowedAutoPlacements,l=u===void 0?P1:u,f=Wo(r),h=f?s?ey:ey.filter(function(C){return Wo(C)===f}):bs,p=h.filter(function(C){return l.indexOf(C)>=0});p.length===0&&(p=h);var y=p.reduce(function(C,x){return C[x]=fs(e,{placement:x,boundary:i,rootBoundary:o,padding:a})[sr(x)],C},{});return Object.keys(y).sort(function(C,x){return y[C]-y[x]})}function vO(e){if(sr(e)===Zp)return[];var t=Tl(e);return[ry(e),t,ry(t)]}function yO(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!0:a,u=n.fallbackPlacements,l=n.padding,f=n.boundary,h=n.rootBoundary,p=n.altBoundary,y=n.flipVariations,C=y===void 0?!0:y,x=n.allowedAutoPlacements,N=t.options.placement,w=sr(N),E=w===N,b=u||(E||!C?[Tl(N)]:vO(N)),T=[N].concat(b).reduce(function(rt,ht){return rt.concat(sr(ht)===Zp?mO(t,{placement:ht,boundary:f,rootBoundary:h,padding:l,flipVariations:C,allowedAutoPlacements:x}):ht)},[]),R=t.rects.reference,M=t.rects.popper,F=new Map,A=!0,I=T[0],$=0;$=0,Oe=te?"width":"height",ge=fs(t,{placement:W,boundary:f,rootBoundary:h,altBoundary:p,padding:l}),xe=te?G?Ln:un:G?An:ln;R[Oe]>M[Oe]&&(xe=Tl(xe));var U=Tl(xe),re=[];if(o&&re.push(ge[Z]<=0),s&&re.push(ge[xe]<=0,ge[U]<=0),re.every(function(rt){return rt})){I=W,A=!1;break}F.set(W,re)}if(A)for(var ne=C?3:1,ke=function(ht){var ct=T.find(function(Ot){var Rt=F.get(Ot);if(Rt)return Rt.slice(0,ht).every(function(jt){return jt})});if(ct)return I=ct,"break"},_e=ne;_e>0;_e--){var Je=ke(_e);if(Je==="break")break}t.placement!==I&&(t.modifiersData[r]._skip=!0,t.placement=I,t.reset=!0)}}const gO={name:"flip",enabled:!0,phase:"main",fn:yO,requiresIfExists:["offset"],data:{_skip:!1}};function oy(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ay(e){return[ln,Ln,An,un].some(function(t){return e[t]>=0})}function wO(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=fs(t,{elementContext:"reference"}),s=fs(t,{altBoundary:!0}),u=oy(a,r),l=oy(s,i,o),f=ay(u),h=ay(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:f,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":h})}const SO={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:wO};function xO(e,t,n){var r=sr(e),i=[un,ln].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[un,Ln].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function CO(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,a=P1.reduce(function(f,h){return f[h]=xO(h,t.rects,o),f},{}),s=a[t.placement],u=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=a}const bO={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:CO};function EO(e){var t=e.state,n=e.name;t.modifiersData[n]=L1({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const kO={name:"popperOffsets",enabled:!0,phase:"read",fn:EO,data:{}};function TO(e){return e==="x"?"y":"x"}function NO(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!1:a,u=n.boundary,l=n.rootBoundary,f=n.altBoundary,h=n.padding,p=n.tether,y=p===void 0?!0:p,C=n.tetherOffset,x=C===void 0?0:C,N=fs(t,{boundary:u,rootBoundary:l,padding:h,altBoundary:f}),w=sr(t.placement),E=Wo(t.placement),b=!E,T=Xp(w),R=TO(T),M=t.modifiersData.popperOffsets,F=t.rects.reference,A=t.rects.popper,I=typeof x=="function"?x(Object.assign({},t.rects,{placement:t.placement})):x,$=typeof I=="number"?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),W=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,Z={x:0,y:0};if(M){if(o){var G,te=T==="y"?ln:un,Oe=T==="y"?An:Ln,ge=T==="y"?"height":"width",xe=M[T],U=xe+N[te],re=xe-N[Oe],ne=y?-A[ge]/2:0,ke=E===zo?F[ge]:A[ge],_e=E===zo?-A[ge]:-F[ge],Je=t.elements.arrow,rt=y&&Je?Qp(Je):{width:0,height:0},ht=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:I1(),ct=ht[te],Ot=ht[Oe],Rt=Ha(0,F[ge],rt[ge]),jt=b?F[ge]/2-ne-Rt-ct-$.mainAxis:ke-Rt-ct-$.mainAxis,er=b?-F[ge]/2+ne+Rt+Ot+$.mainAxis:_e+Rt+Ot+$.mainAxis,qt=t.elements.arrow&&Es(t.elements.arrow),Bn=qt?T==="y"?qt.clientTop||0:qt.clientLeft||0:0,tn=(G=W==null?void 0:W[T])!=null?G:0,Ge=xe+jt-tn-Bn,gi=xe+er-tn,Dr=Ha(y?ru(U,Ge):U,xe,y?Ii(re,gi):re);M[T]=Dr,Z[T]=Dr-xe}if(s){var tr,wi=T==="x"?ln:un,Si=T==="x"?An:Ln,D=M[R],ae=R==="y"?"height":"width",fe=D+N[wi],he=D-N[Si],Pe=[ln,un].indexOf(w)!==-1,le=(tr=W==null?void 0:W[R])!=null?tr:0,qe=Pe?fe:D-F[ae]-A[ae]-le+$.altAxis,It=Pe?D+F[ae]+A[ae]-le-$.altAxis:he,fr=y&&Pe?QN(qe,D,It):Ha(y?qe:fe,D,y?It:he);M[R]=fr,Z[R]=fr-D}t.modifiersData[r]=Z}}const OO={name:"preventOverflow",enabled:!0,phase:"main",fn:NO,requiresIfExists:["offset"]};function RO(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function _O(e){return e===jn(e)||!lr(e)?Jp(e):RO(e)}function PO(e){var t=e.getBoundingClientRect(),n=Vo(t.width)/e.offsetWidth||1,r=Vo(t.height)/e.offsetHeight||1;return n!==1||r!==1}function MO(e,t,n){n===void 0&&(n=!1);var r=lr(t),i=lr(t)&&PO(t),o=vi(t),a=Ho(e,i,n),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&((ci(t)!=="body"||th(o))&&(s=_O(t)),lr(t)?(u=Ho(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=eh(o))),{x:a.left+s.scrollLeft-u.x,y:a.top+s.scrollTop-u.y,width:a.width,height:a.height}}function $O(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var u=t.get(s);u&&i(u)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function IO(e){var t=$O(e);return KN.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function FO(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function DO(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var sy={placement:"bottom",modifiers:[],strategy:"absolute"};function ly(){for(var e=arguments.length,t=new Array(e),n=0;n=0)&&(n[i]=e[i]);return n}const zO={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},VO={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:n}=e.elements;if("removeAttribute"in t){const r=(t.getAttribute("aria-describedby")||"").split(",").filter(i=>i.trim()!==n.id);r.length?t.setAttribute("aria-describedby",r.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:n,reference:r}=e.elements,i=(t=n.getAttribute("role"))==null?void 0:t.toLowerCase();if(n.id&&i==="tooltip"&&"setAttribute"in r){const o=r.getAttribute("aria-describedby");if(o&&o.split(",").indexOf(n.id)!==-1)return;r.setAttribute("aria-describedby",o?`${o},${n.id}`:n.id)}}},HO=[];function WO(e,t,n={}){let{enabled:r=!0,placement:i="bottom",strategy:o="absolute",modifiers:a=HO}=n,s=BO(n,jO);const u=m.useRef(a),l=m.useRef(),f=m.useCallback(()=>{var N;(N=l.current)==null||N.update()},[]),h=m.useCallback(()=>{var N;(N=l.current)==null||N.forceUpdate()},[]),[p,y]=DN(m.useState({placement:i,update:f,forceUpdate:h,attributes:{},styles:{popper:{},arrow:{}}})),C=m.useMemo(()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:N})=>{const w={},E={};Object.keys(N.elements).forEach(b=>{w[b]=N.styles[b],E[b]=N.attributes[b]}),y({state:N,styles:w,attributes:E,update:f,forceUpdate:h,placement:N.placement})}}),[f,h,y]),x=m.useMemo(()=>(Va(u.current,a)||(u.current=a),u.current),[a]);return m.useEffect(()=>{!l.current||!r||l.current.setOptions({placement:i,strategy:o,modifiers:[...x,C,zO]})},[o,i,C,r,x]),m.useEffect(()=>{if(!(!r||e==null||t==null))return l.current=LO(e,t,Object.assign({},s,{placement:i,strategy:o,modifiers:[...x,VO,C]})),()=>{l.current!=null&&(l.current.destroy(),l.current=void 0,y(N=>Object.assign({},N,{attributes:{},styles:{popper:{}}})))}},[r,e,t]),p}function iu(e,t){if(e.contains)return e.contains(t);if(e.compareDocumentPosition)return e===t||!!(e.compareDocumentPosition(t)&16)}var UO=function(){},GO=UO;const qO=fi(GO),uy=()=>{};function KO(e){return e.button===0}function ZO(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const qc=e=>e&&("current"in e?e.current:e),cy={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function YO(e,t=uy,{disabled:n,clickTrigger:r="click"}={}){const i=m.useRef(!1),o=m.useRef(!1),a=m.useCallback(l=>{const f=qc(e);qO(!!f,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),i.current=!f||ZO(l)||!KO(l)||!!iu(f,l.target)||o.current,o.current=!1},[e]),s=wt(l=>{const f=qc(e);f&&iu(f,l.target)&&(o.current=!0)}),u=wt(l=>{i.current||t(l)});m.useEffect(()=>{if(n||e==null)return;const l=Cs(qc(e));let f=(l.defaultView||window).event,h=null;cy[r]&&(h=Xr(l,cy[r],s,!0));const p=Xr(l,r,a,!0),y=Xr(l,r,x=>{if(x===f){f=void 0;return}u(x)});let C=[];return"ontouchstart"in l.documentElement&&(C=[].slice.call(l.body.children).map(x=>Xr(x,"mousemove",uy))),()=>{h==null||h(),p(),y(),C.forEach(x=>x())}},[e,n,r,a,s,u])}function QO(e){const t={};return Array.isArray(e)?(e==null||e.forEach(n=>{t[n.name]=n}),t):e||t}function XO(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function JO({enabled:e,enableEvents:t,placement:n,flip:r,offset:i,fixed:o,containerPadding:a,arrowElement:s,popperConfig:u={}}){var l,f,h,p,y;const C=QO(u.modifiers);return Object.assign({},u,{placement:n,enabled:e,strategy:o?"fixed":u.strategy,modifiers:XO(Object.assign({},C,{eventListeners:{enabled:t,options:(l=C.eventListeners)==null?void 0:l.options},preventOverflow:Object.assign({},C.preventOverflow,{options:a?Object.assign({padding:a},(f=C.preventOverflow)==null?void 0:f.options):(h=C.preventOverflow)==null?void 0:h.options}),offset:{options:Object.assign({offset:i},(p=C.offset)==null?void 0:p.options)},arrow:Object.assign({},C.arrow,{enabled:!!s,options:Object.assign({},(y=C.arrow)==null?void 0:y.options,{element:s})}),flip:Object.assign({enabled:!!r},C.flip)}))})}const eR=["children"];function tR(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}const nR=()=>{};function j1(e={}){const t=m.useContext(Iu),[n,r]=v1(),i=m.useRef(!1),{flip:o,offset:a,rootCloseEvent:s,fixed:u=!1,placement:l,popperConfig:f={},enableEventListeners:h=!0,usePopper:p=!!t}=e,y=(t==null?void 0:t.show)==null?!!e.show:t.show;y&&!i.current&&(i.current=!0);const C=M=>{t==null||t.toggle(!1,M)},{placement:x,setMenu:N,menuElement:w,toggleElement:E}=t||{},b=WO(E,w,JO({placement:l||x||"bottom-start",enabled:p,enableEvents:h??y,offset:a,flip:o,fixed:u,arrowElement:n,popperConfig:f})),T=Object.assign({ref:N||nR,"aria-labelledby":E==null?void 0:E.id},b.attributes.popper,{style:b.styles.popper}),R={show:y,placement:x,hasShown:i.current,toggle:t==null?void 0:t.toggle,popper:p?b:null,arrowProps:p?Object.assign({ref:r},b.attributes.arrow,{style:b.styles.arrow}):{}};return YO(w,C,{clickTrigger:s,disabled:!y}),[T,R]}const rR={usePopper:!0};function nh(e){let{children:t}=e,n=tR(e,eR);const[r,i]=j1(n);return c(Wt,{children:t(r,i)})}nh.displayName="DropdownMenu";nh.defaultProps=rR;const B1={prefix:String(Math.round(Math.random()*1e10)),current:0},z1=Kn.createContext(B1);let iR=!!(typeof window<"u"&&window.document&&window.document.createElement),Kc=new WeakMap;function oR(e=!1){let t=m.useContext(z1),n=m.useRef(null);if(n.current===null&&!e){var r,i;let o=(r=Kn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||r===void 0||(i=r.ReactCurrentOwner)===null||i===void 0?void 0:i.current;if(o){let a=Kc.get(o);a==null?Kc.set(o,{id:t.current,state:o.memoizedState}):o.memoizedState!==a.state&&(t.current=a.id,Kc.delete(o))}n.current=++t.current}return n.current}function V1(e){let t=m.useContext(z1);t===B1&&!iR&&console.warn("When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.");let n=oR(!!e);return e||`react-aria${t.prefix}-${n}`}const H1=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},dy=()=>{};function W1(){const e=V1(),{show:t=!1,toggle:n=dy,setToggle:r,menuElement:i}=m.useContext(Iu)||{},o=m.useCallback(s=>{n(!t,s)},[t,n]),a={id:e,ref:r||dy,onClick:o,"aria-expanded":!!t};return i&&H1(i)&&(a["aria-haspopup"]=!0),[a,{show:t,toggle:n}]}function U1({children:e}){const[t,n]=W1();return c(Wt,{children:e(t,n)})}U1.displayName="DropdownToggle";const aR=m.createContext(null),Ui=(e,t=null)=>e!=null?String(e):t||null,_r=aR,G1=m.createContext(null);G1.displayName="NavContext";const rh=G1,sR="data-rr-ui-",lR="rrUi";function Xo(e){return`${sR}${e}`}function uR(e){return`${lR}${e}`}const cR=["eventKey","disabled","onClick","active","as"];function dR(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}function q1({key:e,href:t,active:n,disabled:r,onClick:i}){const o=m.useContext(_r),a=m.useContext(rh),{activeKey:s}=a||{},u=Ui(e,t),l=n==null&&e!=null?Ui(s)===u:n;return[{onClick:wt(h=>{r||(i==null||i(h),o&&!h.isPropagationStopped()&&o(u,h))}),"aria-disabled":r||void 0,"aria-selected":l,[Xo("dropdown-item")]:""},{isActive:l}]}const K1=m.forwardRef((e,t)=>{let{eventKey:n,disabled:r,onClick:i,active:o,as:a=jp}=e,s=dR(e,cR);const[u]=q1({key:n,href:s.href,disabled:r,onClick:i,active:o});return c(a,Object.assign({},s,{ref:t},u))});K1.displayName="DropdownItem";const Z1=m.createContext(Yo?window:void 0);Z1.Provider;function ih(){return m.useContext(Z1)}function fy(){const e=R1(),t=m.useRef(null),n=m.useCallback(r=>{t.current=r,e()},[e]);return[t,n]}function ks({defaultShow:e,show:t,onSelect:n,onToggle:r,itemSelector:i=`* [${Xo("dropdown-item")}]`,focusFirstItemOnShow:o,placement:a="bottom-start",children:s}){const u=ih(),[l,f]=Fp(t,e,r),[h,p]=fy(),y=h.current,[C,x]=fy(),N=C.current,w=g1(l),E=m.useRef(null),b=m.useRef(!1),T=m.useContext(_r),R=m.useCallback((W,Z,G=Z==null?void 0:Z.type)=>{f(W,{originalEvent:Z,source:G})},[f]),M=wt((W,Z)=>{n==null||n(W,Z),R(!1,Z,"select"),Z.isPropagationStopped()||T==null||T(W,Z)}),F=m.useMemo(()=>({toggle:R,placement:a,show:l,menuElement:y,toggleElement:N,setMenu:p,setToggle:x}),[R,a,l,y,N,p,x]);y&&w&&!l&&(b.current=y.contains(y.ownerDocument.activeElement));const A=wt(()=>{N&&N.focus&&N.focus()}),I=wt(()=>{const W=E.current;let Z=o;if(Z==null&&(Z=h.current&&H1(h.current)?"keyboard":!1),Z===!1||Z==="keyboard"&&!/^key.+$/.test(W))return;const G=wr(h.current,i)[0];G&&G.focus&&G.focus()});m.useEffect(()=>{l?I():b.current&&(b.current=!1,A())},[l,b,A,I]),m.useEffect(()=>{E.current=null});const $=(W,Z)=>{if(!h.current)return null;const G=wr(h.current,i);let te=G.indexOf(W)+Z;return te=Math.max(0,Math.min(te,G.length)),G[te]};return KT(m.useCallback(()=>u.document,[u]),"keydown",W=>{var Z,G;const{key:te}=W,Oe=W.target,ge=(Z=h.current)==null?void 0:Z.contains(Oe),xe=(G=C.current)==null?void 0:G.contains(Oe);if(/input|textarea/i.test(Oe.tagName)&&(te===" "||te!=="Escape"&&ge||te==="Escape"&&Oe.type==="search")||!ge&&!xe||te==="Tab"&&(!h.current||!l))return;E.current=W.type;const re={originalEvent:W,source:W.type};switch(te){case"ArrowUp":{const ne=$(Oe,-1);ne&&ne.focus&&ne.focus(),W.preventDefault();return}case"ArrowDown":if(W.preventDefault(),!l)f(!0,re);else{const ne=$(Oe,1);ne&&ne.focus&&ne.focus()}return;case"Tab":Dp(Oe.ownerDocument,"keyup",ne=>{var ke;(ne.key==="Tab"&&!ne.target||!((ke=h.current)!=null&&ke.contains(ne.target)))&&f(!1,re)},{once:!0});break;case"Escape":te==="Escape"&&(W.preventDefault(),W.stopPropagation()),f(!1,re);break}}),c(_r.Provider,{value:M,children:c(Iu.Provider,{value:F,children:s})})}ks.displayName="Dropdown";ks.Menu=nh;ks.Toggle=U1;ks.Item=K1;const Y1=m.createContext({});Y1.displayName="DropdownContext";const Q1=Y1,X1=m.forwardRef(({bsPrefix:e,className:t,eventKey:n,disabled:r=!1,onClick:i,active:o,as:a=Pu,...s},u)=>{const l=$e(e,"dropdown-item"),[f,h]=q1({key:n,href:s.href,disabled:r,onClick:i,active:o});return c(a,{...s,...f,ref:u,className:be(t,l,h.isActive&&"active",r&&"disabled")})});X1.displayName="DropdownItem";const fR=X1,J1=m.createContext(null);J1.displayName="InputGroupContext";const oh=J1,eS=m.createContext(null);eS.displayName="NavbarContext";const tS=eS;function nS(e,t){return e}const ao=De.oneOf(["start","end"]),pR=De.oneOfType([ao,De.shape({sm:ao}),De.shape({md:ao}),De.shape({lg:ao}),De.shape({xl:ao}),De.shape({xxl:ao}),De.object]),hR={flip:!0};function rS(e,t,n){const r=n?"top-end":"top-start",i=n?"top-start":"top-end",o=n?"bottom-end":"bottom-start",a=n?"bottom-start":"bottom-end",s=n?"right-start":"left-start",u=n?"right-end":"left-end",l=n?"left-start":"right-start",f=n?"left-end":"right-end";let h=e?a:o;return t==="up"?h=e?i:r:t==="end"?h=e?f:l:t==="start"?h=e?u:s:t==="down-centered"?h="bottom":t==="up-centered"&&(h="top"),h}const ah=m.forwardRef(({bsPrefix:e,className:t,align:n,rootCloseEvent:r,flip:i,show:o,renderOnMount:a,as:s="div",popperConfig:u,variant:l,...f},h)=>{let p=!1;const y=m.useContext(tS),C=$e(e,"dropdown-menu"),{align:x,drop:N,isRTL:w}=m.useContext(Q1);n=n||x;const E=m.useContext(oh),b=[];if(n)if(typeof n=="object"){const W=Object.keys(n);if(W.length){const Z=W[0],G=n[Z];p=G==="start",b.push(`${C}-${Z}-${G}`)}}else n==="end"&&(p=!0);const T=rS(p,N,w),[R,{hasShown:M,popper:F,show:A,toggle:I}]=j1({flip:i,rootCloseEvent:r,show:o,usePopper:!y&&b.length===0,offset:[0,2],popperConfig:u,placement:T});if(R.ref=Yi(nS(h),R.ref),hf(()=>{A&&(F==null||F.update())},[A]),!M&&!a&&!E)return null;typeof s!="string"&&(R.show=A,R.close=()=>I==null?void 0:I(!1),R.align=n);let $=f.style;return F!=null&&F.placement&&($={...f.style,...R.style},f["x-placement"]=F.placement),c(s,{...f,...R,style:$,...(b.length||y)&&{"data-bs-popper":"static"},className:be(t,C,A&&"show",p&&`${C}-end`,l&&`${C}-${l}`,...b)})});ah.displayName="DropdownMenu";ah.defaultProps=hR;const iS=ah,oS=m.forwardRef(({bsPrefix:e,split:t,className:n,childBsPrefix:r,as:i=ee,...o},a)=>{const s=$e(e,"dropdown-toggle"),u=m.useContext(Iu);r!==void 0&&(o.bsPrefix=r);const[l]=W1();return l.ref=Yi(l.ref,nS(a)),c(i,{className:be(n,s,t&&`${s}-split`,(u==null?void 0:u.show)&&"show"),...l,...o})});oS.displayName="DropdownToggle";const aS=oS,mR=Nt("dropdown-header",{defaultProps:{role:"heading"}}),vR=Nt("dropdown-divider",{Component:"hr",defaultProps:{role:"separator"}}),yR=Nt("dropdown-item-text",{Component:"span"}),gR={navbar:!1,align:"start",autoClose:!0,drop:"down"},sh=m.forwardRef((e,t)=>{const{bsPrefix:n,drop:r,show:i,className:o,align:a,onSelect:s,onToggle:u,focusFirstItemOnShow:l,as:f="div",navbar:h,autoClose:p,...y}=xs(e,{show:"onToggle"}),C=m.useContext(oh),x=$e(n,"dropdown"),N=Yw(),w=F=>p===!1?F==="click":p==="inside"?F!=="rootClose":p==="outside"?F!=="select":!0,E=wt((F,A)=>{A.originalEvent.currentTarget===document&&(A.source!=="keydown"||A.originalEvent.key==="Escape")&&(A.source="rootClose"),w(A.source)&&(u==null||u(F,A))}),T=rS(a==="end",r,N),R=m.useMemo(()=>({align:a,drop:r,isRTL:N}),[a,r,N]),M={down:x,"down-centered":`${x}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return c(Q1.Provider,{value:R,children:c(ks,{placement:T,show:i,onSelect:s,onToggle:E,focusFirstItemOnShow:l,itemSelector:`.${x}-item:not(.disabled):not(:disabled)`,children:C?y.children:c(f,{...y,ref:t,className:be(o,i&&"show",M[r])})})})});sh.displayName="Dropdown";sh.defaultProps=gR;const si=Object.assign(sh,{Toggle:aS,Menu:iS,Item:fR,ItemText:yR,Divider:vR,Header:mR}),wR={id:De.string,href:De.string,onClick:De.func,title:De.node.isRequired,disabled:De.bool,align:pR,menuRole:De.string,renderMenuOnMount:De.bool,rootCloseEvent:De.string,menuVariant:De.oneOf(["dark"]),flip:De.bool,bsPrefix:De.string,variant:De.string,size:De.string},lh=m.forwardRef(({title:e,children:t,bsPrefix:n,rootCloseEvent:r,variant:i,size:o,menuRole:a,renderMenuOnMount:s,disabled:u,href:l,id:f,menuVariant:h,flip:p,...y},C)=>g(si,{ref:C,...y,children:[c(aS,{id:f,href:l,size:o,variant:i,disabled:u,childBsPrefix:n,children:e}),c(iS,{role:a,renderOnMount:s,rootCloseEvent:r,variant:h,flip:p,children:t})]}));lh.displayName="DropdownButton";lh.propTypes=wR;const uh=lh,SR={type:De.string,tooltip:De.bool,as:De.elementType},ch=m.forwardRef(({as:e="div",className:t,type:n="valid",tooltip:r=!1,...i},o)=>c(e,{...i,ref:o,className:be(t,`${n}-${r?"tooltip":"feedback"}`)}));ch.displayName="Feedback";ch.propTypes=SR;const sS=ch,xR=m.createContext({}),Pr=xR,lS=m.forwardRef(({id:e,bsPrefix:t,className:n,type:r="checkbox",isValid:i=!1,isInvalid:o=!1,as:a="input",...s},u)=>{const{controlId:l}=m.useContext(Pr);return t=$e(t,"form-check-input"),c(a,{...s,ref:u,type:r,id:e||l,className:be(n,t,i&&"is-valid",o&&"is-invalid")})});lS.displayName="FormCheckInput";const Du=lS,uS=m.forwardRef(({bsPrefix:e,className:t,htmlFor:n,...r},i)=>{const{controlId:o}=m.useContext(Pr);return e=$e(e,"form-check-label"),c("label",{...r,ref:i,htmlFor:n||o,className:be(t,e)})});uS.displayName="FormCheckLabel";const gf=uS,cS=m.forwardRef(({id:e,bsPrefix:t,bsSwitchPrefix:n,inline:r=!1,reverse:i=!1,disabled:o=!1,isValid:a=!1,isInvalid:s=!1,feedbackTooltip:u=!1,feedback:l,feedbackType:f,className:h,style:p,title:y="",type:C="checkbox",label:x,children:N,as:w="input",...E},b)=>{t=$e(t,"form-check"),n=$e(n,"form-switch");const{controlId:T}=m.useContext(Pr),R=m.useMemo(()=>({controlId:e||T}),[T,e]),M=!N&&x!=null&&x!==!1||MN(N,gf),F=c(Du,{...E,type:C==="switch"?"checkbox":C,ref:b,isValid:a,isInvalid:s,disabled:o,as:w});return c(Pr.Provider,{value:R,children:c("div",{style:p,className:be(h,M&&t,r&&`${t}-inline`,i&&`${t}-reverse`,C==="switch"&&n),children:N||g(Wt,{children:[F,M&&c(gf,{title:y,children:x}),l&&c(sS,{type:f,tooltip:u,children:l})]})})})});cS.displayName="FormCheck";const ou=Object.assign(cS,{Input:Du,Label:gf}),dS=m.forwardRef(({bsPrefix:e,type:t,size:n,htmlSize:r,id:i,className:o,isValid:a=!1,isInvalid:s=!1,plaintext:u,readOnly:l,as:f="input",...h},p)=>{const{controlId:y}=m.useContext(Pr);e=$e(e,"form-control");let C;return u?C={[`${e}-plaintext`]:!0}:C={[e]:!0,[`${e}-${n}`]:n},c(f,{...h,type:t,size:r,ref:p,readOnly:l,id:i||y,className:be(o,C,a&&"is-valid",s&&"is-invalid",t==="color"&&`${e}-color`)})});dS.displayName="FormControl";const CR=Object.assign(dS,{Feedback:sS}),bR=Nt("form-floating"),fS=m.forwardRef(({controlId:e,as:t="div",...n},r)=>{const i=m.useMemo(()=>({controlId:e}),[e]);return c(Pr.Provider,{value:i,children:c(t,{...n,ref:r})})});fS.displayName="FormGroup";const pS=fS,ER={column:!1,visuallyHidden:!1},dh=m.forwardRef(({as:e="label",bsPrefix:t,column:n,visuallyHidden:r,className:i,htmlFor:o,...a},s)=>{const{controlId:u}=m.useContext(Pr);t=$e(t,"form-label");let l="col-form-label";typeof n=="string"&&(l=`${l} ${l}-${n}`);const f=be(i,t,r&&"visually-hidden",n&&l);return o=o||u,n?c(Xe,{ref:s,as:"label",className:f,htmlFor:o,...a}):c(e,{ref:s,className:f,htmlFor:o,...a})});dh.displayName="FormLabel";dh.defaultProps=ER;const kR=dh,hS=m.forwardRef(({bsPrefix:e,className:t,id:n,...r},i)=>{const{controlId:o}=m.useContext(Pr);return e=$e(e,"form-range"),c("input",{...r,type:"range",ref:i,className:be(t,e),id:n||o})});hS.displayName="FormRange";const TR=hS,mS=m.forwardRef(({bsPrefix:e,size:t,htmlSize:n,className:r,isValid:i=!1,isInvalid:o=!1,id:a,...s},u)=>{const{controlId:l}=m.useContext(Pr);return e=$e(e,"form-select"),c("select",{...s,size:n,ref:u,className:be(r,e,t&&`${e}-${t}`,i&&"is-valid",o&&"is-invalid"),id:a||l})});mS.displayName="FormSelect";const NR=mS,vS=m.forwardRef(({bsPrefix:e,className:t,as:n="small",muted:r,...i},o)=>(e=$e(e,"form-text"),c(n,{...i,ref:o,className:be(t,e,r&&"text-muted")})));vS.displayName="FormText";const OR=vS,yS=m.forwardRef((e,t)=>c(ou,{...e,ref:t,type:"switch"}));yS.displayName="Switch";const RR=Object.assign(yS,{Input:ou.Input,Label:ou.Label}),gS=m.forwardRef(({bsPrefix:e,className:t,children:n,controlId:r,label:i,...o},a)=>(e=$e(e,"form-floating"),g(pS,{ref:a,className:be(t,e),controlId:r,...o,children:[n,c("label",{htmlFor:r,children:i})]})));gS.displayName="FloatingLabel";const _R=gS,PR={_ref:De.any,validated:De.bool,as:De.elementType},fh=m.forwardRef(({className:e,validated:t,as:n="form",...r},i)=>c(n,{...r,ref:i,className:be(e,t&&"was-validated")}));fh.displayName="Form";fh.propTypes=PR;const j=Object.assign(fh,{Group:pS,Control:CR,Floating:bR,Check:ou,Switch:RR,Label:kR,Text:OR,Range:TR,Select:NR,FloatingLabel:_R}),ph=Nt("input-group-text",{Component:"span"}),MR=e=>c(ph,{children:c(Du,{type:"checkbox",...e})}),$R=e=>c(ph,{children:c(Du,{type:"radio",...e})}),wS=m.forwardRef(({bsPrefix:e,size:t,hasValidation:n,className:r,as:i="div",...o},a)=>{e=$e(e,"input-group");const s=m.useMemo(()=>({}),[]);return c(oh.Provider,{value:s,children:c(i,{ref:a,...o,className:be(r,e,t&&`${e}-${t}`,n&&"has-validation")})})});wS.displayName="InputGroup";const Gt=Object.assign(wS,{Text:ph,Radio:$R,Checkbox:MR}),IR=m.createContext(null),Jo=IR,FR=["as","active","eventKey"];function DR(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}function SS({key:e,onClick:t,active:n,id:r,role:i,disabled:o}){const a=m.useContext(_r),s=m.useContext(rh),u=m.useContext(Jo);let l=n;const f={role:i};if(s){!i&&s.role==="tablist"&&(f.role="tab");const h=s.getControllerId(e??null),p=s.getControlledId(e??null);f[Xo("event-key")]=e,f.id=h||r,l=n==null&&e!=null?s.activeKey===e:n,(l||!(u!=null&&u.unmountOnExit)&&!(u!=null&&u.mountOnEnter))&&(f["aria-controls"]=p)}return f.role==="tab"&&(f["aria-selected"]=l,l||(f.tabIndex=-1),o&&(f.tabIndex=-1,f["aria-disabled"]=!0)),f.onClick=wt(h=>{o||(t==null||t(h),e!=null&&a&&!h.isPropagationStopped()&&a(e,h))}),[f,{isActive:l}]}const xS=m.forwardRef((e,t)=>{let{as:n=jp,active:r,eventKey:i}=e,o=DR(e,FR);const[a,s]=SS(Object.assign({key:Ui(i,o.href),active:r},o));return a[Xo("active")]=s.isActive,c(n,Object.assign({},o,a,{ref:t}))});xS.displayName="NavItem";const AR=xS,LR=["as","onSelect","activeKey","role","onKeyDown"];function jR(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}const py=()=>{},hy=Xo("event-key"),CS=m.forwardRef((e,t)=>{let{as:n="div",onSelect:r,activeKey:i,role:o,onKeyDown:a}=e,s=jR(e,LR);const u=R1(),l=m.useRef(!1),f=m.useContext(_r),h=m.useContext(Jo);let p,y;h&&(o=o||"tablist",i=h.activeKey,p=h.getControlledId,y=h.getControllerId);const C=m.useRef(null),x=b=>{const T=C.current;if(!T)return null;const R=wr(T,`[${hy}]:not([aria-disabled=true])`),M=T.querySelector("[aria-selected=true]");if(!M||M!==document.activeElement)return null;const F=R.indexOf(M);if(F===-1)return null;let A=F+b;return A>=R.length&&(A=0),A<0&&(A=R.length-1),R[A]},N=(b,T)=>{b!=null&&(r==null||r(b,T),f==null||f(b,T))},w=b=>{if(a==null||a(b),!h)return;let T;switch(b.key){case"ArrowLeft":case"ArrowUp":T=x(-1);break;case"ArrowRight":case"ArrowDown":T=x(1);break;default:return}T&&(b.preventDefault(),N(T.dataset[uR("EventKey")]||null,b),l.current=!0,u())};m.useEffect(()=>{if(C.current&&l.current){const b=C.current.querySelector(`[${hy}][aria-selected=true]`);b==null||b.focus()}l.current=!1});const E=Yi(t,C);return c(_r.Provider,{value:N,children:c(rh.Provider,{value:{role:o,activeKey:Ui(i),getControlledId:p||py,getControllerId:y||py},children:c(n,Object.assign({},s,{onKeyDown:w,ref:E,role:o}))})})});CS.displayName="Nav";const BR=Object.assign(CS,{Item:AR});var il;function my(e){if((!il&&il!==0||e)&&Yo){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),il=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return il}function Zc(e){e===void 0&&(e=Cs());try{var t=e.activeElement;return!t||!t.nodeName?null:t}catch{return e.body}}function zR(e=document){const t=e.defaultView;return Math.abs(t.innerWidth-e.documentElement.clientWidth)}const vy=Xo("modal-open");class VR{constructor({ownerDocument:t,handleContainerOverflow:n=!0,isRTL:r=!1}={}){this.handleContainerOverflow=n,this.isRTL=r,this.modals=[],this.ownerDocument=t}getScrollbarWidth(){return zR(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(t){}removeModalAttributes(t){}setContainerStyle(t){const n={overflow:"hidden"},r=this.isRTL?"paddingLeft":"paddingRight",i=this.getElement();t.style={overflow:i.style.overflow,[r]:i.style[r]},t.scrollBarWidth&&(n[r]=`${parseInt(Er(i,r)||"0",10)+t.scrollBarWidth}px`),i.setAttribute(vy,""),Er(i,n)}reset(){[...this.modals].forEach(t=>this.remove(t))}removeContainerStyle(t){const n=this.getElement();n.removeAttribute(vy),Object.assign(n.style,t.style)}add(t){let n=this.modals.indexOf(t);return n!==-1||(n=this.modals.length,this.modals.push(t),this.setModalAttributes(t),n!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),n}remove(t){const n=this.modals.indexOf(t);n!==-1&&(this.modals.splice(n,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(t))}isTopModal(t){return!!this.modals.length&&this.modals[this.modals.length-1]===t}}const hh=VR,Yc=(e,t)=>Yo?e==null?(t||Cs()).body:(typeof e=="function"&&(e=e()),e&&"current"in e&&(e=e.current),e&&("nodeType"in e||e.getBoundingClientRect)?e:null):null;function HR(e,t){const n=ih(),[r,i]=m.useState(()=>Yc(e,n==null?void 0:n.document));if(!r){const o=Yc(e);o&&i(o)}return m.useEffect(()=>{t&&r&&t(r)},[t,r]),m.useEffect(()=>{const o=Yc(e);o!==r&&i(o)},[e,r]),r}function mh({children:e,in:t,onExited:n,mountOnEnter:r,unmountOnExit:i}){const o=m.useRef(null),a=m.useRef(t),s=wt(n);m.useEffect(()=>{t?a.current=!0:s(o.current)},[t,s]);const u=Yi(o,e.ref),l=m.cloneElement(e,{ref:u});return t?l:i||!a.current&&r?null:l}function WR({in:e,onTransition:t}){const n=m.useRef(null),r=m.useRef(!0),i=wt(t);return hf(()=>{if(!n.current)return;let o=!1;return i({in:e,element:n.current,initial:r.current,isStale:()=>o}),()=>{o=!0}},[e,i]),hf(()=>(r.current=!1,()=>{r.current=!0}),[]),n}function UR({children:e,in:t,onExited:n,onEntered:r,transition:i}){const[o,a]=m.useState(!t);t&&o&&a(!1);const s=WR({in:!!t,onTransition:l=>{const f=()=>{l.isStale()||(l.in?r==null||r(l.element,l.initial):(a(!0),n==null||n(l.element)))};Promise.resolve(i(l)).then(f,h=>{throw l.in||a(!0),h})}}),u=Yi(s,e.ref);return o&&!t?null:m.cloneElement(e,{ref:u})}function yy(e,t,n){return e?c(e,Object.assign({},n)):t?c(UR,Object.assign({},n,{transition:t})):c(mh,Object.assign({},n))}const GR=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function qR(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}let Qc;function KR(e){return Qc||(Qc=new hh({ownerDocument:e==null?void 0:e.document})),Qc}function ZR(e){const t=ih(),n=e||KR(t),r=m.useRef({dialog:null,backdrop:null});return Object.assign(r.current,{add:()=>n.add(r.current),remove:()=>n.remove(r.current),isTopModal:()=>n.isTopModal(r.current),setDialogRef:m.useCallback(i=>{r.current.dialog=i},[]),setBackdropRef:m.useCallback(i=>{r.current.backdrop=i},[])})}const bS=m.forwardRef((e,t)=>{let{show:n=!1,role:r="dialog",className:i,style:o,children:a,backdrop:s=!0,keyboard:u=!0,onBackdropClick:l,onEscapeKeyDown:f,transition:h,runTransition:p,backdropTransition:y,runBackdropTransition:C,autoFocus:x=!0,enforceFocus:N=!0,restoreFocus:w=!0,restoreFocusOptions:E,renderDialog:b,renderBackdrop:T=Ge=>c("div",Object.assign({},Ge)),manager:R,container:M,onShow:F,onHide:A=()=>{},onExit:I,onExited:$,onExiting:W,onEnter:Z,onEntering:G,onEntered:te}=e,Oe=qR(e,GR);const ge=HR(M),xe=ZR(R),U=y1(),re=g1(n),[ne,ke]=m.useState(!n),_e=m.useRef(null);m.useImperativeHandle(t,()=>xe,[xe]),Yo&&!re&&n&&(_e.current=Zc()),n&&ne&&ke(!1);const Je=wt(()=>{if(xe.add(),jt.current=Xr(document,"keydown",Ot),Rt.current=Xr(document,"focus",()=>setTimeout(ht),!0),F&&F(),x){const Ge=Zc(document);xe.dialog&&Ge&&!iu(xe.dialog,Ge)&&(_e.current=Ge,xe.dialog.focus())}}),rt=wt(()=>{if(xe.remove(),jt.current==null||jt.current(),Rt.current==null||Rt.current(),w){var Ge;(Ge=_e.current)==null||Ge.focus==null||Ge.focus(E),_e.current=null}});m.useEffect(()=>{!n||!ge||Je()},[n,ge,Je]),m.useEffect(()=>{ne&&rt()},[ne,rt]),N1(()=>{rt()});const ht=wt(()=>{if(!N||!U()||!xe.isTopModal())return;const Ge=Zc();xe.dialog&&Ge&&!iu(xe.dialog,Ge)&&xe.dialog.focus()}),ct=wt(Ge=>{Ge.target===Ge.currentTarget&&(l==null||l(Ge),s===!0&&A())}),Ot=wt(Ge=>{u&&Ge.keyCode===27&&xe.isTopModal()&&(f==null||f(Ge),Ge.defaultPrevented||A())}),Rt=m.useRef(),jt=m.useRef(),er=(...Ge)=>{ke(!0),$==null||$(...Ge)};if(!ge)return null;const qt=Object.assign({role:r,ref:xe.setDialogRef,"aria-modal":r==="dialog"?!0:void 0},Oe,{style:o,className:i,tabIndex:-1});let Bn=b?b(qt):c("div",Object.assign({},qt,{children:m.cloneElement(a,{role:"document"})}));Bn=yy(h,p,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!n,onExit:I,onExiting:W,onExited:er,onEnter:Z,onEntering:G,onEntered:te,children:Bn});let tn=null;return s&&(tn=T({ref:xe.setBackdropRef,onClick:ct}),tn=yy(y,C,{in:!!n,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:tn})),c(Wt,{children:Eo.createPortal(g(Wt,{children:[tn,Bn]}),ge)})});bS.displayName="Modal";const YR=Object.assign(bS,{Manager:hh});function QR(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function XR(e,t){e.classList?e.classList.add(t):QR(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function gy(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function JR(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=gy(e.className,t):e.setAttribute("class",gy(e.className&&e.className.baseVal||"",t))}const so={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class e_ extends hh{adjustAndStore(t,n,r){const i=n.style[t];n.dataset[t]=i,Er(n,{[t]:`${parseFloat(Er(n,t))+r}px`})}restore(t,n){const r=n.dataset[t];r!==void 0&&(delete n.dataset[t],Er(n,{[t]:r}))}setContainerStyle(t){super.setContainerStyle(t);const n=this.getElement();if(XR(n,"modal-open"),!t.scrollBarWidth)return;const r=this.isRTL?"paddingLeft":"paddingRight",i=this.isRTL?"marginLeft":"marginRight";wr(n,so.FIXED_CONTENT).forEach(o=>this.adjustAndStore(r,o,t.scrollBarWidth)),wr(n,so.STICKY_CONTENT).forEach(o=>this.adjustAndStore(i,o,-t.scrollBarWidth)),wr(n,so.NAVBAR_TOGGLER).forEach(o=>this.adjustAndStore(i,o,t.scrollBarWidth))}removeContainerStyle(t){super.removeContainerStyle(t);const n=this.getElement();JR(n,"modal-open");const r=this.isRTL?"paddingLeft":"paddingRight",i=this.isRTL?"marginLeft":"marginRight";wr(n,so.FIXED_CONTENT).forEach(o=>this.restore(r,o)),wr(n,so.STICKY_CONTENT).forEach(o=>this.restore(i,o)),wr(n,so.NAVBAR_TOGGLER).forEach(o=>this.restore(i,o))}}let Xc;function t_(e){return Xc||(Xc=new e_(e)),Xc}const n_=Nt("modal-body"),r_=m.createContext({onHide(){}}),ES=r_,kS=m.forwardRef(({bsPrefix:e,className:t,contentClassName:n,centered:r,size:i,fullscreen:o,children:a,scrollable:s,...u},l)=>{e=$e(e,"modal");const f=`${e}-dialog`,h=typeof o=="string"?`${e}-fullscreen-${o}`:`${e}-fullscreen`;return c("div",{...u,ref:l,className:be(f,t,i&&`${e}-${i}`,r&&`${f}-centered`,s&&`${f}-scrollable`,o&&h),children:c("div",{className:be(`${e}-content`,n),children:a})})});kS.displayName="ModalDialog";const TS=kS,i_=Nt("modal-footer"),o_={closeLabel:"Close",closeButton:!1},NS=m.forwardRef(({closeLabel:e,closeVariant:t,closeButton:n,onHide:r,children:i,...o},a)=>{const s=m.useContext(ES),u=wt(()=>{s==null||s.onHide(),r==null||r()});return g("div",{ref:a,...o,children:[i,n&&c(zp,{"aria-label":e,variant:t,onClick:u})]})});NS.defaultProps=o_;const a_=NS,s_={closeLabel:"Close",closeButton:!1},vh=m.forwardRef(({bsPrefix:e,className:t,...n},r)=>(e=$e(e,"modal-header"),c(a_,{ref:r,...n,className:be(t,e)})));vh.displayName="ModalHeader";vh.defaultProps=s_;const l_=vh,u_=$u("h4"),c_=Nt("modal-title",{Component:u_}),d_={show:!1,backdrop:!0,keyboard:!0,autoFocus:!0,enforceFocus:!0,restoreFocus:!0,animation:!0,dialogAs:TS};function f_(e){return c(Qo,{...e,timeout:null})}function p_(e){return c(Qo,{...e,timeout:null})}const yh=m.forwardRef(({bsPrefix:e,className:t,style:n,dialogClassName:r,contentClassName:i,children:o,dialogAs:a,"aria-labelledby":s,"aria-describedby":u,"aria-label":l,show:f,animation:h,backdrop:p,keyboard:y,onEscapeKeyDown:C,onShow:x,onHide:N,container:w,autoFocus:E,enforceFocus:b,restoreFocus:T,restoreFocusOptions:R,onEntered:M,onExit:F,onExiting:A,onEnter:I,onEntering:$,onExited:W,backdropClassName:Z,manager:G,...te},Oe)=>{const[ge,xe]=m.useState({}),[U,re]=m.useState(!1),ne=m.useRef(!1),ke=m.useRef(!1),_e=m.useRef(null),[Je,rt]=v1(),ht=Yi(Oe,rt),ct=wt(N),Ot=Yw();e=$e(e,"modal");const Rt=m.useMemo(()=>({onHide:ct}),[ct]);function jt(){return G||t_({isRTL:Ot})}function er(le){if(!Yo)return;const qe=jt().getScrollbarWidth()>0,It=le.scrollHeight>Cs(le).documentElement.clientHeight;xe({paddingRight:qe&&!It?my():void 0,paddingLeft:!qe&&It?my():void 0})}const qt=wt(()=>{Je&&er(Je.dialog)});N1(()=>{pf(window,"resize",qt),_e.current==null||_e.current()});const Bn=()=>{ne.current=!0},tn=le=>{ne.current&&Je&&le.target===Je.dialog&&(ke.current=!0),ne.current=!1},Ge=()=>{re(!0),_e.current=Jw(Je.dialog,()=>{re(!1)})},gi=le=>{le.target===le.currentTarget&&Ge()},Dr=le=>{if(p==="static"){gi(le);return}if(ke.current||le.target!==le.currentTarget){ke.current=!1;return}N==null||N()},tr=le=>{y?C==null||C(le):(le.preventDefault(),p==="static"&&Ge())},wi=(le,qe)=>{le&&er(le),I==null||I(le,qe)},Si=le=>{_e.current==null||_e.current(),F==null||F(le)},D=(le,qe)=>{$==null||$(le,qe),Dp(window,"resize",qt)},ae=le=>{le&&(le.style.display=""),W==null||W(le),pf(window,"resize",qt)},fe=m.useCallback(le=>c("div",{...le,className:be(`${e}-backdrop`,Z,!h&&"show")}),[h,Z,e]),he={...n,...ge};he.display="block";const Pe=le=>c("div",{role:"dialog",...le,style:he,className:be(t,e,U&&`${e}-static`,!h&&"show"),onClick:p?Dr:void 0,onMouseUp:tn,"aria-label":l,"aria-labelledby":s,"aria-describedby":u,children:c(a,{...te,onMouseDown:Bn,className:r,contentClassName:i,children:o})});return c(ES.Provider,{value:Rt,children:c(YR,{show:f,ref:ht,backdrop:p,container:w,keyboard:!0,autoFocus:E,enforceFocus:b,restoreFocus:T,restoreFocusOptions:R,onEscapeKeyDown:tr,onShow:x,onHide:N,onEnter:wi,onEntering:D,onEntered:M,onExit:Si,onExiting:A,onExited:ae,manager:jt(),transition:h?f_:void 0,backdropTransition:h?p_:void 0,renderBackdrop:fe,renderDialog:Pe})})});yh.displayName="Modal";yh.defaultProps=d_;const z=Object.assign(yh,{Body:n_,Header:l_,Title:c_,Footer:i_,Dialog:TS,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150});var wy={exports:{}},wf={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(r){function i(a,s,u,l,f,h){var p=l||"<>",y=h||u;if(s[u]==null)return a?new Error("Required "+f+" `"+y+"` was not specified "+("in `"+p+"`.")):null;for(var C=arguments.length,x=Array(C>6?C-6:0),N=6;N{e=$e(e,"nav-link");const[s,u]=SS({key:Ui(i,o.href),active:r,...o});return c(n,{...o,...s,ref:a,className:be(t,e,o.disabled&&"disabled",u.isActive&&"active")})});gh.displayName="NavLink";gh.defaultProps=m_;const RS=gh,v_={justify:!1,fill:!1},wh=m.forwardRef((e,t)=>{const{as:n="div",bsPrefix:r,variant:i,fill:o,justify:a,navbar:s,navbarScroll:u,className:l,activeKey:f,...h}=xs(e,{activeKey:"onSelect"}),p=$e(r,"nav");let y,C,x=!1;const N=m.useContext(tS),w=m.useContext(E1);return N?(y=N.bsPrefix,x=s??!0):w&&({cardHeaderBsPrefix:C}=w),c(BR,{as:n,ref:t,activeKey:f,className:be(l,{[p]:!x,[`${y}-nav`]:x,[`${y}-nav-scroll`]:x&&u,[`${C}-${i}`]:!!C,[`${p}-${i}`]:!!i,[`${p}-fill`]:o,[`${p}-justified`]:a}),...h})});wh.displayName="Nav";wh.defaultProps=v_;const y_=Object.assign(wh,{Item:OS,Link:RS}),Sy=1e3,g_={min:0,max:100,animated:!1,isChild:!1,visuallyHidden:!1,striped:!1};function w_(e,t,n){const r=(e-t)/(n-t)*100;return Math.round(r*Sy)/Sy}function xy({min:e,now:t,max:n,label:r,visuallyHidden:i,striped:o,animated:a,className:s,style:u,variant:l,bsPrefix:f,...h},p){return c("div",{ref:p,...h,role:"progressbar",className:be(s,`${f}-bar`,{[`bg-${l}`]:l,[`${f}-bar-animated`]:a,[`${f}-bar-striped`]:a||o}),style:{width:`${w_(t,e,n)}%`,...u},"aria-valuenow":t,"aria-valuemin":e,"aria-valuemax":n,children:i?c("span",{className:"visually-hidden",children:r}):r})}const Sh=m.forwardRef(({isChild:e,...t},n)=>{if(t.bsPrefix=$e(t.bsPrefix,"progress"),e)return xy(t,n);const{min:r,now:i,max:o,label:a,visuallyHidden:s,striped:u,animated:l,bsPrefix:f,variant:h,className:p,children:y,...C}=t;return c("div",{ref:n,...C,className:be(p,f),children:y?mf(y,x=>m.cloneElement(x,{isChild:!0})):xy({min:r,now:i,max:o,label:a,visuallyHidden:s,striped:u,animated:l,bsPrefix:f,variant:h},n)})});Sh.displayName="ProgressBar";Sh.defaultProps=g_;const xa=Sh,_S=m.forwardRef(({bsPrefix:e,className:t,as:n="div",...r},i)=>{const o=$e(e,"row"),a=Kw(),s=Zw(),u=`${o}-cols`,l=[];return a.forEach(f=>{const h=r[f];delete r[f];let p;h!=null&&typeof h=="object"?{cols:p}=h:p=h;const y=f!==s?`-${f}`:"";p!=null&&l.push(`${u}${y}-${p}`)}),c(n,{ref:i,...r,className:be(t,o,...l)})});_S.displayName="Row";const ur=_S,S_=["active","eventKey","mountOnEnter","transition","unmountOnExit","role","onEnter","onEntering","onEntered","onExit","onExiting","onExited"],x_=["activeKey","getControlledId","getControllerId"],C_=["as"];function Sf(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}function PS(e){let{active:t,eventKey:n,mountOnEnter:r,transition:i,unmountOnExit:o,role:a="tabpanel",onEnter:s,onEntering:u,onEntered:l,onExit:f,onExiting:h,onExited:p}=e,y=Sf(e,S_);const C=m.useContext(Jo);if(!C)return[Object.assign({},y,{role:a}),{eventKey:n,isActive:t,mountOnEnter:r,transition:i,unmountOnExit:o,onEnter:s,onEntering:u,onEntered:l,onExit:f,onExiting:h,onExited:p}];const{activeKey:x,getControlledId:N,getControllerId:w}=C,E=Sf(C,x_),b=Ui(n);return[Object.assign({},y,{role:a,id:N(n),"aria-labelledby":w(n)}),{eventKey:n,isActive:t==null&&b!=null?Ui(x)===b:t,transition:i||E.transition,mountOnEnter:r??E.mountOnEnter,unmountOnExit:o??E.unmountOnExit,onEnter:s,onEntering:u,onEntered:l,onExit:f,onExiting:h,onExited:p}]}const MS=m.forwardRef((e,t)=>{let{as:n="div"}=e,r=Sf(e,C_);const[i,{isActive:o,onEnter:a,onEntering:s,onEntered:u,onExit:l,onExiting:f,onExited:h,mountOnEnter:p,unmountOnExit:y,transition:C=mh}]=PS(r);return c(Jo.Provider,{value:null,children:c(_r.Provider,{value:null,children:c(C,{in:o,onEnter:a,onEntering:s,onEntered:u,onExit:l,onExiting:f,onExited:h,mountOnEnter:p,unmountOnExit:y,children:c(n,Object.assign({},i,{ref:t,hidden:!o,"aria-hidden":!o}))})})})});MS.displayName="TabPanel";const $S=e=>{const{id:t,generateChildId:n,onSelect:r,activeKey:i,defaultActiveKey:o,transition:a,mountOnEnter:s,unmountOnExit:u,children:l}=e,[f,h]=Fp(i,o,r),p=V1(t),y=m.useMemo(()=>n||((x,N)=>p?`${p}-${N}-${x}`:null),[p,n]),C=m.useMemo(()=>({onSelect:h,activeKey:f,transition:a,mountOnEnter:s||!1,unmountOnExit:u||!1,getControlledId:x=>y(x,"tabpane"),getControllerId:x=>y(x,"tab")}),[h,f,a,s,u,y]);return c(Jo.Provider,{value:C,children:c(_r.Provider,{value:h||null,children:l})})};$S.Panel=MS;const IS=$S;function xh(e){return typeof e=="boolean"?e?Qo:mh:e}const FS=({transition:e,...t})=>c(IS,{...t,transition:xh(e)});FS.displayName="TabContainer";const b_=FS,DS=Nt("tab-content"),AS=m.forwardRef(({bsPrefix:e,transition:t,...n},r)=>{const[{className:i,as:o="div",...a},{isActive:s,onEnter:u,onEntering:l,onEntered:f,onExit:h,onExiting:p,onExited:y,mountOnEnter:C,unmountOnExit:x,transition:N=Qo}]=PS({...n,transition:xh(t)}),w=$e(e,"tab-pane");return c(Jo.Provider,{value:null,children:c(_r.Provider,{value:null,children:c(N,{in:s,onEnter:u,onEntering:l,onEntered:f,onExit:h,onExiting:p,onExited:y,mountOnEnter:C,unmountOnExit:x,children:c(o,{...a,ref:r,className:be(i,w,s&&"active")})})})})});AS.displayName="TabPane";const LS=AS,E_={eventKey:De.oneOfType([De.string,De.number]),title:De.node.isRequired,disabled:De.bool,tabClassName:De.string,tabAttrs:De.object},jS=()=>{throw new Error("ReactBootstrap: The `Tab` component is not meant to be rendered! It's an abstract component that is only valid as a direct Child of the `Tabs` Component. For custom tabs components use TabPane and TabsContainer directly")};jS.propTypes=E_;const k_=Object.assign(jS,{Container:b_,Content:DS,Pane:LS}),T_=m.forwardRef(({bsPrefix:e,className:t,striped:n,bordered:r,borderless:i,hover:o,size:a,variant:s,responsive:u,...l},f)=>{const h=$e(e,"table"),p=be(t,h,s&&`${h}-${s}`,a&&`${h}-${a}`,n&&`${h}-${typeof n=="string"?`striped-${n}`:"striped"}`,r&&`${h}-bordered`,i&&`${h}-borderless`,o&&`${h}-hover`),y=c("table",{...l,className:p,ref:f});if(u){let C=`${h}-responsive`;return typeof u=="string"&&(C=`${C}-${u}`),c("div",{className:C,children:y})}return y}),ea=T_,N_={variant:"tabs",mountOnEnter:!1,unmountOnExit:!1};function O_(e){let t;return PN(e,n=>{t==null&&(t=n.props.eventKey)}),t}function R_(e){const{title:t,eventKey:n,disabled:r,tabClassName:i,tabAttrs:o,id:a}=e.props;return t==null?null:c(OS,{as:"li",role:"presentation",children:c(RS,{as:"button",type:"button",eventKey:n,disabled:r,id:a,className:i,...o,children:t})})}const Ch=e=>{const{id:t,onSelect:n,transition:r,mountOnEnter:i,unmountOnExit:o,children:a,activeKey:s=O_(a),...u}=xs(e,{activeKey:"onSelect"});return g(IS,{id:t,activeKey:s,onSelect:n,transition:xh(r),mountOnEnter:i,unmountOnExit:o,children:[c(y_,{...u,role:"tablist",as:"ul",children:mf(a,R_)}),c(DS,{children:mf(a,l=>{const f={...l.props};return delete f.title,delete f.disabled,delete f.tabClassName,delete f.tabAttrs,c(LS,{...f})})})]})};Ch.defaultProps=N_;Ch.displayName="Tabs";const __=Ch,P_="https://jg-dealerships/",Ne=async(e,t,n)=>{const r=async(i,o)=>{try{const s=await(await fetch((n||P_)+e,{method:"POST",headers:{"Content-Type":"application/json; charset=UTF-8"},body:t?JSON.stringify(t):void 0})).json();typeof s=="object"&&s.error&&o({error:!0,reason:s.error}),i(s)}catch(a){o(a)}};return await new Promise(r)},BS=m.createContext({event:!1,setEvent:()=>!1,config:{},locale:{},onCloseModal:()=>!1}),M_=({children:e})=>{const[t,n]=m.useState({}),[r,i]=m.useState({}),[o,a]=m.useState({});m.useEffect(()=>{const u=({data:l})=>{l.source||(l.type==="hide"?n(f=>({...f,type:!1})):(n(l||{}),i(l.config||{}),a(l.locale||{})))};return window.addEventListener("message",u),()=>window.removeEventListener("message",u)},[]);const s=async()=>{n({...t,type:!1}),await Ne("close")};return c(BS.Provider,{value:{event:t,setEvent:n,config:r,locale:o,onCloseModal:s},children:e})},ye=()=>m.useContext(BS),$_=()=>{const e=async n=>{await Ne(`veh-${n}`)},t=async()=>{await Ne("change-cam-view")};return g(x1,{"aria-label":"Basic example",className:"vehicle-camera-btns",children:[c(ee,{variant:"dark",size:"lg",onClick:()=>e("left"),children:c("i",{className:"bi-arrow-left"})}),c(ee,{variant:"dark",size:"lg",onClick:()=>t(),children:c("i",{className:"bi-camera-reels"})}),c(ee,{variant:"dark",size:"lg",onClick:()=>e("right"),children:c("i",{className:"bi-arrow-right"})})]})},Le=(e,t)=>{try{return e==null?void 0:e.toLocaleString(t==null?void 0:t.NumberAndDateFormat,{style:"currency",currency:t.Currency,maximumFractionDigits:0})}catch{return"InvalidLocale"}},Cy=["personal","society"],Jc=["cash","bank"],I_=({show:e,onHide:t,vehicle:n,activeColor:r,calcFinancePayment:i,toggleFinanceBreakdown:o,onPurchase:a})=>{var Z,G;const{event:s,setEvent:u,config:l,locale:f,onCloseModal:h}=ye(),[p,y]=m.useState(Cy[0]),[C,x]=m.useState(Jc),[N,w]=m.useState(Jc[0]),[E,b]=m.useState(""),[T,R]=m.useState(!1),[M,F]=m.useState(!1);m.useEffect(()=>{var Oe,ge,xe;const te=(xe=(ge=(Oe=s.config)==null?void 0:Oe.DealershipLocations)==null?void 0:ge[s.dealershipId])==null?void 0:xe.paymentOptions;te?(x(te),w(te[0])):w(Jc[0])},[s.config,s.dealershipId]),m.useEffect(()=>{R(!1)},[p]);const A=async te=>{var Oe;if(te.preventDefault(),F(!0),!$())return!1;try{await Ne("purchase-vehicle",{purchaseType:p,society:E,societyType:(Oe=I(E))==null?void 0:Oe.type,paymentMethod:N,finance:!!T,dealership:s.dealershipId,vehicle:n.spawn_code,color:r}),a()}catch(ge){console.log(JSON.stringify(ge))}F(!1),h()},I=te=>{var Oe;return(Oe=s.societies)==null?void 0:Oe.find(({name:ge})=>ge===te)},$=()=>{var Oe,ge;let te=n.price;if(T){if(N!=="bank")return!1;te=n.price*(1+l.FinanceInterest)*l.FinanceDownPayment}return N==="societyFund"?((Oe=I(E))==null?void 0:Oe.balance)>=te:(((ge=s.playerBalances)==null?void 0:ge[N])||0)>=te},W=async()=>{try{const te=await Ne("get-player-balances",s.dealershipId);if(!te)return;u(Oe=>({...Oe,playerBalances:te}))}catch{console.error("Could not refresh balances.")}};return c(z,{show:e,onHide:()=>t(),centered:!0,style:{zIndex:9999},children:g(j,{onSubmit:A,children:[g(z.Header,{className:"d-block",children:[c("div",{children:f.purchaseVehicle}),g(z.Title,{as:"h5",children:[n.brand," ",n.model]})]}),g(z.Body,{children:[s.jgGaragesRunning&&c(x1,{"aria-label":"Purchase Type",className:"vehicle-purchase-modal mb-3",children:Cy.map(te=>c(ee,{variant:p===te?"primary":"dark",onClick:()=>y(te),children:f[`${te}Purchase`]},te))}),p==="society"?g(j.Group,{className:"mb-3",children:[c(j.Label,{children:f.purchaseFor}),g(j.Select,{value:E,onChange:te=>b(te.target.value),required:!0,children:[c("option",{value:"",disabled:!0,children:f.selectSociety}),(Z=s.societies)==null?void 0:Z.map(({name:te,label:Oe},ge)=>c("option",{value:te,children:Oe},ge))]})]}):s.financeEnabled&&g(j.Group,{className:"mb-3",children:[c(j.Label,{children:f.financing}),c(j.Check,{label:f.payInFull,name:"payment-type",type:"radio",id:"payment-infull",checked:!T,onChange:te=>R(!te.target.checked)}),c(j.Check,{label:c("div",{className:"d-flex align-items-center",children:c("span",{className:"me-2",children:(G=f.financeOverPayments)==null?void 0:G.replace("%{value}",l.FinancePayments)})}),name:"payment-type",type:"radio",id:"payment-finance",checked:T,onChange:te=>R(te.target.checked)})]}),(p!=="society"||E)&&g("div",{children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:f.paymentSource}),c("div",{children:C.map((te,Oe)=>{var xe,U;if(te!=="bank"&&T||te==="societyFund"&&(p!=="society"||!E))return null;let ge=0;return te==="societyFund"?ge=(xe=I(E))==null?void 0:xe.balance:s.playerBalances&&(ge=((U=s.playerBalances)==null?void 0:U[te])||0),c(j.Check,{label:g("div",{className:"d-flex align-items-center",children:[c("span",{className:"me-2",children:f[te]||te}),c(vn,{bg:"secondary",text:"dark",children:Le(ge,l)}),c(ee,{variant:"dark",onClick:W,size:"sm",className:"ms-2 p-0 pe-1 ps-1",children:c("i",{className:"bi-arrow-clockwise"})})]}),name:"payment-method",type:"radio",id:`payment-method-${te}`,checked:N===te,onChange:re=>w(te)},Oe)})})]}),T&&g(Bo,{variant:"warning",children:[c("i",{className:"bi-exclamation-triangle-fill me-2"}),f.prePurchaseRepoWarning]})]})]}),c(z.Footer,{className:"d-block",children:T?g(ur,{children:[g(Xe,{className:"p-0",children:[g("p",{className:"mb-1",children:[f.payToday,":"]}),c("h3",{children:Le(n.price*(1+l.FinanceInterest)*l.FinanceDownPayment,l)})]}),g(Xe,{className:"p-0",children:[g("p",{className:"mb-0",children:[`${f.financeThen} ${l.FinancePayments} ${f.paymentsOf} `,c("strong",{className:"text-white",children:Le(i(),l)}),` (${f.every} ${l.FinancePaymentInterval} ${f.hours})`]}),c(ee,{variant:"link",className:"p-0",style:{fontSize:12},onClick:()=>o(),children:f.seeFullBreakdown})]})]}):g("div",{children:[g("p",{className:"text-muted mb-1",children:[f.totalPayable,":"]}),c("h3",{children:Le(n.price,l)})]})}),g(z.Footer,{className:"d-flex justify-content-between",children:[c(ee,{variant:"success",type:"submit",disabled:!$()||M,children:$()?f.purchase:f.notEnoughMoney}),c(ee,{variant:"dark",onClick:()=>t(),children:f.cancel})]})]})})},F_=({show:e,onHide:t,vehiclePrice:n,calcFinancePayment:r})=>{const{config:i,locale:o}=ye();return g(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:o.financeBreakdown})}),g(z.Body,{children:[c("table",{className:"financing-breakdown-table",children:g("tbody",{children:[g("tr",{children:[g("td",{children:[o.initialPayment,":"]}),c("td",{children:c("strong",{children:Le(n*(1+i.FinanceInterest)*i.FinanceDownPayment,i)})})]}),g("tr",{children:[g("td",{children:[o.payments,":"]}),c("td",{children:g("strong",{children:[Le(r(),i)," ",o.every," ",i.FinancePaymentInterval," ",o.hours]})})]}),g("tr",{children:[g("td",{children:[o.length,":"]}),c("td",{children:g("strong",{children:[i.FinancePayments," ",o.payments]})})]}),g("tr",{children:[g("td",{children:[o.interest,":"]}),c("td",{children:g("strong",{children:[i.FinanceInterest*100,"%"]})})]}),g("tr",{children:[g("td",{children:[o.totalPayable,":"]}),c("td",{children:c("strong",{children:Le(n*(1+i.FinanceInterest),i)})})]})]})}),g(Bo,{variant:"warning",className:"mt-3 mb-0",children:[c("i",{className:"bi-exclamation-triangle-fill me-2"}),o.prePurchaseRepoWarning]})]})]})},D_=({vehicle:e,setActiveVehicle:t})=>{const{event:n,config:r,locale:i}=ye(),[o,a]=m.useState(!1),[s,u]=m.useState(!1),[l,f]=m.useState(1),[h,p]=m.useState(0),[y,C]=m.useState(0),[x,N]=m.useState(0),[w,E]=m.useState(0),[b,T]=m.useState(0),[R,M]=m.useState(!1);m.useEffect(()=>{(async()=>{if(r.HideVehicleStats)return;const I=await Ne("get-model-stats",{vehicle:e.spawn_code});p(I==null?void 0:I.brake),C(I==null?void 0:I.handling),N(I==null?void 0:I.topSpeed),E(I==null?void 0:I.power),T(I==null?void 0:I.torque)})()},[e.spawn_code]),m.useEffect(()=>{var I;f((I=r.VehicleColourOptions)!=null&&I[parseInt(n.defaultColor)]?parseInt(n.defaultColor):1)},[n.defaultColor]),m.useEffect(()=>{try{Ne("change-color",{color:l})}catch{}},[l]);const F=async()=>{M(!0),await Ne("test-drive",{dealershipId:n.dealershipId,vehicle:e.spawn_code,color:l}),M(!1)},A=()=>{const I=e.price*(1+r.FinanceInterest);return(I-I*r.FinanceDownPayment)/r.FinancePayments};return g(Wt,{children:[g(z.Dialog,{size:"sm",className:"modal vehicle-info-modal",scrollable:!0,children:[g(z.Header,{className:"vehicle-model-brand-stock",children:[c("span",{className:"text-muted",children:e.brand}),c("h4",{children:e.model}),c(vn,{bg:e.stock>0?"success":"danger",text:"white",pill:!0,children:n.shopType==="owned"&&(e.stock>0?i.inStock:i.outOfStock)})]}),g(z.Body,{children:[!r.HideVehicleStats&&g("div",{className:"vehicle-stats",children:[g("div",{className:"vehicle-stat",children:[c("small",{className:"text-muted",children:i.handling}),c(xa,{variant:"primary",now:y/10*100,label:y==null?void 0:y.toFixed(1)})]}),g("div",{className:"vehicle-stat",children:[c("small",{className:"text-muted",children:i.topSpeed}),c(xa,{variant:"primary",now:x/150*100,label:`${x}${r.SpeedUnit||"mph"}`})]}),g("div",{className:"vehicle-stat",children:[c("small",{className:"text-muted",children:i.power}),c(xa,{variant:"primary",now:w/500*100,label:`${w}HP`})]}),g("div",{className:"vehicle-stat",children:[c("small",{className:"text-muted",children:i.torque}),c(xa,{variant:"primary",now:b/500*100,label:`${b}Nm`})]}),g("div",{className:"vehicle-stat",children:[c("small",{className:"text-muted",children:i.brake}),c(xa,{now:h/1*100,variant:"primary",label:h==null?void 0:h.toFixed(1)})]})]}),g("div",{className:"vehicle-pricing",children:[c("h3",{children:Le(e.price,r)}),n.financeEnabled&&e.price>0&&g("p",{className:"vehicle-financing-text text-muted",children:[g("span",{children:[i.financingAvailable,": "]}),g("strong",{children:[r.FinancePayments," ",i.paymentsOf," ",Le(A(),r),c(ee,{variant:"link",className:"text-decoration-none",size:"sm",onClick:()=>u(!0),children:c("i",{className:"bi-question-circle-fill"})})]})]})]}),c(F_,{show:s,onHide:()=>u(!1),vehiclePrice:e.price,calcFinancePayment:A}),c("hr",{className:"mb-3"}),c("div",{className:"vehicle-colors",children:(r.VehicleColourOptions||[]).map(({hex:I},$)=>c("button",{className:`color ${l==$+1?"active":""}`,onClick:()=>f($+1),style:{backgroundImage:` + linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4)), + linear-gradient(${I}, ${I}) + `}},$))})]}),(n.enablePurchase||n.enableTestDrive)&&g(z.Footer,{className:"d-flex justify-content-between",children:[n.enablePurchase&&c(ee,{variant:"success",onClick:()=>a(!0),disabled:n.shopType==="owned"&&!e.stock,children:n.shopType==="self-service"||e.stock>0?i.purchase:i.outOfStock}),n.enableTestDrive&&c(ee,{variant:"secondary",onClick:F,disabled:R,children:i.testDrive})]})]}),c(I_,{show:o,onHide:()=>a(!1),vehicle:e,activeColor:l,calcFinancePayment:A,toggleFinanceBreakdown:()=>u(!0),onPurchase:()=>t(void 0)})]})},ta=()=>c(vn,{bg:"secondary",text:"dark",children:"JG Scripts"}),A_="/web/dist/assets/loading-f9361a1d.gif",na=()=>c("div",{className:"p-5 text-center",children:c("img",{src:A_,width:40})}),L_=({show:e})=>(ye(),e?c("div",{className:"loading-model",children:c(na,{})}):null),j_=({activeVehicle:e,setActiveVehicle:t})=>{const n=m.useRef(null),{event:r,config:i,locale:o}=ye(),a={[o.sortByName]:(T,R)=>`${T.brand} ${T.model}`.localeCompare(`${R.brand} ${R.model}`),[o.sortByAvailability]:(T,R)=>R.stock-T.stock,[o.sortByCheapest]:(T,R)=>T.price-R.price,[o.sortByMostExpensive]:(T,R)=>R.price-T.price},[s,u]=m.useState(""),[l,f]=m.useState(Object.keys(a)[0]),[h,p]=m.useState(!1),[y,C]=m.useState([]),[x,N]=m.useState([]),[w,E]=m.useState(!1);m.useEffect(()=>{r.defaultVehicle&&u(r.defaultVehicle)},[r.defaultVehicle]),m.useEffect(()=>{(async()=>{if(e){try{E(!0),await Ne("switch-vehicle",{spawnCode:e.spawn_code})}catch{}E(!1)}})()},[e]),m.useEffect(()=>{var T,R;s.length>0?C(r.vehicles):C(h?(T=r.vehicles)==null?void 0:T.filter(M=>h&&M.category===h):[]),(R=n.current)==null||R.scrollTo(0,0)},[s.length>0,h]),m.useEffect(()=>{N(y.filter(({brand:T,model:R,spawn_code:M})=>{const F=s.toLocaleLowerCase().split(" ").filter(A=>A).map(A=>A.trim());return F.filter(A=>`${T} ${R} ${M}`.toLocaleLowerCase().includes(A)).length===F.length}).sort(a[l]))},[y,s,l]);const b=()=>{p(!1)};return g(Wt,{children:[c(L_,{show:w}),g(z.Dialog,{scrollable:!0,size:"sm",className:"modal vehicles-list-modal",children:[g(z.Header,{className:"position-relative d-flex justify-content-center gap-3",children:[h&&!s&&c("button",{className:"showroom-back-btn",onClick:b,children:c("i",{className:"bi-arrow-left"})}),c(z.Title,{as:"h5",children:s.length?o.search:h?i.Categories[h]:o.allCategories}),!!s.length&&g(ee,{size:"sm",className:"ms-auto",variant:"outline-light",onClick:()=>u(""),children:[c("i",{className:"bi-x me-1"})," ",o.clear]})]}),g(z.Body,{className:"showroom-modal-body",ref:n,children:[c("div",{className:"search-and-filter p-3",children:g(Gt,{children:[c(j.Control,{type:"text",placeholder:o.search,value:s,onChange:T=>u(T.target.value)}),c(uh,{variant:"dark",title:c("i",{className:"bi-filter"}),id:"input-group-dropdown-2",align:"end",menuVariant:"dark",children:Object.keys(a).map((T,R)=>c(si.Item,{onClick:()=>f(T),active:l===T,children:T},R))})]})}),!h&&!s?c("div",{className:"p-3",children:r.categories.map(T=>g(Ue,{className:"showroom-category-btn mb-3",bg:"darker",onClick:()=>p(T),children:[c(Ue.Body,{className:"h5 mb-0 text-white",children:i.Categories[T]}),c(Ue.Footer,{children:g("small",{className:"text-muted",children:[r.vehicles.filter(R=>R.category===T).length," ",o.vehiclesCount]})})]},T))}):c("div",{children:x.length?x.map((T,R)=>c(B_,{vehicle:T,setActiveVehicle:t,isActive:(e==null?void 0:e.spawn_code)===T.spawn_code},R)):c("div",{className:"showroom-vehicle",children:o.noVehicles})})]}),!i.HideWatermark&&c(z.Footer,{className:"d-flex justify-content-between text-muted",children:c(ta,{})})]})]})},B_=({vehicle:e,setActiveVehicle:t,isActive:n})=>{const{event:r,locale:i,config:o}=ye(),a=m.useMemo(()=>` + url(https://cfx-nui-jg-advancedgarages/vehicle_images/${e.spawn_code}.png), + url(https://cfx-nui-jg-dealerships/vehicle_images/${e.spawn_code}.png), + url(https://docs.fivem.net/vehicles/${e.spawn_code}.webp) + `,[e]);return g("button",{className:`showroom-vehicle ${n?"active":""}`,onClick:()=>t(e),children:[g("div",{className:"showroom-vehicle-name-stock",children:[g("div",{children:[c("small",{className:"text-muted",children:e.brand}),c("p",{children:e.model})]}),c(vn,{bg:e.stock>0?"success":"danger",text:"white",pill:!0,children:r.shopType==="owned"&&(e.stock>0?i.inStock:i.outOfStock)})]}),g("div",{className:"d-flex align-items-end justify-content-between",children:[c("h4",{children:Le(e.price,o)}),c("div",{children:o.ShowVehicleImages&&c("div",{className:"vehicle-image flex-shrink-0",style:{backgroundImage:a}})})]})]})},z_=()=>{const{event:e,onCloseModal:t,locale:n}=ye(),[r,i]=m.useState();m.useEffect(()=>{if(e.defaultVehicle){const a=e.vehicles.find(({spawn_code:s})=>s===e.defaultVehicle);i(a)}},[e.type,e.defaultVehicle]);const o=async()=>{t(),i(void 0),await Ne("exit-showroom")};return e.type!=="showShowroom"?null:g("div",{className:"vehicle-showroom",children:[c("div",{className:"showroom-column",children:g("div",{className:"showroom-column-vehicles-list",children:[g(ee,{size:"lg",variant:"dark",className:"leave-showroom-btn",onClick:o,children:[c("i",{className:"bi-box-arrow-left"}),"   ",n.leaveShowroom]}),c(j_,{activeVehicle:r,setActiveVehicle:i})]})}),c($_,{}),c("div",{className:"showroom-column",children:r?c(D_,{vehicle:r,setActiveVehicle:i}):c("div",{})})]})};class Qi extends Error{}class V_ extends Qi{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class H_ extends Qi{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class W_ extends Qi{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class Pa extends Qi{}class zS extends Qi{constructor(t){super(`Invalid unit ${t}`)}}class _n extends Qi{}class jr extends Qi{constructor(){super("Zone is an abstract class")}}const oe="numeric",Jn="short",yn="long",au={year:oe,month:oe,day:oe},VS={year:oe,month:Jn,day:oe},U_={year:oe,month:Jn,day:oe,weekday:Jn},HS={year:oe,month:yn,day:oe},WS={year:oe,month:yn,day:oe,weekday:yn},US={hour:oe,minute:oe},GS={hour:oe,minute:oe,second:oe},qS={hour:oe,minute:oe,second:oe,timeZoneName:Jn},KS={hour:oe,minute:oe,second:oe,timeZoneName:yn},ZS={hour:oe,minute:oe,hourCycle:"h23"},YS={hour:oe,minute:oe,second:oe,hourCycle:"h23"},QS={hour:oe,minute:oe,second:oe,hourCycle:"h23",timeZoneName:Jn},XS={hour:oe,minute:oe,second:oe,hourCycle:"h23",timeZoneName:yn},JS={year:oe,month:oe,day:oe,hour:oe,minute:oe},ex={year:oe,month:oe,day:oe,hour:oe,minute:oe,second:oe},tx={year:oe,month:Jn,day:oe,hour:oe,minute:oe},nx={year:oe,month:Jn,day:oe,hour:oe,minute:oe,second:oe},G_={year:oe,month:Jn,day:oe,weekday:Jn,hour:oe,minute:oe},rx={year:oe,month:yn,day:oe,hour:oe,minute:oe,timeZoneName:Jn},ix={year:oe,month:yn,day:oe,hour:oe,minute:oe,second:oe,timeZoneName:Jn},ox={year:oe,month:yn,day:oe,weekday:yn,hour:oe,minute:oe,timeZoneName:yn},ax={year:oe,month:yn,day:oe,weekday:yn,hour:oe,minute:oe,second:oe,timeZoneName:yn};class Ts{get type(){throw new jr}get name(){throw new jr}get ianaName(){return this.name}get isUniversal(){throw new jr}offsetName(t,n){throw new jr}formatOffset(t,n){throw new jr}offset(t){throw new jr}equals(t){throw new jr}get isValid(){throw new jr}}let ed=null;class Au extends Ts{static get instance(){return ed===null&&(ed=new Au),ed}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return lx(t,n,r)}formatOffset(t,n){return Ga(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}let Nl={};function q_(e){return Nl[e]||(Nl[e]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Nl[e]}const K_={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Z_(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,u,l,f]=r;return[a,i,o,s,u,l,f]}function Y_(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?C:1e3+C,(p-y)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let by={};function Q_(e,t={}){const n=JSON.stringify([e,t]);let r=by[n];return r||(r=new Intl.ListFormat(e,t),by[n]=r),r}let xf={};function Cf(e,t={}){const n=JSON.stringify([e,t]);let r=xf[n];return r||(r=new Intl.DateTimeFormat(e,t),xf[n]=r),r}let bf={};function X_(e,t={}){const n=JSON.stringify([e,t]);let r=bf[n];return r||(r=new Intl.NumberFormat(e,t),bf[n]=r),r}let Ef={};function J_(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=Ef[i];return o||(o=new Intl.RelativeTimeFormat(e,t),Ef[i]=o),o}let Ma=null;function eP(){return Ma||(Ma=new Intl.DateTimeFormat().resolvedOptions().locale,Ma)}function tP(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=Cf(e).resolvedOptions(),i=e}catch{const u=e.substring(0,n);r=Cf(u).resolvedOptions(),i=u}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function nP(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function rP(e){const t=[];for(let n=1;n<=12;n++){const r=de.utc(2016,n,1);t.push(e(r))}return t}function iP(e){const t=[];for(let n=1;n<=7;n++){const r=de.utc(2016,11,13+n);t.push(e(r))}return t}function al(e,t,n,r,i){const o=e.listingMode(n);return o==="error"?null:o==="en"?r(t):i(t)}function oP(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem==="latn"}class aP{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=X_(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):Eh(t,3);return bt(n,this.padTo)}}}class sP{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Mr.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=Cf(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class lP{constructor(t,n,r){this.opts={style:"long",...r},!n&&sx()&&(this.rtf=J_(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):kP(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}class at{static fromOpts(t){return at.create(t.locale,t.numberingSystem,t.outputCalendar,t.defaultToEN)}static create(t,n,r,i=!1){const o=t||Ct.defaultLocale,a=o||(i?"en-US":eP()),s=n||Ct.defaultNumberingSystem,u=r||Ct.defaultOutputCalendar;return new at(a,s,u,o)}static resetCache(){Ma=null,xf={},bf={},Ef={}}static fromObject({locale:t,numberingSystem:n,outputCalendar:r}={}){return at.create(t,n,r)}constructor(t,n,r,i){const[o,a,s]=tP(t);this.locale=o,this.numberingSystem=n||a||null,this.outputCalendar=r||s||null,this.intl=nP(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=oP(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:at.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1,r=!0){return al(this,t,r,dx,()=>{const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";return this.monthsCache[o][t]||(this.monthsCache[o][t]=rP(a=>this.extract(a,i,"month"))),this.monthsCache[o][t]})}weekdays(t,n=!1,r=!0){return al(this,t,r,hx,()=>{const i=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},o=n?"format":"standalone";return this.weekdaysCache[o][t]||(this.weekdaysCache[o][t]=iP(a=>this.extract(a,i,"weekday"))),this.weekdaysCache[o][t]})}meridiems(t=!0){return al(this,void 0,t,()=>mx,()=>{if(!this.meridiemCache){const n={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[de.utc(2016,11,13,9),de.utc(2016,11,13,19)].map(r=>this.extract(r,n,"dayperiod"))}return this.meridiemCache})}eras(t,n=!0){return al(this,t,n,vx,()=>{const r={era:t};return this.eraCache[t]||(this.eraCache[t]=[de.utc(-40,1,1),de.utc(2017,1,1)].map(i=>this.extract(i,r,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new aP(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new sP(t,this.intl,n)}relFormatter(t={}){return new lP(this.intl,this.isEnglish(),t)}listFormatter(t={}){return Q_(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}}let td=null;class Qt extends Ts{static get utcInstance(){return td===null&&(td=new Qt(0)),td}static instance(t){return t===0?Qt.utcInstance:new Qt(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new Qt(ju(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ga(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ga(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return Ga(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class uP extends Ts{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Zr(e,t){if(ze(e)||e===null)return t;if(e instanceof Ts)return e;if(cP(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?Au.instance:n==="utc"||n==="gmt"?Qt.utcInstance:Qt.parseSpecifier(n)||Mr.create(e)}else return Fi(e)?Qt.instance(e):typeof e=="object"&&e.offset&&typeof e.offset=="number"?e:new uP(e)}let Ey=()=>Date.now(),ky="system",Ty=null,Ny=null,Oy=null,Ry=60,_y;class Ct{static get now(){return Ey}static set now(t){Ey=t}static set defaultZone(t){ky=t}static get defaultZone(){return Zr(ky,Au.instance)}static get defaultLocale(){return Ty}static set defaultLocale(t){Ty=t}static get defaultNumberingSystem(){return Ny}static set defaultNumberingSystem(t){Ny=t}static get defaultOutputCalendar(){return Oy}static set defaultOutputCalendar(t){Oy=t}static get twoDigitCutoffYear(){return Ry}static set twoDigitCutoffYear(t){Ry=t%100}static get throwOnInvalid(){return _y}static set throwOnInvalid(t){_y=t}static resetCaches(){at.resetCache(),Mr.resetCache()}}function ze(e){return typeof e>"u"}function Fi(e){return typeof e=="number"}function Lu(e){return typeof e=="number"&&e%1===0}function cP(e){return typeof e=="string"}function dP(e){return Object.prototype.toString.call(e)==="[object Date]"}function sx(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function fP(e){return Array.isArray(e)?e:[e]}function Py(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function pP(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function Uo(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Cr(e,t,n){return Lu(e)&&e>=t&&e<=n}function hP(e,t){return e-t*Math.floor(e/t)}function bt(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Ur(e){if(!(ze(e)||e===null||e===""))return parseInt(e,10)}function xi(e){if(!(ze(e)||e===null||e===""))return parseFloat(e)}function bh(e){if(!(ze(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function Eh(e,t,n=!1){const r=10**t;return(n?Math.trunc:Math.round)(e*r)/r}function Ns(e){return e%4===0&&(e%100!==0||e%400===0)}function Ua(e){return Ns(e)?366:365}function su(e,t){const n=hP(t-1,12)+1,r=e+(t-n)/12;return n===2?Ns(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function kh(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function lu(e){const t=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7,n=e-1,r=(n+Math.floor(n/4)-Math.floor(n/100)+Math.floor(n/400))%7;return t===4||r===3?53:52}function kf(e){return e>99?e:e>Ct.twoDigitCutoffYear?1900+e:2e3+e}function lx(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return s?s.value:null}function ju(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ux(e){const t=Number(e);if(typeof e=="boolean"||e===""||Number.isNaN(t))throw new _n(`Invalid unit value ${e}`);return t}function uu(e,t){const n={};for(const r in e)if(Uo(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ux(i)}return n}function Ga(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${bt(n,2)}:${bt(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${bt(n,2)}${bt(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function Bu(e){return pP(e,["hour","minute","second","millisecond"])}const mP=["January","February","March","April","May","June","July","August","September","October","November","December"],cx=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vP=["J","F","M","A","M","J","J","A","S","O","N","D"];function dx(e){switch(e){case"narrow":return[...vP];case"short":return[...cx];case"long":return[...mP];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const fx=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],px=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],yP=["M","T","W","T","F","S","S"];function hx(e){switch(e){case"narrow":return[...yP];case"short":return[...px];case"long":return[...fx];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const mx=["AM","PM"],gP=["Before Christ","Anno Domini"],wP=["BC","AD"],SP=["B","A"];function vx(e){switch(e){case"narrow":return[...SP];case"short":return[...wP];case"long":return[...gP];default:return null}}function xP(e){return mx[e.hour<12?0:1]}function CP(e,t){return hx(t)[e.weekday-1]}function bP(e,t){return dx(t)[e.month-1]}function EP(e,t){return vx(t)[e.year<0?0:1]}function kP(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const h=e==="days";switch(t){case 1:return h?"tomorrow":`next ${i[e][0]}`;case-1:return h?"yesterday":`last ${i[e][0]}`;case 0:return h?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),u=s===1,l=i[e],f=r?u?l[1]:l[2]||l[1]:u?i[e][0]:e;return a?`${s} ${f} ago`:`in ${s} ${f}`}function My(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const TP={D:au,DD:VS,DDD:HS,DDDD:WS,t:US,tt:GS,ttt:qS,tttt:KS,T:ZS,TT:YS,TTT:QS,TTTT:XS,f:JS,ff:tx,fff:rx,ffff:ox,F:ex,FF:nx,FFF:ix,FFFF:ax};class Ht{static create(t,n={}){return new Ht(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0&&o.push({literal:i||/^\s+$/.test(r),val:r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return TP[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}formatDateTime(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n}).format()}formatDateTimeParts(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n}).formatToParts()}formatInterval(t,n={}){return this.loc.dtFormatter(t.start,{...this.opts,...n}).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n}).resolvedOptions()}num(t,n=0){if(this.opts.forceSimple)return bt(t,n);const r={...this.opts};return n>0&&(r.padTo=n),this.loc.numberFormatter(r).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(y,C)=>this.loc.extract(t,y,C),a=y=>t.isOffsetFixed&&t.offset===0&&y.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,y.format):"",s=()=>r?xP(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(y,C)=>r?bP(t,y):o(C?{month:y}:{month:y,day:"numeric"},"month"),l=(y,C)=>r?CP(t,y):o(C?{weekday:y}:{weekday:y,month:"long",day:"numeric"},"weekday"),f=y=>{const C=Ht.macroTokenToFormatOpts(y);return C?this.formatWithSystemDefault(t,C):y},h=y=>r?EP(t,y):o({era:y},"era"),p=y=>{switch(y){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return l("short",!0);case"cccc":return l("long",!0);case"ccccc":return l("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return l("short",!1);case"EEEE":return l("long",!1);case"EEEEE":return l("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return h("short");case"GG":return h("long");case"GGGGG":return h("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return f(y)}};return My(Ht.parseFormat(n),p)}formatDurationFromString(t,n){const r=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>l=>{const f=r(l);return f?this.num(u.get(f),l.length):l},o=Ht.parseFormat(n),a=o.reduce((u,{literal:l,val:f})=>l?u:u.concat(f),[]),s=t.shiftTo(...a.map(r).filter(u=>u));return My(o,i(s))}}class Zn{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const yx=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function ra(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function ia(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,u]=o(t,i);return[{...n,...a},s||r,u]},[{},null,1]).slice(0,2)}function oa(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function gx(...e){return(t,n)=>{const r={};let i;for(i=0;iy!==void 0&&(C||y&&f)?-y:y;return[{years:p(xi(n)),months:p(xi(r)),weeks:p(xi(i)),days:p(xi(o)),hours:p(xi(a)),minutes:p(xi(s)),seconds:p(xi(u),u==="-0"),milliseconds:p(bh(l),h)}]}const jP={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Oh(e,t,n,r,i,o,a){const s={year:t.length===2?kf(Ur(t)):Ur(t),month:cx.indexOf(n)+1,day:Ur(r),hour:Ur(i),minute:Ur(o)};return a&&(s.second=Ur(a)),e&&(s.weekday=e.length>3?fx.indexOf(e)+1:px.indexOf(e)+1),s}const BP=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zP(e){const[,t,n,r,i,o,a,s,u,l,f,h]=e,p=Oh(t,i,r,n,o,a,s);let y;return u?y=jP[u]:l?y=0:y=ju(f,h),[p,new Qt(y)]}function VP(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const HP=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,WP=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,UP=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function $y(e){const[,t,n,r,i,o,a,s]=e;return[Oh(t,i,r,n,o,a,s),Qt.utcInstance]}function GP(e){const[,t,n,r,i,o,a,s]=e;return[Oh(t,s,n,r,i,o,a),Qt.utcInstance]}const qP=ra(OP,Nh),KP=ra(RP,Nh),ZP=ra(_P,Nh),YP=ra(Sx),Cx=ia(FP,aa,Os,Rs),QP=ia(PP,aa,Os,Rs),XP=ia(MP,aa,Os,Rs),JP=ia(aa,Os,Rs);function e2(e){return oa(e,[qP,Cx],[KP,QP],[ZP,XP],[YP,JP])}function t2(e){return oa(VP(e),[BP,zP])}function n2(e){return oa(e,[HP,$y],[WP,$y],[UP,GP])}function r2(e){return oa(e,[AP,LP])}const i2=ia(aa);function o2(e){return oa(e,[DP,i2])}const a2=ra($P,IP),s2=ra(xx),l2=ia(aa,Os,Rs);function u2(e){return oa(e,[a2,Cx],[s2,l2])}const c2="Invalid Duration",bx={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},d2={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...bx},En=146097/400,lo=146097/4800,f2={years:{quarters:4,months:12,weeks:En/7,days:En,hours:En*24,minutes:En*24*60,seconds:En*24*60*60,milliseconds:En*24*60*60*1e3},quarters:{months:3,weeks:En/28,days:En/4,hours:En*24/4,minutes:En*24*60/4,seconds:En*24*60*60/4,milliseconds:En*24*60*60*1e3/4},months:{weeks:lo/7,days:lo,hours:lo*24,minutes:lo*24*60,seconds:lo*24*60*60,milliseconds:lo*24*60*60*1e3},...bx},ki=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],p2=ki.slice(0).reverse();function Br(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new He(r)}function h2(e){return e<0?Math.floor(e):Math.ceil(e)}function Ex(e,t,n,r,i){const o=e[i][n],a=t[n]/o,s=Math.sign(a)===Math.sign(r[i]),u=!s&&r[i]!==0&&Math.abs(a)<=1?h2(a):Math.trunc(a);r[i]+=u,t[n]-=u*o}function m2(e,t){p2.reduce((n,r)=>ze(t[r])?n:(n&&Ex(e,t,n,t,r),r),null)}function v2(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class He{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?f2:d2;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||at.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return He.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new _n(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new He({values:uu(t,He.normalizeUnit),loc:at.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Fi(t))return He.fromMillis(t);if(He.isDuration(t))return t;if(typeof t=="object")return He.fromObject(t);throw new _n(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=r2(t);return r?He.fromObject(r,n):He.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=o2(t);return r?He.fromObject(r,n):He.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new _n("need to specify a reason the Duration is invalid");const r=t instanceof Zn?t:new Zn(t,n);if(Ct.throwOnInvalid)throw new W_(r);return new He({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new zS(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Ht.create(this.loc,r).formatDurationFromString(this,t):c2}toHuman(t={}){const n=ki.map(r=>{const i=this.values[r];return ze(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:r.slice(0,-1)}).format(i)}).filter(r=>r);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=Eh(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();if(n<0||n>=864e5)return null;t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t};const r=this.shiftTo("hours","minutes","seconds","milliseconds");let i=t.format==="basic"?"hhmm":"hh:mm";(!t.suppressSeconds||r.seconds!==0||r.milliseconds!==0)&&(i+=t.format==="basic"?"ss":":ss",(!t.suppressMilliseconds||r.milliseconds!==0)&&(i+=".SSS"));let o=r.toFormat(i);return t.includePrefix&&(o="T"+o),o}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=He.fromDurationLike(t),r={};for(const i of ki)(Uo(n.values,i)||Uo(this.values,i))&&(r[i]=n.get(i)+this.get(i));return Br(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=He.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ux(t(this.values[r],r));return Br(this,{values:n},!0)}get(t){return this[He.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...uu(t,He.normalizeUnit)};return Br(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const a={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return Br(this,a)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return m2(this.matrix,t),Br(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=v2(this.normalize().shiftToAll().toObject());return Br(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>He.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of ki)if(t.indexOf(a)>=0){o=a;let s=0;for(const l in r)s+=this.matrix[l][a]*r[l],r[l]=0;Fi(i[a])&&(s+=i[a]);const u=Math.trunc(s);n[a]=u,r[a]=(s*1e3-u*1e3)/1e3;for(const l in i)ki.indexOf(l)>ki.indexOf(a)&&Ex(this.matrix,i,l,n,a)}else Fi(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return Br(this,{values:n},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return Br(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of ki)if(!n(this.values[r],t.values[r]))return!1;return!0}}const uo="Invalid Interval";function y2(e,t){return!e||!e.isValid?vt.invalid("missing or invalid start"):!t||!t.isValid?vt.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?vt.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(Ea).filter(a=>this.contains(a)).sort(),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(vt.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=He.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;ru*i));o=+s>+this.e?this.e:s,a.push(vt.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:vt.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return vt.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((u,l)=>u.time-l.time);for(const u of s)r+=u.type==="s"?1:-1,r===1?n=u.time:(n&&+n!=+u.time&&i.push(vt.fromDateTimes(n,u.time)),n=null);return vt.merge(i)}difference(...t){return vt.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:uo}toLocaleString(t=au,n={}){return this.isValid?Ht.create(this.s.loc.clone(n),t).formatInterval(this):uo}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:uo}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:uo}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:uo}toFormat(t,{separator:n=" – "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:uo}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):He.invalid(this.invalidReason)}mapEndpoints(t){return vt.fromDateTimes(t(this.s),t(this.e))}}class sl{static hasDST(t=Ct.defaultZone){const n=de.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Mr.isValidZone(t)}static normalizeZone(t){return Zr(t,Ct.defaultZone)}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||at.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||at.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||at.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||at.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return at.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return at.create(n,null,"gregory").eras(t)}static features(){return{relative:sx()}}}function Iy(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(He.fromMillis(r).as("days"))}function g2(e,t,n){const r=[["years",(u,l)=>l.year-u.year],["quarters",(u,l)=>l.quarter-u.quarter+(l.year-u.year)*4],["months",(u,l)=>l.month-u.month+(l.year-u.year)*12],["weeks",(u,l)=>{const f=Iy(u,l);return(f-f%7)/7}],["days",Iy]],i={},o=e;let a,s;for(const[u,l]of r)n.indexOf(u)>=0&&(a=u,i[u]=l(e,t),s=o.plus(i),s>t?(i[u]--,e=o.plus(i)):e=s);return[e,i,s,a]}function w2(e,t,n,r){let[i,o,a,s]=g2(e,t,n);const u=t-i,l=n.filter(h=>["hours","minutes","seconds","milliseconds"].indexOf(h)>=0);l.length===0&&(a0?He.fromMillis(u,r).shiftTo(...l).plus(f):f}const Rh={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},Fy={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},S2=Rh.hanidec.replace(/[\[|\]]/g,"").split("");function x2(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}function Vn({numberingSystem:e},t=""){return new RegExp(`${Rh[e||"latn"]}${t}`)}const C2="missing Intl.DateTimeFormat.formatToParts support";function Ke(e,t=n=>n){return{regex:e,deser:([n])=>t(x2(n))}}const b2=String.fromCharCode(160),kx=`[ ${b2}]`,Tx=new RegExp(kx,"g");function E2(e){return e.replace(/\./g,"\\.?").replace(Tx,kx)}function Dy(e){return e.replace(/\./g,"").replace(Tx," ").toLowerCase()}function Hn(e,t){return e===null?null:{regex:RegExp(e.map(E2).join("|")),deser:([n])=>e.findIndex(r=>Dy(n)===Dy(r))+t}}function Ay(e,t){return{regex:e,deser:([,n,r])=>ju(n,r),groups:t}}function ll(e){return{regex:e,deser:([t])=>t}}function k2(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function T2(e,t){const n=Vn(t),r=Vn(t,"{2}"),i=Vn(t,"{3}"),o=Vn(t,"{4}"),a=Vn(t,"{6}"),s=Vn(t,"{1,2}"),u=Vn(t,"{1,3}"),l=Vn(t,"{1,6}"),f=Vn(t,"{1,9}"),h=Vn(t,"{2,4}"),p=Vn(t,"{4,6}"),y=N=>({regex:RegExp(k2(N.val)),deser:([w])=>w,literal:!0}),x=(N=>{if(e.literal)return y(N);switch(N.val){case"G":return Hn(t.eras("short",!1),0);case"GG":return Hn(t.eras("long",!1),0);case"y":return Ke(l);case"yy":return Ke(h,kf);case"yyyy":return Ke(o);case"yyyyy":return Ke(p);case"yyyyyy":return Ke(a);case"M":return Ke(s);case"MM":return Ke(r);case"MMM":return Hn(t.months("short",!0,!1),1);case"MMMM":return Hn(t.months("long",!0,!1),1);case"L":return Ke(s);case"LL":return Ke(r);case"LLL":return Hn(t.months("short",!1,!1),1);case"LLLL":return Hn(t.months("long",!1,!1),1);case"d":return Ke(s);case"dd":return Ke(r);case"o":return Ke(u);case"ooo":return Ke(i);case"HH":return Ke(r);case"H":return Ke(s);case"hh":return Ke(r);case"h":return Ke(s);case"mm":return Ke(r);case"m":return Ke(s);case"q":return Ke(s);case"qq":return Ke(r);case"s":return Ke(s);case"ss":return Ke(r);case"S":return Ke(u);case"SSS":return Ke(i);case"u":return ll(f);case"uu":return ll(s);case"uuu":return Ke(n);case"a":return Hn(t.meridiems(),0);case"kkkk":return Ke(o);case"kk":return Ke(h,kf);case"W":return Ke(s);case"WW":return Ke(r);case"E":case"c":return Ke(n);case"EEE":return Hn(t.weekdays("short",!1,!1),1);case"EEEE":return Hn(t.weekdays("long",!1,!1),1);case"ccc":return Hn(t.weekdays("short",!0,!1),1);case"cccc":return Hn(t.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Ay(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Ay(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return ll(/[a-z_+-/]{1,256}?/i);case" ":return ll(/[^\S\n\r]/);default:return y(N)}})(e)||{invalidReason:C2};return x.token=e,x}const N2={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function O2(e,t){const{type:n,value:r}=e;if(n==="literal"){const a=/^\s+$/.test(r);return{literal:!a,val:a?" ":r}}const i=t[n];let o=N2[n];if(typeof o=="object"&&(o=o[i]),o)return{literal:!1,val:o}}function R2(e){return[`^${e.map(n=>n.regex).reduce((n,r)=>`${n}(${r.source})`,"")}$`,e]}function _2(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(Uo(n,a)){const s=n[a],u=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+u))),o+=u}return[r,i]}else return[r,{}]}function P2(e){const t=o=>{switch(o){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return ze(e.z)||(n=Mr.create(e.z)),ze(e.Z)||(n||(n=new Qt(e.Z)),r=e.Z),ze(e.q)||(e.M=(e.q-1)*3+1),ze(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),ze(e.u)||(e.S=bh(e.u)),[Object.keys(e).reduce((o,a)=>{const s=t(a);return s&&(o[s]=e[a]),o},{}),n,r]}let nd=null;function M2(){return nd||(nd=de.fromMillis(1555555555555)),nd}function $2(e,t){if(e.literal)return e;const n=Ht.macroTokenToFormatOpts(e.val),r=Rx(n,t);return r==null||r.includes(void 0)?e:r}function Nx(e,t){return Array.prototype.concat(...e.map(n=>$2(n,t)))}function Ox(e,t,n){const r=Nx(Ht.parseFormat(n),e),i=r.map(a=>T2(a,e)),o=i.find(a=>a.invalidReason);if(o)return{input:t,tokens:r,invalidReason:o.invalidReason};{const[a,s]=R2(i),u=RegExp(a,"i"),[l,f]=_2(t,u,s),[h,p,y]=f?P2(f):[null,null,void 0];if(Uo(f,"a")&&Uo(f,"H"))throw new Pa("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:r,regex:u,rawMatches:l,matches:f,result:h,zone:p,specificOffset:y}}}function I2(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ox(e,t,n);return[r,i,o,a]}function Rx(e,t){return e?Ht.create(t,e).formatDateTimeParts(M2()).map(i=>O2(i,e)):null}const _x=[0,31,59,90,120,151,181,212,243,273,304,334],Px=[0,31,60,91,121,152,182,213,244,274,305,335];function Mn(e,t){return new Zn("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Mx(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function $x(e,t,n){return n+(Ns(e)?Px:_x)[t-1]}function Ix(e,t){const n=Ns(e)?Px:_x,r=n.findIndex(o=>olu(t)?(s=t+1,a=1):s=t,{weekYear:s,weekNumber:a,weekday:o,...Bu(e)}}function Ly(e){const{weekYear:t,weekNumber:n,weekday:r}=e,i=Mx(t,1,4),o=Ua(t);let a=n*7+r-i-3,s;a<1?(s=t-1,a+=Ua(s)):a>o?(s=t+1,a-=Ua(t)):s=t;const{month:u,day:l}=Ix(s,a);return{year:s,month:u,day:l,...Bu(e)}}function rd(e){const{year:t,month:n,day:r}=e,i=$x(t,n,r);return{year:t,ordinal:i,...Bu(e)}}function jy(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Ix(t,n);return{year:t,month:r,day:i,...Bu(e)}}function F2(e){const t=Lu(e.weekYear),n=Cr(e.weekNumber,1,lu(e.weekYear)),r=Cr(e.weekday,1,7);return t?n?r?!1:Mn("weekday",e.weekday):Mn("week",e.week):Mn("weekYear",e.weekYear)}function D2(e){const t=Lu(e.year),n=Cr(e.ordinal,1,Ua(e.year));return t?n?!1:Mn("ordinal",e.ordinal):Mn("year",e.year)}function Fx(e){const t=Lu(e.year),n=Cr(e.month,1,12),r=Cr(e.day,1,su(e.year,e.month));return t?n?r?!1:Mn("day",e.day):Mn("month",e.month):Mn("year",e.year)}function Dx(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=Cr(t,0,23)||t===24&&n===0&&r===0&&i===0,a=Cr(n,0,59),s=Cr(r,0,59),u=Cr(i,0,999);return o?a?s?u?!1:Mn("millisecond",i):Mn("second",r):Mn("minute",n):Mn("hour",t)}const id="Invalid DateTime",By=864e13;function ul(e){return new Zn("unsupported zone",`the zone "${e.name}" is not supported`)}function od(e){return e.weekData===null&&(e.weekData=Tf(e.c)),e.weekData}function Ca(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new de({...n,...t,old:n})}function Ax(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function zy(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Ol(e,t,n){return Ax(kh(e),t,n)}function Vy(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,su(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=He.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=kh(o);let[u,l]=Ax(s,n,e.zone);return a!==0&&(u+=a,l=e.zone.offset(u)),{ts:u,o:l}}function ba(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const u=t||s,l=de.fromObject(e,{...n,zone:u,specificOffset:o});return a?l:l.setZone(s)}else return de.invalid(new Zn("unparsable",`the input "${i}" can't be parsed as ${r}`))}function cl(e,t,n=!0){return e.isValid?Ht.create(at.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function ad(e,t){const n=e.c.year>9999||e.c.year<0;let r="";return n&&e.c.year>=0&&(r+="+"),r+=bt(e.c.year,n?6:4),t?(r+="-",r+=bt(e.c.month),r+="-",r+=bt(e.c.day)):(r+=bt(e.c.month),r+=bt(e.c.day)),r}function Hy(e,t,n,r,i,o){let a=bt(e.c.hour);return t?(a+=":",a+=bt(e.c.minute),(e.c.second!==0||!n)&&(a+=":")):a+=bt(e.c.minute),(e.c.second!==0||!n)&&(a+=bt(e.c.second),(e.c.millisecond!==0||!r)&&(a+=".",a+=bt(e.c.millisecond,3))),i&&(e.isOffsetFixed&&e.offset===0&&!o?a+="Z":e.o<0?(a+="-",a+=bt(Math.trunc(-e.o/60)),a+=":",a+=bt(Math.trunc(-e.o%60))):(a+="+",a+=bt(Math.trunc(e.o/60)),a+=":",a+=bt(Math.trunc(e.o%60)))),o&&(a+="["+e.zone.ianaName+"]"),a}const Lx={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},A2={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},L2={ordinal:1,hour:0,minute:0,second:0,millisecond:0},jx=["year","month","day","hour","minute","second","millisecond"],j2=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],B2=["year","ordinal","hour","minute","second","millisecond"];function Wy(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new zS(e);return t}function Uy(e,t){const n=Zr(t.zone,Ct.defaultZone),r=at.fromObject(t),i=Ct.now();let o,a;if(ze(e.year))o=i;else{for(const l of jx)ze(e[l])&&(e[l]=Lx[l]);const s=Fx(e)||Dx(e);if(s)return de.invalid(s);const u=n.offset(i);[o,a]=Ol(e,u,n)}return new de({ts:o,zone:n,loc:r,o:a})}function Gy(e,t,n){const r=ze(n.round)?!0:n.round,i=(a,s)=>(a=Eh(a,r||n.calendary?0:2,!0),t.loc.clone(n).relFormatter(n).format(a,s)),o=a=>n.calendary?t.hasSame(e,a)?0:t.startOf(a).diff(e.startOf(a),a).get(a):t.diff(e,a).get(a);if(n.unit)return i(o(n.unit),n.unit);for(const a of n.units){const s=o(a);if(Math.abs(s)>=1)return i(s,a)}return i(e>t?-0:0,n.units[n.units.length-1])}function qy(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}class de{constructor(t){const n=t.zone||Ct.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Zn("invalid input"):null)||(n.isValid?null:ul(n));this.ts=ze(t.ts)?Ct.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const s=n.offset(this.ts);i=zy(this.ts,s),r=Number.isNaN(i.year)?new Zn("invalid input"):null,i=r?null:i,o=r?null:s}this._zone=n,this.loc=t.loc||at.create(),this.invalid=r,this.weekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new de({})}static local(){const[t,n]=qy(arguments),[r,i,o,a,s,u,l]=n;return Uy({year:r,month:i,day:o,hour:a,minute:s,second:u,millisecond:l},t)}static utc(){const[t,n]=qy(arguments),[r,i,o,a,s,u,l]=n;return t.zone=Qt.utcInstance,Uy({year:r,month:i,day:o,hour:a,minute:s,second:u,millisecond:l},t)}static fromJSDate(t,n={}){const r=dP(t)?t.valueOf():NaN;if(Number.isNaN(r))return de.invalid("invalid input");const i=Zr(n.zone,Ct.defaultZone);return i.isValid?new de({ts:r,zone:i,loc:at.fromObject(n)}):de.invalid(ul(i))}static fromMillis(t,n={}){if(Fi(t))return t<-By||t>By?de.invalid("Timestamp out of range"):new de({ts:t,zone:Zr(n.zone,Ct.defaultZone),loc:at.fromObject(n)});throw new _n(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Fi(t))return new de({ts:t*1e3,zone:Zr(n.zone,Ct.defaultZone),loc:at.fromObject(n)});throw new _n("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Zr(n.zone,Ct.defaultZone);if(!r.isValid)return de.invalid(ul(r));const i=Ct.now(),o=ze(n.specificOffset)?r.offset(i):n.specificOffset,a=uu(t,Wy),s=!ze(a.ordinal),u=!ze(a.year),l=!ze(a.month)||!ze(a.day),f=u||l,h=a.weekYear||a.weekNumber,p=at.fromObject(n);if((f||s)&&h)throw new Pa("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&s)throw new Pa("Can't mix ordinal dates with month/day");const y=h||a.weekday&&!f;let C,x,N=zy(i,o);y?(C=j2,x=A2,N=Tf(N)):s?(C=B2,x=L2,N=rd(N)):(C=jx,x=Lx);let w=!1;for(const A of C){const I=a[A];ze(I)?w?a[A]=x[A]:a[A]=N[A]:w=!0}const E=y?F2(a):s?D2(a):Fx(a),b=E||Dx(a);if(b)return de.invalid(b);const T=y?Ly(a):s?jy(a):a,[R,M]=Ol(T,o,r),F=new de({ts:R,zone:r,o:M,loc:p});return a.weekday&&f&&t.weekday!==F.weekday?de.invalid("mismatched weekday",`you can't specify both a weekday of ${a.weekday} and a date of ${F.toISO()}`):F}static fromISO(t,n={}){const[r,i]=e2(t);return ba(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=t2(t);return ba(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=n2(t);return ba(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(ze(t)||ze(n))throw new _n("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=at.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,u,l,f]=I2(a,t,n);return f?de.invalid(f):ba(s,u,r,`format ${n}`,t,l)}static fromString(t,n,r={}){return de.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=u2(t);return ba(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new _n("need to specify a reason the DateTime is invalid");const r=t instanceof Zn?t:new Zn(t,n);if(Ct.throwOnInvalid)throw new V_(r);return new de({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Rx(t,at.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return Nx(Ht.parseFormat(t),at.fromObject(n)).map(i=>i.val).join("")}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?od(this).weekYear:NaN}get weekNumber(){return this.isValid?od(this).weekNumber:NaN}get weekday(){return this.isValid?od(this).weekday:NaN}get ordinal(){return this.isValid?rd(this.c).ordinal:NaN}get monthShort(){return this.isValid?sl.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?sl.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?sl.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?sl.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return Ns(this.year)}get daysInMonth(){return su(this.year,this.month)}get daysInYear(){return this.isValid?Ua(this.year):NaN}get weeksInWeekYear(){return this.isValid?lu(this.weekYear):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Ht.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(Qt.instance(t),n)}toLocal(){return this.setZone(Ct.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Zr(t,Ct.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=Ol(a,o,t)}return Ca(this,{ts:i,zone:t})}else return de.invalid(ul(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return Ca(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=uu(t,Wy),r=!ze(n.weekYear)||!ze(n.weekNumber)||!ze(n.weekday),i=!ze(n.ordinal),o=!ze(n.year),a=!ze(n.month)||!ze(n.day),s=o||a,u=n.weekYear||n.weekNumber;if((s||i)&&u)throw new Pa("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(a&&i)throw new Pa("Can't mix ordinal dates with month/day");let l;r?l=Ly({...Tf(this.c),...n}):ze(n.ordinal)?(l={...this.toObject(),...n},ze(n.day)&&(l.day=Math.min(su(l.year,l.month),l.day))):l=jy({...rd(this.c),...n});const[f,h]=Ol(l,this.o,this.zone);return Ca(this,{ts:f,o:h})}plus(t){if(!this.isValid)return this;const n=He.fromDurationLike(t);return Ca(this,Vy(this,n))}minus(t){if(!this.isValid)return this;const n=He.fromDurationLike(t).negate();return Ca(this,Vy(this,n))}startOf(t){if(!this.isValid)return this;const n={},r=He.normalizeUnit(t);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(r==="weeks"&&(n.weekday=1),r==="quarters"){const i=Math.ceil(this.month/3);n.month=(i-1)*3+1}return this.set(n)}endOf(t){return this.isValid?this.plus({[t]:1}).startOf(t).minus(1):this}toFormat(t,n={}){return this.isValid?Ht.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,t):id}toLocaleString(t=au,n={}){return this.isValid?Ht.create(this.loc.clone(n),t).formatDateTime(this):id}toLocaleParts(t={}){return this.isValid?Ht.create(this.loc.clone(t),t).formatDateTimeParts(this):[]}toISO({format:t="extended",suppressSeconds:n=!1,suppressMilliseconds:r=!1,includeOffset:i=!0,extendedZone:o=!1}={}){if(!this.isValid)return null;const a=t==="extended";let s=ad(this,a);return s+="T",s+=Hy(this,a,n,r,i,o),s}toISODate({format:t="extended"}={}){return this.isValid?ad(this,t==="extended"):null}toISOWeekDate(){return cl(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended"}={}){return this.isValid?(i?"T":"")+Hy(this,a==="extended",n,t,r,o):null}toRFC2822(){return cl(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return cl(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?ad(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),cl(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():id}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return He.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=fP(n).map(He.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,u=a?t:this,l=w2(s,u,o,i);return a?l.negate():l}diffNow(t="milliseconds",n={}){return this.diff(de.now(),t,n)}until(t){return this.isValid?vt.fromDateTimes(this,t):this}hasSame(t,n){if(!this.isValid)return!1;const r=t.valueOf(),i=this.setZone(t.zone,{keepLocalTime:!0});return i.startOf(n)<=r&&r<=i.endOf(n)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||de.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(de.isDateTime))throw new _n("max requires all arguments be DateTimes");return Py(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=at.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ox(a,t,n)}static fromStringExplain(t,n,r={}){return de.fromFormatExplain(t,n,r)}static get DATE_SHORT(){return au}static get DATE_MED(){return VS}static get DATE_MED_WITH_WEEKDAY(){return U_}static get DATE_FULL(){return HS}static get DATE_HUGE(){return WS}static get TIME_SIMPLE(){return US}static get TIME_WITH_SECONDS(){return GS}static get TIME_WITH_SHORT_OFFSET(){return qS}static get TIME_WITH_LONG_OFFSET(){return KS}static get TIME_24_SIMPLE(){return ZS}static get TIME_24_WITH_SECONDS(){return YS}static get TIME_24_WITH_SHORT_OFFSET(){return QS}static get TIME_24_WITH_LONG_OFFSET(){return XS}static get DATETIME_SHORT(){return JS}static get DATETIME_SHORT_WITH_SECONDS(){return ex}static get DATETIME_MED(){return tx}static get DATETIME_MED_WITH_SECONDS(){return nx}static get DATETIME_MED_WITH_WEEKDAY(){return G_}static get DATETIME_FULL(){return rx}static get DATETIME_FULL_WITH_SECONDS(){return ix}static get DATETIME_HUGE(){return ox}static get DATETIME_HUGE_WITH_SECONDS(){return ax}}function Ea(e){if(de.isDateTime(e))return e;if(e&&e.valueOf&&Fi(e.valueOf()))return de.fromJSDate(e);if(e&&typeof e=="object")return de.fromObject(e);throw new _n(`Unknown datetime argument: ${e}, of type ${typeof e}`)}de.now().toMillis(),de.now().plus({minutes:1}).toMillis(),de.now().toMillis(),de.now().plus({minutes:1}).toMillis();de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis(),de.now().toMillis();const Ky=({type:e,show:t,onHide:n})=>{var C,x,N;const{event:r,setEvent:i,config:o,locale:a}=ye(),[s,u]=m.useState("bank"),[l,f]=m.useState(0),[h,p]=m.useState(!1),y=async w=>{w.preventDefault(),p(!0);try{await Ne("update-dealership-balance",{dealership:r.dealershipId,action:e,source:s,amount:l}),i({...r,playerBalance:{...r.playerBalance,[s]:e==="deposit"?r.playerBalance[s]-(l||0):r.playerBalance[s]+(l||0)}})}catch{}n(),p(!1)};return g(z,{show:t,size:"sm",onHide:()=>n(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:a[e]})}),c(z.Body,{children:g(j,{onSubmit:y,children:[e==="deposit"&&g(j.Group,{className:"mb-3",children:[c(j.Label,{children:a.paymentSource}),g("div",{children:[c(j.Check,{label:g("div",{className:"d-flex align-items-center",children:[c("span",{className:"me-2",children:a.bank}),c(vn,{bg:"secondary",children:Le((C=r.playerBalance)==null?void 0:C.bank,o)})]}),name:"payment-source",type:"radio",id:"payment-source-card",checked:s==="bank",onChange:w=>u(w.target.checked?"bank":"cash")}),c(j.Check,{label:g("div",{className:"d-flex align-items-center",children:[c("span",{className:"me-2",children:a.cash}),c(vn,{bg:"secondary",children:Le((x=r.playerBalance)==null?void 0:x.cash,o)})]}),name:"payment-source",type:"radio",id:"payment-source-cash",checked:s==="cash",onChange:w=>u(w.target.checked?"cash":"bank")})]})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:a.amount}),c(Gt,{children:c(j.Control,{type:"number",min:1,max:e==="deposit"?(N=r.playerBalance)==null?void 0:N[s]:r.balance,value:l,onChange:w=>f(w.target.value?parseFloat(w.target.value):""),required:!0})})]}),c(ee,{type:"submit",variant:"primary",disabled:h,children:a[e]})]})})]})},z2=({currentTab:e})=>{var p,y,C;const{event:t,setEvent:n,config:r,locale:i}=ye(),[o,a]=m.useState(t.balance||0),[s,u]=m.useState(!1),[l,f]=m.useState(!1);m.useEffect(()=>{e===i.dashboard&&h()},[e]);const h=async()=>{const{balance:x}=await Ne("get-dealership-balance",{dealership:t.dealershipId});a(x),n(N=>({...N,balance:x}))};return g("div",{children:[c(ur,{className:"mb-3",children:c(Xe,{children:c(Ue,{border:"primary",children:c(Ue.Body,{className:"d-flex justify-content-between",children:t.shopType=="owned"?g(Wt,{children:[g("div",{children:[c("h2",{children:Le(o,r)}),c("div",{children:i.accountBalance})]}),t.employeeRole!=="supervisor"&&g("div",{className:"d-flex flex-column justify-content-end gap-2",children:[g(ee,{size:"sm",onClick:()=>u(!0),children:[c("i",{className:"bi-box-arrow-left me-2"}),i.withdraw]}),g(ee,{size:"sm",variant:"secondary",onClick:()=>f(!0),children:[c("i",{className:"bi-box-arrow-right me-2"}),i.deposit]})]})]}):c("h5",{className:"text-primary mb-0",children:"Self-service dealership"})})})})}),g(ur,{children:[c(Xe,{sm:4,children:c(Ue,{children:g(Ue.Body,{children:[c("h3",{children:((p=t.stats)==null?void 0:p.vehiclesCount)||0}),c("span",{children:i.vehicles})]})})}),c(Xe,{sm:4,children:c(Ue,{children:g(Ue.Body,{children:[c("h3",{children:((y=t.stats)==null?void 0:y.totalSales)||0}),c("span",{children:i.totalSales})]})})}),c(Xe,{sm:4,children:c(Ue,{children:g(Ue.Body,{children:[c("h3",{children:((C=t.stats)==null?void 0:C.vehiclesOnDisplay)||0}),c("span",{children:i.vehiclesOnDisplay})]})})})]}),c(ur,{}),c(Ky,{type:"withdraw",show:s,onHide:()=>{u(!1),h()}}),c(Ky,{type:"deposit",show:l,onHide:()=>{f(!1),h()}})]})};var Bx={exports:{}},Nf={exports:{}};(function(e,t){(function(n,r){r(t,m)})(jf,function(n,r){function i(d,v,S,k,_,O,P){try{var L=d[O](P),B=L.value}catch(V){return void S(V)}L.done?v(B):Promise.resolve(B).then(k,_)}function o(d){return function(){var v=this,S=arguments;return new Promise(function(k,_){var O=d.apply(v,S);function P(B){i(O,k,_,P,L,"next",B)}function L(B){i(O,k,_,P,L,"throw",B)}P(void 0)})}}function a(){return(a=Object.assign||function(d){for(var v=1;v=0||(_[S]=d[S]);return _}function u(d){var v=function(S,k){if(typeof S!="object"||S===null)return S;var _=S[Symbol.toPrimitive];if(_!==void 0){var O=_.call(S,k||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(S)}(d,"string");return typeof v=="symbol"?v:String(v)}r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;var l={init:"init"},f=function(d){var v=d.value;return v===void 0?"":v},h=function(){return r.createElement(r.Fragment,null," ")},p={Cell:f,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function y(){for(var d=arguments.length,v=new Array(d),S=0;S(O=typeof O=="number"?O:1/0)){var P=_;_=O,O=P}return d.filter(function(L){return v.some(function(B){var V=L.values[B];return V>=_&&V<=O})})};am.autoRemove=function(d){return!d||typeof d[0]!="number"&&typeof d[1]!="number"};var ua=Object.freeze({__proto__:null,text:Qh,exactText:Xh,exactTextCase:Jh,includes:em,includesAll:tm,includesSome:nm,includesValue:rm,exact:im,equals:om,between:am});l.resetFilters="resetFilters",l.setFilter="setFilter",l.setAllFilters="setAllFilters";var sm=function(d){d.stateReducers.push(AC),d.useInstance.push(LC)};function AC(d,v,S,k){if(v.type===l.init)return a({filters:[]},d);if(v.type===l.resetFilters)return a({},d,{filters:k.initialState.filters||[]});if(v.type===l.setFilter){var _=v.columnId,O=v.filterValue,P=k.allColumns,L=k.filterTypes,B=P.find(function(ie){return ie.id===_});if(!B)throw new Error("React-Table: Could not find a column with id: "+_);var V=U(B.filter,L||{},ua),X=d.filters.find(function(ie){return ie.id===_}),K=E(O,X&&X.value);return re(V.autoRemove,K,B)?a({},d,{filters:d.filters.filter(function(ie){return ie.id!==_})}):a({},d,X?{filters:d.filters.map(function(ie){return ie.id===_?{id:_,value:K}:ie})}:{filters:[].concat(d.filters,[{id:_,value:K}])})}if(v.type===l.setAllFilters){var Y=v.filters,H=k.allColumns,Q=k.filterTypes;return a({},d,{filters:E(Y,d.filters).filter(function(ie){var se=H.find(function(me){return me.id===ie.id});return!re(U(se.filter,Q||{},ua).autoRemove,ie.value,se)})})}}function LC(d){var v=d.data,S=d.rows,k=d.flatRows,_=d.rowsById,O=d.allColumns,P=d.filterTypes,L=d.manualFilters,B=d.defaultCanFilter,V=B!==void 0&&B,X=d.disableFilters,K=d.state.filters,Y=d.dispatch,H=d.autoResetFilters,Q=H===void 0||H,ie=r.useCallback(function(ue,Ee){Y({type:l.setFilter,columnId:ue,filterValue:Ee})},[Y]),se=r.useCallback(function(ue){Y({type:l.setAllFilters,filters:ue})},[Y]);O.forEach(function(ue){var Ee=ue.id,Ie=ue.accessor,we=ue.defaultCanFilter,Ce=ue.disableFilters;ue.canFilter=Ie?te(Ce!==!0&&void 0,X!==!0&&void 0,!0):te(we,V,!1),ue.setFilter=function(Te){return ie(ue.id,Te)};var Ve=K.find(function(Te){return Te.id===Ee});ue.filterValue=Ve&&Ve.value});var me=r.useMemo(function(){if(L||!K.length)return[S,k,_];var ue=[],Ee={};return[function Ie(we,Ce){Ce===void 0&&(Ce=0);var Ve=we;return(Ve=K.reduce(function(Te,Be){var Ae=Be.id,Qe=Be.value,ve=O.find(function(mt){return mt.id===Ae});if(!ve)return Te;Ce===0&&(ve.preFilteredRows=Te);var Fe=U(ve.filter,P||{},ua);return Fe?(ve.filteredRows=Fe(Te,[Ae],Qe),ve.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+ve.id+"."),Te)},we)).forEach(function(Te){ue.push(Te),Ee[Te.id]=Te,Te.subRows&&(Te.subRows=Te.subRows&&Te.subRows.length>0?Ie(Te.subRows,Ce+1):Te.subRows)}),Ve}(S),ue,Ee]},[L,K,S,k,_,O,P]),Me=me[0],pe=me[1],J=me[2];r.useMemo(function(){O.filter(function(ue){return!K.find(function(Ee){return Ee.id===ue.id})}).forEach(function(ue){ue.preFilteredRows=Me,ue.filteredRows=Me})},[Me,K,O]);var Re=b(Q);R(function(){Re()&&Y({type:l.resetFilters})},[Y,L?null:v]),Object.assign(d,{preFilteredRows:S,preFilteredFlatRows:k,preFilteredRowsById:_,filteredRows:Me,filteredFlatRows:pe,filteredRowsById:J,rows:Me,flatRows:pe,rowsById:J,setFilter:ie,setAllFilters:se})}sm.pluginName="useFilters",l.resetGlobalFilter="resetGlobalFilter",l.setGlobalFilter="setGlobalFilter";var lm=function(d){d.stateReducers.push(jC),d.useInstance.push(BC)};function jC(d,v,S,k){if(v.type===l.resetGlobalFilter)return a({},d,{globalFilter:k.initialState.globalFilter||void 0});if(v.type===l.setGlobalFilter){var _=v.filterValue,O=k.userFilterTypes,P=U(k.globalFilter,O||{},ua),L=E(_,d.globalFilter);return re(P.autoRemove,L)?(d.globalFilter,s(d,["globalFilter"])):a({},d,{globalFilter:L})}}function BC(d){var v=d.data,S=d.rows,k=d.flatRows,_=d.rowsById,O=d.allColumns,P=d.filterTypes,L=d.globalFilter,B=d.manualGlobalFilter,V=d.state.globalFilter,X=d.dispatch,K=d.autoResetGlobalFilter,Y=K===void 0||K,H=d.disableGlobalFilter,Q=r.useCallback(function(J){X({type:l.setGlobalFilter,filterValue:J})},[X]),ie=r.useMemo(function(){if(B||V===void 0)return[S,k,_];var J=[],Re={},ue=U(L,P||{},ua);if(!ue)return console.warn("Could not find a valid 'globalFilter' option."),S;O.forEach(function(Ie){var we=Ie.disableGlobalFilter;Ie.canFilter=te(we!==!0&&void 0,H!==!0&&void 0,!0)});var Ee=O.filter(function(Ie){return Ie.canFilter===!0});return[function Ie(we){return(we=ue(we,Ee.map(function(Ce){return Ce.id}),V)).forEach(function(Ce){J.push(Ce),Re[Ce.id]=Ce,Ce.subRows=Ce.subRows&&Ce.subRows.length?Ie(Ce.subRows):Ce.subRows}),we}(S),J,Re]},[B,V,L,P,O,S,k,_,H]),se=ie[0],me=ie[1],Me=ie[2],pe=b(Y);R(function(){pe()&&X({type:l.resetGlobalFilter})},[X,B?null:v]),Object.assign(d,{preGlobalFilteredRows:S,preGlobalFilteredFlatRows:k,preGlobalFilteredRowsById:_,globalFilteredRows:se,globalFilteredFlatRows:me,globalFilteredRowsById:Me,rows:se,flatRows:me,rowsById:Me,setGlobalFilter:Q,disableGlobalFilter:H})}function um(d,v){return v.reduce(function(S,k){return S+(typeof k=="number"?k:0)},0)}lm.pluginName="useGlobalFilter";var cm=Object.freeze({__proto__:null,sum:um,min:function(d){var v=d[0]||0;return d.forEach(function(S){typeof S=="number"&&(v=Math.min(v,S))}),v},max:function(d){var v=d[0]||0;return d.forEach(function(S){typeof S=="number"&&(v=Math.max(v,S))}),v},minMax:function(d){var v=d[0]||0,S=d[0]||0;return d.forEach(function(k){typeof k=="number"&&(v=Math.min(v,k),S=Math.max(S,k))}),v+".."+S},average:function(d){return um(0,d)/d.length},median:function(d){if(!d.length)return null;var v=Math.floor(d.length/2),S=[].concat(d).sort(function(k,_){return k-_});return d.length%2!=0?S[v]:(S[v-1]+S[v])/2},unique:function(d){return Array.from(new Set(d).values())},uniqueCount:function(d){return new Set(d).size},count:function(d){return d.length}}),zC=[],VC={};l.resetGroupBy="resetGroupBy",l.setGroupBy="setGroupBy",l.toggleGroupBy="toggleGroupBy";var dm=function(d){d.getGroupByToggleProps=[HC],d.stateReducers.push(WC),d.visibleColumnsDeps.push(function(v,S){var k=S.instance;return[].concat(v,[k.state.groupBy])}),d.visibleColumns.push(UC),d.useInstance.push(qC),d.prepareRow.push(KC)};dm.pluginName="useGroupBy";var HC=function(d,v){var S=v.header;return[d,{onClick:S.canGroupBy?function(k){k.persist(),S.toggleGroupBy()}:void 0,style:{cursor:S.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function WC(d,v,S,k){if(v.type===l.init)return a({groupBy:[]},d);if(v.type===l.resetGroupBy)return a({},d,{groupBy:k.initialState.groupBy||[]});if(v.type===l.setGroupBy)return a({},d,{groupBy:v.value});if(v.type===l.toggleGroupBy){var _=v.columnId,O=v.value,P=O!==void 0?O:!d.groupBy.includes(_);return a({},d,P?{groupBy:[].concat(d.groupBy,[_])}:{groupBy:d.groupBy.filter(function(L){return L!==_})})}}function UC(d,v){var S=v.instance.state.groupBy,k=S.map(function(O){return d.find(function(P){return P.id===O})}).filter(Boolean),_=d.filter(function(O){return!S.includes(O.id)});return(d=[].concat(k,_)).forEach(function(O){O.isGrouped=S.includes(O.id),O.groupedIndex=S.indexOf(O.id)}),d}var GC={};function qC(d){var v=d.data,S=d.rows,k=d.flatRows,_=d.rowsById,O=d.allColumns,P=d.flatHeaders,L=d.groupByFn,B=L===void 0?fm:L,V=d.manualGroupBy,X=d.aggregations,K=X===void 0?GC:X,Y=d.plugins,H=d.state.groupBy,Q=d.dispatch,ie=d.autoResetGroupBy,se=ie===void 0||ie,me=d.disableGroupBy,Me=d.defaultCanGroupBy,pe=d.getHooks;w(Y,["useColumnOrder","useFilters"],"useGroupBy");var J=b(d);O.forEach(function(ve){var Fe=ve.accessor,mt=ve.defaultGroupBy,Kt=ve.disableGroupBy;ve.canGroupBy=Fe?te(ve.canGroupBy,Kt!==!0&&void 0,me!==!0&&void 0,!0):te(ve.canGroupBy,mt,Me,!1),ve.canGroupBy&&(ve.toggleGroupBy=function(){return d.toggleGroupBy(ve.id)}),ve.Aggregated=ve.Aggregated||ve.Cell});var Re=r.useCallback(function(ve,Fe){Q({type:l.toggleGroupBy,columnId:ve,value:Fe})},[Q]),ue=r.useCallback(function(ve){Q({type:l.setGroupBy,value:ve})},[Q]);P.forEach(function(ve){ve.getGroupByToggleProps=C(pe().getGroupByToggleProps,{instance:J(),header:ve})});var Ee=r.useMemo(function(){if(V||!H.length)return[S,k,_,zC,VC,k,_];var ve=H.filter(function(_t){return O.find(function(Ar){return Ar.id===_t})}),Fe=[],mt={},Kt=[],Se={},lt=[],St={},Zt=function _t(Ar,pr,_m){if(pr===void 0&&(pr=0),pr===ve.length)return Ar.map(function(Is){return a({},Is,{depth:pr})});var hc=ve[pr],Db=B(Ar,hc);return Object.entries(Db).map(function(Is,Ab){var Pm=Is[0],Fs=Is[1],Ds=hc+":"+Pm,Mm=_t(Fs,pr+1,Ds=_m?_m+">"+Ds:Ds),$m=pr?ge(Fs,"leafRows"):Fs,Lb=function(bn,mc,Bb){var As={};return O.forEach(function(xt){if(ve.includes(xt.id))As[xt.id]=mc[0]?mc[0].values[xt.id]:null;else{var Im=typeof xt.aggregate=="function"?xt.aggregate:K[xt.aggregate]||cm[xt.aggregate];if(Im){var zb=mc.map(function(Ls){return Ls.values[xt.id]}),Vb=bn.map(function(Ls){var vc=Ls.values[xt.id];if(!Bb&&xt.aggregateValue){var Fm=typeof xt.aggregateValue=="function"?xt.aggregateValue:K[xt.aggregateValue]||cm[xt.aggregateValue];if(!Fm)throw console.info({column:xt}),new Error("React Table: Invalid column.aggregateValue option for column listed above");vc=Fm(vc,Ls,xt)}return vc});As[xt.id]=Im(Vb,zb)}else{if(xt.aggregate)throw console.info({column:xt}),new Error("React Table: Invalid column.aggregate option for column listed above");As[xt.id]=null}}}),As}($m,Fs,pr),jb={id:Ds,isGrouped:!0,groupByID:hc,groupByVal:Pm,values:Lb,subRows:Mm,leafRows:$m,depth:pr,index:Ab};return Mm.forEach(function(bn){Fe.push(bn),mt[bn.id]=bn,bn.isGrouped?(Kt.push(bn),Se[bn.id]=bn):(lt.push(bn),St[bn.id]=bn)}),jb})}(S);return Zt.forEach(function(_t){Fe.push(_t),mt[_t.id]=_t,_t.isGrouped?(Kt.push(_t),Se[_t.id]=_t):(lt.push(_t),St[_t.id]=_t)}),[Zt,Fe,mt,Kt,Se,lt,St]},[V,H,S,k,_,O,K,B]),Ie=Ee[0],we=Ee[1],Ce=Ee[2],Ve=Ee[3],Te=Ee[4],Be=Ee[5],Ae=Ee[6],Qe=b(se);R(function(){Qe()&&Q({type:l.resetGroupBy})},[Q,V?null:v]),Object.assign(d,{preGroupedRows:S,preGroupedFlatRow:k,preGroupedRowsById:_,groupedRows:Ie,groupedFlatRows:we,groupedRowsById:Ce,onlyGroupedFlatRows:Ve,onlyGroupedRowsById:Te,nonGroupedFlatRows:Be,nonGroupedRowsById:Ae,rows:Ie,flatRows:we,rowsById:Ce,toggleGroupBy:Re,setGroupBy:ue})}function KC(d){d.allCells.forEach(function(v){var S;v.isGrouped=v.column.isGrouped&&v.column.id===d.groupByID,v.isPlaceholder=!v.isGrouped&&v.column.isGrouped,v.isAggregated=!v.isGrouped&&!v.isPlaceholder&&((S=d.subRows)==null?void 0:S.length)})}function fm(d,v){return d.reduce(function(S,k,_){var O=""+k.values[v];return S[O]=Array.isArray(S[O])?S[O]:[],S[O].push(k),S},{})}var pm=/([0-9]+)/gm;function lc(d,v){return d===v?0:d>v?1:-1}function ca(d,v,S){return[d.values[S],v.values[S]]}function hm(d){return typeof d=="number"?isNaN(d)||d===1/0||d===-1/0?"":String(d):typeof d=="string"?d:""}var ZC=Object.freeze({__proto__:null,alphanumeric:function(d,v,S){var k=ca(d,v,S),_=k[0],O=k[1];for(_=hm(_),O=hm(O),_=_.split(pm).filter(Boolean),O=O.split(pm).filter(Boolean);_.length&&O.length;){var P=_.shift(),L=O.shift(),B=parseInt(P,10),V=parseInt(L,10),X=[B,V].sort();if(isNaN(X[0])){if(P>L)return 1;if(L>P)return-1}else{if(isNaN(X[1]))return isNaN(B)?-1:1;if(B>V)return 1;if(V>B)return-1}}return _.length-O.length},datetime:function(d,v,S){var k=ca(d,v,S),_=k[0],O=k[1];return lc(_=_.getTime(),O=O.getTime())},basic:function(d,v,S){var k=ca(d,v,S);return lc(k[0],k[1])},string:function(d,v,S){var k=ca(d,v,S),_=k[0],O=k[1];for(_=_.split("").filter(Boolean),O=O.split("").filter(Boolean);_.length&&O.length;){var P=_.shift(),L=O.shift(),B=P.toLowerCase(),V=L.toLowerCase();if(B>V)return 1;if(V>B)return-1;if(P>L)return 1;if(L>P)return-1}return _.length-O.length},number:function(d,v,S){var k=ca(d,v,S),_=k[0],O=k[1],P=/[^0-9.]/gi;return lc(_=Number(String(_).replace(P,"")),O=Number(String(O).replace(P,"")))}});l.resetSortBy="resetSortBy",l.setSortBy="setSortBy",l.toggleSortBy="toggleSortBy",l.clearSortBy="clearSortBy",p.sortType="alphanumeric",p.sortDescFirst=!1;var mm=function(d){d.getSortByToggleProps=[YC],d.stateReducers.push(QC),d.useInstance.push(XC)};mm.pluginName="useSortBy";var YC=function(d,v){var S=v.instance,k=v.column,_=S.isMultiSortEvent,O=_===void 0?function(P){return P.shiftKey}:_;return[d,{onClick:k.canSort?function(P){P.persist(),k.toggleSortBy(void 0,!S.disableMultiSort&&O(P))}:void 0,style:{cursor:k.canSort?"pointer":void 0},title:k.canSort?"Toggle SortBy":void 0}]};function QC(d,v,S,k){if(v.type===l.init)return a({sortBy:[]},d);if(v.type===l.resetSortBy)return a({},d,{sortBy:k.initialState.sortBy||[]});if(v.type===l.clearSortBy)return a({},d,{sortBy:d.sortBy.filter(function(J){return J.id!==v.columnId})});if(v.type===l.setSortBy)return a({},d,{sortBy:v.sortBy});if(v.type===l.toggleSortBy){var _,O=v.columnId,P=v.desc,L=v.multi,B=k.allColumns,V=k.disableMultiSort,X=k.disableSortRemove,K=k.disableMultiRemove,Y=k.maxMultiSortColCount,H=Y===void 0?Number.MAX_SAFE_INTEGER:Y,Q=d.sortBy,ie=B.find(function(J){return J.id===O}).sortDescFirst,se=Q.find(function(J){return J.id===O}),me=Q.findIndex(function(J){return J.id===O}),Me=P!=null,pe=[];return(_=!V&&L?se?"toggle":"add":me!==Q.length-1||Q.length!==1?"replace":se?"toggle":"replace")!="toggle"||X||Me||L&&K||!(se&&se.desc&&!ie||!se.desc&&ie)||(_="remove"),_==="replace"?pe=[{id:O,desc:Me?P:ie}]:_==="add"?(pe=[].concat(Q,[{id:O,desc:Me?P:ie}])).splice(0,pe.length-H):_==="toggle"?pe=Q.map(function(J){return J.id===O?a({},J,{desc:Me?P:!se.desc}):J}):_==="remove"&&(pe=Q.filter(function(J){return J.id!==O})),a({},d,{sortBy:pe})}}function XC(d){var v=d.data,S=d.rows,k=d.flatRows,_=d.allColumns,O=d.orderByFn,P=O===void 0?vm:O,L=d.sortTypes,B=d.manualSortBy,V=d.defaultCanSort,X=d.disableSortBy,K=d.flatHeaders,Y=d.state.sortBy,H=d.dispatch,Q=d.plugins,ie=d.getHooks,se=d.autoResetSortBy,me=se===void 0||se;w(Q,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var Me=r.useCallback(function(we){H({type:l.setSortBy,sortBy:we})},[H]),pe=r.useCallback(function(we,Ce,Ve){H({type:l.toggleSortBy,columnId:we,desc:Ce,multi:Ve})},[H]),J=b(d);K.forEach(function(we){var Ce=we.accessor,Ve=we.canSort,Te=we.disableSortBy,Be=we.id,Ae=Ce?te(Te!==!0&&void 0,X!==!0&&void 0,!0):te(V,Ve,!1);we.canSort=Ae,we.canSort&&(we.toggleSortBy=function(ve,Fe){return pe(we.id,ve,Fe)},we.clearSortBy=function(){H({type:l.clearSortBy,columnId:we.id})}),we.getSortByToggleProps=C(ie().getSortByToggleProps,{instance:J(),column:we});var Qe=Y.find(function(ve){return ve.id===Be});we.isSorted=!!Qe,we.sortedIndex=Y.findIndex(function(ve){return ve.id===Be}),we.isSortedDesc=we.isSorted?Qe.desc:void 0});var Re=r.useMemo(function(){if(B||!Y.length)return[S,k];var we=[],Ce=Y.filter(function(Ve){return _.find(function(Te){return Te.id===Ve.id})});return[function Ve(Te){var Be=P(Te,Ce.map(function(Ae){var Qe=_.find(function(mt){return mt.id===Ae.id});if(!Qe)throw new Error("React-Table: Could not find a column with id: "+Ae.id+" while sorting");var ve=Qe.sortType,Fe=Oe(ve)||(L||{})[ve]||ZC[ve];if(!Fe)throw new Error("React-Table: Could not find a valid sortType of '"+ve+"' for column '"+Ae.id+"'.");return function(mt,Kt){return Fe(mt,Kt,Ae.id,Ae.desc)}}),Ce.map(function(Ae){var Qe=_.find(function(ve){return ve.id===Ae.id});return Qe&&Qe.sortInverted?Ae.desc:!Ae.desc}));return Be.forEach(function(Ae){we.push(Ae),Ae.subRows&&Ae.subRows.length!==0&&(Ae.subRows=Ve(Ae.subRows))}),Be}(S),we]},[B,Y,S,k,_,P,L]),ue=Re[0],Ee=Re[1],Ie=b(me);R(function(){Ie()&&H({type:l.resetSortBy})},[B?null:v]),Object.assign(d,{preSortedRows:S,preSortedFlatRows:k,sortedRows:ue,sortedFlatRows:Ee,rows:ue,flatRows:Ee,setSortBy:Me,toggleSortBy:pe})}function vm(d,v,S){return[].concat(d).sort(function(k,_){for(var O=0;Od.pageIndex?L=_===-1?O.length>=d.pageSize:P<_:P-1),L?a({},d,{pageIndex:P}):d}if(v.type===l.setPageSize){var B=v.pageSize,V=d.pageSize*d.pageIndex;return a({},d,{pageIndex:Math.floor(V/B),pageSize:B})}}function eb(d){var v=d.rows,S=d.autoResetPage,k=S===void 0||S,_=d.manualExpandedKey,O=_===void 0?"expanded":_,P=d.plugins,L=d.pageCount,B=d.paginateExpandedRows,V=B===void 0||B,X=d.expandSubRows,K=X===void 0||X,Y=d.state,H=Y.pageSize,Q=Y.pageIndex,ie=Y.expanded,se=Y.globalFilter,me=Y.filters,Me=Y.groupBy,pe=Y.sortBy,J=d.dispatch,Re=d.data,ue=d.manualPagination;w(P,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var Ee=b(k);R(function(){Ee()&&J({type:l.resetPage})},[J,ue?null:Re,se,me,Me,pe]);var Ie=ue?L:Math.ceil(v.length/H),we=r.useMemo(function(){return Ie>0?[].concat(new Array(Ie)).fill(null).map(function(Fe,mt){return mt}):[]},[Ie]),Ce=r.useMemo(function(){var Fe;if(ue)Fe=v;else{var mt=H*Q,Kt=mt+H;Fe=v.slice(mt,Kt)}return V?Fe:xe(Fe,{manualExpandedKey:O,expanded:ie,expandSubRows:K})},[K,ie,O,ue,Q,H,V,v]),Ve=Q>0,Te=Ie===-1?Ce.length>=H:Q-1&&O.push(_.splice(B,1)[0])};_.length&&k.length;)P();return[].concat(O,_)}function bb(d){var v=d.dispatch;d.setColumnOrder=r.useCallback(function(S){return v({type:l.setColumnOrder,columnOrder:S})},[v])}Em.pluginName="useColumnOrder",p.canResize=!0,l.columnStartResizing="columnStartResizing",l.columnResizing="columnResizing",l.columnDoneResizing="columnDoneResizing",l.resetResize="resetResize";var km=function(d){d.getResizerProps=[Eb],d.getHeaderProps.push({style:{position:"relative"}}),d.stateReducers.push(kb),d.useInstance.push(Nb),d.useInstanceBeforeDimensions.push(Tb)},Eb=function(d,v){var S=v.instance,k=v.header,_=S.dispatch,O=function(P,L){var B=!1;if(P.type==="touchstart"){if(P.touches&&P.touches.length>1)return;B=!0}var V,X,K=function(pe){var J=[];return function Re(ue){ue.columns&&ue.columns.length&&ue.columns.map(Re),J.push(ue)}(pe),J}(L).map(function(pe){return[pe.id,pe.totalWidth]}),Y=B?Math.round(P.touches[0].clientX):P.clientX,H=function(){window.cancelAnimationFrame(V),V=null,_({type:l.columnDoneResizing})},Q=function(){window.cancelAnimationFrame(V),V=null,_({type:l.columnResizing,clientX:X})},ie=function(pe){X=pe,V||(V=window.requestAnimationFrame(Q))},se={mouse:{moveEvent:"mousemove",moveHandler:function(pe){return ie(pe.clientX)},upEvent:"mouseup",upHandler:function(pe){document.removeEventListener("mousemove",se.mouse.moveHandler),document.removeEventListener("mouseup",se.mouse.upHandler),H()}},touch:{moveEvent:"touchmove",moveHandler:function(pe){return pe.cancelable&&(pe.preventDefault(),pe.stopPropagation()),ie(pe.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(pe){document.removeEventListener(se.touch.moveEvent,se.touch.moveHandler),document.removeEventListener(se.touch.upEvent,se.touch.moveHandler),H()}}},me=B?se.touch:se.mouse,Me=!!function(){if(typeof ke=="boolean")return ke;var pe=!1;try{var J={get passive(){return pe=!0,!1}};window.addEventListener("test",null,J),window.removeEventListener("test",null,J)}catch{pe=!1}return ke=pe}()&&{passive:!1};document.addEventListener(me.moveEvent,me.moveHandler,Me),document.addEventListener(me.upEvent,me.upHandler,Me),_({type:l.columnStartResizing,columnId:L.id,columnWidth:L.totalWidth,headerIdWidths:K,clientX:Y})};return[d,{onMouseDown:function(P){return P.persist()||O(P,k)},onTouchStart:function(P){return P.persist()||O(P,k)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function kb(d,v){if(v.type===l.init)return a({columnResizing:{columnWidths:{}}},d);if(v.type===l.resetResize)return a({},d,{columnResizing:{columnWidths:{}}});if(v.type===l.columnStartResizing){var S=v.clientX,k=v.columnId,_=v.columnWidth,O=v.headerIdWidths;return a({},d,{columnResizing:a({},d.columnResizing,{startX:S,headerIdWidths:O,columnWidth:_,isResizingColumn:k})})}if(v.type===l.columnResizing){var P=v.clientX,L=d.columnResizing,B=L.startX,V=L.columnWidth,X=L.headerIdWidths,K=(P-B)/V,Y={};return(X===void 0?[]:X).forEach(function(H){var Q=H[0],ie=H[1];Y[Q]=Math.max(ie+ie*K,0)}),a({},d,{columnResizing:a({},d.columnResizing,{columnWidths:a({},d.columnResizing.columnWidths,{},Y)})})}return v.type===l.columnDoneResizing?a({},d,{columnResizing:a({},d.columnResizing,{startX:null,isResizingColumn:null})}):void 0}km.pluginName="useResizeColumns";var Tb=function(d){var v=d.flatHeaders,S=d.disableResizing,k=d.getHooks,_=d.state.columnResizing,O=b(d);v.forEach(function(P){var L=te(P.disableResizing!==!0&&void 0,S!==!0&&void 0,!0);P.canResize=L,P.width=_.columnWidths[P.id]||P.originalWidth||P.width,P.isResizing=_.isResizingColumn===P.id,L&&(P.getResizerProps=C(k().getResizerProps,{instance:O(),header:P}))})};function Nb(d){var v=d.plugins,S=d.dispatch,k=d.autoResetResize,_=k===void 0||k,O=d.columns;w(v,["useAbsoluteLayout"],"useResizeColumns");var P=b(_);R(function(){P()&&S({type:l.resetResize})},[O]);var L=r.useCallback(function(){return S({type:l.resetResize})},[S]);Object.assign(d,{resetResizing:L})}var uc={position:"absolute",top:0},Tm=function(d){d.getTableBodyProps.push($s),d.getRowProps.push($s),d.getHeaderGroupProps.push($s),d.getFooterGroupProps.push($s),d.getHeaderProps.push(function(v,S){var k=S.column;return[v,{style:a({},uc,{left:k.totalLeft+"px",width:k.totalWidth+"px"})}]}),d.getCellProps.push(function(v,S){var k=S.cell;return[v,{style:a({},uc,{left:k.column.totalLeft+"px",width:k.column.totalWidth+"px"})}]}),d.getFooterProps.push(function(v,S){var k=S.column;return[v,{style:a({},uc,{left:k.totalLeft+"px",width:k.totalWidth+"px"})}]})};Tm.pluginName="useAbsoluteLayout";var $s=function(d,v){return[d,{style:{position:"relative",width:v.instance.totalColumnsWidth+"px"}}]},cc={display:"inline-block",boxSizing:"border-box"},dc=function(d,v){return[d,{style:{display:"flex",width:v.instance.totalColumnsWidth+"px"}}]},Nm=function(d){d.getRowProps.push(dc),d.getHeaderGroupProps.push(dc),d.getFooterGroupProps.push(dc),d.getHeaderProps.push(function(v,S){var k=S.column;return[v,{style:a({},cc,{width:k.totalWidth+"px"})}]}),d.getCellProps.push(function(v,S){var k=S.cell;return[v,{style:a({},cc,{width:k.column.totalWidth+"px"})}]}),d.getFooterProps.push(function(v,S){var k=S.column;return[v,{style:a({},cc,{width:k.totalWidth+"px"})}]})};function Om(d){d.getTableProps.push(Ob),d.getRowProps.push(fc),d.getHeaderGroupProps.push(fc),d.getFooterGroupProps.push(fc),d.getHeaderProps.push(Rb),d.getCellProps.push(_b),d.getFooterProps.push(Pb)}Nm.pluginName="useBlockLayout",Om.pluginName="useFlexLayout";var Ob=function(d,v){return[d,{style:{minWidth:v.instance.totalColumnsMinWidth+"px"}}]},fc=function(d,v){return[d,{style:{display:"flex",flex:"1 0 auto",minWidth:v.instance.totalColumnsMinWidth+"px"}}]},Rb=function(d,v){var S=v.column;return[d,{style:{boxSizing:"border-box",flex:S.totalFlexWidth?S.totalFlexWidth+" 0 auto":void 0,minWidth:S.totalMinWidth+"px",width:S.totalWidth+"px"}}]},_b=function(d,v){var S=v.cell;return[d,{style:{boxSizing:"border-box",flex:S.column.totalFlexWidth+" 0 auto",minWidth:S.column.totalMinWidth+"px",width:S.column.totalWidth+"px"}}]},Pb=function(d,v){var S=v.column;return[d,{style:{boxSizing:"border-box",flex:S.totalFlexWidth?S.totalFlexWidth+" 0 auto":void 0,minWidth:S.totalMinWidth+"px",width:S.totalWidth+"px"}}]};function Rm(d){d.stateReducers.push(Fb),d.getTableProps.push(Mb),d.getHeaderProps.push($b),d.getRowProps.push(Ib)}l.columnStartResizing="columnStartResizing",l.columnResizing="columnResizing",l.columnDoneResizing="columnDoneResizing",l.resetResize="resetResize",Rm.pluginName="useGridLayout";var Mb=function(d,v){var S=v.instance;return[d,{style:{display:"grid",gridTemplateColumns:S.visibleColumns.map(function(k){var _;return S.state.gridLayout.columnWidths[k.id]?S.state.gridLayout.columnWidths[k.id]+"px":(_=S.state.columnResizing)!=null&&_.isResizingColumn?S.state.gridLayout.startWidths[k.id]+"px":typeof k.width=="number"?k.width+"px":k.width}).join(" ")}}]},$b=function(d,v){var S=v.column;return[d,{id:"header-cell-"+S.id,style:{position:"sticky",gridColumn:"span "+S.totalVisibleHeaderCount}}]},Ib=function(d,v){var S=v.row;return S.isExpanded?[d,{style:{gridColumn:"1 / "+(S.cells.length+1)}}]:[d,{}]};function Fb(d,v,S,k){if(v.type===l.init)return a({gridLayout:{columnWidths:{}}},d);if(v.type===l.resetResize)return a({},d,{gridLayout:{columnWidths:{}}});if(v.type===l.columnStartResizing){var _=v.columnId,O=v.headerIdWidths,P=pc(_);if(P!==void 0){var L=k.visibleColumns.reduce(function(J,Re){var ue;return a({},J,((ue={})[Re.id]=pc(Re.id),ue))},{}),B=k.visibleColumns.reduce(function(J,Re){var ue;return a({},J,((ue={})[Re.id]=Re.minWidth,ue))},{}),V=k.visibleColumns.reduce(function(J,Re){var ue;return a({},J,((ue={})[Re.id]=Re.maxWidth,ue))},{}),X=O.map(function(J){var Re=J[0];return[Re,pc(Re)]});return a({},d,{gridLayout:a({},d.gridLayout,{startWidths:L,minWidths:B,maxWidths:V,headerIdGridWidths:X,columnWidth:P})})}return d}if(v.type===l.columnResizing){var K=v.clientX,Y=d.columnResizing.startX,H=d.gridLayout,Q=H.columnWidth,ie=H.minWidths,se=H.maxWidths,me=H.headerIdGridWidths,Me=(K-Y)/Q,pe={};return(me===void 0?[]:me).forEach(function(J){var Re=J[0],ue=J[1];pe[Re]=Math.min(Math.max(ie[Re],ue+ue*Me),se[Re])}),a({},d,{gridLayout:a({},d.gridLayout,{columnWidths:a({},d.gridLayout.columnWidths,{},pe)})})}return v.type===l.columnDoneResizing?a({},d,{gridLayout:a({},d.gridLayout,{startWidths:{},minWidths:{},maxWidths:{}})}):void 0}function pc(d){var v,S=(v=document.getElementById("header-cell-"+d))==null?void 0:v.offsetWidth;if(S!==void 0)return S}n._UNSTABLE_usePivotColumns=gm,n.actions=l,n.defaultColumn=p,n.defaultGroupByFn=fm,n.defaultOrderByFn=vm,n.defaultRenderer=f,n.emptyRenderer=h,n.ensurePluginOrder=w,n.flexRender=F,n.functionalUpdate=E,n.loopHooks=N,n.makePropGetter=C,n.makeRenderer=M,n.reduceHooks=x,n.safeUseLayoutEffect=T,n.useAbsoluteLayout=Tm,n.useAsyncDebounce=function(d,v){v===void 0&&(v=0);var S=r.useRef({}),k=b(d),_=b(v);return r.useCallback(function(){var O=o(regeneratorRuntime.mark(function P(){var L,B,V,X=arguments;return regeneratorRuntime.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:for(L=X.length,B=new Array(L),V=0;V1?v-1:0),k=1;k{const{event:o,locale:a}=ye(),[s,u]=m.useState(r),l=async f=>{f.preventDefault(),await Ne("update-vehicle-price",{vehicle:n,dealership:o.dealershipId,newPrice:s}),i(s),t()};return g(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:g(z.Title,{as:"h5",children:[a.edit," ",a.price]})}),c(z.Body,{children:g(j,{onSubmit:l,children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:a.price}),c(j.Control,{type:"number",value:s,onChange:f=>u(f.target.value?parseFloat(f.target.value):""),min:0,required:!0})]}),c(ee,{type:"submit",children:a.save})]})})]})},W2=({show:e,onHide:t,spawnCode:n,price:r})=>{const{event:i,config:o,locale:a}=ye(),[s,u]=m.useState(1),l=m.useMemo(()=>r*(s||1),[r,s]),f=async h=>{h.preventDefault(),u(1),t();try{await Ne("order-vehicle",{dealership:i.dealershipId,spawnCode:n,quantity:s})}catch{}};return g(z,{show:e,size:"sm",onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:a.orderVehicle})}),c(z.Body,{children:g(j,{onSubmit:f,children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:a.quantity}),g(Gt,{children:[c(j.Control,{type:"number",value:s,onChange:h=>u(h.target.value?parseInt(h.target.value):""),min:1,required:!0}),c(ee,{variant:"secondary",onClick:()=>u(h=>Math.max(1,(h||2)-1)),children:"-"}),c(ee,{variant:"secondary",onClick:()=>u(h=>(h||0)+1),children:"+"})]})]}),g(j.Group,{className:"mb-4",children:[c(j.Label,{children:a.totalCost}),c("h4",{children:Le(l,o)})]}),c(ee,{type:"submit",disabled:i.balance{const{config:n,locale:r,event:i}=ye(),{brand:o,model:a,spawn_code:s,category:u,stock:l,price:f,list_price:h}=e,[p,y]=m.useState(!1),[C,x]=m.useState(!1),N=(f||1)*(n.DealerPurchasePrice||1);return g("tr",{children:[g("td",{className:"admin-vehicle-row-name",children:[o," ",a]}),c("td",{children:u}),i.shopType=="owned"&&g("td",{children:[c("span",{children:l}),c(vn,{className:"ms-2",bg:l>0?"success":"danger",children:l>0?r.inStock:r.outOfStock})]}),c("td",{children:Le(N,n)}),g("td",{children:[c("span",{children:Le(h||0,n)}),i.employeeRole!=="supervisor"&&!(!n.ManagerCanChangePriceOfVehicles&&i.employeeRole==="manager")&&g("span",{children:[c(ee,{size:"sm",variant:"link",className:"me-2",onClick:()=>y(!0),children:c("i",{className:"bi-pencil"})}),c(H2,{show:p,onHide:()=>y(!1),vehicle:s,price:h||0,onUpdatePrice:w=>t({...e,list_price:w})})]})]}),i.shopType=="owned"&&g("td",{className:"text-end",children:[g(ee,{size:"sm",variant:"primary",onClick:()=>x(!0),children:[c("i",{className:"bi-cart me-1"}),r.placeOrder]}),c(W2,{show:C,onHide:()=>x(!1),spawnCode:s,price:N})]})]})},G2=({data:e,columns:t,setVehicles:n})=>{const{locale:r}=ye(),{getTableProps:i,getTableBodyProps:o,headerGroups:a,prepareRow:s,page:u,canPreviousPage:l,canNextPage:f,pageOptions:h,pageCount:p,gotoPage:y,nextPage:C,previousPage:x,setPageSize:N,state:{pageIndex:w,pageSize:E}}=cr.useTable({columns:t,data:e,autoResetPage:!1,autoResetFilters:!1},cr.usePagination);return g("div",{children:[g(ea,{hover:!0,className:"bootstrap-table",...i(),children:[c("thead",{children:a.map(b=>c("tr",{...b.getHeaderGroupProps(),children:b.headers.map(T=>c("th",{...T.getHeaderProps(),children:T.render("Header")}))}))}),c("tbody",{...o(),children:u.length?u.map((b,T)=>c(U2,{vehicle:b.original,updateVehicle:R=>n(M=>M.map(F=>F.spawn_code===b.original.spawn_code?R:F))},b.original.spawn_code)):c("tr",{children:c("td",{colSpan:100,align:"center",children:r.noVehicles})})})]}),g("div",{className:"pagination d-flex justify-content-between",children:[g(ee,{variant:"primary",onClick:()=>x(),disabled:!l,children:[c("i",{className:"bi-arrow-left"})," ",r.previous]}),g("div",{className:"d-flex align-items-center",children:[g("span",{className:"me-3",children:[r.page," ",w+1," ",r.of," ",h.length]}),c(j.Select,{size:"sm",value:E,onChange:b=>{N(Number(b.target.value))},style:{width:110},children:[10,20,30,40,50].map(b=>g("option",{value:b,children:[r.show," ",b]},b))})]}),g(ee,{variant:"primary",onClick:()=>C(),disabled:!f,children:[r.next," ",c("i",{className:"bi-arrow-right"})]})]})]})},q2=({currentTab:e})=>{const{event:t,config:n,locale:r}=ye(),i={[r.sortByNewest]:(R,M)=>M.id-R.id,[r.sortByName]:(R,M)=>`${R.brand} ${R.model}`.localeCompare(`${M.brand} ${M.model}`),[r.sortByCheapest]:(R,M)=>R.price-M.price,[r.sortByMostExpensive]:(R,M)=>M.price-R.price},[o,a]=m.useState(""),[s,u]=m.useState(Object.keys(i)[0]),[l,f]=m.useState("all"),[h,p]=m.useState([]),[y,C]=m.useState([]),[x,N]=m.useState(!0),w={all:"All Categories",...n.Categories||{}};m.useEffect(()=>{t.vehicles&&p(t.vehicles||[])},[t.vehicles]),m.useEffect(()=>{e===r.vehicles&&E()},[e]);const E=async()=>{try{const R=await Ne("get-dealership-vehicles",{dealershipId:t.dealershipId});p(R)}catch{}N(!1)};m.useEffect(()=>{C(h.filter(({brand:R,model:M})=>{const F=o.toLocaleLowerCase().split(" ").filter(A=>A).map(A=>A.trim());return F.filter(A=>`${R} ${M}`.toLocaleLowerCase().includes(A)).length===F.length}).filter(R=>l==="all"?!0:R.category===l).sort(i[s]))},[h,o,l,s]);const b=m.useMemo(()=>[{Header:r.vehicle,accessor:"vehicle"},{Header:r.category,accessor:"category"},t.shopType=="owned"&&{Header:r.quantity,accessor:"qty"},{Header:r.purchaseCost,accessor:"pcost"},{Header:r.salePrice,accessor:"sprice"},t.shopType=="owned"&&{Header:"",accessor:"x"}],[]).filter(Boolean),T=y;return x?c(na,{}):g("div",{children:[c(j.Group,{className:"d-flex dealership-search-and-filter mb-3",children:g(Gt,{children:[c(Gt.Text,{children:c("i",{className:"bi-search"})}),c(j.Control,{type:"search",placeholder:r.search,value:o,onChange:R=>a(R.target.value)}),c(uh,{variant:"dark",title:c("i",{className:"bi-filter"}),id:"input-group-dropdown-2",align:"end",menuVariant:"dark",children:Object.keys(i).map((R,M)=>c(si.Item,{onClick:()=>u(R),active:s===R,children:R},M))}),c(j.Select,{style:{maxWidth:220},value:l,onChange:R=>f(R.target.value),children:Object.keys(w).map(R=>c("option",{value:R,children:w[R]},R))})]})}),c("div",{className:"pt-0",children:c(G2,{columns:b,data:T,setVehicles:p})})]})},K2=m.forwardRef(({vehicles:e,style:t,className:n,"aria-labelledby":r,selectedVehicle:i,onSelectVehicle:o},a)=>{const{locale:s}=ye(),[u,l]=m.useState(""),[f,h]=m.useState([]);return m.useEffect(()=>{h(e.filter(({brand:p,model:y})=>{const C=u.toLocaleLowerCase().split(" ").filter(x=>x).map(x=>x.trim());return C.filter(x=>`${p||""} ${y||""}`.toLocaleLowerCase().includes(x)).length===C.length}).slice(0,100))},[e,u]),g("div",{ref:a,style:t,className:n,"aria-labelledby":r,children:[c("div",{className:"vehicle-select-search",children:c(j.Control,{autoFocus:!0,placeholder:s.search,onChange:p=>l(p.target.value),value:u})}),c("ul",{className:"list-unstyled",children:f.map(p=>g(si.Item,{eventKey:p.spawn_code,className:"w-full overflow-hidden",onClick:()=>o(p),active:p.spawn_code===(i&&i.spawn_code),children:[p.brand," ",p.model]},p.spawn_code))})]})}),Z2=({vehicles:e,vehicle:t,onChange:n})=>{const{locale:r}=ye();return c("div",{children:g(si,{className:"vehicle-selector-dropdown",children:[c(si.Toggle,{variant:"outline-secondary",className:"d-flex align-items-center overflow-hidden text-muted",style:{width:"100%"},children:t?`${t.brand||""} ${t.model||""}`:r.selectVehicle}),c(si.Menu,{align:"start",as:K2,vehicles:e,selectedVehicle:t,onSelectVehicle:n})]})})},zx=({show:e,onHide:t,currentModel:n,currentColor:r,onSubmit:i})=>{const{event:o,locale:a,config:s}=ye(),[u,l]=m.useState([]),[f,h]=m.useState(!1),[p,y]=m.useState(r||1);m.useEffect(()=>{C()},[]);const C=async()=>{try{const N=await Ne("get-dealership-vehicles",{dealershipId:o.dealershipId});l(N),h(N.find(({spawn_code:w})=>w===n)||!1)}catch{}},x=async()=>{if(!f||!p)return!1;i(f,p),n||h(!1),t()};return g(z,{show:e,onHide:()=>t(),centered:!0,style:{zIndex:9999},children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:a.displayVehicle})}),g(z.Body,{children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:a.vehicle}),c(Z2,{vehicles:u,vehicle:f,onChange:h})]}),g(j.Group,{children:[c(j.Label,{children:a.colour}),c(j.Select,{value:p,onChange:N=>y(parseInt(N.target.value||"1")),children:(s.VehicleColourOptions||[]).map(({label:N},w)=>c("option",{value:w+1,children:N}))})]})]}),c(z.Footer,{children:c(ee,{variant:"primary",type:"submit",disabled:!f||!p,onClick:x,children:a.placeVehicle})})]})},Y2=({displayVehicle:e,setDisplayVehicles:t})=>{const{event:n,locale:r,config:i}=ye(),[o,a]=m.useState(!1),s=async(l,f)=>{try{await Ne("edit-display-vehicle",{id:e.id,dealershipId:n.dealershipId,spawnCode:l.spawn_code,color:f}),t(h=>h.map(p=>p.id===e.id?{...e,brand:l.brand,model:l.model,color:f}:p))}catch{}},u=async()=>{try{await Ne("delete-display-vehicle",{id:e.id,dealershipId:n.dealershipId}),t(l=>l.filter(({id:f})=>f!==e.id))}catch{}};return g(Ue,{border:"secondary",children:[g(Ue.Header,{className:"p-3",children:[e.brand," ",e.model]}),g(Ue.Body,{className:"p-2 d-flex justify-content-between",children:[g(ee,{size:"sm",variant:"dark",onClick:()=>a(!0),children:[c("i",{className:"bi-arrow-left-right me-1"}),r.switchVehicle]}),g(ee,{size:"sm",variant:"outline-danger",onClick:u,children:[c("i",{className:"bi-x me-1"}),r.remove]}),c(zx,{show:o,onHide:()=>a(!1),currentModel:e.vehicle,currentColor:e.color,onSubmit:s})]})]})},Q2=({currentTab:e})=>{const{event:t,onCloseModal:n,locale:r}=ye(),[i,o]=m.useState([]),[a,s]=m.useState(!1),[u,l]=m.useState(!0);m.useEffect(()=>{t.displayVehicles&&o(t.displayVehicles||[])},[t.vehidisplayVehiclescles]),m.useEffect(()=>{e===r.displayVehicles&&f()},[e]);const f=async()=>{try{const y=await Ne("get-dealership-display-vehicles",{dealershipId:t.dealershipId});o(y)}catch{}l(!1)},h=async()=>{await Ne("reset-display-vehicles",{dealershipId:t.dealershipId})},p=async(y,C)=>{await n();try{await Ne("create-display-vehicle",{dealershipId:t.dealershipId,spawnCode:y.spawn_code,color:C})}catch{}};return u?c(na,{}):g("div",{children:[c(zx,{show:a,onHide:()=>s(!1),onSubmit:p}),i.length?g("div",{children:[g("div",{className:"d-flex justify-content-end",children:[g(ee,{variant:"outline-secondary",onClick:()=>h(),className:"me-2",children:[c("i",{className:"bi-arrow-clockwise me-1"}),r.restoreDisplayVehicles]}),g(ee,{variant:"primary",onClick:()=>s(!0),children:[c("i",{className:"bi-plus me-1"}),r.add," ",r.vehicle]})]}),c(ur,{className:"pt-3",children:i.map(y=>c(Xe,{sm:4,className:"mb-3",children:c(Y2,{displayVehicle:y,setDisplayVehicles:o})}))})]}):g("div",{className:"text-center pt-5 pb-5",children:[c("p",{children:r.noDisplayVehicles}),g(ee,{variant:"primary",onClick:()=>s(!0),children:[c("i",{className:"bi-plus me-1"}),r.add," ",r.vehicle]})]})]})},X2=({show:e,onHide:t,onConfirm:n})=>{const{locale:r}=ye();return g(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:r.cancelOrder}),c(z.Body,{children:r.deleteConfirmation}),g(z.Footer,{children:[c(ee,{variant:"primary",onClick:()=>{n(),t()},children:r.yes}),c(ee,{variant:"secondary",onClick:()=>t(),children:r.no})]})]})},J2=({order:e,deleteOrder:t})=>{var w;const{config:n,locale:r,event:i}=ye();let{id:o,order_created:a,brand:s,model:u,quantity:l,time_remaining:f,cost:h}=e;const[p,y]=m.useState(!1),[C,x]=m.useState("");m.useEffect(()=>{const E=()=>{f-=1,f<0?x(r.delivered):Math.round(f/60)===0?x(r.lessThanAMin):x(`${Math.round(f/60)} ${r.mins||"min(s)"}`)};let b;return E(),b=setInterval(()=>E(),5e3),()=>clearInterval(b)},[f]);const N=async()=>{await Ne("cancel-vehicle-order",{orderId:o}),t()};return g("tr",{children:[c("td",{children:(w=de.fromMillis(a))==null?void 0:w.toLocaleString()}),g("td",{className:"admin-vehicle-row-name",children:[s," ",u]}),c("td",{children:l}),c("td",{children:g(vn,{bg:C===r.delivered?"success":"primary",children:[C===r.delivered?c("i",{className:"bi-check-circle me-1"}):c("i",{className:"bi-clock me-1"}),C]})}),c("td",{children:Le(h,n)}),g("td",{className:"text-end",children:[g(ee,{size:"sm",variant:"danger",onClick:()=>y(!0),disabled:C===r.delivered,children:[c("i",{className:"bi-x me-1"}),r.cancelOrder]}),c(X2,{show:p,onHide:()=>y(!1),onConfirm:()=>N()})]})]})},eM=({data:e,columns:t,onDeleteOrder:n})=>{const{locale:r}=ye(),{getTableProps:i,getTableBodyProps:o,headerGroups:a,prepareRow:s,page:u,canPreviousPage:l,canNextPage:f,pageOptions:h,pageCount:p,gotoPage:y,nextPage:C,previousPage:x,setPageSize:N,state:{pageIndex:w,pageSize:E}}=cr.useTable({columns:t,data:e,autoResetPage:!1,autoResetFilters:!1},cr.usePagination);return g("div",{children:[g(ea,{hover:!0,className:"bootstrap-table",...i(),children:[c("thead",{children:a.map(b=>c("tr",{...b.getHeaderGroupProps(),children:b.headers.map(T=>c("th",{...T.getHeaderProps(),children:T.render("Header")}))}))}),c("tbody",{...o(),children:u.length?u.map((b,T)=>c(J2,{order:b.original,deleteOrder:()=>n(b.original.id)},b.original.spawn_code)):c("tr",{children:c("td",{colSpan:100,align:"center",children:r.noOrders})})})]}),g("div",{className:"pagination d-flex justify-content-between",children:[g(ee,{variant:"primary",onClick:()=>x(),disabled:!l,children:[c("i",{className:"bi-arrow-left"})," ",r.previous]}),g("div",{className:"d-flex align-items-center",children:[g("span",{className:"me-3",children:[r.page," ",w+1," ",r.of," ",h.length]}),c(j.Select,{size:"sm",value:E,onChange:b=>{N(Number(b.target.value))},style:{width:110},children:[10,20,30,40,50].map(b=>g("option",{value:b,children:[r.show," ",b]},b))})]}),g(ee,{variant:"primary",onClick:()=>C(),disabled:!f,children:[r.next," ",c("i",{className:"bi-arrow-right"})]})]})]})},tM=({currentTab:e})=>{const{event:t,locale:n}=ye(),[r,i]=m.useState([]),[o,a]=m.useState(!0);m.useEffect(()=>{t.orders&&i(t.orders||[])},[t.orders]),m.useEffect(()=>{e===n.orders&&s()},[e]);const s=async()=>{try{const f=await Ne("get-dealership-orders",{dealershipId:t.dealershipId});i(f)}catch{}a(!1)},u=f=>{i(h=>h.filter(p=>p.id!==f))},l=m.useMemo(()=>[{Header:n.created,accessor:"created_at"},{Header:n.vehicle,accessor:"vehicle"},{Header:n.quantity,accessor:"qty"},{Header:n.delivery,accessor:"delivery"},{Header:n.totalCost,accessor:"total_cost"},{Header:"",accessor:"actions"}],[]);return c("div",{children:o?c(na,{}):c(eM,{data:r,columns:l,onDeleteOrder:u})})},nM=({sale:e})=>{var f;const{config:t}=ye(),{brand:n,model:r,purchase_type:i,paid:o,owed:a,created_at:s,player_name:u,seller_name:l}=e;return g("tr",{children:[c("td",{children:(f=de.fromMillis(s))==null?void 0:f.toLocaleString()}),c("td",{children:u}),c("td",{children:l||"-"}),g("td",{className:"admin-vehicle-row-name",children:[n," ",r]}),c("td",{children:i}),c("td",{children:Le(o,t)}),c("td",{children:Le(a,t)})]})},rM=({data:e,columns:t,getSales:n,pageCount:r})=>{const{locale:i}=ye(),{getTableProps:o,getTableBodyProps:a,headerGroups:s,prepareRow:u,page:l,canPreviousPage:f,canNextPage:h,pageOptions:p,pageCount:y,gotoPage:C,nextPage:x,previousPage:N,setPageSize:w,state:{pageIndex:E,pageSize:b}}=cr.useTable({columns:t,data:e,initialState:{pageIndex:0},pageCount:r,autoResetPage:!1,autoResetFilters:!1,manualPagination:!0},cr.usePagination);return m.useEffect(()=>{n(E,b)},[n,E,b]),g("div",{children:[g(ea,{hover:!0,className:"bootstrap-table",...o(),children:[c("thead",{children:s.map(T=>c("tr",{...T.getHeaderGroupProps(),children:T.headers.map(R=>c("th",{...R.getHeaderProps(),children:R.render("Header")}))}))}),c("tbody",{...a(),children:l.length?l.map((T,R)=>c(nM,{sale:T.original},T.original.spawn_code)):c("tr",{children:c("td",{colSpan:100,align:"center",children:i.noSales})})})]}),g("div",{className:"pagination d-flex justify-content-between",children:[g(ee,{variant:"primary",onClick:N,disabled:E<=0,children:[c("i",{className:"bi-arrow-left"})," ",i.previous]}),g("div",{className:"d-flex align-items-center",children:[g("span",{className:"me-3",children:[i.page," ",E+1," ",i.of," ",y]}),c(j.Select,{size:"sm",value:b,onChange:T=>{w(Number(T.target.value))},style:{width:110},children:[10,20,30,40,50].map(T=>g("option",{value:T,children:[i.show," ",T]},T))})]}),g(ee,{variant:"primary",onClick:x,disabled:!h,children:[i.next," ",c("i",{className:"bi-arrow-right"})]})]})]})},iM=({currentTab:e})=>{const{event:t,locale:n}=ye(),[r,i]=m.useState(0),[o,a]=m.useState([]),[s,u]=m.useState(!0);m.useEffect(()=>{t.sales&&a(t.sales||[]),t.salesPageCount&&i(t.salesPageCount||0)},[t.sales]),m.useEffect(()=>{e===n.sales&&l(0,10)},[e]);const l=m.useCallback(async(h,p)=>{try{const y=await Ne("get-dealership-sales",{dealershipId:t.dealershipId,pageIndex:h,pageSize:p});a(y.sales),i(y.pageCount)}catch{}u(!1)},[]),f=m.useMemo(()=>[{Header:n.created,accessor:"created_at"},{Header:n.customer,accessor:"player_name"},{Header:n.salesRep,accessor:"seller_name"},{Header:n.vehicle,accessor:"vehicle"},{Header:n.purchaseType,accessor:"purchase_type"},{Header:n.paid,accessor:"paid"},{Header:n.owed,accessor:"owed"}],[]);return c("div",{children:s?c(na,{}):c(rM,{data:o,columns:f,getSales:l,pageCount:r})})},oM=({role:e,show:t,onHide:n,onUpdateRole:r})=>{const{locale:i}=ye(),[o,a]=m.useState(e),s=[{id:"manager",label:i.managerRole},{id:"supervisor",label:i.supervisorRole},{id:"sales",label:i.salesRole}],u=l=>{l.preventDefault(),r({role:o}),n()};return g(z,{show:t,onHide:()=>n(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:"Change Role"})}),c(z.Body,{children:g(j,{onSubmit:u,children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:"Role"}),c(j.Select,{value:o,onChange:l=>a(l.target.value),children:s.map(({id:l,label:f})=>c("option",{value:l,children:f},l))})]}),c(ee,{type:"submit",children:"Update Role"})]})})]})},aM=({show:e,onHide:t,onConfirm:n})=>g(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:"Fire Employee"})}),c(z.Body,{children:"Are you sure?"}),g(z.Footer,{children:[c(ee,{variant:"primary",onClick:()=>{n(),t()},children:"Yes"}),c(ee,{variant:"secondary",onClick:()=>t(),children:"No"})]})]}),sM=({employee:e,afterFireEmployee:t,afterUpdateEmployee:n})=>{var h;const{event:r,locale:i}=ye(),[o,a]=m.useState(!1),[s,u]=m.useState(!1),l=async p=>{await Ne("update-employee-role",{identifier:e.identifier,dealershipId:r.dealershipId,newRole:p.role}),n({...e,...p})},f=async()=>{await Ne("fire-employee",{identifier:e.identifier,dealershipId:r.dealershipId}),t()};return g("tr",{children:[c("td",{children:e.name}),g("td",{children:[c("span",{children:i[`${e.role}Role`]}),!e.me&&!e.pending&&g("span",{children:[c(ee,{size:"sm",variant:"link",className:"me-2",onClick:()=>a(!0),children:c("i",{className:"bi-pencil"})}),c(oM,{role:e.role,show:o,onHide:()=>a(!1),onUpdateRole:l})]})]}),c("td",{children:e.joined&&((h=de.fromMillis(e.joined))==null?void 0:h.toLocaleString(i.NumberAndDateFormat))}),c("td",{className:"text-end",children:e.pending?c(ee,{size:"sm",disabled:!0,variant:"muted",children:i.pending}):e.me?c(ee,{size:"sm",disabled:!0,variant:"muted",children:"You"}):g("div",{children:[g(ee,{size:"sm",variant:"danger",onClick:()=>u(!0),children:[c("i",{className:"bi-person-x-fill me-1"}),"Fire"]}),c(aM,{show:s,onHide:()=>u(!1),onConfirm:()=>f()})]})})]})},lM=({show:e,onHide:t,afterHireEmployee:n,nearbyPlayers:r})=>{const{event:i,locale:o}=ye(),[a,s]=m.useState(""),[u,l]=m.useState("manager"),f=[{id:"manager",label:o.managerRole},{id:"supervisor",label:o.supervisorRole},{id:"sales",label:o.salesRole}],h=async p=>{var y;if(p.preventDefault(),!a)return!1;await Ne("request-hire-employee",{dealershipId:i.dealershipId,playerId:parseInt(a),role:u}),n({name:(y=r.find(({id:C})=>C===a))==null?void 0:y.name,role:u,me:!1,pending:!0}),t()};return g(z,{show:e,onHide:()=>t(),style:{zIndex:999999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:"Hire Employee"})}),c(z.Body,{children:g("form",{onSubmit:h,children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:"Nearby players"}),g(j.Select,{value:a,onChange:p=>s(p.target.value),children:[c("option",{value:"",disabled:!0,children:r.length?"Select player":"No players nearby"}),r.map(({id:p,name:y})=>c("option",{value:p,children:y},p))]})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:"Role"}),c(j.Select,{value:u,onChange:p=>l(p.target.value),children:f.map(({id:p,label:y})=>c("option",{value:p,children:y},p))})]}),c(ee,{type:"submit",disabled:!a,children:"Hire Employee"})]})})]})},uM=({currentTab:e})=>{const{event:t,locale:n}=ye(),[r,i]=m.useState(!0),[o,a]=m.useState(!1),[s,u]=m.useState([]),l=t.nearbyPlayers.filter(({identifier:C})=>!s.map(({identifier:x})=>x).includes(C)&&t.ownerId!==C)||[];m.useEffect(()=>{t.employees&&u(t.employees||[])},[t.employees]),m.useEffect(()=>{e===n.employees&&f()},[e]);const f=async()=>{try{const C=await Ne("get-dealership-employees",{dealershipId:t.dealershipId});u(C)}catch{}i(!1)},h=C=>{u(s.filter(x=>x.identifier!==C))},p=(C,x)=>{u(s.map(N=>N.identifier===C?x:N))};return c("div",{children:r?c(na,{}):g("div",{children:[g("div",{className:"d-flex justify-content-end mb-3",children:[g(ee,{onClick:()=>a(!0),variant:"primary",children:[c("i",{className:"bi-person-plus-fill me-1"}),c("span",{children:"Hire Employee"})]}),c(lM,{show:o,onHide:()=>a(!1),afterHireEmployee:C=>{u(x=>[...x,C])},nearbyPlayers:l})]}),g(ea,{hover:!0,className:"bootstrap-table",children:[c("thead",{children:g("tr",{children:[c("th",{children:"Employee Name"}),c("th",{children:"Role"}),c("th",{children:"Joined"}),c("th",{})]})}),c("tbody",{children:s.length?s.map(C=>c(sM,{employee:C,afterFireEmployee:()=>h(C.identifier),afterUpdateEmployee:x=>p(x.identifier,x)},C.identifier)):c("tr",{children:c("td",{colSpan:4,align:"center",children:"No employees"})})})]})]})})};var Zy=Array.isArray,Yy=Object.keys,cM=Object.prototype.hasOwnProperty,dM=typeof Element<"u";function Of(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var n=Zy(e),r=Zy(t),i,o,a;if(n&&r){if(o=e.length,o!=t.length)return!1;for(i=o;i--!==0;)if(!Of(e[i],t[i]))return!1;return!0}if(n!=r)return!1;var s=e instanceof Date,u=t instanceof Date;if(s!=u)return!1;if(s&&u)return e.getTime()==t.getTime();var l=e instanceof RegExp,f=t instanceof RegExp;if(l!=f)return!1;if(l&&f)return e.toString()==t.toString();var h=Yy(e);if(o=h.length,o!==Yy(t).length)return!1;for(i=o;i--!==0;)if(!cM.call(t,h[i]))return!1;if(dM&&e instanceof Element&&t instanceof Element)return e===t;for(i=o;i--!==0;)if(a=h[i],!(a==="_owner"&&e.$$typeof)&&!Of(e[a],t[a]))return!1;return!0}return e!==e&&t!==t}var fM=function(t,n){try{return Of(t,n)}catch(r){if(r.message&&r.message.match(/stack|recursion/i)||r.number===-2146828260)return console.warn("Warning: react-fast-compare does not handle circular references.",r.name,r.message),!1;throw r}};const Ti=fi(fM);var pM=function(t){return hM(t)&&!mM(t)};function hM(e){return!!e&&typeof e=="object"}function mM(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||gM(e)}var vM=typeof Symbol=="function"&&Symbol.for,yM=vM?Symbol.for("react.element"):60103;function gM(e){return e.$$typeof===yM}function wM(e){return Array.isArray(e)?[]:{}}function cu(e,t){return t.clone!==!1&&t.isMergeableObject(e)?ps(wM(e),e,t):e}function SM(e,t,n){return e.concat(t).map(function(r){return cu(r,n)})}function xM(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach(function(i){r[i]=cu(e[i],n)}),Object.keys(t).forEach(function(i){!n.isMergeableObject(t[i])||!e[i]?r[i]=cu(t[i],n):r[i]=ps(e[i],t[i],n)}),r}function ps(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||SM,n.isMergeableObject=n.isMergeableObject||pM;var r=Array.isArray(t),i=Array.isArray(e),o=r===i;return o?r?n.arrayMerge(e,t,n):xM(e,t,n):cu(t,n)}ps.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return ps(r,i,n)},{})};var Rf=ps,CM=typeof global=="object"&&global&&global.Object===Object&&global;const Vx=CM;var bM=typeof self=="object"&&self&&self.Object===Object&&self,EM=Vx||bM||Function("return this")();const dr=EM;var kM=dr.Symbol;const di=kM;var Hx=Object.prototype,TM=Hx.hasOwnProperty,NM=Hx.toString,ka=di?di.toStringTag:void 0;function OM(e){var t=TM.call(e,ka),n=e[ka];try{e[ka]=void 0;var r=!0}catch{}var i=NM.call(e);return r&&(t?e[ka]=n:delete e[ka]),i}var RM=Object.prototype,_M=RM.toString;function PM(e){return _M.call(e)}var MM="[object Null]",$M="[object Undefined]",Qy=di?di.toStringTag:void 0;function Xi(e){return e==null?e===void 0?$M:MM:Qy&&Qy in Object(e)?OM(e):PM(e)}function Wx(e,t){return function(n){return e(t(n))}}var IM=Wx(Object.getPrototypeOf,Object);const _h=IM;function Ji(e){return e!=null&&typeof e=="object"}var FM="[object Object]",DM=Function.prototype,AM=Object.prototype,Ux=DM.toString,LM=AM.hasOwnProperty,jM=Ux.call(Object);function Xy(e){if(!Ji(e)||Xi(e)!=FM)return!1;var t=_h(e);if(t===null)return!0;var n=LM.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Ux.call(n)==jM}function BM(){this.__data__=[],this.size=0}function Gx(e,t){return e===t||e!==e&&t!==t}function zu(e,t){for(var n=e.length;n--;)if(Gx(e[n][0],t))return n;return-1}var zM=Array.prototype,VM=zM.splice;function HM(e){var t=this.__data__,n=zu(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():VM.call(t,n,1),--this.size,!0}function WM(e){var t=this.__data__,n=zu(t,e);return n<0?void 0:t[n][1]}function UM(e){return zu(this.__data__,e)>-1}function GM(e,t){var n=this.__data__,r=zu(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Fr(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=J$}var eI="[object Arguments]",tI="[object Array]",nI="[object Boolean]",rI="[object Date]",iI="[object Error]",oI="[object Function]",aI="[object Map]",sI="[object Number]",lI="[object Object]",uI="[object RegExp]",cI="[object Set]",dI="[object String]",fI="[object WeakMap]",pI="[object ArrayBuffer]",hI="[object DataView]",mI="[object Float32Array]",vI="[object Float64Array]",yI="[object Int8Array]",gI="[object Int16Array]",wI="[object Int32Array]",SI="[object Uint8Array]",xI="[object Uint8ClampedArray]",CI="[object Uint16Array]",bI="[object Uint32Array]",ot={};ot[mI]=ot[vI]=ot[yI]=ot[gI]=ot[wI]=ot[SI]=ot[xI]=ot[CI]=ot[bI]=!0;ot[eI]=ot[tI]=ot[pI]=ot[nI]=ot[hI]=ot[rI]=ot[iI]=ot[oI]=ot[aI]=ot[sI]=ot[lI]=ot[uI]=ot[cI]=ot[dI]=ot[fI]=!1;function EI(e){return Ji(e)&&Jx(e.length)&&!!ot[Xi(e)]}function Ph(e){return function(t){return e(t)}}var eC=typeof pn=="object"&&pn&&!pn.nodeType&&pn,qa=eC&&typeof hn=="object"&&hn&&!hn.nodeType&&hn,kI=qa&&qa.exports===eC,ld=kI&&Vx.process,TI=function(){try{var e=qa&&qa.require&&qa.require("util").types;return e||ld&&ld.binding&&ld.binding("util")}catch{}}();const Go=TI;var ig=Go&&Go.isTypedArray,NI=ig?Ph(ig):EI;const OI=NI;var RI=Object.prototype,_I=RI.hasOwnProperty;function tC(e,t){var n=Ps(e),r=!n&&W$(e),i=!n&&!r&&Xx(e),o=!n&&!r&&!i&&OI(e),a=n||r||i||o,s=a?j$(e.length,String):[],u=s.length;for(var l in e)(t||_I.call(e,l))&&!(a&&(l=="length"||i&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||X$(l,u)))&&s.push(l);return s}var PI=Object.prototype;function Mh(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||PI;return e===n}var MI=Wx(Object.keys,Object);const $I=MI;var II=Object.prototype,FI=II.hasOwnProperty;function DI(e){if(!Mh(e))return $I(e);var t=[];for(var n in Object(e))FI.call(e,n)&&n!="constructor"&&t.push(n);return t}function nC(e){return e!=null&&Jx(e.length)&&!qx(e)}function $h(e){return nC(e)?tC(e):DI(e)}function AI(e,t){return e&&Hu(t,$h(t),e)}function LI(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var jI=Object.prototype,BI=jI.hasOwnProperty;function zI(e){if(!_s(e))return LI(e);var t=Mh(e),n=[];for(var r in e)r=="constructor"&&(t||!BI.call(e,r))||n.push(r);return n}function Ih(e){return nC(e)?tC(e,!0):zI(e)}function VI(e,t){return e&&Hu(t,Ih(t),e)}var rC=typeof pn=="object"&&pn&&!pn.nodeType&&pn,og=rC&&typeof hn=="object"&&hn&&!hn.nodeType&&hn,HI=og&&og.exports===rC,ag=HI?dr.Buffer:void 0,sg=ag?ag.allocUnsafe:void 0;function WI(e,t){if(t)return e.slice();var n=e.length,r=sg?sg(n):new e.constructor(n);return e.copy(r),r}function iC(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0)&&(n[i]=e[i]);return n}var Tn=function(t){return typeof t=="function"},ec=function(t){return t!==null&&typeof t=="object"},GD=function(t){return String(Math.floor(Number(t)))===t},ud=function(t){return Object.prototype.toString.call(t)==="[object String]"},qD=function(t){return m.Children.count(t)===0},cd=function(t){return ec(t)&&Tn(t.then)};function Nn(e,t,n,r){r===void 0&&(r=0);for(var i=hC(t);e&&r=0?[]:{}}}return(o===0?e:i)[a[o]]===n?e:(n===void 0?delete i[a[o]]:i[a[o]]=n,o===0&&n===void 0&&delete r[a[o]],r)}function SC(e,t,n,r){n===void 0&&(n=new WeakMap),r===void 0&&(r={});for(var i=0,o=Object.keys(e);i0?ae.map(function(he){return A(he,Nn(D,he))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")];return Promise.all(fe).then(function(he){return he.reduce(function(Pe,le,qe){return le==="DO_NOT_DELETE_YOU_WILL_BE_FIRED"||le&&(Pe=Di(Pe,ae[qe],le)),Pe},{})})},[A]),$=m.useCallback(function(D){return Promise.all([I(D),p.validationSchema?F(D):{},p.validate?M(D):{}]).then(function(ae){var fe=ae[0],he=ae[1],Pe=ae[2],le=Rf.all([fe,he,Pe],{arrayMerge:eA});return le})},[p.validate,p.validationSchema,I,M,F]),W=kn(function(D){return D===void 0&&(D=T.values),R({type:"SET_ISVALIDATING",payload:!0}),$(D).then(function(ae){return w.current&&(R({type:"SET_ISVALIDATING",payload:!1}),R({type:"SET_ERRORS",payload:ae})),ae})});m.useEffect(function(){a&&w.current===!0&&Ti(y.current,p.initialValues)&&W(y.current)},[a,W]);var Z=m.useCallback(function(D){var ae=D&&D.values?D.values:y.current,fe=D&&D.errors?D.errors:C.current?C.current:p.initialErrors||{},he=D&&D.touched?D.touched:x.current?x.current:p.initialTouched||{},Pe=D&&D.status?D.status:N.current?N.current:p.initialStatus;y.current=ae,C.current=fe,x.current=he,N.current=Pe;var le=function(){R({type:"RESET_FORM",payload:{isSubmitting:!!D&&!!D.isSubmitting,errors:fe,touched:he,status:Pe,values:ae,isValidating:!!D&&!!D.isValidating,submitCount:D&&D.submitCount&&typeof D.submitCount=="number"?D.submitCount:0}})};if(p.onReset){var qe=p.onReset(T.values,qt);cd(qe)?qe.then(le):le()}else le()},[p.initialErrors,p.initialStatus,p.initialTouched]);m.useEffect(function(){w.current===!0&&!Ti(y.current,p.initialValues)&&(l&&(y.current=p.initialValues,Z()),a&&W(y.current))},[l,p.initialValues,Z,a,W]),m.useEffect(function(){l&&w.current===!0&&!Ti(C.current,p.initialErrors)&&(C.current=p.initialErrors||Ci,R({type:"SET_ERRORS",payload:p.initialErrors||Ci}))},[l,p.initialErrors]),m.useEffect(function(){l&&w.current===!0&&!Ti(x.current,p.initialTouched)&&(x.current=p.initialTouched||dl,R({type:"SET_TOUCHED",payload:p.initialTouched||dl}))},[l,p.initialTouched]),m.useEffect(function(){l&&w.current===!0&&!Ti(N.current,p.initialStatus)&&(N.current=p.initialStatus,R({type:"SET_STATUS",payload:p.initialStatus}))},[l,p.initialStatus,p.initialTouched]);var G=kn(function(D){if(E.current[D]&&Tn(E.current[D].validate)){var ae=Nn(T.values,D),fe=E.current[D].validate(ae);return cd(fe)?(R({type:"SET_ISVALIDATING",payload:!0}),fe.then(function(he){return he}).then(function(he){R({type:"SET_FIELD_ERROR",payload:{field:D,value:he}}),R({type:"SET_ISVALIDATING",payload:!1})})):(R({type:"SET_FIELD_ERROR",payload:{field:D,value:fe}}),Promise.resolve(fe))}else if(p.validationSchema)return R({type:"SET_ISVALIDATING",payload:!0}),F(T.values,D).then(function(he){return he}).then(function(he){R({type:"SET_FIELD_ERROR",payload:{field:D,value:he[D]}}),R({type:"SET_ISVALIDATING",payload:!1})});return Promise.resolve()}),te=m.useCallback(function(D,ae){var fe=ae.validate;E.current[D]={validate:fe}},[]),Oe=m.useCallback(function(D){delete E.current[D]},[]),ge=kn(function(D,ae){R({type:"SET_TOUCHED",payload:D});var fe=ae===void 0?i:ae;return fe?W(T.values):Promise.resolve()}),xe=m.useCallback(function(D){R({type:"SET_ERRORS",payload:D})},[]),U=kn(function(D,ae){var fe=Tn(D)?D(T.values):D;R({type:"SET_VALUES",payload:fe});var he=ae===void 0?n:ae;return he?W(fe):Promise.resolve()}),re=m.useCallback(function(D,ae){R({type:"SET_FIELD_ERROR",payload:{field:D,value:ae}})},[]),ne=kn(function(D,ae,fe){R({type:"SET_FIELD_VALUE",payload:{field:D,value:ae}});var he=fe===void 0?n:fe;return he?W(Di(T.values,D,ae)):Promise.resolve()}),ke=m.useCallback(function(D,ae){var fe=ae,he=D,Pe;if(!ud(D)){D.persist&&D.persist();var le=D.target?D.target:D.currentTarget,qe=le.type,It=le.name,fr=le.id,la=le.value,ac=le.checked,Yh=le.outerHTML,Ms=le.options,sc=le.multiple;fe=ae||It||fr,he=/number|range/.test(qe)?(Pe=parseFloat(la),isNaN(Pe)?"":Pe):/checkbox/.test(qe)?nA(Nn(T.values,fe),ac,la):Ms&&sc?tA(Ms):la}fe&&ne(fe,he)},[ne,T.values]),_e=kn(function(D){if(ud(D))return function(ae){return ke(ae,D)};ke(D)}),Je=kn(function(D,ae,fe){ae===void 0&&(ae=!0),R({type:"SET_FIELD_TOUCHED",payload:{field:D,value:ae}});var he=fe===void 0?i:fe;return he?W(T.values):Promise.resolve()}),rt=m.useCallback(function(D,ae){D.persist&&D.persist();var fe=D.target,he=fe.name,Pe=fe.id,le=fe.outerHTML,qe=ae||he||Pe;Je(qe,!0)},[Je]),ht=kn(function(D){if(ud(D))return function(ae){return rt(ae,D)};rt(D)}),ct=m.useCallback(function(D){Tn(D)?R({type:"SET_FORMIK_STATE",payload:D}):R({type:"SET_FORMIK_STATE",payload:function(){return D}})},[]),Ot=m.useCallback(function(D){R({type:"SET_STATUS",payload:D})},[]),Rt=m.useCallback(function(D){R({type:"SET_ISSUBMITTING",payload:D})},[]),jt=kn(function(){return R({type:"SUBMIT_ATTEMPT"}),W().then(function(D){var ae=D instanceof Error,fe=!ae&&Object.keys(D).length===0;if(fe){var he;try{if(he=Bn(),he===void 0)return}catch(Pe){throw Pe}return Promise.resolve(he).then(function(Pe){return w.current&&R({type:"SUBMIT_SUCCESS"}),Pe}).catch(function(Pe){if(w.current)throw R({type:"SUBMIT_FAILURE"}),Pe})}else if(w.current&&(R({type:"SUBMIT_FAILURE"}),ae))throw D})}),er=kn(function(D){D&&D.preventDefault&&Tn(D.preventDefault)&&D.preventDefault(),D&&D.stopPropagation&&Tn(D.stopPropagation)&&D.stopPropagation(),jt().catch(function(ae){console.warn("Warning: An unhandled error was caught from submitForm()",ae)})}),qt={resetForm:Z,validateForm:W,validateField:G,setErrors:xe,setFieldError:re,setFieldTouched:Je,setFieldValue:ne,setStatus:Ot,setSubmitting:Rt,setTouched:ge,setValues:U,setFormikState:ct,submitForm:jt},Bn=kn(function(){return f(T.values,qt)}),tn=kn(function(D){D&&D.preventDefault&&Tn(D.preventDefault)&&D.preventDefault(),D&&D.stopPropagation&&Tn(D.stopPropagation)&&D.stopPropagation(),Z()}),Ge=m.useCallback(function(D){return{value:Nn(T.values,D),error:Nn(T.errors,D),touched:!!Nn(T.touched,D),initialValue:Nn(y.current,D),initialTouched:!!Nn(x.current,D),initialError:Nn(C.current,D)}},[T.errors,T.touched,T.values]),gi=m.useCallback(function(D){return{setValue:function(fe,he){return ne(D,fe,he)},setTouched:function(fe,he){return Je(D,fe,he)},setError:function(fe){return re(D,fe)}}},[ne,Je,re]),Dr=m.useCallback(function(D){var ae=ec(D),fe=ae?D.name:D,he=Nn(T.values,fe),Pe={name:fe,value:he,onChange:_e,onBlur:ht};if(ae){var le=D.type,qe=D.value,It=D.as,fr=D.multiple;le==="checkbox"?qe===void 0?Pe.checked=!!he:(Pe.checked=!!(Array.isArray(he)&&~he.indexOf(qe)),Pe.value=qe):le==="radio"?(Pe.checked=he===qe,Pe.value=qe):It==="select"&&fr&&(Pe.value=Pe.value||[],Pe.multiple=!0)}return Pe},[ht,_e,T.values]),tr=m.useMemo(function(){return!Ti(y.current,T.values)},[y.current,T.values]),wi=m.useMemo(function(){return typeof s<"u"?tr?T.errors&&Object.keys(T.errors).length===0:s!==!1&&Tn(s)?s(p):s:T.errors&&Object.keys(T.errors).length===0},[s,tr,T.errors,p]),Si=Ft({},T,{initialValues:y.current,initialErrors:C.current,initialTouched:x.current,initialStatus:N.current,handleBlur:ht,handleChange:_e,handleReset:tn,handleSubmit:er,resetForm:Z,setErrors:xe,setFormikState:ct,setFieldTouched:Je,setFieldValue:ne,setFieldError:re,setStatus:Ot,setSubmitting:Rt,setTouched:ge,setValues:U,submitForm:jt,validateForm:W,validateField:G,isValid:wi,dirty:tr,unregisterField:Oe,registerField:te,getFieldProps:Dr,getFieldMeta:Ge,getFieldHelpers:gi,validateOnBlur:i,validateOnChange:n,validateOnMount:a});return Si}function xC(e){var t=QD(e),n=e.component,r=e.children,i=e.render,o=e.innerRef;return m.useImperativeHandle(o,function(){return t}),m.createElement(KD,{value:t},n?m.createElement(n,t):i?i(t):r?Tn(r)?r(t):qD(r)?null:m.Children.only(r):null)}function XD(e){var t={};if(e.inner){if(e.inner.length===0)return Di(t,e.path,e.message);for(var i=e.inner,n=Array.isArray(i),r=0,i=n?i:i[Symbol.iterator]();;){var o;if(n){if(r>=i.length)break;o=i[r++]}else{if(r=i.next(),r.done)break;o=r.value}var a=o;Nn(t,a.path)||(t=Di(t,a.path,a.message))}}return t}function JD(e,t,n,r){n===void 0&&(n=!1),r===void 0&&(r={});var i=If(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function If(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);Array.isArray(e[r])===!0?t[r]=e[r].map(function(i){return Array.isArray(i)===!0||Xy(i)?If(i):i!==""?i:void 0}):Xy(e[r])?t[r]=If(e[r]):t[r]=e[r]!==""?e[r]:void 0}return t}function eA(e,t,n){var r=e.slice();return t.forEach(function(o,a){if(typeof r[a]>"u"){var s=n.clone!==!1,u=s&&n.isMergeableObject(o);r[a]=u?Rf(Array.isArray(o)?[]:{},o,n):o}else n.isMergeableObject(o)?r[a]=Rf(e[a],o,n):e.indexOf(o)===-1&&r.push(o)}),r}function tA(e){return Array.from(e).filter(function(t){return t.selected}).map(function(t){return t.value})}function nA(e,t,n){if(typeof e=="boolean")return!!t;var r=[],i=!1,o=-1;if(Array.isArray(e))r=e,o=e.indexOf(n),i=o>=0;else if(!n||n=="true"||n=="false")return!!t;return t&&n&&!i?r.concat(n):i?r.slice(0,o).concat(r.slice(o+1)):r}var rA=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?m.useLayoutEffect:m.useEffect;function kn(e){var t=m.useRef(e);return rA(function(){t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i=this._maxSize&&this.clear(),e in this._values||this._size++,this._values[e]=t};var oA=/[^.^\]^[]+|(?=\[\]|\.\.)/g,CC=/^\d+$/,aA=/^\d/,sA=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,lA=/^\s*(['"]?)(.*?)(\1)\s*$/,Hh=512,bg=new no(Hh),Eg=new no(Hh),kg=new no(Hh),Ai={Cache:no,split:Ff,normalizePath:dd,setter:function(e){var t=dd(e);return Eg.get(e)||Eg.set(e,function(r,i){for(var o=0,a=t.length,s=r;oe.match(pA)||[],rc=e=>e[0].toUpperCase()+e.slice(1),Uh=(e,t)=>nc(e).join(t).toLowerCase(),bC=e=>nc(e).reduce((t,n)=>`${t}${t?n[0].toUpperCase()+n.slice(1).toLowerCase():n.toLowerCase()}`,""),hA=e=>rc(bC(e)),mA=e=>Uh(e,"_"),vA=e=>Uh(e,"-"),yA=e=>rc(Uh(e," ")),gA=e=>nc(e).map(rc).join(" ");var fd={words:nc,upperFirst:rc,camelCase:bC,pascalCase:hA,snakeCase:mA,kebabCase:vA,sentenceCase:yA,titleCase:gA},Gh={exports:{}};Gh.exports=function(e){return EC(wA(e),e)};Gh.exports.array=EC;function EC(e,t){var n=e.length,r=new Array(n),i={},o=n,a=SA(t),s=xA(e);for(t.forEach(function(l){if(!s.has(l[0])||!s.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});o--;)i[o]||u(e[o],o,new Set);return r;function u(l,f,h){if(h.has(l)){var p;try{p=", node was:"+JSON.stringify(l)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!s.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!i[f]){i[f]=!0;var y=a.get(l)||new Set;if(y=Array.from(y),f=y.length){h.add(l);do{var C=y[--f];u(C,s.get(C),h)}while(f);h.delete(l)}r[--n]=l}}}function wA(e){for(var t=new Set,n=0,r=e.length;n"",OA=/^Symbol\((.*)\)(.*)$/;function RA(e){return e!=+e?"NaN":e===0&&1/e<0?"-0":""+e}function Tg(e,t=!1){if(e==null||e===!0||e===!1)return""+e;const n=typeof e;if(n==="number")return RA(e);if(n==="string")return t?`"${e}"`:e;if(n==="function")return"[Function "+(e.name||"anonymous")+"]";if(n==="symbol")return NA.call(e).replace(OA,"Symbol($1)");const r=EA.call(e).slice(8,-1);return r==="Date"?isNaN(e.getTime())?""+e:e.toISOString(e):r==="Error"||e instanceof Error?"["+kA.call(e)+"]":r==="RegExp"?TA.call(e):null}function Li(e,t){let n=Tg(e,t);return n!==null?n:JSON.stringify(e,function(r,i){let o=Tg(this[r],t);return o!==null?o:i},2)}function kC(e){return e==null?[]:[].concat(e)}let _A=/\$\{\s*(\w+)\s*\}/g;class dn extends Error{static formatError(t,n){const r=n.label||n.path||"this";return r!==n.path&&(n=Object.assign({},n,{path:r})),typeof t=="string"?t.replace(_A,(i,o)=>Li(n[o])):typeof t=="function"?t(n):t}static isError(t){return t&&t.name==="ValidationError"}constructor(t,n,r,i){super(),this.value=void 0,this.path=void 0,this.type=void 0,this.errors=void 0,this.params=void 0,this.inner=void 0,this.name="ValidationError",this.value=n,this.path=r,this.type=i,this.errors=[],this.inner=[],kC(t).forEach(o=>{dn.isError(o)?(this.errors.push(...o.errors),this.inner=this.inner.concat(o.inner.length?o.inner:o)):this.errors.push(o)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,dn)}}let vr={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:e,type:t,value:n,originalValue:r})=>{const i=r!=null&&r!==n?` (cast from the value \`${Li(r,!0)}\`).`:".";return t!=="mixed"?`${e} must be a \`${t}\` type, but the final value was: \`${Li(n,!0)}\``+i:`${e} must match the configured type. The validated value was: \`${Li(n,!0)}\``+i}},Wn={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},zr={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},Df={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},Af={isValue:"${path} field must be ${value}"},Lf={noUnknown:"${path} field has unspecified keys: ${unknown}"},_l={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"};Object.assign(Object.create(null),{mixed:vr,string:Wn,number:zr,date:Df,object:Lf,array:_l,boolean:Af});const ic=e=>e&&e.__isYupSchema__;class du{static fromOptions(t,n){if(!n.then&&!n.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:r,then:i,otherwise:o}=n,a=typeof r=="function"?r:(...s)=>s.every(u=>u===r);return new du(t,(s,u)=>{var l;let f=a(...s)?i:o;return(l=f==null?void 0:f(u))!=null?l:u})}constructor(t,n){this.fn=void 0,this.refs=t,this.refs=t,this.fn=n}resolve(t,n){let r=this.refs.map(o=>o.getValue(n==null?void 0:n.value,n==null?void 0:n.parent,n==null?void 0:n.context)),i=this.fn(r,t,n);if(i===void 0||i===t)return t;if(!ic(i))throw new TypeError("conditions must return a schema object");return i.resolve(n)}}const fl={context:"$",value:"."};class ro{constructor(t,n={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof t!="string")throw new TypeError("ref must be a string, got: "+t);if(this.key=t.trim(),t==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===fl.context,this.isValue=this.key[0]===fl.value,this.isSibling=!this.isContext&&!this.isValue;let r=this.isContext?fl.context:this.isValue?fl.value:"";this.path=this.key.slice(r.length),this.getter=this.path&&Ai.getter(this.path,!0),this.map=n.map}getValue(t,n,r){let i=this.isContext?r:this.isValue?t:n;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(t,n){return this.getValue(t,n==null?void 0:n.parent,n==null?void 0:n.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(t){return t&&t.__isYupRef}}ro.prototype.__isYupRef=!0;const $n=e=>e==null;function co(e){function t({value:n,path:r="",options:i,originalValue:o,schema:a},s,u){const{name:l,test:f,params:h,message:p,skipAbsent:y}=e;let{parent:C,context:x,abortEarly:N=a.spec.abortEarly}=i;function w($){return ro.isRef($)?$.getValue(n,C,x):$}function E($={}){const W=Object.assign({value:n,originalValue:o,label:a.spec.label,path:$.path||r,spec:a.spec},h,$.params);for(const G of Object.keys(W))W[G]=w(W[G]);const Z=new dn(dn.formatError($.message||p,W),n,W.path,$.type||l);return Z.params=W,Z}const b=N?s:u;let T={path:r,parent:C,type:l,from:i.from,createError:E,resolve:w,options:i,originalValue:o,schema:a};const R=$=>{dn.isError($)?b($):$?u(null):b(E())},M=$=>{dn.isError($)?b($):s($)},F=y&&$n(n);if(!i.sync){try{Promise.resolve(F?!0:f.call(T,n,T)).then(R,M)}catch($){M($)}return}let A;try{var I;if(A=F?!0:f.call(T,n,T),typeof((I=A)==null?void 0:I.then)=="function")throw new Error(`Validation test of type: "${T.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch($){M($);return}R(A)}return t.OPTIONS=e,t}function PA(e,t,n,r=n){let i,o,a;return t?(Ai.forEach(t,(s,u,l)=>{let f=u?s.slice(1,s.length-1):s;e=e.resolve({context:r,parent:i,value:n});let h=e.type==="tuple",p=l?parseInt(f,10):0;if(e.innerType||h){if(h&&!l)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${a}" must contain an index to the tuple element, e.g. "${a}[0]"`);if(n&&p>=n.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${s}, in the path: ${t}. because there is no value at that index. `);i=n,n=n&&n[p],e=h?e.spec.types[p]:e.innerType}if(!l){if(!e.fields||!e.fields[f])throw new Error(`The schema does not contain the path: ${t}. (failed at: ${a} which is a type: "${e.type}")`);i=n,n=n&&n[f],e=e.fields[f]}o=f,a=u?"["+s+"]":"."+s}),{schema:e,parent:i,parentPath:o}):{parent:i,parentPath:t,schema:e}}class fu extends Set{describe(){const t=[];for(const n of this.values())t.push(ro.isRef(n)?n.describe():n);return t}resolveAll(t){let n=[];for(const r of this.values())n.push(t(r));return n}clone(){return new fu(this.values())}merge(t,n){const r=this.clone();return t.forEach(i=>r.add(i)),n.forEach(i=>r.delete(i)),r}}function ko(e,t=new Map){if(ic(e)||!e||typeof e!="object")return e;if(t.has(e))return t.get(e);let n;if(e instanceof Date)n=new Date(e.getTime()),t.set(e,n);else if(e instanceof RegExp)n=new RegExp(e),t.set(e,n);else if(Array.isArray(e)){n=new Array(e.length),t.set(e,n);for(let r=0;r{this.typeError(vr.notType)}),this.type=t.type,this._typeCheck=t.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,optional:!0,coerce:!0},t==null?void 0:t.spec),this.withMutation(n=>{n.nonNullable()})}get _type(){return this.type}clone(t){if(this._mutate)return t&&Object.assign(this.spec,t),this;const n=Object.create(Object.getPrototypeOf(this));return n.type=this.type,n._typeCheck=this._typeCheck,n._whitelist=this._whitelist.clone(),n._blacklist=this._blacklist.clone(),n.internalTests=Object.assign({},this.internalTests),n.exclusiveTests=Object.assign({},this.exclusiveTests),n.deps=[...this.deps],n.conditions=[...this.conditions],n.tests=[...this.tests],n.transforms=[...this.transforms],n.spec=ko(Object.assign({},this.spec,t)),n}label(t){let n=this.clone();return n.spec.label=t,n}meta(...t){if(t.length===0)return this.spec.meta;let n=this.clone();return n.spec.meta=Object.assign(n.spec.meta||{},t[0]),n}withMutation(t){let n=this._mutate;this._mutate=!0;let r=t(this);return this._mutate=n,r}concat(t){if(!t||t===this)return this;if(t.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${t.type}`);let n=this,r=t.clone();const i=Object.assign({},n.spec,r.spec);return r.spec=i,r.internalTests=Object.assign({},n.internalTests,r.internalTests),r._whitelist=n._whitelist.merge(t._whitelist,t._blacklist),r._blacklist=n._blacklist.merge(t._blacklist,t._whitelist),r.tests=n.tests,r.exclusiveTests=n.exclusiveTests,r.withMutation(o=>{t.tests.forEach(a=>{o.test(a.OPTIONS)})}),r.transforms=[...n.transforms,...r.transforms],r}isType(t){return t==null?!!(this.spec.nullable&&t===null||this.spec.optional&&t===void 0):this._typeCheck(t)}resolve(t){let n=this;if(n.conditions.length){let r=n.conditions;n=n.clone(),n.conditions=[],n=r.reduce((i,o)=>o.resolve(i,t),n),n=n.resolve(t)}return n}resolveOptions(t){var n,r,i;return Object.assign({},t,{from:t.from||[],strict:(n=t.strict)!=null?n:this.spec.strict,abortEarly:(r=t.abortEarly)!=null?r:this.spec.abortEarly,recursive:(i=t.recursive)!=null?i:this.spec.recursive})}cast(t,n={}){let r=this.resolve(Object.assign({value:t},n)),i=n.assert==="ignore-optionality",o=r._cast(t,n);if(n.assert!==!1&&!r.isType(o)){if(i&&$n(o))return o;let a=Li(t),s=Li(o);throw new TypeError(`The value of ${n.path||"field"} could not be cast to a value that satisfies the schema type: "${r.type}". + +attempted value: ${a} +`+(s!==a?`result of cast: ${s}`:""))}return o}_cast(t,n){let r=t===void 0?t:this.transforms.reduce((i,o)=>o.call(this,i,t,this),t);return r===void 0&&(r=this.getDefault()),r}_validate(t,n={},r,i){let{path:o,originalValue:a=t,strict:s=this.spec.strict}=n,u=t;s||(u=this._cast(u,Object.assign({assert:!1},n)));let l=[];for(let f of Object.values(this.internalTests))f&&l.push(f);this.runTests({path:o,value:u,originalValue:a,options:n,tests:l},r,f=>{if(f.length)return i(f,u);this.runTests({path:o,value:u,originalValue:a,options:n,tests:this.tests},r,i)})}runTests(t,n,r){let i=!1,{tests:o,value:a,originalValue:s,path:u,options:l}=t,f=x=>{i||(i=!0,n(x,a))},h=x=>{i||(i=!0,r(x,a))},p=o.length,y=[];if(!p)return h([]);let C={value:a,originalValue:s,path:u,options:l,schema:this};for(let x=0;xthis.resolve(f)._validate(l,f,p,y)}validate(t,n){let r=this.resolve(Object.assign({},n,{value:t}));return new Promise((i,o)=>r._validate(t,n,(a,s)=>{dn.isError(a)&&(a.value=s),o(a)},(a,s)=>{a.length?o(new dn(a,s)):i(s)}))}validateSync(t,n){let r=this.resolve(Object.assign({},n,{value:t})),i;return r._validate(t,Object.assign({},n,{sync:!0}),(o,a)=>{throw dn.isError(o)&&(o.value=a),o},(o,a)=>{if(o.length)throw new dn(o,t);i=a}),i}isValid(t,n){return this.validate(t,n).then(()=>!0,r=>{if(dn.isError(r))return!1;throw r})}isValidSync(t,n){try{return this.validateSync(t,n),!0}catch(r){if(dn.isError(r))return!1;throw r}}_getDefault(){let t=this.spec.default;return t==null?t:typeof t=="function"?t.call(this):ko(t)}getDefault(t){return this.resolve(t||{})._getDefault()}default(t){return arguments.length===0?this._getDefault():this.clone({default:t})}strict(t=!0){return this.clone({strict:t})}nullability(t,n){const r=this.clone({nullable:t});return r.internalTests.nullable=co({message:n,name:"nullable",test(i){return i===null?this.schema.spec.nullable:!0}}),r}optionality(t,n){const r=this.clone({optional:t});return r.internalTests.optionality=co({message:n,name:"optionality",test(i){return i===void 0?this.schema.spec.optional:!0}}),r}optional(){return this.optionality(!0)}defined(t=vr.defined){return this.optionality(!1,t)}nullable(){return this.nullability(!0)}nonNullable(t=vr.notNull){return this.nullability(!1,t)}required(t=vr.required){return this.clone().withMutation(n=>n.nonNullable(t).defined(t))}notRequired(){return this.clone().withMutation(t=>t.nullable().optional())}transform(t){let n=this.clone();return n.transforms.push(t),n}test(...t){let n;if(t.length===1?typeof t[0]=="function"?n={test:t[0]}:n=t[0]:t.length===2?n={name:t[0],test:t[1]}:n={name:t[0],message:t[1],test:t[2]},n.message===void 0&&(n.message=vr.default),typeof n.test!="function")throw new TypeError("`test` is a required parameters");let r=this.clone(),i=co(n),o=n.exclusive||n.name&&r.exclusiveTests[n.name]===!0;if(n.exclusive&&!n.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return n.name&&(r.exclusiveTests[n.name]=!!n.exclusive),r.tests=r.tests.filter(a=>!(a.OPTIONS.name===n.name&&(o||a.OPTIONS.test===i.OPTIONS.test))),r.tests.push(i),r}when(t,n){!Array.isArray(t)&&typeof t!="string"&&(n=t,t=".");let r=this.clone(),i=kC(t).map(o=>new ro(o));return i.forEach(o=>{o.isSibling&&r.deps.push(o.key)}),r.conditions.push(typeof n=="function"?new du(i,n):du.fromOptions(i,n)),r}typeError(t){let n=this.clone();return n.internalTests.typeError=co({message:t,name:"typeError",test(r){return!$n(r)&&!this.schema._typeCheck(r)?this.createError({params:{type:this.schema.type}}):!0}}),n}oneOf(t,n=vr.oneOf){let r=this.clone();return t.forEach(i=>{r._whitelist.add(i),r._blacklist.delete(i)}),r.internalTests.whiteList=co({message:n,name:"oneOf",skipAbsent:!0,test(i){let o=this.schema._whitelist,a=o.resolveAll(this.resolve);return a.includes(i)?!0:this.createError({params:{values:Array.from(o).join(", "),resolved:a}})}}),r}notOneOf(t,n=vr.notOneOf){let r=this.clone();return t.forEach(i=>{r._blacklist.add(i),r._whitelist.delete(i)}),r.internalTests.blacklist=co({message:n,name:"notOneOf",test(i){let o=this.schema._blacklist,a=o.resolveAll(this.resolve);return a.includes(i)?this.createError({params:{values:Array.from(o).join(", "),resolved:a}}):!0}}),r}strip(t=!0){let n=this.clone();return n.spec.strip=t,n}describe(t){const n=(t?this.resolve(t):this).clone(),{label:r,meta:i,optional:o,nullable:a}=n.spec;return{meta:i,label:r,optional:o,nullable:a,default:n.getDefault(t),type:n.type,oneOf:n._whitelist.describe(),notOneOf:n._blacklist.describe(),tests:n.tests.map(u=>({name:u.OPTIONS.name,params:u.OPTIONS.params})).filter((u,l,f)=>f.findIndex(h=>h.name===u.name)===l)}}}wn.prototype.__isYupSchema__=!0;for(const e of["validate","validateSync"])wn.prototype[`${e}At`]=function(t,n,r={}){const{parent:i,parentPath:o,schema:a}=PA(this,t,n,r.context);return a[e](i&&i[o],Object.assign({},r,{parent:i,path:t}))};for(const e of["equals","is"])wn.prototype[e]=wn.prototype.oneOf;for(const e of["not","nope"])wn.prototype[e]=wn.prototype.notOneOf;function TC(){return new NC}class NC extends wn{constructor(){super({type:"boolean",check(t){return t instanceof Boolean&&(t=t.valueOf()),typeof t=="boolean"}}),this.withMutation(()=>{this.transform((t,n,r)=>{if(r.spec.coerce&&!r.isType(t)){if(/^(true|1)$/i.test(String(t)))return!0;if(/^(false|0)$/i.test(String(t)))return!1}return t})})}isTrue(t=Af.isValue){return this.test({message:t,name:"is-value",exclusive:!0,params:{value:"true"},test(n){return $n(n)||n===!0}})}isFalse(t=Af.isValue){return this.test({message:t,name:"is-value",exclusive:!0,params:{value:"false"},test(n){return $n(n)||n===!1}})}default(t){return super.default(t)}defined(t){return super.defined(t)}optional(){return super.optional()}required(t){return super.required(t)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(t){return super.nonNullable(t)}strip(t){return super.strip(t)}}TC.prototype=NC.prototype;let MA=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,$A=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,IA=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,FA=e=>$n(e)||e===e.trim(),DA={}.toString();function Oi(){return new OC}class OC extends wn{constructor(){super({type:"string",check(t){return t instanceof String&&(t=t.valueOf()),typeof t=="string"}}),this.withMutation(()=>{this.transform((t,n,r)=>{if(!r.spec.coerce||r.isType(t)||Array.isArray(t))return t;const i=t!=null&&t.toString?t.toString():t;return i===DA?t:i})})}required(t){return super.required(t).withMutation(n=>n.test({message:t||vr.required,name:"required",skipAbsent:!0,test:r=>!!r.length}))}notRequired(){return super.notRequired().withMutation(t=>(t.tests=t.tests.filter(n=>n.OPTIONS.name!=="required"),t))}length(t,n=Wn.length){return this.test({message:n,name:"length",exclusive:!0,params:{length:t},skipAbsent:!0,test(r){return r.length===this.resolve(t)}})}min(t,n=Wn.min){return this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(r){return r.length>=this.resolve(t)}})}max(t,n=Wn.max){return this.test({name:"max",exclusive:!0,message:n,params:{max:t},skipAbsent:!0,test(r){return r.length<=this.resolve(t)}})}matches(t,n){let r=!1,i,o;return n&&(typeof n=="object"?{excludeEmptyString:r=!1,message:i,name:o}=n:i=n),this.test({name:o||"matches",message:i||Wn.matches,params:{regex:t},skipAbsent:!0,test:a=>a===""&&r||a.search(t)!==-1})}email(t=Wn.email){return this.matches(MA,{name:"email",message:t,excludeEmptyString:!0})}url(t=Wn.url){return this.matches($A,{name:"url",message:t,excludeEmptyString:!0})}uuid(t=Wn.uuid){return this.matches(IA,{name:"uuid",message:t,excludeEmptyString:!1})}ensure(){return this.default("").transform(t=>t===null?"":t)}trim(t=Wn.trim){return this.transform(n=>n!=null?n.trim():n).test({message:t,name:"trim",test:FA})}lowercase(t=Wn.lowercase){return this.transform(n=>$n(n)?n:n.toLowerCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:n=>$n(n)||n===n.toLowerCase()})}uppercase(t=Wn.uppercase){return this.transform(n=>$n(n)?n:n.toUpperCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:n=>$n(n)||n===n.toUpperCase()})}}Oi.prototype=OC.prototype;let AA=e=>e!=+e;function qh(){return new RC}class RC extends wn{constructor(){super({type:"number",check(t){return t instanceof Number&&(t=t.valueOf()),typeof t=="number"&&!AA(t)}}),this.withMutation(()=>{this.transform((t,n,r)=>{if(!r.spec.coerce)return t;let i=t;if(typeof i=="string"){if(i=i.replace(/\s/g,""),i==="")return NaN;i=+i}return r.isType(i)?i:parseFloat(i)})})}min(t,n=zr.min){return this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(r){return r>=this.resolve(t)}})}max(t,n=zr.max){return this.test({message:n,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(r){return r<=this.resolve(t)}})}lessThan(t,n=zr.lessThan){return this.test({message:n,name:"max",exclusive:!0,params:{less:t},skipAbsent:!0,test(r){return rthis.resolve(t)}})}positive(t=zr.positive){return this.moreThan(0,t)}negative(t=zr.negative){return this.lessThan(0,t)}integer(t=zr.integer){return this.test({name:"integer",message:t,skipAbsent:!0,test:n=>Number.isInteger(n)})}truncate(){return this.transform(t=>$n(t)?t:t|0)}round(t){var n;let r=["ceil","floor","round","trunc"];if(t=((n=t)==null?void 0:n.toLowerCase())||"round",t==="trunc")return this.truncate();if(r.indexOf(t.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+r.join(", "));return this.transform(i=>$n(i)?i:Math[t](i))}}qh.prototype=RC.prototype;var LA=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function jA(e){var t=[1,4,5,6,7,10,11],n=0,r,i;if(i=LA.exec(e)){for(var o=0,a;a=t[o];++o)i[a]=+i[a]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?r=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(n=i[10]*60+i[11],i[9]==="+"&&(n=0-n)),r=Date.UTC(i[1],i[2],i[3],i[4],i[5]+n,i[6],i[7]))}else r=Date.parse?Date.parse(e):NaN;return r}let BA=new Date(""),zA=e=>Object.prototype.toString.call(e)==="[object Date]";class oc extends wn{constructor(){super({type:"date",check(t){return zA(t)&&!isNaN(t.getTime())}}),this.withMutation(()=>{this.transform((t,n,r)=>!r.spec.coerce||r.isType(t)?t:(t=jA(t),isNaN(t)?oc.INVALID_DATE:new Date(t)))})}prepareParam(t,n){let r;if(ro.isRef(t))r=t;else{let i=this.cast(t);if(!this._typeCheck(i))throw new TypeError(`\`${n}\` must be a Date or a value that can be \`cast()\` to a Date`);r=i}return r}min(t,n=Df.min){let r=this.prepareParam(t,"min");return this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(i){return i>=this.resolve(r)}})}max(t,n=Df.max){let r=this.prepareParam(t,"max");return this.test({message:n,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(i){return i<=this.resolve(r)}})}}oc.INVALID_DATE=BA;oc.prototype;function VA(e,t=[]){let n=[],r=new Set,i=new Set(t.map(([a,s])=>`${a}-${s}`));function o(a,s){let u=Ai.split(a)[0];r.add(u),i.has(`${s}-${u}`)||n.push([s,u])}for(const a of Object.keys(e)){let s=e[a];r.add(a),ro.isRef(s)&&s.isSibling?o(s.path,a):ic(s)&&"deps"in s&&s.deps.forEach(u=>o(u,a))}return bA.array(Array.from(r),n).reverse()}function Ng(e,t){let n=1/0;return e.some((r,i)=>{var o;if((o=t.path)!=null&&o.includes(r))return n=i,!0}),n}function _C(e){return(t,n)=>Ng(e,t)-Ng(e,n)}const PC=(e,t,n)=>{if(typeof e!="string")return e;let r=e;try{r=JSON.parse(e)}catch{}return n.isType(r)?r:e};function Pl(e){if("fields"in e){const t={};for(const[n,r]of Object.entries(e.fields))t[n]=Pl(r);return e.setFields(t)}if(e.type==="array"){const t=e.optional();return t.innerType&&(t.innerType=Pl(t.innerType)),t}return e.type==="tuple"?e.optional().clone({types:e.spec.types.map(Pl)}):"optional"in e?e.optional():e}const HA=(e,t)=>{const n=[...Ai.normalizePath(t)];if(n.length===1)return n[0]in e;let r=n.pop(),i=Ai.getter(Ai.join(n),!0)(e);return!!(i&&r in i)};let Og=e=>Object.prototype.toString.call(e)==="[object Object]";function WA(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(r=>n.indexOf(r)===-1)}const UA=_C([]);function Kh(e){return new MC(e)}class MC extends wn{constructor(t){super({type:"object",check(n){return Og(n)||typeof n=="function"}}),this.fields=Object.create(null),this._sortErrors=UA,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{t&&this.shape(t)})}_cast(t,n={}){var r;let i=super._cast(t,n);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let o=this.fields,a=(r=n.stripUnknown)!=null?r:this.spec.noUnknown,s=[].concat(this._nodes,Object.keys(i).filter(h=>!this._nodes.includes(h))),u={},l=Object.assign({},n,{parent:u,__validating:n.__validating||!1}),f=!1;for(const h of s){let p=o[h],y=h in i;if(p){let C,x=i[h];l.path=(n.path?`${n.path}.`:"")+h,p=p.resolve({value:x,context:n.context,parent:u});let N=p instanceof wn?p.spec:void 0,w=N==null?void 0:N.strict;if(N!=null&&N.strip){f=f||h in i;continue}C=!n.__validating||!w?p.cast(i[h],l):i[h],C!==void 0&&(u[h]=C)}else y&&!a&&(u[h]=i[h]);(y!==h in u||u[h]!==i[h])&&(f=!0)}return f?u:i}_validate(t,n={},r,i){let{from:o=[],originalValue:a=t,recursive:s=this.spec.recursive}=n;n.from=[{schema:this,value:a},...o],n.__validating=!0,n.originalValue=a,super._validate(t,n,r,(u,l)=>{if(!s||!Og(l)){i(u,l);return}a=a||l;let f=[];for(let h of this._nodes){let p=this.fields[h];!p||ro.isRef(p)||f.push(p.asNestedTest({options:n,key:h,parent:l,parentPath:n.path,originalParent:a}))}this.runTests({tests:f,value:l,originalValue:a,options:n},r,h=>{i(h.sort(this._sortErrors).concat(u),l)})})}clone(t){const n=super.clone(t);return n.fields=Object.assign({},this.fields),n._nodes=this._nodes,n._excludedEdges=this._excludedEdges,n._sortErrors=this._sortErrors,n}concat(t){let n=super.concat(t),r=n.fields;for(let[i,o]of Object.entries(this.fields)){const a=r[i];r[i]=a===void 0?o:a}return n.withMutation(i=>i.setFields(r,this._excludedEdges))}_getDefault(){if("default"in this.spec)return super._getDefault();if(!this._nodes.length)return;let t={};return this._nodes.forEach(n=>{const r=this.fields[n];t[n]=r&&"getDefault"in r?r.getDefault():void 0}),t}setFields(t,n){let r=this.clone();return r.fields=t,r._nodes=VA(t,n),r._sortErrors=_C(Object.keys(t)),n&&(r._excludedEdges=n),r}shape(t,n=[]){return this.clone().withMutation(r=>{let i=r._excludedEdges;return n.length&&(Array.isArray(n[0])||(n=[n]),i=[...r._excludedEdges,...n]),r.setFields(Object.assign(r.fields,t),i)})}partial(){const t={};for(const[n,r]of Object.entries(this.fields))t[n]="optional"in r&&r.optional instanceof Function?r.optional():r;return this.setFields(t)}deepPartial(){return Pl(this)}pick(t){const n={};for(const r of t)this.fields[r]&&(n[r]=this.fields[r]);return this.setFields(n)}omit(t){const n=Object.assign({},this.fields);for(const r of t)delete n[r];return this.setFields(n)}from(t,n,r){let i=Ai.getter(t,!0);return this.transform(o=>{if(!o)return o;let a=o;return HA(o,t)&&(a=Object.assign({},o),r||delete a[t],a[n]=i(o)),a})}json(){return this.transform(PC)}noUnknown(t=!0,n=Lf.noUnknown){typeof t!="boolean"&&(n=t,t=!0);let r=this.test({name:"noUnknown",exclusive:!0,message:n,test(i){if(i==null)return!0;const o=WA(this.schema,i);return!t||o.length===0||this.createError({params:{unknown:o.join(", ")}})}});return r.spec.noUnknown=t,r}unknown(t=!0,n=Lf.noUnknown){return this.noUnknown(!t,n)}transformKeys(t){return this.transform(n=>{if(!n)return n;const r={};for(const i of Object.keys(n))r[t(i)]=n[i];return r})}camelCase(){return this.transformKeys(fd.camelCase)}snakeCase(){return this.transformKeys(fd.snakeCase)}constantCase(){return this.transformKeys(t=>fd.snakeCase(t).toUpperCase())}describe(t){let n=super.describe(t);n.fields={};for(const[i,o]of Object.entries(this.fields)){var r;let a=t;(r=a)!=null&&r.value&&(a=Object.assign({},a,{parent:a.value,value:a.value[i]})),n.fields[i]=o.describe(a)}return n}}Kh.prototype=MC.prototype;function $C(e){return new IC(e)}class IC extends wn{constructor(t){super({type:"array",check(n){return Array.isArray(n)}}),this.innerType=void 0,this.innerType=t}_cast(t,n){const r=super._cast(t,n);if(!this._typeCheck(r)||!this.innerType)return r;let i=!1;const o=r.map((a,s)=>{const u=this.innerType.cast(a,Object.assign({},n,{path:`${n.path||""}[${s}]`}));return u!==a&&(i=!0),u});return i?o:r}_validate(t,n={},r,i){var o;let a=this.innerType,s=(o=n.recursive)!=null?o:this.spec.recursive;n.originalValue!=null&&n.originalValue,super._validate(t,n,r,(u,l)=>{var f;if(!s||!a||!this._typeCheck(l)){i(u,l);return}let h=new Array(l.length);for(let y=0;yi(y.concat(u),l))})}clone(t){const n=super.clone(t);return n.innerType=this.innerType,n}json(){return this.transform(PC)}concat(t){let n=super.concat(t);return n.innerType=this.innerType,t.innerType&&(n.innerType=n.innerType?n.innerType.concat(t.innerType):t.innerType),n}of(t){let n=this.clone();if(!ic(t))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+Li(t));return n.innerType=t,n}length(t,n=_l.length){return this.test({message:n,name:"length",exclusive:!0,params:{length:t},skipAbsent:!0,test(r){return r.length===this.resolve(t)}})}min(t,n){return n=n||_l.min,this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(r){return r.length>=this.resolve(t)}})}max(t,n){return n=n||_l.max,this.test({message:n,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(r){return r.length<=this.resolve(t)}})}ensure(){return this.default(()=>[]).transform((t,n)=>this._typeCheck(t)?t:n==null?[]:[].concat(n))}compact(t){let n=t?(r,i,o)=>!t(r,i,o):r=>!!r;return this.transform(r=>r!=null?r.filter(n):r)}describe(t){let n=super.describe(t);if(this.innerType){var r;let i=t;(r=i)!=null&&r.value&&(i=Object.assign({},i,{parent:i.value,value:i.value[0]})),n.innerType=this.innerType.describe(t)}return n}}$C.prototype=IC.prototype;const GA=()=>{const{event:e,setEvent:t,locale:n}=ye(),r=async(i,o)=>{try{await Ne("update-dealership-settings",{dealership:e.dealershipId,...i}),t({...e,...i}),o.resetForm({values:i})}catch{}};return c("div",{children:c(xC,{initialValues:{name:e.name||"",commission:e.commission||10},validationSchema:Kh().shape({name:Oi().max(100),commission:qh().min(0).max(100)}),onSubmit:r,children:({values:i,handleChange:o,handleSubmit:a,dirty:s,setFieldValue:u})=>g("form",{onSubmit:a,children:[g(ur,{children:[c(Xe,{children:g(j.Group,{className:"mb-3",children:[c(j.Label,{children:n.dealershipName}),c(j.Control,{id:"name",type:"text",value:i.name,onChange:o,placeholder:e.dealershipId})]})}),e.shopType==="owned"&&c(Xe,{children:g(j.Group,{className:"mb-3",children:[c(j.Label,{children:n.commission}),g(Gt,{children:[c(j.Control,{id:"commission",type:"number",value:i.commission,onChange:l=>u("commission",l.target.value?parseInt(l.target.value):""),min:0,max:100,step:1}),c(Gt.Text,{children:"%"})]})]})})]}),c(ee,{type:"submit",disabled:!s,children:n.save})]})})})},qA=()=>{const{event:e,onCloseModal:t,locale:n,config:r}=ye(),[i,o]=m.useState("Dashboard"),a=m.useMemo(()=>[{icon:"bi-graph-up",name:n.dashboard,Component:z2},{icon:"bi-car-front",name:n.vehicles,Component:q2},{icon:"bi-ui-checks-grid",name:n.displayVehicles,Component:Q2},e.shopType=="owned"&&{icon:"bi-card-checklist",name:n.orders,Component:tM},{icon:"bi-coin",name:n.sales,Component:iM},e.shopType=="owned"&&e.employeeRole!=="supervisor"&&{icon:"bi-people",name:n.employees,Component:uM},e.employeeRole!=="supervisor"&&{icon:"bi-gear",name:n.settings,Component:GA}],[n]).filter(Boolean),s=async()=>{try{await t(),await Ne("open-admin")}catch{}};return e.type!=="showAdmin"?null:g(z,{show:e.type==="showAdmin",size:"xl",centered:!0,backdrop:!1,scrollable:!0,children:[g(z.Body,{className:"p-0",children:[g("div",{className:"dealership-header p-3 text-muted bg-darker",children:[g("div",{children:[e.fromAdmin&&g(ee,{size:"sm",variant:"outline-secondary",className:"me-3",onClick:s,children:[c("i",{className:"bi-arrow-left me-2"}),`${n.all} ${n.dealerships}`]}),c("strong",{children:e.name||e.dealershipId})]}),g("div",{children:[c("span",{className:"me-3",children:e.fromAdmin||e.employeeRole=="server_admin"?"Server Admin":e.shopType==="owned"&&`${e.playerName} (${n[`${e.employeeRole}Role`]})`}),c(zp,{onClick:()=>t()})]})]}),c(__,{id:"justify-tab-example",className:"mb-3 p-3 pb-0 admin-navbar bg-darker",activeKey:i,onSelect:u=>o(u),justify:!0,children:a.map(({icon:u,name:l,Component:f},h)=>c(k_,{eventKey:l,title:g("div",{children:[c("i",{className:`me-2 ${u}`}),l]}),children:c("div",{className:"p-3 pt-0",children:c(f,{currentTab:i})})},h))})]}),!r.HideWatermark&&c(z.Footer,{children:c(ta,{})})]})},KA=()=>{const{event:e,onCloseModal:t,locale:n}=ye(),[r,i]=m.useState(0);m.useEffect(()=>{let a;return e.type==="testDriveHud"&&(i(e.time),a=setInterval(()=>{i(s=>s-1===0?(o(),0):Math.max(s-1,0))},1e3)),()=>{clearInterval(a)}},[e.type]);const o=async()=>{await Ne("finish-test-drive"),t()};return e.type!=="testDriveHud"?null:c(Ue,{className:"test-drive-hud bg-black",children:g(Ue.Body,{className:"d-flex align-items-center justify-content-between",children:[c("div",{className:"test-drive-notice",children:n.testDriveExit}),g("div",{className:"seconds-remaining",children:[c("h3",{className:"m-0",children:r}),c("small",{className:"m-0 text-center",children:n.seconds})]})]})})},ZA=({show:e,onHide:t,onConfirm:n})=>{const{locale:r}=ye();return g(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:r.deleteData})}),c(z.Body,{children:r.deleteConfirmation}),g(z.Footer,{children:[c(ee,{variant:"primary",onClick:()=>{n(),t()},children:r.yes}),c(ee,{variant:"secondary",onClick:()=>t(),children:r.no})]})]})},YA=({show:e,onHide:t,dealershipId:n})=>{const{event:r,locale:i}=ye(),[o,a]=m.useState(""),s=r.nearbyPlayers||[];return c(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:g("form",{onSubmit:async l=>{if(l.preventDefault(),!o)return!1;try{await Ne("set-dealership-owner",{dealershipId:n,player:o}),t()}catch{}},children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:i.setDealershipOwner})}),c(z.Body,{children:g(j.Group,{children:[c(j.Label,{children:i.nearbyPlayers}),g(j.Select,{value:o,onChange:l=>a(l.target.value),children:[c("option",{value:"",disabled:!0,children:s.length?i.selectPlayer:i.noPlayersNearby}),s.map(({id:l,name:f})=>c("option",{value:l,children:f},l))]})]})}),c(z.Footer,{children:c(ee,{type:"submit",variant:"primary",disabled:!o,children:i.setDealershipOwner})})]})})},QA=({dealer:e})=>{const{config:t,onCloseModal:n,locale:r}=ye(),{name:i,type:o,owner_name:a,label:s,active:u,balance:l}=e,[f,h]=m.useState(!1),[p,y]=m.useState(!1),C=async()=>{try{await n(),await Ne("open-dealership-management",{id:e.name,fromAdmin:!0})}catch{}},x=async()=>{try{await Ne("delete-dealership-data",{dealershipId:e.name})}catch{}};return g("tr",{style:u?{}:{color:"#555"},children:[c("td",{className:"font-monospace",children:i}),c("td",{children:o}),c("td",{children:s||i}),c("td",{children:o==="owned"?a:"-"}),c("td",{children:o==="owned"?Le(l,t):"-"}),c("td",{children:u?g("strong",{className:"text-success d-flex",children:[c("i",{className:"bi-check-circle me-1"})," ",r.active]}):g("strong",{className:"text-danger d-flex",children:[c("i",{className:"bi-x-circle me-1"})," ",r.removed]})}),c("td",{children:c("div",{className:"d-flex justify-content-end",children:u?g(Wt,{children:[o==="owned"&&g(Wt,{children:[g(ee,{size:"sm",variant:"secondary",className:"d-flex",onClick:()=>h(!0),children:[c("i",{className:"bi-person me-1"}),c("span",{className:"text-nowrap",children:r.setOwner})]}),c(YA,{show:f,onHide:()=>h(!1),dealershipId:i})]}),g(ee,{size:"sm",variant:"primary",onClick:C,className:"ms-2 d-flex",children:[c("i",{className:"bi-wrench me-1"}),c("span",{className:"text-nowrap",children:r.manage})]})]}):g(Wt,{children:[g(ee,{size:"sm",variant:"danger",onClick:()=>y(!0),children:[c("i",{className:"bi-trash me-1"}),r.deleteData]}),c(ZA,{show:p,onHide:()=>y(!1),onConfirm:x})]})})})]})},XA=({data:e,columns:t})=>{const{locale:n}=ye(),{getTableProps:r,getTableBodyProps:i,headerGroups:o,page:a,canPreviousPage:s,canNextPage:u,pageOptions:l,nextPage:f,previousPage:h,setPageSize:p,state:{pageIndex:y,pageSize:C}}=cr.useTable({columns:t,data:e,autoResetPage:!1,autoResetFilters:!1},cr.usePagination);return g("div",{children:[g(Bo,{variant:"info",children:[c("i",{className:"bi-info-circle me-2"}),'New dealerships are created in the config file. They will appear here after a script restart! Dealerships removed from the config will show as "Removed", and you can erase all their database data from here.']}),g(ea,{hover:!0,className:"bootstrap-table",...r(),children:[c("thead",{children:o.map(x=>c("tr",{...x.getHeaderGroupProps(),children:x.headers.map(N=>c("th",{...N.getHeaderProps(),children:N.render("Header")}))}))}),c("tbody",{...i(),children:a.length?a.map((x,N)=>c(QA,{dealer:x.original},x.original.name)):c("tr",{children:c("td",{colSpan:100,align:"center",children:n.noDealershipsFound})})})]}),g("div",{className:"pagination d-flex justify-content-between",children:[c("div",{children:g(ee,{variant:"primary",onClick:()=>h(),disabled:!s,children:[c("i",{className:"bi-arrow-left"})," ",n.previous]})}),g("div",{className:"d-flex align-items-center",children:[g("span",{className:"me-3",children:[n.page," ",y+1," ",n.of," ",l.length]}),c(j.Select,{size:"sm",value:C,onChange:x=>{p(Number(x.target.value))},style:{width:110},children:[10,20,30,40,50].map(x=>g("option",{value:x,children:[n.show," ",x]},x))})]}),c("div",{children:g(ee,{variant:"primary",onClick:()=>f(),disabled:!u,children:[n.next," ",c("i",{className:"bi-arrow-right"})]})})]})]})},JA=({goBack:e})=>{const{event:t,config:n,locale:r}=ye(),[i,o]=m.useState(""),[a,s]=m.useState([]),[u,l]=m.useState([]);m.useEffect(()=>{s(t.dealers||[])},[t.dealers]),m.useEffect(()=>{l(a.filter(({name:p,label:y})=>{const C=i.toLocaleLowerCase().split(" ").filter(x=>x).map(x=>x.trim());return C.filter(x=>`${p} ${y}`.toLocaleLowerCase().includes(x)).length===C.length}))},[a,i]);const f=m.useMemo(()=>[{Header:r.id,accessor:"name"},{Header:r.type,accessor:"type"},{Header:r.name,accessor:"label"},{Header:r.owner,accessor:"owner"},{Header:r.bankBalance,accessor:"balance"},{Header:r.status,accessor:"status"},{Header:"",accessor:"x"}],[]),h=u;return g(Wt,{children:[g(z.Header,{className:"gap-3",closeButton:!0,children:[g(ee,{size:"sm",variant:"dark",onClick:()=>e(),children:[c("i",{className:"bi-arrow-left"})," ",r.back]}),c(z.Title,{as:"h5",children:r.dealershipsAdmin})]}),g(z.Body,{className:"p-0",children:[c(j.Group,{className:"d-flex p-3 search-and-filter",children:g(Gt,{children:[c(Gt.Text,{children:c("i",{className:"bi-search"})}),c(j.Control,{type:"search",placeholder:r.search,value:i,onChange:p=>o(p.target.value)})]})}),c("div",{className:"p-3 pt-0",children:a.length?c(XA,{columns:f,data:h}):r.noDealershipsFound})]}),g(z.Footer,{className:"d-flex justify-content-between",children:[g("div",{className:"text-muted",children:[a.length," ",r.dealersCount]}),!n.HideWatermark&&c(ta,{})]})]})},FC=({type:e,show:t,onHide:n,vehicle:r,onSubmit:i})=>{const{config:o,event:a,locale:s}=ye(),u=m.useMemo(()=>a.vehicles,[a.vehicles]),l=Object.keys(o.Categories||{}),[f,h]=m.useState(null),p=m.useRef();m.useEffect(()=>{h(null)},[t]);const y=async x=>{p.current&&clearTimeout(p.current),h(null),p.current=setTimeout(async()=>{const N=x.target.value,{valid:w}=await Ne("verify-spawn-code",{spawnCode:N});h(w)},500)},C=(x,N)=>{if(e==="add"&&u.find(w=>w.spawn_code===x.spawn_code))return N.setFieldError("spawn_code",s.errorVehicleWithSpawnCodeExists);i({...x,created_at:(r==null?void 0:r.created_at)||de.now().toMillis()}),n(),h(null),e==="add"&&N.resetForm()};return c(z,{show:t,onHide:()=>n(),centered:!0,style:{zIndex:9999},children:c(xC,{initialValues:{brand:(r==null?void 0:r.brand)||"",model:(r==null?void 0:r.model)||"",spawn_code:(r==null?void 0:r.spawn_code)||"",category:(r==null?void 0:r.category)||l[0],price:(r==null?void 0:r.price)||0,dealerships:(r==null?void 0:r.dealerships)||[],updateDealerPrices:!1},validationSchema:Kh().shape({brand:Oi().max(100),model:Oi().max(100).required(s.required),spawn_code:Oi().max(100).required(s.required),category:Oi().oneOf(l).required(s.required),price:qh().min(0).required(s.required),dealerships:$C().of(Oi()),updateDealerPrices:TC().required(s.required)}),onSubmit:C,children:({values:x,handleChange:N,setFieldValue:w,handleSubmit:E,touched:b,errors:T})=>g("form",{onSubmit:E,children:[c(z.Header,{closeButton:!0,children:g(z.Title,{as:"h5",children:[s[e]," ",s.vehicle]})}),g(z.Body,{children:[g(j.Group,{className:"mb-3",controlId:"validationFormik03",children:[c(j.Label,{children:s.spawnCode}),c(j.Control,{type:"text",name:"spawn_code",placeholder:`${s.forExample}: adder`,value:x.spawn_code,onChange:N,onKeyUp:y,disabled:e==="edit",isInvalid:f===!1||!!b.spawn_code&&!!T.spawn_code,isValid:f===!0}),c(j.Control.Feedback,{type:"invalid",children:f===!1?s.spawnCodeInvalid:T.spawn_code})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:s.brand}),c(j.Control,{name:"brand",placeholder:`${s.forExample}: Bugatti (Optional)`,value:x.brand,onChange:N,isInvalid:!!b.brand&&!!T.brand}),c(j.Control.Feedback,{type:"invalid",children:T.brand})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:s.model}),c(j.Control,{type:"text",name:"model",placeholder:`${s.forExample}: Veyron`,value:x.model,onChange:N,isInvalid:!!b.model&&!!T.model}),c(j.Control.Feedback,{type:"invalid",children:T.model})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:s.category}),g(j.Select,{name:"category",value:x.category,onChange:N,isInvalid:!!b.category&&!!T.category,children:[c("option",{value:"",children:"Select a category"}),l.map(R=>c("option",{value:R,children:o.Categories[R]},R))]}),c(j.Control.Feedback,{type:"invalid",children:T.model})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:s.price}),g(Gt,{hasValidation:!0,children:[c(j.Control,{type:"number",name:"price",value:x.price,onChange:N,isInvalid:!!b.price&&!!T.price}),c(j.Control.Feedback,{type:"invalid",children:T.price})]}),(x.price!==(r==null?void 0:r.price)||x.updateDealerPrices)&&c(j.Check,{type:"checkbox",id:"updateDealerPrices",name:"updateDealerPrices",label:s.overwriteDealerPrices,checked:x.updateDealerPrices,onChange:N,className:"mt-2"})]}),g(Ue,{children:[c(Ue.Header,{children:s.dealerships}),c(j.Group,{as:Ue.Body,children:Object.keys(o.DealershipLocations).map((R,M)=>c(j.Check,{label:R,name:"payment-method",type:"checkbox",id:`dealership-${R}`,checked:x.dealerships.includes(R),onChange:F=>F.target.checked?w("dealerships",[...x.dealerships,R]):w("dealerships",x.dealerships.filter(A=>R!==A))},M))})]})]}),c(z.Footer,{children:c(ee,{type:"submit",variant:"primary",disabled:e==="add"&&f===!1,children:s[e]})})]})})})},eL=({show:e,onHide:t,onConfirm:n})=>{const{locale:r}=ye();return g(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:r.deleteVehicle})}),c(z.Body,{children:r.deleteConfirmation}),g(z.Footer,{children:[c(ee,{variant:"primary",onClick:()=>{n(),t()},children:r.yes}),c(ee,{variant:"secondary",onClick:()=>t(),children:r.no})]})]})},tL=({vehicle:e,updateVehicle:t,deleteVehicle:n})=>{var w;const{config:r,locale:i}=ye(),{brand:o,model:a,category:s,spawn_code:u,dealerships:l,price:f}=e,[h,p]=m.useState(!1),[y,C]=m.useState(!1),x=E=>{t(E)},N=()=>{n()};return g("tr",{children:[g("td",{className:"admin-vehicle-row-name",children:[o," ",a]}),c("td",{children:u}),c("td",{children:l.join(", ")||"-"}),c("td",{children:(w=r.Categories)==null?void 0:w[s]}),c("td",{children:Le(f,r)}),g("td",{className:"text-end",children:[g(ee,{size:"sm",variant:"link text-decoration-none",onClick:()=>p(!0),children:[c("i",{className:"bi-pencil me-1"}),i.edit]}),g(ee,{size:"sm",variant:"danger",onClick:()=>C(!0),className:"ms-2",children:[c("i",{className:"bi-trash me-1"}),i.delete]}),c(FC,{type:"edit",show:h,onHide:()=>p(!1),vehicle:e,onSubmit:x}),c(eL,{show:y,onHide:()=>C(!1),onConfirm:N})]})]})},nL=({data:e,columns:t,onUpdateVehicle:n,onDeleteVehicle:r})=>{const{locale:i}=ye(),{getTableProps:o,getTableBodyProps:a,headerGroups:s,prepareRow:u,page:l,canPreviousPage:f,canNextPage:h,pageOptions:p,pageCount:y,gotoPage:C,nextPage:x,previousPage:N,setPageSize:w,state:{pageIndex:E,pageSize:b}}=cr.useTable({columns:t,data:e,autoResetPage:!1,autoResetFilters:!1},cr.usePagination);return g("div",{children:[g(ea,{hover:!0,className:"bootstrap-table",...o(),children:[c("thead",{children:s.map(T=>c("tr",{...T.getHeaderGroupProps(),children:T.headers.map(R=>c("th",{...R.getHeaderProps(),children:R.render("Header")}))}))}),c("tbody",{...a(),children:l.length?l.map((T,R)=>c(tL,{vehicle:T.original,updateVehicle:M=>n(T.original.spawn_code,M),deleteVehicle:()=>r(T.original.spawn_code)},T.original.spawn_code)):c("tr",{children:c("td",{colSpan:100,align:"center",children:i.noVehicles})})})]}),g("div",{className:"pagination d-flex justify-content-between",children:[g(ee,{variant:"primary",onClick:()=>N(),disabled:!f,children:[c("i",{className:"bi-arrow-left"})," ",i.previous]}),g("div",{className:"d-flex align-items-center",children:[g("span",{className:"me-3",children:[i.page," ",E+1," ",i.of," ",p.length]}),c(j.Select,{size:"sm",value:b,onChange:T=>{w(Number(T.target.value))},style:{width:110},children:[10,20,30,40,50].map(T=>g("option",{value:T,children:[i.show," ",T]},T))})]}),g(ee,{variant:"primary",onClick:()=>x(),disabled:!h,children:[i.next," ",c("i",{className:"bi-arrow-right"})]})]})]})},Rg=["Append","Overwrite"],_g=[["qbshared","QBCore shared/vehicles.lua"],["qbx_shared","Qbox shared/vehicles.lua"],["esxdb","ESX vehicles table"]],rL=({show:e,onHide:t})=>{const{locale:n}=ye(),[r,i]=m.useState(_g[0][0]),[o,a]=m.useState(Rg[0]),[s,u]=m.useState(!1),[l,f]=m.useState(!1);return c(z,{show:e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:g("form",{onSubmit:async p=>{p.preventDefault(),u(!0);try{await Ne("import-vehicles-data",{location:r,behaviour:o}),t()}catch(y){f(`Error: ${y==null?void 0:y.reason}`)}u(!1)},children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:n.importVehicles})}),g(z.Body,{children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:n.importFrom}),c(j.Select,{id:"location",value:r,onChange:p=>i(p.target.value),children:_g.map((p,y)=>c("option",{value:p[0],children:p[1]},y))})]}),g(j.Group,{children:[c(j.Label,{children:n.importBehaviour}),c(Gt,{className:"gap-3",children:Rg.map(p=>c(j.Check,{id:`behaviour-${p}`,type:"radio",name:"behaviour",label:p,checked:o===p,onChange:()=>a(p)},p))})]}),o==="Overwrite"&&g(Bo,{variant:"warning",className:"mt-4",children:[c("i",{className:"bi-exclamation-triangle me-2"}),c("span",{children:"Warning: Overwriting vehicles data will cause you to lose all existing vehicles, orders, display vehicles and sales."})]}),!!l&&g(Bo,{variant:"danger",className:"mt-4",children:[c("i",{className:"bi-exclamation-circle me-2"}),c("span",{children:l})]})]}),c(z.Footer,{children:c(ee,{type:"submit",disabled:s,children:s?`${n.importing}...`:n.import})})]})})},iL=({goBack:e})=>{const{event:t,config:n,locale:r}=ye(),i={all:"All Categories",...n.Categories||{}},o={[r.sortByNewest]:(I,$)=>de.fromMillis($.created_at)`${I.brand} ${I.model}`.localeCompare(`${$.brand} ${$.model}`),[r.sortByCheapest]:(I,$)=>I.price-$.price,[r.sortByMostExpensive]:(I,$)=>$.price-I.price},[a,s]=m.useState(""),[u,l]=m.useState(Object.keys(o)[0]),[f,h]=m.useState("all"),[p,y]=m.useState([]),[C,x]=m.useState([]),[N,w]=m.useState(!1),[E,b]=m.useState(!1);m.useEffect(()=>{y(t.vehicles||[])},[t.vehicles]),m.useEffect(()=>{x(p.filter(({brand:I,model:$})=>{const W=a.toLocaleLowerCase().split(" ").filter(Z=>Z).map(Z=>Z.trim());return W.filter(Z=>`${I} ${$}`.toLocaleLowerCase().includes(Z)).length===W.length}).filter(I=>f==="all"?!0:I.category===f).sort(o[u]))},[p,a,f,u]);const T=async I=>{y($=>[I,...$]),await Ne("add-vehicle",I)},R=async(I,$)=>{y(W=>W.map(Z=>Z.spawn_code===I?{...Z,...$}:Z)),await Ne("update-vehicle",$)},M=async I=>{y($=>$.filter(W=>W.spawn_code!==I)),await Ne("delete-vehicle",{spawn_code:I})},F=m.useMemo(()=>[{Header:r.vehicle,accessor:"vehicle"},{Header:r.spawnCode,accessor:"spawn_code"},{Header:r.dealerships,accessor:"dealers"},{Header:r.category,accessor:"category"},{Header:r.price,accessor:"price"},{Header:"",accessor:"x"}],[]),A=C;return g(Wt,{children:[g(z.Header,{className:"gap-3",closeButton:!0,children:[g(ee,{size:"sm",variant:"dark",onClick:()=>e(),children:[c("i",{className:"bi-arrow-left"})," ",r.back]}),c(z.Title,{as:"h5",children:r.vehiclesAdmin})]}),g(z.Body,{className:"p-0",children:[g(j.Group,{className:"d-flex p-3 search-and-filter",children:[g(Gt,{children:[c(Gt.Text,{children:c("i",{className:"bi-search"})}),c(j.Control,{type:"search",placeholder:r.search,value:a,onChange:I=>s(I.target.value)}),c(uh,{variant:"dark",title:c("i",{className:"bi-filter"}),id:"input-group-dropdown-2",align:"end",menuVariant:"dark",children:Object.keys(o).map((I,$)=>c(si.Item,{onClick:()=>l(I),active:u===I,children:I},$))}),c(j.Select,{style:{maxWidth:220},value:f,onChange:I=>h(I.target.value),children:Object.keys(i).map(I=>c("option",{value:I,children:i[I]},I))})]}),g(ee,{className:"flex-shrink-0 ms-3",variant:"outline-warning",onClick:()=>b(!0),children:[c("i",{className:"bi-box-arrow-right me-2"}),c("span",{children:r.importVehicles})]}),c(rL,{show:E,onHide:()=>b(!1)}),g(ee,{className:"flex-shrink-0 ms-3",onClick:()=>w(!0),children:[c("i",{className:"bi-plus me-2"}),c("span",{children:r.add})]}),c(FC,{type:"add",show:N,onHide:()=>w(!1),onSubmit:T})]}),c("div",{className:"p-3 pt-0",children:p.length?c(nL,{columns:F,data:A,onUpdateVehicle:R,onDeleteVehicle:M}):r.noVehicles})]}),g(z.Footer,{className:"d-flex justify-content-between",children:[g("div",{className:"text-muted",children:[p.length," ",r.vehiclesCount]}),!n.HideWatermark&&c(ta,{})]})]})},oL=()=>{const{event:e,onCloseModal:t,locale:n,config:r}=ye(),[i,o]=m.useState(!1);return g(z,{show:e.type==="vehiclesAdmin",onHide:()=>t(),size:"xl",centered:!0,backdrop:!1,scrollable:!0,className:`vehicles-admin-modal ${i?"":"small"}`,children:[!i&&g(Wt,{children:[c(z.Header,{className:"gap-3",closeButton:!0,children:c(z.Title,{as:"h5",children:n.admin})}),c(z.Body,{children:g(ur,{children:[c(Xe,{children:c(Ue,{className:"admin-nav-btn",bg:"darker",onClick:()=>o("dealers"),children:g(Ue.Body,{className:"text-center",children:[c("i",{className:"bi-coin h2"}),c("h5",{className:"mt-2 mb-0",children:n.dealerships})]})})}),c(Xe,{children:c(Ue,{className:"admin-nav-btn",bg:"darker",onClick:()=>o("vehicles"),children:g(Ue.Body,{className:"text-center",children:[c("i",{className:"bi-car-front h2"}),c("h5",{className:"mt-2 mb-0",children:n.vehicles})]})})})]})}),!r.HideWatermark&&g(z.Footer,{className:"d-flex justify-content-between",children:[c("div",{}),c(ta,{})]})]}),i==="dealers"&&c(JA,{goBack:()=>o(!1)}),i==="vehicles"&&c(iL,{goBack:()=>o(!1)})]})},aL=({show:e,onHide:t,vehicle:n})=>{const{config:r,locale:i}=ye(),o=async()=>{try{await Ne("finance-make-payment",{plate:n.plate,type:e,sendNUI:!0})}catch{}t()};return g(z,{show:!!e,onHide:()=>t(),style:{zIndex:9999},centered:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:i.makePayment})}),g(z.Body,{children:[`${i.earlyPaymentConfirmation} `,Le(e==="payment"?n.finance_data.recurring_payment:e==="pay-in-full"?n.finance_data.total-n.finance_data.paid:0,r),"?"]}),g(z.Footer,{children:[c(ee,{variant:"primary",onClick:o,children:i.yes}),c(ee,{variant:"secondary",onClick:()=>t(),children:i.no})]})]})},sL=({vehicle:e})=>{const{config:t,locale:n}=ye(),[r,i]=m.useState(!1),[o,a]=m.useState("");return m.useEffect(()=>{const s=()=>{e.finance_data.payment_failed&&e.finance_data.seconds_to_repo?(e.finance_data.seconds_to_repo-=10,e.finance_data.seconds_to_repo/3600>1.5?a(`${Math.round(e.finance_data.seconds_to_repo/3600)} ${n.hours||"hours(s)"}`):a(`${Math.round(e.finance_data.seconds_to_repo/60)} ${n.mins||"min(s)"}`)):e.finance_data.seconds_to_next_payment&&(e.finance_data.seconds_to_next_payment-=10,e.finance_data.seconds_to_next_payment/3600>1.5?a(`${Math.round(e.finance_data.seconds_to_next_payment/3600)} ${n.hours||"hours(s)"}`):a(`${Math.round(e.finance_data.seconds_to_next_payment/60)} ${n.mins||"min(s)"}`))};let u;return s(),u=setInterval(()=>s(),1e4),()=>clearInterval(u)},[e]),g(kl.Item,{eventKey:e.plate,children:[c(kl.Header,{children:g("div",{className:"d-flex flex-fill justify-content-between",children:[g("div",{children:[e.vehicleLabel,c(vn,{bg:"dark",text:"warning",className:"ms-2",style:{fontFamily:"monospace"},children:e.plate})]}),g("div",{children:[c(vn,{bg:e.finance_data.payment_failed?"danger":"success",className:"me-2",children:e.finance_data.payment_failed?n.failed:n.active}),c(vn,{bg:"secondary",className:"me-3",children:Le(e.finance_data.total-e.finance_data.paid,t)+` ${n.remaining}`})]})]})}),g(kl.Body,{children:[e.finance_data.payment_failed&&g(Bo,{variant:"danger",children:[c("i",{className:"bi-exclamation-triangle-fill me-2"}),n.repossessionWarning]}),g("div",{className:"d-flex justify-content-between",children:[g("div",{className:"flex-fill",children:[g("div",{className:"d-flex justify-content-between mb-2",children:[g("div",{children:[c("small",{children:n.recurringPayment}),c("h4",{className:"white",children:Le(e.finance_data.recurring_payment,t)})]}),g("div",{children:[c("small",{children:n.remainingBalance}),c("h4",{className:"white",children:Le(e.finance_data.total-e.finance_data.paid,t)})]}),g("div",{children:[c("small",{children:n.remainingPayments}),g("h4",{className:"white",children:[e.finance_data.payments_complete,g("small",{children:[" / ",e.finance_data.total_payments]})]})]})]}),c("div",{className:"mb-4",children:g("small",{children:[c("i",{className:"bi-clock me-2"}),`${n.paymentTakenEvery} `,g("strong",{children:[e.finance_data.payment_interval," ",n.hours]}),`. ${e.finance_data.payment_failed?n.vehicleRepossessed:n.nextPayment} `,c("strong",{children:o})]})})]}),g("div",{className:"d-flex flex-column ms-5",children:[c(ee,{size:"sm",className:"mb-2",variant:"primary",onClick:()=>i("payment"),children:n.makePayment}),c(ee,{size:"sm",variant:"outline-primary",onClick:()=>i("pay-in-full"),children:n.payInFull}),c(aL,{show:r,onHide:()=>i(!1),vehicle:e})]})]}),c("div",{className:"finance-container",children:g("div",{className:"finance-progress-bar",children:[c("div",{className:"finance-progress-bar-inner bg-success",style:{width:(e.finance_data.payments_complete-1)/(e.finance_data.total_payments-1)*100+"%"}}),c("div",{className:"points-container",children:Array(e.finance_data.total_payments).fill(!0).map((s,u)=>c("div",{className:"point",children:c("i",{className:`${u{var i;const{event:e,onCloseModal:t,locale:n,config:r}=ye();return g(z,{show:e.type==="manageFinance",onHide:()=>t(),size:"lg",centered:!0,backdrop:!1,scrollable:!0,children:[c(z.Header,{closeButton:!0,children:c(z.Title,{as:"h5",children:n.financedVehicles})}),c(z.Body,{className:"p-0 pb-2 pt-2",children:c(kl,{flush:!0,children:(i=e.vehicles)!=null&&i.length?e.vehicles.map((o,a)=>c(sL,{vehicle:o},a)):c("div",{className:"p-3",children:n.noFinancedVehicles})})}),!r.HideWatermark&&c(z.Footer,{children:c(ta,{})})]})},uL=()=>{var n;const{event:e,locale:t}=ye();return e.type!=="displayVehicleHud"?null:c(Ue,{bg:"black",className:`display-vehicle-hud ${e.vehiclePlaced?"vehicle-placed":""}`,children:g(Ue.Body,{children:[c("div",{className:`place-vehicle-prompt ${e.vehiclePlaced?"opacity-0":"opacity-1"} `,children:c("p",{className:"m-0",dangerouslySetInnerHTML:{__html:(n=t.placeVehiclePrompt)==null?void 0:n.replace("%{value}","ENTER")}})}),c("div",{className:`d-flex align-items-center justify-content-between vehicle-controls ${e.vehiclePlaced?"opacity-1":"opacity-0"}`,children:g("div",{className:"d-flex w-100 justify-content-between",children:[g("div",{className:"d-flex gap-5",children:[g("div",{className:"d-flex flex-column gap-1",children:[c("div",{className:"text-muted",children:"Movement"}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"W"})," Forward"]}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"S"})," Back"]})]}),g("div",{className:"d-flex flex-column gap-1",children:[c("div",{children:" "}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"A"})," Left"]}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"D"})," Right"]})]}),g("div",{className:"d-flex flex-column gap-1",children:[c("div",{className:"text-muted",children:"Rotate"}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"Q"})," Rotate left"]}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"E"})," Rotate right"]})]})]}),g("div",{className:"d-flex flex-column gap-1",children:[c("div",{className:"text-muted",children:" "}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"ENTER"})," Save"]}),g("div",{className:"d-flex align-items-center",children:[c("kbd",{children:"X"})," Cancel"]})]})]})})]})})};var DC={exports:{}};/*! + * Signature Pad v2.3.2 + * https://github.com/szimek/signature_pad + * + * Copyright 2017 Szymon Nowak + * Released under the MIT license + * + * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from: + * http://corner.squareup.com/2012/07/smoother-signatures.html + * + * Implementation of interpolation using cubic Bézier curves is taken from: + * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript + * + * Algorithm for approximated length of a Bézier curve is taken from: + * http://www.lemoda.net/maths/bezier-length/index.html + * + */function qi(e,t,n){this.x=e,this.y=t,this.time=n||new Date().getTime()}qi.prototype.velocityFrom=function(e){return this.time!==e.time?this.distanceTo(e)/(this.time-e.time):1};qi.prototype.distanceTo=function(e){return Math.sqrt(Math.pow(this.x-e.x,2)+Math.pow(this.y-e.y,2))};qi.prototype.equals=function(e){return this.x===e.x&&this.y===e.y&&this.time===e.time};function Zh(e,t,n,r){this.startPoint=e,this.control1=t,this.control2=n,this.endPoint=r}Zh.prototype.length=function(){for(var e=10,t=0,n=void 0,r=void 0,i=0;i<=e;i+=1){var o=i/e,a=this._point(o,this.startPoint.x,this.control1.x,this.control2.x,this.endPoint.x),s=this._point(o,this.startPoint.y,this.control1.y,this.control2.y,this.endPoint.y);if(i>0){var u=a-n,l=s-r;t+=Math.sqrt(u*u+l*l)}n=a,r=s}return t};Zh.prototype._point=function(e,t,n,r,i){return t*(1-e)*(1-e)*(1-e)+3*n*(1-e)*(1-e)*e+3*r*(1-e)*e*e+i*e*e*e};function cL(e,t,n){var r,i,o,a=null,s=0;n||(n={});var u=function(){s=n.leading===!1?0:Date.now(),a=null,o=e.apply(r,i),a||(r=i=null)};return function(){var l=Date.now();!s&&n.leading===!1&&(s=l);var f=t-(l-s);return r=this,i=arguments,f<=0||f>t?(a&&(clearTimeout(a),a=null),s=l,o=e.apply(r,i),a||(r=i=null)):!a&&n.trailing!==!1&&(a=setTimeout(u,f)),o}}function et(e,t){var n=this,r=t||{};this.velocityFilterWeight=r.velocityFilterWeight||.7,this.minWidth=r.minWidth||.5,this.maxWidth=r.maxWidth||2.5,this.throttle="throttle"in r?r.throttle:16,this.minDistance="minDistance"in r?r.minDistance:5,this.throttle?this._strokeMoveUpdate=cL(et.prototype._strokeUpdate,this.throttle):this._strokeMoveUpdate=et.prototype._strokeUpdate,this.dotSize=r.dotSize||function(){return(this.minWidth+this.maxWidth)/2},this.penColor=r.penColor||"black",this.backgroundColor=r.backgroundColor||"rgba(0,0,0,0)",this.onBegin=r.onBegin,this.onEnd=r.onEnd,this._canvas=e,this._ctx=e.getContext("2d"),this.clear(),this._handleMouseDown=function(i){i.which===1&&(n._mouseButtonDown=!0,n._strokeBegin(i))},this._handleMouseMove=function(i){n._mouseButtonDown&&n._strokeMoveUpdate(i)},this._handleMouseUp=function(i){i.which===1&&n._mouseButtonDown&&(n._mouseButtonDown=!1,n._strokeEnd(i))},this._handleTouchStart=function(i){if(i.targetTouches.length===1){var o=i.changedTouches[0];n._strokeBegin(o)}},this._handleTouchMove=function(i){i.preventDefault();var o=i.targetTouches[0];n._strokeMoveUpdate(o)},this._handleTouchEnd=function(i){var o=i.target===n._canvas;o&&(i.preventDefault(),n._strokeEnd(i))},this.on()}et.prototype.clear=function(){var e=this._ctx,t=this._canvas;e.fillStyle=this.backgroundColor,e.clearRect(0,0,t.width,t.height),e.fillRect(0,0,t.width,t.height),this._data=[],this._reset(),this._isEmpty=!0};et.prototype.fromDataURL=function(e){var t=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new Image,i=n.ratio||window.devicePixelRatio||1,o=n.width||this._canvas.width/i,a=n.height||this._canvas.height/i;this._reset(),r.src=e,r.onload=function(){t._ctx.drawImage(r,0,0,o,a)},this._isEmpty=!1};et.prototype.toDataURL=function(e){var t;switch(e){case"image/svg+xml":return this._toSVG();default:for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i2,n=this.points[0];if(!t&&n&&this._drawDot(n),n){var r=this._data[this._data.length-1],i=r[r.length-1];n.equals(i)||r.push({x:n.x,y:n.y,time:n.time,color:this.penColor})}typeof this.onEnd=="function"&&this.onEnd(e)};et.prototype._handleMouseEvents=function(){this._mouseButtonDown=!1,this._canvas.addEventListener("mousedown",this._handleMouseDown),this._canvas.addEventListener("mousemove",this._handleMouseMove),document.addEventListener("mouseup",this._handleMouseUp)};et.prototype._handleTouchEvents=function(){this._canvas.style.msTouchAction="none",this._canvas.style.touchAction="none",this._canvas.addEventListener("touchstart",this._handleTouchStart),this._canvas.addEventListener("touchmove",this._handleTouchMove),this._canvas.addEventListener("touchend",this._handleTouchEnd)};et.prototype._reset=function(){this.points=[],this._lastVelocity=0,this._lastWidth=(this.minWidth+this.maxWidth)/2,this._ctx.fillStyle=this.penColor};et.prototype._createPoint=function(e,t,n){var r=this._canvas.getBoundingClientRect();return new qi(e-r.left,t-r.top,n||new Date().getTime())};et.prototype._addPoint=function(e){var t=this.points,n=void 0;if(t.push(e),t.length>2){t.length===3&&t.unshift(t[0]),n=this._calculateCurveControlPoints(t[0],t[1],t[2]);var r=n.c2;n=this._calculateCurveControlPoints(t[1],t[2],t[3]);var i=n.c1,o=new Zh(t[1],r,i,t[2]),a=this._calculateCurveWidths(o);return t.shift(),{curve:o,widths:a}}return{}};et.prototype._calculateCurveControlPoints=function(e,t,n){var r=e.x-t.x,i=e.y-t.y,o=t.x-n.x,a=t.y-n.y,s={x:(e.x+t.x)/2,y:(e.y+t.y)/2},u={x:(t.x+n.x)/2,y:(t.y+n.y)/2},l=Math.sqrt(r*r+i*i),f=Math.sqrt(o*o+a*a),h=s.x-u.x,p=s.y-u.y,y=f/(l+f),C={x:u.x+h*y,y:u.y+p*y},x=t.x-C.x,N=t.y-C.y;return{c1:new qi(s.x+x,s.y+N),c2:new qi(u.x+x,u.y+N)}};et.prototype._calculateCurveWidths=function(e){var t=e.startPoint,n=e.endPoint,r={start:null,end:null},i=this.velocityFilterWeight*n.velocityFrom(t)+(1-this.velocityFilterWeight)*this._lastVelocity,o=this._strokeWidth(i);return r.start=this._lastWidth,r.end=o,this._lastVelocity=i,this._lastWidth=o,r};et.prototype._strokeWidth=function(e){return Math.max(this.maxWidth/(e+1),this.minWidth)};et.prototype._drawPoint=function(e,t,n){var r=this._ctx;r.moveTo(e,t),r.arc(e,t,n,0,2*Math.PI,!1),this._isEmpty=!1};et.prototype._drawCurve=function(e,t,n){var r=this._ctx,i=n-t,o=Math.floor(e.length());r.beginPath();for(var a=0;a1)for(var o=0;o",h=u.innerHTML;if(h===void 0){var p=document.createElement("dummy"),y=u.childNodes;p.innerHTML="";for(var C=0;C-1;x+=y)for(var N=0;N-1;x+=y)for(var N=0;N=0||Object.prototype.hasOwnProperty.call(I,Z)&&(W[Z]=I[Z]);return W}function h(I,$){if(!(I instanceof $))throw new TypeError("Cannot call a class as a function")}function p(I,$){if(!I)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!$||typeof $!="object"&&typeof $!="function"?I:$}function y(I,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof $);I.prototype=Object.create($&&$.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),$&&(Object.setPrototypeOf?Object.setPrototypeOf(I,$):I.__proto__=$)}Object.defineProperty(s,"__esModule",{value:!0});var C=Object.assign||function(I){for(var $=1;${var E,b;const{event:e,setEvent:t,onCloseModal:n,locale:r,config:i}=ye(),[o,a]=m.useState(hd),[s,u]=m.useState(hd[0]),[l,f]=m.useState(!1),[h,p]=m.useState(!1);m.useEffect(()=>{p(!1)},[e.type]),m.useEffect(()=>{var R,M,F;const T=(F=(M=(R=e.config)==null?void 0:R.DealershipLocations)==null?void 0:M[e.dealershipId])==null?void 0:F.paymentOptions;T?(a(T),u(T[0])):u(hd[0])},[e.config,e.dealershipId]);const y=()=>{var R;let T=e.vehiclePrice;return e.financed&&(T=e.vehiclePrice*(1+i.FinanceInterest)*e.downPayment),(((R=e.playerBalances)==null?void 0:R[s])||0)>=T},C=()=>{const T=e.vehiclePrice*(1+i.FinanceInterest);return Math.round((T-T*e.downPayment)/e.noOfPayments)},x=async()=>{f(!0);try{await Ne("purchase-vehicle",{purchaseType:"personal",paymentMethod:s,dealership:e.dealershipId,vehicle:e.vehicleSpawnCode,color:e.color,finance:!!e.financed,directSaleUuid:e.uuid})}catch{n(),f(!1)}await Ne("accept-direct-sale-request",e.uuid),f(!1),n()},N=async()=>{f(!0),await Ne("deny-direct-sale-request",e.uuid),f(!1),n()},w=async()=>{try{const T=await Ne("get-player-balances",e.dealershipId);if(!T)return;t(R=>({...R,playerBalances:T}))}catch{console.error("Could not refresh balances.")}};return g(z,{show:e.type==="show-direct-sale-request",centered:!0,backdrop:!1,scrollable:!0,children:[c(z.Header,{className:"gap-3",children:g(z.Title,{as:"h5",children:[c("i",{className:"bi-car-front me-2"}),r.purchaseRequest]})}),g(z.Body,{children:[g(ur,{children:[g(Xe,{sm:12,children:[c(j.Label,{className:"mb-1",children:r.dealer}),g("p",{className:"text-white",children:[e.dealerName," (",e.dealershipLabel,")"]})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.vehicle}),c("p",{className:"text-white",children:e.vehicleLabel})]}),e.color&&i.VehicleColourOptions&&g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.colour}),c("p",{className:"text-white",children:(b=(E=i.VehicleColourOptions)==null?void 0:E[e.color-1])==null?void 0:b.label})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.payToday}),c("p",{className:"text-white",children:Le(e.financed?e.vehiclePrice*(1+i.FinanceInterest)*e.downPayment:e.vehiclePrice,i)})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.financed}),g("p",{className:"text-white",children:[e.financed?r.yes:r.no,e.financed?` (${i.FinanceInterest*100}% ${r.interest})`:""]})]}),e.financed&&g(Wt,{children:[g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.payments}),g("p",{className:"text-white",children:[e.noOfPayments," ",r.paymentsOf," ",Le(C(),i)]})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.paymentTakenEvery}),g("p",{className:"text-white",children:[i.FinancePaymentInterval," ",r.hours]})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:r.totalPayable}),c("p",{className:"text-white mb-2",children:Le(e.vehiclePrice*(1+i.FinanceInterest),i)})]})]})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:r.paymentSource}),c("div",{children:o.map((T,R)=>{var F;if(T==="cash"&&e.financed)return null;let M=0;return e.playerBalances&&(M=((F=e.playerBalances)==null?void 0:F[T])||0),c(j.Check,{label:g("div",{className:"d-flex align-items-center",children:[c("span",{className:"me-2",children:r[T]||T}),c(vn,{bg:"secondary",text:"dark",children:Le(M,i)}),c(ee,{variant:"dark",onClick:w,size:"sm",className:"ms-2 p-0 pe-1 ps-1",children:c("i",{className:"bi-arrow-clockwise"})})]}),name:"payment-method",type:"radio",id:`payment-method-${T}`,checked:s===T,onChange:A=>u(T)},R)})})]}),c(j.Label,{className:"",children:r.signHere}),c("div",{style:{border:"2px dashed #777",borderRadius:7,width:"min-content"},children:c(mL,{penColor:"white",onEnd:()=>p(!0),canvasProps:{width:350,height:60}})})]}),g(z.Footer,{className:"d-flex justify-content-between",children:[c(ee,{variant:"primary",onClick:x,disabled:!h||!y()||l,children:h?y()?"Accept & Purchase":r.notEnoughMoney:r.signFirstError}),c(ee,{variant:"danger",onClick:N,disabled:l,children:r.denyRequest})]})]})},yL=({onSelectVehicle:e})=>{var C;const{event:t,locale:n,config:r}=ye(),i=m.useRef(null),[o,a]=m.useState(""),[s,u]=m.useState(!1),[l,f]=m.useState([]),[h,p]=m.useState([]);return m.useEffect(()=>{var x,N;o.length>0?f(t.vehicles):f(s?(x=t.vehicles)==null?void 0:x.filter(w=>s&&w.category===s):[]),(N=i.current)==null||N.scrollTo(0,0)},[o.length>0,s]),m.useEffect(()=>{p(l.filter(({brand:x,model:N,spawn_code:w})=>{const E=o.toLocaleLowerCase().split(" ").filter(b=>b).map(b=>b.trim());return E.filter(b=>`${x} ${N} ${w}`.toLocaleLowerCase().includes(b)).length===E.length}))},[l,o]),g("div",{ref:i,children:[c("div",{className:"mb-3",children:g(Gt,{children:[s&&!o&&g(ee,{onClick:()=>{u(!1)},size:"sm",variant:"outline-secondary",children:[c("i",{className:"bi-arrow-left"})," ",n.allCategories]}),c(j.Control,{type:"search",placeholder:n.search,value:o,onChange:x=>a(x.target.value)})]})}),!s&&!o?c("div",{children:(C=t.categories)==null?void 0:C.map(x=>g(Ue,{className:"showroom-category-btn mb-3",bg:"darker",onClick:()=>u(x),children:[c(Ue.Body,{className:"h5 mb-0 text-white",children:r.Categories[x]}),c(Ue.Footer,{children:g("small",{className:"text-muted",children:[t.vehicles.filter(N=>N.category===x).length," ",n.vehiclesCount]})})]}))}):c("div",{children:h.length?h.map((x,N)=>c(Ue,{className:"mb-3",bg:"darker",children:c(Ue.Body,{className:"p-0",children:g("button",{className:"showroom-vehicle",onClick:()=>e(x),disabled:x.stock==0,children:[g("div",{className:"showroom-vehicle-name-stock",children:[g("div",{children:[c("small",{className:"text-muted",children:x.brand}),c("p",{children:x.model})]}),c(vn,{bg:x.stock>0?"success":"danger",text:"white",pill:!0,children:x.stock>0?n.inStock:n.outOfStock})]}),c("div",{className:"d-flex align-items-center justify-content-between",children:c("h4",{children:Le(x.price,r)})})]})})})):n.noVehicles})]})},gL=({player:e,setPlayer:t})=>{const{locale:n,event:r}=ye(),[i,o]=m.useState(e||""),a=r.nearbyPlayers||[];return g("div",{children:[g(j.Group,{children:[c(j.Label,{children:n.nearbyPlayers}),g(j.Select,{value:i,onChange:s=>o(s.target.value),children:[c("option",{value:"",disabled:!0,children:a.length?n.selectPlayer:n.noPlayersNearby}),a.map(({id:s,name:u})=>c("option",{value:s,children:u},s))]})]}),c("div",{className:"mt-3",children:c(ee,{onClick:()=>t(i),disabled:!i,children:n.next})})]})},wL=({vehicle:e,player:t})=>{const{locale:n,onCloseModal:r,event:i,config:o}=ye(),[a,s]=m.useState(1),[u,l]=m.useState(!1),[f,h]=m.useState(o.FinancePayments||12),[p,y]=m.useState(o.FinanceDownPayment||.1),C=()=>{const N=e.price*(1+o.FinanceInterest);return(N-N*(p||0))/(f||1)};return g("form",{onSubmit:async N=>{N.preventDefault(),await Ne("send-direct-sale-request",{playerId:parseInt(t),model:e.spawn_code,colour:a,finance:u,financePayments:f,financeDownPayment:p}),r()},children:[g(j.Group,{className:"mb-3",children:[c(j.Label,{children:n.colour}),c(j.Select,{value:a,onChange:N=>s(parseInt(N.target.value||"1")),children:(o.VehicleColourOptions||[]).map(({label:N},w)=>c("option",{value:w+1,children:N}))})]}),g(j.Group,{className:"mb-3",children:[c(j.Label,{children:n.financing}),c(j.Check,{label:n.payInFull,name:"payment-type",type:"radio",id:"payment-infull",checked:!u,onChange:N=>l(!N.target.checked)}),i.enableFinance&&c(j.Check,{label:c("div",{className:"d-flex align-items-center",children:c("span",{className:"me-2",children:n.financed})}),name:"payment-type",type:"radio",id:"payment-finance",checked:u,onChange:N=>l(N.target.checked)})]}),u&&g(ur,{className:"mb-3",children:[c(Xe,{children:g(j.Group,{children:[c(j.Label,{children:n.financePayments}),c(j.Control,{type:"number",id:"FinancePayments",value:f,min:1,max:100,onChange:N=>h(N.target.value?parseInt(N.target.value):""),required:!0})]})}),c(Xe,{children:g(j.Group,{children:[c(j.Label,{children:n.initialPayment}),g(Gt,{children:[c(j.Control,{type:"number",id:"FinanceDownPayment",value:p?Math.round(p*100):"",onChange:N=>y(N.target.value?Math.min(1,parseInt(N.target.value)/100):""),min:0,max:99,required:!0}),c(Gt.Text,{children:"%"})]})]})})]}),c(Ue,{className:"mb-3",border:"primary",children:c(Ue.Body,{children:g(ur,{children:[g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:n.payToday}),c("p",{className:"text-white",children:Le(u?e.price*(1+o.FinanceInterest)*(p||0):e.price,o)})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:n.financed}),g("p",{className:"text-white",children:[u?n.yes:n.no,u?` (${o.FinanceInterest*100}% ${n.interest})`:""]})]}),u&&g(Wt,{children:[g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:n.payments}),g("p",{className:"text-white",children:[f||1,c("small",{children:" x "}),Le(C(),o)]})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:n.paymentTakenEvery}),g("p",{className:"text-white",children:[o.FinancePaymentInterval," ",n.hours]})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:n.totalPayable}),c("p",{className:"text-white mb-2",children:Le(e.price*(1+o.FinanceInterest),o)})]})]}),g(Xe,{sm:6,children:[c(j.Label,{className:"mb-1",children:n.commission}),g("p",{className:"text-white mb-2",children:[Le(e.price*(u?1+o.FinanceInterest:1)*i.commission||.1,o)," ","(",i.commission*100,"%)"]})]})]})})}),c(ee,{type:"submit",variant:"primary",children:n.sendRequest})]})},SL=()=>{const{event:e,onCloseModal:t,locale:n}=ye(),[r,i]=m.useState(),[o,a]=m.useState("");return m.useEffect(()=>{i(void 0),a("")},[e.type]),g(z,{show:e.type==="showDSSellVehicle",onHide:()=>t(),centered:!0,backdrop:!1,scrollable:!0,children:[c(z.Header,{className:"gap-3",closeButton:!0,children:g(z.Title,{as:"h5",children:[c("i",{className:"bi-car-front me-2"}),n.sellVehicle]})}),c(z.Body,{style:{maxHeight:"80vh"},children:r?o?g("div",{children:[g(hr,{children:[c(hr.Item,{onClick:()=>i(void 0),children:n.selectVehicle}),c(hr.Item,{onClick:()=>a(""),children:n.selectPlayer}),c(hr.Item,{active:!0,children:n.vehicleTerms})]}),c(wL,{vehicle:r,player:o})]}):g("div",{children:[g(hr,{children:[c(hr.Item,{onClick:()=>i(void 0),children:n.selectVehicle}),c(hr.Item,{active:!0,children:n.selectPlayer})]}),c(gL,{player:o,setPlayer:a})]}):g("div",{children:[c(hr,{children:c(hr.Item,{active:!0,children:n.selectVehicle})}),c(yL,{onSelectVehicle:i})]})})]})},xL=()=>{var s,u,l;const{event:e,onCloseModal:t,locale:n}=ye(),[r,i]=m.useState(!1),o=async()=>{i(!0),await Ne("accept-hire-request",e.data),i(!1),t()},a=async()=>{i(!0),await Ne("deny-hire-request",{requesterId:e.data.requesterId}),i(!1),t()};return g(z,{show:e.type==="showConfirmEmployment",centered:!0,backdrop:!1,children:[c(z.Header,{className:"gap-3",children:c(z.Title,{as:"h5",children:n.employmentRequest})}),g(z.Body,{children:[c("p",{children:(u=n.jobOfferDescription)==null?void 0:u.replace("%{value}",(s=e.data)==null?void 0:s.dealershipId)}),g("p",{className:"mb-0",children:[n.role,": ",n[`${(l=e.data)==null?void 0:l.role}Role`]]})]}),g(z.Footer,{className:"d-flex justify-content-between",children:[c(ee,{variant:"primary",onClick:o,disabled:r,children:n.accept}),c(ee,{variant:"dark",onClick:a,disabled:r,children:n.denyRequest})]})]})},CL=()=>{const{event:e,onCloseModal:t,config:n,locale:r}=ye(),[i,o]=m.useState(!1),a=async()=>{o(!0),await Ne("sell-vehicle-price-accepted",e),t(),o(!1)},s=async()=>{t()};return g(z,{show:e.type==="sell-vehicle-to-dealer",centered:!0,backdrop:!1,children:[c(z.Header,{className:"gap-3",children:c(z.Title,{as:"h5",children:r.sellVehicle})}),g(z.Body,{children:[c("p",{children:r.dealershipWantsYourVehicle}),g("p",{className:"mb-0",children:[r.purchasePrice,c("strong",{children:Le(e.value,n)})]})]}),g(z.Footer,{className:"d-flex justify-content-between",children:[c(ee,{variant:"success",onClick:a,disabled:i,children:r.accept}),c(ee,{variant:"dark",onClick:s,children:r.denyRequest})]})]})};function bL(){return c("div",{className:"",children:g(M_,{children:[!1,c(z_,{}),c(qA,{}),c(KA,{}),c(oL,{}),c(lL,{}),c(uL,{}),c(vL,{}),c(SL,{}),c(xL,{}),c(CL,{})]})})}md.createRoot(document.getElementById("root")).render(c(bL,{}))});export default EL(); diff --git a/resources/[carscripts]/jg-dealerships/web/dist/assets/index-a42dd07c.css b/resources/[carscripts]/jg-dealerships/web/dist/assets/index-a42dd07c.css new file mode 100644 index 000000000..62228e9ba --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/web/dist/assets/index-a42dd07c.css @@ -0,0 +1,5 @@ +@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap";@import"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css";/*! +* Bootstrap v5.3.0-alpha1 (https://getbootstrap.com/) +* Copyright 2011-2022 The Bootstrap Authors +* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) +*/:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text: #0a58ca;--bs-secondary-text: #6c757d;--bs-success-text: #146c43;--bs-info-text: #087990;--bs-warning-text: #997404;--bs-danger-text: #b02a37;--bs-light-text: #6c757d;--bs-dark-text: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #f8f9fa;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #e9ecef;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 33, 37, 41;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient( 180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0) );--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #d63384;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-2xl: 2rem;--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(var(--bs-body-color-rgb), .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(var(--bs-body-color-rgb), .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(var(--bs-body-color-rgb), .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(var(--bs-body-color-rgb), .075);--bs-emphasis-color: #000;--bs-form-control-bg: var(--bs-body-bg);--bs-form-control-disabled-bg: var(--bs-secondary-bg);--bs-highlight-bg: #fff3cd;--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}[data-bs-theme=dark]{--bs-body-color: #adb5bd;--bs-body-color-rgb: 173, 181, 189;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #f8f9fa;--bs-emphasis-color-rgb: 248, 249, 250;--bs-secondary-color: rgba(173, 181, 189, .75);--bs-secondary-color-rgb: 173, 181, 189;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(173, 181, 189, .5);--bs-tertiary-color-rgb: 173, 181, 189;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-emphasis-color: #fff;--bs-primary-text: #6ea8fe;--bs-secondary-text: #dee2e6;--bs-success-text: #75b798;--bs-info-text: #6edff6;--bs-warning-text: #ffda6a;--bs-danger-text: #ea868f;--bs-light-text: #f8f9fa;--bs-dark-text: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #212529;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #495057;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #055160;--bs-warning-border-subtle: #664d03;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: #fff;--bs-link-color: #6ea8fe;--bs-link-hover-color: #9ec5fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 158, 197, 254;--bs-code-color: #e685b5;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15)}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color, inherit)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width: 992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width: 1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width: 1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color: var(--bs-body-color);--bs-table-bg: transparent;--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0, 0, 0, .05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0, 0, 0, .1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0, 0, 0, .075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #bacbe6;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #cbccce;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #bcd0c7;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #badce3;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-form-control-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-form-control-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-form-control-disabled-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-form-control-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-form-control-disabled-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23adb5bd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-form-control-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating:before:not(.form-control:disabled){position:absolute;top:var(--bs-border-width);left:var(--bs-border-width);width:calc(100% - (1.125em + .5625rem));height:1.875em;content:"";background-color:var(--bs-form-control-bg);border-radius:.375rem}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label{color:#6c757d}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:.375rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-success-text)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-success);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-success);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-success)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-success);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-success)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-success-text)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-success-text)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-danger-text)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-danger);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-danger);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-danger)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-danger);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-danger)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-danger-text)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-danger-text)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: .375rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: none;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: .5rem}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: .25rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: .375rem;--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(.375rem - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 .5rem 1rem rgba(var(--bs-body-color-rgb), .15);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:0 0;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: .375rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{background:0 0;border:0;border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: .375rem;--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc( var(--bs-border-radius) - (var(--bs-border-width)) );--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc( var(--bs-border-radius) - (var(--bs-border-width)) );--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230a58ca'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: .5rem}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: .25rem}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: .375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: .375rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text)}.alert-success{--bs-alert-color: var(--bs-success-text);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text)}.alert-info{--bs-alert-color: var(--bs-info-text);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text)}.alert-warning{--bs-alert-color: var(--bs-warning-text);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text)}.alert-danger{--bs-alert-color: var(--bs-danger-text);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text)}.alert-light{--bs-alert-color: var(--bs-light-text);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text)}.alert-dark{--bs-alert-color: var(--bs-dark-text);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle)}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle)}.list-group-item-primary.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-primary-text);--bs-list-group-active-border-color: var(--bs-primary-text)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle)}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle)}.list-group-item-secondary.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-secondary-text);--bs-list-group-active-border-color: var(--bs-secondary-text)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle)}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle)}.list-group-item-success.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-success-text);--bs-list-group-active-border-color: var(--bs-success-text)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle)}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle)}.list-group-item-info.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-info-text);--bs-list-group-active-border-color: var(--bs-info-text)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle)}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle)}.list-group-item-warning.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-warning-text);--bs-list-group-active-border-color: var(--bs-warning-text)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle)}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle)}.list-group-item-danger.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-danger-text);--bs-list-group-active-border-color: var(--bs-danger-text)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle)}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle)}.list-group-item-light.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-light-text);--bs-list-group-active-border-color: var(--bs-light-text)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle)}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle)}.list-group-item-dark.list-group-item-action:active{--bs-list-group-active-color: var(--bs-emphasis-color);--bs-list-group-active-bg: var(--bs-dark-text);--bs-list-group-active-border-color: var(--bs-dark-text)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0 .125rem .25rem rgba(var(--bs-body-color-rgb), .075);--bs-modal-inner-border-radius: calc( var(--bs-border-radius-lg) - (var(--bs-border-width)) );--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 .5rem 1rem rgba(var(--bs-body-color-rgb), .15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;padding:var(--bs-tooltip-arrow-height);margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc( var(--bs-border-radius-lg) - var(--bs-border-width) );--bs-popover-box-shadow: 0 .5rem 1rem rgba(var(--bs-body-color-rgb), .15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: ;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 .125rem .25rem rgba(var(--bs-body-color-rgb), .075);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width: 575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width: 767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width: 991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width: 1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width: 1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(13,110,253,var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(108,117,125,var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(25,135,84,var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(13,202,240,var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(255,193,7,var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(220,53,69,var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(248,249,250,var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(33,37,41,var(--bs-bg-opacity, 1))!important}.link-primary{color:#0d6efd!important}.link-primary:focus,.link-primary:hover{color:#0a58ca!important}.link-secondary{color:#6c757d!important}.link-secondary:focus,.link-secondary:hover{color:#565e64!important}.link-success{color:#198754!important}.link-success:focus,.link-success:hover{color:#146c43!important}.link-info{color:#0dcaf0!important}.link-info:focus,.link-info:hover{color:#3dd5f3!important}.link-warning{color:#ffc107!important}.link-warning:focus,.link-warning:hover{color:#ffcd39!important}.link-danger{color:#dc3545!important}.link-danger:focus,.link-danger:hover{color:#b02a37!important}.link-light{color:#f8f9fa!important}.link-light:focus,.link-light:hover{color:#f9fafb!important}.link-dark{color:#212529!important}.link-dark:focus,.link-dark:hover{color:#1a1e21!important}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(var(--bs-body-color-rgb),.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(var(--bs-body-color-rgb),.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(var(--bs-body-color-rgb),.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{--bs-border-width: 1px}.border-2{--bs-border-width: 2px}.border-3{--bs-border-width: 3px}.border-4{--bs-border-width: 4px}.border-5{--bs-border-width: 5px}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text)!important}.text-secondary-emphasis{color:var(--bs-secondary-text)!important}.text-success-emphasis{color:var(--bs-success-text)!important}.text-info-emphasis{color:var(--bs-info-text)!important}.text-warning-emphasis{color:var(--bs-warning-text)!important}.text-danger-emphasis{color:var(--bs-danger-text)!important}.text-light-emphasis{color:var(--bs-light-text)!important}.text-dark-emphasis{color:var(--bs-dark-text)!important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-emphasis{--bs-bg-opacity: 1;background-color:rgba(var(--bs-emphasis-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-2xl)!important;border-top-right-radius:var(--bs-border-radius-2xl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-2xl)!important;border-bottom-right-radius:var(--bs-border-radius-2xl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-2xl)!important;border-bottom-left-radius:var(--bs-border-radius-2xl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-2xl)!important;border-top-left-radius:var(--bs-border-radius-2xl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}body{font-family:Plus Jakarta Sans,sans-serif!important;background:none!important;-webkit-user-select:none;user-select:none}body,#root,.dev-bg{overflow:hidden!important}.dev-bg{width:100vw;height:100vh;background:black;background-size:cover;background-position:50% 50%;position:absolute;overflow:none!important}.dev-menu{position:absolute}::-webkit-scrollbar{width:15px;height:15px}::-webkit-scrollbar-track{background-color:var(--bs-dark-border-subtle)}::-webkit-scrollbar-track-piece{background-color:var(--bs-dark)}::-webkit-scrollbar-thumb{height:50px;background-color:var(--bs-dark-border-subtle);border-radius:100px;border:4px solid var(--bs-dark)}::-webkit-scrollbar-corner{background-color:var(--bs-dark-border-subtle)}::-webkit-resizer{background-color:var(--bs-dark-border-subtle)}.modal-content{border-radius:10px!important}.modal-header{border-radius:10px 10px 0 0!important}.modal-footer{border-radius:0 0 10px 10px!important}.modal-backdrop.show{z-index:9999!important}.form-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#999!important}.vehicle-image{width:80px;height:40px;margin-top:-22px;background-size:contain;background-position:50% 50%;background-repeat:no-repeat}.modal-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vehicle-showroom{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end;width:100vw;height:100vh;padding:3rem}.showroom-column{width:330px;height:100%}.showroom-column .modal-dialog{width:100%;flex-shrink:0;margin:0;height:100%;max-width:none}.showroom-column-vehicles-list{height:100%;display:flex;flex-shrink:0;flex-direction:column}.leave-showroom-btn{margin-bottom:22px;font-size:1.1rem;height:48px;border-radius:10px!important;z-index:999999}.vehicles-list-modal{display:block!important;height:calc(100% - 70px)!important}.vehicles-list-modal .modal-content{height:100%}.showroom-back-btn{position:absolute;left:16px;background:inherit;background:none;border:none;outline:none;color:#fff;font-size:1.25rem;line-height:1rem}.showroom-back-btn:disabled{opacity:.25}.showroom-modal-body{padding:0}.search-and-filter{width:100%;position:sticky;top:0;z-index:99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.search-and-filter .dropdown-toggle{border:var(--bs-border-width) solid var(--bs-border-color)}.showroom-category-btn{cursor:pointer;transition:.1s ease-in-out}.showroom-category-btn:hover{border:1px solid #999}.showroom-vehicle{display:block;width:100%;background:none;border:0;color:inherit;text-align:left;padding:1rem;border-bottom:1px solid #444;transition:.1s ease-in-out}.showroom-vehicle.active{background:var(--bs-gray-800)}.showroom-vehicle:is(button){cursor:pointer}.showroom-vehicle:is(button):hover{background-color:var(--bs-gray-800)}.showroom-vehicle:disabled{opacity:.33;cursor:not-allowed}.showroom-vehicle:disabled:hover{border:inherit;background:inherit}.showroom-vehicle:last-child{border:none}.showroom-vehicle h4{margin:0}.showroom-vehicle-name-stock{display:flex;justify-content:space-between;align-items:start;width:100%;gap:10px}.showroom-vehicle-name-stock div,.showroom-vehicle-name-stock p,.showroom-vehicle-name-stock small{flex-grow:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vehicle-info-modal{display:block!important}.vehicle-model-brand-stock{display:flex;flex-direction:column;align-items:flex-start}.vehicle-model-brand-stock *{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vehicle-stats{margin-bottom:30px}.vehicle-stat{margin-bottom:10px}.vehicle-pricing{text-align:center;margin:10px 0 20px}.vehicle-pricing h3{font-weight:600}.vehicle-financing-text{font-size:.9rem;line-height:20px}.vehicle-colors{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr 1fr}.vehicle-colors .color{margin:10px auto;width:55px;height:55px;border-radius:100%;border:5px solid var(--bs-modal-bg)}.vehicle-colors .color.active{border-color:var(--bs-primary)}.vehicle-purchase-modal{width:100%}.vehicle-purchase-modal button{width:50%}.financing-breakdown-table{width:100%}.financing-breakdown-table td,.financing-breakdown-table tr{border:1px solid #555}.financing-breakdown-table td{padding:10px}.loading-model{position:absolute;display:flex;justify-content:center;align-items:center;width:100%;height:100%;left:0;top:0;z-index:99999}.admin-navbar li>button{white-space:nowrap}.dealership-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:0!important;position:sticky;top:0;z-index:99999}.admin-navbar{position:sticky;top:41.5px;z-index:99999}.bg-darker{background:var(--bs-dark-bg-subtle)}.bootstrap-table td,.bootstrap-table th{vertical-align:middle}.dealership-search-and-filter{width:100%}.dealership-search-and-filter .dropdown-toggle{border:var(--bs-border-width) solid var(--bs-border-color)}.vehicle-selector-dropdown .dropdown-menu{width:100%;max-height:300px;overflow-x:hidden;padding:0!important}.vehicle-selector-dropdown .vehicle-select-search{width:100%;position:sticky;top:0;padding:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.test-drive-hud{position:absolute;left:50%;transform:translate(-50%);top:65px;width:450px}.test-drive-hud .test-drive-notice{margin-right:25px;padding-right:25px;border-right:1px solid #444}.test-drive-hud .seconds-remaining{display:flex;flex-direction:column;align-items:center}.admin-nav-btn{cursor:pointer}.admin-nav-btn:hover{border:1px solid #999;transition:.2s ease-in-out}.admin-vehicle-row-name{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-no-vehicles{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.vehicles-admin-modal .modal-dialog{max-width:1400px}.vehicles-admin-modal.small .modal-dialog{max-width:600px}.accordion-button{box-shadow:none!important}.accordion-button:not(.collapsed){background-color:var(--bs-tertiary-bg)!important;color:#fff!important}.accordion-item{border:none!important}.finance-container{height:20px}.finance-progress-bar{margin:5px;position:relative;width:calc(100% - 5px);height:4px;background:#555}.finance-progress-bar-inner{position:absolute;left:0;max-width:100%;height:4px}.finance-progress-bar .points-container{display:flex;justify-content:space-between}.finance-progress-bar .point{position:relative;width:18px;height:18px;background-color:#fff;border-radius:100%;margin-top:-6px;margin-left:-3px;z-index:1}.finance-progress-bar .point i{position:absolute;top:-1px;left:-1px;line-height:0;font-size:20px;color:#555}.display-vehicle-hud{position:absolute;bottom:20px;left:50%;width:500px;height:90px;transform:translate(-50%);transition:.3s ease-in-out;overflow:hidden}.display-vehicle-hud .place-vehicle-prompt{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center;font-size:18px;line-height:25px}.display-vehicle-hud kbd{padding:0 8px;margin:0 5px;background:#ccc;color:#212529;font-weight:700;border-radius:5px;border-bottom:3px solid #777;display:inline-block;vertical-align:middle;font-size:17px}.display-vehicle-hud.vehicle-placed{width:700px;height:130px}.vehicle-controls{position:relative;width:100%;transition:opacity 1s}.vehicle-controls i{font-size:20px}.vehicle-controls i:before{font-weight:700!important} diff --git a/resources/[carscripts]/jg-dealerships/web/dist/assets/loading-f9361a1d.gif b/resources/[carscripts]/jg-dealerships/web/dist/assets/loading-f9361a1d.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a8068f93e75d7bdeb74cc3ab8fad678091f5f7e GIT binary patch literal 64374 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 oJ_jNY`g{^d7rXb>GngtaUSM`F05iJB=eP3&m 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 literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-dealerships/web/dist/index.html b/resources/[carscripts]/jg-dealerships/web/dist/index.html new file mode 100644 index 000000000..955c2304a --- /dev/null +++ b/resources/[carscripts]/jg-dealerships/web/dist/index.html @@ -0,0 +1,14 @@ + + + + + + jg-dealerships-web + + + + +

+ + + diff --git a/resources/[carscripts]/jg-textui/.fxap b/resources/[carscripts]/jg-textui/.fxap new file mode 100644 index 0000000000000000000000000000000000000000..b451d23e33a4c73efdd509b10ce530bd43d2ebf2 GIT binary patch literal 178 zcmV;j08Rf!SV2$$00000048$0Q(50i7B(R`MChReDYAC$d5@-;x!OtNKSh|@wk}P{ zfIV&6Q~&MQ5BbpGj9CyDn(t>6)i4D$B_e2L30909H^8BFf8UQ&hiyv=_J9b@$~|fu zJ)6?!%uHkQQ725VXBBD&$7K1g8%>k literal 0 HcmV?d00001 diff --git a/resources/[carscripts]/jg-textui/.gitignore b/resources/[carscripts]/jg-textui/.gitignore new file mode 100644 index 000000000..496ee2ca6 --- /dev/null +++ b/resources/[carscripts]/jg-textui/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/resources/[carscripts]/jg-textui/LICENSE b/resources/[carscripts]/jg-textui/LICENSE new file mode 100644 index 000000000..5f67a88ad --- /dev/null +++ b/resources/[carscripts]/jg-textui/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 JG Scripts + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/resources/[carscripts]/jg-textui/README.md b/resources/[carscripts]/jg-textui/README.md new file mode 100644 index 000000000..a34e4b24c --- /dev/null +++ b/resources/[carscripts]/jg-textui/README.md @@ -0,0 +1,13 @@ +# jg-textui + +Show text UI: + +```lua +exports['jg-textui']:DrawText(text) +``` + +Hide text UI: + +```lua +exports['jg-textui']:HideText() +``` diff --git a/resources/[carscripts]/jg-textui/client.lua b/resources/[carscripts]/jg-textui/client.lua new file mode 100644 index 000000000..c805e112d --- /dev/null +++ b/resources/[carscripts]/jg-textui/client.lua @@ -0,0 +1,16 @@ +function DrawText(text) + SendNUIMessage({ + type = 'show', + text = text + }) +end + +exports('DrawText', DrawText) + +function HideText() + SendNUIMessage({ + type = 'hide' + }) +end + +exports('HideText', HideText) diff --git a/resources/[carscripts]/jg-textui/fxmanifest.lua b/resources/[carscripts]/jg-textui/fxmanifest.lua new file mode 100644 index 000000000..e4aab0bc6 --- /dev/null +++ b/resources/[carscripts]/jg-textui/fxmanifest.lua @@ -0,0 +1,18 @@ +fx_version "cerulean" +game "gta5" + +description "Simple text UI library" +version "1.0" +author "JG Scripts" + +client_script "client.lua" + +ui_page "web/index.html" + +files {"web/*"} + +escrow_ignore {"**/*"} + +lua54 "yes" + +dependency '/assetpacks' \ No newline at end of file diff --git a/resources/[carscripts]/jg-textui/web/index.html b/resources/[carscripts]/jg-textui/web/index.html new file mode 100644 index 000000000..8c0806264 --- /dev/null +++ b/resources/[carscripts]/jg-textui/web/index.html @@ -0,0 +1,13 @@ + + + + + jg-textui-web + + + +
This is some text
+ + + + diff --git a/resources/[carscripts]/jg-textui/web/main.css b/resources/[carscripts]/jg-textui/web/main.css new file mode 100644 index 000000000..72370e07f --- /dev/null +++ b/resources/[carscripts]/jg-textui/web/main.css @@ -0,0 +1,38 @@ +@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap"); + +* { + margin: 0; + padding: 0; +} + +body { + font-family: "Plus Jakarta Sans", sans-serif; + background: none; +} + +.text-ui { + background: #212529; + border: 1px solid #42484e; + padding: 8px 10px; + border-radius: 7px; + color: white; + position: absolute; + left: -100%; + top: 50%; + transform: translateY(-50%); + transition: 0.5s ease-in-out; + user-select: none; +} + +.text-ui kbd { + padding: 1px 8px; + background: #ccc; + color: #212529; + font-weight: bold; + border-radius: 5px; + border-bottom: 3px solid #777; + display: inline-block; + vertical-align: middle; + margin-right: 3px; + font-size: 17px; +} diff --git a/resources/[carscripts]/jg-textui/web/main.js b/resources/[carscripts]/jg-textui/web/main.js new file mode 100644 index 000000000..951b20af4 --- /dev/null +++ b/resources/[carscripts]/jg-textui/web/main.js @@ -0,0 +1,19 @@ +(function () { + const textUI = document.querySelector(".text-ui"); + + window.addEventListener("message", (evt) => { + const { data } = evt; + + if (!data) return false; + + if (data.type === "show") { + // If the string contains a key in square brackets (like [E]), then style it differently! + let str = data.text.replaceAll(/\[(.*?)\]/g, "$1"); + + textUI.style.left = "20px"; + textUI.innerHTML = str; + } else if (data.type === "hide") { + textUI.style.left = "-100%"; + } + }); +})();