1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6162],{1848:(e,t,r)=>{"use strict";r.d(t,{Ht:()=>a,Mw:()=>i,Wc:()=>n,mO:()=>s});let s=3e4,n=2,a=1e3;function i(e,t){return"/"===e?"home":"/markets"===e?"stocks"===t?"stocks":null:e.startsWith("/markets/stocks/")?"stocks":null}},14982:(e,t,r)=>{"use strict";r.d(t,{yr:()=>n});var s=r(46410);let n=s.Ik({usdtSpotVolume24h:s.Yj().nullable(),advancingPairPercentage:s.Yj().nullable(),advancingPairCount:s.ai().int().nonnegative(),measuredPairCount:s.ai().int().nonnegative(),altcoinRelativeStrength:s.Yj().nullable(),outperformingAltcoinCount:s.ai().int().nonnegative(),measuredAltcoinCount:s.ai().int().nonnegative()})},21561:(e,t,r)=>{"use strict";r.d(t,{A:()=>p});var s=r(27929),n=r(21773),a=r.t(n,2),i=r(78663),o=a["use".trim()],l=r(93471),u=r(32426),c=r(11476),h=r(61913),m=r(90520);function p(e){let{Link:t,config:r,getPathname:a,...p}=function(e,t){var r,a,i;let m={...r=t||{},localePrefix:"object"==typeof(i=r.localePrefix)?i:{mode:i||"always"},localeCookie:!!((a=r.localeCookie)??1)&&{name:"NEXT_LOCALE",sameSite:"lax",..."object"==typeof a&&a},localeDetection:r.localeDetection??!0,alternateLinks:r.alternateLinks??!0},p=m.pathnames,g=(0,n.forwardRef)(function({href:t,locale:r,...s},n){let a,i;"object"==typeof t?(a=t.pathname,i=t.params):a=t;let c=(0,l._x)(t),g=e(),d=(0,l.yL)(g)?o(g):g,f=c?k({locale:r||d,href:null==p?a:{pathname:a,params:i},forcePrefix:null!=r||void 0}):a;return(0,h.jsx)(u.default,{ref:n,href:"object"==typeof t?{...t,pathname:f}:f,locale:r,localeCookie:m.localeCookie,...s})});function k(e){let t,{forcePrefix:r,href:s,locale:n}=e;return null==p?"object"==typeof s?(t=s.pathname,s.query&&(t+=(0,c.Zn)(s.query))):t=s:t=(0,c.FP)({locale:n,...(0,c.TK)(s),pathnames:m.pathnames}),(0,c.x3)(t,n,m,r)}function d(e){return function(t,...r){return e(k(t),...r)}}return{config:m,Link:g,redirect:d(s.redirect),permanentRedirect:d(s.permanentRedirect),getPathname:k}}(i.Ym,e);return{...p,Link:t,usePathname:function(){let e,t,a=(e=(0,s.usePathname)(),t=(0,i.Ym)(),(0,n.useMemo)(()=>{if(!e)return e;let s=e,n=(0,l.XP)(t,r.localePrefix);if((0,l.wO)(n,e))s=(0,l.MY)(e,n);else if("never"!==r.localePrefix.mode&&r.localePrefix.prefixes){let r=(0,l.bL)(t);(0,l.wO)(r,e)&&(s=(0,l.MY)(e,r))}return s},[r.localePrefix,t,e])),o=(0,i.Ym)();return(0,n.useMemo)(()=>a&&r.pathnames?(0,c.aM)(o,a,r.pathnames):a,[o,a])},useRouter:function(){let e=(0,s.useRouter)(),t=(0,i.Ym)(),o=(0,s.usePathname)();return(0,n.useMemo)(()=>{function s(e){return function(s,n){let{locale:i,...l}=n||{},u=[a({href:s,locale:i||t,forcePrefix:null!=i||void 0})];Object.keys(l).length>0&&u.push(l),(0,m.A)(r.localeCookie,o,t,i),e(...u)}}return{...e,push:s(e.push),replace:s(e.replace),prefetch:s(e.prefetch)}},[t,o,e])},getPathname:a}}},23098:(e,t,r)=>{Promise.resolve().then(r.bind(r,60633))},56879:(e,t,r)=>{"use strict";r.d(t,{FG:()=>l,IB:()=>n,Iq:()=>h,gA:()=>m,gB:()=>i,hh:()=>u,lF:()=>c,q:()=>a,rv:()=>o});var s=r(94372);let n=s.lb,a=s.q,i="NEXT_LOCALE";function o(e){return n.includes(e)?e:null}function l(e){return o(e.split("/").filter(Boolean)[0])}function u(e){let t=l(e);if(!t)return e||"/";let r=e.slice(t.length+1);return r?r.startsWith("/")?r:`/${r}`:"/"}function c(e,t){if(!t.startsWith("/"))return t;let[r,s=""]=t.match(/^([^?#]*)(.*)$/)?.slice(1)??[t,""],n=u(r||"/");return e===a?`${n}${s}`:"/"===n?`/${e}${s}`:`/${e}${n}${s}`}function h(e){return s.DM[e]}function m(e){return s.vO[e]}},60633:(e,t,r)=>{"use strict";r.d(t,{PublicMarketStoreProvider:()=>x,x:()=>b,g:()=>v});var s=r(61913),n=r(21773),a=r(83409),i=r(99242),o=r(27929),l=r(19574),u=r(1848),c=r(66258),h=r(97241),m=r(69291);class p{constructor(e){this.cryptoMarketPage=null,this.snapshot=e,(0,m.l_)(this,{},{autoBind:!0,deep:!1})}replaceSnapshot(e){this.snapshot=e}replaceStockMarketSnapshot(e){this.snapshot={...this.snapshot,generatedAt:e.generatedAt,stockAssets:e.stockAssets,indexAssets:e.indexAssets}}applyStockMarketSnapshot(e){if(!(0,h.CA)(e.failures))return void this.replaceStockMarketSnapshot(e);let t=new Map(this.snapshot.stockAssets.map(e=>[e.symbol,e])),r=new Set(e.failures.stockKlines),s=e.stockAssets.map(s=>{let n=t.get(s.symbol);if(void 0===n)throw Error(`Missing current stock market: ${s.symbol}`);return{...s,quote:e.failures.stockQuotes?n.quote:s.quote,trend:e.failures.stockQuotes?n.trend:s.trend,kline:r.has(s.symbol)?n.kline:s.kline}});this.snapshot={...this.snapshot,generatedAt:e.generatedAt,stockAssets:s,indexAssets:e.failures.indexQuotes?this.snapshot.indexAssets:e.indexAssets}}replaceFeaturedCryptoMarketData(e){this.snapshot={...this.snapshot,cryptoAssets:e.assets,marketPulse:e.marketPulse}}replaceCryptoMarketPage(e){this.cryptoMarketPage=e}clearCryptoMarketPage(){this.cryptoMarketPage=null}get cryptoAssets(){return this.snapshot.cryptoAssets}get stockAssets(){return this.snapshot.stockAssets}get indexAssets(){return this.snapshot.indexAssets}get marketPulse(){return this.snapshot.marketPulse}get homePrimaryMarket(){let e=this.cryptoAssets[0];if(void 0===e)throw Error("Home hero requires a primary market");return e}get homeWatchlistAssets(){return[...this.cryptoAssets.slice(1,4),...this.stockAssets.slice(0,5)]}get homeStockAssets(){return this.stockAssets.slice(0,4)}get homeIndexAssets(){return this.indexAssets}get homeCryptoAssets(){return this.cryptoAssets.slice(0,4)}get marketOverviewAssets(){return["ndx","spx","vix"].map(e=>{let t=this.indexAssets.find(t=>t.slug===e);if(void 0===t)throw Error(`Missing market overview asset: ${e}`);return t})}get stockExchanges(){return Array.from(new Set(this.stockAssets.map(e=>{if(void 0===e.exchange)throw Error(`Missing stock exchange: ${e.symbol}`);return e.exchange}
1)))}stocksForExchange(e){return"All"===e?this.stockAssets:this.stockAssets.filter(t=>t.exchange===e)}}var g=r(87275),k=r(67761);let d=n.createContext(null),f=n.createContext(null);async function y(){let e=await fetch("/api/markets/stocks/snapshot",{cache:"no-store"});if(!e.ok)throw Error(`Stock market snapshot HTTP ${e.status}`);return h.Lh.parse(await e.json())}async function A(){let e=await fetch("/api/markets/crypto/featured",{cache:"no-store"});if(!e.ok)throw Error(`Featured crypto market HTTP ${e.status}`);return c.Fu.parse(await e.json())}function x({children:e,initialSnapshot:t}){let r=(0,i.c)("errors"),c=(0,k.hh)((0,g.a8)()),m=(0,o.useSearchParams)(),[x]=n.useState(()=>new p(t)),v=(0,u.Mw)(c,m.get("tab")),b=n.useCallback(()=>{l.oR.error(r("marketData.stockUpdateFailed"),{id:"stock-market-update-error"})},[r]),Y=n.useCallback(()=>{l.oR.error(r("marketData.cryptoUpdateFailed"),{id:"crypto-market-update-error"})},[r]),{loading:P}=(0,a.A)(y,{ready:"home"===v||"stocks"===v,pollingInterval:u.mO,pollingWhenHidden:!1,retryCount:u.Wc,retryInterval:u.Ht,onSuccess(e){null!==v&&(x.applyStockMarketSnapshot(e),(0,h.CA)(e.failures)&&b())},onError(){null!==v&&b()}}),{loading:j}=(0,a.A)(A,{ready:"home"===v,pollingInterval:u.mO,pollingWhenHidden:!1,retryCount:u.Wc,retryInterval:u.Ht,onSuccess(e){"home"===v&&x.replaceFeaturedCryptoMarketData(e)},onError(){"home"===v&&Y()}});return(0,s.jsx)(d.Provider,{value:x,children:(0,s.jsx)(f.Provider,{value:"home"===v?P||j:"stocks"===v&&P,children:e})})}function v(){let e=n.useContext(d);if(null===e)throw Error("usePublicMarketStore must be used within PublicMarketStoreProvider");return e}function b(){let e=n.useContext(f);if(null===e)throw Error("usePublicMarketSnapshotLoading must be used within PublicMarketStoreProvider");return e}},66258:(e,t,r)=>{"use strict";r.d(t,{Fu:()=>u,Y3:()=>l});var s=r(46410),n=r(97241),a=r(14982);let i=s.k5(["volume_desc","change_desc","change_asc","symbol_asc"]),o=s.Ik({topVolume:s.YO(n.CQ),topGainers:s.YO(n.CQ),topLosers:s.YO(n.CQ)}),l=s.Ik({generatedAt:s.Yj().datetime(),items:s.YO(n.CQ),total:s.ai().int().nonnegative(),page:s.ai().int().positive(),pageSize:s.eu(50),sort:i,marketPulse:a.yr,rankings:o}),u=s.Ik({assets:s.YO(n.CQ),marketPulse:a.yr})},67761:(e,t,r)=>{"use strict";r.d(t,{DT:()=>a,FG:()=>n.FG,Iq:()=>n.Iq,gA:()=>n.gA,gB:()=>n.gB,hh:()=>n.hh,lF:()=>n.lF,q:()=>n.q,rv:()=>n.rv});var s=r(36654),n=r(56879);let a=(0,s.A)({locales:n.IB,defaultLocale:n.q,localePrefix:"as-needed",localeDetection:!1,localeCookie:!1,alternateLinks:!1})},87275:(e,t,r)=>{"use strict";r.d(t,{N_:()=>a,a8:()=>l,rd:()=>u});var s=r(21561),n=r(67761);let{Link:a,getPathname:i,redirect:o,usePathname:l,useRouter:u}=(0,s.A)(n.DT)},94372:(e,t,r)=>{"use strict";r.d(t,{DM:()=>a,Ql:()=>l,UK:()=>o,lb:()=>s,q:()=>n,vO:()=>i});let s=["en","zh","ko","zh-HK","zh-TW"],n="en",a={en:"en",zh:"zh-CN",ko:"ko-KR","zh-HK":"zh-HK","zh-TW":"zh-TW"},i={en:"en-US",zh:"zh-CN",ko:"ko-KR","zh-HK":"zh-HK","zh-TW":"zh-TW"},o=["en","zh","zh-TW","ko"],l={en:"English",zh:"ç®ä½ä¸æ","zh-HK":"ç¹é«ä¸æ","zh-TW":"ç¹é«ä¸æ",ko:"íêµì´"}},97241:(e,t,r)=>{"use strict";r.d(t,{$E:()=>y,CA:()=>m,CQ:()=>u,Fq:()=>g,L:()=>x,Lh:()=>h,Mb:()=>v,Rg:()=>b,S5:()=>f,Z:()=>k,dg:()=>d,sn:()=>A});var s=r(46410),n=r(14982),a=r(99192);let i=s.k5(["up","down","flat","unknown"]),o=s.Ik({price:s.Yj().nullable(),change:s.Yj().nullable(),changeRate:s.Yj().nullable(),open:s.Yj().nullable(),previousClose:s.Yj().nullable(),high:s.Yj().nullable(),low:s.Yj().nullable(),volume:s.Yj().nullable(),quoteVolume:s.Yj().nullable(),weightedAveragePrice:s.Yj().nullable(),tradeCount:s.Yj().nullable(),marketCap:s.Yj().nullable(),shares:s.Yj().nullable(),high52Week:s.Yj().nullable(),low52Week:s.Yj().nullable(),pe:s.Yj().nullable()}),l=s.Ik({time:s.Yj(),open:s.Yj(),high:s.Yj(),low:s.Yj(),close:s.Yj(),volume:s.Yj().nullable(),amount:s.Yj().nullable()}),u=s.Ik({category:s.k5(["crypto","stocks","indices"]),slug:s.Yj(),symbol:s.Yj(),pairSymbol:s.Yj().optional(),name:s.Yj(),logoUrl:s.Yj(),tradeHref:s.Yj().nullable(),exchange:s.k5(["NASDAQ","NYSE"]).optional(),quote:o.nullable(),kline:s.YO(l),trend:i});s.Ik({generatedAt:s.Yj().datetime(),cryptoAssets:s.YO(u),stockAssets:s.YO(u),indexAssets:s.YO(u),marketPulse:n.yr});let c=s.Ik({stockQuotes:s.zM(),stockKlines:s.YO(s.Yj()),indexQuotes:s.zM()}),h=s.Ik({generatedAt:s.Yj().datetime(),stockAssets:s.YO(u),indexAssets:s.YO(u),failures:c});function m(e){return e.stockQuotes||e.indexQuotes||e.stockKlines.length>0}function p(e){return null==e||""===e?"--":e}function g(e){let t=p(e);return"--"===t?t:(0,a.pS)(t,{maximumFractionDigits:"all",useGrouping:!0})}function k(e){let t=p(e);return"--"===t?t:(0,a.IV)(t,{maximumFractionDigits:2,useGrouping:!0})}function d(e){return"up"===e?"text-success":"down"===e?"text-destructive":"text-muted-foreground"}function f(e){let t=g(e.quote?.price);return"--"===t||"indices"===e.category?t:`$${t}`}function y(e){let t=p(e.quote?.changeRate);if("--"===t)return t;let r=t.endsWith("%")?t.slice(0,-1):t;return(0,a.l9)(r,{maximumFractionDigits:2,signDisplay:"up"===e.trend?"always":"auto"})}function A(e){let t=k(e);return"--"===t?t:`$${t}`}function x(e){let t=g(e);return"--"===t?t:`$${t}`}function v(e){return e.kline.map(({close:e})=>Number(e))}function b(e){return"indices"===e.category?"/markets?tab=stocks":`/markets/${e.category}/${e.slug}`}},99192:(e,t,r)=>{"use strict";r.d(t,{IV:()=>a,l9:()=>i,pS:()=>n});let s=[{minimumIntegerDigits:13,scale:12,unit:"T"},{minimumIntegerDigits:10,scale:9,unit:"B"},{minimumIntegerDigits:7,scale:6,unit:"M"},{minimumIntegerDigits:4,scale:3,unit:"K"}];function n(e,t){var r,s;let n=l(e),a=(r=t.maximumFractionDigits,s=n.fraction.length,"all"===r?s:(o(r),r)),i=t.useGrouping?n.integer.replace(/\B(?=(\d{3})+(?!\d))/g,","):n.integer,u=n.fraction.slice(0,a).replace(/0+$/,"");return`${n.sign}${i}${""===u?"":`.${u}`}`}function a(e,t){o(t.maximumFractionDigits);let r=l(e),a=s.find(({minimumIntegerDigits:e})=>r.integer.length>=e);if(void 0===a)return n(e,{maximumFractionDigits:t.maximumFractionDigits,useGrouping:t.useGrouping});let i=r.integer.length-a.scale,u=`${r.sign}${r.integer.slice(0,i)}.${r.integer.slice(i)}${r.fraction}`;return`${n(u,{maximumFractionDigits:t.maximumFractionDigits,useGrouping:t.useGrouping})}${a.unit}`}function i(e,t){let r=n(e,{maximumFractionDigits:t.maximumFractionDigits,useGrouping:!1}),s=/^-0(?:\.0+)?$/.test(r)?r.slice(1):r,a="always"!==t.signDisplay||s.startsWith("-")||"0"===s?"":"+";return`${a}${s}%`}function o(e){if(!Number.isInteger(e)||e<0)throw Error("maximumFractionDigits must be a non-negative integer")}function l(e){if(!/^-?\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid decimal amount: ${e}`);let t=e.startsWith("-")?"-":"",r=""===t?e:e.slice(1),s=r.indexOf("."),n=-1===s?r:r.slice(0,s),a=-1===s?"":r.slice(s+1);return{sign:t,integer:n.replace(/^0+(?=\d)/,""),fraction:a}}},99242:(e,t,r)=>{"use strict";r.d(t,{c:()=>a});var s=r(78663);function n(e,t){return(...e)=>{try{return t(...e)}catch{throw Error(void 0)}}}let a=n(0,s.c3);n(0,s.kc)}},e=>{e.O(0,[9315,8663,8954,2525,3409,6410,5471,6454,7358],()=>e(e.s=23098)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.