1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1759],{31759:function(a,b,c){"use strict";c.d(b,{Z:function(){return a8}});var d=c(26042),e=c(69396),f=c(99534),g=c(828),h=c(85893),i=c(45697),j=c.n(i),k=c(67294),l=c(46513),m=c(15947),n=c(18092),o=c(41033),p=c(26511),q=c(17282),r=c(43222),s=c(2534),t=c(7386),u=c(7704),v=c(61351),w=c(43163),x=c(26038),y=c(7433),z=c(32407),A=c(71221),B={transitionState:j().oneOf(t.P)},C="power1.inOut",D=x.p8.parseEase(C),E={default:{cameraPosition:[-25.17,97.97,-472.4],cameraRotation:[-2.99,-0.04,-3.14]},initial:(0,d.Z)({},{cameraPosition:[-14.64,155.22,-543.85],cameraRotation:[-2.94,-0.02,-3.14]}),careers:{cameraPosition:[86.36552286875231,141.97930574033057,-264.5813995636359],cameraRotation:[-3.018706223222273,-0.3698567983269513,-3.0969760981328722]},actions:{cameraPosition:[17.62187216476905,111.05463761620321,-414.4202818437801],cameraRotation:[-2.8919392780458386,-0.11703767842329035,-3.111828110514401]},whoweare:{cameraPosition:[17.62187216476905,111.05463761620321,-414.4202818437801],cameraRotation:[-2.8919392780458386,-0.11703767842329035,-3.111828110514401]},projects:{cameraPosition:[15.914484472880252,390.4225483085327,-337.2473082209037],cameraRotation:[-2.3619941156417896,.027698434269420376,3.114223987638223]},"ring-left":{cameraPosition:[78.48,202.33,-119.78],cameraRotation:[3.11,.4,-3.13]},"ring-right":{cameraPosition:[-78.57,230.85,-131.31],cameraRotation:[-3.11,-0.4,-3.13]},"ring-fullscreen":{cameraPosition:[4.09,224.41,17.31],cameraRotation:[-3.07,-0.02,-3.14]},"side-right-actions":{cameraPosition:[33.75,116.72,-457.52],cameraRotation:[-2.91,-0.05,-3.13]},"side-right-ring":{cameraPosition:[33.75,116.72,-457.52],cameraRotation:[-2.91,-0.05,-3.13]},"front-ring":{cameraPosition:[-14.64,155.22,-543.85],cameraRotation:[-2.94,-0.02,-3.14]},"front-none":{cameraPosition:[-25.17,97.97,-472.4],cameraRotation:[-2.99,-0.04,-3.14]}},F=function(a){var b=a.transitionState,c=(0,z.Z)(function(a){return a.currentBreakpoint}),f=(0,k.useMemo)(function(){var a=40;return c.dimension>=A.j$.MEDIUM.min&&(a=23),a},[c]),g=(0,k.useState)(function(){var a={};
1return Object.keys(E).forEach(function(b){var c=new v.U;c.fromArray(E[b].cameraRotation);var f=new w._;f.setFromEuler(c),a[b]=(0,e.Z)((0,d.Z)({},E[b]),{cameraQuaternion:f})}),a}),i=g[0],j=i[b]||i.default,l=j.cameraPosition,m=j.cameraQuaternion,n=(0,k.useRef)(),o=(0,k.useRef)(new w._),p=(0,k.useRef)(new w._);return(0,k.useEffect)(function(){n.current.quaternion.copy(m),n.current.position.fromArray(l)},[]),(0,k.useEffect)(function(){o.current.copy(n.current.quaternion),p.current.copy(m);var a=x.p8.to(n.current.position,{x:l[0],y:l[1],z:l[2],ease:C,duration:3,onUpdate:function(){n.current.quaternion.slerpQuaternions(o.current,p.current,D(a.progress()))}});return function(){a&&a.kill()}},[m]),(0,h.jsx)(y.c,{ref:n,makeDefault:!0,fov:f,near:2,far:2e3})};F.propTypes=B,F.defaultProps={transitionState:"default"};var G=F;(0,s.e)({Color:q.I,Fog:r.y});var H={transitionState:j().oneOf(t.P),fogColor:j().string,backgroundColor:j().string,fogNear:j().number,fogFar:j().number},I=function(a){var b=a.transitionState,c=a.fogColor,d=a.backgroundColor,e=a.fogNear,f=a.fogFar,g=(0,u.Z)(function(a){return a.performanceTier}),i=(0,k.useRef)(),j=(0,k.useRef)();return(0,k.useEffect)(function(){i.current.set(d),j.current.color.set(c),1===g&&(i.current.convertLinearToSRGB(),j.current.color.convertLinearToSRGB())},[c,d,g]),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(G,{transitionState:b}),(0,h.jsx)("color",{ref:i,attach:"background"}),(0,h.jsx)("fog",{ref:j,near:e,far:f,attach:"fog"})]})};I.propTypes=H,I.defaultProps={transitionState:"default",backgroundColor:"#212438",fogNear:700,fogFar:900};var J=I,K=c(70587),L=c(14144),M=c(27006);function N(a){var b=a.background,c=void 0!==b&&b,d=a.url,e=void 0===d?"":d,f=a.path,g=void 0===f?"":f,h=a.scene,i=a.extensions,j=(0,s.w)(function(a){return a.scene});if(!e)throw"no url";var l=(0,s.z)(L.d,e,function(a){var b;a.setPath(g),null===(b=a.setDataType)|| void 0===b||b.call(a,M.VzW),i&&i(a)});return k.useLayoutEffect(function(){if(l){l.mapping=M.dSO;var a=h?h.background:j.background,b=h?h.environment:j.environment;return h?(h.environment=l,c&&(h.background=l)):(j.environment=l,c&&(j.background=l)),function(){h?(h.environment=b,h.background=a):(j.environment=b,j.background=a),l.dispose()}}},[l,c,h]),null}var O=c(47568),P=c(34051),Q=c.n(P),R=c(56831),S=c(12658),T=c(29815),U=c(18998),V=c(3432),W=c(2848),X=c(3811),Y=c(20618),Z=c(90059),$=c(59032),_=c(11052),aa=c(69542),ab=c(15593),ac=c(6980),ad=c(99137),ae=c(7597),af=c.n(ae),ag=(0,ad.g)({amount:10,radius:20,bendAmount:.8,radiusSpread:8,time:0,baseSpeed:.4,spreadSpeedMult:.3,videoGrid:new ab.x,atlasDimensions:new ac.L,imageScale:0,imageRotation:0,opacity:1,introAnim:0,fogColor:new q.I,fogDensity:2,fogNear:0,fogFar:200},"\n\nuniform float radius;\nuniform float amount;
1\nuniform float bendAmount;\nuniform float imageRotation;\nuniform float time;\nuniform float radiusSpread;\nuniform float baseSpeed;\nuniform float spreadSpeedMult;\nuniform float imageScale;\nuniform float introAnim;\nuniform float opacity;\n\nvarying vec2 vUv;\nvarying vec2 vTile;\nvarying vec3 vTransformed;\nvarying vec3 vNormal;\nvarying float vAnim;\n\n#define tau 6.2831\n\n#include <fog_pars_vertex>\n\nmat4 rotZ(in float psi){\n return mat4(\n vec4(cos(psi),-sin(psi),0.,0),\n vec4(sin(psi),cos(psi),0.,0.),\n vec4(0.,0.,1.,0.),\n vec4(0.,0.,0.,1.));\n}\n\nmat4 rotY(float rad) {\n float s = sin(rad);\n float c = cos(rad);\n return mat4(\n c, 0.0, -s, 0.0,\n 0.0, 1.0, 0.0, 0.0,\n s, 0.0, c, 0.0,\n 0.0, 0.0, 0.0, 1.0\n );\n}\n\nmat4 scale(float c)\n{\n return mat4(c, 0, 0, 0,\n 0, c, 0, 0,\n 0, 0, c, 0,\n 0, 0, 0, 1);\n}\n\nfloat easeInOutQuart(float x) {\n return x < 0.5 ? 8. * x * x * x * x : 1. - pow(-2. * x + 2., 4.) / 2.;\n}\n\nvoid main() {\n vUv = uv;\n vTile = instanceColor.gb; // use g and b from instance color for tile pos\n\n float index = instanceColor.r; // use r instance color for index\n\n vec3 transformed = position;\n if (imageRotation != 0.) {\n transformed = position * mat3(rotZ(imageRotation));\n }\n vAnim = smoothstep(index, index + .5, introAnim);\n transformed.y += (1.0 - opacity) + vAnim;\n\n\n // float rotation = (-time * baseSpeed);\n float rotation = 0.0;\n\n transformed.z = cos((transformed.x * tau / amount) * bendAmount) - 1.;\n\n vec4 mvPosition = modelViewMatrix * rotY(rotation) * instanceMatrix * scale(imageScale) * vec4(transformed, 1.);\n\n vTransformed = mvPosition.xyz;\n vNormal = normalMatrix * mat3(rotY(rotation)) * mat3(instanceMatrix) * normal;\n\n gl_Position = projectionMatrix * mvPosition;\n\n #include <fog_vertex>\n}\n","\n\n#include <common>\n\nvarying vec2 vUv;\nvarying vec2 vTile;\nvarying vec3 vTransformed;\nvarying vec3 vNormal;\nvarying float vAnim;\nuniform vec4 atlasDimensions; // xy: size, zw : cols-rows\nuniform float opacity;\nuniform sampler2D videoGrid;\n\nvec3 fromLinear(vec3 linearRGB) {\n return mix(\n pow( linearRGB * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ),\n linearRGB * 0.0773993808,\n vec3( lessThanEqual( linearRGB, vec3( 0.04045 ) ) )\n );\n}\n\nvec3 gamma(vec3 value, float param) {\n return vec3(pow(abs(value.r), param),pow(abs(value.g), param),pow(abs(value.b), param));\n}\n\n#include <fog_pars_fragment>\nvoid main() {\n vec2 uv = ((vUv + vTile) / atlasDimensions.xy);\n uv.y = 1.0 - uv.y; //flip UV for easier picking from top left\n\n vec4 rawColor = texture2D(videoGri
1d, uv);\n vec3 color = fromLinear((rawColor).rgb);\n // vec3 color = rawColor.rgb;\n // color = gamma(color, 1.2);\n\n vec3 fdx = dFdx(vTransformed);\n vec3 fdy = dFdy(vTransformed);\n vec3 faceNormal = normalize(cross(fdx,fdy));\n bool isFront = dot (vNormal, faceNormal) > 0.0;\n\n\n gl_FragColor = vec4(color, min(opacity, (1. - vAnim)));\n\n\n // #include <tonemapping_fragment>\n #include <encodings_fragment>\n #include <fog_fragment>\n\n #ifdef USE_FOG\n gl_FragColor.rgb = isFront ? gl_FragColor.rgb : mix(gl_FragColor.rgb, fogColor, 0.95);\n #else\n gl_FragColor.rgb = isFront ? gl_FragColor.rgb : gl_FragColor.rgb * 0.2;\n #endif\n // #include <premultiplied_alpha_fragment>\n\n // temp clamping\n // gl_FragColor = vec4(min(vec3(1), gl_FragColor.xyz), gl_FragColor.a);\n}\n",function(a){a.extensions.derivatives=!0});ag.key=af().generate(),(0,s.e)({ImageRingMaterial:ag});var ah=[{angle:0,y:1.8076681806624542,radius:29.154597033786366,scale:6.157031258286121},{angle:.28559933214452665,y:-0.3016533104801178,radius:28.15930420276259,scale:7.343612536478979},{angle:.5711986642890533,y:-1.5096613943235704,radius:27.13320486561317,scale:8.592928760435507},{angle:.8567979964335799,y:-2.1012128140854305,radius:28.483220315185193,scale:6.055727171248667},{angle:1.1423973285781066,y:2.1009319740781893,radius:26.12345020925925,scale:8.082870063873502},{angle:1.427996660722633,y:-1.203614043375345,radius:29.86374163576791,scale:7.084028522732605},{angle:1.7135959928671598,y:.609838076933158,radius:29.35487380400682,scale:8.023120005993993},{angle:1.9991953250116865,y:2.207954902413902,radius:29.676374807924113,scale:6.067671372586145},{angle:2.284794657156213,y:-0.20940414717877223,radius:29.587176655076075,scale:7.0600487899046005},{angle:2.57039398930074,y:1.9039432792464972,radius:29.61251871130876,scale:8.35330029081919},{angle:2.855993321445266,y:1.3032293574414722,radius:25.80734168691853,scale:7.087133730809904},{angle:3.141592653589793,y:-0.5029558734556194,radius:27.89091023452557,scale:8.556179249022623},{angle:3.4271919857343196,y:-1.7087616272462414,radius:27.6632921174789,scale:7.004037089710863},{angle:3.7127913178788465,y:-0.509834619735935,radius:29.976231103141604,scale:6.027071624270429},{angle:3.998390650023373,y:-0.10024875239948328,radius:28.071654170695016,scale:6.925864561371855},{angle:4.283989982167899,y:-0.9025219683630703,radius:25.670338375171106,scale:7.736755588998946},{angle:4.569589314312426,y:.9044842501754602,radius:29.90693678854873,scale:7.055640040745462},{angle:4.855188646456953,y:-0.10034265604418668,radius:27.555406203097995,scale:8.257579669909903},{angle:5.14078797860148,y:.7055887160355012,radius:26.87224049136937,scale:6.530469860943438},{angle:5.426387310746007,y:-0.10023506596212207,radius:27.103900924880122,scale:7.254446540731903},{angle:5.711986642890532,y:-0.1021096086372289,radius:29.108105512332898,scale:6.204701748885452},{angle:5.99758597503506,y:-0.3035672162395442,radius:29.775077812452324,scale:7.258549712172974}];(0,s.e)({Group:S.Z,PlaneGeometry:W._,InstancedBufferAttribute:X.l,VideoTexture:Y.f,InstancedMesh:Z.S});var ai={amount:j().number,radius:j().number,spread:j().number,bendAmount:j().number,imageScale:j().number,imageRotation:j().number,opacity:j().number,atlasDimensions:j().shape({frameWidth:j().number,frameHeight:j().number,textureWidth:j().number,textureHeight:j().number,cols:j().number,rows:j().number})},aj=function(a){var b=arguments.length>1&& void 0!==arguments[1]?arguments[1]:9;return{row:Math.floor(a/b),col:a%b}},ak={"ring-right":[[0,0],[0,1],[1,1],[2,1],[0,2],[1,2],[2,2],[1,3],[0,4]]},al=2*Math.PI/ah.length,am=(0,k.forwardRef)(function(a,b){var c=a.amount,g=a.radius,i=a.spread,j=a.opacity,l=a.atlasDimensions,m=a.imageRotation,n=a.bendAmount,o=a.introAnim,p=a.imageScale,q=a.custom,r=a.variants,t=a.transitionState,u=(0,f.Z)(a,["amount","radius","spread","opacity","atlasDimensions","imageRotation","bendAmount","introAnim","imageScale","custom","variants","transitionState"]),v=(0,k.useRef)(),w=(0,k.useRef)(),x=l.frameWidth,y=l.frameHeight,z=l.textureWidth,A=l.rows,B=l.cols,C=(0,k.useMemo)(function(){for(var a=new $.L(ah[0].radius,0,0),b=new _.T,c=[],d=0;d<ah.length;d++){var e=ah[d];a.theta=e.angle,a.radius=e.radius,a.y=e.y,b.position.setFromCylindrical(a),b.lookAt(0,a.y,0),b.rotateX(Math.PI),b.updateMatrix();var f=void 0;if(ak[t]){var g=ak[t];f=[d/ah.length].concat((0,T.Z)(g[d%g.length]))}else{var h=aj(d%(A*B),B),i=h.row,j=h.col;f=[d/ah.length,j,i]}var k={position:b.position.toArray(),rotation:b.rotation.toArray().slice(0,3),scale:e.scale,color:f};c.push(k)}return c},[A,B,t]),D="ring-fullscreen"===t,E=(0,k.useRef)(0);(0,k.useEffect)(function(){D&&(E.current=Math.ceil(w.current.rotation.y/al)*al)},[D]),(0,s.x)(function(a,b){var c=a.clock;if(v.current.uniforms.time.value=c.elapsedTime,D){w.current.rotation.y=aa.lerp(w.current.rotation.y,E.current,.03);return}w.current.rotation.y-=.04*b});var F=(0,U.G)((0,O.Z)(Q().mark(function a(){var b;return Q().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,new Promise(function(a,b){try{var c=document.createElement("video");c.src="textures/stock_ed_people_cc_v6.mp4",c.crossOrigin="Anonymous",c.loop=!0,c.muted=!0,c.autoplay=!0,c.playsInl
1ine=!0,c.oncanplaythrough=function(){a(c)}}catch(d){b(d)}});case 2:return b=a.sent,a.abrupt("return",b);case 4:case"end":return a.stop()}},a)})));return(0,k.useEffect)(function(){F.play()},[F]),(0,k.useEffect)(function(){q&&(v.current.depthWrite=!0),v.current.needsUpdate=!0},[q]),(0,h.jsx)("group",(0,e.Z)((0,d.Z)({ref:b,rotation:[Math.PI/2,Math.PI,0]},u),{children:(0,h.jsxs)(V.EJ,{ref:w,children:[(0,h.jsx)("planeGeometry",{args:[1,-0.667,6,6]}),(0,h.jsx)(R.E.imageRingMaterial,{animate:{opacity:j,introAnim:o},transition:{type:"tween",duration:2,ease:"easeInOut"},onAnimationComplete:function(){v.current.depthWrite=q},side:M.ehD,ref:v,radiusSpread:i,bendAmount:n,imageScale:p,radius:g,amount:c,baseSpeed:.05,imageRotation:m,atlasDimensions:[z/x,z/y,A,B],fog:!0,transparent:!0,dithering:!0,depthWrite:!1,variants:r,custom:q,extensions:{derivatives:!0},encoding:M.knz,children:(0,h.jsx)("videoTexture",{attach:"videoGrid",args:[F],encoding:M.knz})},ag.key),C.map(function(a,b){return(0,h.jsx)(V.K4,(0,d.Z)({},a),b)})]})}))});am.displayName="ImageRing",am.propTypes=ai,am.defaultProps={amount:6,radius:10,spread:6,bendAmount:.8,imageRotation:0,imageScale:0,opacity:1,atlasDimensions:{frameWidth:682.66,frameHeight:384,textureWidth:2048,textureHeight:2048,cols:3,rows:5}};var an=am,ao=c(14924),ap=c(11163),aq=c(77854),ar=c(94184),as=c.n(ar),at=c(68080),au=c(44098),av=c.n(au);(0,s.e)({Group:S.Z});var aw={radius:j().number,occlude:j().bool,visible:j().bool,angleRange:j().number,actionsArray:j().array},ax=(0,k.forwardRef)(function(a,b){var c=a.label,g=a.action,i=a.show,j=a.index,l=(0,f.Z)(a,["label","action","show","index"]),m=(0,ap.useRouter)(),n=(0,k.useRef)(),o=(0,k.useRef)(),p=(0,at.C)(function(a){return a.activeHomeScrollSection}),q=as()(av().ActionRing,(0,ao.Z)({},"".concat(av().hidden),!i));return(0,h.jsx)("group",(0,e.Z)((0,d.Z)({ref:n},l),{children:(0,h.jsx)(aq.V,{className:q,sprite:!0,center:!0,portal:{current:p},style:{transitionDelay:"".concat(i?.15*j+2:0,"s")},children:(0,h.jsx)("button",{ref:b,title:"Go to ".concat(c),onClick:function(){return m.push(g.fullSlug)},children:(0,h.jsxs)("div",{ref:o,className:av().button,children:[(0,h.jsx)("span",{className:av().square}),(0,h.jsx)("span",{className:av().spacing}),(0,h.jsx)("span",{className:av().label,children:c.toUpperCase()})]})})})}))});ax.displayName="ActionMarker";var ay=(0,k.forwardRef)(function(a,b){var c=a.radius,g=a.angleRange,i=a.occlude,j=a.actionsArray,l=a.show,m=(0,f.Z)(a,["radius","angleRange","occlude","actionsArray","show"]),n=(0,k.useRef)([]),o=(0,k.useMemo)(function(){return j.map(function(a,b){var d=2*Math.PI*g/j.length*b;return(0,h.jsx)(ax,{position:[Math.sin(d)*c,0,Math.cos(d)*c],label:a.name,index:b,occlude:i,action:a,show:l,ref:function(a){return n.current[b]=a}},b)})},[l,c,g,i,j]);return(0,h.jsx)("group",(0,e.Z)((0,d.Z)({ref:b,rotation:[Math.PI/2,0,0]},m),{children:o}))});ay.displayName="ActionRing",ay.propTypes=aw,ay.defaultProps={radius:20,visible:!1,occlude:!1,angleRange:.75};var az=ay,aA=c(86586);(0,s.e)({Group:S.Z});var aB={transitionState:j().oneOf(t.P),actions:j().array},aC=["initial","whoweare","careers","front-ring","ring-left","ring-right","ring-fullscreen","side-right-ring"],aD=["careers","ring-left","ring-right","ring-fullscreen"],aE=["actions","side-right-actions"],aF=(0,k.forwardRef)(function(a,b){var c=a.transitionState,g=a.actions,i=(0,f.Z)(a,["transitionState","actions"]),j=(0,k.useRef)(),m=(0,k.useRef)(),n=(0,k.useRef)(),o=(0,l._)(),p=(0,k.useRef)("default"),q=(0,k.useState)(!1),r=q[0],s=q[1],t=(0,u.Z)(function(a){return a.performanceTier}),v=(0,z.Z)(function(a){return a.windowSize}),w=(0,k.useState)(20),x=w[0],y=w[1],A=(0,k.useState)(128),B=A[0],C=A[1],D=(0,k.useState)(.5),E=D[0],F=D[1],G=(0,k.useState)(-2.3),H=G[0],I=G[1];return(0,k.useEffect)(function(){var a=v.width/v.height;F(a>1.6?.7:.5),I(a>1.6?-1.5:-2.3)},[v]),(0,k.useEffect)(function(){t<3&&(y(10),C(64))},[t]),(0,k.useEffect)(function(){var a,b=aD.includes(p.current),d=aD.includes(c);return(a=(0,O.Z)(Q().mark(function a(){return Q().wrap(function(a){for(;;
1)switch(a.prev=a.next){case 0:if(!(!(!d&&!b)&&(!d||!b))){a.next=7;break}return a.next=3,o.start("hidden",{type:"tween",duration:1});case 3:s(d),o.start("visible",d?{type:"tween",duration:1,ease:"easeOut"}:null),a.next=8;break;case 7:o.start("visible");case 8:p.current=c;case 9:case"end":return a.stop()}},a)})),function(){return a.apply(this,arguments)})(),function(){o.stop()}},[c]),(0,h.jsx)(R.E.group,{initial:"hidden",animate:o,transition:{type:"tween",duration:2,ease:"easeInOut"},position:r?[0,200,150]:[0,5,-11],ref:b,children:(0,h.jsxs)("group",(0,e.Z)((0,d.Z)({ref:j,rotation:r?[0,Math.PI/2,0]:[-Math.PI/2-.2,Math.PI+.2,0],scale:4.3},i),{children:[(0,h.jsx)(k.Suspense,{fallback:null,children:(0,h.jsx)(an,{ref:m,radius:25,spread:5,amount:22,bendAmount:r?1.8:1.5,imageRotation:r?Math.PI/2:0,imageScale:r?1.8:1.2,transitionState:c,custom:aC.includes(c),variants:{visible:function(a){return{opacity:a?1:0,introAnim:a?0:1,transition:{duration:.5,introAnim:{type:"tween",ease:"linear",duration:2}}}},hidden:{opacity:0,introAnim:0,transition:{duration:.5,introAnim:{type:"tween",ease:"linear",duration:2}}}}})}),(0,h.jsx)(az,{ref:n,angleRange:E,radius:24.3,actionsArray:g,rotation:[-Math.PI/2,H,0],show:aE.includes(c)}),(0,h.jsx)(aA.Z,{tubeLayers:x,tubeSegments:B,scale:.3,radius:80,spread:2,variants:{visible:{opacity:1},hidden:{opacity:0}}})]}))})});aF.displayName="CityRing",aF.propTypes=aB,aF.defaultProps={transitionState:"default"};var aG=aF,aH=c(90034),aI=c(40872),aJ=c(85769),aK=c(66997),aL=c(3921),aM=c(26120);(0,s.e)({MeshStandardMaterial:aK.W,PlaneGeometry:W._,Mesh:aL.K});var aN=af().generate(),aO={positions:j().array},aP=(0,k.forwardRef)(function(a,b){var c=(0,aI.Z)({},a),f=(0,aJ.m)("/textures/Water_001_NORM.jpg"),g=(0,k.useRef)(),i=(0,k.useRef)();return f.wrapS=M.rpg,f.wrapT=M.rpg,f.needsUpdate=!0,(0,s.x)(function(a){var b=a.clock;i.current&&i.current.u_waterOffset&&(i.current.u_waterOffset.value.x=.001*b.elapsedTime,i.current.u_waterOffset.value.y=-(2e-4*b.elapsedTime)),g.current.normalScale.setScalar(.5+(.5+Math.sin(.2*b.elapsedTime)/2))}),(0,h.jsxs)("mesh",(0,e.Z)((0,d.Z)({rotation:[-Math.PI/2,0,0],scale:500,ref:b},c),{children:[(0,h.jsx)("planeGeometry",{args:[1,1,1,1]}),(0,h.jsx)("meshStandardMaterial",{ref:g,metalness:1,roughness:.2,envMapIntensity:.5,normalMap:f,normalScale:[1,1],lights:!0,fog:!0,onBeforeCompile:function(a){return a.uniforms.u_waterOffset={value:new aM.F(0,0)},a.uniforms.u_normalMapRepeat={value:new aM.F(10,10)},i.current=a.uniforms,a.fragmentShader=a.fragmentShader.replace("#include <common>","\n #include <common>\n uniform vec2 u_normalMapRepeat;\n uniform vec2 u_waterOffset;\n "),a.fragmentShader=a.fragmentShader.replace("#include <normal_fragment_maps>","\n #ifdef OBJECTSPACE_NORMALMAP\n normal = texture2D( normalMap, (vUv * u_normalMapRepeat) + u_waterOffset ).xyz * 2.0 - 1.0;\n #ifdef FLIP_SIDED\n normal = - normal;\n #endif\n #ifdef DOUBLE_SIDED\n normal = normal * faceDirection;\n #endif\n normal = normalize( normalMatrix * normal );\n #elif defined( TANGENTSPACE_NORMALMAP )\n vec3 mapN = texture2D( normalMap, (vUv * u_normalMapRepeat) + u_waterOffset ).xyz * 2.0 - 1.0;\n mapN.xy *= normalScale;\n #ifdef USE_TANGENT\n normal = normalize( vTBN * mapN );\n #else\n normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n #endif\n #elif defined( USE_BUMPMAP )\n normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n #endif\n "),a.fragmentShader=a.fragmentShader.replace("#include <dithering_fragment>","\n #include <dithering_fragment>\n float circ = smoothstep(0.1, .5, distance(vUv, vec2(0.5)));\n\n #ifdef USE_FOG\n gl_FragColor.rgb = mix(gl_FragColor.rgb, fogColor, circ);\n #else\n gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(0.), circ);\n #endif\n "),a}},aN)]}))});aP.displayName="Water",aP.propTypes=aO,aP.defaultProps={positions:[]};var aQ=aP,aR=c(91293),aS=c(53973),aT=c(63857),aU=c(6493),aV=c(42105),aW=c(43827),aX=c(17607),aY=c(51438),aZ=c(52951),a$=function(){function a(b){(0,aY.Z)(this,a),this.name="EXT_mesh_gpu_instancing",this.parser=b}return(0,aZ.Z)(a,[{key:"createNodeMesh",value:function(a){var b=this,c=function(a){g.push(b.parser.getDependency("accessor",f[a]).then(function(b){return h[a]=b,h[a]}))},d=this,e=this.parser.json.nodes[a];if(!e.extensions||!e.extensions[this.name]|| void 0===e.mesh)return null;var f=e.extensions[this.name].attributes,g=[],h={};for(var i in f)c(i);return g.length<1?null:(g.push(this.parser.createNodeMesh(a)),Promise.all(g).then(function(a){var b=a.pop(),c=b.isGroup?b.children:[b],e=a[0].c
1ount,f=[],g=!0,i=!1,j=void 0;try{for(var k,l=c[Symbol.iterator]();!(g=(k=l.next()).done);g=!0){for(var m=k.value,n=m.matrix.clone(),o=m.position.clone().set(0,0,0),p=m.quaternion.clone().set(0,0,0,1),q=m.scale.clone().set(1,1,1),r=new Z.S(m.geometry,m.material,e),s=0;s<e;s++)h.TRANSLATION&&o.fromBufferAttribute(h.TRANSLATION,s),h.ROTATION&&p.fromBufferAttribute(h.ROTATION,s),h.SCALE&&q.fromBufferAttribute(h.SCALE,s),r.setMatrixAt(s,n.compose(o,p,q));for(var t in h)"TRANSLATION"!==t&&"ROTATION"!==t&&"SCALE"!==t&&m.geometry.setAttribute(t,h[t]);_.T.prototype.copy.call(r,m),r.frustumCulled=!1,d.parser.assignFinalMaterial(r),f.push(r)}}catch(u){i=!0,j=u}finally{try{g||null==l.return||l.return()}finally{if(i)throw j}}if(b.isGroup){for(;b.children.length>0;)b.remove(b.children[0]);var v=!0,w=!1,x=void 0;try{for(var y,z=f[Symbol.iterator]();!(v=(y=z.next()).done);v=!0){var A=y.value;b.add(A)}}catch(B){w=!0,x=B}finally{try{v||null==z.return||z.return()}finally{if(w)throw x}}return b}return f[0]}))}}]),a}();function a_(){return function(a){a.register(function(a){return new a$(a)})}}function a0(a){var b=(0,s.z)(aX.E,a,a_());return(0,e.Z)((0,d.Z)({},b),{path:a})}function a1(a){var b=a.floorColor,c=a.toneMapped,g=(0,f.Z)(a,["floorColor","toneMapped"]),i=(0,k.useRef)(),j=(0,k.useRef)(),l=(0,k.useRef)(),m=a0("models/buildings_nodiffuse_v6_buildings.glb"),n=m.scene,o=m.materials,p=(0,aS.L)("models/buildings_nodiffuse_v4_train.glb"),q=p.scene,r=p.materials,s=p.animations,t=(0,aT.v)(s,i).actions;return(0,k.useEffect)(function(){var a=function(a){Object.keys(a).forEach(function(b){a[b].toneMapped=c,a[b].userData.emissiveIntensity||(a[b].userData.emissiveIntensity=a[b].emissiveIntensity),a[b].emissiveIntensity=5*a[b].userData.emissiveIntensity})};a(o),a(r)},[c,b]),(0,k.useEffect)(function(){Object.keys(t).forEach(function(a){t[a].timeScale=.5,t[a].play()})},[t]),(0,h.jsxs)("group",(0,e.Z)((0,d.Z)({ref:i},g),{dispose:null,children:[(0,h.jsx)(aU.xu,{ref:j,position:[30,70,180],scale:10,visible:!1}),(0,h.jsx)(aU.xu,{ref:l,position:[0,55,140],scale:10,visible:!1}),(0,h.jsx)("group",{position:[89.57,62.08,-66.28],children:(0,h.jsx)("spotLight",{intensity:6e5,angle:.79,penumbra:.68,decay:2,color:"#02bdff",rotation:[-Math.PI/2,0,0],target:j.current})}),(0,h.jsx)("group",{position:[-138.84,137.48,2.35],children:(0,h.jsx)("spotLight",{intensity:7e6,angle:.68,penumbra:.5,decay:2.4,color:"#02bdff",target:l.current})}),(0,h.jsx)("primitive",{object:n}),(0,h.jsx)("primitive",{object:q})]}))}a0.preload=function(a){var b=s.z.preload(aX.E,a,a_());return(0,e.Z)((0,d.Z)({},b),{path:a})},(0,s.e)({Group:S.Z,SpotLight:aV.P,BoxBufferGeometry:aW.n});var a2={transitionState:j().oneOf(t.P),bloomIntensity:j().number,emissiveIntensity:j().number,backgroundColor:j().string,actions:j().array},a3=function(a){var b=a.transitionState,c=a.backgroundColor,d=a.actions,e=(0,u.Z)(function(a){return a.performanceTier});return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(N,{url:"textures/City_HDRI_002.png",async:!0}),(0,h.jsx)(K.q,{all:!0}),e>1&&(0,h.jsx)(aH.Z,{multisampling:e<4?aR._w.lowRes:aR._w.highRes}),(0,h.jsx)(a1,{toneMapped:1===e,floorColor:c,position:[-20,-50,-15]}),(0,h.jsx)(aQ,{position:[0,-51,80]}),(0,h.jsx)(aG,{transitionState:b,position:[5,0,80],actions:d})]})};a3.propTypes=a2,a3.defaultProps={transitionState:"default",bloomIntensity:5,emissiveIntensity:2.5};var a4=a3,a5={className:j().string,transitionState:j().oneOf(t.P),fogColor:j().string,emissiveIntensity:j().number,controls:j().bool,onControlsChange:j().func,fogNear:j().number,fogFar:j().number,bloomIntensity:j().number,isActive:j().bool,stats:j().bool,actions:j().array},a6={visible:{opacity:1,transition:{duration:1.5}},hidden:{opacity:0,transition:{duration:.8,when:"afterChildren"}}},a7=function(a){var b=a.className,c=a.fogColor,i=a.emissiveIntensity,j=a.transitionState,q=a.controls,r=a.onControlsChange,s=a.fogNear,t=a.fogFar,u=a.bloomIntensity,v=a.isActive,w=a.stats,x=a.actions,y=(0,f.Z)(a,["className","fogColor","emissiveIntensity","transitionState","controls","onControlsChange","fogNear","fogFar","bloomIntensity","isActive","stats","actions"]),z=(0,l._)(),A=(0,k.useState)(!1),B=A[0],C=A[1];(0,k.useEffect)(function(){B?z.start("visible"):z.start("hidden")},[B,z]);var D=(0,g.Z)((0,m.oO)(),2),E=D[0],F=D[1];return(0,k.useEffect)(function(){E||setTimeout(F,1e3)},[E]),(0,h.jsx)(n.E.div,(0,e.Z)((0,d.Z)({className:b},y),{children:(0,h.jsxs)(p.Z,{controls:q,controlsRotate:!1,onControlsChange:r,loadedCallback:C,initial:"hidden",animate:z,exit:"hidden",variants:a6,canvasProps:{frameloop:v?"always":"demand"},children:[w&&(0,h.jsx)(o.j,{}),(0,h.jsx)(J,{transitionState:j,fogColor:c,backgroundColor:c,fogNear:s,fogFar:t},"sync"),(0,h.jsx)(a4,{transitionState:j,emissiveIntensity:i,backgroundColor:c,bloomIntensity:u,actions:x,async:!0},"async")]})}))};a7.propTypes=a5,a7.defaultProps={className:"",fogColor:"#131747",emissiveIntensity:2.5,transitionState:"default",controls:!1,fogNear:700,fogFar:900,bloomIntensity:5,isActive:!0,stats:!1,actions:[{"_id":"dfe72935-138f-425c-b350-1e2134b0a5cd",fullSlug:"/actions/transform",name:"Transform",slug:"transform"},{"_id":"8b9ce826-b681-4aa9-ae3b-a60aeab0bdc3",fullSlug:"/actions/advise",name:"Advise",slug:"advise"},{"_id":"981ed878-1207-460c-94a0-4674e44ee834",fullSlug:"/actions/construct",name:"Construct",slug:"construct"},{"_id":"c7f0a035-6424-49d3-8b85-0a4b83607650",fullSlug:"/actions/design",name:"Design",slug:"design"},{"_id":"113dec02-5643-411e-8a5b-550c62123259",fullSlug:"/actions/finance",name:"Finance",slug:"finance"},{"_id":"9b918f7a-4c43-4e39-ae2d-3fd87ee1d8aa",fullSlug:"/actions/equip",name:"Equip",slug:"equip"},{"_id":"d6cd840f-2569-4b7d-b97e-2ab0b1e51d5f",fullSlug:"/actions/operate",name:"Operate",slug:"operate"},{"_id":"852aadeb-bd1b-4ca4-a5b1-78c258f0741e",fullSlug:"/actions/manage",name:"Manage",slug:"manage"},{"_id":"d9adb1c3-300a-49a3-aeb7-db9ec683e168",fullSlug:"/actions/digitize",name:"Digitize",slug:"digitize"}]};var a8=a7},86586:function(a,b,c){"use strict";c.d(b,{Z:function(){return G}});var d=c(82670),e=c(26042),f=c(69396),g=c(99534),h=c(29815),i=c(85893),j=c(67294),k=c(3921),l=c(17282),m=c(69542),n=c(11052),o=c(97163),p=c(2848),q=c(3811),r=c(27006),s=c(2534),t=c(45697),u=c.n(t),v=c(56831),w=c(85769),x=c(33234),y=c(99137),z=c(7597),A=c.n(z),B=c(15593),C=(0,y.g)({time:0,radius:24,spread:2,opacity:0,particleTexture:new B.x,noiseTexture:new B.x,noiseMult:0,radiusSpread:0},"\n attribute mat4 instanceMatrix;\n attribute vec3 instancePosition;\n attribute float instanceRotation;\n attribute vec3 color;\n attribute vec3 encodings;\n\n uniform float time;\n uniform float noiseMult;\n uniform float radiusSpread;\n uniform sampler2D noiseTexture;\n\n varying float vProgress;\n varying vec3 vColor;\n varying vec2 vUv;\n varying float vNoiseMult;\n\n vec3 sampledNoise(vec3 pos) {\n float noise = texture2D(noiseTexture, mod(pos.xy, 1.)).r * 2. - .5;\n float noisee = texture2D(noiseTexture, mod(pos.xy + .15, 1.)).r * 2. - .5;\n float noiseee = texture2D(noiseTexture, mod(pos.xy + .25, 1.)).r * 2. - .5;\n vec3 c = vec3( noise, -noisee, noiseee );\n return c;\n }\n\n void main (void) {\n vColor = color;\n vUv = uv;\n vProgress = 0.5 * sin(time * .5 + encodings.x * 20.) + 0.5; // fade based on time\n vNoiseMult = encodings.z;\n\n float uNoiseVal = 1. + noiseMult;
1\n vec3 instPos = vec3(sin(instanceRotation) * radiusSpread, cos(instanceRotation) * radiusSpread, 1.);\n vec3 noise = 10. * sampledNoise(instancePosition + time * 0.01) * vNoiseMult * vec3(uNoiseVal, uNoiseVal, 1.0);\n\n float modelScalingFactor = sqrt(\n modelViewMatrix[0][0] * modelViewMatrix[0][0] + modelViewMatrix[0][1] * modelViewMatrix[0][1] + modelViewMatrix[0][2] * modelViewMatrix[0][2]\n );\n float scalingFactor = sqrt(\n instanceMatrix[0][0] * instanceMatrix[0][0] + instanceMatrix[0][1] * instanceMatrix[0][1] + instanceMatrix[0][2] * instanceMatrix[0][2]\n );\n vec4 vert = vec4((position * scalingFactor) + noise + instPos, 1.0);\n\n // vec4 mvPosition = modelViewMatrix * instanceMatrix * vec4( position, 1. );\n vec4 mvPosition = modelViewMatrix * instanceMatrix * vec4( 0, 0, 0, 1. );\n\n mvPosition.xyz += vert.xyz * modelScalingFactor * 1.;\n\n gl_Position = projectionMatrix * mvPosition;\n }\n","\n varying float vProgress;\n varying vec3 vColor;\n varying vec2 vUv;\n varying float vNoiseMult;\n varying float vBlend;\n\n uniform float time;\n uniform float opacity;\n uniform sampler2D particleTexture;\n\n void main (void) {\n float alpha = texture2D(particleTexture, vUv).r;\n float hdrMult = max(6. * (1.0 - vNoiseMult), 1.);\n\n gl_FragColor = vec4(vColor, alpha * vProgress * opacity);\n\n gl_FragColor = vec4(gl_FragColor.rgb * hdrMult * gl_FragColor.a, gl_FragColor.a);\n }\n",function(a){a.extensions.derivatives=!0});C.key=A().generate(),(0,s.e)({ParticleRingMaterial:C}),(0,s.e)({Mesh:k.K});var D={tubeLayers:u().number,tubeSegments:u().number,radius:u().number,spread:u().number,radiusSpread:u().oneOfType([u().number,u().instanceOf(x.H)]),opacity:u().number},E=[{size:1,color:new l.I("#ffffff")},{size:1.5,color:new l.I("#ffffff")},{size:2,color:new l.I("#ffffff")},{size:4,color:new l.I("#ff00ff").add(new l.I("#005555"))},{size:4,color:new l.I("#00ffff").add(new l.I("#0000ff"))},{size:5,color:new l.I("#00ffff").add(new l.I("#0000ff"))}],F=function(a){var b=a.tubeLayers,c=a.tubeSegments,k=a.radius,l=a.spread,t=a.radiusSpread,u=a.opacity,y=a.variants,z=(0,g.Z)(a,["tubeLayers","tubeSegments","radius","spread","radiusSpread","opacity","variants"]),A=(0,j.useRef)(),B=(0,j.useRef)(),D=(0,w.m)("/textures/glow_particle.png"),F=(0,w.m)("/textures/noiseTexture.png");(0,s.x)(function(a){var b=a.clock;A.current.uniforms.time.value=b.elapsedTime}),(0,j.useEffect)(function(){if((0,d.Z)(t,x.H))return A.current.uniforms.radiusSpread.value=t.get(),t.onChange(function(a){A.current.uniforms.radiusSpread.value=a,A.current.uniforms.noiseMult.value=.1*a});A.current.uniforms.radiusSpread.value=t},[t]);var G=(0,j.useMemo)(function(){var a=[],d=[],e=[],f=[],g=[],i=2*Math.PI,j=0;m.seededRandom(133337);for(var r=function(){return 2*m.seededRandom()-1},s=new n.T,t=0;t<b;t++)for(var u=0;u<c;u++){var v,w,x=E[Math.floor(E.length*m.seededRandom())];a.push(r(),m.seededRandom(),.05+(.5+Math.cos(i*t/b)/2)*.95);var y=u/c*i+r()*i*.01,z=k+l*(t/b);s.position.set(z*Math.sin(i*y),z*Math.cos(i*y),0),s.scale.setScalar(x.size),s.updateMatrix();var A=s.matrix.toArray();(v=d).push.apply(v,(0,h.Z)(A));var B=s.position.toArray();(w=e).push.apply(w,(0,h.Z)(B)),f.push(i*y),g.push(x.color.r,x.color.g,x.color.b),j++}var C=new o.L;return C.copy(new p.B(.5,.5)),C.setAttribute("instanceMatrix",new q.l(new Float32Array(d),16)),C.setAttribute("instancePosition",new q.l(new Float32Array(e),3)),C.setAttribute("instanceRotation",new q.l(new Float32Array(f),1)),C.setAttribute("color",new q.l(new Float32Array(g),3)),C.setAttribute("encodings",new q.l(new Float32Array(a),3)),C.instanceCount=j,C},[c,b,k,l]);return(0,i.jsx)(v.E.mesh,(0,f.Z)((0,e.Z)({ref:B,geometry:G,frustumCulled:!1},z),{renderOrder:2,children:(0,i.jsx)(v.E.particleRingMaterial,{ref:A,animate:{opacity:u},radius:k,transparent:!0,variants:y,particleTexture:D,noiseTexture:F,toneMapped:!1,depthTest:!0,depthWrite:!1,blending:r.WMw,side:r.ehD,extensions:{derivatives:!0}},C.key)}))};F.propTypes=D,F.defaultProps={tubeLayers:20,tubeSegments:128,radius:24,spread:2,radiusSpread:0,opacity:1};var G=F},7386:function(a,b,c){"use strict";c.d(b,{P:function(){return d}});var d=["front-ring","front-none","ring-left","ring-right","ring-fullscreen","side-right-actions","side-right-ring","default","initial","careers","actions","whoweare","projects"]},44098:function(a){a.exports={SplitParent:"ActionRing_SplitParent__RN22q",SplitParentFade:"ActionRing_SplitParentFade__DXooz",SplitChild:"ActionRing_SplitChild__cH00G",SplitChildFade:"ActionRing_SplitChildFade__j3Me7",unknown__pt__mark__blue:"ActionRing_unknown__pt__mark__blue__YfJZb",ActionRing:"ActionRing_ActionRing__1lrXc",hidden:"ActionRing_hidden__snmSe",square:"ActionRing_square__qnDKH",label:"ActionRing_label__pkTNS",button:"ActionRing_button__mypTN",spacing:"ActionRing_spacing__O9b8V",wrappedUnderline:"ActionRing_wrappedUnderline__ExVIa"}}}])
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.