1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2287],{15365:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let n=r(18903)._(r(85218)),i=r(59175),a=n.default.createContext(i.imageConfigDefault)},19763:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(57927),t),i(r(32008),t),i(r(87974),t),i(r(25673),t),i(r(71852),t),i(r(25123),t),i(r(98771),t)},21378:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return _}});let n=r(18903),i=r(24852),a=r(10),o=i._(r(85218)),l=n._(r(42463)),s=n._(r(94283)),d=r(70458),c=r(59175),u=r(15365);r(52155);let p=r(97272),f=n._(r(59722)),m=r(22665),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,i,a,o){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}let y=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:i,decoding:l,className:s,style:d,fetchPriority:c,placeholder:u,loading:p,unoptimized:f,fill:g,onLoadRef:y,onLoadingCompleteRef:v,setBlurComplete:_,setShowAltText:w,sizesInput:j,onLoad:x,onError:O,...P},S)=>{let C=(0,o.useCallback)(e=>{e&&(O&&(e.src=e.src),e.complete&&h(e,u,y,v,_,f,j))},[e,u,y,v,_,O,f,j]),E=(0,m.useMergedRef)(S,C);return(0,a.jsx)("img",{...P,...b(c),loading:p,width:i,height:n,decoding:l,"data-nimg":g?"fill":"1",className:s,style:d,sizes:r,srcSet:t,src:e,ref:E,onLoad:e=>{h(e.currentTarget,u,y,v,_,f,j)},onError:e=>{w(!0),"empty"!==u&&_(!0),O&&O(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,a.jsx)(s.default,{children:(0,a.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let _=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(p.RouterContext),n=(0,o.useContext)(u.ImageConfigContext),i=(0,o.useMemo)(()=>{let e=g||n||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:e.localPatterns}},[n]),{onLoad:l,onLoadingComplete:s}=e,m=(0,o.useRef)(l);(0,o.useEffect)(()=>{m.current=l},[l]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[b,_]=(0,o.useState)(!1),[w,j]=(0,o.useState)(!1),{props:x,meta:O}=(0,d.getImgProps)(e,{defaultLoader:f.default,imgConf:i,blurComplete:b,showAltText:w});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y,{...x,unoptimized:O.unoptimized,placeholder:O.placeholder,fill:O.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:_,setShowAltText:j,sizesInput:e.sizes,ref:t}),O.preload?(0,a.jsx)(v,{isAppRouter:!r,imgAttributes:x}):null]})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esMo
1dule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},22162:(e,t,r)=>{r.d(t,{A:()=>n});let n=function(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=function e(t){var r,n,i="";if("string"==typeof t||"number"==typeof t)i+=t;else if("object"==typeof t)if(Array.isArray(t)){var a=t.length;for(r=0;r<a;r++)t[r]&&(n=e(t[r]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}(e))&&(n&&(n+=" "),n+=t);return n}},25123:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.spaceToRemove=t.spaceToBr=t.pcOnlyBr=t.spOnlyBr=t.lineToBr=t.lineToBlock=void 0,t.lineToBlock=e=>e.split("\n").map((e,t)=>`<span>${e}</span>`).join(""),t.lineToBr=e=>e.split("\n").map((e,t)=>`${e}`).join("<br />"),t.spOnlyBr=e=>e.split(" ").map((e,t)=>`${e}`).join('<br class="sp-only" />'),t.pcOnlyBr=e=>e.split(" ").map((e,t)=>`${e}`).join('<br class="pc-only" />'),t.spaceToBr=e=>e.split(" ").map((e,t)=>`${e}`).join("<br />"),t.spaceToRemove=e=>e.split(" ").map((e,t)=>`${e}`).join("")},25673:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.portrait=t.landscape=t.maxScreenHeight=t.notMaxScreen=t.maxScreen=t.minScreenHeight=t.notMinScreen=t.minScreen=t.mq=void 0;let r={sm:"768px",md:"1292px",lg:"1500px",xl:"1400px"};t.mq=(e,t)=>e in r&&t<+r[e].replace("px",""),t.minScreen=e=>e in r?`@media (min-width: ${r[e]})`:`@media (min-width: ${e}px)`,t.notMinScreen=e=>e in r?`@media not all and (min-width: ${r[e]})`:`@media not all and (min-width: ${e}px)`,t.minScreenHeight=e=>e in r?`@media (min-height: ${r[e]})`:`@media (min-height: ${e}px)`,t.maxScreen=e=>e in r?`@media (max-width: ${r[e]})`:`@media (max-width: ${e}px)`,t.notMaxScreen=e=>e in r?`@media not all and (max-width: ${r[e]})`:`@media not all and (max-width: ${e}px)`,t.maxScreenHeight=e=>e in r?`@media (max-height: ${r[e]})`:`@media (max-height: ${e}px)`,t.landscape=()=>"@media screen and (orientation: landscape)",t.portrait=()=>"@media screen and (orientation: portrait)"},32008:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.markdown=void 0,t.markdown=e=>n(r(e));let r=e=>e.replace(/\[(.*?)\]\((.*?)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),n=e=>e.replace(/<code>(.*?)<\/code>/g,'<div class="code">$1</div>')},36712:(e,t)=>{function r(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findClosestQuality",{enumerable:!0,get:function(){return r}})},42116:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=r(85218),i=n.useLayoutEffect,a=n.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},57927:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.combine=t.jaKerning=t.kerning=void 0,t.kerning=e=>(0,t.jaKerning)(e).replace(/(<span.*?>.*?<\/span>)/g,function(e){return e.replace(/ã/g,'<span class="period">ã</span>').replace(/ï¼/g,'<span class="exclamation">ï¼</span>').replace(/<.*?>\d{1,4}<.*?>/g,function(e){return`<span class="num">${e}</span>`})}).replace(/ã<br>/g,'<span class="period">ã</span><br />'),t.jaKerning=e=>e.replace(/ã/g,'<span class="comma">ã</span>').replace(/ï¼/g,'<span class="colon">ï¼</span>').replace(/ã/g,'<span class="tilde">ã</span>').replace(/ã/g,'<span class="braces-left">ã</span>').replace(/ã/g,'<span class="braces-right">ã</span>').replace(/ã/g,'<span class="braces-left">ã</span>').replace(/ã/g,'<span class="braces-right">ã</span>').replace(/ï¼/g,'<span class="braces-left">ï¼</span>').replace(/ï¼/g,'<span class="braces-right">ï¼</span>'),t.combine=e=>e.replace(/\d{1,4}/g,function(e){return`<span class="combine">${e}</span>`})},59175:(e,t)=>
1{Object.defineProperty(t,"__esModule",{value:!0});var r={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return a}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let i=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},59722:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=r(36712),i=r(28448);function a({config:e,src:t,width:r,quality:a}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. 2Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,n.findClosestQuality)(a,e),l=(0,i.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}a.__next_img_default=!0;let o=a},70458:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImgProps",{enumerable:!0,get:function(){return d}}),r(52155);let n=r(28448),i=r(74099),a=r(59175),o=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:u,className:p,quality:f,width:m,height:g,fill:h=!1,style:b,overrideSrc:y,onLoad:v,onLoadingComplete:_,placeholder:w="empty",blurDataURL:j,fetchPriority:x,decoding:O="async",layout:P,objectFit:S,objectPosition:C,lazyBoundary:E,lazyRoot:$,...M},R){var z;let k,I,D,{imgConf:T,showAltText:A,blurComplete:B,defaultLoader:N}=R,q=T||a.imageConfigDefault;if("allSizes"in q)k=q;else{let e=[...q.deviceSizes,...q.imageSizes].sort((e,t)=>e-t),t=q.deviceSizes.sort((e,t)=>e-t),r=q.qualities?.sort((e,t)=>e-t);k={...q,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===N)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let L=M.loader||N;delete M.loader,delete M.srcSet;let U="__next_img_default"in L;if(U){if("custom"===k.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. 3Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=L;L=t=>{let{config:r,...n}=t;return e(n)}}if(P){"fill"===P&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[P];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[P];r&&!t&&(t=r)}let F="",W=s(m),H=s(g);if((z=e)&&"object"==typeof z&&(l(z)||void 0!==z.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(I=t.blurWidth,D=t.blurHeight,j=j||t.blurDataURL,F=t.src,!h)if(W||H){
3if(W&&!H){let e=W/t.width;H=Math.round(t.height*e)}else if(!W&&H){let e=H/t.height;W=Math.round(t.width*e)}}else W=t.width,H=t.height}let G=!d&&!c&&("lazy"===u||void 0===u);(!(e="string"==typeof e?e:F)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,G=!1),k.unoptimized&&(r=!0),U&&!k.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let X=s(f),V=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:S,objectPosition:C}:{},A?{}:{color:"transparent"},b),K=B||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:W,heightInt:H,blurWidth:I,blurHeight:D,blurDataURL:j||"",objectFit:V.objectFit})}")`:`url("${w}")`,J=o.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Q=K?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:K}:{},Y=function({config:e,src:t,unoptimized:r,width:i,quality:a,sizes:o,loader:l}){if(r){let e=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:d}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,o),c=s.length-1;return{sizes:o||"w"!==d?o:"100vw",srcSet:s.map((r,n)=>`${l({config:e,src:t,quality:a,width:r})} ${"w"===d?r:n+1}${d}`).join(", "),src:l({config:e,src:t,quality:a,width:s[c]})}}({config:k,src:e,unoptimized:r,width:W,quality:X,sizes:t,loader:L}),Z=G?"lazy":u;return{props:{...M,loading:Z,fetchPriority:x,width:W,height:H,decoding:O,className:p,style:{...V,...Q},sizes:Y.sizes,srcSet:Y.srcSet,src:y||Y.src},meta:{unoptimized:r,preload:c||d,placeholder:w,fill:h}}}},71852:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.displayTime=void 0,t.displayTime=e=>e<60?"ãã£ãä»":e<120?"ç´1åå":e<3600?"ç´"+r(Math.floor(e/60))+"åå":e<7200?"ç´1æéå":e<86400?"ç´"+r(Math.floor(e/3600))+"æéå":e<604800?"ç´"+r(Math.floor(e/86400))+"æ¥å":"ç´"+r(Math.floor(e/604800))+"é±éå";let r=e=>(e<10&&(e=""+e),e)},74099:(e,t)=>{function r({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:a}){let o=r?40*r:e,l=n?40*n:t,s=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${s?"none":"contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},87974:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shuffleRange=t.range=void 0,t.range=(e,t)=>[...Array(t-e+1)].map((t,r)=>e+r),t.shuffleRange=(e,r)=>(0,t.range)(e,r).splice(0,r-e).sort(()=>Math.random()-.5)},94283:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={default:function(){return g},defaultHead:function(){return u}};for(var i in n)Object.defineProperty(t,i,{enumerable:!0,get:n[i]});let a=r(18903),o=r(24852),l=r(10),s=o._(r(85218)),d=a._(r(42116)),c=r(80411);function u(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>
3"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}r(52155);let f=["name","httpEquiv","charSet","itemProp"];function m(e){let t,r,n,i;return e.reduce(p,[]).reverse().concat(u().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let a=!0,o=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){o=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?a=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?a=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?a=!1:n.add(r);else{let t=e.props[r],n=i[r]||new Set;("name"!==r||!o)&&n.has(t)?a=!1:(n.add(t),i[r]=n)}}}return a})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let g=function({children:e}){let t=(0,s.useContext)(c.HeadManagerContext);return(0,l.jsx)(d.default,{reduceComponentsToState:m,headManager:t,children:e})};("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)},97272:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return n}});let n=r(18903)._(r(85218)).default.createContext(null)},98771:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.capitalize=void 0,t.capitalize=e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():e}}]);
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.