thikanaa 0.1.15 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -67,8 +67,7 @@
67
67
  resize: none;
68
68
  font-family: inherit;
69
69
  overflow-y: auto;
70
- max-height: 100px;
71
- height: auto !important;
70
+ max-height: 120px;
72
71
  }
73
72
 
74
73
  .input-container textarea::placeholder {
@@ -159,6 +158,7 @@
159
158
  height: 40px;
160
159
  cursor: nwse-resize;
161
160
  z-index: 10;
161
+ touch-action: none;
162
162
  display: flex;
163
163
  align-items: flex-start;
164
164
  justify-content: flex-start;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/chat-popup.css"],"sourcesContent":[".chatbot-icon {\n width: 50px;\n height: 50px;\n background-color: transparent;\n cursor: pointer;\n}\n\n.chatbot-container {\n z-index: 1000;\n position: fixed;\n bottom: 20px;\n right: 20px;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.chatbot-popup {\n margin-bottom: 20px;\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n padding: 10px;\n border-radius: 16px;\n box-shadow:\n rgba(50, 50, 93, 0.25) 0px 50px 100px -20px,\n rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;\n position: relative;\n overflow: hidden;\n}\n\n.chat-popup-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n transition:\n width 0.05s ease-out,\n height 0.05s ease-out;\n}\n\n.chat-popup-wrapper.resizing {\n user-select: none;\n transition: none;\n}\n\n.input-container {\n margin-top: auto;\n width: 100%;\n display: flex;\n align-items: flex-end;\n gap: 10px;\n background-color: #f8f9fa;\n padding: 4px 6px;\n border-radius: 20px;\n border: 1px solid #e9ecef;\n box-sizing: border-box;\n}\n\n.input-container textarea {\n flex: 1;\n border: none;\n background: transparent;\n padding: 6px 8px;\n font-size: 14px;\n line-height: 20px;\n outline: none;\n resize: none;\n font-family: inherit;\n overflow-y: auto;\n max-height: 100px;\n height: auto !important;\n}\n\n.input-container textarea::placeholder {\n color: #adb5bd;\n}\n\n.input-container .send-button {\n background: #c52c2cba;\n color: white;\n border: none;\n border-radius: 50%;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background-color 0.2s;\n flex-shrink: 0;\n padding: 0;\n}\n\n.input-container .send-button:hover:not(:disabled) {\n background-color: #c52c2c;\n}\n\n.input-container .send-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.messages-container {\n flex: 1;\n overflow-y: auto;\n margin-bottom: 10px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding-right: 4px;\n}\n\n.messages-container::-webkit-scrollbar {\n width: 4px;\n}\n\n.messages-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.messages-container::-webkit-scrollbar-thumb {\n background: #e9ecef;\n border-radius: 10px;\n}\n\n.message {\n max-width: 85%;\n padding: 10px 14px;\n border-radius: 18px;\n font-size: 14px;\n line-height: 1.4;\n word-wrap: break-word;\n}\n\n.message.user {\n align-self: flex-end;\n background-color: #c52c2cba;\n color: white;\n border-bottom-right-radius: 4px;\n}\n\n.message.ai {\n align-self: flex-start;\n background-color: #f1f3f5;\n color: #212529;\n border-bottom-left-radius: 4px;\n}\n\n.message.loading {\n font-style: italic;\n color: #868e96;\n}\n\n.stretch-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 40px;\n height: 40px;\n cursor: nwse-resize;\n z-index: 10;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n transition:\n opacity 0.2s ease,\n transform 0.2s ease;\n opacity: 0.3;\n margin: -10px 0 0 -10px;\n}\n\n.stretch-icon:hover {\n opacity: 1;\n transform: scale(1.1);\n}\n\n.stretch-icon::before {\n content: \"\";\n width: 28px;\n height: 28px;\n border-top: 3px solid #c52c2cba;\n border-left: 3px solid #c52c2cba;\n border-top-left-radius: 6px;\n position: absolute;\n top: 6px;\n left: 6px;\n}\n"],"mappings":"AAAA,CAAC,aACC,MAAO,KACP,OAAQ,KACR,iBAAkB,YAClB,OAAQ,OACV,CAEA,CAAC,kBACC,QAAS,KACT,SAAU,MACV,OAAQ,KACR,MAAO,KACP,QAAS,KACT,eAAgB,OAChB,YAAa,QACf,CAEA,CAAC,cACC,cAAe,KACf,QAAS,KACT,eAAgB,OAChB,iBAAkB,KArBpB,QAsBW,KAtBX,cAuBiB,KACf,WACE,UAAuB,EAAI,KAAK,MAAM,KAAK,CAC3C,UAAmB,EAAI,KAAK,KAAK,MACnC,SAAU,SACV,SAAU,MACZ,CAEA,CAAC,mBACC,QAAS,KACT,eAAgB,OAChB,SAAU,SACV,WACE,MAAM,KAAM,QAAQ,CACpB,OAAO,KAAM,QACjB,CAEA,CATC,kBASkB,CAAC,SAClB,YAAa,KACb,WAAY,IACd,CAEA,CAAC,gBACC,WAAY,KACZ,MAAO,KACP,QAAS,KACT,YAAa,SACb,IAAK,KACL,iBAAkB,QAnDpB,QAoDW,IAAI,IApDf,cAqDiB,KACf,OAAQ,IAAI,MAAM,QAClB,WAAY,UACd,CAEA,CAbC,gBAagB,SACf,KAAM,EACN,OAAQ,KACR,WAAY,YA7Dd,QA8DW,IAAI,IACb,UAAW,KACX,YAAa,KACb,QAAS,KACT,OAAQ,KACR,YAAa,QACb,WAAY,KACZ,WAAY,MACZ,OAAQ,cACV,CAEA,CA5BC,gBA4BgB,QAAQ,cACvB,MAAO,OACT,CAEA,CAhCC,gBAgCgB,CAAC,YAChB,WAAY,UACZ,MAAO,KACP,OAAQ,KAhFV,cAiFiB,IACf,MAAO,KACP,OAAQ,KACR,QAAS,KACT,YAAa,OACb,gBAAiB,OACjB,OAAQ,QACR,WAAY,iBAAiB,IAC7B,YAAa,EAzFf,QA0FW,CACX,CAEA,CAhDC,gBAgDgB,CAhBC,WAgBW,MAAM,KAAK,WACtC,iBAAkB,OACpB,CAEA,CApDC,gBAoDgB,CApBC,WAoBW,UAC3B,QAAS,GACT,OAAQ,WACV,CAEA,CAAC,mBACC,KAAM,EACN,WAAY,KACZ,cAAe,KACf,QAAS,KACT,eAAgB,OAChB,IAAK,KACL,cAAe,GACjB,CAEA,CAVC,kBAUkB,oBACjB,MAAO,GACT,CAEA,CAdC,kBAckB,0BACjB,WAAY,WACd,CAEA,CAlBC,kBAkBkB,0BACjB,WAAY,QAzHd,cA0HiB,IACjB,CAEA,CAAC,QACC,UAAW,IA9Hb,QA+HW,KAAK,KA/HhB,cAgIiB,KACf,UAAW,KACX,YAAa,IACb,UAAW,UACb,CAEA,CATC,OASO,CAAC,KACP,WAAY,SACZ,iBAAkB,UAClB,MAAO,KACP,2BAA4B,GAC9B,CAEA,CAhBC,OAgBO,CAAC,GACP,WAAY,WACZ,iBAAkB,QAClB,MAAO,QACP,0BAA2B,GAC7B,CAEA,CAvBC,OAuBO,CAAC,QACP,WAAY,OACZ,MAAO,OACT,CAEA,CAAC,aACC,SAAU,SACV,IAAK,EACL,KAAM,EACN,MAAO,KACP,OAAQ,KACR,OAAQ,YACR,QAAS,GACT,QAAS,KACT,YAAa,WACb,gBAAiB,WACjB,WACE,QAAQ,IAAK,IAAI,CACjB,UAAU,IAAK,KACjB,QAAS,GAvKX,OAwKU,MAAM,EAAE,EAAE,KACpB,CAEA,CAlBC,YAkBY,OACX,QAAS,EACT,UAAW,MAAM,IACnB,CAEA,CAvBC,YAuBY,QACX,QAAS,GACT,MAAO,KACP,OAAQ,KACR,WAAY,IAAI,MAAM,UACtB,YAAa,IAAI,MAAM,UACvB,uBAAwB,IACxB,SAAU,SACV,IAAK,IACL,KAAM,GACR","names":[]}
1
+ {"version":3,"sources":["../src/components/chat-popup.css"],"sourcesContent":[".chatbot-icon {\n width: 50px;\n height: 50px;\n background-color: transparent;\n cursor: pointer;\n}\n\n.chatbot-container {\n z-index: 1000;\n position: fixed;\n bottom: 20px;\n right: 20px;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n\n.chatbot-popup {\n margin-bottom: 20px;\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n padding: 10px;\n border-radius: 16px;\n box-shadow:\n rgba(50, 50, 93, 0.25) 0px 50px 100px -20px,\n rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;\n position: relative;\n overflow: hidden;\n}\n\n.chat-popup-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n transition:\n width 0.05s ease-out,\n height 0.05s ease-out;\n}\n\n.chat-popup-wrapper.resizing {\n user-select: none;\n transition: none;\n}\n\n.input-container {\n margin-top: auto;\n width: 100%;\n display: flex;\n align-items: flex-end;\n gap: 10px;\n background-color: #f8f9fa;\n padding: 4px 6px;\n border-radius: 20px;\n border: 1px solid #e9ecef;\n box-sizing: border-box;\n}\n\n.input-container textarea {\n flex: 1;\n border: none;\n background: transparent;\n padding: 6px 8px;\n font-size: 14px;\n line-height: 20px;\n outline: none;\n resize: none;\n font-family: inherit;\n overflow-y: auto;\n max-height: 120px;\n}\n\n.input-container textarea::placeholder {\n color: #adb5bd;\n}\n\n.input-container .send-button {\n background: #c52c2cba;\n color: white;\n border: none;\n border-radius: 50%;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background-color 0.2s;\n flex-shrink: 0;\n padding: 0;\n}\n\n.input-container .send-button:hover:not(:disabled) {\n background-color: #c52c2c;\n}\n\n.input-container .send-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.messages-container {\n flex: 1;\n overflow-y: auto;\n margin-bottom: 10px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding-right: 4px;\n}\n\n.messages-container::-webkit-scrollbar {\n width: 4px;\n}\n\n.messages-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.messages-container::-webkit-scrollbar-thumb {\n background: #e9ecef;\n border-radius: 10px;\n}\n\n.message {\n max-width: 85%;\n padding: 10px 14px;\n border-radius: 18px;\n font-size: 14px;\n line-height: 1.4;\n word-wrap: break-word;\n}\n\n.message.user {\n align-self: flex-end;\n background-color: #c52c2cba;\n color: white;\n border-bottom-right-radius: 4px;\n}\n\n.message.ai {\n align-self: flex-start;\n background-color: #f1f3f5;\n color: #212529;\n border-bottom-left-radius: 4px;\n}\n\n.message.loading {\n font-style: italic;\n color: #868e96;\n}\n\n.stretch-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 40px;\n height: 40px;\n cursor: nwse-resize;\n z-index: 10;\n touch-action: none;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n transition:\n opacity 0.2s ease,\n transform 0.2s ease;\n opacity: 0.3;\n margin: -10px 0 0 -10px;\n}\n\n.stretch-icon:hover {\n opacity: 1;\n transform: scale(1.1);\n}\n\n.stretch-icon::before {\n content: \"\";\n width: 28px;\n height: 28px;\n border-top: 3px solid #c52c2cba;\n border-left: 3px solid #c52c2cba;\n border-top-left-radius: 6px;\n position: absolute;\n top: 6px;\n left: 6px;\n}\n"],"mappings":"AAAA,CAAC,aACC,MAAO,KACP,OAAQ,KACR,iBAAkB,YAClB,OAAQ,OACV,CAEA,CAAC,kBACC,QAAS,KACT,SAAU,MACV,OAAQ,KACR,MAAO,KACP,QAAS,KACT,eAAgB,OAChB,YAAa,QACf,CAEA,CAAC,cACC,cAAe,KACf,QAAS,KACT,eAAgB,OAChB,iBAAkB,KArBpB,QAsBW,KAtBX,cAuBiB,KACf,WACE,UAAuB,EAAI,KAAK,MAAM,KAAK,CAC3C,UAAmB,EAAI,KAAK,KAAK,MACnC,SAAU,SACV,SAAU,MACZ,CAEA,CAAC,mBACC,QAAS,KACT,eAAgB,OAChB,SAAU,SACV,WACE,MAAM,KAAM,QAAQ,CACpB,OAAO,KAAM,QACjB,CAEA,CATC,kBASkB,CAAC,SAClB,YAAa,KACb,WAAY,IACd,CAEA,CAAC,gBACC,WAAY,KACZ,MAAO,KACP,QAAS,KACT,YAAa,SACb,IAAK,KACL,iBAAkB,QAnDpB,QAoDW,IAAI,IApDf,cAqDiB,KACf,OAAQ,IAAI,MAAM,QAClB,WAAY,UACd,CAEA,CAbC,gBAagB,SACf,KAAM,EACN,OAAQ,KACR,WAAY,YA7Dd,QA8DW,IAAI,IACb,UAAW,KACX,YAAa,KACb,QAAS,KACT,OAAQ,KACR,YAAa,QACb,WAAY,KACZ,WAAY,KACd,CAEA,CA3BC,gBA2BgB,QAAQ,cACvB,MAAO,OACT,CAEA,CA/BC,gBA+BgB,CAAC,YAChB,WAAY,UACZ,MAAO,KACP,OAAQ,KA/EV,cAgFiB,IACf,MAAO,KACP,OAAQ,KACR,QAAS,KACT,YAAa,OACb,gBAAiB,OACjB,OAAQ,QACR,WAAY,iBAAiB,IAC7B,YAAa,EAxFf,QAyFW,CACX,CAEA,CA/CC,gBA+CgB,CAhBC,WAgBW,MAAM,KAAK,WACtC,iBAAkB,OACpB,CAEA,CAnDC,gBAmDgB,CApBC,WAoBW,UAC3B,QAAS,GACT,OAAQ,WACV,CAEA,CAAC,mBACC,KAAM,EACN,WAAY,KACZ,cAAe,KACf,QAAS,KACT,eAAgB,OAChB,IAAK,KACL,cAAe,GACjB,CAEA,CAVC,kBAUkB,oBACjB,MAAO,GACT,CAEA,CAdC,kBAckB,0BACjB,WAAY,WACd,CAEA,CAlBC,kBAkBkB,0BACjB,WAAY,QAxHd,cAyHiB,IACjB,CAEA,CAAC,QACC,UAAW,IA7Hb,QA8HW,KAAK,KA9HhB,cA+HiB,KACf,UAAW,KACX,YAAa,IACb,UAAW,UACb,CAEA,CATC,OASO,CAAC,KACP,WAAY,SACZ,iBAAkB,UAClB,MAAO,KACP,2BAA4B,GAC9B,CAEA,CAhBC,OAgBO,CAAC,GACP,WAAY,WACZ,iBAAkB,QAClB,MAAO,QACP,0BAA2B,GAC7B,CAEA,CAvBC,OAuBO,CAAC,QACP,WAAY,OACZ,MAAO,OACT,CAEA,CAAC,aACC,SAAU,SACV,IAAK,EACL,KAAM,EACN,MAAO,KACP,OAAQ,KACR,OAAQ,YACR,QAAS,GACT,aAAc,KACd,QAAS,KACT,YAAa,WACb,gBAAiB,WACjB,WACE,QAAQ,IAAK,IAAI,CACjB,UAAU,IAAK,KACjB,QAAS,GAvKX,OAwKU,MAAM,EAAE,EAAE,KACpB,CAEA,CAnBC,YAmBY,OACX,QAAS,EACT,UAAW,MAAM,IACnB,CAEA,CAxBC,YAwBY,QACX,QAAS,GACT,MAAO,KACP,OAAQ,KACR,WAAY,IAAI,MAAM,UACtB,YAAa,IAAI,MAAM,UACvB,uBAAwB,IACxB,SAAU,SACV,IAAK,IACL,KAAM,GACR","names":[]}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var H=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var Z=(s,a)=>{for(var l in a)H(s,l,{get:a[l],enumerable:!0})},Y=(s,a,l,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of J(a))!E.call(s,c)&&c!==l&&H(s,c,{get:()=>a[c],enumerable:!(g=V(a,c))||g.enumerable});return s};var U=s=>Y(H({},"__esModule",{value:!0}),s);var q={};Z(q,{ChatPopup:()=>G});module.exports=U(q);var t=require("react");var x="data:image/png;base64,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";var o=require("react/jsx-runtime"),G=({systemPrompt:s,feedData:a,apiUrl:l="https://thikana.malaymishra.com/chatbot",assistantName:g="Thikana",initialMessage:c,model:R,onMessageSend:O,onResponseReceive:y})=>{let[f,T]=(0,t.useState)(""),[u,h]=(0,t.useState)([]),[b,M]=(0,t.useState)(!1),[N,S]=(0,t.useState)(null),[k,L]=(0,t.useState)({width:330,height:480}),[D,$]=(0,t.useState)(!1),[C,K]=(0,t.useState)(!1),m=(0,t.useRef)(null);(0,t.useEffect)(()=>{function e(n){m.current&&!m.current.contains(n.target)&&K(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]);let w=(0,t.useRef)(null),v=(0,t.useRef)(null),P=(0,t.useRef)(null),W=a||N;(0,t.useEffect)(()=>{if(u.length===0){let e=localStorage.getItem("messages");h(e?JSON.parse(e):[{role:"assistant",content:c||`Hi this is ${g}! How can I help you today?`}])}},[c,g,u.length]),(0,t.useEffect)(()=>{a||(async()=>{try{let r=await(await fetch("https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json")).json();S(r)}catch(n){console.error("Error fetching portfolio data:",n)}})()},[a]);let j=()=>{P.current?.scrollIntoView({behavior:"smooth"})};(0,t.useEffect)(()=>{j()},[u]);let A=async e=>{let n=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:e,feedData:W,systemPrompt:s,model:R})});if(!n.ok){let p=await n.json();throw new Error(p.error||"Failed to get AI response")}let r=await n.json();return y&&y(r.text),r.text},_=async e=>{if(!e.trim()||b)return;let n={role:"user",content:e};O&&O(n);let r=[...u,n];h(r),T(""),M(!0);try{let d={role:"assistant",content:await A(r)},i=[...r,d];h(i),localStorage.setItem("messages",JSON.stringify(i))}catch(p){console.error("Error calling AI:",p);let d={role:"assistant",content:"Sorry, I encountered an error. Please try again later."},i=[...r,d];h(i),localStorage.setItem("messages",JSON.stringify(i))}finally{M(!1)}};(0,t.useEffect)(()=>{v.current&&(v.current.style.height="auto",v.current.style.height=`${Math.min(v.current.scrollHeight,100)}px`)},[f]);let X=(0,t.useCallback)(e=>{e.preventDefault(),$(!0)},[]);return(0,t.useEffect)(()=>{if(!D)return;let e=r=>{if(!w.current)return;let p=w.current.getBoundingClientRect(),d=p.right-r.clientX,i=p.bottom-r.clientY;d>250&&d<800&&L(I=>({...I,width:d})),i>300&&i<800&&L(I=>({...I,height:i}))},n=()=>{$(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",n),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",n)}},[D]),(0,o.jsxs)("div",{className:"chatbot-container",ref:m,children:[C&&(0,o.jsx)("div",{className:"chatbot-popup",children:(0,o.jsxs)("div",{ref:w,className:`chat-popup-wrapper ${D?"resizing":""}`,style:{width:`${k.width}px`,height:`${k.height}px`,position:"relative"},children:[(0,o.jsx)("div",{className:"stretch-icon",onMouseDown:X}),(0,o.jsxs)("div",{className:"messages-container",children:[u.map((e,n)=>(0,o.jsx)("div",{className:`message ${e.role==="user"?"user":"ai"}`,dangerouslySetInnerHTML:{__html:e.content}},n)),b&&(0,o.jsx)("div",{className:"message ai loading",children:"Thinking..."}),(0,o.jsx)("div",{ref:P})]}),(0,o.jsxs)("div",{className:"input-container",children:[(0,o.jsx)("textarea",{ref:v,rows:1,placeholder:"What's on your mind?",value:f,onKeyDown:e=>{e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),_(f))},onChange:e=>T(e.target.value)}),(0,o.jsx)("button",{onClick:()=>_(f),disabled:!f.trim()||b,className:"send-button",children:(0,o.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,o.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,o.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})]})]})}),(0,o.jsx)("img",{onClick:()=>K(e=>!e),className:"chatbot-icon",alt:"chatbot",src:typeof x=="string"?x:x.src})]})};0&&(module.exports={ChatPopup});
1
+ "use strict";var y=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var q=(s,a)=>{for(var d in a)y(s,d,{get:a[d],enumerable:!0})},z=(s,a,d,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of Y(a))!U.call(s,c)&&c!==d&&y(s,c,{get:()=>a[c],enumerable:!(g=Z(a,c))||g.enumerable});return s};var G=s=>z(y({},"__esModule",{value:!0}),s);var ee={};q(ee,{ChatPopup:()=>Q});module.exports=G(ee);var t=require("react");var x="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAQAElEQVR4AeydB5hURdaGy3YcRjKigCJiXgVzzopxza77u+acc15zDmtEDOiaxbDmnMOKYc1ixoSCICpZQFAcx/b/3kOf9k5O3TPdQ81zT1dO51Z9depU3ZpUiH+RA5EDkQNFwoEIWEXyomI1IwciB0KIgBV7QeRA5EDRcCACVtG8quZXNOYQOVDsHIiAVexvMNY/cmAO4kAErDnoZcemRg4UOwciYBX7G4z1jxyoiQNt1C8CVht9sbFZkQNtkQMRsNriW41tihxooxyIgNVGX2xsVuRAW+RABKya3mr0ixyIHChIDkTAKsjXEisVORA5UBMHImDVxJXoFzkQOVCQHMgrYE2cOLHTjBkzTvjll19e+OOPP0aKvhR98dtvv30m833Rk6KBov8T9RP1FnUTzVOQ3IqVaoMciE1qCAc0JucSlYjaZWjuhqTLdZycAJYakBo1alTZl19+uezIkSM3++GHH06cNWvW8Pnnn39Shw4d/lVWVraJKt5HtIRo6bnnnntJmSv8/vvvm8vcV3Sr6EXRo6I7RYOV5+GiTUW9RKXyi0/kQORAHjig8TXX0KFDS0aMGNH5q6++WnLMmDEbTJs2bXcJFicp7BHRxyp2hugn0TjR96JR8n9X9HBFRcVVGsuHytxO7uVEnUU5wRaVU+lpVqaqVFfRFsrxnkUXXfTLpZZa6pPFFlvsiV69el3Srl27fvIvyVAFphhAeRVKg39KwIXZVWHtRd1EK4u2Eu0tulB0r5jw8Lhx4/YfPXr04mJoO/nFJ3IgciAHHGAcihZSVttttNFGQ5ZccskPllhiieF9+vR5uXPnzreXlJRcpLDtRcuJGKMIDh1ln0+EAMJ43Ubj+MhUKjVIJgLHMIHXxClTprwt4NsZQUZxc/YAIE3KTA2dSwl3Fw0WbSaiAeQHCMlpD24s5jfPPLbSK1Hj8EsS8WAGJv7EhzGdxbTlBIBHde/e/YDS0tIlcs0ACosUOTCHcgAhYT+1/XzRDqK+IsYhAoaPRXllH/wYm+6RdJMO/1IBV+l88823vIDvlk6dOl0sQWMB4cXcBDaXKLBJeQwfPnyeEMLflbinCHCRUe1JV/NpvAcMWkTLyg07duy4ZZcuXXqo8YZ8jc8qpogciByAAxpDjP2/yb6niNUQEhR+cmavnWrO+AXASiVoHCTV0KVSEy2VC2HDK0glG0Va8nVRgv4iwApQkTVUbWCT8yczUUqMJe8SoXY/iambipaXfwdRfCIHIgeayAHpmtEjX6rkS4sYp0hVsgY3sTeXbOx27dp1T0lcD2sMb/j55593ak6mVLRJ6du3b7+OErKWBaRoJCb5QQpq1lM1D/Iv1fJwcTV6feXcPQNkssYnciByoDEcePfdd+cRiAxUGqQgxi3jC3CRlz0+/ggzjwb+1BSffFMScBaRpHWJVkiraeyiTmpglpWjecUq+9bj+vbbb+fV7h8KOWKSh1UKR4JqqnwiuF4r+Ya55poLs0yxya+HzFVEKAHzthOh/ONTnQPRpw1wALCQYv1yAdaWag7jivHF+JXTVkhux00YZkPJ4zNWk2kAxLJ55513OUlabKZ1SgY2xu4FNCZNkC7pYC3N2F1INi6ZR9UKJ8MaY6d+EPkxG2BHMbi2MllQBMNlxCdyIHKgIRyYMGHC8gKr3bXxxZgiCSYEqGDiB+FmvGFvLFVNB07gV66NM4SN7QHOxmZKfDLBbDCpwR3V4AMl+aCko4GQp8cOkS/k/s01YR6AVaKM5hehx2IN3l4Nx09e8YkciByoiwPjxo3rIAnnFsXpKmKcyjAFO2OVcQThx3jDzBWVa5ySFwIGOm9OFWDi1yiioo1KIKDaQwl6ibxxyTywQwq2x5lijmb80NBypadM8lxc9lVFvUXzihlNXhMrfXwiB+YIDkiqOlJ64BUzjUUAYCxlnLYcdHuJLIy1XAFXqXDDyyJP6tBT4zaJFSqy/qdRCSZOnLigFGdsgwIgXoG6SqmW/++//14pviodfvvtt6xf0p71DIFGwmC8KJtdQnRZy8qD9TDMlTU+kQORAzVxAOlqgQUWOEphTPw+dpPjM2lXNHv4FMcs/pNOe1L3aZDJ+PX8MTlhwFGKRh9PInGDSiSSlGYbyeTzGl8Okp4WQAqq/Zk1a5YFapfPTH5oPIAl1A/Y8cscLsWaJM+f8gCueRWIdMWxCnRp+MkrPpEDkQM1cUC6o7vkz0FRxi4TPGMKknftjySjwBh1QUJSWo2RPdwDfTxn3IxbrA5cC8ixpqi7qFGPZ1RvIlV6Lu0MbqOIfB5DwZCc2TUw9mpUXg6gh1BWhmAUTJr6+eefA5IWjYdgCma1xH96JOuJHYCi0XwagJSFLgv/P1NEW+RA5IBxYMqUKV20SbauHAxCQArpgfGCXd61Pz/99FNgfLogwbj18ZtMRbgwIutVZTxTFmFuUg/qs4jSgCeENYg8g3ojaznIMmwRRSwR8VAoZp0kZLdwGnnJJZeE5ZZbLmhZGaT8CwsvvHAYMmRIGD16tMXhB4ZgViEvk/pCBCNOIl2tIAem+8vZuk8sPXKgkDggaWdVrWyQrKgW44SxC1j5uMK/RurUCY1LCJMnTw4XXXRRWH311UPv3r1D9+7dbQwPHjw4O34Bthoz+dOTsnFRNnpoloXUBb8GkWfQkMho9acrIuiM2OQmkhZEJZKkqLOf5557Luyzzz7hwgsvDF9++WX45ZdfwvTp08N3330XDj300HDIIYeE119/3SKLseHXX381e+aHPDNWUwxSZxqJlNVZAewWLi0Tt4z4RA5EDiQ5IFUOh7wdsBhPjF/GEeM2GbVGO2PzxBNPDFdeeWV4//33w9SpU8O0adPCjz/+GI4++uhwwAEHhGeffbZaWl9dVQmgfICSFdKmCusqKYu6yFr/0+CIWtKhGf9aWf4o4qoJAEtWe2rNB/AZNGhQuP/++62RiI7t2s2WAgEnwOuZZ54xMJMUZ5l5uDmq/3iDaTQvgcOkSygaW7Uy4hM5EDngHBAYzKOxi9rEwYnxw+SOmzHkUWs00U1dffXV4dZbbw1S3AfGr0tSjF9WRC+88EK4+OKLs5KWZ5RZXVGee2E6VlD2GvJgx7DBu/yeWOnqfiQa/qwY/xO9IxouMXOymIHEBXhBoDZMoIJOtuQDlZUmdOnSxRoMiOFG2Y5oif3JJ580BMdehZJ1xE7eRMEO8nEuawWh+fyqT4MbTgaRIgeazYHCz6Cj9EmLqpoABOMTU86A6WMJd40EUL3xxhsWJkmNQ+NB+ZleC7Dq2rWrhQ0dOjTceOONZudH4xEDYpzWVA5+3RRvnbFjxwKgxK2XyKzeSJkIv8mk5g/LfFCVfltI+7nsXOg1UWZS8oIxVCh96aWXGjKDxuwUostS3IAUBXCxNkanhd8999wTPvvsM6xJsnwyHsn6wnCWhp0UtpDQfNlhw4bhJ2d8IgciBzIcYGeQ8YjTxo8m9gokJ5nmJqA2OvbYY01y0ng3kGIZCFABXqSZquVhjx4sckJ48MEHg8AHb9tZNEvlH8ay+wBS7TVu11d69FnuX6dZb4U9tcCJRk+R+13Ra6KXRCiePpT5qYjl4iSZP4mQxqhc+quvvpIzpAVYaQBKjor27dvbbqGYkFa+YdKkSQG/r7/+Opx++umK8ueTYWqyniWS7oiAHwCFlMVLWVKi71wERIociBwIgAZ3UHH9E8eAGL+MGcZcSXJpVxuvDj/88OACBmPO7cR3u8Z1mDBhQsD8/PPPTSFPOAKJpCesEOUmTezgA+e8AK358GgIeUYNiUscpCxAa4IcH4gArjdlDhN9IkI8GiUTqYtlIoAiZ+CaGCtLIFUidFf70xUCKznN2xTxRHz55ZcDy0PskOJgVCIlSropAylrQTEpAlaSM9E+p3OAyRzxB8CaPdD+5AiAYa6MIGF2/3nzzTfD008/7c5aTaQthA1MImlsYxhJejKzrh+Nb/TQbJzVFS0bVrUR2YBaLKA0uqrpCude529kfiwCsF6WOVTEsnG4TIBrRv/+/YmPRJVWAwCqWWoU5aZ+//13O48lf2YDWyayRLzuuutsG1V5ZB9JWhY36/GnhbxoNC/mT99oixyYgzmg8YJ01UEs4JIAJnXGrpzZJwtY6JLx1bjEMGJHcNQohrA56/xh/BKhV69eJmlhbwSBD10bGp/B3tC4rGFpJA2HflHCqSKA6zuZgBdS1quyPyN6SvT6oYceyt3tpAtS3FMeeqfybt26YTd/oayiBsLNRMIaMmSI2f2HOIidQjz3SslOHhCSValmij88MJqRA3M4BzinyFEkNqVgBWONcYuJm3GDmQUZX7k88cQT4aGHHrKw+n4AK/RYxNtxxx2zeeGuh7x8pEBAq57os4M90WxXA34FHDT6d0UFsKbJZImI7mq87GNEKOJZJj4m+03777///auuuirlpLxh8i8V2MiwU/JIX9jt2AOghOP222+3cx7YE2thQBMvowyDmT3I/zdJc9TLwuJP5MCcygFJV4wHiJUHgAArcEPYq5EmewMbVjgDBw4MjDnphKvFq+ohPDCv5ZdfPhx44IFmb+RPqSQ7dN4NSlZrA+pJDTCA1IDXr4o7U8Qy0QnJa6z8PlajL99rr70+7dKlyyytcytAZECJg2eYimPfEQI+qnh22ffhhx+G88/nbvwQSAND9SIMsDBJlyHqkK6oqAAoqVPGOxqFxYFYmxbkwNwqi4kck7EJ2TiRvz+Vxr70v+Z/xx13BI4o4AC0MOsixiXhO+20U1hppZWwZsewOWr/8bHKZhz67tpjJkIqVTrhX6dVqEphFYqEEn6WTAjgQuqicAjUxBy/2267HbLzzjtjLxGwVABOSpPGVF6yBkN3s+jHmce5DnYe5IV+S0KZfSrOLgde6QxwUZeps2bNel55xSUhnIkUOaAhJSYwRhEeoJ8ybsY8Y0bOys8nn3wSbrrpJvOUoGGChDnq+WEpyJcsHs0FEXfXY/4m0EOdVE+02cFUfrat8b+AAw2HkLgAL9aiSQLAZkpf9dkOO+xww4ILLlgu1AH5DaAEXtlDaEhXDlT4Y+fDyxNOOCH4UlKAZLVUHma6W45JAi+OVsgan8iBOZ4Dc4kDf4gYlwgSEOOSscqYB8gUXPlBbzx8+HA7HCoBoHJgLS7G4Pbbbx/69OlTKYYfe6jkWbPjO5U1suag6r5UvrpvA3xU0d9FNByCEZDbYRQMQ8oCtH7acsstr9l1113ZSeS0e1rLQwlYKRMfBTZWopDWTIVlvydEAf/ii/xT6IBkRn1NMlMcsytBxYwZM56TQh9dmpzxiRyYczmgsQRYwQDGI+MP3fK38gCwZNhjQoNsxJERwssvvxzuvJN/uh4Cu4YanObPeS23I3XhiQSFP/ZtttkmbLfddlizuug//vjDzlXiqfpQhhNS26yMH0edODEwRgIJ0h/R66VUvTHqiSDQojIOUIAUdvfD7iA2RWLjKcstt9wsoS9H5ZElCwAAEABJREFUHAys6sme4Iq77747jBgxolQOlp7kzUFUxFzcX0siezRTD0WJT+RA5IA4wDhhPP6oFQnqGKQsxguk4ACAZcf/VVddZV+kdO7c2VY0SmO6Y1Y+2AEpSUKky/oT97LLLgtdu3Y1f//RWDSrhAqOK1GGE0JHmcJxz5JZMnPmzEeFCdTF0tT3Q8L64tQbroLRK3EQFKkLO0BlpDAHrLR2Ej4/4IADuFM6JYUeDG1IRUseeOCBcM899xB/liozXYCHcp8l6Bgx5YLvvvsuLgfFmPhEDogDjGmkLMCK8TJJEtLH8kdPhGQFEQcBQN7BJCs/xqC45scPYIUJSSrCMOLCAizsCi69NBelBFsRIZnhD8BhAnIa/1gZu5iU7XhQpvw/VF4cgyKsQUTFGxSxsZFU0T9EgBY7ewAZAPPLnnvu+a8BAwYgHSE2ZplWW/4dOnSggfadktbXHRXvl/bt24+WyZmvIdqGfb0xCK108YkcaOscALBoI+OP8cN448gRy0OEBIjwcoGG3bSAA72xlmeobEzH7CAF8ABC7NZjJ66Ej3DyyScjQdlXKqTVeCfI9NJm0U/GD+AkLv+Mgs9xUlL/TJDgMVB67cmK1uAnb4BVUw1U+fR88833/XHHHXeU1sMpVdgZV1N089NyD1QOHHO4/vrrSySZ8QJg/uNq9GMTJ07ko2uL20Z+YjMiB5rMAY0xQArhgCUgxBnJt5ThDaJ7ROi1GHeYpeecc05gd1D+QWMNw8BKKxez8+P6qi5dumTVOHvttZddxKnysrcJE9dBDnsiD86D4eUCCmV/qLjPKT2SIGENohYFLGqkCqalqHv4b3/7Gx9LewMIqpEESmHeeeeFwXb69tVXX11QEbkL+kuh+sQoXYkb8YkcSHBAY4wVDRM7G17or/j296MffvjhKumhjlHUV0TpCRMmzOITHK1Y5AwmGSFFKQ5jzvz4QQrDZNcec+uttw77778/ViOVh/RkSnfseAqMLD+ZLAeNCBOhOpqhsXtxt27dkPyI3mBqccCiZqr0z0cfffSWiy66KLoovOokiaNIWSnpqtI333xzyejRo/lG6nsl4qS9jPhEDkQOVOWAxhlqGcj0ylp+TRFovaB470iV8tOpp55aoh12du7kFVDd2An3oD+l1W8wP5eUADKuguIWB4FNSP4R3yUxgZSlw092MAbAwjTBQ+n4CsZODMjeqIdMGpUgV5HXXHPNr7baaqv/1JefEL9CUlaqU+ZuaSkHS1577bW+StdNFJ/IgaLmQAtX/g8puVkuzjdp0qR5mfzRSQFELPekbrHqsOsndY0tDQEdPDt2RH0cwoYbbhi23HJLvIw0Ns10UDNH5keChgGXnAgcgFaJ4gGYpyhfJEAFNe5pNcBShf8YPHjwZT169DApS4xjy9NqLzvipDVIDaSxQeIoswTKuooTTzxxPjGXfxPUavW3isafyIHi4sBc/fr16/rNN98s+re//c3OImh8WQv4VM4s+kHxLsP1VTYOkcSkmklfd911AE/2O18t7YhaoTFr/jg0ts3OjiOghR8ksHx//PjxxygcvRpejaZWHfCq+NennHLKvj179oQ52hU1bOKbQ85ZmUMNpvGIkhw0A/VT33//fRg4cCCLaO7BanSjY4LIgTmUA6np06evMWTIkE2+/fZbxpWBUV280Pgr0Ti1eOedd15Ku/aGGVoSMiY9KWMVf4snz6wdIAMUJcWNmjJlyg69e/f+QuFNfsi4yYlzkfCYY455cvXVV+c+LW1SVHCgtEz5esNhKnUszSA5QKbgUH7ppZcuMWLEiL1wRIociBxoEAc6ard9jZtuuqlUEhNjC6CpMyF6KemhSpZeeun0UUcdxVEk0gFWvmHmY5V8kvkxbolXPnPmzP8KrP6x8MILcyEC8ZpMZNrkxLlIKPT+dddddz2vV69eXH1MfWAIV06UI1JCmXLw58BphZhYKgakL7roooPETL/vJxMtGoXCAb2buURIxnPLzNLQoUM5i5N1K2yuQqlzW66H1Cq9Hnjggd3Gjh3LHXWASxJsamy6JCxAJ5x22mkpjTviMEYdrAgjH0zCILej6nlb4/RUKfr/JsnqPQKbSxTe3DyanX633XZ7bOedd76WjKSbSgnEsJbKTEmcNKkK5V6GYaVlZQhhoeSuu+5a+Pnnn/977PCwK7cET0UONvPIXipqJ5pX1EnUJUPdZELdZS4kWk60pd7j0RKZB6lW3LPL/f/8tyWu1f50o4024qJ/jrWMULw39I4flXmZaG/pT1ZV+gVElEN5lA3AJQmwo24R6MTghjzi59xPP/30zvfddx//DxAVDMnqHf96N6U77bRTxV577eVpEBxIi+nAhYmbIxST9d6f+/HHH/cUMG7evXv3K5ZZZpkGfytIxnVRvRWuK3GuwgRMf2yxxRb/6tu3r52IVb403s52yG4fY2IKsGxG0ExRLntaINZZ6+qzFMa5LBnxgQPqnEg2TiXjxo3roM6zsHaGNtZS4OLffvvtXcUZJ5oo+kX0owj3NzLfE7F7e5zy2lq0rmhV0XKiZUR8i8H/gVxKdv7f3QoyNxHtKTpBdJ7oAr2f46WU3E32tUSriPqLSLuoTM7S8c8RemoXuL/0HBsq/h6if2o36nyF/1P0fyLK7ifzLyLu/abcxWRfRLSwqI/qCrgBlvxDzo7Sb7aXqgCgA9QioIlJPJJyummC30V9oaJ9+/aMe77lwyS4Lio/8sgjTYrSeyIeY5NxSlqkKcYkNw6/IKX6uZpwtlRf236++eZ7ok+fPpwDI03OiEJzlllzMtpqq63G7rLLLk+o0wJUKTFV0ii8CSkNMCxIW8Y4lcONpdR91quvvtpz0KBBB8tvjnw0YBmYSCFIJJ3lBrwZ0FuJIVeK3u7Zs+dnEsnf12x3r5SmhwlIlpc/8VhOw1P2rJl5uSOEsL8p/HgR4HGkzL1FfJL/V5n8t94tZG4vApCOlUncw2TuItpYBDgBSOSLOEwZvC9MiBkZf05AYxKP+iyuQQHA7aw8DhcBmkfLPDiEgL5yV9kpc1+Z1Atgu1T2f4u40/dVtfWTJZdc8jPx4R3N9M9qgF4g2kZA1lcm5/cUdc56xIvUvffeu+uLL77IhFMqvgA4ZVK3ADZ1MuOEE04oXWeddYhD3HIsIo4nTJJu6uXJkyevM2HCBCa0LTVmL5Uy/sPFFluM/BUt9w+dKPe5NjFH6aR2XmCBBVDAc9KWutlyUMiFG4mKnFkqlktUxV4m6Sx18cUXH6ddCGZg/No80QFFgBSDnf+Iwr9JQuJYWY1nYA+UCQE0SCcAEdvYneUPOAAYTAIQAALBbwUH9wPA+H9xABDgtI8CuQMXIIGwAyAbyh8pq69M0pA/eUHUj7I8f/wgOj9EWbg5vIjJspP05ANwDlCegOfuMikPkDpC9oNEtBN/wgHT9eXXT4OQtvZVv1hRwLyhAOxk0ZAFF1zwc5lfiG8vaKBdJWlzbwHY8pLGFhg1alRX7ZoB+NzQqWza1jNy5MiFb7/99kskXdtnNFp6l7Vr144lHu+lzsZqc+tTTSIPKdJb4h3/p+FW2Y8dPnx4f01+W8w///zviK/jxW/epYLy+9BJ8ltCI3Kn0Zdffvm5JBFy06GpH4xA2Y43xH1YDAI+0sQe1PHmO/nkk28SQ+t9AWRQ6KR2sJxDR1OiwVSmrWiWPAvLfxERSyInZsy11Z4dRWeIrhCdKNpcBNgAUICG8VB+Sf4ADvBX3tkHN7wlHgR4kAcA0luxACUAgSUdfgAl4ZRBfNJD2CElsQc/yBz6IQxyP+FMCjv6S/zJD+kLIn/AlrLcpGykQyRKwr3OblpeKgc3dtKRL/XeRJLA4ZI2/y16XdLYO4suuugb2sF6XPFPEX/XEvUUdRDBo6JfVt5www0HfvHFF/CUk+wmJf3666+cnTJBQO1OaylOH+HYkJw2aaX//e9/IzywzGfyO1XjE4mbK0nvXXHFFSfI3ajvAMm4ucTLbG4eOU2/yy67PL7llls+p0xL1LGYBWQNWVMO/luOiZxaKjKoYXRaO0+rS6nIrKwoxfdocHC+bJHx48cfMm3atLskMb4o0f1tDab3O3XqxPUg/1OrHhFxy9r1MgGny2SeKULq4PgxOiWWVgx03q2DPnyCb/gp+uxHHY7ld5Zm+1b7ZaCTrqFULYPmeEi6rrNc2kD+SNwahMl+grdTMg/8cJdKAmMQA8IsodGXsbS9ShEA/21kwk/Ai02FjnpH6MZQ/pNewYX/vP322xs+9thjhyVOrpdKYgK02JWvkN4J9UtK0hdtKteGlvWZjTbaaPzWW2+NJM3/HmWDhP/5xS0p2HOmRK+Zg7X7UsnaQ1shRB3wj3333Xfvzp07TxczASO2YJGmUmLmLE3FDDCWggZa3qE//PDDsltuueVIdSpm1VaoeeOL/OSTT0qlDO03ceLEg7VMeaFHjx7viK7s0qXLrmrr+hpQADBS1IJqV28NymVlosBmcG2kEjHR+aDMRtJAz+fvFBOwUbTgn0iEqn/it4VhVg1LuMmrKiWCc2/VezXw4X2Tu9rNshFrJQKkCNMg5N5/lxAsDmFmqfmH9jh/6DMQktjqis6h5ItlXiNCujhJJstrNiFsCawyUfazjCQfBRfeozq2u+qqqy787LPPkE5Rr3DTL6sSJFkqbHXX8pBxxj+IKdWY46xVOOSQQ06T1PmRInHjAzei8N0uRxX4hxb4KajlH6twyxdbd4naRh2///77PyiGUz/+2YTd2yOpA6BidgC0SuikDLQMw1NSwO/0n//8h+VR3QW0Yqh0Ju3GjBmzhHZTLpP0NL5Xr17vSw/wb+kDNlR76FgMImY5OhGzOW3lsyTaS/uRChhcSFEsWWgNfCIdsycmbvxJawNdvORzJ/Mrhh+ASvywulNf3jN+2J0E4AZShDnAYXq4+oVbMeEJPIVwJynJM/oXbpa+aygSOjI2dc6WHenrZpl3iNDlDJZ5gHi7Akt32QvqefTRR9e47777mNB+1pKPzSt4wERAvzLggsc//vijtxl+l/z1r3+9Y+edd75bfP1F9CukhnHLQrns7C62+FJQ5dtjDTBbAf2IKX/svvvuR2hn60tViwNrDFA6GgPZZ1F2KhjIdo+P0gQtpzpq3X3K//73v4L5ZEedOSV9XGeJ3JvLfqN0JqO13fuJpKijBVLoiGibmml6A94HxICB6CQmAREhQxqT9uBkpiQeaeiQQaK/AbwC4RURDajgj/xqfBj46rThyy+/DAL9oI4ehgwZEqT7CLvuumvYfvvtwwYbbBC4tK1v3752D5KWqTYTk29dVFpaaqAiiRF9iaVRuwNEHqussorl/fe//z1wklo6zKAdraAdraDlTJAEav8FnJmfeiYbwGCTAtm8ADPcmOahHzWewSlb9jE+ZV3VLfQx+AkRl3eDifSKzgwdGEDGEQ92SneVFDdY73WY3ulkmSNFT4vwO1fm6aLTRE3lgWkAABAASURBVCdl6ASZR4r2E60r6inKi6J/ypQpXW6++ean4I/eT3v1P+sH7dq1QzVA36hQ2fY+xIYyvYsKxQXYwj777DNIaWwFozB75CaN2Vvzh5fRmuXXWvZqq63283nnnXemIrA7yNqapSHMLlWnpGMZAzOdkuWiuTXgFlVnR6RX0tZ7pFPj/FMPgeg/5p133ic1QO9VbQ4Qsd3PQGBQQPKyBzvvg3bQWWgjfiYlabAizjMA1fxUiX5IRBw30xwJad++PSBm+Ys38MzuKRo9enR44YUXwsCBAwOHAMXfIJHfzripEwftzoZ+/fqFAQMGhB133DHst99+4dBDDzXwkm7QgExL2CDpMGgw2JW4yt8GAXWpjaRnRNFr8SUhhyQBQu+//77l/dBDD4Wrr746aBs97LbbbmHzzTcPbKcvssgiQbtQQQPKSJNYWHfdda1+Z555Zvjoo4/CV199FaT3gw+ViDoBYpU8qzuch4TAfwg/3gMmvHQ/3MSDeDd8Mga/4TOSL/owjn5wxAM9GGcEUVRfqAQXif4lwo4OEn3kvXKjJ5OR2+e555476PHHH2dCRJIic5Ts3PiJ3YQA3p8mONzlAl7a016rm8u33Xbb9/EsROJFFGK9rE7SZT24wgor0HFK1dFhOMpjBi715qNMTOJKP10Bw4nbWRLCeRKF2dUirEXp3XffnUcS1cJrrLHGWRpoz4quF2CxtGifqQjiN/Wmrk5VBwKdnzjEJZnGXopB4dIlfiZNmSUEbrGwQfvxxx+bZKSOl15qqaVMQgOQllhiibDNNtuEU089NWjZHIYNGxa+++47ALAa0ZGd1JEN8DLlmMHMDBAR5vFqMy1B4oe0HlcgbO0BVFK2STg7IuGEQfhgQgDc999/H15//XVrA5fPrbnmmkHtDFyJIp1f+Mtf/hL23nvvIH1mePPNN+36XkkOBvrkVQPBZ7x5F/4e8KM/YeJPOPaa/PBPEnlApCE+doh8iFemANxIbejLNpM7p48AvMfgwYMvUaaUY3XQZMZtvaXihdUjw+8K+Kr+QVjF6quv/uaBBx54hqSpVlvyqc51PjCwzgitGSjGVWjWXUmK6J9VD9bdMoJ1cix0fkwtO0o0gLiexl6OBmPpAw88gOg9F+EtQegwJHmst+qqq14y33zzPakdTraDOaUNUMFnZmqq4iZ1dcLfiU5mdnUm4ppbvMAPu8ZzOj1u3Diki5Jjjz02jcShAZsSBQF8+rDDDgsPP/xwauTIkS6JGSgBMJDyJS8jBws6cJIoD1JhFo8f3MSHiOt++NdGxElS1XjUBfJyCCdvJ3/H5IEfZUO0Y/r06cHTEUZc6QjD7bffbjdirr322rbkgS8ajOHkk0+2peakSZPIrirxLnhP+MNnBjZ2/DHdjd39iJckwsgDcpDE7vHJAzt+2AEvDuKSLickHpRohfGYVhqztAxH+gOUWJl4/qxGkHiZDKmLCQIEbrfddhdIqs356XTyzhXBuFzllZd8Ntxww8822mgjRGdb8qhDo6tJs0TwAjVr2L8eovNqtqADlWr5s+9TTz21lMfJl6llEjsrGyy66KJ3dOvWjTuzWfaxawdvOZHP9jEdo64qWIcS6BKHdJg+GC1Ms2a48cYbUxtvvLFtQy+44IK2NBo0aFAKiUMSqKXRDzuFBlCyWx7qxFhrJAcLeJck0kDJRLiJDxGXMPzqIuIkqWrcZBh2wsnbCTf+EH6UDeFOEmFQMr6HI5lpErN/trDpppva8rdLly5hpZVWCvfff7/daU4cjy+Td1AiM/mYu0r+xEtSMn5V3SPpmYCIg729LKRdRyCLtCVno59qCT744IP1/vnPf3LyvIy6ilIaE3bQWmOHyT5NX8nYcZdoWZgWoH9++umn891ntTwLyQOGFVJ9aqyLFL/nSr/C/zP8WS8AJtuFfkSWdGV6FHVibwudIS1pp8dZZ531H8Wfh3i5JiQqKTJX7N+//6maydC1cSLclf3UwerDzA8hDSAVJOuBm9megUYcie0WPHHixKCOF15++eWw9NJLh+7du5t+CZ2SdGPMjhaPdGaJP3VyAImMAUokN3kf6OP+8Y9/2GaClOZBu2PhmmuuMQBTfyJ6NfL0BNQWh7BGUEctZU9tRPxao6qvl951113XCZDof+oeafRXKelLSpWIzRgmMOuXakep6v+zIoXOnTuPP+6447aSH//AQlEL97HKF271Ztfsb3/72zd77LEH52KYlWAwARrjqTTSFUwX0RaUh9yphX2W9En9tZbfiMi5JHWMzurgA6RIP1T5csCQXSM6hZwBMZ8OA5kOBU91Ctstw+6kmc923NSQMHbs2CAlaWA5J7E8rLzyymGzzTYzfxTKSF/qYDZrA2wAtecTzbo5oPflyzPjn8dmZ1RLd3NK7xieffZZ26lcb731wjLLLGO7l+ycMoFYpCo/ACHvpIp3o52a8PaSlMWH3Y1Om0yg3dXzJIUvzZiQP0AlIyBtp2VheWigJTvnGrlZob14k95kk00e2mWXXZp9VxX55psY2PkuIyf5S8q6RIP4W2VWrhnE6q0ZAZOXgf4KyQvQsM941BHL1KFKpAMbjDSkdM1+9HL50LiLMlpWeQNSfL/HB7VsTVM2gGpApTjoKGwrX/YaHySsCy+8MOywww62vGO2v+6662zXiwQqIwt4AJQ6tg08wEuzJp2OaJEawQFNbCaRk4SJQsshrKZSYCLQO7bNC5bg7GCixF9yySWDBrT91yZAzhJkfnhHWJsBXCVdu3btJin6WW0orKbym6R3nTBhQq977rnnACY36qO28C/hTZ2QcXMEiPFimzcqp6P8p3fs2HGiFO18dlOwinbVM/vQgKyjkC2LLbbYrIMOOuhaARE6I8CJ3UIGLTMHZ7LMT20AKGZJJ0F4yRdffLGEQOBwvaCqHUFRG/20UwoOd3Iep6fs/CMMAAuQMuCUH+Vjx4/ZTV5/PnR4zYRBW8cBPQo7XdrVtOMCAmKTAJC8ACgGl6dk1oTcTRjA5e5o1swBTWr0iyxIqR8Y6ONPCg1sDDt6AU+ZFCCASEt+S8fykXfGWbHevXvbbqs2dbKTCRkQn/TYG0lplVfWrVu3BbVZ87xUBBdp95ZrcxrcX9WmuYYMGXK2dLb0TWuf6sMESlXoi4yRLHjJ01YmMjtLoj9+q6224gS7nIX/FA1gwUrpGAZJCc/dOxXqHNS9QoMWMZeXQqdjxwOgQOFIOP6p22+//fiXXnqpWccc1CnIj04AaAFWiPB0ENz4O1E+cSmb+nD8IDzzzDOBf4+01lpr2Wz9xBNPmC5KMyNNA3hNGmPWB5gglWmDzSLox90MMnVI+cSnPg7AM6RRAAoiPn6Q+lClIxtISUwa6lNEM2LySPJaE2F48sknw0477WSHX3ffffeAXpHIvDvMRhJ9hSTtVVbZ/PPPf4zA6z3pYPf79ttvuYmDsDpJcde88847D1afqZDqwY7+qA3kazosJTalu0z6IxO5rCH07dt3iqSrx81RJD80qkiqGkJGyjpwqaWWsiMO6iBs28tIlWc6FYpE2mNgQYBmL44A9NTS8GJ1UpZuhDeFSIsYzS0IXGVTpkwAKxSVSFUQ5UIKCilJUyXaeQnSwQVtGYdrr73WTpMTKFHcJCzVMQtKDAYGjeppfurAJqEx0IiHP+HqjOZPPpHq54DzjZjwEjNJSLPsOquvmDc8Jg19yt+JJHubUCxC5oe8HnzwwaCd28AB10suuSTonWdCQwAQs47aLeWZIPoPfap03nnnnV/S1g0Crse1TNxduthaN45UT65XOv/DDz8knxKpGVCPsFPMJzSAF9nbeJGFz7vonynlX37kkUdur7FUNNKV6h+KCrCosPQ9z6666qqfYFcHg/nqF2leNC8cQlqhXYjBSDFmf+ihh3Z44YUXuIqFpE0h8qE8lJW/KQPAC6mKnUHMEvkRJ3z66adpLV+DOkW44IILwnPPPWczOQMA6UjxAssN9A2qvIEPIMQAIFztIgp1N5MfdUyMSI3kAPwkCQQPIexJkmTCrrOdwsef94AJcPHOIHRdgBf+uCHenQACL9scOemkk+zIBNIXB3iZZCyw7h/6Dv2W/kNM7BD/oWaTBRdc8CZN1I+hlFfdqy0T1Yf21c7mJkpYqk2gCtWnRG2mn5ZRvtJweBi9FX6cdKectHafHz3++ONfV7qiemyAFVON1Zk4GLlx165dp6gTsS43YNKL4UVAaW0TW5P8hTE7yqNMHepOLcEAGjkb/ihv+OREB2M2m4eOrlzcH2BKSR+Q6t+/f0q7NdVmZAYAwKQ0NT4qx4CNZQlxPRL+kLuj2XAO1MXv2nKB14AR4bwHCLsTbgi3+iNGIA0W/NFvsfSX9BIk+QTppQiqi+i3Ho4dcneZJr5NBVzvSno76fvvv2djh/JSAtAB6m83eUT1G0sn0OLTG5sIFWbjAz706tWLA9ZBCv7yu++++yjVHRBTlOJ5GGzFU9tMTTfYYAN2NrgPyo4KqLOg02Knx8RhvUjsHDAlhYnJsqQ0S/XVTspJil9tplJ4XQ87KBBx+M7vV1l+01IC/pX85z//Sa222mqpLbbYIvDdHbOvwiopZRU/Pm2QAxr0AaJpTJAQdk2mQeASVlppJfs2Ujom+4ibsIaS+ilRkbZKJD111BLxNEnfN86cOXObqVOnbqO+fPMnn3xiOlIiJskBV35M6jNQL4wbN47++vOee+55gqS2cQoruocGFF2lqfCAAQMuFdNHaDYJ6iQ2s0jiKdELtVnDOxFxNesRXvHTTz+F66+//oi3334bZTlBDSUADl6RN/Z26owdpTjvtNBCC5Xsv//+JZykpkzASpmmmdFkxqeNcwBgyACL6azoA95kQAv7888/bx+co6DnZL0kIbyNSG+WGn4yfYi+Syj9r2OXLl0214rhdK0UBl511VWLsYNJYKbfYTXyOuFQnToKsEgflltuuS+33357Pr4mqOjIGlFfrQsxXKLwr4MGDeKfFeidp2egxM7U09okIOPCMmY/QIZvynjxs4YPH971kUceacoxB/L5XZ2wixStfz/kkEP6SZ/W8YcffkjRAQWalGViuADSlJ1VO1GmftFowxxQZ7QNE/oDzRS4+CrADqZy1m7rrbcO9913n+koPR5xndR/zIqUbpYQkOqRlJicu8pvZUnyi73//vt8Y4vOVl52QNRM8qQe5tCP6lAuYENSq1D5QzTZY1dI8T2p4qvynzXWztsHevlcp9yRrWuFcNIdcOKFsKXLC5Y3V2ZV8GJRzgeJ0ic99thjKxHQQGI5WPbqq6/ueMABB9y69957L/P444+zI1mhmcuyoINAgBR+mN7xLEL8aZMckPRifQyQoIFINsn3rgkO76DlnJn8vPjii+HYY4+1e8ZQzifjk56+Q7yEf1nGDnBVSJovvfXWWxm77SmfMIg0EP0Q0/PRyoO4JdrNHLbMMstcTVixEg0p1roj0fxxxhln7KPHnfu0AAAQAElEQVT1/XRJOeXaDgZEUEgiTaFgZFeENnL6nd0S2jpr1KhR7bVreK06hwEYnnXRRx991FsK+7u09BsoZeX80iGQf1ozF/oxS6qybSal40i6M0nLO4xFiD9tkgPqQ9mloIMWDU2CBv1BCnP6qwEX4CWVgklc3LTBLRJ8mkU6AAgTqtJ/0M/SX8vuvffeCinz05oY7RI+L4s0VUk7hmzksEtYId3ViZKwfq8ap5jcDOZiqm+1umo3Zvzhhx/O3T9cF5xWhHIp3fkMQdbAbQmYEHf+2KliHP/9739XGDJkyK7qcOik8KpGHNy78sorjz7qqKNev+SSSzaW0p4OE7RrA1ilNXumASoSqkwT8bHT0SDAC3dRUaxskzhQ9V078OBPX5BulYnUzmkBXvj16NHDjlNcdtllYcMNN7RbXpOFZ4CIHWmWmawaKqQ3DdqFZMJkicg5RANC8gOcvFzyoWyBKGMipVXBx/vss88b+BczFT1gwfwDDzzwsk6dOiFl8eEzxw7oHHYdjcIr9CLZ5uWF4y+vkNaMVnbFFVdwA2S1qz0AMYnqfSRRPXD00UcPevnll3uqI5RJokIvlp4yZUpKYMUhPLaWyY8OZYSDjgbJTmeREZ+2yoGEnsn7ljVV/cWARIBh0rZWAOYGWNxPinPUFCaZjxw5MghQ7LMfbQpZHsSThf5M3y3T0q7klltuSWuFUKG+iOTEVx5WLuCEkl591/oh5SgtX38gXY3fddddB6hO5IN30VKbAKylllrq12uuucZubtRLRewGKBykWBrycm1WQjzX26LdKYnVPTW7HSJ39tELT0mZv71E9Xeee+65rTIBSG9sH3OCmLTmTScxi36wQ7JaB1I+WLNxcURqexygv3mrMu/cnExYuDHNQz+46SNJP0CGPpkBJ/vs569//Wvgo3gl8Ye+a4r6Z555hj7lJ9eTmzs2QQNUXoYAyvqiVgiDNttsM/7rjedXtCaNL9rKJyu+1157vbPttts+gZ9EbmYVAAZnnaQl3x7SJ8yvzlQydOjQ+XfbbbfLzzvvvLu1q9KTWazOxDEwcqCZHJD0bxIR2UgnZXb133DuuefaFUOaVAkKU6dOtbu6UD3QLzObTBYGQAmo7Nwhdqkp0HeZfkvqiwnSXd1uEav9FJ9HmwEszSZ/HHLIISd16dKFT2dC5phDve3T0nDpm2666TXpsx6S8vMHKdWP0ZIPCS2rkyq+1xprXCwcQMICZJC6kLSot/qy9T3Aiu9QtasdbrvttvDuu+8SHPiSg3QCJltmypOPmmXYf14C9Li9BKmsQsB3ysorrzyBwLZA9Q7oYmrkVlttNWK77bbjor+UJCT+MWRD2lcqKWtxgd22b731lq3xpQ9rr87AXdjF1PxY1yLlgEtWVB/wkrSP1Y5LSF9llzqef/75pgsjwIENEwkNv0wadKz2nSp+G2200ShtSP1X9lo/nlZYUT0NGdBF0yDNTH9oaXj1MsssM0ov0HZQ6qu8gClMnjyZw5/8V+ky6RJmcSJeojcfkdaXPIZHDjSbAwAPQEVGWtoZUGHHj+UfS0T1UbyM0Jupn9pxCvVz/NCtIlmht2V1kF5ggQUqtGL4WIF8e9hN8Rp0VY3iF/TTpgALTqNclBiNlJXWzgwvD+9aScBEWErABUBJMrebH/BDUW8Slzmq/USPyIHmc4BdRsDHc1IHNCDCrQnY9LCY6p/2MT2AJvCxONhdl0U6uZl4SRq23nrr8i222IJvXvlXYsvIczGla+wnaUpWWE+bAyzYqx2WGzfZZBP+GWS97VNnKCeNgItDoPZle7du3TgeAVihByA4UuRAXjiAtATYAFoCHNdJWVkCmKyp/mkf03s8ApDAFMe+6MAtO4bdFnLQQQcxWfPfm/aQ5+4idsN3l352EdmL9ql3QBdjywRC6Z122okXVG/1FbdUxO0OABTbwBUSwTkZX8LsV28GMULkQDM4QN8jOaAFAGHiB+EPYacvoq9C2U487ISJ7GiDTJaE9OH0xhtvHNZee20Aq7/8kbC2k7mj6DRNxndNmzZtLe2IF+Vk3CYBSy8mHHzwwe+tttpqw5i1mJXkZy9TJi8Wg0N76h9pQIoDdv4C3cTP4sWfOZ4DeWNARiqqlD9+kHtiRxIDrNwvaZfSnv89yAWEJausskrqtNNOA6w6SiVCX0aHNb/SdRd1Ea3XuXPnW6WQP1j5Ei6v4nnaLGBpVkoPGjRoO4HVFKESb6SEzyMAMLl5oVwB02bbT4MjtX0O0J8FTHYMgn+Qcdxxx4WePXtav1Z/xwSU6O98VoadD6jRaZ0k7uwt0JpbZtE8NKhoKtvYiq677rrjpYQfIzGY+61RotvWsF4SuykcrmtsljF+5EBBcSC5PFx++eXDrrvuavVDrSEL4xsCsCAAC+BCb9tH4Zdp9zHn/7dT+ebtoTF5y7y1Mx43blyfqVOnLjRjxowygRRLP16aLQklZfFhtLlbu56x/MiB5nDA9VkTJkwIn332mWWlSdpM/aAKAaiSY51+j3/X7t27D5k4cWLRgFayEWpbXp5WyXTs2LHd999//w9ff/31Hr7e1zKxRCSsSpukhTjdKpWLhUYO5IgD9OGff7Z7/MIHH3wQzjrrrOx/ZsoUAVgBThmnGUhZ7s//Q3zwhx9+KArQapOANWrUqEWPOuqox5566qmOeqF8tjBLuyz2/9iQtPTK7AVqZmKmkTM+kQPFyQH1a6u4+rmdzXrwwQcD/1pu9OjR5p/5AZywen/HZAyYv/S880nSeliT/IpEKmRqc4ClLdulzj777If0t44Yzwlgvqviag5rKyAFKcx2VTAjRQ4UKwc4nyXAse8LAS3awb3x5557bvjqq69wzha/sIXZ3xrKylgwsJLdHo2Jzl27dr2PiwDMo0B/qHiBVq3x1ZKuqtcZZ5wxdMiQISsrNZf1+UzC5w7Y2RnkIr9ShXMPEX5YI+WIAzGblucAn+/45z29evWyCtxyyy3h0ksvxc6xBpTsLlHR57ETBoEB+PF/EBfv0KHDe5988omNDwILjahsodWp1vpoOTe3iINy3AeEmaT5Bw0adP/gwYN7KwNOqiNB0T6bSaS4wg4pePajl1zJPds3/kYOFBcHNFFnK6yNpqz9hhtuCHvvvTduAKhEYwA7fd7GBI4M4QeIlXTu3HnBnj17nq5xNlcmrKAMKlpQFaqpMjBPBJP56pxzI5iQ23tJqnrzqquuWkfbvPxjCJaCRdG2mtob/SIHcsWBl19+OQwcONCyY+loFv1onOjXHoAKCYvxZR5dunQ5ScDnl1eaX6H8FPygFlBRR5gJAVCY7sfMseCLL754tRSNi2lbN1VWVsYNo3Y1jNb0vIxC4XWsR+RAi3MA5TtLwyeffLJS2dotd7ePJ9wsHe0SgE6dOt08cuTInnjWSq0QwMBvhWIbVmQGrFySgrEQdeaqDPznGzFixEkCqx20w8F/ETHlo0Rfu1pGswjxG1ZYjBU50EY5IGkpnHHGGUFjxVrIMYiEtIV0Zf76QQCQEcqky+rSrVu3Bwrtm0MGPxUsOMqAFYBDHWEkds6P8E8jcPO/CHc+8sgj93rjjTeIk2KLV+t5ZokKMRyz4NoVKxQ50JIccGB6//33wznnnMPdb/zfzmQVGDt8rmN+GncAGDuLZV27dl1vqaWWOjIU0B+VLaDqzK6KmEa9kKAAJnY5OisEsGons4OI8G0uuuiiC5599lnC0xJh0z/99BNLwFItC1Oy2y0MihufyIE5lgNabWQB6q677gpXX311VV4AUIwtTP49HmOLMWXxpM86VaqWjuYogB8qVwDV+LMKGbACmGASX5d3UygmoFVaXl4OiPV7/PHHT7/kkkuQusolWQFQtKWkffv23LKAfUa7dmSj1IX4xDpFDrQQB1gCavfPSrv22msD/9tQ48zc+mGs8O/CMCFWJpCCQrpjx45d55lnng8UnzD8WpUKohLOATEFpToSFCAFdVXYgqIlRD1EvQVO602fPv3iI444oqekKP47DiCmoIDCnRsaKzSrVGj9zfUazBqERYocmCM5wAROwzVmwgILLBAmTpwY/vnPf5qJv4gxYhdXyg5QIRDwb+1YJoIP3HKy2Lfffrupwlv9oUKtXgkqILBCWppPdu7tWUAmd/gAUovKvshvv/22qswtRbudcMIJy40ZM6ZEy0D7JlB+9nDNhizkU/Ljjz/KGgqmfVQmUuRAS3MA6cp3BAErrlrmA+nM+SzGT3KMAFZWRY0llonYOYCdmm+++e798ssvV8KjNSlZ2Varh8CKtdvCqgBXuv5FJrSszMVFi4mWkVi6psxN77jjjpVfeuklQAmdlbziEzlQ6BwonPpp59wqgxKeg6Vzzz23uav+AGwZPzCiXJtYXaWAf1ZjlXGZCWp5g8q0fKmJEt999915pkyZwpJvBXkDWEvJ7CcCoNaSiR1a9euvv17+iiuu6Mz2rERdFOwKjk/kQORAXRwQyNiVSsRxwBo/fny4+OKLgxTqeDeUWPXcqvxa7XxWqwPWkksuuYh2IlYTx7h7eg2Za4tw8+X4amIOiI6k1Uu7HCWaGVhzs/ORFV8VPz6RA5ED9XCApaH0u1nwGjlyZNDGFXrfaikd2BTAEQcfaxVyMy53k9kqT6sC1ujRo7uVlZVtK0aur9YvJ1pUjFpAINVJdtbQPRXGf/lY4JFHHul88803W33lFyZNmuQfNCtqfCIHIgcawgGNLQMsbV5Z9Ouuuy688MILZq/lx484ICgAXNDuysfGYi1p8ubdKoXSGjV4bm2Zbt6uXbu1UqlUX/nx0fIiWlP3FSCht2J3sFsIoUxLxhJJV0GKdv43W0ogB9Lzn25arf6qb3wiBwqeAxpL1epYXl6Ost38UcrfeeedIbNJFbiuhgCNQ4yqxC4iY25ZSWeocaqG591N4XkvpKYCvvnmmz7aedhCYeitACvOWkEcZeBIA4p4Q3UxtCQzC3CwjXNWShYC4q1Z4k/kQORArRwAtLRyCRISsnFwu4NzWVxHgzuhbMcJMQYh7EhXmGWKdwWWlqZWASwxDimJIwosA/kuEIBiGQh1FhPYBYQ5ZZoBUg888EBq6tSpiLIVcjM7pDjSoJnCJC3Fj0/kQORADRzQWEN1kg3RioZxZG6ATKsck6pYwbiUZYF//oARRhkBwaQsrYo2VN41bzH+mTbnNiqS80wbkGGnXr16obzjnFUPNRzQAqw4BEqdSqZPn44OK7D1yrkR8hSTShFV55lnHk624wWwYUZqGxyIrcgDB5LS1K+//sqEb6Vo3IUZM2agWgnazApnnnmm+dfwA0g58CFIhK5du3aUHrnFdwsBhxrql3cvloCrqBSWgGVC+jLZYUSJlIGAEBeJUbfUBRdcYAp2hRujYX5FxWzBCvDCP1LkQORA0zmglYolfuONN8Knn35qdsaZWWb/MDZn22b/lktoQFLbbraz5X4BhZYrTSUJ1SkT6YpT7dgNaNlWewAAEABJREFUoBRkt4jKTP32228ygp0TEYqbHdE1I5IGmIWnu7FHihyIHGg6B5j8hw0bFm6//XbLREKEmRqv5SLs6LEg7HZ9U/v27U8fNWoUwgZ+LUIARosUlCgEpfp6crME5ANn6gAFMYmbQg2QEFUvueSSNOCkpaCJrkpDHAyjDCPNHn8iByIHms8B/oGFQMiXf2SIdAVQMUYhljeYXEPeu0OHDvsTqSnUlDQU3JR0zUmzvBLzTRLnO4wRGfGzUl1uvfXWMGXKlBRSFKQ0BlaAl4uwgBn+kSIHIgeazgGpYUzdgkJ+5MiRQbvy2cwkRGBnnGImdxr5YLq8c+fOXKfMhQUWnu+fSiCR78IkEaFc31zlcIYD5LbyASH52XEFRNNZs2bZchA/wmAa4ARlwI2g4Losc8SfyIHIgWZxgJ13Mrjvvvuy57LkBqxsnGbsqHBkDYBXqUCuk8Z1i93/7hWxCrTAD6fW+fTGERlmmORE2SA9JudCvvvuOxNL0WeJIQHTJSviQPhjRoociBxoGgcQBnxc/fTTT5bJJ598Em688Uaz68f+M5VMHjsHKQu7htyhJWvoKqA7W8vIFtFltRhgCVy4QXR3tRCFO0BVKjtoTR1SfgYE6erCCy9UUMgeDEXqgrF4ImW5HfecSrHdkQO54ICPpXnnnTdw5KFbN45EhnDPPfdks9fYRZpizDJe8cdkSYhfWsr3RTUuUfMQllcCLPJagGcu9OaD5j3kBokBK1lnPyzznFF8fsOZEDFgdqB+CYdpspqk5XbckSIHIgeazgGEAVK7lOWf5nzzzTfhtddeI8hUNQI2JC1z68dwAz/sMkt69+79fxqXAJm88vdYwfnL/s+cS0pKuMyenUGU7YAWNxqC0JznyEa86qqrzM4S0JeI5hF/IgciB3LOAcYZmWp8YphAgIUVz7/+9S+sfL9rpoDJzBp+AKqt5c/FBXn9B6wtAlg//PBDP4mcfDcIWLEtClgBWpXK57Obm2++OcsgZ6YYEZ/IgTmXAy3Qct/AYjXDRhdFPvnkk/ZfdrDXQYxnxjH66X8oHmNcRn4eCspPzolcJSkNkpNlIIRUBVhhyvvP5/HHHw/osFxMlYj5Z2C0RQ5EDuScAxqblidAZRb9MO7c/6abbpJPnQ/SFREY0wNk6az0ecOVvGWsitszYsSIdlLK8ZEzDaI8iDBM0Bm7kf8LIg6NwjAHLguMP5EDkQM554DrrsgYvTFjToBj57KQtG677TaCjPw8pDmq/zCeueZ8IQVx04qM3D8UkvtcEzlqKdi3rKyMHUIHJ8rkFkNilTgTOMaAkq9zZy5rICiwMzHbEn8jByIH8sYBgIrMkyoYJC7G5ueffx6+/PJLgrPHj8zx5w/jmtUSRx24187PWP4ZI4c2wCOH2VXPSmC1mXxBIZaDXh7rXBqYBSU/XcsuBco9kB+GKW3znpg6ciByoMEcAKgYfxDSFgn56gQTP8wq5EtCxjfAxX+9Kl4JS0u7PdVAb5SjMQ2jgbZDCLIjeiqu7VLMPz933QcLU9r4RA5EDuSRA4w/wIklIERRLAsh7NyVRRzsNRBjGW9MvhPmnCUXGdj4JiCX5BJPLvPM5vXtt9/O26lTJ9AHacrLwoRooMWdPHlyYEmIVAVoTZkyxfxBe7O04R86CMTsBbXhphZF03gHTjVVmDB/XzWFF6sfY40VDeRAhZ228p91vvrqK2safmbRT8bOWOabX85pcfqdZSFjHn/Fyu2Tl0y9imo43w1yI4NLWARVK/PZZ58NP2U+C2B7FebBKCK3deKlQ+KVNZV2MyggPDAjzWX6k/r50Ph4LlnAa4j34ISbMv2d4CaM94W/637wb6tEezkBn7mivFIz4Ys8KhQnjV08KRX1kh+S1h8yc/5UA49cliAFul8jkwSsakXcfffd5kfnoTPgUMMx2jwl26kXb58jYUKEYUb6w3Sd+eADk6P3uZo6G2USjpkMx03apF9btnPtDO0DmDCdxJsS9VNwhBUTKh90WOwU1jnmPX1jTQpqbJoGxdcLTWkG4jgDFffGVEurBoc333zT/BXfTH6UHmOOIL3wrASRbPCcxINku1vL7u8hWT59MjlImVQh4tB3MdsyeR9866237FvDWtrK+AZLWBZ2EV/4r1dFp8NKtW/ffoFMA7MNyrgxaGBg23TatGk2YJMzlhpNnDZPdAiIhjIwGAyYuCHskVJ2c0c++OAgRd5ux4T3EMrmZF+kj0KEkQazrdO8885r3xO+/fbb1Zqa4RXjGykYZXt78YV/iMxJgGrxm+thoDE7k9z+SlGHaMg1yGRMOU40DsI/PProo2bScDoHDjUYwzqpWdrwjwMUoMVAgBgg8IMw7JHStlTOBx/gO5TMGzd9EP7T9bCXlZXZJ2PuRxzSEN7Wib5IGx988EEDLuxVyFdRPmZXVvj84tFcMnP6ACI5zTCR2Qra9aspf8DK/dP33nuvJeHlO2PMQz/4yWjTTxKgGBgMCEwaTRg8iTSXSeD54gP8hu8QdnhP34P/+GHnkzHOCOJHOEQYZlsm2sg3vrSRT+dwY6+BfEwT1E184mZh7DmlZCE5zbhHjx4LlpaWcsMo+QJSSRO70Ycffpg9b+VfjNNB6JwWoY3/9O7dO6y77rrh6KOPDv/5z38Cl6exRIYHmqHyJlmQf6TZkpsGl91e6zvUABP//ISjNhyaPPXUU8Omm24aFlpoIfuXWN43SdfGu2fwMdmuXbvA9clVAUu8SI5t7OixOgrgdx02bBiSV05ZlBfA0kCbS7WksjNlcjZDRmAHARN/GlYxevRoK99fvC8JiaQ8MFqdki+oql0vq1r9mKGTlIxA+qWXXtrACSUmbRw7dmz43//+F6644oqw8847h2WWWSbwH4KS6fJgj1nWwQGWf927dzeA2nPPPQP/au7555+3s4Js8b/33nvh2GOPDUsssYQtE2vKincNEYYJ0V9Q4mPiTz/BLGSivdQTs1OnTuGVV16ptbpqF+OZi/3YcFuxS5cuHG+oNX5TAiigKenqSwNgQRZPDQGgsLuJPfB/0MxSwD8OpnQ4AMar6v641T77Tz/EqSq1EL7OOusEPuzmm6wvvvgiDBo0KKyxBnpJQiMVGwdWWmmlMHDgwMBhSk264dprr7X3ycCmLfQH+geEG8JO/2FSxsSPeJiFTl5PloauePc2qO4+pithicZCbwF/f4Xn9KlUSE5zDmFu5YdUZQ3ihcnNTgKG0SOPPGJmIf+I8QZG1B8wStbVOyi7KIjMxPHwfv36hb///e/hhx9+CEOHDg1HHHFEWHzxxT3YPkFi6ZH1iJai4EBioFp9F1hggXDooYcGJGZov/32C3xaRt/QLrkpob1fMPDpTxrIpgZxf8uogH9oC9Wjvk8//TTW5Dj2FZP564cxX05bpRL6i9w5ffIFWHOplhCnXSsBlvzNLTP16quvyijsh5fErEgt6WwQdogw3Mw8XImD34orrhjOPvvswEG7Bx54IPTq1cv0HoRB5AXwsTQA6PCLVDwcYCBWra02l+wet9VWWy1wAeVnn30WTj/99MCyknft8bVEMqv0O3Z9C5OceeT5p7nZ0wYHLa4vJz93Y69CAFgp4Wpf3yphzXbmC7CoGIBlx/ZxMLAxnZipvv/+e3cWrEm9Yb5mC6sjIIUFN50XNyZAddpppwU+FD3rrLMCEhbxqhJARX50Ajp61fDoLlwO0Gd5b1VrSF8oK+O6t9khANU555wTWP6feeaZYdlll7WAqVOnBvKgT0FMXhZQwD/07WSbaUOV6roAgjfSVdYtvqyAZy4pn4Bl0hUNpsK8IEx3jx8/HmfBE4DECwNcsFNhQAc7nY9Zc6+99gr//ve/w/nnnx/695+9bCcN92IT34k0EG5ASy8Ua6Qi4QB9l/fm1fV3mXQjafPu8UOCBrhuueWWsO+++waU1h5GH3I7cQuVaC/9nPp5+8eNG4fTdrBlSWIIdgjQqlAbF1N4Th8yz2mGicwALJxUHrMSjRo1qpK7UB28MMCWl6UXYMs7ZkY6a9++fe3fIV122WVhrbXWsibwETcvlPj+n4AsQD/kA8lqTzF0WKto/LElXNX3xbv0wQyLcLPDS5/B7TpK+gagdc011wQU9vQdloXouIhXDER/9ra+/vrrtVXZ8QSzRH89aovYVH8ybmra+tJlgcob6i9c7pSU0Wx/1pdHq4d7BVRnU5RzVge/XXbZJYwYMSL89a9/NSUrIOZbv+iteMHMtsStjYhTW1j0LywOAEYORPQFiBrW9Q6RsIjj/R5JnH/sgGKe/NB9El7I5HWnvtQTsP34448NwDNtZ5wbjogn2CGiQu214YROC3tOyArKSU7VM6Gi5A8w2drWX7gamuaGBinlqqdqBR8kJ68bLwaiGpi8MM0UwWdD4jJTUn/sxIOwV20Psy1htZH4UFtQ9C9gDvDeoIZW0fsWfYnDpyjmr7/+ett9Jg/yoq8RL6kmwI/w1iTqliyfPv3EE0/YLmcmjDFuUeTGDplbP6XaRf1TuSeP5j7JzJubVzI9+XaTB3e5Y3eSVzAE5tI+JBI8WpPoIEhHYrYt95hBIK8TsyT1ZDZEnOfzhIMOOsiUpx4nmpEDDeEAgOTx9tlnn8DSioPCkkxMYmHCQ1dKHIAh2Q/xaw2ibpTrJisMxgN+DaHOnTv3bEi8hsYBSBoatzHxkK64qaG0tkRaEhbEoAesmMnoHN5Z6Dju5y+Hg56XX3552GyzzWxmBOCYMWtrX/QvQg60YJXpXxyDYFd5/fXXt5IBA/xxMEHSx7C3JjlQeV9nvNSn6kjWVyuPVZPu5trzBVgA1XyqHMBVYxl8q6XwVn94IWKq1YNlH9vTgBSzIdIXL2rLLbcMN9xwQ9h4440tHuCGhTiYkSIHauMA/aumMPoV/WyVVVYJV111lU2EgAF9C9AivLa0NeWXbz/qQxnUrxGAldLkvx7pckU1gkkOMu+kPJCwPH835T37aUSjZyfI0y+dgx0bsmeGczsvCImL2Y/PMDhnRRyImc93gHBHihyojQP0lZrCmOw0mG0piKph8ODBYYMNNrCohDF5mqMAfqhPEjxnzuQT4YZVTEvb1ZW22vhvWOrqsXKWUZWs2c4EsOau4p91MrtkHQVgQZoCoKgKUhYzyfLLLx/uuOOOgJ4Bf68zLxDdFnHwjxQ50FQOMGGSdqmllrJT8twKgaTFkhBAI6y1yUHX6+rjoAH1Sqkdi3/66ac5+wg6d4BVufZc3sf/JstX/pVLa4bLQQcToIKQsrhV4bbbbguctQLI6ER0oOTLQiJrRtEx6RzOAaR4WOAHjJdccsmQPBlfaP3LAYuxQr0bQl26dGnfr1+/pXIlZeULUNjK/K2uBiGl1BXeUmHUgxfBS2AmAay0FRtQsKNf0Axhu4ceB9Cio+GPvaXqGctpGxyg73hLNIjtnvTkAWNXQSy22GK2XPS4rWkyRijfTeyNII40La34nBiQ0Yjp8YEAABAASURBVLwnX4BF5aioHWFQFd2UdfYDQMy2te4vHYi68NmE66X4xGabbbYJuF2XwMsCtKgtdvfHHSlyoKEcoO94XPpTTZMeh5H5eoJ4bAgRDzvk8bt27Yoz78QkzuqCgpjMMZNtwF0PIbysojgdRM1+cg5YmjXIE/0V5q+qoQNXNdBSWEE8gA+f1FAZzlhtscUWWGu9nM0C5+if2Ph8c4BbaE855RT7uoIJ1YEK8ADA+AgZMMl3PXKQf4nyWETUQdiAXdamP4BK01PXnJJKza8gAKomUlBhPiuvvLJdC4LeKqmrKszaxlq1ZQ707NkzHHfccYGNH9rJSsBN7bxhtfOAZinsn3JVj0PkHHXiBhc5m/7kA7D+UHWooAy7FhkJCwK88CsoYpZCH4Ue4YADDgh9+vSx+k2fPt3M+BM50Foc4CJAripCp4pk1blzZ6sKdvotm0HmUfg/qIg4MdBsvGl2BjXwChRl3fq7wjiwgQlgQQUHWhJTVc0Qdt1113DwwQebHRGcTuKzmnnGn8iBVuAAt9b+4x//sJJdbcEE60tEC8jvT3Nzb68MGPcIMnNpvIEP8mrak3PA+uqrr6jQj6rODNEvIoAK0KLS2DHlXTgPVxfvscce9kEnnYIOQe0ALsxIkQOtyYH9998/LLfccvYpmy8HUYA3UvndGk1grLNUGaPCwYM/JBkCXHI27ck5YGWqATChcKdyVBrCDxPKRCsMg+s+1l57basMIOWdogg6hNU5/rRtDqBbPfLII62RybNZGvzmV+A/6LSnqY4IMiUFJ2GVlZUBgpx05+AolSw4gBLzsg/XfSRFbraL6Qgo3dmNyUaMlsiBVuQAKgv6qktW9E0m11asUn1F+7gHD6Yosq+yZG36Q2ZNT11DSjGUiiJZAVjEoAykK+wQ4ZgtSklpCUDiKAMVOOGEE8KCCy6INXToMPuoiGaBkCMdgeUbfyIHmssBzgneeeedlk2R6VYZ+0hYmIW3JFxyySUBpEniLHosUJWKyhmwE+Zu/PJODlRVD+ChpwKUDjzwwBCXgHl/DbGAHHBgkUUWyX7XmoPsWioLjjWAB4x/qFnlIv00K4OqiaV09zzZxmQ7kyj4AVYQgIWJf96J20IphK3gqiI0ykwHK0mGRDMqou1iq2/8mTM4wH+a5mpuWlsEUhZj3qqqHzbfcjLmPVPlmZsnI2FNVm6IgRNlAlAy7EwWZp3fGBIhl+Qg5S8YqcqXfCwHCcct3Vu2WAe5rEe0RA40gAMtEWX77bcPnMeiz7ZEec0sA3zhiBMm+mzMZmXZ7AxqKB2x7xv5s40JOIGugNYs+YGyiIiytswDILEsdPIXzZUxiy22mB1lQKeVrA0KTdwOctgjRQ4UAge4O4vbb72PFkKd6qkDJ9wRXsAFxn890esOzjlgafBTqU9V7HAN+JEyAS5AimMOhGHHVFDLPKpHUL2sMJZ72Pfee29zEwaxKwi4mWfmB5DLWKMROVAwHNhhhx2yG0QFU6laKjJp0qT0mDFjRg8fPrxc4w4BppaYDfPOOWBlikXJNloD/lu5WRZOlQkhbUEAFiTv/D6qgxUAGAFMODi6sM8++2A1ICMOS8UimrWs7vFnzuQAgMUFksXQesbUzJkzf+zfv3+zwYr25guwflbmgBVLwx9knyBCr/WTTJe0KpUt/7w8LAFhmmfudr4dxE+obyeIsUMAGyaE1IUZKXKgEDjgfbN3797F8uEzd8mlSktLf9c446hTs9mYL9CgcuisICQqDo5B2FkiernotprdiLoy4DgDL9rPXWE/99xzK4GUmJnNwgEND6QuzOYSZTYmDyTB1157LVx00UUBnUWXLl1MEmQzgPrRFv4hBuGfffZZmDYNFcGfJZD+T1dx25JtYTkPL5mEMBvaMv5/wBtvvBHOO++8sOaaa9pyCqma9w7BT7504A4q+NmYvBtah6bG8/ZTJ+pKPrSHumIvAkrpfVXuoM2otANHM7KoMSmABRghBgJSSFzorn5XbJaCkKyBY/uYeSM6JpmLaRg2M/3lL38xADCPFvgBZBpSzEsvvRT42BVxf7311rOrbj788MPAzRG0A/Cl03Kx4NChQy28X79+AeJbyGeffdaKIS4W7kzCLGaiLbw7Bq5m6uwmifMU3tTUPnj09ttvh3XWWSdwX/pGG20UuJgRP87gwUfyZlIi7ptvvhlOPvlk4yWHNDmfN2zYsEBcz596tLTUTT0pn7pC2DmKs8IKKxTN4WbxDDyg6s2mVLNzqDkDKkjeHRUMKHEeC/KtTQALUnB+H2YmSnCTe4Z42fi1BHm5ybIYfEn3/fffHwYMGBD4d2IPPfRQQJKgozJAiEdHJQ1nxcjPByt2wr///vvA/7fbc889DfA4Ec1A69q1K8GFR42skfPBk8ELt7PF73ZMwOfxxx8Pu+22W+C64U8//TSMGzfOeApf4SXxyAPSYMJpBHgRTh433XST/Rcb8uGdEIF3QhzsLUWUSVluen0XXXTRQF0JK2TSu0tNnDgxZ2MdUMlXewEqLvDpogL4pxSMHj7XAbjyWa6K+/PhwCguMQ4jcMcQoGWOFvhxcEkW5R3tyy+/DFyHy7U2SFcAEgOCJQpxGFA1pScvpA3iEo5ERnx1jMDg4qbKSy+9NGhnhqhFTQ4ytM8bkrS7HybLubPPPjvsu+++4ZFHHjGQ8uUyfILgKYMfO2mQpvwMHiCPH0tweIv70UcftYv0TjzxxPD+++8T3Krk/Zg6ux62VStUf+EpSbcIMPXHbECMfAIHleS0O/+jkAv9MDmTAWABZvksu1rTvYOisKwW2Aoe99xzj4EVyzj+awoghbTADMpAQXpiCYiZHGQMVvwYyMTFjkRAXAYZTRk7dmy44IILAstKlo4AIf4Q8TGLhfy91VRf+II/7Ueq5MuFSy65JEyePNmkD5+Y4BnxfLC7Gz+uE3L+AGTkCcjBW0CByWD06NEBndHhhx8eADDStTR53akTZVNXAQHWYiCwICf1zCdosPwDoNqrpnxVDAFWkLxa9vFOynLQX37L1mB2aQymc845JxxzzDFh1KhRAaAiBJBCHwPo+AyPdMiApe7UGbBhQOEHQOFPfNIzwCDsdGbSTp06NTCIr7nmGtODEUZazGIh2khdaTcmfHCAIQye/Pvf/zZ+olgnDjylnePHjzedF2mJRxiEHSI98fCDZy614oYoh+tc8MdN/qeffnq4+uqrDRTxa03y/z3QmnWov+yQbkCcBkfJJ2ABTEhVmFSIspCsOKqPO6cNIcOayDskHZRwdononNhbmgAQOvuFF14YGEyI9AAVAwfgwQR0mOEBHOru9fY6u0k4A5H4+JEeok0MakzSA4qUCVEm/sVEtJH6whtM2upSBpIpOiaXqmgvPIUn8AdQd/6R1vmCHWLXlXDyJIx0EPkAUpRJPkhZPXpwY1IIn3zySeDaYnRcSLnk0xJEHb0c6op9mWWWwShoUr1zOs4BkXw0GOmKvAErKsxuYYUKwo9lIn5y5v+h41EKnYsBzQ4hbsgHA/Z8Ex2fYwhIV9QF3QkDTi80UA8GCib1wI9OyWDCjT9uBhJu92dA4iaM9BBuiDwYcCjex4wZY1v6d9xxh5VFeLGQt9nrCy+wwzv+d+TDDz8cJkzgmF+w/+OHv/MH6Yi45AE/4BNu+AZveA+4IdwQdtITRlm8JyYQymB3jrwoY/DgwQZcxG9poi2UybvFLHBirIMHOakmAJKTjGrIhLwny3+GiKMNDlosE+UVCMfMK6HfoAA6K6DBdci46ZTeQXE3lci3IWlZtlx77bXZqJylYeC4tOAB+Hm9vGN6GGUhFbib9mBPxvO0xCUMqY6BBpixrX/33XfjXTTk748Ks0Tz9g0ZMiT861//sn+DBbAQXpWcB7xr7IAN6eEbaXCThjDcEOFMcpiEoePChHhn5IX922+/DUxAzz33nP0zVPyqEjyv6pcrN/XgQr9c5ZevfMRTH+85KSJfoAGigqycbOfwKKfbkbDwS1a8qjsZlnM7A9s7KfZcFFBbPnQoZmnKuO+++wK7dnR+BgIDgkHCwGFAUieWHZj4kZbwP/74g5PCdt6GML18kyLIA7fraohLORBxCIPIi/qx7CQMSYFDs6+//jrOopC24AuVhZcO7hxbuO222xpUfyQkeEAe8BUT3jAxYJI/+fJOCIN/lIWdTRDMumivvfYKI0aMsCi8S7PoB54j0cua08fftfeBnGaen8xmDBs2LGc4k7OMqrQVXdW88mNJyA4BwATSOhGu4PxLWXRWXq4VlkplD4y6H/7NJR8I5IOdTs9gYBB8/fXXAZ0VMzIdmPowIAhn0JAGYjYmLXb8GUjEIS5h+JOWDkv+xGVQ4PYw8qddhEH4E058D+MoBVv/kyZNsp004hQ60X54ST3fe++9cNpppwUO1ALY+NVFTBLwAH4SH17AG8Ac3gIySG7YAS74BJ+JxyZIXXkThl6Q+nz33XeBMvCDKItyseeDqKPzJB/55ypP8aCke/fubLjlJMtUTnKpngnnrbrLG00lSnYqzJksB7F8lasiKz8MYF4uvpgQ9nwRIEOZ5I+u4+ijj7bBhRtisLjJoAGc8GOA4M+gIT0DCX/8GAjkq5dvnxRhZ2ARFz/cmAxs8sFNvqQjPfkRxnIS+/PPP2+DnjSEFzJRb9pKHTkgi6T68ccf42yQhAVwwAv4CcCTEP7wb9xYKvNPc5HC8Ae4vDzi4FcfEe+xxx4LSK4e198bZbpfPkzKzke+ucxTvCiVLhEsyEm2+QIOJCkAiv8AzYFRTrzjxh/ycpG8ctKQhmaS60GqF2Jb514+gIGdGZvB9eSTT+IMDAoGA47kzAho4QeQMLhwezwG0y677BKuuuqqwFkg6s4gQA/FJycMMPwok7QMTPKiTuRDXNxeHnXSbIdXuPHGGwO7a+Yo4B/44tVjp5Pza7jhDe3HXhfBB4g4vXr1ClwrxFkqTsBzxOSpp56yYwr8IxLCiUe+8NABH7/ayHkLPx20HEh4J7Wlq8G/TXpp17Z8ySWXXED9lM22ZrfRgaPZGVXJoJ3cgBSn3AEsjjfgBqx8Oago+V8SilEmlVAYnRA3dgY5ZnPJOyd5k5dmEwwDMUDKD6qyNPEODHCQzgcjnR43EgD5IFEwsNjV40DkAQccEHwwlZWVhZ122skOMLL7t+6669oyl7QAFkQFMMmffBmADD7y5TQ84dwP7vXBXahEO6gb4ItUBOEGwGkb9roIsOrTp0846KCDAnqvK6+8Mmy99db2xQN85ztMeM0xBQjgwp88KROzLvI4lOHvmvjwHDOfRF/JZ/45zHsB5VXQgMUSsJsqCQFULAUBMQASUlDLPAATRGmAlb9kN/HPBflS0zs7g+mf//ynSUfcEEkZDB78sTMQqRegAhGGv2ajwKc13CzAt3Aen/qy4+cDBDBkkCDBEZ/DpoAW+ZA3JvmzDCRf0uGHfcMNNwxsy/v/usOv0AnAZXnIm5VsAAAQAElEQVR98803h9VWW82qCwCbpY4fAH7nnXe2JRsHLeET0eEH/IRww0+ADL4ff/zxgdto8a+PyJ9/cor0xyFd4vOu8MeeL6IvM/HlK/8c5ouQsojySwoqcjbtyRd4oLdiCQhYUWEqCzWtljlKxQDmRZOdm9ibS+QL6CTzZIYFbHbcccfALiHfDAIYdGbAjXCAhbTe8ZCiDjvssMDBRMCI+F438mKwMXDdDxM/znYBjgw6/FzKAzxZXkosx9t0PgxepDYGp3kW0Q882HbbbcOtt95qUhIAXV/1kZo4zuGf6Xga+Mg5Jog8ADDMpZde2s6ssfsH//Cri5hUtAsWtttuO9vBJS715D1jzzXRd8iTfpOvMsg/h1ShvACsdhofKdmb9TQ7g6qlq1IAU1/5LyQCrCjDxUHs8s4+udJhZTOsakkue+hIo0ePtih0RtXV7M39AazIwzsTdp9hKQN9Cx8l808vqAN+1AtAIg2dD3P33XcPRxxxBMmNADSzZH6Ik7FWMsiTT31ITwD5I30AhJSD8h8FM9/DcavDwgsvTLSiJHiFRMNymd25qo2gnfjRfr79gyfY8YPgB6aTD3p/X/AMfvKuWHoTz/mOv6dnEuB7Tc5h0ZeIRzgmlLTjbirxLiHS03avL/mz84x/gRNjHgGGo07Ym1XdZmdQQ+lUjCWggxHuZDT3xy8f5ZNvlpAwcNCpeNlffPEFTiPviObI04+XwYyOEh7lLIDBTM9A8iUbkg+DpCpINbRaDCTAjitqKJN2Y1LOgAEDAgP80EMPNd1aQ/MshHi8s2Q9fHIAMFi6oYTnviviwDsABzuSz8CBA7HWSQx8IiSlUsoE+Djsu8oqq2R1oAAH/Fx++eXDLbfcEnhfpM038R4pG9PrS5nUBbPAiTHOmAcHsDerus3OoGrpmf9LiGTF6fbyRDiVhhJe+bfS+SjFgeGtt97C2WrE1ScsabgxFFBByuKbMK4vYUnYlIpxApt0/fv3D1xVg0IdN50cIGSJyT3ggBr+ToS7vVBNByikC+pInVlOYwe0aB8nzll6w0sAi9tDzzzzTDt0S7y6yPsHYOfxyAd/QOuKK64I/nUEk94222wTrrvuugA/cXuafJsAKoCVLIfrdJLuArUz5jk4jtnsKuYcsBI14lpUbhr9Q35+06isLf/Q6enolMyBQ8zWIACKcjfddNNw/fXXB5YrKHfZDmcmJ8zJB6i76zIZWB6f/1vHbZlIAb4zhpLd0zsfcFcdAPgVGnm7eIfUjTr78s3DACuU3ujlkF5ZKiJhOb9JVxshsQBOHg5/yB9/wG+DDTawZTpSHB9ao/RnZ5b4LSHh0F7KSgIqbojzdJhFQHztAgY0u6o5ByxJMoh+HGdgWYik5ZV0hM15mV5AbSad0Dtla677WQJ6HdkNRPnNGSvXlfgAJI4PUOwNIQaXt/HYY48NLGcGDRoUGHzJ9D4Akn6FbPc21VTHJI/4rg4wefDBB8Mmm2xi0ZP8No9afuCdByX54xIUx0q4FZYvFvzWBm4xrSqxeh75NJN1/d///pfPonKVN6ssVlsAFsJLs/LNOXhIV4OCnQOjPVQzdglxUw4kr5Z96HQAlpfKJyl0Nne3hMmgqzobe51YYngdkgMQv4ZICMSDACbSky8DiYOlehcEFTXx/gByyBuStOPnbnYCOUICL/BvCMGvmvjEspAw8mD3dcUVVwzkz7tkSdrU5Tv5NYcon/SYrTn5UocGEkILS0IEGaiByWqOlnMQUecBRfmGsJOKRMoqk+mgJWv2cYkr65FPC4OZ/Dk46Z924G4JYnkBiCTLYiZnUOAnnmEY0RHNoh9Jq/pt+EOebM97fq7b8hy8PHf7gHR3oZq0K1k3f5fu5+4k7zysPjOZN7zzPFiCJcPIB34h4Tgg8jE5/i1JDq7or6q+z5asRyPKYjk4WfGbJmEpYfLJOWBJKgCIqBw3jXIWC/DiqIOXRTiUrEfe7N4BvVPT4fgAWPXMnpvJW+HKGPCgo8tqj9cHB4MC0+tGXMANPw40uh13QwlgJD86M7qtZDovDz/qUXVA4l9oBE+oJ23i3VFv+IlZta5N4ZfnQZ6AAXl43m56HOpBHHiLxMwZOA/Lt0n9vD6YAFa+y8xR/khYgBbZFZ6ERa1EABTLQSQs7BCAlSRFy+31qWRYlXjRdDQ6GJ0ROuOMM7JXthCfDuAmgwI7RFrM5hADjfI9D8p3e1WTuO7XtWtXtzbJTIJTTRnUVY+a4reWX5InLA+pN/zEzGWdyNPz87zddH834S0Tg7tbwqxaP3aVW6LcHJTBwVFWXYAVZrOyBECalUHVxFrGeMXaZcIcrDLOSkbOy6+Ue8bhwMNs7eCUFOe9Y2IyKEhGvGQnwS9S5EBrcoD+SflcaYMeDXsREBIWKiFwoNnVzTlgaFuZm0X5L89UEP0VZUBUlqWgk/vhnzcCpMicl+2zNWDFh7D4Q8SBACncUJsAKxoSqeg5wIRL//SGcNsEH9O7u8BNxvsk1RETVZGsTX9yDhoa6IiAw1SliSLWrlTUSV4t/6hO2dPKbHXz8pOABZBBgJrXDjcdxd3RjBxoLQ7Qf5Nlc489Ko6kX6HatclVMXr06O9Vv1lqBzgga9OfnANWpipfy/xRxHYm5zAAsaqVrepW9Nw/gBDAA0ghQYlpVsjnn3+evWOKMPOs8kO6Kl7RGTnQKhxgAqVgNoxa+2sN6tFQkoqFC/xmaNyBAQ1NVmu8fAEW/3iCk+4zVTLABMmaffJVbrYAt/iLFsPMi7U/fpj81xX8IdwWQT8OYMSTMz6RAwXDAaQrPmanz1auVGG6NIZSEhQ4OJqTCuYLOFirIlm54j1Z2XyVmSwjaxezzM7Ojphndv/hZDSiNS+fszURqJwz0SxEDnBQlK8jqBv9GbPQSWOu4rfffkM1lJOq5gs8AKtpAgAU75SRJK84fm7Pm6k62I2cYprdB+UFcZ4GsOLfRWHin1wCOtDhHylyoBA4AGDxj1ypC5MsZqET469Dhw45WQ7S1nyBBuct5hG6ImGxrQlwQV5m1SUi/nkjgAjyAmAip5px830Y//EEO/ouTChpxx0pciBfHKA/1pa391v666677mrRACtubzBHgf+oriUzZ87M2XjPF2BxFouT7hxrAKgoB4K9bmJvdRo7dmx48MEHs/WgY2Qd0RI50AIc0MReaykOZly8yB3+7HIDYqwA6kpXa4YtH5CSfhgBJicl5xM8uNfdP8sBtCDKg3JS+VxlwrLQ/7modjUCy8dc5R3ziRxoDgeQ9Pnflty8QT7oWjEhBzPshUw//fRTwQMWFUTCAqSSvHSwcjMZ1mp2jjhwIyef5dBBikWh2WoMiwW3KAe48HH48OGmi/UP2hvyX6lbtJItVFi+gIMlIfqrfOWfM/YAUGR277332rW32KGG/Ndf4kUqOg4UZIVZ5tVUMf4rEpMpYfPPP3/2g/0iWgXkTH8FD/IFKCjakbDylT91zwmhC2AZyNkWZrLRmX9SwR1IOSkgZhI50AAOSDltsZLApaWU/XsydFcESnmNEVgBoGvFNI8C/lG70hpLCDA5qWW+AIW7sLhugCUhZTjlpNK5zsSVl++88064+OKLA4p4MTrXxcT8Igfq5YD3OyZQ/onG22+/bWlQtnP8hhWBS1fFosPq0qUL49/a0dyfnGVUpSLcgwUhaVEGRBRMCHvBkHYxAueymN1uuOGG4HdlcydVwVQyVmSO4sDLL78czj77bGszkpQfYygpQQYIgettWB1YhAL/0UZBzsZ8YzNqKGsWVcRuItavlcpAsS1/e1yyMUcr/TBjQYjYzGJ0gpNOOik8/fTTgTupkrosAM2r6bOcu6MZOVATB5J9pmo4ElJN/eiFF14I/J9Jj08c+iVuLp7ERNrCzDf5GAUgKQv1CfXG3hCSxJieMmUKK66GRK83TiUwqTd2wyOspKhlIiQsGX8+NNhddb1Mj5Nvk44AibF2owOgNXHixHDccccF/sMOuzG+M0Mc4lInZj06EvZIkQO1cYA+Qxj9pmp/BwzoRyz/iAOxBOT/HaJL9bT4txY5ODlQNrYeSp+WhDVPY9PVFj9fgLWBCkS6gmSt+an6AmuOlV9fpCtKQNRG+uPFsDzkqMPee+8dUHgmrxr2+KShs2FGihyojQPex+k3tQEQ/1+R9IAU/0+RiRJ3cnLH3RpE/QFWAJf+jrsx9dDYmbX00ksjvDQmWa1xcw5YahB5LqESka6wy1r5ofHdu3ev7NlKLtXXSkZaQrrCwfKQDkbH2WuvvYJ/ukO9CYdaSiSnrNaiWG7zOeD9i5yS/Qc35H5s9Oy3337h2WefDfQ9DfTA5Emc1iYHTgCLcSKJqbFV6iI+5GSnsEZAaWxtqsRHKwhYQVWCZjt5SX/5y19mO1r5VyKr3e9ONXghSFfYmVXoOCg/Dz744IDEhZswyNf02CNFDtTGAfqRhyX7D/0Owu/TTz8Nhx9+eHjxxRc9anA1RNajACwCHavFwgsvXOkiAfOs/YdVFvrsnCwLcw5YX331FUjq+db4lTbAsOaaa9bexBYO8R0YOgk7hswgdCaAlapweO+ggw4Kr732Gs5IkQPN5gBABiHFH3nkkeGxxx6zf3oLgNHvMKFmF5SDDBgTZOPmyiuvjLMxxP8p5SB5Y9LUGNeBpcbApnguueSSfJbTIZO2Wv4AAWv5tdZaKxOldQ3EXe8g2JlFeDHuB7jScV599VWbBQEtxOKkorR1WxBLLyYO0L+8vprcw97Sk7pkBYDR7whH0nc77rxTLQVQJ4IYs1739ddfP7g/YfVQicIBrDKln0eEQCOvpj3VAKVp2VRKBWBRSe7EQhysFIhiGw8BWwAgsLcmUR9ASYwM2AEnyOsEOKGQR+piNtx8883Dgw8+GFxR6vGiGTnQEA4w8InH7QvLLbec7UTjhtCduh4VaT/ZDwlvDWJsUK6PVVQh/fv3x6uhxOV9qIfAGsyCAyxAyitZrVEMfDxXWWUVAwh/gSgZ8U9SI1A8mazRdkAJyY+EzGqQ26kfyk+kLupDp+JeogMOOCD7XRdxayJAsCb/6FdcHKA/eP+oreaEE6+2cPdHuc4S8LDDDqumVKe/0Nc8bkPy87j5Mhkb5E29AC3GwXrrrYeXE+MdO+oft+PGDiHAjJMHQgygBcnZtKdZiWsqUgOc65G7Kox73amkrDU/m222mZ19IpQZBRNQwATY6ATYW5uY9agXMx4vjfpwvbK2a8Mrr7xSSUGKlOYn5MULokYqcg7w3nn/AEpzmnLPPfeEPffcMwwePDhwIJl8m5NfS6T1NtOX6dtrrLFG1ZWRYwhj3e2AF9XDzf92AAsAL6QrAIywJhEZNilhXYk0M0xVOB8/y6j9YRuXUBc7sXfoMFv95ciOX2sSL4y6AJ6YvDQAjDqNHDky/OMf/wjHHXdcSN6nxQl5wsUHjEpUk1+lCNFRUBzgvXuFGLRud9PfJ4BWGwChSjjtB2hT7wAAEABJREFUtNPCySefHF566SWbpGuL6/kWksn4pH3U6f/+7/8wqhLqn6RfErwALMhBrPAAS4OaCiYbUMkOCOCxxRZbYFS6MA/RE086QiG8VOrACwOk6LDUnTriTz3Hjx9v19Ice+yx9uE0h//whzwOdqekH210/2gWJgd8oPLeAS/MZE15n/hBSX/sxOc/M+2///6Bq7jpG8RH/YFetBjeP32eXXTqSt132GEHmlaVACj8kKIwnQAy/FARYTYLrMg0LxKWAOt/ZC6ikjIqPzABHxTXAwYMwGofc2JRWjs4RxyYhF9rEnUAoCA6mdcFf+yAGXY+qWAG3WWXXcJll10WuCWS8CQhoUHuRwdwezQLlwMAD4AEeNEvq9YUvQ5Xwbg/h4rpAyuuuKJdDzNsGP9XOASACpUC6g/6E3ZPU8gmbad+q622WlhiCc6E46pEjiMuRRHI2IeGy8H/KP1NZjJczsY/XlDjU9aRQqDztIKpbL35n3rqqYoaAi+5U6fZ30jCIMgCWvkHQPIq1AQ2zD7o2zzem2++GU488cSw++67Bz5g5ZQ8gEYexIGw40dHxx6pcDnAewKoIGpZXl4eku+NfssRBL455b/anH766aFfv37WB/gPN66rom/TV9i0IR8mq2R/wq8QCbCmXrRxp512wloXuaQFMDH2kbBeUgJURAAW+u1mSVlkqvxy++iF/qocvfKy1v5suOGGoU+fPhaBmYcZzJnkg9sCW+nHOxV18U5LVRxQMdVeu1SNTktHJPytt94KV155pc1I22+/feD/yY0bx2YJocGkSIButiv+FioH/H16/ZCKku+NbX6OuWy88cZh0UUXDRdccEEYPXp09pwS6ek3SGD0E/JB0sKfvoO70Im69u7dO/CZWg11RTCBCHI8cfMLeX4uAriI0yywUj7BM8aeM9Ig/0Az0w8NyRAgQJHHt4W8QIhOwUtWPg3JIq9xqAdEXRxIKRA7/sw8uJlpmU2x84IxaRuiPyfl2R1abLHFAmL1eeedZ5/6ECdS8XHg+++/t2U/J76ZYOm/Q4cOtTvX6RO0yPuHxkFAssIfoKNvMzFrFRK6dOlC1IIn+njPnj3DAgssUFNdq2IIwIQfIPWBEoAD2JGuCJNX0x8ybnrqWlJqnTtGg/cCvaxJikJlZdiTrHDWzv1Trh+CMbxMOoIPfEvZSj90PKim4vF3Ed/D1ebs+SxAzv0xmWHRZ/BF/rLLLmsdnFkZvRfHJNCDofuaNGlSNg/SRWpZDvCeJk+eHACmd99916TjffbZxyQo+iXSxj//+c/w0UcfVaoY754+4Z5uZxLGTr70bQ+fNq3OvSmPlneTDSUKYbxB2AFYTNwA7AMPPIAzS7Qn42AcJ3HE7fjfqTiTRbPEtwrR76JmSVmeufLM7SOF+k1q7MXKlQqzpk2HEDDlZQ8NMgsghc4HB7tuzEK8fAi/tkwsH+67777AYcINNtggLLXUUjaTAeB6uba0oPNESuWNF+qnAX5D2JEo+IcPANPqq69uZ6eGDBliSz3eCf0TMzFoi7aL0l5WAbSH8QbhhxvCfcghh4RevXpVaiP9MQPEYEilcU2aCRMmDB47duw7yuMXUbNAKlkwhSXdObOrkuixrleGF4rGi34WlYr8qVQ2NyLwqQKBnMWCadjbOnnnR1Kj49AJaDvLSUzckf6ws0v54gPAwyCDsNPnGJDwH7v6sknD2KkD8bC3BaIttJV20R7s+EHYy8rKwlFHHUVQlgjDkVhBJMdySv4/Syq7XrrpX4iXS0oWlMt8LS+96J9k4d8q3yMT0EKqgkBkysauoBA4Nb7bbruZnQ+LUWaao43/sESgs4hX1lJM3Og96Bh0mkj5k67gN5TkMW6AC/7bS9EP70SGPfgTxwHNPIv4x9sBD2gXTcGknXyChvoCPyePz2RLGvlXGsvq0/9dfPHFR8o/5w8F5TzTKhmypXm//NgtwC5rzQ/Lwk033dQCUWLDNHO08R8Gg7cVO4MFEz/sRUp2Z1Kh1x0+Q9QT06lql0PihRisvBcGM1Q1XrG5aY8kItu1hge0CT+Wx+x6n3322ZWaRDgexMXMkAsg9s4lcFwhHqFkzwTnzmgJwOL8xbeq8qsiJC6kKo48oIyvVP4iiywSUG6C2jAGBFeaNv3QVr1cW/K4nQbjhxt7pJbhQE1gxXvAn0EN0S9xUyPCMIuZaA/1B6AwUcDjR1vPPffcwO49/k74Y3ceYBdlx/HMmTNHK87r8svLky0oL7nPzhSkZS37hpxsc06RCSLLqP5su+22du8UISyLMNsyMVPx8iHs3lbcdBwGRaS5TIeUDz4gTdQ1MfAe/J0Qj/gQdsjDitmkPehPaQM8xuQapaOPPhqr3apiFv2g05JhEhn9E7sIHEEQSWvn83xtHKG/lnfuHwrKfa7Vc5wprzEiPtnh9OR02VHAG3Cx3Su3fVOIGHrooYfapzoJhhDcJonO4g2js0DuJowBE+kPk0DzwQf6WHKigP9OvIckKBEP8jSYxClmoo/RJtrAaXzGIjuCl1xyCV7Gd1/pwH88JUFh2CQiC0AVZKa0caTks+6TPW9P3gFLL58tTRqF/oo7hj9Ua5C4cLM05N8AySvYaXEsKPnY6peddIFtZtntAeFhMg7EV8xipmSnp0N456FNyTDckfLPAd6BE6Ul3wduwjCLhXysUF/GiwOw+9M+2sS44jQ+erozzjgj8B0kaTR+MWwcZuwVxJFnheclO8BWPnHixGskXSGM4JUXSuUl1yqZqqFIUhxrQJf1XwV/LULCwk/W6g8nwk866SSrn5Db7rtWPvYdF0xmF9HF2Oqpo0/kQOQAHGDSA6gAKO3emVIcfwg/wIoT7BKN8Aqcudpuu+3MnvhhHDKG8ULIwHQ3du6Ee1uAdbo58vhDRfKYfaWsaSBSFRIWn69PVKhfO2EILnf24TAptx+svfba5gdDEVlxwGTMSJEDkQP1cwBdMMDFuEEqYuJn0scPO5IVuTDW+HCf/4pDGH4JcqByL/9fgykJDumpU6eeKiGDDTYPz4vZYoAlxgBKNIjzWG+Jed+JYAL+Sco2tGvXrmmu6Vh++eXNTzsQ2e+vOPYA8y2gyH9i9SMH8sUBpCvAyfPXmGP5ZoQfYwhhYJlllrEPt/tkLiJA+iI8Q4zPjDWwu+92BI5Z06dPv0rp0E+7f97MFgOsTAsALNa4X8n9vQhlPMyA5Kz2pNZZZ51wwgknhIUWWsi+r2M2YL0d9Jd8EXLGJ3IgcqAKB1CQA1IAk4SGLFABZCjTkaT4DInVjN9NV8u4SpOPsk9iRpnAapqWmucrb3TVCs7vkyw8vyUpdzUKYGJpOF2NHy8CofFTqD011odrLS6++GL7TzUwkxkho/izRPEnciByoGYOMF4I0VjLghUTvkDGjiuwocXhUP7dGPG0vLNvNrFniPFp45I85MeqiDFM+hn620pLSL4XVlD+H6tI/oupVAKNZZdwkhgAM3BjJimbAHDCscceewTuxRZzcNqVHVXEVvOPP5EDBc2BFq4cYwTyYpGsACWNPbsBlTHF1UceXocgkJLA4dHQW/08bdq0Y3r37v2ee7aE2eKApUZzkPQniaJTxTSU8Emgwk67zVS47Q7++OOP+AXuTd93333t+ANhfjrXAuNP5EDkQDUOaJyZH+MFCybEJYKsXAAszj4SBrF0xEwQGFGBW2MXAzuA9dmYMWNux6Mlicq0ZHlW1vDhw38Rks8rwEGnxalYFHmAFARDMNNikCTatC0FSQgzzzrrrABx+RkzBbMH/oRDSTth+EWKHGirHNAYsQOcmDW1keWfg5bGHMs4k6w4xX7FFVfUlAQ/xh+mE8tAt6d/+eWXzwVyO7TErqAX6marAJaWeSjouqsS84gAKwcpOe0WVBhE3YQ/GHjPJkAIBSHrbs5i8TKEagFRFyUi9tkxgynp3R7NyIG2yAENEAMspCZvH+AF4dZYs69GGDco4LXzbnevcd6K8UIcEQAFyWpP5UFnXrN/NN5+njJlyq7Kf+xsn5b9rbVi+azGqquuyrIQ0OK7QvRZSFko4B283ATI/qxKxgbz+Xzn6quvzh5zQNrivAkvMBPNvndyezQjB9oiBwQgAbASgBhw0f8h3LQXqYojQMTjkxt23FmhuC6YOKL6cIBxCKCVa1dwD6Xlm2Ala/mnvorms0YsBwEpJ5gCwZhq5cLwpCcS1X777RcGDhwY1lxzTQtKp9P20tj5ANSqprFI8SdyoI1xAMByYgzQ7zFpJlIVJv9P4KKLLrKNK8YOflOnTsVwqgkL0gqEWPGkpUt+oVu3bk/Jr9WemirZUpVByoJ+VoGcx4KQrCCYJG9bHmJP6yVg4mckt80sgBaKQ/77DjML/khbAJZFjD+RA22YA8l+jlSFG5MmMx4wOcvIAezk0QXOM7I8VHhyXGGH5G0P+AAFxZ+sP5aCrIwssDV+rDKtUbDKpGwkKoAK0GJpiB0TqYuwCgEQDExn1tvYlTTYco9ZBQdX0txwww2B2xERgZldOGeSSUOUSEXHgVjhxnKAvk8aHxe42QlEub7jjjsSFFgearMr+Gdu5vnnD2MS+tMnhHJJVhLGpq6S7w+bk4XWZq9audri5csfCWuGMudiP07AYwJe6LSQtCo0YwBSTijSsStJsANuWlObnSuWTz311MB/MxFjzQ/QMkv8iRxooxxwcKJ5LP80wWMNfGrDDb5IVmussYb5oYBHz6sxZW6hEGZdGFA+bdq0kQKsFRdZZBG+TCF+q1Jdlc1nxRArUbhzQpaPoCHsHLgCuAAxJC1AC4DKUobZLBFtSajtVUAsaKs19O3bN5x//vnhX//6V/Z6jHw2IuYdOdDaHGA1QR0y4wKr/X+EU045JfCv47iJgTgzZsywM42MFyIBbJklIU7Ixxh2iLH386RJkzbk3/bhUQjUWoBF27li5htZ2B6dKpN/0gZQ8Y8X+X+GgBhLRACM5SF1hYmYLAk5p4U/dgiGK5sQ/v73v4dXXnklsJNoHpkflI3JF+trfILxh7BD2BGpsUeKHMg3B9A7OVEW9mT/5DwVlPQjHmoP+ikARJoDDzwwvPzyy5X+SzNpOnbsaGOFNKI0/RtT5A/jCjK3Vi7Dv/rqq6WXXHLJCeaR358G556tYINT5C4iN5AOV3bc3gA4IWEBTg5SUxQGswCyn2VHrwUoYQJc8gq2eyFLmnW5zIBYLDOtmSR9wQUXhAcffDD4+h1lPC+WWYc1PDMPL5MXjT/Ei9TLVRbB8zJ7/IkcaAkO+BIPE+KANP2T5RxEnwWgmHwxUXvQ5/kXeXfddVdAl9sr8z8ESa86O1AxVhg78rLNLMaQjX/iQQSIhFXTh+lnU6lWGJfyKpzHKtxK1WFZyJ06MJQjDjAQgqmAFkAFgCF9Qei3iEscqow5Sy8Qv7SAx9qSeYnYU9qCNbDiMn3On+gFkC5MnDiRXQ87Qa/0trQEqJSHLS8RnwEvDqZagrIu5VAAABAASURBVPgTOdACHEiAhpWGWzok65/0a/ojUhZ6KCZfgAo/dslZUeyyyy6Wjr6LBaCTyViQYQ/jjUkfBxdoYtpKJROXe60+Elht3qdPHwQGwguKko1psYqJOYDVXCqQ8mHiPLLPLYKZSFOAEybKdwcr3IAUYIYdKhfI4AdoVQh8SM+OIlbs+If+/fuHSy+9NNx+++1ht912s1PxKitImRgQqVUfAyolsu8UAS/CmdEwI0UO5JMD9L+68qc/IlGxw0efBMiQotZff/3w1ltvhXPOOccmX8+D+NjR68pkjGXHgtwIBDKyD+FIX9M1kZ/13XffbVKoYEWNqSxmi5IYDlghVQFIgBMghJIdNyZ+SFcQO4mEo9cC9QEq4uGHFIaJX7nyTWvWoU3CsRQmLyLbtrXWWitce+21gX87vvXWW9suIyI1y0k6BBGV3sALOwCGWeAUq9dGOQCQ9ejRwyZRpH5v5sYbbxz4JxH3339/YCnoAOXhbnKAWnYHKx8L7eXHg74YMy2Jber333+/pco6X/khAOBfkMSgbvGK6UUgYbE+RgKCkUhXSFntVJl5RdQLQAO8ACVmBUAKwELnhcJ+pOKNE7PHiMbJPlkvbrrAB/DiJaU1G5G/gv7UR6ET2HnnncOgQYPCbbfdFpipAClEbCLykgEv1RFnpMiBVuGAZlybUCdMmGD/x4CVAEB1zTXXhFtuuSVwJQzXiKuPV7qnvYbKMpZ8+edgxBjpqAl+1k8//fSIwGrV3r17v15D2oLzojGtVampKni0iO+SYNZQ2V8UYR8mk3t23pH5luhd0ZsCpscl9dyjNfptMh8QPSOAeln0uvzIZ4SAhl1GJDP+G0+JXoqSBpulzJL50e6HvfQffvjBPu/BTRBitMqpFp+wSJED+eKA91PyVx+2T8w0AbP7HVZZZZVw+umnB76dPfzww+34DvGYZMvKygzYcNdDgJWNB42V9ko7QWD37zFjxuzdt29fJv96khdGcKq1qqGXgtT0mcoHmLgP+mnZ7xbdKbpVdJvoupdeeunqYcOGnS37qQKmS7XOvmXmzJkPawaC/iPp6B6F3St6RPS86G0BzgiZSGPlKkfWmh+9OAvgnq0vv/wy3HjjjYFvrvBXvtZpLEL8iRzIIweSYEUx9Fn1b+t/qC/uvvvuwL/e6tevXyBcQIOR1cWao4afRL6sOEzK0iTPEvBLAdb2Wk0cryWgLw1ryKHwvFoNsGCFXswfGWKnAvvvcmPHhCoGDBhQwb078sf9u5ZwMzt37ox0xpGHH7R7wvGIzzUbfaw8/yt6UsAGcCGdTRb4oIxndvHlod9NzSl6RZ/9KH/7tOfrr78Ojz32WODbxMQLt0gqw5T0mOahH5Wv38oPedHhiIeJOxkDt1PSP9rbDgd4v94a7AIH6ztJv2Tfoa8QRn/hZDobRAATp9X5ioMwJ6Qqt8sEjGRUesyPcgVQBJhb/TktXdirWmYOkGrkTYWbPxGKhVoVsJrKJBgtQsfF7AAhTXEAdZTyBKielAlofa2OMEWdgHY6YPlVr+jOqr0w5Rv4NvGZZ54JerFho402CsxsbB8L/OwCNEw6IJf3uySGW2Wp2GDb0HQU4mGqo5honwzHD7IE8adoOYBuSf3LpKFkIzRp2jvHj/eMqoENHkCKNPjRdwiH0JtyLOGFF14Ib7zxRsBO/1FYtT4qv+RD3yaOE2Hux3LR+r0kKvrztQLBrQvlMxsq2liiYY1NUzDxBS7sILr0hHJ+oirHbiLgBXBxFQbrc85rCTvSFeooVV+sklR/6EAcMB06dGh4+OGHw3nnnRc23XTT4J8z0AEnTZpknzsQl86Y6WB0EhPX8Qek6NCEQV4SfnRed0ezODnAe1fHssozaQFG6pd26NjfN/2ACY9w/EhDAvoS/2GZf7AyduzYwNJPKwqb8Ain72DWQ6hWGMdORGdMYJrCfsqUKbepr64kJf2xrFAsoEh/aGSRVn12tdU5WCrygiCkLo458E0ioGXKeoHUSFG5UrDclBFYFrJUxF4vIZIfd9xx4X5tI993333h+OOPt+1kEmrGsk5BR0RU91PyzGgQ/t6hiU8nhPBLzrCERSo+DnA4mfep/mXfswJG2PEDvGgR/YAzVExyTFKAFB/po3r44IMP7IN98iEuadWnsTrVNEaZdD28LGOh/5s0JXep+t3PWv69rk2ldeebb75DFl544Q+VbzKdohXfUxMziq8VqrFeRoUIwOKlYfKpz+cKul+d4El1oLGSatg9ZEZiOdigtnO4VC9f2YTAjLjZZpsFvoBHdKezsdW87LLL2j3ZgJc6SQCMVF7QVrEtC1QvS88PeUHYIxU/B7x/8I6RoiCAij4AeNFC6VwDfYSjCHfeeWdA3YBUxcFPwpNEPu729O6WCeBAsmYf3BBKdUxh48/PSZ2xlSbP9RdffPG3lScrkWyCYrY0aNAWUwMzL4czW5CBloCKnccr1I5XRPjNUrwZ8pez7oeZD/ABZNQTTIdFConXdiPEf//736BdzHDPPfeEww47LKy66qp26pj43333nR1CFWDaMpHZlbwoV+VX03uQb6Ti4gDLPACK90n/gAAagUVApcAO9B133GEfJKNI/7//+7+gZZk1ErAzS5Uf+g59hnyrBDFenTzI3eMlwT06bty4bQSaWy200EKvqk4AmMdrEyaNbRMNSTZCL4odRyQtQItT85z3elpxBlVUVFynpdhn6hBlcs8S8VIhWas/zJT4AjTqCNmdHvz5zoswOi0n5wcPHhxef/318OKLLwauo91yyy1NwiIO8VWuARh2lZ/VVRAeKcccaKHsBBI2idE/kKRWWmkl+69OmsTSknLSXHe03XbbGXhRJQCNJSJ2JkPMqkRe6sNVvau66bP08XLl97X0VDuof/5jwQUXHKq0bUaiqtroNglY3khenOg3EXqtcfJ/Ry/3VgHH2QKNZ+V2wJI10AEwswSoIA1lPRIW/LU1nPCZbWVWpNOedNJJ4fHHHw8CSPve68gjjwwcTlVdZkfULx1TRnyKmAN9+/YNHOZ89dVXg0AjvP/+++mzzz477R/aC0TU1dLc30b/SsttGzJVm0xfU8RK3gm3pU0E4i6Xe5ak+KOlp1que/fub8rd5p82DVjJtyegQOqa1aFDB018E1jjHzFz5sxzFecTES8fXmDKOftRGjoGDmYyTMjtHoafEZ0OMod+BEgWl3M1V111VRgxYoTpt/hg9ZhjjjG9BtKZ4il23Y/qYstKTGJiApoAJCZ+SSJPwpJ+bicMqikdccgbkt3qL5Mn2V63J8M9jofhrouIB1WLo7K5fQOqFpbxIJ0RbciQxceu9JlooaZlt6ULmT/nQzJNJihrEAegKSsrs0mHd/fOO++YhPzNN9+Ea665Jr3mmmtyxxT8gOhHlGN5qE4p5ZF1yxM7RB7Et3oqnoLssbCEm74J/axQ4mNCd6pP3bTYYosx8Sqo7T8woe23MtFCdcw0L1hr/DECr6vV4bacMGHCsRLtRymaKy6tw8gNf+ggKOnphPKyO7iwE0aHg9h1tB1I8idShkhHXk7mLQBLX3HFFWkp7dMsEUaOHGkfZO+9995h+eWXz/7rMiKjC1FnpwwDOwBRZVgHZwZGX4JJHAYUAwtdGXoQwgAt3BBxGASEQaRz/0wYg56jHxDFU3/aj53za4RDDECWu4Qn2wZPIOLXR8RTdVIOxJ4PvEypblA2D0W0eJjytLSYimd8kWnxZcIr3oUR/CIN7YQXaqenVfLZ/7syk8byJw485L40JGj+0/j1118fPv30U9sFFEAEvbuw2mqreX0BC3iEmzw9fzfpK4S72+Ng8h7hIXbieR64nfAjjDzw49Mzriv+VI4HBgwY4P5ytv0HJlZv5Rzio4FfIfAa16NHjxskzm8gAri+UvPhCzMYncE7lLztoQMBbOZQHnQ6iDT4YRKHtBBuJxtcAouUBhKDHv/0IossYjdE3nbbbeGjjz4K33//fRCQmn3zzTcP/NcT7faYMp/BxOBjkFEYdkzlaccrAECWoQxS6gZoaQmcPRfk6UhDHIXZP/ogvcKoT4nyhOx7SsUpEdE+gIT6GzAo/iwR/hBghlmNVA68ADwIw2Q3t0J5Anzkx/ES8qZsI4UBhhBplUUgnplqE+nIx0gAhGRDXPL3OIBPSuADj8mbWzxM10SdicTZKHRO2FGOs2OH5MQu3ieffBKmT58euPOca4b333//7Pd7ik+dIANGudGF0kfwg+RlDyDDoWbCaRdh+NEnsBMJt9huTvpUTfGIT19kQuWrDlQbfNL2vjL4TjRHPTBojmpwTY1lECy88MJjpQcYNH78+DVFR0mhPkZSFx2OTkWnoVOSHJ7Rw/DHTPphhwAkPjT1NPgZ+WBUmebWD/nJ+PMBlNCN/OUvf7EbU7mcjU+GADFJZeGhhx4KbIuzK9mnT5/ArhNpNHgZqJaRRgEDykAH/0R5Fp75sQ/EBVA2sIlDOoEYA7wCE7cIiYt6GjDRBlEp+Sof/GXU+hAOP6gPJjyBN9iD6l0iSpVpuaV6AGQGYAALpFydxwZa8gMwSWuEW2SbGZoEiAtApfADuGVa+YASO7h86nL55ZeHp556Krz33nvUiRPgdqU2/jvttJN9T6py7RFPLE/lA0+w448JYGKnH9A/sEOEUSbtBISS4fgTTjzsxPE73ZDUiEs4YeQ5VRGZQL+Rye28HIaGXpL7NRFAJmPOeWDMnNPaBrRUEtdUAcDVUp4uL2XmihMnTvybZtp71Pm/VPIJIjoJfKMz0uEZzDaYGNgi/JjtkSTofEoy+9GAmm2p4VebAfYvmJCIPFgSAspadwYkApS57EieeOKJ4cILLwwAmeoZpI8zqeDzzz83ZT8XFqLo79+/v/1TAoCNT4lY6iBdaCBSZx/YVk6ifrSvRHEAMr65xHQw5KsBT2ttJ10NBHDQ/iwpP/iSbY8sLIkhkw4FkCXin5UrQERqoh5WLuDoRD6khWgL7aKdW221VTjqqKOCdmvTzz33XFqAZHVQnhVa9le8++675ZKgyo877riKjTfeOL3EEktk60ZeNRFAhT9lC1Blnb05ozwNJPEQATz0B+oL0AA8mAoKSSDCj/4DEEFTlD+TIv6kwc6xG4hrlDj8zJcbSFSAFl9tAGD4sSycTgFzEsHgOam9DW4rugF16DFaLj6lnZj9f/zxx201oM5UBtwMMUwmHWq6Bg9numxQaZD5ckXBpuuqxF/Fxb9GYuBJ0uDYRHYQcRCVgeIJGCSqgznJCx2LOry5+SG9A5oGZeBOewEv+pf06NGj05Ic05MmTUoLhAMgJ7/wwAMPpO+4447UwIEDU5y+5v/YAYgskZBIJHmW9O7dO9WzZ88KgKFr165lAj3b7ZJUpCanaLO3P2kSBtAZabCn+L7OSW6kv5TyTyFN8jUBJ8ClvA4bbrhhxaabblqxxRZbVBx//PGps88+O6BHevrpp8PHH39sV1wgLLP2AAAKEUlEQVQL2E3CEo8q1J4KLeMqnnzySbsq6JBDDklvttlmFSussAKXOgIYSQIY8C8X7wCKLL/Fw6RdzgBomuk/AmbeKW3zMNzkQ76YuCHKBHh+UVrAhltJ3pKd3bxXZfKt6+N6v8/J/owIk51rTL6FfVh+D4qGZAg38V6W+wMRwMXut6xzzgNj55zWNrGlyy23XLmA6ytJPNcriwOlJN9EA36ABspFGjDvafCMEpgwc9Jh6fSYdFhM3LWSBkDVMBUx+xEgYMmGa5SkNdCzbgWiv8mWoTogKVk4cQUshGVJfuVqQ4X8ywEg6c4qtttuu7SWSRXHHnvsLC0zfx4yZEj5E088YUsk7YSltQydBbAJtAE827pHv4NEpyUzUoZJaRr82K182d0Mkkx50uKR6ZDcRKKEvv32W/R16S+++CJ88MEH4c033wxDhw5NPfvssyUCoJLLLrus4owzzkijRxII2c6qlu6AnbVTPOBrBvQ7E2WfLgD4mXbKbu0G2GX3fo5pJP8SxUUy8nwwFXX2w3uBn7Nd9ks4y0Az8ZG+EDv54eR98z0rExl1elue3PH2b5lXii4UnS06XXSK6ATRyaIjNJHsJXMX0e6ivUUHiY5THc8V3SJ6VvSKiBsW3pP5iegHEV90KOqc8ziz55wWN7Ol6iS/S/Kapl3GzwRiFwtUNpaSfJ3JkyfvrEF8pUYnFxCyk4N4D9GRayQNbKQzG1iqFiYDoClEWvQ/ABjpza08sfvMX9UkDuGY1I+6MuhHKh1tuFPmZaIjRFeL+FLgRJnHiY4SHSk6WLSfiAG3m0xo14y5h0zoAJmHioh/rEyIPBiw5McgHij//4iQHpBeGex8lQAhkRgJRN4Uz14Rj5+R+ZjofqVhucQNtCyRkGiQOpg8ygU4Cg60D6KtScIPnhDHycNt6Srgc383PRyzQhIt5nQFQpRPvbmfDX5dKv9BIviIxARPUZR/Kj+kI5Z7E9WffpQKYqZMvonl6E2WFC8+VTgQAasKQxrrpKNJ78VO41MdO3Y8VZLCZpoxV5Pea1PNwAzkoyRJMKueqrxPEjE46dTPaIZHgTpcfszInMZndp4iN+DBYAJIGBQMLifckIcThzB3YyccUlb2YIeIgwkxqEnL8mimQGCKAAEd3Q8yv9NgR1oACBhYNysXJAVA5Q7Z7xLdLqIdEMDB8uUh+bF0wcQNPSC/+0SkdSI9AxmTfMj/egHQTSqX9Fzo+IHSAABIKbaEEq9fEc+GaVnJ/WdfyQ7P2ClDpwNo8GWDt9+V2bgh2u6EGx6gb6T9Kir7MCYI8zhuN14pFnnwfuAPH9kjXT8u/3+JThNdLqK91Jk2sBwcp7pPFk0T/SLiMDPS2h+K25JP0ZfFyyn6RhRSA1g+asac0K1btw87dOjwuDrnzdJPMdNepXreIGLmRbJAcjlE7n1FB4oOE7FEYHZm0KLvYCYGxAAXBdvDgIF8IKEjYQARx4nBhZ0BRRizP8AzTjlgZ3ucwc4tFp8KJEYw+FVXBj9LDe4QY7kxr+J3FXUUYYf4JwYQdu7gd+JOfhTPEEst3BBu4rC9Tzon0kMeR1WYm09KqDegPU71oq7Um7piT9afNuBHOEtCJBcAAhM34AuRBgLUnJDEAJwZajPSFGU6wS/4B2EHCOEjkhtpKJP8vhBPXhDQ3zVjxgzeK+9suPJDaiLfX2UHmNh8icAkZuXiiYCVCy7Wk4c6rov5XNnsA4BOz84jN6WyVGDJ8ISyQtoA1JixB8vN1c/M1khh38rNcpNBw8w9Qm4GJ2HkhZ0BzNKO/JGQkOIAv5cUl/vBWJ6Q37tyvyKphm/P0JGg8CXOG/KnPnwBQH6UxfeYgCRSB6ACAZgMxLkU30nWSk8yfG6FQDJsp428yBMggCeA1A9ahgFOtOtT2akDAASPPlJCpFHaSRyAnDTeTsJfVBzah1SH9HaL3DdmCP0jwIIfYUiBxOWWWpaclEleEGAIwT8mjQ+Vxxvi1SOSmi+fMmXKsdJhHixd5pHffPPNNdq95UaEn/Se4YmixidfHIiAlS/O1pGvOrYDGMsCiJn4Z/mz1c1AZJAAYAwqlhgXKbtBIpZf7C5xBodBxpIJvQ/LJgjAIRzg4358BidLrtuUFjf+DFKWcOx2Pqrl1ZMChhcUTp4fSGL4QjRKhC4LiQupAmABlOgvbiIZITUhTTkBSB5OXNxuYndScQZaDHAkMPwpAwACICGkGqQcAA3ApB4AMaANkAImgAwmeix24QBb2o+0Q/vgFwRAwQf4cZ0Kh6fozpBokWyhg9RmdHJIvYfLfrg2FY4QMO03YcKEfbTBsqdEwGMkNd8gpf9zCy200OfoMrUriyRFO5RtfPLNATpTvstoK/m3SDsEWg5gKGIZwMz072rg3K/duUFS7J+nipwjukTE8pGByOBEXwQQMUDRD2FHokKaQmJCSmHJxMDGjR3JgcGO1AJIfiEA+1T0uQgphvJZFrFcAjxcR4TkBKkKgeUeoAOAAVyAD/0K4CIO0hhgRB5IUoAy4IMdk2UbSzT8Iez4AVpIO/gRF9ACxAgnHW78qSPxiQvYk84JN8RS8EfxFh0SR1HIk3wIQ2JFWv1IbQa04der2o39n5TqbwuYPtOO6nhtsLDMQyqkzZFaiQN0rFYqOhbbEA5okCGNVWjg/NylS5cpUuyjwB0tf/6lGXoUloOYLJdYFgFCLKWQkBjIDEoGOAOVAYudAcvgZ7Bjh7AjwRDfiTjER8pBV+aAxcBFx4WbMMAIuxMAhR2QI8zBhXIAQM+LeORDPI+DSTh+yTwohzDSO1ABNtSVegNK5E8bUWwj+bAEh39GSX6Lf+aXMJko2KnDBGiT0aO9QDgQAatAXkRTq6EBxwCDUO6ytIQYqJg+AAnPDsJEGgYtYU7EJx8GOxIeAAA4ABIABoTdCTfg4mQgo/xJD1EPTI5vOOHGn/pB2AkjT8AR4IGQgDCr1oF41AkwnaqyACjqSh7UP9vOpvI0pitcDkTAKtx3UxA1EyAAKoAMgFAbEU68ZgGGygJAHTCRktDrYUKUQfkAHNSssupjbgwvTA5EwCrM9xJrFTkQOVADByJg1cCU6BU5EDlQmByIgFWY7yXWKnIgcqAGDuQFsGooJ3pFDkQORA40mwMRsJrNwphB5EDkQEtxIAJWS3E6lhM5EDnQbA5EwGo2C+fwDGLzIwdakAMRsFqQ2bGoyIHIgeZxIAJW8/gXU0cORA60IAciYLUgs2NRkQPFzYHWr30ErNZ/B7EGkQORAw3kQASsBjIqRosciBxofQ5EwGr9dxBrEDkQOdBADkTAaiCjmh8t5hA5EDnQXA5EwGouB2P6yIHIgRbjQASsFmN1LChyIHKguRyIgNVcDsb0kQPVORB98sSBCFh5YmzMNnIgciD3HIiAlXuexhwjByIH8sSBCFh5YmzMNnIgciD3HPh/AAAA//90FmolAAAABklEQVQDAJVzfa+2sxUzAAAAAElFTkSuQmCC";var o=require("react/jsx-runtime"),F='You are Thikana, a helpful AI assistant. STRICT RULES: 1) NEVER exceed 80 words in any reply \u2014 count carefully. 2) If a question is vague, hypothetical, philosophical, personal, or not a clear factual/technical question, reply ONLY with: "I can only help with clear, specific questions. Try asking something concrete!" 3) Format replies as HTML using only <b>, <br>, <ul>, and <li> tags \u2014 no Markdown. 4) Never roleplay, never answer "what if" or "would you" questions. 5) Stay concise \u2014 short sentences only.',Q=({systemPrompt:s,feedData:a,apiUrl:d="https://thikana.malaymishra.com/chatbot",assistantName:g="Thikana",initialMessage:c,model:N,onMessageSend:H,onResponseReceive:O})=>{let[f,T]=(0,t.useState)(""),[h,u]=(0,t.useState)([]),[b,k]=(0,t.useState)(!1),[S,C]=(0,t.useState)(null),[L,P]=(0,t.useState)({width:330,height:480}),[w,M]=(0,t.useState)(!1),[W,$]=(0,t.useState)(!1),D=(0,t.useRef)(null);(0,t.useEffect)(()=>{function e(n){D.current&&!D.current.contains(n.target)&&$(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]);let I=(0,t.useRef)(null),v=(0,t.useRef)(null),R=(0,t.useRef)(null),A=a||S;(0,t.useEffect)(()=>{if(h.length===0){let e=localStorage.getItem("messages");u(e?JSON.parse(e):[{role:"assistant",content:c||`Hi this is ${g}! How can I help you today?`}])}},[c,g,h.length]),(0,t.useEffect)(()=>{a||(async()=>{try{let r=await(await fetch("https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json")).json();C(r)}catch(n){console.error("Error fetching portfolio data:",n)}})()},[a]);let j=()=>{R.current?.scrollIntoView({behavior:"smooth"})};(0,t.useEffect)(()=>{j()},[h]);let E=async e=>{console.log("sys",s);let n=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:e,feedData:A,systemPrompt:s||F,model:N})});if(!n.ok){let l=await n.json();throw new Error(l.error||"Failed to get AI response")}let r=await n.json();return O&&O(r.text),r.text},_=async e=>{if(!e.trim()||b)return;let n={role:"user",content:e};H&&H(n);let r=[...h,n];u(r),T(""),k(!0);try{let p={role:"assistant",content:await E([n])},i=[...r,p];u(i),localStorage.setItem("messages",JSON.stringify(i))}catch(l){console.error("Error calling AI:",l);let p={role:"assistant",content:"Sorry, I encountered an error. Please try again later."},i=[...r,p];u(i),localStorage.setItem("messages",JSON.stringify(i))}finally{k(!1)}};(0,t.useEffect)(()=>{v.current&&(v.current.style.height="auto",v.current.style.height=`${Math.min(v.current.scrollHeight,100)}px`)},[f]);let X=(0,t.useCallback)(e=>{e.preventDefault(),e.target.setPointerCapture(e.pointerId),M(!0)},[]);return(0,t.useEffect)(()=>{if(!w)return;let e=r=>{if(!I.current)return;let l=I.current.getBoundingClientRect(),p=l.right-r.clientX,i=l.bottom-r.clientY,K=window.innerWidth<=768,V=K?window.innerWidth-40:800,J=K?window.innerHeight-100:800;p>250&&p<V&&P(m=>({...m,width:p})),i>300&&i<J&&P(m=>({...m,height:i}))},n=()=>{M(!1)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",n),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",n)}},[w]),(0,o.jsxs)("div",{className:"chatbot-container",ref:D,children:[W&&(0,o.jsx)("div",{className:"chatbot-popup",children:(0,o.jsxs)("div",{ref:I,className:`chat-popup-wrapper ${w?"resizing":""}`,style:{width:`${L.width}px`,height:`${L.height}px`,position:"relative"},children:[(0,o.jsx)("div",{className:"stretch-icon",onPointerDown:X}),(0,o.jsxs)("div",{className:"messages-container",children:[h.map((e,n)=>(0,o.jsx)("div",{className:`message ${e.role==="user"?"user":"ai"}`,dangerouslySetInnerHTML:{__html:e.content}},n)),b&&(0,o.jsx)("div",{className:"message ai loading",children:"Thinking..."}),(0,o.jsx)("div",{ref:R})]}),(0,o.jsxs)("div",{className:"input-container",children:[(0,o.jsx)("textarea",{ref:v,rows:1,placeholder:"What's on your mind?",value:f,onKeyDown:e=>{e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),_(f))},onChange:e=>T(e.target.value)}),(0,o.jsx)("button",{onClick:()=>_(f),disabled:!f.trim()||b,className:"send-button",children:(0,o.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,o.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,o.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})]})]})}),(0,o.jsx)("img",{onClick:()=>$(e=>!e),className:"chatbot-icon",alt:"chatbot",src:typeof x=="string"?x:x.src})]})};0&&(module.exports={ChatPopup});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/chat-popup.tsx"],"sourcesContent":["export * from \"./components/chat-popup\";\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport \"./chat-popup.css\";\n\nimport chatbot from \"../assets/chatbot-black.png\";\n\ntype Message = {\n role: \"user\" | \"assistant\" | \"system\";\n content: string;\n};\n\nexport interface ChatPopupProps {\n systemPrompt?: string;\n feedData?: any;\n apiUrl?: string;\n assistantName?: string;\n initialMessage?: string;\n model?: string;\n messages?: Message[];\n onMessageSend?: (message: Message) => void;\n onResponseReceive?: (response: string) => void;\n}\n\nexport const ChatPopup = ({\n systemPrompt,\n feedData: externalfeedData,\n apiUrl = \"https://thikana.malaymishra.com/chatbot\",\n assistantName = \"Thikana\",\n initialMessage,\n model,\n onMessageSend,\n onResponseReceive,\n}: ChatPopupProps) => {\n const [input, setInput] = useState<string>(\"\");\n const [internalMessages, setInternalMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [internalfeedData, setInternalfeedData] = useState<any>(null);\n const [dimensions, setDimensions] = useState({ width: 330, height: 480 });\n const [isResizing, setIsResizing] = useState(false);\n const [openPopup, setOpenPopup] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setOpenPopup(false);\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n const activefeedData = externalfeedData || internalfeedData;\n\n useEffect(() => {\n if (internalMessages.length === 0) {\n const saved = localStorage.getItem(\"messages\");\n if (saved) {\n setInternalMessages(JSON.parse(saved));\n } else {\n setInternalMessages([\n {\n role: \"assistant\",\n content:\n initialMessage ||\n `Hi this is ${assistantName}! How can I help you today?`,\n },\n ]);\n }\n }\n }, [initialMessage, assistantName, internalMessages.length]);\n\n useEffect(() => {\n if (!externalfeedData) {\n const fetchfeedData = async () => {\n try {\n const response = await fetch(\n \"https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json\",\n );\n const data = await response.json();\n setInternalfeedData(data);\n } catch (error) {\n console.error(\"Error fetching portfolio data:\", error);\n }\n };\n fetchfeedData();\n }\n }, [externalfeedData]);\n\n const scrollToBottom = () => {\n messagesEndRef.current?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [internalMessages]);\n\n const getAIResponse = async (currentMessages: Message[]): Promise<string> => {\n const response = await fetch(apiUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n messages: currentMessages,\n feedData: activefeedData,\n systemPrompt,\n model,\n }),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || \"Failed to get AI response\");\n }\n\n const data = await response.json();\n if (onResponseReceive) onResponseReceive(data.text);\n return data.text;\n };\n\n const callModel = async (userInput: string) => {\n if (!userInput.trim() || isLoading) return;\n\n const userMessage: Message = { role: \"user\", content: userInput };\n if (onMessageSend) onMessageSend(userMessage);\n\n const newMessages = [...internalMessages, userMessage];\n\n setInternalMessages(newMessages);\n\n setInput(\"\");\n setIsLoading(true);\n\n try {\n const text = await getAIResponse(newMessages);\n\n const assistantMessage: Message = {\n role: \"assistant\",\n content: text,\n };\n\n const updatedMessages = [...newMessages, assistantMessage];\n\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } catch (error) {\n console.error(\"Error calling AI:\", error);\n const defaultFailMessage: Message = {\n role: \"assistant\",\n content: \"Sorry, I encountered an error. Please try again later.\",\n };\n const updatedMessages = [...newMessages, defaultFailMessage];\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 100)}px`;\n }\n }, [input]);\n\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n setIsResizing(true);\n }, []);\n\n useEffect(() => {\n if (!isResizing) return;\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!wrapperRef.current) return;\n\n const rect = wrapperRef.current.getBoundingClientRect();\n const newWidth = rect.right - e.clientX;\n const newHeight = rect.bottom - e.clientY;\n\n if (newWidth > 250 && newWidth < 800) {\n setDimensions((prev) => ({ ...prev, width: newWidth }));\n }\n if (newHeight > 300 && newHeight < 800) {\n setDimensions((prev) => ({ ...prev, height: newHeight }));\n }\n };\n\n const handleMouseUp = () => {\n setIsResizing(false);\n };\n\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [isResizing]);\n\n return (\n <div className=\"chatbot-container\" ref={containerRef}>\n {openPopup && (\n <div className=\"chatbot-popup\">\n <div\n ref={wrapperRef}\n className={`chat-popup-wrapper ${isResizing ? \"resizing\" : \"\"}`}\n style={{\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n position: \"relative\",\n }}\n >\n <div className=\"stretch-icon\" onMouseDown={handleMouseDown}></div>\n <div className=\"messages-container\">\n {internalMessages.map((msg: Message, index: number) => (\n <div\n key={index}\n className={`message ${msg.role === \"user\" ? \"user\" : \"ai\"}`}\n dangerouslySetInnerHTML={{ __html: msg.content }}\n />\n ))}\n {isLoading && (\n <div className=\"message ai loading\">Thinking...</div>\n )}\n <div ref={messagesEndRef} />\n </div>\n\n <div className=\"input-container\">\n <textarea\n ref={textareaRef}\n rows={1}\n placeholder=\"What's on your mind?\"\n value={input}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n callModel(input);\n }\n }}\n onChange={(e) => setInput(e.target.value)}\n />\n <button\n onClick={() => callModel(input)}\n disabled={!input.trim() || isLoading}\n className=\"send-button\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line>\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\n </svg>\n </button>\n </div>\n </div>\n </div>\n )}\n\n <img\n onClick={() => setOpenPopup((prev) => !prev)}\n className=\"chatbot-icon\"\n alt=\"chatbot\"\n src={typeof chatbot === \"string\" ? chatbot : (chatbot as any).src}\n />\n </div>\n );\n};\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAgE,iB,2pnDAkOpD,IAAAC,EAAA,6BA5MCC,EAAY,CAAC,CACxB,aAAAC,EACA,SAAUC,EACV,OAAAC,EAAS,0CACT,cAAAC,EAAgB,UAChB,eAAAC,EACA,MAAAC,EACA,cAAAC,EACA,kBAAAC,CACF,IAAsB,CACpB,GAAM,CAACC,EAAOC,CAAQ,KAAI,YAAiB,EAAE,EACvC,CAACC,EAAkBC,CAAmB,KAAI,YAAoB,CAAC,CAAC,EAChE,CAACC,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1C,CAACC,EAAkBC,CAAmB,KAAI,YAAc,IAAI,EAC5D,CAACC,EAAYC,CAAa,KAAI,YAAS,CAAE,MAAO,IAAK,OAAQ,GAAI,CAAC,EAClE,CAACC,EAAYC,CAAa,KAAI,YAAS,EAAK,EAC5C,CAACC,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1CC,KAAe,UAAuB,IAAI,KAEhD,aAAU,IAAM,CACd,SAASC,EAAmBC,EAAmB,CAE3CF,EAAa,SACb,CAACA,EAAa,QAAQ,SAASE,EAAM,MAAc,GAEnDH,EAAa,EAAK,CAEtB,CAEA,gBAAS,iBAAiB,YAAaE,CAAkB,EAClD,IAAM,CACX,SAAS,oBAAoB,YAAaA,CAAkB,CAC9D,CACF,EAAG,CAAC,CAAC,EAEL,IAAME,KAAa,UAAuB,IAAI,EAExCC,KAAc,UAA4B,IAAI,EAC9CC,KAAiB,UAAuB,IAAI,EAE5CC,EAAiB3B,GAAoBa,KAE3C,aAAU,IAAM,CACd,GAAIJ,EAAiB,SAAW,EAAG,CACjC,IAAMmB,EAAQ,aAAa,QAAQ,UAAU,EAE3ClB,EADEkB,EACkB,KAAK,MAAMA,CAAK,EAEhB,CAClB,CACE,KAAM,YACN,QACEzB,GACA,cAAcD,CAAa,6BAC/B,CACF,CATqC,CAWzC,CACF,EAAG,CAACC,EAAgBD,EAAeO,EAAiB,MAAM,CAAC,KAE3D,aAAU,IAAM,CACTT,IACmB,SAAY,CAChC,GAAI,CAIF,IAAM6B,EAAO,MAHI,MAAM,MACrB,8FACF,GAC4B,KAAK,EACjCf,EAAoBe,CAAI,CAC1B,OAASC,EAAO,CACd,QAAQ,MAAM,iCAAkCA,CAAK,CACvD,CACF,GACc,CAElB,EAAG,CAAC9B,CAAgB,CAAC,EAErB,IAAM+B,EAAiB,IAAM,CAC3BL,EAAe,SAAS,eAAe,CAAE,SAAU,QAAS,CAAC,CAC/D,KAEA,aAAU,IAAM,CACdK,EAAe,CACjB,EAAG,CAACtB,CAAgB,CAAC,EAErB,IAAMuB,EAAgB,MAAOC,GAAgD,CAC3E,IAAMC,EAAW,MAAM,MAAMjC,EAAQ,CACnC,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,SAAUgC,EACV,SAAUN,EACV,aAAA5B,EACA,MAAAK,CACF,CAAC,CACH,CAAC,EAED,GAAI,CAAC8B,EAAS,GAAI,CAChB,IAAMC,EAAY,MAAMD,EAAS,KAAK,EACtC,MAAM,IAAI,MAAMC,EAAU,OAAS,2BAA2B,CAChE,CAEA,IAAMN,EAAO,MAAMK,EAAS,KAAK,EACjC,OAAI5B,GAAmBA,EAAkBuB,EAAK,IAAI,EAC3CA,EAAK,IACd,EAEMO,EAAY,MAAOC,GAAsB,CAC7C,GAAI,CAACA,EAAU,KAAK,GAAK1B,EAAW,OAEpC,IAAM2B,EAAuB,CAAE,KAAM,OAAQ,QAASD,CAAU,EAC5DhC,GAAeA,EAAciC,CAAW,EAE5C,IAAMC,EAAc,CAAC,GAAG9B,EAAkB6B,CAAW,EAErD5B,EAAoB6B,CAAW,EAE/B/B,EAAS,EAAE,EACXI,EAAa,EAAI,EAEjB,GAAI,CAGF,IAAM4B,EAA4B,CAChC,KAAM,YACN,QAJW,MAAMR,EAAcO,CAAW,CAK5C,EAEME,EAAkB,CAAC,GAAGF,EAAaC,CAAgB,EAEzD9B,EAAoB+B,CAAe,EACnC,aAAa,QAAQ,WAAY,KAAK,UAAUA,CAAe,CAAC,CAClE,OAASX,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,EACxC,IAAMY,EAA8B,CAClC,KAAM,YACN,QAAS,wDACX,EACMD,EAAkB,CAAC,GAAGF,EAAaG,CAAkB,EAC3DhC,EAAoB+B,CAAe,EACnC,aAAa,QAAQ,WAAY,KAAK,UAAUA,CAAe,CAAC,CAClE,QAAE,CACA7B,EAAa,EAAK,CACpB,CACF,KAEA,aAAU,IAAM,CACVa,EAAY,UACdA,EAAY,QAAQ,MAAM,OAAS,OACnCA,EAAY,QAAQ,MAAM,OAAS,GAAG,KAAK,IAAIA,EAAY,QAAQ,aAAc,GAAG,CAAC,KAEzF,EAAG,CAAClB,CAAK,CAAC,EAEV,IAAMoC,KAAkB,eAAa,GAAwB,CAC3D,EAAE,eAAe,EACjBzB,EAAc,EAAI,CACpB,EAAG,CAAC,CAAC,EAEL,sBAAU,IAAM,CACd,GAAI,CAACD,EAAY,OAEjB,IAAM2B,EAAmBC,GAAkB,CACzC,GAAI,CAACrB,EAAW,QAAS,OAEzB,IAAMsB,EAAOtB,EAAW,QAAQ,sBAAsB,EAChDuB,EAAWD,EAAK,MAAQD,EAAE,QAC1BG,EAAYF,EAAK,OAASD,EAAE,QAE9BE,EAAW,KAAOA,EAAW,KAC/B/B,EAAeiC,IAAU,CAAE,GAAGA,EAAM,MAAOF,CAAS,EAAE,EAEpDC,EAAY,KAAOA,EAAY,KACjChC,EAAeiC,IAAU,CAAE,GAAGA,EAAM,OAAQD,CAAU,EAAE,CAE5D,EAEME,EAAgB,IAAM,CAC1BhC,EAAc,EAAK,CACrB,EAEA,cAAO,iBAAiB,YAAa0B,CAAe,EACpD,OAAO,iBAAiB,UAAWM,CAAa,EAEzC,IAAM,CACX,OAAO,oBAAoB,YAAaN,CAAe,EACvD,OAAO,oBAAoB,UAAWM,CAAa,CACrD,CACF,EAAG,CAACjC,CAAU,CAAC,KAGb,QAAC,OAAI,UAAU,oBAAoB,IAAKI,EACrC,UAAAF,MACC,OAAC,OAAI,UAAU,gBACb,oBAAC,OACC,IAAKK,EACL,UAAW,sBAAsBP,EAAa,WAAa,EAAE,GAC7D,MAAO,CACL,MAAO,GAAGF,EAAW,KAAK,KAC1B,OAAQ,GAAGA,EAAW,MAAM,KAC5B,SAAU,UACZ,EAEA,oBAAC,OAAI,UAAU,eAAe,YAAa4B,EAAiB,KAC5D,QAAC,OAAI,UAAU,qBACZ,UAAAlC,EAAiB,IAAI,CAAC0C,EAAcC,OACnC,OAAC,OAEC,UAAW,WAAWD,EAAI,OAAS,OAAS,OAAS,IAAI,GACzD,wBAAyB,CAAE,OAAQA,EAAI,OAAQ,GAF1CC,CAGP,CACD,EACAzC,MACC,OAAC,OAAI,UAAU,qBAAqB,uBAAW,KAEjD,OAAC,OAAI,IAAKe,EAAgB,GAC5B,KAEA,QAAC,OAAI,UAAU,kBACb,oBAAC,YACC,IAAKD,EACL,KAAM,EACN,YAAY,uBACZ,MAAOlB,EACP,UAAY,GAAM,CACZ,EAAE,MAAQ,SAAW,CAAC,EAAE,WAC1B,EAAE,eAAe,EACjB6B,EAAU7B,CAAK,EAEnB,EACA,SAAW,GAAMC,EAAS,EAAE,OAAO,KAAK,EAC1C,KACA,OAAC,UACC,QAAS,IAAM4B,EAAU7B,CAAK,EAC9B,SAAU,CAACA,EAAM,KAAK,GAAKI,EAC3B,UAAU,cAEV,oBAAC,OACC,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QAEf,oBAAC,QAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,KACrC,OAAC,WAAQ,OAAO,4BAA4B,GAC9C,EACF,GACF,GACF,EACF,KAGF,OAAC,OACC,QAAS,IAAMS,EAAc6B,GAAS,CAACA,CAAI,EAC3C,UAAU,eACV,IAAI,UACJ,IAAK,OAAOI,GAAY,SAAWA,EAAWA,EAAgB,IAChE,GACF,CAEJ","names":["index_exports","__export","ChatPopup","__toCommonJS","import_react","import_jsx_runtime","ChatPopup","systemPrompt","externalfeedData","apiUrl","assistantName","initialMessage","model","onMessageSend","onResponseReceive","input","setInput","internalMessages","setInternalMessages","isLoading","setIsLoading","internalfeedData","setInternalfeedData","dimensions","setDimensions","isResizing","setIsResizing","openPopup","setOpenPopup","containerRef","handleClickOutside","event","wrapperRef","textareaRef","messagesEndRef","activefeedData","saved","data","error","scrollToBottom","getAIResponse","currentMessages","response","errorData","callModel","userInput","userMessage","newMessages","assistantMessage","updatedMessages","defaultFailMessage","handleMouseDown","handleMouseMove","e","rect","newWidth","newHeight","prev","handleMouseUp","msg","index","chatbot_black_default"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/chat-popup.tsx"],"sourcesContent":["export * from \"./components/chat-popup\";\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport \"./chat-popup.css\";\n\nimport chatbot from \"../assets/chatbot-black.png\";\n\nconst DEFAULT_SYSTEM_PROMPT =\n 'You are Thikana, a helpful AI assistant. STRICT RULES: 1) NEVER exceed 80 words in any reply — count carefully. 2) If a question is vague, hypothetical, philosophical, personal, or not a clear factual/technical question, reply ONLY with: \"I can only help with clear, specific questions. Try asking something concrete!\" 3) Format replies as HTML using only <b>, <br>, <ul>, and <li> tags — no Markdown. 4) Never roleplay, never answer \"what if\" or \"would you\" questions. 5) Stay concise — short sentences only.';\n\ntype Message = {\n role: \"user\" | \"assistant\" | \"system\";\n content: string;\n};\n\nexport interface ChatPopupProps {\n systemPrompt?: string;\n feedData?: any;\n apiUrl?: string;\n assistantName?: string;\n initialMessage?: string;\n model?: string;\n messages?: Message[];\n onMessageSend?: (message: Message) => void;\n onResponseReceive?: (response: string) => void;\n}\n\nexport const ChatPopup = ({\n systemPrompt,\n feedData: externalfeedData,\n apiUrl = \"https://thikana.malaymishra.com/chatbot\",\n assistantName = \"Thikana\",\n initialMessage,\n model,\n onMessageSend,\n onResponseReceive,\n}: ChatPopupProps) => {\n const [input, setInput] = useState<string>(\"\");\n const [internalMessages, setInternalMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [internalfeedData, setInternalfeedData] = useState<any>(null);\n const [dimensions, setDimensions] = useState({ width: 330, height: 480 });\n const [isResizing, setIsResizing] = useState(false);\n const [openPopup, setOpenPopup] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setOpenPopup(false);\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n const activefeedData = externalfeedData || internalfeedData;\n\n useEffect(() => {\n if (internalMessages.length === 0) {\n const saved = localStorage.getItem(\"messages\");\n if (saved) {\n setInternalMessages(JSON.parse(saved));\n } else {\n setInternalMessages([\n {\n role: \"assistant\",\n content:\n initialMessage ||\n `Hi this is ${assistantName}! How can I help you today?`,\n },\n ]);\n }\n }\n }, [initialMessage, assistantName, internalMessages.length]);\n\n useEffect(() => {\n if (!externalfeedData) {\n const fetchfeedData = async () => {\n try {\n const response = await fetch(\n \"https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json\",\n );\n const data = await response.json();\n setInternalfeedData(data);\n } catch (error) {\n console.error(\"Error fetching portfolio data:\", error);\n }\n };\n fetchfeedData();\n }\n }, [externalfeedData]);\n\n const scrollToBottom = () => {\n messagesEndRef.current?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [internalMessages]);\n\n const getAIResponse = async (currentMessages: Message[]): Promise<string> => {\n console.log(\"sys\", systemPrompt);\n const response = await fetch(apiUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n messages: currentMessages,\n feedData: activefeedData,\n systemPrompt: systemPrompt || DEFAULT_SYSTEM_PROMPT,\n model,\n }),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || \"Failed to get AI response\");\n }\n\n const data = await response.json();\n if (onResponseReceive) onResponseReceive(data.text);\n return data.text;\n };\n\n const callModel = async (userInput: string) => {\n if (!userInput.trim() || isLoading) return;\n\n const userMessage: Message = { role: \"user\", content: userInput };\n if (onMessageSend) onMessageSend(userMessage);\n\n const newMessages = [...internalMessages, userMessage];\n\n setInternalMessages(newMessages);\n\n setInput(\"\");\n setIsLoading(true);\n\n try {\n const text = await getAIResponse([userMessage]);\n\n const assistantMessage: Message = {\n role: \"assistant\",\n content: text,\n };\n\n const updatedMessages = [...newMessages, assistantMessage];\n\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } catch (error) {\n console.error(\"Error calling AI:\", error);\n const defaultFailMessage: Message = {\n role: \"assistant\",\n content: \"Sorry, I encountered an error. Please try again later.\",\n };\n const updatedMessages = [...newMessages, defaultFailMessage];\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 100)}px`;\n }\n }, [input]);\n\n const handlePointerDown = useCallback((e: React.PointerEvent) => {\n e.preventDefault();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n setIsResizing(true);\n }, []);\n\n useEffect(() => {\n if (!isResizing) return;\n\n const handlePointerMove = (e: PointerEvent) => {\n if (!wrapperRef.current) return;\n\n const rect = wrapperRef.current.getBoundingClientRect();\n const newWidth = rect.right - e.clientX;\n const newHeight = rect.bottom - e.clientY;\n\n const isMobile = window.innerWidth <= 768;\n const maxW = isMobile ? window.innerWidth - 40 : 800;\n const maxH = isMobile ? window.innerHeight - 100 : 800;\n if (newWidth > 250 && newWidth < maxW) {\n setDimensions((prev) => ({ ...prev, width: newWidth }));\n }\n if (newHeight > 300 && newHeight < maxH) {\n setDimensions((prev) => ({ ...prev, height: newHeight }));\n }\n };\n\n const handlePointerUp = () => {\n setIsResizing(false);\n };\n\n window.addEventListener(\"pointermove\", handlePointerMove);\n window.addEventListener(\"pointerup\", handlePointerUp);\n\n return () => {\n window.removeEventListener(\"pointermove\", handlePointerMove);\n window.removeEventListener(\"pointerup\", handlePointerUp);\n };\n }, [isResizing]);\n\n return (\n <div className=\"chatbot-container\" ref={containerRef}>\n {openPopup && (\n <div className=\"chatbot-popup\">\n <div\n ref={wrapperRef}\n className={`chat-popup-wrapper ${isResizing ? \"resizing\" : \"\"}`}\n style={{\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n position: \"relative\",\n }}\n >\n <div\n className=\"stretch-icon\"\n onPointerDown={handlePointerDown}\n ></div>\n <div className=\"messages-container\">\n {internalMessages.map((msg: Message, index: number) => (\n <div\n key={index}\n className={`message ${msg.role === \"user\" ? \"user\" : \"ai\"}`}\n dangerouslySetInnerHTML={{ __html: msg.content }}\n />\n ))}\n {isLoading && (\n <div className=\"message ai loading\">Thinking...</div>\n )}\n <div ref={messagesEndRef} />\n </div>\n\n <div className=\"input-container\">\n <textarea\n ref={textareaRef}\n rows={1}\n placeholder=\"What's on your mind?\"\n value={input}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n callModel(input);\n }\n }}\n onChange={(e) => setInput(e.target.value)}\n />\n <button\n onClick={() => callModel(input)}\n disabled={!input.trim() || isLoading}\n className=\"send-button\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line>\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\n </svg>\n </button>\n </div>\n </div>\n </div>\n )}\n\n <img\n onClick={() => setOpenPopup((prev) => !prev)}\n className=\"chatbot-icon\"\n alt=\"chatbot\"\n src={typeof chatbot === \"string\" ? chatbot : (chatbot as any).src}\n />\n </div>\n );\n};\n"],"mappings":"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","names":["index_exports","__export","ChatPopup","__toCommonJS","import_react","import_jsx_runtime","DEFAULT_SYSTEM_PROMPT","ChatPopup","systemPrompt","externalfeedData","apiUrl","assistantName","initialMessage","model","onMessageSend","onResponseReceive","input","setInput","internalMessages","setInternalMessages","isLoading","setIsLoading","internalfeedData","setInternalfeedData","dimensions","setDimensions","isResizing","setIsResizing","openPopup","setOpenPopup","containerRef","handleClickOutside","event","wrapperRef","textareaRef","messagesEndRef","activefeedData","saved","data","error","scrollToBottom","getAIResponse","currentMessages","response","errorData","callModel","userInput","userMessage","newMessages","assistantMessage","updatedMessages","defaultFailMessage","handlePointerDown","handlePointerMove","e","rect","newWidth","newHeight","isMobile","maxW","maxH","prev","handlePointerUp","msg","index","chatbot_black_default"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{useState as i,useRef as h,useEffect as c,useCallback as Z}from"react";var u="data:image/png;base64,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";import{jsx as n,jsxs as f}from"react/jsx-runtime";var F=({systemPrompt:R,feedData:v,apiUrl:N="https://thikana.malaymishra.com/chatbot",assistantName:I="Thikana",initialMessage:H,model:S,onMessageSend:O,onResponseReceive:y})=>{let[p,T]=i(""),[d,l]=i([]),[x,M]=i(!1),[C,W]=i(null),[k,L]=i({width:330,height:480}),[b,$]=i(!1),[j,K]=i(!1),D=h(null);c(()=>{function e(t){D.current&&!D.current.contains(t.target)&&K(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]);let m=h(null),g=h(null),P=h(null),A=v||C;c(()=>{if(d.length===0){let e=localStorage.getItem("messages");l(e?JSON.parse(e):[{role:"assistant",content:H||`Hi this is ${I}! How can I help you today?`}])}},[H,I,d.length]),c(()=>{v||(async()=>{try{let o=await(await fetch("https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json")).json();W(o)}catch(t){console.error("Error fetching portfolio data:",t)}})()},[v]);let X=()=>{P.current?.scrollIntoView({behavior:"smooth"})};c(()=>{X()},[d]);let V=async e=>{let t=await fetch(N,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:e,feedData:A,systemPrompt:R,model:S})});if(!t.ok){let r=await t.json();throw new Error(r.error||"Failed to get AI response")}let o=await t.json();return y&&y(o.text),o.text},_=async e=>{if(!e.trim()||x)return;let t={role:"user",content:e};O&&O(t);let o=[...d,t];l(o),T(""),M(!0);try{let s={role:"assistant",content:await V(o)},a=[...o,s];l(a),localStorage.setItem("messages",JSON.stringify(a))}catch(r){console.error("Error calling AI:",r);let s={role:"assistant",content:"Sorry, I encountered an error. Please try again later."},a=[...o,s];l(a),localStorage.setItem("messages",JSON.stringify(a))}finally{M(!1)}};c(()=>{g.current&&(g.current.style.height="auto",g.current.style.height=`${Math.min(g.current.scrollHeight,100)}px`)},[p]);let J=Z(e=>{e.preventDefault(),$(!0)},[]);return c(()=>{if(!b)return;let e=o=>{if(!m.current)return;let r=m.current.getBoundingClientRect(),s=r.right-o.clientX,a=r.bottom-o.clientY;s>250&&s<800&&L(w=>({...w,width:s})),a>300&&a<800&&L(w=>({...w,height:a}))},t=()=>{$(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[b]),f("div",{className:"chatbot-container",ref:D,children:[j&&n("div",{className:"chatbot-popup",children:f("div",{ref:m,className:`chat-popup-wrapper ${b?"resizing":""}`,style:{width:`${k.width}px`,height:`${k.height}px`,position:"relative"},children:[n("div",{className:"stretch-icon",onMouseDown:J}),f("div",{className:"messages-container",children:[d.map((e,t)=>n("div",{className:`message ${e.role==="user"?"user":"ai"}`,dangerouslySetInnerHTML:{__html:e.content}},t)),x&&n("div",{className:"message ai loading",children:"Thinking..."}),n("div",{ref:P})]}),f("div",{className:"input-container",children:[n("textarea",{ref:g,rows:1,placeholder:"What's on your mind?",value:p,onKeyDown:e=>{e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),_(p))},onChange:e=>T(e.target.value)}),n("button",{onClick:()=>_(p),disabled:!p.trim()||x,className:"send-button",children:f("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[n("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),n("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})]})]})}),n("img",{onClick:()=>K(e=>!e),className:"chatbot-icon",alt:"chatbot",src:typeof u=="string"?u:u.src})]})};export{F as ChatPopup};
1
+ import{useState as i,useRef as u,useEffect as c,useCallback as q}from"react";var h="data:image/png;base64,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";import{jsx as o,jsxs as f}from"react/jsx-runtime";var z='You are Thikana, a helpful AI assistant. STRICT RULES: 1) NEVER exceed 80 words in any reply \u2014 count carefully. 2) If a question is vague, hypothetical, philosophical, personal, or not a clear factual/technical question, reply ONLY with: "I can only help with clear, specific questions. Try asking something concrete!" 3) Format replies as HTML using only <b>, <br>, <ul>, and <li> tags \u2014 no Markdown. 4) Never roleplay, never answer "what if" or "would you" questions. 5) Stay concise \u2014 short sentences only.',oe=({systemPrompt:m,feedData:v,apiUrl:S="https://thikana.malaymishra.com/chatbot",assistantName:y="Thikana",initialMessage:H,model:C,onMessageSend:O,onResponseReceive:T})=>{let[l,k]=i(""),[p,d]=i([]),[x,L]=i(!1),[W,A]=i(null),[P,M]=i({width:330,height:480}),[b,$]=i(!1),[j,R]=i(!1),w=u(null);c(()=>{function e(t){w.current&&!w.current.contains(t.target)&&R(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]);let D=u(null),g=u(null),_=u(null),E=v||W;c(()=>{if(p.length===0){let e=localStorage.getItem("messages");d(e?JSON.parse(e):[{role:"assistant",content:H||`Hi this is ${y}! How can I help you today?`}])}},[H,y,p.length]),c(()=>{v||(async()=>{try{let n=await(await fetch("https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json")).json();A(n)}catch(t){console.error("Error fetching portfolio data:",t)}})()},[v]);let X=()=>{_.current?.scrollIntoView({behavior:"smooth"})};c(()=>{X()},[p]);let V=async e=>{console.log("sys",m);let t=await fetch(S,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:e,feedData:E,systemPrompt:m||z,model:C})});if(!t.ok){let r=await t.json();throw new Error(r.error||"Failed to get AI response")}let n=await t.json();return T&&T(n.text),n.text},K=async e=>{if(!e.trim()||x)return;let t={role:"user",content:e};O&&O(t);let n=[...p,t];d(n),k(""),L(!0);try{let s={role:"assistant",content:await V([t])},a=[...n,s];d(a),localStorage.setItem("messages",JSON.stringify(a))}catch(r){console.error("Error calling AI:",r);let s={role:"assistant",content:"Sorry, I encountered an error. Please try again later."},a=[...n,s];d(a),localStorage.setItem("messages",JSON.stringify(a))}finally{L(!1)}};c(()=>{g.current&&(g.current.style.height="auto",g.current.style.height=`${Math.min(g.current.scrollHeight,100)}px`)},[l]);let J=q(e=>{e.preventDefault(),e.target.setPointerCapture(e.pointerId),$(!0)},[]);return c(()=>{if(!b)return;let e=n=>{if(!D.current)return;let r=D.current.getBoundingClientRect(),s=r.right-n.clientX,a=r.bottom-n.clientY,N=window.innerWidth<=768,Z=N?window.innerWidth-40:800,Y=N?window.innerHeight-100:800;s>250&&s<Z&&M(I=>({...I,width:s})),a>300&&a<Y&&M(I=>({...I,height:a}))},t=()=>{$(!1)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[b]),f("div",{className:"chatbot-container",ref:w,children:[j&&o("div",{className:"chatbot-popup",children:f("div",{ref:D,className:`chat-popup-wrapper ${b?"resizing":""}`,style:{width:`${P.width}px`,height:`${P.height}px`,position:"relative"},children:[o("div",{className:"stretch-icon",onPointerDown:J}),f("div",{className:"messages-container",children:[p.map((e,t)=>o("div",{className:`message ${e.role==="user"?"user":"ai"}`,dangerouslySetInnerHTML:{__html:e.content}},t)),x&&o("div",{className:"message ai loading",children:"Thinking..."}),o("div",{ref:_})]}),f("div",{className:"input-container",children:[o("textarea",{ref:g,rows:1,placeholder:"What's on your mind?",value:l,onKeyDown:e=>{e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),K(l))},onChange:e=>k(e.target.value)}),o("button",{onClick:()=>K(l),disabled:!l.trim()||x,className:"send-button",children:f("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[o("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),o("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})]})]})}),o("img",{onClick:()=>R(e=>!e),className:"chatbot-icon",alt:"chatbot",src:typeof h=="string"?h:h.src})]})};export{oe as ChatPopup};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/chat-popup.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport \"./chat-popup.css\";\n\nimport chatbot from \"../assets/chatbot-black.png\";\n\ntype Message = {\n role: \"user\" | \"assistant\" | \"system\";\n content: string;\n};\n\nexport interface ChatPopupProps {\n systemPrompt?: string;\n feedData?: any;\n apiUrl?: string;\n assistantName?: string;\n initialMessage?: string;\n model?: string;\n messages?: Message[];\n onMessageSend?: (message: Message) => void;\n onResponseReceive?: (response: string) => void;\n}\n\nexport const ChatPopup = ({\n systemPrompt,\n feedData: externalfeedData,\n apiUrl = \"https://thikana.malaymishra.com/chatbot\",\n assistantName = \"Thikana\",\n initialMessage,\n model,\n onMessageSend,\n onResponseReceive,\n}: ChatPopupProps) => {\n const [input, setInput] = useState<string>(\"\");\n const [internalMessages, setInternalMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [internalfeedData, setInternalfeedData] = useState<any>(null);\n const [dimensions, setDimensions] = useState({ width: 330, height: 480 });\n const [isResizing, setIsResizing] = useState(false);\n const [openPopup, setOpenPopup] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setOpenPopup(false);\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n const activefeedData = externalfeedData || internalfeedData;\n\n useEffect(() => {\n if (internalMessages.length === 0) {\n const saved = localStorage.getItem(\"messages\");\n if (saved) {\n setInternalMessages(JSON.parse(saved));\n } else {\n setInternalMessages([\n {\n role: \"assistant\",\n content:\n initialMessage ||\n `Hi this is ${assistantName}! How can I help you today?`,\n },\n ]);\n }\n }\n }, [initialMessage, assistantName, internalMessages.length]);\n\n useEffect(() => {\n if (!externalfeedData) {\n const fetchfeedData = async () => {\n try {\n const response = await fetch(\n \"https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json\",\n );\n const data = await response.json();\n setInternalfeedData(data);\n } catch (error) {\n console.error(\"Error fetching portfolio data:\", error);\n }\n };\n fetchfeedData();\n }\n }, [externalfeedData]);\n\n const scrollToBottom = () => {\n messagesEndRef.current?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [internalMessages]);\n\n const getAIResponse = async (currentMessages: Message[]): Promise<string> => {\n const response = await fetch(apiUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n messages: currentMessages,\n feedData: activefeedData,\n systemPrompt,\n model,\n }),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || \"Failed to get AI response\");\n }\n\n const data = await response.json();\n if (onResponseReceive) onResponseReceive(data.text);\n return data.text;\n };\n\n const callModel = async (userInput: string) => {\n if (!userInput.trim() || isLoading) return;\n\n const userMessage: Message = { role: \"user\", content: userInput };\n if (onMessageSend) onMessageSend(userMessage);\n\n const newMessages = [...internalMessages, userMessage];\n\n setInternalMessages(newMessages);\n\n setInput(\"\");\n setIsLoading(true);\n\n try {\n const text = await getAIResponse(newMessages);\n\n const assistantMessage: Message = {\n role: \"assistant\",\n content: text,\n };\n\n const updatedMessages = [...newMessages, assistantMessage];\n\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } catch (error) {\n console.error(\"Error calling AI:\", error);\n const defaultFailMessage: Message = {\n role: \"assistant\",\n content: \"Sorry, I encountered an error. Please try again later.\",\n };\n const updatedMessages = [...newMessages, defaultFailMessage];\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 100)}px`;\n }\n }, [input]);\n\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n setIsResizing(true);\n }, []);\n\n useEffect(() => {\n if (!isResizing) return;\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!wrapperRef.current) return;\n\n const rect = wrapperRef.current.getBoundingClientRect();\n const newWidth = rect.right - e.clientX;\n const newHeight = rect.bottom - e.clientY;\n\n if (newWidth > 250 && newWidth < 800) {\n setDimensions((prev) => ({ ...prev, width: newWidth }));\n }\n if (newHeight > 300 && newHeight < 800) {\n setDimensions((prev) => ({ ...prev, height: newHeight }));\n }\n };\n\n const handleMouseUp = () => {\n setIsResizing(false);\n };\n\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [isResizing]);\n\n return (\n <div className=\"chatbot-container\" ref={containerRef}>\n {openPopup && (\n <div className=\"chatbot-popup\">\n <div\n ref={wrapperRef}\n className={`chat-popup-wrapper ${isResizing ? \"resizing\" : \"\"}`}\n style={{\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n position: \"relative\",\n }}\n >\n <div className=\"stretch-icon\" onMouseDown={handleMouseDown}></div>\n <div className=\"messages-container\">\n {internalMessages.map((msg: Message, index: number) => (\n <div\n key={index}\n className={`message ${msg.role === \"user\" ? \"user\" : \"ai\"}`}\n dangerouslySetInnerHTML={{ __html: msg.content }}\n />\n ))}\n {isLoading && (\n <div className=\"message ai loading\">Thinking...</div>\n )}\n <div ref={messagesEndRef} />\n </div>\n\n <div className=\"input-container\">\n <textarea\n ref={textareaRef}\n rows={1}\n placeholder=\"What's on your mind?\"\n value={input}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n callModel(input);\n }\n }}\n onChange={(e) => setInput(e.target.value)}\n />\n <button\n onClick={() => callModel(input)}\n disabled={!input.trim() || isLoading}\n className=\"send-button\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line>\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\n </svg>\n </button>\n </div>\n </div>\n </div>\n )}\n\n <img\n onClick={() => setOpenPopup((prev) => !prev)}\n className=\"chatbot-icon\"\n alt=\"chatbot\"\n src={typeof chatbot === \"string\" ? chatbot : (chatbot as any).src}\n />\n </div>\n );\n};\n"],"mappings":"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","names":["useState","useRef","useEffect","useCallback","jsx","jsxs","ChatPopup","systemPrompt","externalfeedData","apiUrl","assistantName","initialMessage","model","onMessageSend","onResponseReceive","input","setInput","useState","internalMessages","setInternalMessages","isLoading","setIsLoading","internalfeedData","setInternalfeedData","dimensions","setDimensions","isResizing","setIsResizing","openPopup","setOpenPopup","containerRef","useRef","useEffect","handleClickOutside","event","wrapperRef","textareaRef","messagesEndRef","activefeedData","saved","data","error","scrollToBottom","getAIResponse","currentMessages","response","errorData","callModel","userInput","userMessage","newMessages","assistantMessage","updatedMessages","defaultFailMessage","handleMouseDown","useCallback","handleMouseMove","e","rect","newWidth","newHeight","prev","handleMouseUp","msg","index","chatbot_black_default"]}
1
+ {"version":3,"sources":["../src/components/chat-popup.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport \"./chat-popup.css\";\n\nimport chatbot from \"../assets/chatbot-black.png\";\n\nconst DEFAULT_SYSTEM_PROMPT =\n 'You are Thikana, a helpful AI assistant. STRICT RULES: 1) NEVER exceed 80 words in any reply — count carefully. 2) If a question is vague, hypothetical, philosophical, personal, or not a clear factual/technical question, reply ONLY with: \"I can only help with clear, specific questions. Try asking something concrete!\" 3) Format replies as HTML using only <b>, <br>, <ul>, and <li> tags — no Markdown. 4) Never roleplay, never answer \"what if\" or \"would you\" questions. 5) Stay concise — short sentences only.';\n\ntype Message = {\n role: \"user\" | \"assistant\" | \"system\";\n content: string;\n};\n\nexport interface ChatPopupProps {\n systemPrompt?: string;\n feedData?: any;\n apiUrl?: string;\n assistantName?: string;\n initialMessage?: string;\n model?: string;\n messages?: Message[];\n onMessageSend?: (message: Message) => void;\n onResponseReceive?: (response: string) => void;\n}\n\nexport const ChatPopup = ({\n systemPrompt,\n feedData: externalfeedData,\n apiUrl = \"https://thikana.malaymishra.com/chatbot\",\n assistantName = \"Thikana\",\n initialMessage,\n model,\n onMessageSend,\n onResponseReceive,\n}: ChatPopupProps) => {\n const [input, setInput] = useState<string>(\"\");\n const [internalMessages, setInternalMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [internalfeedData, setInternalfeedData] = useState<any>(null);\n const [dimensions, setDimensions] = useState({ width: 330, height: 480 });\n const [isResizing, setIsResizing] = useState(false);\n const [openPopup, setOpenPopup] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setOpenPopup(false);\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n\n const activefeedData = externalfeedData || internalfeedData;\n\n useEffect(() => {\n if (internalMessages.length === 0) {\n const saved = localStorage.getItem(\"messages\");\n if (saved) {\n setInternalMessages(JSON.parse(saved));\n } else {\n setInternalMessages([\n {\n role: \"assistant\",\n content:\n initialMessage ||\n `Hi this is ${assistantName}! How can I help you today?`,\n },\n ]);\n }\n }\n }, [initialMessage, assistantName, internalMessages.length]);\n\n useEffect(() => {\n if (!externalfeedData) {\n const fetchfeedData = async () => {\n try {\n const response = await fetch(\n \"https://raw.githubusercontent.com/hi-malay/portfolio-data/refs/heads/main/scrapped_data.json\",\n );\n const data = await response.json();\n setInternalfeedData(data);\n } catch (error) {\n console.error(\"Error fetching portfolio data:\", error);\n }\n };\n fetchfeedData();\n }\n }, [externalfeedData]);\n\n const scrollToBottom = () => {\n messagesEndRef.current?.scrollIntoView({ behavior: \"smooth\" });\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [internalMessages]);\n\n const getAIResponse = async (currentMessages: Message[]): Promise<string> => {\n console.log(\"sys\", systemPrompt);\n const response = await fetch(apiUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n messages: currentMessages,\n feedData: activefeedData,\n systemPrompt: systemPrompt || DEFAULT_SYSTEM_PROMPT,\n model,\n }),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || \"Failed to get AI response\");\n }\n\n const data = await response.json();\n if (onResponseReceive) onResponseReceive(data.text);\n return data.text;\n };\n\n const callModel = async (userInput: string) => {\n if (!userInput.trim() || isLoading) return;\n\n const userMessage: Message = { role: \"user\", content: userInput };\n if (onMessageSend) onMessageSend(userMessage);\n\n const newMessages = [...internalMessages, userMessage];\n\n setInternalMessages(newMessages);\n\n setInput(\"\");\n setIsLoading(true);\n\n try {\n const text = await getAIResponse([userMessage]);\n\n const assistantMessage: Message = {\n role: \"assistant\",\n content: text,\n };\n\n const updatedMessages = [...newMessages, assistantMessage];\n\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } catch (error) {\n console.error(\"Error calling AI:\", error);\n const defaultFailMessage: Message = {\n role: \"assistant\",\n content: \"Sorry, I encountered an error. Please try again later.\",\n };\n const updatedMessages = [...newMessages, defaultFailMessage];\n setInternalMessages(updatedMessages);\n localStorage.setItem(\"messages\", JSON.stringify(updatedMessages));\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 100)}px`;\n }\n }, [input]);\n\n const handlePointerDown = useCallback((e: React.PointerEvent) => {\n e.preventDefault();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n setIsResizing(true);\n }, []);\n\n useEffect(() => {\n if (!isResizing) return;\n\n const handlePointerMove = (e: PointerEvent) => {\n if (!wrapperRef.current) return;\n\n const rect = wrapperRef.current.getBoundingClientRect();\n const newWidth = rect.right - e.clientX;\n const newHeight = rect.bottom - e.clientY;\n\n const isMobile = window.innerWidth <= 768;\n const maxW = isMobile ? window.innerWidth - 40 : 800;\n const maxH = isMobile ? window.innerHeight - 100 : 800;\n if (newWidth > 250 && newWidth < maxW) {\n setDimensions((prev) => ({ ...prev, width: newWidth }));\n }\n if (newHeight > 300 && newHeight < maxH) {\n setDimensions((prev) => ({ ...prev, height: newHeight }));\n }\n };\n\n const handlePointerUp = () => {\n setIsResizing(false);\n };\n\n window.addEventListener(\"pointermove\", handlePointerMove);\n window.addEventListener(\"pointerup\", handlePointerUp);\n\n return () => {\n window.removeEventListener(\"pointermove\", handlePointerMove);\n window.removeEventListener(\"pointerup\", handlePointerUp);\n };\n }, [isResizing]);\n\n return (\n <div className=\"chatbot-container\" ref={containerRef}>\n {openPopup && (\n <div className=\"chatbot-popup\">\n <div\n ref={wrapperRef}\n className={`chat-popup-wrapper ${isResizing ? \"resizing\" : \"\"}`}\n style={{\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n position: \"relative\",\n }}\n >\n <div\n className=\"stretch-icon\"\n onPointerDown={handlePointerDown}\n ></div>\n <div className=\"messages-container\">\n {internalMessages.map((msg: Message, index: number) => (\n <div\n key={index}\n className={`message ${msg.role === \"user\" ? \"user\" : \"ai\"}`}\n dangerouslySetInnerHTML={{ __html: msg.content }}\n />\n ))}\n {isLoading && (\n <div className=\"message ai loading\">Thinking...</div>\n )}\n <div ref={messagesEndRef} />\n </div>\n\n <div className=\"input-container\">\n <textarea\n ref={textareaRef}\n rows={1}\n placeholder=\"What's on your mind?\"\n value={input}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n callModel(input);\n }\n }}\n onChange={(e) => setInput(e.target.value)}\n />\n <button\n onClick={() => callModel(input)}\n disabled={!input.trim() || isLoading}\n className=\"send-button\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line>\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\n </svg>\n </button>\n </div>\n </div>\n </div>\n )}\n\n <img\n onClick={() => setOpenPopup((prev) => !prev)}\n className=\"chatbot-icon\"\n alt=\"chatbot\"\n src={typeof chatbot === \"string\" ? chatbot : (chatbot as any).src}\n />\n </div>\n );\n};\n"],"mappings":"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","names":["useState","useRef","useEffect","useCallback","jsx","jsxs","DEFAULT_SYSTEM_PROMPT","ChatPopup","systemPrompt","externalfeedData","apiUrl","assistantName","initialMessage","model","onMessageSend","onResponseReceive","input","setInput","useState","internalMessages","setInternalMessages","isLoading","setIsLoading","internalfeedData","setInternalfeedData","dimensions","setDimensions","isResizing","setIsResizing","openPopup","setOpenPopup","containerRef","useRef","useEffect","handleClickOutside","event","wrapperRef","textareaRef","messagesEndRef","activefeedData","saved","data","error","scrollToBottom","getAIResponse","currentMessages","response","errorData","callModel","userInput","userMessage","newMessages","assistantMessage","updatedMessages","defaultFailMessage","handlePointerDown","useCallback","handlePointerMove","e","rect","newWidth","newHeight","isMobile","maxW","maxH","prev","handlePointerUp","msg","index","chatbot_black_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thikanaa",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "A beautiful, AI-powered chat popup component for React and Next.js applications",
5
5
  "keywords": [
6
6
  "react",
@@ -30,7 +30,8 @@
30
30
  "dependencies": {
31
31
  "@ai-sdk/google": "^3.0.15",
32
32
  "@ai-sdk/groq": "^3.0.16",
33
- "ai": "^6.0.57"
33
+ "ai": "^6.0.57",
34
+ "zod": "^4.3.6"
34
35
  },
35
36
  "peerDependencies": {
36
37
  "react": ">=18",