PageSourceSearch

https://malbazaar.com/chunk-BJNFQC7F.js

js malbazaar.com collected 2026-10-02 00:52:14 UTC 18,003 bytes, 3 lines download raw bytes

1import{b as he,e as _e,f as be,h as Ce,j as ye,k as ve,r as we}from"./chunk-36KLGNS4.js";import{a as K}from"./chunk-KTCHNW6Z.js";import{a as ke}from"./chunk-XM2WCQRN.js";import{a as M}from"./chunk-OERLLW77.js";import{a as xe,b as o,c as Ae,f as Se,g as Te,h as Ee}from"./chunk-VJWINMTX.js";import{a as Me}from"./chunk-5ZDMYY2G.js";import{g as H,k as fe,o as ge}from"./chunk-LYGXUHPU.js";import{$ as z,Cc as pe,Eb as R,Ga as ee,K as J,La as u,Ob as N,P as g,Q as X,Qb as m,V as w,W as A,Wb as re,X as P,Xb as ae,Y as $,Ya as te,Zb as se,_ as Y,_b as le,ac as B,bc as de,cc as F,d as Q,ga as Z,ia as G,lb as S,mb as T,mc as me,nb as E,ob as ie,qa as L,qb as ne,rb as oe,sb as I,tb as a,ub as f,uc as ce,vb as y,xc as ue}from"./chunk-5IPNDEAM.js";var O=class e{coreStore=g(K);identifier=crypto.randomUUID();streamAnswer(i,t,c,d){return new Q(s=>{(async()=>{let v=JSON.stringify({body:i,message:i}),x={"Content-Type":"application/json",identifier:this.coreStore.currentUser()?.id??this.identifier};if(c&&(x["proposal-id"]=c),d&&(x.category=d),this.coreStore.isAuthenticated()){let l=await this.coreStore.getToken();l&&(x.authorization=`Bearer ${l}`,x.token=l)}try{let l=await fetch(ke.aiChatEndpoint,{method:"POST",headers:x,body:v,signal:t});if(!l.ok){s.error(new Error(`API error: ${l.status}`));return}let W=l.body.getReader(),r=new TextDecoder,n="",p="",C=h=>{if(h.startsWith("event: "))return p=h.slice(7).trim().replace(/^["']|["']$/g,""),!1;if(!h.startsWith("data: "))return!1;let _;try{let k=JSON.parse(h.slice(6));if(p==="delta")_={type:"delta",text:k.text};else if(p==="done")k.success===!1?_={type:"error",message:k.message}:_={type:"done",success:k.success};else return!1}catch{return!1}return s.next(_),_.type==="done"||_.type==="error"},V=h=>{n+=h;let _=n.split(`
2`);n=_.pop()??"";for(let k of _)if(C(k))return!0;return!1};try{for(;;){let{done:h,value:_}=await W.read();if(h){n&&C(n);break}if(V(r.decode(_,{stream:!0})))break}}catch(h){if(h.name!=="AbortError"){s.error(h);return}}s.complete()}catch(l){l.name!=="AbortError"?s.error(l):s.complete()}})().catch(v=>s.error(v))})}static \u0275fac=function(t){return new(t||e)};static \u0275prov=J({token:e,factory:e.\u0275fac})};var Ne={messages:[],streamedText:"",streamedTextBK:"",isStreaming:!1,isOpen:!1,lang:"en",config:null,welcomeShown:!1,proposalId:null,category:null},D=Ae(Ee(Ne),Te(e=>{let i=g(O),t=g(K),c=g(L),d=g(z),s,b="",v=null;function j(r){return r.replace(/<[^>]*>?/g,"").replace(/\*+/g,"").replace(/[\r\n\u2028\u2029]+/g,"").replace(/\\n
2/g,"")}function q(){x(),v=setInterval(()=>{b&&(o(e,{streamedText:j(e.streamedText()+b),streamedTextBK:e.streamedTextBK()+b}),b="")},150)}function x(){v&&(clearInterval(v),v=null),b&&(o(e,{streamedText:j(e.streamedText()+b),streamedTextBK:e.streamedTextBK()+b}),b="")}function l(r){let n=e.lang(),p=e.config();if(r==="welcomeGreeting"){let C=p?.user?.name;return n==="ar"?C?`\u0623\u0647\u0644\u0627\u064B **${C}**! \u{1F44B} `:"\u0623\u0647\u0644\u0627\u064B! \u{1F44B} ":C?`Hi **${C}**! \u{1F44B} `:"Hi! \u{1F44B} "}if(r==="welcomeBody")if(p){let C=p.insuranceType??"",V=p.totalPolicies??"";return n==="ar"?`\u0623\u0646\u0627 **AMiN**\u060C \u0645\u0633\u062A\u0634\u0627\u0631\u0643 \u0644\u0644\u062A\u0623\u0645\u064A\u0646. \u064A\u0645\u0643\u0646\u0646\u064A \u0645\u0633\u0627\u0639\u062F\u062A\u0643 \u0641\u064A \u0625\u064A\u062C\u0627\u062F \u0623\u0641\u0636\u0644 \u062E\u0637\u0629 ${C} \u0645\u0646 \u0628\u064A\u0646 ${V} \u062E\u0637\u0637 \u0645\u062A\u0627\u062D\u0629. \u0623\u062E\u0628\u0631\u0646\u064A \u0628\u0645\u064A\u0632\u0627\u0646\u064A\u062A\u0643 \u0623\u0648 \u0623\u0648\u0644\u0648\u064A\u0627\u062A\u0643 \u0648\u0633\u0623\u0631\u0634\u062F\u0643.`:`I am **AMiN**, your AI advisor. I can help you find the best ${C} insurance plan from the ${V} available policies. Tell me your budget or priorities and I'll guide you.`}else return n==="ar"?"\u0623\u0646\u0627 **AMiN**\u060C \u0645\u0633\u062A\u0634\u0627\u0631\u0643 \u0627\u0644\u0630\u0643\u064A \u0644\u0644\u062A\u0623\u0645\u064A\u0646. \u0627\u0633\u0623\u0644\u0646\u064A \u0639\u0646 \u0627\u0644\u062A\u063A\u0637\u064A\u0629 \u0623\u0648 \u0627\u0644\u0645\u0637\u0627\u0644\u0628\u0627\u062A \u0623\u0648 \u0625\u064A\u062C\u0627\u062F \u0627\u0644\u062E\u0637\u0629 \u0627\u0644\u0645\u0646\u0627\u0633\u0628\u0629.":"I am **AMiN**, your AI insurance advisor. Ask me anything about coverage, claims, or finding the right plan.";return r==="errReachAssistant"?n==="ar"?"\u0639\u0630\u0631\u0627\u064B\u060C \u062A\u0639\u0630\u0651\u0631 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062F. \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.":"Sorry, I couldn't reach the assistant. Please try again.":n==="ar"?"\u0627\u0646\u0642\u0637\u0639 \u0627\u0644\u0627\u062A\u0635\u0627\u0644. \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.":"Response interrupted. Please try again."}function W(r){o(e,{messages:[...e.messages(),{type:"ai",html:r}],streamedText:"",streamedTextBK:""})}return{setConfig(r,n,p){o(e,{config:r,proposalId:n,category:p})},clearConfig(){o(e,{config:null,proposalId:null,category:null})},openPanel(){if(o(e,{isOpen:!0}),!e.welcomeShown()){o(e,{welcomeShown:!0});let r=l("welcomeGreeting"),n=l("welcomeBody");W(M(r+n))}},closePanel(){o(e,{isOpen:!1})},togglePanel(){if(e.isOpen())o(e,{isOpen:!1});else if(o(e,{isOpen:!0}),!e.welcomeShown()){o(e,{welcomeShown:!0});let r=l("welcomeGreeting"),n=l("welcomeBody");W(M(r+n))}},toggleLanguage(){if(o(e,{lang:e.lang()==="en"?"ar":"en"}),e.welcomeShown()&&e.messages().length>0){let r=M(l("welcomeGreeting")+l("welcomeBody")),[,...n]=e.messages();o(e,{messages:[{type:"ai",html:r},...n]})}},sendMessage(r){H(c)&&(e.isStreaming()||r.trim()&&(s?.abort(),o(e,{messages:[...e.messages(),{type:"user",html:r}],isStreaming:!0,streamedText:"",streamedTextBK:""}),s=new AbortController,q(),i.streamAnswer(r,s.signal,e.proposalId(),e.category()).pipe(xe(d
2)).subscribe({next:n=>{if(n.type==="delta"&&n.text)b+=n.text;else if(n.type==="done"){x();let p=M(e.streamedTextBK());o(e,{messages:[...e.messages(),{type:"ai",html:p}],streamedText:"",streamedTextBK:"",isStreaming:!1})}else if(n.type==="error"){x();let p=n.message||l("errReachAssistant");W(M(p)),o(e,{isStreaming:!1})}},error:n=>{x();let p=Me(n);t.addNotification("error",p.message),W(M(l("errInterrupted"))),o(e,{isStreaming:!1})},complete:()=>{x();let n=e.streamedTextBK();n?o(e,{messages:[...e.messages(),{type:"ai",html:M(n)}],streamedText:"",streamedTextBK:"",isStreaming:!1}):o(e,{isStreaming:!1})}})))},abortStream(){s?.abort(),x(),s=void 0,o(e,{isStreaming:!1})}}}),Se({onInit(e,i=g(ce)){let t=i.startsWith("ar")?"ar":"en";o(e,{lang:t})}}));var Be=["messagesEnd"],Oe=()=>({standalone:!0});function We(e,i){e&1&&y(0,"span",2)}function Fe(e,i){if(e&1&&(a(0,"div",24)(1,"div",26),B(2),f()()),e&2){let t=m().$implicit;u(2),F(" ",t.html," ")}}function Pe(e,i){if(e&1&&y(0,"div",25),e&2){let t=m().$implicit,c=m(3);I("innerHTML",c.safeHtml(t.html),ee)}}function De(e,i){if(e&1&&T(0,Fe,3,1,"div",24)(1,Pe,1,1,"div",25),e&2){let t=i.$implicit;E(t.type==="user"?0:1)}}function Ve(e,i){if(e&1&&(a(0,"div",27),B(1),f()),e&2){let t=m(4);u(),F(" ",t.store.streamedText()," ")}}function ze(e,i){if(e&1&&(a(0,"div",28),P(),a(1,"svg",29),y(2,"circle",30)(3,"path",31),f(),$(),a(4,"span"),B(5),f()()),e&2){let t=m(4);u(5),de(t.store.lang()==="en"?"Thinking\u2026":"\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u0641\u0643\u064A\u0631\u2026")}}function Le(e,i){if(e&1&&T(0,Ve,2,1,"div",27)(1,ze,6,1,"div",28),e&2){let t=m(3);E(t.store.streamedText()?0:1)}}function Re(e,i){if(e&1){let t=R();a(0,"button",32),N("click",function(){w(t);let d=m(3);return A(d.onStop())}),P(),a(1,"svg",33),y(2,"rect",34),f()()}if(e&2){let t=m(3);S("aria-label",t.store.lang()==="en"?"Stop":"\u0625\u064A\u0642\u0627\u0641")}}function He(e,i){if(e&1&&(a(0,"button",22),P(),a(1,"svg",11),y(2,"path",35)(3,"path",36),f()()),e&2){let t=m(3);I("disabled",!t.inputText().trim()),S("aria-label",t.store.lang()==="en"?"Submit":"\u0625\u0631\u0633\u0627\u0644")}}function Ke(e,i){if(e&1){let t=R();a(0,"div",6)(1,"header",7)(2,"h2",8),B(3),f(),a(4,"button",9),N("click",function(){w(t);let d=m(2);return A(d.onToggleLanguage())}),B(5),f(),a(6,"button",10),N("click",function(){w(t);let d=m(2);return A(d.onClose())}),P(),a(7,"svg",11),y(8,"path",12),f()()(),$(),a(9,"div",13)(10,"div",14),ne(11,De,2,1,null,null,ie),T(13,Le,2,1),y(14,"div",null,0),f()(),a(16,"div",15)(17,"div",16)(18,"div",17)(19,"form",18),N("submit",function(d){w(t);let s=m(2);return d.preventDefault(),A(s.onSend())}),a(20,"div",19)(21,"textarea",20),N("ngModelChange",function(d){w(t);let s=m(2);return A(s.inputText.set(d))})("keydown",function(d){w(t);let s=m(2);return A(s.onKeydown(d))}),f(),T(22,Re,3,1,"button",21)(23,He,4,2,"button",22),f()(),a(24,"p",23),B(25),f()()()()()}if(e&2){let t=m(2);se("font-family",t.widgetFont),I("dir",t.store.lang()==="ar"?"rtl":"ltr"),S("aria-label",t.store.lang()==="en"?"AMiN Insurance Assistant":"AMiN \u0645\u0633\u0627\u0639\u062F \u0627\u0644\u062A\u0623\u0645\u064A\u0646"),u(3),F(" ",t.store.lang()==="en"?"AMiN Insurance Assistant":"AMiN \u0645\u0633\u0627\u0639\u062F \u0627\u0644\u062A\u0623\u0645\u064A\u0646"," "),u(),S("aria-label",t.store.lang()==="en"?"Switch to Arabic":"Switch to English"),u(),F(" ",t.langToggleLabel()," "),u(),S("aria-label",t.store.lang()==="en"?"Close chat":"\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629"),u(3),I("dir",t.store.lang()==="ar"?"rtl":"ltr"),u(2),oe(t.store.messages()),u(2),E(t.store.isStreaming()?13:-1),u(5),I("dir",t.store.lang()==="ar"?"rtl":"ltr"),u(3),I("placeholder",t.store.lang()==="en"?"Ask AMiN anything":"\u0627\u0633\u0623\u0644 AMiN \u0639\u0646 \u0623\u064A \u0634\u064A\u0621")("dir",t.store.lang()==="ar"?"rtl":"ltr")("disabled",t.store.isStreaming())("ngModel",t.inputText())("ngModelOptions",me(19,Oe)),S("aria-label",t.store.lang()==="en"?"Message input":"\u0623\u062F\u062E\u0644 \u0631\u0633\u0627\u0644\u062A\u0643"),u(),E(t.store.isStreaming()?22:23),u(3),F(" ",t.store.lang()==="en"?"AMiN can make mistakes":"\u0642\u062F \u064A\u062E\u0637\u0626 AMiN"," ")}}function je(e,i){if(e&1){let t=R();a(0,"button",1),N("click",function(){w(t);let d=m();return A(d.onTogglePanel())}),T(1,We,1,0,"span",2),a(2,"span",3),y(3,"img",4),f()(),T(4,Ke,26,20,"div",5)}if(e&2){let t=m();le("opacity-0",t.store.isOpen())("pointer-events-none",t.store.isOpen())("scale-90",t.store.isOpen()),S("aria-label",t.store.lang()==="en"?"Ask AI Assistant":"\u
20627\u0633\u0623\u0644 \u0627\u0644\u0645\u0633\u0627\u0639\u062F \u0627\u0644\u0630\u0643\u064A")("aria-expanded",t.store.isOpen()),u(),E(t.hasAMiNOpened?-1:1),u(3),E(t.store.isOpen()?4:-1)}}var U=class e{store=g(D);sanitizer=g(ge);platformId=g(L);document=g(Y);destroyRef=g(z);isBrowser=H(this.platformId);inputText=Z("");langToggleLabel=ue(()=>this.store.lang()==="en"?"\u0639":"EN");widgetFont='system-ui, -apple-system, "Segoe UI", sans-serif';safeHtml(i){return this.sanitizer.bypassSecurityTrustHtml(i)}hasAMiNOpened=!1;messagesEnd=pe("messagesEnd");constructor(){G(()=>{this.store.messages(),this.store.streamedText(),this.scrollToBottom()}),G(()=>{this.isBrowser&&this.document.body.classList.toggle("amin-chat-open",this.store.isOpen())}),this.destroyRef.onDestroy(()=>{this.isBrowser&&this.document.body.classList.remove("amin-chat-open")})}onTogglePanel(){if(this.hasAMiNOpened=!0,this.store.isOpen()){this.store.closePanel();return}this.store.openPanel()}onClose(){this.store.closePanel()}onToggleLanguage(){this.store.toggleLanguage()}onSend(){let i=this.inputText().trim();!i||this.store.isStreaming()||(this.inputText.set(""),this.store.sendMessage(i))}onStop(){this.store.abortStream()}onKeydown(i){i.key==="Enter"&&!i.shiftKey&&(i.preventDefault(),this.onSend())}scrollToBottom(){setTimeout(()=>{this.messagesEnd()?.nativeElement?.scrollIntoView({block:"end"})},0)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=te({type:e,selectors:[["app-ai-chat-widget"]],viewQuery:function(t,c){t&1&&re(c.messagesEnd,Be,5),t&2&&ae()},decls:1,vars:1,consts:[["messagesEnd",""],["type","button",1,"fixed","bottom-[calc(var(--chat-AMiN-bottom)+env(safe-area-inset-bottom,0rem))]","end-4","z-[9999]","inline-flex","size-20","items-center","justify-center","overflow-visible","rounded-full","border-none","bg-transparent","transition-transform","duration-300","hover:scale-105","focus-visible:outline-2","focus-visible:outline-offset-2","focus-visible:outline-[#0066b3]","sm:end-6",3,"click"],["aria-hidden","true",1,"pointer-events-none","absolute","top-1/2","left-1/2","size-14","-translate-x-1/2","-translate-y-1/2","rounded-full","bg-[#0066b3]/40","motion-safe:animate-ping","motion-reduce:animate-none"],[1,"relative","z-10","flex","size-full","items-center","justify-center","rounded-full"],["ngSrc","/AMiN.avif","alt","Sparkle chat icon","width","32","height","32",1,"size-20"],["role","dialog","aria-modal","true",1,"fixed","inset-0","z-[9998]","flex","h-dvh","w-full","flex-col","overflow-hidden","rounded-none","bg-white","sm:inset-auto","sm:bottom-4","sm:left-0","sm:right-0","sm:mx-auto","sm:h-[720px]","sm:max-h-[calc(100dvh-2rem)]","sm:w-[calc(100vw-2rem)]","sm:max-w-[1000px]","sm:rounded-2xl","sm:border","sm:border-[#e5e7eb]","sm:shadow-[0_10px_30px_rgba(0,0,0,0.08)]",3,"dir","fontFamily"],["role","dialog","aria-modal","true",1,"fixed","inset-0","z-[9998]","flex","h-dvh","w-full","flex-col","overflow-hidden","rounded-none","bg-white","sm:inset-auto","sm:bottom-4","sm:left-0","sm:right-0","sm:mx-auto","sm:h-[720px]","sm:max-h-[calc(100dvh-2rem)]","sm:w-[calc(100vw-2rem)]","sm:max-w-[1000px]","sm:rounded-2xl","sm:border","sm:border-[#e5e7eb]","sm:shadow-[0_10px_30px_rgba(0,0,0,0.08)]",3,"dir"],[1,"flex","shrink-0","items-center","gap-2","border-b","border-[#e5e7eb]","bg-white","py-3","ps-4","pe-3","max-sm:pt-[calc(0.75rem+env(safe-area-inset-top,0rem))]"],[1,"m-0","min-w-0","flex-1","truncate","text-sm","font-semibold","text-[#1f2937]"],["type","button",1,"rounded-md","px-2","py-0.5","text-xs","font-semibold","text-[#6b7280]","transition-colors","hover:bg-[#f3f4f6]","hover:text-[#1f2937]","focus-visible:outline-2","focus-visible:outline-offset-2","focus-visible:outline-[#0066b3]",3,"click"],["type","button",1,"flex","size-7","items-center","justify-center","rounded-md","text-[#6b7280]","transition-colors","hover:bg-[#f3f4f6]","hover:text-[#1f2937]","focus-visible:outline-2","focus-visible:outline-offset-2","focus-visible:outline-[#0066b3]",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"size-4"],["d","M5 12h14"],[1,"relative","min-h-0","flex-1","overflow-y-auto","[scrollbar-width:thin]",3,"dir"],[1,"mx-auto","flex","w-full","max-w-3xl","flex-col","gap-6","px-4","py-6"],[1,"shrink-0","bg-white","max-sm:pb-[calc(0.5rem+env(safe-area-inset-bottom,0rem))]"],[1,"px-4","pt-2","pb-2"],[1,"mx-auto","w-full","max-w-3xl",3,"dir"],[1,"relative","flex","w-full","flex-col","rounded-2xl","border","border-[#e5e7eb]","bg-[#f9fafb]",3,"submit"],[1,"flex","items-center","gap-1","py-2.5","ps-4","pe-3"],["name","message","rows","1",1,"max-h-48","min-h-0","w-full","resize-none","border-0","bg-transparent","py-1","text-base","text-[#1f2937]","outline-none","placeholder:text-[#6b7280]","sm:text-sm",3,"ngModelChange","keydown","placeholder","dir","disabled","ngModel","ngModelOptions"],["type","button",1,"flex","size-7","shrink-0","items-center","justify-center","rounded-full","bg-[#1f2937]","text-white","transition-opacity","hover:opacity-90","focus-visible:outline-2","focus-visible:outline-offset-2","focus-visible:outline-[#0066b3]"],["type","submit",1,"flex","size-7","shrink-0","items-center","justify-center","rounded-full","bg-[#1f2937]","text-white","transition-opacity","hover:opacity-90","disabled:opacity-40","focus-visible:outline-2","focus-visible:outline-offset-2","focus-visible:outline-[#0066b3]",3,"disabled"],[1,"flex","justify-center","pt-2","pb-1","text-center","text-[10px]","text-[#6b7280]/70","sm:text-[11px]"],[1,"ml-auto","flex","w-full","max-w-[80%]","flex-col","items-end"],[1,"w-full","text-base","leading-6","text-[#1f2937]","[&_li]:my-0","[&_ol]:my-4","[&_ol]:list-decimal","[&_ol]:ps-6","[&_p]:my-0","[&_p+_p]:mt-4","[&_strong]:font-semibold","[&_ul]:my-4","[&_ul]:list-disc","[&_ul]:ps-6",3,"innerHTML"],[1,"w-fit","max-w-full","rounded-lg","bg-[#f4f4f4]","px-4","py-3","text-base","leading-6","text-[#1f2937]"],[1,"w-full","text-base","leading-6","whitespace-pre-wrap","text-[#1f2937]"],[1,"flex","items-center","gap-2","text-sm","text-[#6b7280]"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"size-4","shrink-0"],["cx","12","cy","12","r","10"],["d","M12 6v6l4 2"],["type","button",1,"flex","size-7","shrink-0","items-center","justify-center","rounded-full","bg-[#1f2937]","text-white","transition-opacity","hover:opacity-90","focus-visible:outline-2","focus-visible:outline-offset-2","focus-visible:outline-[#0066b3]",3,"click"],["viewBox","0 0 24 24","fill","currentColor","aria-hidden","true",1,"size-3"],["x","6","y","6","width","12","height","12","rx","1"],["d","m5 12 7-7 7 7"],["d","M12 19V5"]],template:function(t,c){t&1&&T(0,je,5,10),t&2&&E(c.isBrowser?0:-1)},dependencies:[fe,we,ve,he,_e,be,ye,Ce],encapsulation:2,changeDetection:0})};function $e(){return X([O,D])}var Ge=["/quote-selection","/insurance","/payment","/requests-confirmation"];function Ue(e){let i=e.split("?")[0].split("#")[0];return Ge.some(t=>i===t||i.startsWith(`${t}/`))}export{D as a,U as b,$e as c,Ue as d};
3/**i18n:9221a248b78fad51dadd6e5c7b69129d29a88615ab3f9965adb6a86fb0adbaca*/

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.