1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[928],{172:function(e,t,r){"use strict";r.d(t,{p:function(){return u}});var l=r(5893),n=r(7294),a=r(2194);let o=e=>{let t=e.replace(/(?:-|_)(\w)/g,(e,t)=>t?t.toUpperCase():"");return t[0].toUpperCase()+t.slice(1)},i=a.N?()=>null:({slice:e})=>{let t="slice_type"in e?e.slice_type:e.type;return n.useEffect(()=>{console.warn(`[SliceZone] Could not find a component for Slice type "${t}"`,e)},[e,t]),(0,l.jsxs)("section",{"data-slice-zone-todo-component":"","data-slice-type":t,children:["Could not find a component for Slice type â",t,"â"]})},u=({slices:e=[],components:t={},resolver:r,defaultComponent:a=i,context:u={}})=>{let s=n.useMemo(()=>e.map((n,i)=>{let s="slice_type"in n?n.slice_type:n.type,d=t[s]||a;if(r){let e=r({slice:n,sliceName:o(s),i:i});e&&(d=e)}let c="id"in n&&n.id?n.id:`${i}-${JSON.stringify(n)}`;return(0,l.jsx)(d,{slice:n,index:i,slices:e,context:u},c)}),[t,u,a,e,r]);return(0,l.jsx)(l.Fragment,{children:s})}},2194:function(e,t,r){"use strict";r.d(t,{N:function(){return l}}),void 0===r(3454)&&(globalThis.process={env:{}});let l=!0},5677:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{noSSR:function(){return o},default:function(){return i}});let l=r(260),n=(r(7294),l._(r(8976)));function a(e){return{default:(null==e?void 0:e.default)||e}}function o(e,t){return delete t.webpack,delete t.modules,e(t)}function i(e,t){let r=n.default,l={loading:e=>{let{error:t,isLoading:r,pastDelay:l}=e;return null}};e instanceof Promise?l.loader=()=>e:"function"==typeof e?l.loader=e:"object"==typeof e&&(l={...l,...e}),l={...l,...t};let i=l.loader,u=()=>null!=i?i().then(a):Promise.resolve(a(()=>null));return(l.loadableGenerated&&(l={...l,...l.loadableGenerated},delete l.loadableGenerated),"boolean"!=typeof l.ssr||l.ssr)?r({...l,loader:u}):(delete l.webpack,delete l.modules,o(r,l))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2254:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"LoadableContext",{enumerable:!0,get:function(){return a}});let l=r(260),n=l._(r(7294)),a=n.default.createContext(null)},8976:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return p}});let l=r(260),n=l._(r(7294)),a=r(2254),o=[],i=[],u=!1;function s(e){let t=e(),r={loading:!0,loaded:null,error:null};return r.promise=t.then(e=>(r.loading=!1,r.loaded=e,e)).catch(e=>{throw r.loading=!1,r.error=e,e}),r}class d{promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e},this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}}function c(e){return function(e,t){let r=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},t),l=null;function o(){if(!l){let t=new d(e,r);l={getCurrentValue:t.getCurrentValue.bind(t),subscribe:t.subscribe.bind(t),retry:t.retry.bind(t),promise:t.promise.bind(t)}}return l.promise()}if(!u){let e=r.webpack?r.webpack():r.modules;e&&i.push(t=>{for(let r of e)if(t.includes(r))return o()})}function s(e,t){!function(){o();let e=n.default.useContext(a.LoadableContext);
1e&&Array.isArray(r.modules)&&r.modules.forEach(t=>{e(t)})}();let i=n.default.useSyncExternalStore(l.subscribe,l.getCurrentValue,l.getCurrentValue);return n.default.useImperativeHandle(t,()=>({retry:l.retry}),[]),n.default.useMemo(()=>{var t;return i.loading||i.error?n.default.createElement(r.loading,{isLoading:i.loading,pastDelay:i.pastDelay,timedOut:i.timedOut,error:i.error,retry:l.retry}):i.loaded?n.default.createElement((t=i.loaded)&&t.default?t.default:t,e):null},[e,i])}return s.preload=()=>o(),s.displayName="LoadableComponent",n.default.forwardRef(s)}(s,e)}function f(e,t){let r=[];for(;e.length;){let l=e.pop();r.push(l(t))}return Promise.all(r).then(()=>{if(e.length)return f(e,t)})}c.preloadAll=()=>new Promise((e,t)=>{f(o).then(e,t)}),c.preloadReady=e=>(void 0===e&&(e=[]),new Promise(t=>{let r=()=>(u=!0,t());f(i,e).then(r,r)})),window.__NEXT_PRELOADREADY=c.preloadReady;let p=c},2109:function(e,t,r){"use strict";r.d(t,{w:function(){return a}});var l=r(5152),n=r.n(l);let a={about:n()(()=>r.e(623).then(r.bind(r,7623)),{loadableGenerated:{webpack:()=>[7623]}}),footer:n()(()=>r.e(71).then(r.bind(r,2071)),{loadableGenerated:{webpack:()=>[2071]}}),header:n()(()=>Promise.all([r.e(695),r.e(678),r.e(893),r.e(538)]).then(r.bind(r,6538)),{loadableGenerated:{webpack:()=>[6538]}}),hero:n()(()=>Promise.all([r.e(13),r.e(678),r.e(893),r.e(511)]).then(r.bind(r,9511)),{loadableGenerated:{webpack:()=>[9511]}}),image_text:n()(()=>Promise.all([r.e(695),r.e(512)]).then(r.bind(r,512)),{loadableGenerated:{webpack:()=>[512]}}),project_detail_gallery:n()(()=>Promise.all([r.e(13),r.e(695),r.e(678),r.e(893),r.e(87)]).then(r.bind(r,1087)),{loadableGenerated:{webpack:()=>[1087]}}),project_detail_summary:n()(()=>r.e(238).then(r.bind(r,6238)),{loadableGenerated:{webpack:()=>[6238]}}),project_gallery:n()(()=>Promise.all([r.e(695),r.e(177)]).then(r.bind(r,4177)),{loadableGenerated:{webpack:()=>[4177]}})}},8862:function(e,t,r){"use strict";var l=r(5893);let n=e=>{let{children:t,header:r,footer:n}=e;return(0,l.jsxs)("div",{className:"relative",children:[r,(0,l.jsx)("main",{children:t}),n]})};t.Z=n},5152:function(e,t,r){e.exports=r(5677)},9008:function(e,t,r){e.exports=r(2636)},493:function(e,t,r){"use strict";r.d(t,{D:function(){return a}});var l=r(6341),n=r(3241);let a=(e,t={})=>e&&(0,n.S$)(e)?(0,l.KV)(e.url,t):null},3241:function(e,t,r){"use strict";r.d(t,{S$:function(){return a},qO:function(){return n}});let l=e=>null!=e,n=e=>!!l(e)&&(1===e.length&&"text"in e[0]?!!e[0].text:!!e.length),a=e=>l(e)&&!!e.url,o=e=>l(o)&&!!e},6341:function(e,t,r){"use strict";r.d(t,{KV:function(){return n}});let l=e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),n=(e,t)=>{let r=new URL(e);for(let e in t){let n=l(e),a=t[e];void 0===a?r.searchParams.delete(n):Array.isArray(a)?r.searchParams.set(n,a.join(",")):r.searchParams.set(n,`${a}`)}let n=r.searchParams.get("s");return n&&(r.searchParams.delete("s"),r.searchParams.append("s",n)),r.toString()}}}]);
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.