- `),(()=>this.openFile(e,!0)),n.activeFilePath===e.path?"active":"",e.name,i.a.formatBytes(e.length))))):"")}}},"3QNJ":function(n,e,l){"use strict";function t(){return(t=Object.assign||function(n){for(var e=1;e=0||(i[l]=n[l]);return i}(n,["context","children"]);return Object(Sn.cloneElement)(e,l)}function h(){var n=new CustomEvent("_preact",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(n),this._vdom=Object(Sn.h)(c,s({},this._props,{context:n.detail.context}),function n(e,l){if(3===e.nodeType)return e.data;if(1!==e.nodeType)return null;var t=[],i={},r=0,o=e.attributes,u=e.childNodes;for(r=o.length;r--;)"slot"!==o[r].name&&(i[o[r].name]=o[r].value,i[p(o[r].name)]=o[r].value);for(r=u.length;r--;){var a=n(u[r],null),s=u[r].slot;s?i[s]=Object(Sn.h)(g,{name:s},a):t[r]=a}var c=l?Object(Sn.h)(g,null,t):t;return Object(Sn.h)(l||e.nodeName.toLowerCase(),i,c)}(this,this._vdomComponent)),(this.hasAttribute("hydrate")?Sn.hydrate:Sn.render)(this._vdom,this._root)}function p(n){return n.replace(/-(\w)/g,(function(n,e){return e?e.toUpperCase():""}))}function f(n,e,l){if(this._vdom){var t={};t[n]=l=null==l?void 0:l,t[p(n)]=l,this._vdom=Object(Sn.cloneElement)(this._vdom,t),Object(Sn.render)(this._vdom,this._root)}}function d(){Object(Sn.render)(this._vdom=null,this._root)}function g(n,e){var l=this;return Object(Sn.h)("slot",s({},n,{ref:function(n){n?(l.ref=n,l._listener||(l._listener=function(n){n.stopPropagation(),n.detail.context=e},n.addEventListener("_preact",l._listener))):l.ref.removeEventListener("_preact",l._listener)}}))}function m(){return(m=Object.assign||function(n){for(var e=1;e-1&&e<1?Math.round(1e6*e)/1e4+"%":e+"px"}function y(n){if(Nn.hasOwnProperty(n))return Nn[n];var e=n.replace(Rn,"-$1").toLowerCase().replace(zn,"-ms-");return Nn[n]=e,Nn[n]}function _(n){for(var e=5381,l=n.length;l;)e=33*e^n.charCodeAt(--l);return e>>>0}function w(){throw new Error("jsxstyle error: `injectOptions` must be called before any jsxstyle components mount.")}function F(){throw new Error("jsxstyle error: `injectOptions` should be called once and only once.")}function k(){return(k=Object.assign||function(n){for(var e=1;e`Missing ${n} property in key`)("name"));const r=n.name;if(t=r,we.call(n,"weight")&&(i=n.weight,i<=0))throw new Error((n=>`Property 'weight' in key '${n}' must be a positive integer`)(r));e=W(r),l=G(r)}return{path:e,id:l,weight:i,src:t}}function W(n){return P(n)?n:n.split(".")}function G(n){return P(n)?n.join("."):n}function q(n,e,{getFn:l=xe.getFn}={}){const t=new Se({getFn:l});return t.setKeys(n.map(H)),t.setSources(e),t.create(),t}function K(n,{errors:e=0,currentLocation:l=0,expectedLocation:t=0,distance:i=xe.distance,ignoreLocation:r=xe.ignoreLocation}={}){const o=e/n.length;if(r)return o;const u=Math.abs(t-l);return i?o+u/i:u?1:o}function V(n,e,l,{location:t=xe.location,distance:i=xe.distance,threshold:r=xe.threshold,findAllMatches:o=xe.findAllMatches,minMatchCharLength:u=xe.minMatchCharLength,includeMatches:a=xe.includeMatches,ignoreLocation:s=xe.ignoreLocation}={}){if(e.length>Ee)throw new Error(`Pattern length exceeds max of ${Ee}.`);const c=e.length,h=n.length,p=Math.max(0,Math.min(t,h));let f=r,d=p;const g=u>1||a,m=g?Array(h):[];let v;for(;(v=n.indexOf(e,d))>-1;){let n=K(e,{currentLocation:v,expectedLocation:p,distance:i,ignoreLocation:s});if(f=Math.min(n,f),d=v+c,g){let n=0;for(;n=a;r-=1){let o=r-1,u=l[n.charAt(o)];if(g&&(m[o]=+!!u),F[r]=(F[r+1]<<1|1)&u,t&&(F[r]|=(b[r+1]|b[r])<<1|1|b[r+1]),F[r]&w&&(y=K(e,{errors:t,currentLocation:o,expectedLocation:p,distance:i,ignoreLocation:s}),y<=f)){if(f=y,d=o,d<=p)break;a=Math.max(1,2*p-d)}}if(K(e,{errors:t+1,currentLocation:p,expectedLocation:p,distance:i,ignoreLocation:s})>f)break;b=F}const F={isMatch:d>=0,score:Math.max(.001,y)};if(g){const n=function(n=[],e=xe.minMatchCharLength){let l=[],t=-1,i=-1,r=0;for(let o=n.length;r=e&&l.push([t,i]),t=-1)}return n[r-1]&&r-t>=e&&l.push([t,r-1]),l}(m,u);n.length?a&&(F.indices=n):F.isMatch=!1}return F}function J(n){let e={};for(let l=0,t=n.length;l{let i=Object.keys(n);const r=(n=>!!n[ze])(n);if(!r&&i.length>1&&!Ue(n))return t(He(n));if((n=>!P(n)&&R(n)&&!Ue(n))(n)){const t=r?n[ze]:i[0],o=r?n[Ne]:n[t];if(!$(o))throw new Error((n=>`Invalid value for key ${n}`)(t));const u={keyId:G(t),pattern:o};return l&&(u.searcher=Q(o,e)),u}let o={children:[],operator:i[0]};return i.forEach((e=>{const l=n[e];P(l)&&l.forEach((n=>{o.children.push(t(n))}))})),o};return Ue(n)||(n=He(n)),t(n)}function X(n,e){const l=n.matches;e.matches=[],z(l)&&l.forEach((n=>{if(!z(n.indices)||!n.indices.length)return;const{indices:l,value:t}=n;let i={indices:l,value:t};n.key&&(i.key=n.key.src),n.idx>-1&&(i.refIndex=n.idx),e.matches.push(i)}))}function nn(n,e){e.score=n.score}function en(n,e){return n.raw=e,n}var ln,tn=l("GLQ6"),rn=l.n(tn),on=function(){function n(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!n.gun)throw new Error("Missing opt.gun");if(!n.class&&!n.name)throw new Error("You must supply either opt.name or opt.class");if(this.class=n.class,this.serializer=n.serializer,this.class&&!this.class.deserialize&&!this.serializer)throw new Error("opt.class must have deserialize() method or opt.serializer must be defined");this.name=n.name||n.class.name,this.gun=n.gun,this.indexes=n.indexes||[],this.indexer=n.indexer,this.askPeers=void 0===n.askPeers||n.askPeers}return n.prototype.put=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=n;this.serializer&&(l=this.serializer.serialize(n)),this.class&&(l=n.serialize());var t=void 0;return t=e.id||l.id?this.gun.get(this.name).get("id").get(e.id||l.id).put(l):n.getId?this.gun.get(this.name).get("id").get(n.getId()).put(l):this.gun.get(this.name).get("id").set(l),this._addToIndexes(l,t),l.id||rn.a.node.soul(t)||t._.link},n.prototype._addToIndexes=async function(n,e){var l=this;rn.a.node.is(n)&&(n=await n.open());var t=function(n,t){l.gun.get(l.name).get(n).get(t).put(e)};if(this.indexer)for(var i=await this.indexer(n),r=Object.keys(i),o=0;o0&&void 0!==arguments[0]?arguments[0]:{};if(e.callback){var l=0,t=function(t,i,r){if(t&&!(e.limit&&l++>=e.limit)){if(e.selector)for(var o=Object.keys(e.selector),u=0;u-1&&(i=e.orderBy),this.gun.get(this.name).get(i).map().on(t),this.askPeers&&this.gun.get("trustedIndexes").on((function(e,l){n.gun.user(l).get(n.name).get(i).map().on(t)}))}},n.prototype.delete=function(){},n}(),un=l("mXm3"),an=l("Ymal"),sn=l.n(an),cn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},hn={email:/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i,bitcoin:/^[13][a-km-zA-HJ-NP-Z0-9]{26,33}$/,bitcoin_address:/^[13][a-km-zA-HJ-NP-Z0-9]{26,33}$/,ip:/^(([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)$/,ipv6:/^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$/,gpg_fingerprint:null,gpg_keyid:null,google_oauth2:null,tel:/^\d{7,}$/,phone:/^\d{7,}$/,keyID:null,url:/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi,account:/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i,uuid:/[0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12}/},pn=function(){function n(e,l){if(function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),"object"==typeof e){if("string"!=typeof e.value)throw new Error("param1.value must be a string, got "+cn(e.value)+": "+JSON.stringify(e.value));if("string"!=typeof e.type)throw new Error("param1.type must be a string, got "+cn(e.type)+": "+JSON.stringify(e.type));l=e.value,e=e.type}if("string"!=typeof e)throw new Error("First param must be a string, got "+(void 0===e?"undefined":cn(e))+": "+JSON.stringify(e));if(!e.length)throw new Error("First param string is empty");if(l){if("string"!=typeof l)throw new Error("Second parameter must be a string, got "+(void 0===l?"undefined":cn(l))+": "+JSON.stringify(l));if(!l.length)throw new Error("Second param string is empty");this.type=e,this.value=l}else{this.value=e;var t=n.guessTypeOf(this.value);if(!t)throw new Error("Type of attribute was omitted and could not be guessed");this.type=t}}return n.getUuid=function(){return new n("uuid",function n(e){return e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,n)}())},n.getUniqueIdValidators=function(){return hn},n.isUniqueType=function(n){return Object.keys(hn).indexOf(n)>-1},n.prototype.isUniqueType=function(){return n.isUniqueType(this.type)},n.guessTypeOf=function(n){for(var e in hn)if(n.match(hn[e]))return e},n.equals=function(n,e){return n.equals(e)},n.prototype.equals=function(n){return n&&this.type===n.type&&this.value===n.value},n.prototype.uri=function(){return encodeURIComponent(this.value)+":"+encodeURIComponent(this.type)},n.prototype.identiconXml=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return un.a.getHash(encodeURIComponent(this.type)+":"+encodeURIComponent(this.value),"hex").then((function(e){return new sn.a(e,{width:n.width,format:"svg"}).toString(!0)}))},n.prototype.identiconSrc=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return un.a.getHash(encodeURIComponent(this.type)+":"+encodeURIComponent(this.value),"hex").then((function(e){return"data:image/svg+xml;base64,"+new sn.a(e,{width:n.width,format:"svg"}).toString()}))},n.prototype.identicon=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n=t({width:50,showType:!0},n),un.a.injectCss();var e=document.createElement("div");e.className="iris-identicon",e.style.width=n.width+"px",e.style.height=n.width+"px";var l=document.createElement("img");if(l.alt="",l.width=n.width,l.height=n.width,this.identiconSrc(n).then((function(n){return l.src=n})),n.showType){var i=document.createElement("span");i.className="iris-distance",i.style.fontSize=n.width>50?n.width/4+"px":"10px",i.textContent=this.type.slice(0,5),e.appendChild(i)}return e.appendChild(l),e},n}(),fn=(l("ED03"),void 0),dn=function(){function n(){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n)}return n.getActiveKey=async function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"iris.key",t=arguments[2];if(fn)return fn;if(t){var i=e+"/"+l;if(t.existsSync(i)){var r=t.readFileSync(i,"utf8");fn=n.fromString(r)}else{var o=await n.generate();t.writeFileSync(i,n.toString(fn=fn||o)),t.chmodSync(i,400)}if(!fn)throw new Error("loading default key failed - check "+e+"/"+l)}else{var u=window.localStorage.getItem("iris.myKey");if(u)fn=n.fromString(u);else{var a=await n.generate();fn=fn||a,window.localStorage.setItem("iris.myKey",n.toString(fn))}if(!fn)throw new Error("loading default key failed - check localStorage iris.myKey")}return fn},n.getDefault=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"iris.key";return n.getActiveKey(e,l)},n.getActivePub=async function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"iris.key",t=await n.getActiveKey(e,l);return t.pub},n.setActiveKey=function(e){var l=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"iris.key",r=arguments[4];if(fn=e,l)if(un.a.isNode){var o=t+"/"+i;r.writeFileSync(o,n.toString(fn)),r.chmodSync(o,400)}else window.localStorage.setItem("iris.myKey",n.toString(fn))},n.toString=function(n){return JSON.stringify(n)},n.getId=function(n){if(!n||!n.pub)throw new Error("missing param");return n.pub},n.fromString=function(n){return JSON.parse(n)},n.generate=function(){return rn.a.SEA.pair()},n.sign=async function(n,e){return"a"+await rn.a.SEA.sign(n,e)},n.verify=function(n,e){return rn.a.SEA.verify(n.slice(1),e)},n}(),gn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},mn="Invalid message:",vn=function(n){function e(){return i(this,e),r(this,n.apply(this,arguments))}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e}(Error),bn=function(){function n(e){if(i(this,n),e.signedData&&(this.signedData=e.signedData),e.pubKey&&(this.pubKey=e.pubKey),e.sig){if("string"!=typeof e.sig)throw new vn("SignedMessage signature must be a string");this.sig=e.sig,this.getHash()}this._validate()}return n._getArray=function(n){for(var e=[],l=Object.keys(n),t=0;tn.maxRating)throw new vn(mn+" Rating is above maxRating");if(n.rating(this.signedData.maxRating+this.signedData.minRating)/2},n.prototype.isNegative=function(){return"rating"===this.signedData.type&&this.signedData.rating<(this.signedData.maxRating+this.signedData.minRating)/2},n.prototype.isNeutral=function(){return"rating"===this.signedData.type&&this.signedData.rating===(this.signedData.maxRating+this.signedData.minRating)/2},n.prototype.sign=async function(n){return this.sig=await dn.sign(this.signedData,n),this.pubKey=n.pub,await this.getHash(),!0},n.create=async function(e,l){!e.author&&l&&(e.author={keyID:dn.getId(l)}),e.time=e.time||(new Date).toISOString();var t=new n({signedData:e});return l&&await t.sign(l),t},n.createVerification=function(e,l){return e.type="verification",n.create(e,l)},n.createRating=function(e,l){return e.type="rating",e.context=e.context||"iris",e.maxRating=e.maxRating||10,e.minRating=e.minRating||-10,n.create(e,l)},n.prototype.getAuthor=function(n){var e=this.getAuthorIterable(),l=Array.isArray(e),t=0;for(e=l?e:e[Symbol.iterator]();;){var i;if(l){if(t>=e.length)break;i=e[t++]}else{if((t=e.next()).done)break;i=t.value}var r=i;if(r.isUniqueType())return n.getContacts(r)}},n.prototype.getRecipient=function(n){if(this.signedData.recipient){var e=this.getRecipientIterable(),l=Array.isArray(e),t=0;for(e=l?e:e[Symbol.iterator]();;){var i;if(l){if(t>=e.length)break;i=e[t++]}else{if((t=e.next()).done)break;i=t.value}var r=i;if(r.isUniqueType())return n.getContacts(r)}}},n.prototype.getHash=async function(){return this.sig&&!this.hash&&(this.hash=await un.a.getHash(this.sig)),this.hash},n.prototype.getId=function(){return this.getHash()},n.fromSig=async function(e){if(!e.sig)throw new Error("Missing signature in object:",e);if(!e.pubKey)throw new Error("Missing pubKey in object:");return new n({signedData:await dn.verify(e.sig,e.pubKey),sig:e.sig,pubKey:e.pubKey})},n.prototype.verify=async function(){if(!this.pubKey)throw new vn(mn+" SignedMessage has no .pubKey");if(!this.sig)throw new vn(mn+" SignedMessage has no .sig");if(this.signedData=await dn.verify(this.sig,this.pubKey),!this.signedData)throw new vn(mn+" Invalid signature");if(this.hash){if(this.hash!==await un.a.getHash(this.sig))throw new vn(mn+" Invalid message hash")}else this.getHash();return!0},n.prototype.serialize=function(){return{sig:this.sig,pubKey:this.pubKey}},n.prototype.toString=function(){return JSON.stringify(this.serialize())},n.deserialize=async function(e){return n.fromSig(e)},n.fromString=async function(e){return n.fromSig(JSON.parse(e))},n.setReaction=async function(n,e,l){var t=await e.getHash();n.get("reactions").get(t).put(l),n.get("reactions").get(t).put(l),n.get("messagesByHash").get(t).get("reactions").get(this.rootContact.value).put(l),n.get("messagesByHash").get(t).get("reactions").get(this.rootContact.value).put(l)},n}(),yn=function(){function n(e,l){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.gun=e,this.linkTo=l}return n.create=function(e,l,t){if(!l.linkTo&&!l.attrs)throw new Error("You must specify either data.linkTo or data.attrs");if(l.linkTo&&!l.attrs){var i=new pn(l.linkTo);l.attrs={},Object.prototype.hasOwnProperty.call(l.attrs,i.uri())||(l.attrs[i.uri()]=i)}else l.linkTo=n.getLinkTo(l.attrs);var r=l.linkTo.uri(),o=e.top(r+"/attrs").put(l.attrs);return delete l.attrs,e.put(l),e.get("attrs").put(o),new n(e,r,t)},n.getLinkTo=function(e){for(var l=n.getMostVerifiedAttributes(e),t=Object.keys(l),i=void 0,r=0;r-1;t.verifications=isNaN(t.verifications)?1:t.verifications,t.unverifications=isNaN(t.unverifications)?0:t.unverifications,2*t.verifications>3*t.unverifications&&(!i||t.verifications-t.unverifications>e[t.type].verificationScore)&&(e[t.type]={attribute:t,verificationScore:t.verifications-t.unverifications},t.verified&&(e[t.type].verified=!0))})),e},n.getAttrs=async function(n){var e=await un.a.loadGunDepth(n.get("attrs"),2);return e&&void 0!==e._&&delete e._,e||{}},n.prototype.getId=function(){return this.linkTo.value},n.prototype.sent=function(n,e){n._getSentMsgs(this,e)},n.prototype.received=function(n,e){n._getReceivedMsgs(this,e)},n.prototype.verified=async function(e){var l=await n.getAttrs(this.gun).then(),t=n.getMostVerifiedAttributes(l);return Object.prototype.hasOwnProperty.call(t,e)?t[e].attribute.value:void 0},n.prototype.profileCard=function(){var e=this,l=document.createElement("div");l.className="iris-card";var t=this.identicon({width:60});t.style.order=1,t.style.flexShrink=0,t.style.marginRight="15px";var i=document.createElement("div");i.style.padding="5px",i.style.order=2,i.style.flexGrow=1;var r=document.createElement("span"),o=document.createElement("small");return l.appendChild(t),l.appendChild(i),i.appendChild(r),i.appendChild(o),this.gun.on((async function(l){if(l){var t=await n.getAttrs(e.gun),i=await e.gun.get("linkTo").then(),u="https://iris.to/#/identities/"+i.type+"/"+i.value,a=n.getMostVerifiedAttributes(t);r.innerHTML=''+(a.type&&a.type.attribute.value||a.nickname&&a.nickname.attribute.value||i.type+":"+i.value)+" ",r.innerHTML+='Received: +'+(l.receivedPositive||0)+' / -'+(l.receivedNegative||0)+" ",o.innerHTML="",Object.keys(t).forEach((function(n){var e=t[n];e.link&&(o.innerHTML+=e.type+': '+e.value+" ")}))}})),l},n.appendSearchWidget=function(n,e){var l=document.createElement("form"),t=document.createElement("input");t.type="text",t.placeholder="Search",t.id="irisSearchInput",l.innerHTML+='';var i=document.createElement("div");return n.appendChild(l),l.appendChild(t),l.appendChild(i),t.addEventListener("keyup",(async function(){var n=await e.search(t.value);i.innerHTML="",n.sort((function(n,e){return n.trustDistance-e.trustDistance})),n.forEach((function(n){i.appendChild(n.profileCard())}))})),l},n._ordinal=function(n){if(0===n)return"";var e=["th","st","nd","rd"],l=n%100;return n+(e[(l-20)%10]||e[l]||e[0])},n.prototype.identicon=function(){function e(e){if(e){var l="rgba(0,0,0,0.2)",i="none",o="";if(t.outerGlow){var u="0px 0px 0px 0px #82FF84";e.receivedPositive>20*e.receivedNegative?u="0px 0px "+t.border*e.receivedPositive/50+"px 0px #82FF84":e.receivedPositive<3*e.receivedNegative&&(u="0px 0px "+t.border*e.receivedNegative/10+"px 0px #BF0400"),r.style.boxShadow=u}e.receivedPositive+e.receivedNegative>0&&(e.receivedPositive>e.receivedNegative?(o="rotate("+(-e.receivedPositive/(e.receivedPositive+e.receivedNegative)*360-180)/2+"deg)",l="#A94442",i="linear-gradient("+e.receivedPositive/(e.receivedPositive+e.receivedNegative)*360+"deg, transparent 50%, #3C763D 50%), linear-gradient(0deg, #3C763D 50%, transparent 50%)"):(o="rotate("+((-e.receivedNegative/(e.receivedPositive+e.receivedNegative)*360-180)/2+180)+"deg)",l="#3C763D",i="linear-gradient("+e.receivedNegative/(e.receivedPositive+e.receivedNegative)*360+"deg, transparent 50%, #A94442 50%), linear-gradient(0deg, #A94442 50%, transparent 50%)")),r.style.backgroundColor=l,r.style.backgroundImage=i,r.style.transform=o,r.style.opacity=(e.receivedPositive+e.receivedNegative)/10*.5+.35,t.showDistance&&(a.textContent="number"==typeof e.trustDistance?n._ordinal(e.trustDistance):"✕")}}function l(n){un.a.getHash(encodeURIComponent(n.type)+":"+encodeURIComponent(n.value),"hex").then((function(n){var e=new sn.a(n,{width:t.width,format:"svg"});u.src=u.src||"data:image/svg+xml;base64,"+e.toString()}))}var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=o({width:50,border:4,showDistance:!0,outerGlow:!1},t),un.a.injectCss();var i=document.createElement("div");i.className="iris-identicon",i.style.width=t.width+"px",i.style.height=t.width+"px";var r=document.createElement("div");r.className="iris-pie",r.style.width=t.width+"px";var u=document.createElement("img");u.alt="",u.width=t.width,u.height=t.width,u.style.borderWidth=t.border+"px";var a=void 0;return t.border&&((a=document.createElement("span")).className="iris-distance",a.style.fontSize=t.width>50?t.width/4+"px":"10px",i.appendChild(a)),i.appendChild(r),i.appendChild(u),this.linkTo?l(this.linkTo):this.gun.get("linkTo").on(l),this.gun.on(e),i},n.prototype.serialize=function(){return this.gun},n.deserialize=function(e,l){var t=new pn({type:"uuid",value:l.id});return new n(l.gun,t)},n}(),_n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},wn={email:/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i,bitcoin:/^[13][a-km-zA-HJ-NP-Z0-9]{26,33}$/,bitcoin_address:/^[13][a-km-zA-HJ-NP-Z0-9]{26,33}$/,ip:/^(([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)$/,ipv6:/^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$/,gpg_fingerprint:null,gpg_keyid:null,google_oauth2:null,tel:/^\d{7,}$/,phone:/^\d{7,}$/,keyID:null,url:/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi,account:/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i,uuid:/[0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12}/},Fn=function(){function n(e,l){if(function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),"object"==typeof e){if("string"!=typeof e.value)throw new Error("param1.value must be a string, got "+_n(e.value)+": "+JSON.stringify(e.value));if("string"!=typeof e.type)throw new Error("param1.type must be a string, got "+_n(e.type)+": "+JSON.stringify(e.type));l=e.value,e=e.type}if("string"!=typeof e)throw new Error("First param must be a string, got "+(void 0===e?"undefined":_n(e))+": "+JSON.stringify(e));if(!e.length)throw new Error("First param string is empty");if(l){if("string"!=typeof l)throw new Error("Second parameter must be a string, got "+(void 0===l?"undefined":_n(l))+": "+JSON.stringify(l));if(!l.length)throw new Error("Second param string is empty");this.type=e,this.value=l}else{this.value=e;var t=n.guessTypeOf(this.value);if(!t)throw new Error("Type of attribute was omitted and could not be guessed");this.type=t}}return n.getUuid=function(){return new n("uuid",function n(e){return e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,n)}())},n.getUniqueIdValidators=function(){return wn},n.isUniqueType=function(n){return Object.keys(wn).indexOf(n)>-1},n.prototype.isUniqueType=function(){return n.isUniqueType(this.type)},n.guessTypeOf=function(n){for(var e in wn)if(n.match(wn[e]))return e},n.equals=function(n,e){return n.equals(e)},n.prototype.equals=function(n){return n&&this.type===n.type&&this.value===n.value},n.prototype.uri=function(){return encodeURIComponent(this.value)+":"+encodeURIComponent(this.type)},n.prototype.identiconXml=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return un.a.getHash(encodeURIComponent(this.type)+":"+encodeURIComponent(this.value),"hex").then((function(e){return new sn.a(e,{width:n.width,format:"svg"}).toString(!0)}))},n.prototype.identiconSrc=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return un.a.getHash(encodeURIComponent(this.type)+":"+encodeURIComponent(this.value),"hex").then((function(e){return"data:image/svg+xml;base64,"+new sn.a(e,{width:n.width,format:"svg"}).toString()}))},n.prototype.identicon=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n=u({width:50,showType:!0},n),un.a.injectCss();var e=document.createElement("div");e.className="iris-identicon",e.style.width=n.width+"px",e.style.height=n.width+"px";var l=document.createElement("img");if(l.alt="",l.width=n.width,l.height=n.width,this.identiconSrc(n).then((function(n){return l.src=n})),n.showType){var t=document.createElement("span");t.className="iris-distance",t.style.fontSize=n.width>50?n.width/4+"px":"10px",t.textContent=this.type.slice(0,5),e.appendChild(t)}return e.appendChild(l),e},n}(),kn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},xn=function(){function n(e){var l=this;if(function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.DEFAULT_PERMISSIONS={read:!0,write:!0},this.key=e.key,this.gun=e.gun,this.myGroupSecret=e.myGroupSecret,this.theirSecretUuids={},this.theirGroupSecrets={},this.user=this.gun.user(),this.user.auth(this.key),this.user.put({epub:this.key.epub}),this.secrets={},this.ourSecretChannelIds={},this.theirSecretChannelIds={},this.messages={},this.chatLinks={},this.groupSubscriptions={},this.directSubscriptions={},this.getParticipantsCallbacks={},e.chatLink&&this.useChatLink(e),"string"==typeof e.participants)this.addParticipant(e.participants,e.save);else if(Array.isArray(e.participants)){var t={};e.participants.forEach((function(n){return t[n]=a({},l.DEFAULT_PERMISSIONS)})),e.participants=t}"object"==typeof e.participants&&(Object.keys(e.participants).forEach((function(n){n!==l.key.pub&&l.addParticipant(n,e.save,a({},l.DEFAULT_PERMISSIONS,e.participants[n]))})),e.participants[this.key.pub]=e.participants[this.key.pub]||a({},this.DEFAULT_PERMISSIONS),e.uuid?(this.uuid=e.uuid,this.name=e.name):(e.uuid=Fn.getUuid().value,this.uuid=e.uuid,e.participants[this.key.pub].admin=!0,e.participants[this.key.pub].founder=!0),this.getChatLinks({subscribe:!0}));this.participants=e.participants,e.uuid&&(this.putDirect("S"+this.uuid,this.getMyGroupSecret()),this.getMySecretUuid().then((function(n){l.putDirect(l.uuid,n)})),this.onTheirDirect(this.uuid,(function(n,e,t){l.theirSecretUuids[t]=n})),this.onTheirDirect("S"+this.uuid,(function(n,e,t){l.theirGroupSecrets[t]=n}))),this.onTheir("participants",(function(n,t,i){for(var r=!1,o=Object.keys(l.participants),u=0;u3&&void 0!==arguments[3])||arguments[3],r=await rn.a.SEA.secret(l.epub,l);i&&n.getMyChatLinks(e,l,void 0,void 0,!0);var o={};e.user().get("chats").map().on((async function(i,u){if(i&&!o[u]){if(o[u]=!0,u.length>44)return void e.user().get("chats").get(u).put(null);var a=await un.a.gunOnceDefined(e.user().get("chats").get(u).get("pub")),s=await rn.a.SEA.decrypt(a,r);s.pub||"string"==typeof s?t(new n({key:l,gun:e,participants:s.pub||s,save:!1})):s.uuid&&s.participants&&s.myGroupSecret&&t(new n({key:l,gun:e,participants:s.participants,uuid:s.uuid,myGroupSecret:s.myGroupSecret,save:!1}))}}))},n.prototype.getMyGroupSecret=function(){return this.myGroupSecret||this.changeMyGroupSecret(),this.myGroupSecret},n.prototype.getOurSecretChannelId=async function(n){if(!this.ourSecretChannelIds[n]){var e=await this.getSecret(n);this.ourSecretChannelIds[n]=await un.a.getHash(e+n)}return this.ourSecretChannelIds[n]},n.prototype.getTheirSecretChannelId=async function(n){if(!this.theirSecretChannelIds[n]){var e=await this.getSecret(n);this.theirSecretChannelIds[n]=await un.a.getHash(e+this.key.pub)}return this.theirSecretChannelIds[n]},n.prototype.getMessages=async function(n){var e=this;if(this.getCurrentParticipants().forEach((async function(l){if(l!==e.key.pub){var t=void 0;t=e.uuid?await e.getTheirSecretUuid(l):await e.getTheirSecretChannelId(l),e.gun.user(l).get("chats").get(t).get("msgs").map().once((function(t,i){e.messageReceived(n,t,e.uuid||l,!1,i,l)}))}if(!e.uuid){var i=await e.getOurSecretChannelId(l);e.user.get("chats").get(i).get("msgs").map().once((function(t,i){e.messageReceived(n,t,l,!0,i,e.key.pub)}))}})),this.uuid){var l=await this.getMySecretUuid();this.user.get("chats").get(l).get("msgs").map().once((function(l,t){e.messageReceived(n,l,e.uuid,!0,t,e.key.pub)}))}},n.prototype.messageReceived=async function(n,e,l,t,i,r){if(!this.messages[i]&&e){var o=this.uuid?await this.getTheirGroupSecret(r):await this.getSecret(l),u=await rn.a.SEA.decrypt(e,o);if("object"==typeof u){var a={selfAuthored:t,channelId:l,from:r};this.messages[i]=u,n(u,a)}}},n.prototype.getLatestMsg=async function(n){var e=this,l=async function(l,t){e.latest?("string"==typeof e.latest.time?e.latest.time:e.latest.time.toISOString())1&&void 0!==arguments[1])||arguments[1],l=this,t=arguments[2],i=arguments[3];if(void 0===t&&(t=this.DEFAULT_PERMISSIONS),!this.secrets[n]||JSON.stringify(this.secrets[n])!==JSON.stringify(t)){this.secrets[n]=null,this.getSecret(n);var r=await this.getOurSecretChannelId(n);if(e){var o=await rn.a.SEA.secret(this.key.epub,this.key);this.gun.user().get("chats").get(r).get("pub").put(await rn.a.SEA.encrypt({pub:n},o))}this.uuid&&(this.participants[n]=t,e&&(this.putDirect("S"+this.uuid,this.getMyGroupSecret()),this.getMySecretUuid().then((function(n){l.putDirect(l.uuid,n)})),this.onTheirDirect(this.uuid,(function(n,e,t){l.theirSecretUuids[t]=n})),this.onTheirDirect("S"+this.uuid,(function(n,e,t){l.theirGroupSecrets[t]=n})),this.save())),i&&(Object.values(this.directSubscriptions).forEach((function(e){e.forEach((function(e){e.from&&e.from!==n||l._onTheirDirectFromUser(n,e.key,e.callback)}))})),Object.values(this.groupSubscriptions).forEach((function(e){e.forEach((function(e){e.from&&e.from!==n||(t.write?l._onTheirGroupFromUser(n,e.key,e.callback):e.event&&e.event.off())}))})))}},n.prototype.send=async function(n){if("string"==typeof n){if(0===(n=n.trim()).length)return;n={time:(new Date).toISOString(),text:n}}else{if("object"!=typeof n)throw new Error("msg param must be a string or an object");n.time=n.time||(new Date).toISOString()}if(this.uuid){var e=await rn.a.SEA.encrypt(JSON.stringify(n),this.getMyGroupSecret()),l=await this.getMySecretUuid();this.user.get("chats").get(l).get("msgs").get(""+n.time).put(e),this.user.get("chats").get(l).get("latestMsg").put(e)}else for(var t=this.getCurrentParticipants(),i=0;i1&&void 0!==arguments[1]?arguments[1]:5;l*=1e3,this.put("typing",(n=void 0===n||n)?(new Date).toISOString():new Date(0).toISOString()),clearTimeout(this.setTypingTimeout),this.setTypingTimeout=setTimeout((function(){return e.put("typing",!1)}),l)},n.prototype.getTyping=function(n){var e=this,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;l*=1e3,this.onTheir("typing",(function(t,i,r){if(n){var o=t&&new Date-new Date(t)<=l;n(o,r),e.getTypingTimeouts=e.getTypingTimeouts||{},clearTimeout(e.getTypingTimeouts[r]),o&&(e.getTypingTimeouts[r]=setTimeout((function(){return n(!1,r)}),l))}}))},n.addChatButton=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!(e=a({label:"Chat"},e)).channelOptions)throw new Error("addChatButton missing options.channelOptions param");un.a.injectCss();var l=void 0,t=void 0,i=un.a.createElement("div","iris-chat-open-button",document.body);i.setAttribute("id","iris-chat-open-button"),i.innerHTML=' '+e.label,i.addEventListener("click",(function(){i.setAttribute("style","display: none"),l?t.setAttribute("style",""):(l=new n(e.channelOptions),t=l.getChatBox(),document.body.appendChild(t))}))},n.prototype.getSimpleLink=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"https://iris.to/";return this.uuid?n+"?channelId="+this.uuid+"&inviter="+this.key.pub:n+"?chatWith="+this.getCurrentParticipants()[0]},n.prototype.getChatLinks=async function(e){var l=this,t=e.callback,i=e.urlRoot,r=e.subscribe;if(i=i||"https://iris.to/",!this.uuid)throw new Error("Only group channels may have chat links");var o=[],u={};this.on("chatLinks",(function(e,a){e&&"object"===(void 0===e?"undefined":kn(e))&&Object.keys(e).forEach((function(s){var c=e[s];if(null===c)return u[s]&&u[s].off(),delete u[s],void(t&&t({id:s,url:null}));if(-1===o.indexOf(s)){var h=[];o.push(s);var p=n.formatChatLink({urlRoot:i,inviter:a,channelId:l.uuid,sharedSecret:c.sharedSecret,linkId:s});t&&t({url:p,id:s}),r&&l.gun.user(c.sharedKey.pub).get("chatRequests").map().on((async function(n,e,t,i){if(n&&"string"==typeof n&&!(n.length<10)){u[s]=i;var r=JSON.stringify(n);if(-1===h.indexOf(r)){h.push(r);var o=await rn.a.SEA.decrypt(n,c.sharedSecret);l.addParticipant(o,void 0,void 0,!0)}}}))}}))}))},n.prototype.createChatLink=async function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"https://iris.to/",l=await rn.a.SEA.pair(),t=JSON.stringify(l),i=await rn.a.SEA.secret(l.epub,l),r=await rn.a.SEA.encrypt(t,i),o=await rn.a.SEA.secret(this.key.epub,this.key),u=await rn.a.SEA.encrypt(t,o),a=await un.a.getHash(r);return a=a.slice(0,12),await un.a.gunAsAnotherUser(this.gun,l,(function(n){return n.get("chatRequests").put({a:1}).then()})),this.chatLinks[a]={sharedKey:l,sharedSecret:i},this.put("chatLinks",this.chatLinks),this.user.get("chatLinks").get(a).put({encryptedSharedKey:r,ownerEncryptedSharedKey:u}),n.formatChatLink({urlRoot:e,channelId:this.uuid,inviter:this.key.pub,sharedSecret:i,linkId:a})},n.prototype.getChatBox=function(){var e=this;un.a.injectCss();var l=!1,t=un.a.createElement("div","iris-chat-box"),i=un.a.createElement("div","iris-chat-header",t),r=un.a.createElement("span","iris-chat-minimize",i);r.innerText="—",r.addEventListener("click",(function(n){n.stopPropagation(),t.setAttribute("class","iris-chat-box minimized"),l=!0}));var o=un.a.createElement("div","iris-chat-header-text",i),u=un.a.createElement("span","iris-online-indicator",o);u.innerHTML="●";var a=un.a.createElement("span",void 0,o),s=un.a.createElement("span","iris-chat-close",i);s.innerHTML="×",s.addEventListener("click",(function(){t.setAttribute("style","display: none");var n=document.getElementById("iris-chat-open-button");n&&n.setAttribute("style","")})),i.addEventListener("click",(function(){l&&(t.setAttribute("class","iris-chat-box"),l=!1)}));var c=un.a.createElement("div","iris-chat-messages",t),h=un.a.createElement("div","iris-typing-indicator",t);h.innerText="typing...",this.getTyping((function(n){h.setAttribute("class","iris-typing-indicator"+(n?" yes":""))}));var p=un.a.createElement("div","iris-chat-input-wrapper",t),f=un.a.createElement("textarea",void 0,p);if(f.setAttribute("rows","1"),f.setAttribute("placeholder","Type a message"),un.a.isMobile){var d=un.a.createElement("button",void 0,p);d.innerHTML='\n \n ',d.addEventListener("click",(function(){e.send(f.value),f.value="",e.setTyping(!1)}))}var g=this.getCurrentParticipants();if(g.length){var m=g[0];this.gun.user(m).get("profile").get("name").on((function(n){return a.innerText=n})),n.getActivity(this.gun,m,(function(n){u.setAttribute("class","iris-online-indicator"+(n.isActive?" yes":"")),c.querySelectorAll(".iris-chat-message:not(.delivered)").forEach((function(e){if(e.getAttribute("data-time")<=n.lastActive){var l=e.getAttribute("class");e.setAttribute("class",l+" delivered")}}))}))}return this.getTheirMsgsLastSeenTime((function(n){c.querySelectorAll(".iris-seen:not(.yes)").forEach((function(e){var l=e.parentElement.parentElement.parentElement;if(l.getAttribute("data-time")<=n){var t=l.getAttribute("class");-1===t.indexOf("delivered")&&l.setAttribute("class",t+" delivered"),e.setAttribute("class","iris-seen yes")}}))})),this.getMessages((function(n,l){var t=un.a.createElement("div","iris-msg-content");t.innerText=n.text;var i=un.a.createElement("div","time",t);(i.innerText=un.a.formatTime(new Date(n.time)),l.selfAuthored)&&(un.a.createElement("span",e.theirMsgsLastSeenTime>=n.time?"iris-seen yes":"iris-seen",i).innerHTML=' ');t.innerHTML=t.innerHTML.replace(/\n/g," \n");var r=un.a.createElement("div",(l.selfAuthored?"our":"their")+" iris-chat-message");r.appendChild(t),r.setAttribute("data-time",n.time);for(var o=c.children.length;o>=0;o--)if(0===o)c.insertBefore(r,c.firstChild);else{var u=c.children[o-1].getAttribute("data-time");if(u&&unew Date(e.getTime()-1e4)&&i2&&void 0!==arguments[2]?arguments[2]:"https://iris.to/",i=e.user();i.auth(l);var r=await rn.a.SEA.pair(),o=JSON.stringify(r),u=await rn.a.SEA.secret(r.epub,r),a=await rn.a.SEA.encrypt(o,u),s=await rn.a.SEA.secret(l.epub,l),c=await rn.a.SEA.encrypt(o,s),h=await un.a.getHash(a);return h=h.slice(0,12),await un.a.gunAsAnotherUser(e,r,(function(n){return n.get("chatRequests").put({a:1}).then()})),i.get("chatLinks").get(h).put({encryptedSharedKey:a,ownerEncryptedSharedKey:c}),n.formatChatLink({urlRoot:t,chatWith:l.pub,sharedSecret:u,linkId:h})},n.getMyChatLinks=async function(e,l){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"https://iris.to/",i=arguments[3],r=arguments[4],o=e.user();o.auth(l);var u=await rn.a.SEA.secret(l.epub,l),a=[];o.get("chatLinks").map().on((function(s,c){if(s&&-1===a.indexOf(c)){var h=[];o.get("chatLinks").get(c).get("ownerEncryptedSharedKey").on((async function(o){if(o&&-1===a.indexOf(c)){a.push(c);var s=await rn.a.SEA.decrypt(o,u),p=await rn.a.SEA.secret(s.epub,s),f=n.formatChatLink({urlRoot:t,chatWith:l.pub,sharedSecret:p,linkId:c});i&&i({url:f,id:c}),r&&e.user(s.pub).get("chatRequests").map().on((async function(t,i){if(t){var r=JSON.stringify(t);if(-1===h.indexOf(r)){h.push(r);var o=await rn.a.SEA.decrypt(t,p);new n({gun:e,key:l,participants:o}).save()}un.a.gunAsAnotherUser(e,s,(function(n){n.get("chatRequests").get(i).put(null)}))}}))}}))}}))},n.prototype.removeGroupChatLink=function(n){this.chatLinks[n]=null,this.put("chatLinks",this.chatLinks),this.gun.user().get("chatLinks").get(n).put(null)},n.removePrivateChatLink=function(n,e,l){n.user().auth(e),n.user().get("chatLinks").get(l).put(null)},n.deleteChannel=async function(e,l,t){e.user().auth(l);var i=await n.getOurSecretChannelId(e,t,l);e.user().get("channels").get(i).put(null),e.user().get("channels").get(i).off()},n}(),Cn=l("t10x"),Sn=l("hosL"),En=function(n,e,l,t){function i(){var e=Reflect.construct(HTMLElement,[],i);return e._vdomComponent=n,e._root=t&&t.shadow?e.attachShadow({mode:"open"}):e,e}return(i.prototype=Object.create(HTMLElement.prototype)).constructor=i,i.prototype.connectedCallback=h,i.prototype.attributeChangedCallback=f,i.prototype.disconnectedCallback=d,l=l||n.observedAttributes||Object.keys(n.propTypes||{}),i.observedAttributes=l,l.forEach((function(n){Object.defineProperty(i.prototype,n,{get:function(){return this._vdom.props[n]},set:function(e){this._vdom?this.attributeChangedCallback(n,null,e):(this._props||(this._props={}),this._props[n]=e,this.connectedCallback());var l=typeof e;null!=e&&"string"!==l&&"boolean"!==l&&"number"!==l||this.setAttribute(n,e)}})})),customElements.define(e||n.tagName||n.displayName||n.name,i)},Tn=function n(e,l,t,i){var r;l[0]=0;for(var o=1;o=5&&((i||!n&&5===t)&&(o.push(t,0,i,l),t=6),n&&(o.push(t,n,0,l),t=6)),i=""},a=0;a"===e?(t=1,i=""):i=e+i[0]:r?e===r?r="":i+=e:'"'===e||"'"===e?r=e:">"===e?(u(),t=1):t&&("="===e?(t=5,l=i,i=""):"/"===e&&(t<5||">"===n[a][s+1])?(u(),3===t&&(o=o[0]),t=o,(o=o[0]).push(2,0,t),t=0):" "===e||"\t"===e||"\n"===e||"\r"===e?(u(),t=2):i+=e),3===t&&"!--"===i&&(t=4,o=o[0])}return u(),o}(n)),e),arguments,[])).length>1?e:e[0]}.bind(Sn.h);!("undefined"==typeof window||!window.document||!window.document.createElement)&&!ln&&((ln=document.createElement("style")).type="text/css",ln.nonce=l.nc,ln.appendChild(document.createTextNode("/* jsxstyle */")),document.head.appendChild(ln));var jn={Block:{display:"block"},Box:null,Col:{display:"flex",flexDirection:"column"},Grid:{display:"grid"},Inline:{display:"inline"},InlineBlock:{display:"inline-block"},InlineCol:{display:"inline-flex",flexDirection:"column"},InlineRow:{display:"inline-flex",flexDirection:"row"},Row:{display:"flex",flexDirection:"row"},Flex:{display:"flex"},InlineFlex:{display:"inline-flex"},Table:{display:"table"},TableCell:{display:"table-cell"},TableRow:{display:"table-row"}},Dn={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexNegative:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},In=["Webkit","ms","Moz","O"];Object.keys(Dn).forEach((function(n){In.forEach((function(e){Dn[function(n,e){return n+e.charAt(0).toUpperCase()+e.substring(1)}(e,n)]=Dn[n]}))}));var Mn,Pn,$n,Ln,Bn,Rn=/([A-Z])/g,zn=/^ms-/,Nn={},Un=/[A-Z]/g,Hn={after:!0,before:!0,placeholder:!0,selection:!0},Wn={active:!0,checked:!0,disabled:!0,empty:!0,enabled:!0,focus:!0,hover:!0,invalid:!0,link:!0,required:!0,target:!0,valid:!0},Gn={children:!0,class:!0,className:!0,component:!0,mediaQueries:!0,props:!0,style:!0},qn={paddingH:["paddingLeft","paddingRight"],paddingV:["paddingTop","paddingBottom"],marginH:["marginLeft","marginRight"],marginV:["marginTop","marginBottom"]},Kn=(Pn={},$n=function(n){return"_"+_(n).toString(36)},Ln=!1,Bn={reset:function(){Pn={}},injectOptions:function(n){n&&(n.getClassName&&($n=n.getClassName),n.onInsertRule&&(Mn=n.onInsertRule),n.pretty&&(Ln=n.pretty)),Bn.injectOptions=F},getClassName:function(n,e){Bn.injectOptions=w;var l=function(n,e){if(void 0===e&&(e=!1),"object"!=typeof n||null===n)return null;var l=Object.keys(n).sort(),t=l.length;if(0===t)return null;var i,r=n.mediaQueries,o=!1,u={},a={classNameKey:"",stylesByKey:u},s="",c={},h={};if(null!=r){var p=-1;for(var f in r)h[f]="@"+(1e3+ ++p)}for(var d=-1;++d1&&g.slice(0,Un.lastIndex-1);C&&null!=r&&r.hasOwnProperty(C)&&(o=!0,k=C,v=g[x=Un.lastIndex-1].toLowerCase()+g.slice(x+1),C=Un.test(g)&&v.slice(0,Un.lastIndex-x-1)),C&&Hn.hasOwnProperty(C)&&(w=C,x=Un.lastIndex-1,C=Un.test(g)&&g[x].toLowerCase()+g.slice(x+1,Un.lastIndex-1)),C&&Wn.hasOwnProperty(C)&&(F=C,x=Un.lastIndex-1),x>0&&(m=g[x].toLowerCase()+g.slice(x+1));var S=n[g],E=e?" ":"",T=":"+E,O=e?"\n":"",A=";"+O,j=e?" ":"";if("animation"===m&&S&&"object"==typeof S){var D=O;for(var I in S){var M=S[I];for(var P in D+=I+E+"{"+O,M){var $=b(P,M[P]);D+=j+y(P)+T+$+A}D+="}"+O}var L="jsxstyle_"+_(D).toString(36);m="animationName",S=L,(i=i||{})[L]=D}else if(""===(S=b(m,n[g])))continue;var B=k&&r[k],R="."+(k&&h[k]||"")+(F?":"+F:"")+(w?"::"+w:"");u.hasOwnProperty(R)||(u[R]={styles:O},B&&(u[R].mediaQuery=B),F&&(u[R].pseudoclass=F),w&&(u[R].pseudoelement=w)),B?(c[B]=c[B]||"",c[B]+=v+":"+S+";"):s+=g+":"+S+";";var z=T+S+A,N=qn[m];u[R].styles+=N?j+y(N[0])+z+j+y(N[1])+z:j+y(m)+z}}if(o)for(var U=Object.keys(c).sort(),H=-1,W=U.length;++H\n ',"\n \n />'],["\n <","\n onClick=","\n cursor=","\n borderRadius=",'\n overflow="hidden"\n userSelect="none"\n class="identicon-container ','">\n ',"\n \n />']),Zn=C(['',""],['',""]),Xn=function(n){function e(){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var l=function(n,e){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?n:e}(this,n.call(this));return l.eventListeners={},l}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e.prototype.componentDidUpdate=function(n){n.user!==this.props.user&&(this.resetEventListeners(),this.setState({name:"",photo:""}),this.componentDidMount())},e.prototype.componentDidMount=function(){var n=this;this.props.user&&(new Fn({type:"keyID",value:this.props.user}).identiconSrc({width:this.props.width,showType:!1}).then((function(e){n.setState({identicon:e})})),un.a.getPublicState().user(this.props.user).get("profile").get("photo").on((function(e){"string"==typeof e&&0===e.indexOf("data:image")&&n.setState({photo:e})})),this.props.showTooltip&&un.a.getPublicState().user(this.props.user).get("profile").get("name").on((function(e,l,t,i){n.eventListeners.name=i,n.setState({name:e})})))},e.prototype.resetEventListeners=function(){Object.values(this.eventListeners).forEach((function(n){return n.off()})),this.eventListeners={}},e.prototype.componentWillUnmount=function(){this.resetEventListeners()},e.prototype.render=function(){return An(Qn,Vn,this.props.onClick,this.props.onClick?"pointer":"",parseInt(this.props.width)||80,this.props.showTooltip?"tooltip":"",this.props.showTooltip&&this.state.name?An(Zn,this.state.name):"",this.props.width||80,this.props.width||80,this.state.photo||this.state.identicon,this.state.name||"")},e}(Sn.Component);!un.a.isNode&&En(Xn,"iris-identicon",["user","onClick","width","showTooltip"]);var ne=Xn,ee=void 0,le=function(){function n(){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n)}return n.getActiveKey=async function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"iris.key",t=arguments[2];if(ee)return ee;if(t){var i=e+"/"+l;if(t.existsSync(i)){var r=t.readFileSync(i,"utf8");ee=n.fromString(r)}else{var o=await n.generate();t.writeFileSync(i,n.toString(ee=ee||o)),t.chmodSync(i,400)}if(!ee)throw new Error("loading default key failed - check "+e+"/"+l)}else{var u=window.localStorage.getItem("iris.myKey");if(u)ee=n.fromString(u);else{var a=await n.generate();ee=ee||a,window.localStorage.setItem("iris.myKey",n.toString(ee))}if(!ee)throw new Error("loading default key failed - check localStorage iris.myKey")}return ee},n.getDefault=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"iris.key";return n.getActiveKey(e,l)},n.getActivePub=async function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"iris.key",t=await n.getActiveKey(e,l);return t.pub},n.setActiveKey=function(e){var l=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"iris.key",r=arguments[4];if(ee=e,l)if(un.a.isNode){var o=t+"/"+i;r.writeFileSync(o,n.toString(ee)),r.chmodSync(o,400)}else window.localStorage.setItem("iris.myKey",n.toString(ee))},n.toString=function(n){return JSON.stringify(n)},n.getId=function(n){if(!n||!n.pub)throw new Error("missing param");return n.pub},n.fromString=function(n){return JSON.parse(n)},n.generate=function(){return rn.a.SEA.pair()},n.sign=async function(n,e){return"a"+await rn.a.SEA.sign(n,e)},n.verify=function(n,e){return rn.a.SEA.verify(n.slice(1),e)},n}(),te=S(['\n \n \n ',"\n \n "],['\n \n \n ',"\n \n "]),pe=function(n){function e(){return T(this,e),O(this,n.apply(this,arguments))}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e.prototype.getValue=function(n){var e=this;this.getNode(n).on((function(n,l,t,i){e.eventListeners[e.path]=i,e.setState({value:n})}))},e.prototype.onChange=async function(n){var e=n.target.files[0],l=await function(n){return new Promise((function(e,l){var t=new FileReader;t.readAsDataURL(n),t.onload=function(){return e(t.result)},t.onerror=function(n){return l(n)}}))}(e);this.getNode().put(l)},e.prototype.renderInput=function(){var n=this;return An(ue,this.state.value,this.props.placeholder||this.path,(function(e){return n.onInput(e)}),!this.isEditable())},e.prototype.renderTag=function(){var n=this,e=this.props.placeholder||this.props.path,l=this.props.tag||"span";return An(ae,l,this.ref,this.isEditable(),e,(function(e){return n.onInput(e)}),this.state.value,l)},e.prototype.onClick=function(){this.isEditable()&&this.base.firstChild.click()},e.prototype.render=function(){var n=this,e=this.isEditable(),l=this.state.value,t=l&&0===l.indexOf("data:image")?l:this.props.placeholder,i=this.props,r=void 0;t?r=An(se,e?"cursor: pointer;":"",(function(e){return n.onClick(e)}),l,{alt:i.alt,width:i.width,height:i.height}):e&&(r=An(ce,this.props["btn-class"],(function(e){return n.onClick(e)})));return An(he,(function(e){return n.onChange(e)}),r)},e}(oe);!un.a.isNode&&En(pe,"iris-img",["path","user","placeholder","editable","alt","width","height"]);var fe,de=pe,ge=((fe=[""]).raw=[""],fe),me=function(n){function e(){return A(this,e),j(this,n.apply(this,arguments))}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e.prototype.copyToClipboard=function(n){if(window.clipboardData&&window.clipboardData.setData)return window.clipboardData.setData("Text",n);if(document.queryCommandSupported&&document.queryCommandSupported("copy")){var e=document.createElement("textarea");e.textContent=n,e.style.position="fixed",document.body.appendChild(e),e.select();try{return document.execCommand("copy")}catch(n){return console.warn("Copy to clipboard failed.",n),!1}finally{document.body.removeChild(e)}}},e.prototype.copy=function(n,e){var l=this;this.copyToClipboard(e);var t=n.target;this.originalWidth=this.originalWidth||t.offsetWidth+1,t.style.width=this.originalWidth,this.setState({copied:!0}),clearTimeout(this.timeout),this.timeout=setTimeout((function(){return l.setState({copied:!1})}),2e3)},e.prototype.onClick=function(n){var e=this;n.preventDefault();var l="function"==typeof this.props.str?this.props.str():this.props.str;navigator.share&&un.a.isMobile&&!this.props["not-shareable"]?navigator.share({url:l,title:this.props.title}).catch((function(t){console.error("share failed",t),e.copy(n,l)})):this.copy(n,l)},e.prototype.render=function(){var n=this;return An(ge,this.props["inner-class"]||"copy-button",(function(e){return n.onClick(e)}),this.state.copied?this.props["copied-text"]||"Copied":this.props.text||"Copy")},e}(Sn.Component);!un.a.isNode&&En(me,"iris-copy-button",["str","not-shareable","text","copied-text","title","inner-class"]);var ve=me,be=function(n,e){return n.raw=e,n}(['\n \n '],['\n \n ']),ye=function(n){function e(){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var l=function(n,e){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?n:e}(this,n.call(this));return l.eventListeners={},l}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e.prototype.onClick=function(n){n.preventDefault();var e=!this.state.following;un.a.getPublicState().user().get("follow").get(this.props.user).put(e)},e.prototype.componentDidMount=function(){var n=this;un.a.injectCss(),le.getDefault().then((function(e){un.a.getPublicState().user().auth(e),un.a.getPublicState().user().get("follow").get(n.props.user).on((function(e,l,t,i){n.setState({following:e}),n.eventListeners.follow=i}))}))},e.prototype.componentWillUnmount=function(){Object.values(this.eventListeners).forEach((function(n){return n.off()}))},e.prototype.render=function(){var n=this;return An(be,this.state.following?"following":"",this.props["inner-class"]||"",(function(e){return n.onClick(e)}),this.state.following?"Following":"Follow")},e}(Sn.Component);!un.a.isNode&&En(ye,"iris-follow-button",["user"]);var _e=ye;const we=Object.prototype.hasOwnProperty;class Fe{constructor(n){this._keys=[],this._keyMap={};let e=0;n.forEach((n=>{let l=H(n);e+=l.weight,this._keys.push(l),this._keyMap[l.id]=l,e+=l.weight})),this._keys.forEach((n=>{n.weight/=e}))}get(n){return this._keyMap[n]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}const ke={useExtendedSearch:!1,getFn:function(n,e){let l=[],t=!1;const i=(n,e,r)=>{if(z(n))if(e[r]){const o=n[e[r]];if(!z(o))return;if(r===e.length-1&&($(o)||L(o)||B(o)))l.push(function(n){return null==n?"":function(n){if("string"==typeof n)return n;let e=n+"";return"0"==e&&1/n==-1/0?"-0":e}(n)}(o));else if(P(o)){t=!0;for(let n=0,l=o.length;nn.score===e.score?n.idx{this._keysMap[n.id]=e}))}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,$(this.docs[0])?this.docs.forEach(((n,e)=>{this._addString(n,e)})):this.docs.forEach(((n,e)=>{this._addObject(n,e)})),this.norm.clear())}add(n){const e=this.size();$(n)?this._addString(n,e):this._addObject(n,e)}removeAt(n){this.records.splice(n,1);for(let e=n,l=this.size();e{let i=this.getFn(n,e.path);if(z(i))if(P(i)){let n=[];const e=[{nestedArrIndex:-1,value:i}];for(;e.length;){const{nestedArrIndex:l,value:t}=e.pop();if(z(t))if($(t)&&!N(t)){let e={v:t,i:l,n:this.norm.get(t)};n.push(e)}else P(t)&&t.forEach(((n,l)=>{e.push({nestedArrIndex:l,value:n})}))}l.$[t]=n}else if(!N(i)){let n={v:i,n:this.norm.get(i)};l.$[t]=n}})),this.records.push(l)}toJSON(){return{keys:this.keys,records:this.records}}}const Ee=32;class Te{constructor(n,{location:e=xe.location,threshold:l=xe.threshold,distance:t=xe.distance,includeMatches:i=xe.includeMatches,findAllMatches:r=xe.findAllMatches,minMatchCharLength:o=xe.minMatchCharLength,isCaseSensitive:u=xe.isCaseSensitive,ignoreLocation:a=xe.ignoreLocation}={}){if(this.options={location:e,threshold:l,distance:t,includeMatches:i,findAllMatches:r,minMatchCharLength:o,isCaseSensitive:u,ignoreLocation:a},this.pattern=u?n:n.toLowerCase(),this.chunks=[],!this.pattern.length)return;const s=(n,e)=>{this.chunks.push({pattern:n,alphabet:J(n),startIndex:e})},c=this.pattern.length;if(c>Ee){let n=0;const e=c%Ee,l=c-e;for(;n{const{isMatch:d,score:g,indices:m}=V(n,e,p,{location:t+f,distance:i,threshold:r,findAllMatches:o,minMatchCharLength:u,includeMatches:l,ignoreLocation:a});d&&(h=!0),c+=g,d&&m&&(s=[...s,...m])}));let p={isMatch:h,score:h?c/this.chunks.length:1};return h&&l&&(p.indices=s),p}}class Oe{constructor(n){this.pattern=n}static isMultiMatch(n){return Y(n,this.multiRegex)}static isSingleMatch(n){return Y(n,this.singleRegex)}search(){}}class Ae extends Oe{constructor(n,{location:e=xe.location,threshold:l=xe.threshold,distance:t=xe.distance,includeMatches:i=xe.includeMatches,findAllMatches:r=xe.findAllMatches,minMatchCharLength:o=xe.minMatchCharLength,isCaseSensitive:u=xe.isCaseSensitive,ignoreLocation:a=xe.ignoreLocation}={}){super(n),this._bitapSearch=new Te(n,{location:e,threshold:l,distance:t,includeMatches:i,findAllMatches:r,minMatchCharLength:o,isCaseSensitive:u,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(n){return this._bitapSearch.searchIn(n)}}class je extends Oe{constructor(n){super(n)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(n){let e,l=0;const t=[],i=this.pattern.length;for(;(e=n.indexOf(this.pattern,l))>-1;)l=e+i,t.push([e,l-1]);const r=!!t.length;return{isMatch:r,score:r?0:1,indices:t}}}const De=[class extends Oe{constructor(n){super(n)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(n){const e=n===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},je,class extends Oe{constructor(n){super(n)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(n){const e=n.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},class extends Oe{constructor(n){super(n)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(n){const e=!n.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,n.length-1]}}},class extends Oe{constructor(n){super(n)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(n){const e=!n.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,n.length-1]}}},class extends Oe{constructor(n){super(n)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(n){const e=n.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[n.length-this.pattern.length,n.length-1]}}},class extends Oe{constructor(n){super(n)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(n){const e=-1===n.indexOf(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,n.length-1]}}},Ae],Ie=De.length,Me=/ +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/,Pe=new Set([Ae.type,je.type]);class $e{constructor(n,{isCaseSensitive:e=xe.isCaseSensitive,includeMatches:l=xe.includeMatches,minMatchCharLength:t=xe.minMatchCharLength,ignoreLocation:i=xe.ignoreLocation,findAllMatches:r=xe.findAllMatches,location:o=xe.location,threshold:u=xe.threshold,distance:a=xe.distance}={}){this.query=null,this.options={isCaseSensitive:e,includeMatches:l,minMatchCharLength:t,findAllMatches:r,ignoreLocation:i,location:o,threshold:u,distance:a},this.pattern=e?n:n.toLowerCase(),this.query=function(n,e={}){return n.split("|").map((n=>{let l=n.trim().split(Me).filter((n=>n&&!!n.trim())),t=[];for(let n=0,i=l.length;n!(!n[Be]&&!n[Re]),He=n=>({[Be]:Object.keys(n).map((e=>({[e]:n[e]})))});class We{constructor(n,e={},l){this.options=I(I({},xe),e),this._keyStore=new Fe(this.options.keys),this.setCollection(n,l)}setCollection(n,e){if(this._docs=n,e&&!(e instanceof Se))throw new Error("Incorrect 'index' type");this._myIndex=e||q(this.options.keys,this._docs,{getFn:this.options.getFn})}add(n){z(n)&&(this._docs.push(n),this._myIndex.add(n))}remove(n=(()=>!1)){const e=[];for(let l=0,t=this._docs.length;l{let l=1;n.matches.forEach((({key:n,norm:t,score:i})=>{const r=n?n.weight:null;l*=Math.pow(0===i&&r?Number.EPSILON:i,(r||1)*(e?1:t))})),n.score=l}))}(u,{ignoreFieldNorm:o}),i&&u.sort(r),L(e)&&e>-1&&(u=u.slice(0,e)),function(n,e,{includeMatches:l=xe.includeMatches,includeScore:t=xe.includeScore}={}){const i=[];return l&&i.push(X),t&&i.push(nn),n.map((n=>{const{idx:l}=n,t={item:e[l],refIndex:l};return i.length&&i.forEach((e=>{e(n,t)})),t}))}(u,this._docs,{includeMatches:l,includeScore:t})}_searchStringList(n){const e=Q(n,this.options),{records:l}=this._myIndex,t=[];return l.forEach((({v:n,i:l,n:i})=>{if(!z(n))return;const{isMatch:r,score:o,indices:u}=e.searchIn(n);r&&t.push({item:n,idx:l,matches:[{score:o,value:n,norm:i,indices:u}]})})),t}_searchLogical(n){const e=Z(n,this.options),l=(n,e,t)=>{if(!n.children){const{keyId:l,searcher:i}=n,r=this._findMatches({key:this._keyStore.get(l),value:this._myIndex.getValueForItemAtKeyId(e,l),searcher:i});return r&&r.length?[{idx:t,item:e,matches:r}]:[]}switch(n.operator){case Be:{const i=[];for(let r=0,o=n.children.length;r{if(z(n)){let o=l(e,n,r);o.length&&(t[r]||(t[r]={idx:r,item:n,matches:[]},i.push(t[r])),o.forEach((({matches:n})=>{t[r].matches.push(...n)})))}})),i}_searchObjectList(n){const e=Q(n,this.options),{keys:l,records:t}=this._myIndex,i=[];return t.forEach((({$:n,i:t})=>{if(!z(n))return;let r=[];l.forEach(((l,t)=>{r.push(...this._findMatches({key:l,value:n[t],searcher:e}))})),r.length&&i.push({idx:t,item:n,matches:r})})),i}_findMatches({key:n,value:e,searcher:l}){if(!z(e))return[];let t=[];if(P(e))e.forEach((({v:e,i:i,n:r})=>{if(!z(e))return;const{isMatch:o,score:u,indices:a}=l.searchIn(e);o&&t.push({score:u,key:n,value:e,idx:i,norm:r,indices:a})}));else{const{v:i,n:r}=e,{isMatch:o,score:u,indices:a}=l.searchIn(i);o&&t.push({score:u,key:n,value:i,norm:r,indices:a})}return t}}We.version="6.4.6",We.createIndex=q,We.parseIndex=function(n,{getFn:e=xe.getFn}={}){const{keys:l,records:t}=n,i=new Se({getFn:e});return i.setKeys(l),i.setIndexRecords(t),i},We.config=xe,We.parseQuery=Z,function(...n){Le.push(...n)}($e);var Ge=We,qe=en(['\n
\n
\n "],['\n
\n
\n "]),Ke=en(['\n \n '," \n \n ","\n \n />\n />\n "],['\n \n '," \n \n ","\n \n />\n />\n "]),Ve=en(['\n Follow someone to see more search results\n \n <'," user="," width=40/>\n <",' alignItems="center" marginLeft="5px">Suggested/>\n \n '],['\n Follow someone to see more search results\n \n <'," user="," width=40/>\n <",' alignItems="center" marginLeft="5px">Suggested/>\n \n ']),Je="hyECQHwSo7fgr2MVfPyakvayPeixxsaAWVtZ-vbaiSc.TXIp8MnCtrnW6n2MrYquWPcc-DTmZzMBmc2yaGv9gIU",Ye=function(n){function e(){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var l=function(n,e){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?n:e}(this,n.call(this));return l.eventListeners={},l.state={results:[]},l.follows={},l.debouncedIndexAndSearch=un.a.debounce((function(){l.fuse=new Ge(Object.values(l.follows),{keys:["name"],includeScore:!0,includeMatches:!0,threshold:.3}),l.search()}),200),le.getDefault().then((function(n){l.key=n,un.a.getPublicState().user().auth(n),l.getFollowsFn((function(){return l.debouncedIndexAndSearch()}))})),l}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e.prototype.onInput=function(){this.search()},e.prototype.close=function(){this.base.querySelector("input").value="",this.setState({results:[],query:""})},e.prototype.getFollowsFn=function(n,e){var l=this,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,r=function(e,t,i){l.follows[e]?(l.follows[e].followDistance>t&&(l.follows[e].followDistance=t),l.follows[e].followers.add(i)):(l.follows[e]={key:e,followDistance:t,followers:new Set([i])},un.a.getPublicState().user(e).get("profile").get("name").on((function(t){l.follows[e].name=t,n(e,l.follows[e])}))),n(e,l.follows[e])};return r(e=e||this.key.pub,i-1),un.a.getPublicState().user(e).get("follow").map().once((function(o,u){o&&(l.hasFollows=!0,r(u,i,e),i1)return this.props["on-select"]({key:l[1]});null}if(e&&this.fuse){var t=this.fuse.search(e).slice(0,5);if(t.length){var i=function e(l){"Escape"===l.key&&(document.removeEventListener("keyup",e),n.close())};document.removeEventListener("keyup",i),document.addEventListener("keyup",i)}this.setState({results:t,query:e})}else this.setState({results:[],query:e})},e.prototype.onClick=function(n,e){this.close();var l=this.props.onSelect||window.onIrisSearchSelect;l&&(n.preventDefault(),n.stopPropagation(),l(e))},e.prototype.render=function(){var n=this;return An(qe,(function(e){return n.onSubmit(e)}),this.props["inner-class"]||"",(function(){return n.onInput()}),Yn,this.offsetLeft||"",this.state.results.map((function(e){var l=e.item,t="";return 1===l.followDistance&&(t="Following"),2===l.followDistance&&(t=1===l.followers.size&&n.follows[[].concat(l.followers)[0]]&&n.follows[[].concat(l.followers)[0]].name?"Followed by "+n.follows[[].concat(l.followers)[0]].name:"Followed by "+l.followers.size+" users you follow"),An(Ke,l.key,(function(e){return n.onClick(e,l)}),ne,l.key,Yn,l.name||"",t)})),this.state.query&&!this.hasFollows?An(Ve,(function(e){return n.onClick(e,{key:Je})}),Je,ne,Je,Jn):"")},e}(Sn.Component);!un.a.isNode&&En(Ye,"iris-search",["on-select","inner-class"]);e.a={VERSION:Cn.a,Collection:on,SignedMessage:bn,Contact:yn,Attribute:pn,Key:dn,Channel:xn,util:un.a,components:{Identicon:ne,TextNode:oe,ImageNode:de,CopyButton:ve,FollowButton:_e,Search:Ye}}},"5IsQ":function(n){function e(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}function t(n){if(a===setTimeout)return setTimeout(n,0);if((a===e||!a)&&setTimeout)return a=setTimeout,setTimeout(n,0);try{return a(n,0)}catch(e){try{return a.call(null,n,0)}catch(e){return a.call(this,n,0)}}}function i(){f&&h&&(f=!1,h.length?p=h.concat(p):d=-1,p.length&&r())}function r(){if(!f){var n=t(i);f=!0;for(var e=p.length;e;){for(h=p,p=[];++d1)for(var l=1;lSMS verified so others can find you.",give_your_profile_link_to_someone:"give your profile link to someone",if_other_person_doesnt_see_message:"If the other person doesn't see your message, you can give them your invite link through some other channel:",type_a_message:"Type a message",beware_of_sharing_invite_link_publicly:"Beware of sharing your invite link publicly: you might get spammed with message requests. Publicly share your profile link instead.",your_invite_links:"Your Invite Links",create_new_invite_link:"Create new invite link",copy_your_invite_link:"Copy your invite link",have_someones_invite_link:"Have someone's invite link?",paste_their_invite_link:"Paste their invite link",give_your_invite_link:"Give your invite link:",or_scan_qr_code:"Or scan their QR code",or_show_qr_code:"Or show your QR code",new_group:"New group",group_name:"Group name",create:"Create",settings:"Settings",profile:"Profile",your_name:"Your name",profile_photo:"Profile photo",add_profile_photo:"Add profile photo",profile_photo_too_big:"Profile photo too big: maximum size is 200KB",cancel:"Cancel",use_photo:"Use photo",remove_photo:"Remove photo",about_text:"About text",account:"Account",save_backup_of_privkey_first:"Save a backup of your private key first!",otherwise_cant_log_in_again:"Otherwise you can't log in back to this account.",log_out:"Log out",private_key:"Private key",download_private_key:"Download private key",private_key_warning:"DANGER! Private key gives access to your account. Don't give or show your private key to anyone else!",copy_private_key:"Copy private key",show_privkey_qr:"Show private key QR code",hide_privkey_qr:"Hide private key QR code",privkey_storage_recommendation:"The safest place to store your private key is a password manager.",language:"Language",peers:"Peers",peer_url:"Peer url",public:"Public",remove:"Remove",enable:"Enable",disable:"Disable",from:"from",add:"Add",public_peer_info:"Public peers are automatically discoverable by people you chat with (and others).",peers_info:"Peers are GunDB nodes that you can easily spin up. Upcoming: direct connection with friends over WebRTC.",webrtc_connection_options:"WebRTC connection options",webrtc_info:"WebRTC is used for video calls. If you're behind a NAT, you might need to specify a TURN server here, which will relay your video traffic.",restore_defaults:"Restore defaults",about:"About",application_security_warning:"The application is an unaudited proof-of-concept implementation, so don't use it for security critical purposes.",donate:"Donate",donate_info:"Donations help keep the project going and are very much appreciated. You can donate via Open Collective or bitcoin",logout_confirmation_info:"You cannot log in again unless you have saved a copy of your private key.",participants:"Participants",admin:"admin",add_participant:"Add participant",new_participants_profile_link:"New participant's profile link",invite_links:"Invite links",copy:"Copy",follows_you:"Follows you",follow:"Follow",unfollow:"Unfollow",following:"Following",followers:"Followers",add_friend:"Add friend",send_message:"Send message",copy_link:"Copy link",show_qr_code:"Show QR code",chat_settings:"Chat Settings",nicknames:"Nicknames",nickname:"Nickname",video_call:"Video call",online:"online",last_active:"last active",their_nickname_for_you:"Their nickname for you",notifications:"Notifications",all_messages:"All messages",mentions_only:"Mentions only",nothing:"Nothing",delete_chat:"Delete chat",block_user:"Block user",typing:"Typing...",attachment:"attachment",note_to_self:"Note to Self",today:"today",yesterday:"yesterday",copied:"Copied",answer:"answer",reject:"reject",incoming_call:"Incoming call",call_rejected:"Call rejected",close:"Close",call_ended:"Call ended",calling:"Calling",on_call_with:"On call with",delete:"Delete",confirm_delete_msg:"Delete message?",search:"Search",feed_up:"Newer",feed_top:"Newest",feed_down:"Older",feed_bottom:"Oldest",email_optional:"Email (optional)",delivery:"Delivery",address:"Address",confirmation:"Confirmation",payment_method:"Payment method",summary:"Summary",download_webtorrent:"Download Webtorrent Desktop to host your media files and paste their magnet links below.",visibility:"Your posts, replies and likes are only shown to your followers and their network.",iris_is_like:"Iris is like the social networking apps we're used to, but better.",this_is_a_prototype_store:"This is a prototype store that shows items from merchants in your social network. Orders are sent via Iris private message. Your own store can be found here.",add_to_cart:"Add to cart",web_push_subscriptions:"Web push subscriptions",enable_public_peer_discovery:"Enable public peer discovery",there_is_a_bug:"There's a bug that may cause high CPU and bandwidth usage when connecting to more than 1 peer. Working on it!",set_up_your_own_peer:"Set up your own peer",also:"Also",or_small:"or",automatically_load_webtorrent_attachments:"Automatically load webtorrent attachments",autoplay_webtorrent_videos:"Autoplay webtorrent videos",home:"Home",media:"Media",messages:"Messages",market:"Market",contacts:"Contacts",explorer:"Explorer",no_contacts_in_list:"You don't have any contacts in your list."},es:{language_name:"Español",whats_your_name:"¿Cuál es tu nombre?",new_user_go:"Ir",already_have_an_account:"¿Ya tienes una cuenta?",back:"volver",scan_private_key_qr_code:"Escanee el código QR de clave privada",paste_private_key:"Pegar una clave privada",get_notified_new_messages:"Recibe notificaciones de nuevos mensajes",turn_on_desktop_notifications:"Activa las notificaciones de escritorio",new_chat:"Nueva conversación",if_other_person_doesnt_see_message:"Si la otra persona no ve su mensaje, puede darle su enlace de chat a través de otro canal:",type_a_message:"Escribe un mensaje",beware_of_sharing_invite_link_publicly:"Tenga cuidado de compartir su enlace de chat públicamente: puede recibir spam con solicitudes de mensajes. Comparta públicamente su enlace de perfil en su lugar.",your_invite_links:"Tus enlaces de chat",create_new_invite_link:"Crear nuevo enlace de chat",copy_your_invite_link:"Copia tu enlace de chat",have_someones_invite_link:"¿Tienes el enlace de chat de alguien?",paste_their_invite_link:"Pegue su enlace de chat",give_your_invite_link:"Pasa tu enlace de chat:",or_scan_qr_code:"O escanee su código QR",or_show_qr_code:"O muestra tu código QR",new_group:"Nuevo grupo",group_name:"Nombre del grupo",create:"Crear",settings:"Configuraciones",profile:"Perfil",your_name:"Tu nombre",profile_photo:"Foto de perfil",add_profile_photo:"Añadir foto de perfil",profile_photo_too_big:"Foto de perfil demasiado grande: el tamaño máximo es de 200 KB",cancel:"Cancelar",use_photo:"Usar foto",remove_photo:"Eliminar foto",about_text:"Sobre el texto",account:"Cuenta",save_backup_of_privkey_first:"¡tenga una copia de seguridad de su clave privada primero!",otherwise_cant_log_in_again:"De lo contrario, no puede volver a iniciar sesión en esta cuenta.",log_out:"Cerrar sesión",private_key:"Llave privada",download_private_key:"Descargar clave privada",private_key_warning:" ¡PELIGRO! La clave privada se utiliza para iniciar sesión en su cuenta . ¡No le dé ni muestre su clave privada a nadie más!",copy_private_key:"Copiar clave privada",show_privkey_qr:"Mostrar código QR de clave privada",hide_privkey_qr:"Ocultar código QR de clave privada",privkey_storage_recommendation:"El lugar más seguro para almacenar su clave privada es un administrador de contraseñas .",language:"Idioma",peers:"Pares",peer_url:"Par url",public:"Público",remove:"Remove",enable:"Eliminar",disable:"Inhabilitar",from:"desde",add:"Añadir",public_peer_info:"Las personas con las que chatea (y otras) pueden detectar automáticamente a los pares públicos .",peers_info:"Los pares son nodos GunDB que puede girar fácilmente . Próximamente: conexión directa con amigos a través de WebRTC.",webrtc_connection_options:"Opciones de conexión de WebRTC",webrtc_info:"WebRTC se utiliza para videollamadas. Si está detrás de un NAT, es posible que deba especificar un servidor TURN aquí, que retransmitirá su tráfico de video. El ancho de banda no es gratuito, por lo que no hay servidores TURN gratuitos disponibles.",restore_defaults:"Restaurar los valores predeterminados",about:"Acerca de",application_security_warning:"La aplicación es una implementación de prueba de concepto no auditada, así que no la use con fines críticos de seguridad.",donate:"Donar",donate_info:" Donaciones ayudan a mantener el proyecto en marcha y son muy apreciados. Puede donar a través de Open Collective o bitcoin ",logout_confirmation_info:" no puede iniciar sesión de nuevo a menos que haya guardado una copia de su clave privada.",participants:"Participantes",admin:"administración",add_participant:"Añada participante",new_participants_profile_link:"Enlace de chat del nuevo participante",add_friend:"Añadir amigo",send_message:"Enviar mensaje",copy_link:"Copiar link",chat_settings:"Configuraciones de chat",nicknames:"Apodos",nickname:"Apodo",video_call:"Videollamada",online:"en línea",last_active:"Último Activo",their_nickname_for_you:"Su apodo para ti",notifications:"Notificaciones",all_messages:"Todos los mensajes",mentions_only:"Solo menciones",nothing:"Nada",delete_chat:"Eliminar chat",block_user:"Bloquear usuario",typing:"Escribiendo...",attachment:"adjunto archivo",note_to_self:"Nota personal",today:"hoy",yesterday:"ayer",copied:"Copiado",answer:"responder",reject:"rechazar",incoming_call:"Llamada entrante",call_rejected:"Llamada rechazada",close:"Cerrar",call_ended:"Llamada finalizada",calling:"Llamando",on_call_with:"En comunicación con",no_contacts_in_list:"No tienes ningún contacto en tu lista."},"pt-BR":{language_name:"Português Brasil",whats_your_name:"Qual o seu nome?",new_user_go:"Vai",already_have_an_account:"Já tem uma conta?",back:"Voltar",scan_private_key_qr_code:"Ler QR code da chave privada",paste_private_key:"Cole a chave privada",get_notified_new_messages:"Ser notificado de novas mensagens",turn_on_desktop_notifications:"Ativar notificações no desktop",new_chat:"Nova conversa",if_other_person_doesnt_see_message:"Se a outra pessoa não vê sua mensagens, você pode passar pra ela o seu link do bate-papo através de outro canal.",type_a_message:"Digite uma mensagem",beware_of_sharing_invite_link_publicly:"Cuidado ao compartilhar seu link de bate-papo publicamente: você pode receber spam com solicitações de mensagem. Ao invés disso, compartilhe publicamente seu Link do perfil.",your_invite_links:"Seus links de bate-papo",create_new_invite_link:"Criar um novo link de bate-papo",copy_your_invite_link:"Copiar seu link de bate-papo",have_someones_invite_link:"Tem o link de bate-papo de alguém?",paste_their_invite_link:"Cole o link da outra pessoa",give_your_invite_link:"Forneça seu link de bate-papo:",or_scan_qr_code:"Ou leia o QR code",or_show_qr_code:"Ou mostre seu QR code",new_group:"Novo grupo",group_name:"Nome do grupo",create:"Criar",profile:"Perfil",settings:"Configurações",your_name:"Seu nome",profile_photo:"Foto do perfil",add_profile_photo:"Adicionar foto do perfil",profile_photo_too_big:"Foto do perfil muito grande: tamanho máximo é 200KB",cancel:"Cancelar",use_photo:"Usar foto",remove_photo:"Remover foto",about_text:"Texto sobre",account:"Conta",save_backup_of_privkey_first:"Faça backup da sua chave privada primeiro!",otherwise_cant_log_in_again:"Caso contrário você não vai conseguir acessar sua conta novamente.",log_out:"Sair",private_key:"Chave privada",download_private_key:"Baixar chave privada",private_key_warning:"PERIGO! A chave privada é usada para acessar sua conta. Não compartilhe ou mostre sua chave privada para ninguém!",copy_private_key:"Copiar chave privada",show_privkey_qr:"Mostrar QR code da chave privada",hide_privkey_qr:"Esconder QR code da chave privada",privkey_storage_recommendation:"O lugar mais seguro para armazenar sua chave privada é um gerenciardor de senhas.",language:"Idioma",peers:"Peers",peer_url:"Peer url",public:"Público",remove:"Remover",enable:"Ativar",disable:"Desativar",from:"de",add:"Adicionar",public_peer_info:"Peers públicos são encontrados automaticamente por pessoas que você bate-papo (e outros).",peers_info:"Peers são nós do GunDB que você pode facilmente trocar. Novidade pela frente: conexão direta com seus amigos utilizando WebRTC.",webrtc_connection_options:"Opções de conexão WebRTC",webrtc_info:"WebRTC é utilizado para chamadas de vídeo. Se você está atrás de um NAT, você precisa especificar aqui um servidor TURN que vai retransmitir o tráfego de vídeo. A largura de banda não é gratuita, portanto, não há servidores TURN gratuitos disponíveis.",restore_defaults:"Restaurar padrões",about:"Sobre",application_security_warning:"O aplicativo é uma implementação de prova de conceito não auditada; portanto, não o use para fins críticos de segurança.",donate:"Doe",donate_info:"Ajude a manter o projeto com doações, nós agrademos muito. Você pode doar por Open Collective ou bitcoin",logout_confirmation_info:"Você não pode logar novamente ao menos que você tenha salvado uma cópia da sua chave primária.",participants:"participantes",admin:"administração",add_participant:"Adicionar participante",new_participants_profile_link:"Link do bate-papo do novo participante.",add_friend:"Adicionar amigo",send_message:"Enviar mensagem",copy_link:"Copiar link",chat_settings:"Configurações do bate-papo",nicknames:"Apelidos",nickname:"Apelido",video_call:"Chamada de vídeo",online:"online",last_active:"última atividade",their_nickname_for_you:"Apelido deles para você",notifications:"Notificações",all_messages:"Todas mensagens",mentions_only:"Somente menções",nothing:"Nada",delete_chat:"Apagar bate-papo",block_user:"Bloquear usuário",typing:"Digitando...",attachment:"anexo",note_to_self:"Nota pessoal",today:"hoje",yesterday:"ontem",copied:"Copiado",answer:"resposta",reject:"rejeitado",incoming_call:"Chamada entrante",call_rejected:"Chamada rejeitada",close:"Fechar",call_ended:"Chamada encerrada",calling:"Chamando",on_call_with:"Em chamada com",no_contacts_in_list:"Você não tem nenhum contato na sua lista."},ru:{language_name:"Русский",whats_your_name:"Как вас зовут?",new_user_go:"Поехали!",already_have_an_account:"Уже есть аккаунт?",back:"Назад",scan_private_key_qr_code:"Отсканируйте QR-код приватного ключа",paste_private_key:"Вставьте приватный ключ",get_notified_new_messages:"Узнавайте о новых сообщениях",turn_on_desktop_notifications:"Включить уведомления на рабочем столе",new_chat:"Новый чат",if_other_person_doesnt_see_message:"Если собеседник не видит сообщение, вы можете дать вашу ссылку на чат через другой канал связи:",type_a_message:"Напишите сообщение",beware_of_sharing_invite_link_publicly:"Аккуратно распространяйте вашу ссылку на чат: вас могут заспамить сообщениями. Лучше расшарьте ссылку на ваш профиль.",your_invite_links:"Ссылки на ваши чаты",create_new_invite_link:"Создать новую ссылку на чат",copy_your_invite_link:"Скопировать вашу ссылку на чат",have_someones_invite_link:"Есть чья-то ссылка на чат?",paste_their_invite_link:"Вставьте свою ссылку на чат",give_your_invite_link:"Дайте свою ссылку на чат:",or_scan_qr_code:"Или отсканируйте их QR-код",or_show_qr_code:"Или покажите свой QR-код",new_group:"Новая группа",group_name:"Название группы",create:"Создать",settings:"Настройки",profile:"Профиль",your_name:"Ваше имя",profile_photo:"Аватар",add_profile_photo:"Добавить аватар",profile_photo_too_big:"Аватар слишком большой: макс. размер 200KB",cancel:"Отмена",use_photo:"Использовать фото",remove_photo:"Убрать фото",about_text:"Описание",account:"Аккаунт",save_backup_of_privkey_first:"Сначала сохраните копию приватного ключа!",otherwise_cant_log_in_again:"Иначе вы не сможите войти в аккаунт.",log_out:"Выйти",private_key:"Приватный ключ",download_private_key:"Скачать приватный ключ",private_key_warning:"ОПАСНО! Приватный ключ используется для входа в ваш аккаунт. Никому не показывайте ключ!",copy_private_key:"Скопировать приватный ключ",show_privkey_qr:"Показать QR-код приватного ключа",hide_privkey_qr:"Спрятать QR-код приватного ключа",privkey_storage_recommendation:"Лучшее место для хранения приватного ключа — менеджер паролей.",language:"Язык",peers:"Пиры",peer_url:"Ссылка пира",public:"Публичный",remove:"Убрать",enable:"Включить",disable:"Выключить",from:"от кого",add:"Добавить",public_peer_info:"Публичные пиры автоматически обнаруживаются людьми, с которыми вы общаетесь (и другими).",peers_info:"Пиры — это ноды GunDB, вы можете легко развернуть ноду у себя. Скоро будет возможно общаться с друзьями напрямую через WebRTC.",webrtc_connection_options:"Опции подключения через WebRTC",webrtc_info:"WebRTC используется для видеозвонков. Если вы используете NAT, возможно вам понадобится TURN-сервер, который будет обслуживать ваш видео-трафик. Передача данных стоит денег, поэтому бесплатных TURN-серверов мы не предоставляем.",restore_defaults:"Восстановить исходные настройки",about:"Про Iris",application_security_warning:"Приложение является экспериментальным, поэтому не используйте его для критичных процессов и не храните в нем секретные данные.",donate:"Задонатить",donate_info:"Донаты помогают проекту развиваться и приветствуются. Вы можете задонатить через via Open Collective или прислать BTC",logout_confirmation_info:"Вы не сможете заново войти пока не скопируете приватный ключ.",participants:"участники",admin:"админ",add_participant:"Добавить участника",new_participants_profile_link:"Ссылка на чат для нового участника",add_friend:"Добавить друга",send_message:"Отправить сообщение",copy_link:"Скопировать ссылку",chat_settings:"Настройки чата",nicknames:"Никнеймы",nickname:"Никнейм",video_call:"Видео-звонок",online:"онлайн",last_active:"последняя активность",their_nickname_for_you:"Их никнейм для вас",notifications:"Уведомления",all_messages:"Все сообщения",mentions_only:"Только упоминания меня",nothing:"Ничего",delete_chat:"Удалить чат",block_user:"Заблокировать",typing:"Печатает...",attachment:"вложение",note_to_self:"Заметка для себя",today:"сегодня",yesterday:"вчера",copied:"Скопировано",answer:"ответить",reject:"отклонить",incoming_call:"Входящий звонок",call_rejected:"Звонок отклонен",close:"Закрыть",call_ended:"Звонок завершен",calling:"Звоню",on_call_with:"На звонке с"},de:{language_name:"Deutsch",whats_your_name:"Was ist Ihr Name?",new_user_go:"Auf Gehts",already_have_an_account:"Haben sie schon ein Konto eingerichtet?",back:"zurück",scan_private_key_qr_code:"Scan einen privaten Schlüssel QR code",paste_private_key:"Füge einen privaten Schlüssel ein",get_notified_new_messages:"Werde über neue Nachrichten notifiziert",turn_on_desktop_notifications:"Stelle Desktop Notifikationen ein",new_chat:"Neue Unterhaltung",if_other_person_doesnt_see_message:"Sollte die andere Person die Nachricht nicht sehen, können Sie Ihren Unterhaltung's link über einen anderen Kanal senden:",type_a_message:"Schreiben sie eine Nachricht",beware_of_sharing_invite_link_publicly:"Vorsicht wenn Unterhaltung's links in der Öffentlichkeit geteilt werden: Sie können mit Nachricht Anfragen gespammt werden. Teilen sie lieber ihren Profil link.",your_invite_links:"Ihre Unterhaltung's links",create_new_invite_link:"Machen Sie einen neuen Unterhaltung's link",copy_your_invite_link:"Kopieren Sie ihren Unterhaltung's link",have_someones_invite_link:"Haben Sie einen Unterhaltung's link von jemandem?",paste_their_invite_link:"Fügen Sie den Unterhaltung's link hier ein",give_your_invite_link:"Geben Sie ihren Unterhaltung's link:",or_scan_qr_code:"Oder scannen Sie den QR code",or_show_qr_code:"Oder zeigen Sie ihren QR code",new_group:"Neue Gruppe",group_name:"Gruppen Name",create:"Erstellen",settings:"Einstellungen",profile:"Profile",your_name:"Ihr Name",profile_photo:"Profil Bild",add_profile_photo:"Profil Bild hinzufügen",profile_photo_too_big:"Profil Bild zu gross: maximale Grösse ist 200KB",cancel:"Abbrechen",use_photo:"Bild benutzen",remove_photo:"Bild entfernen",about_text:"'Über uns' Text",account:"Konto",save_backup_of_privkey_first:"Speichern Sie ein Backup für Ihren privaten Schlüssel!",otherwise_cant_log_in_again:"Sonst können Sie nicht mehr in Ihr Konto einloggen.",log_out:"Ausloggen",private_key:"Privater Schlüssel",download_private_key:"Download Privaten Schlüssel",private_key_warning:"Warnung! Der private Schlüssel ist benötigt um in Ihr Konto einzuloggen. Geben Sie niemals Ihren privaten Schlüssel an Andere weiter!",copy_private_key:"Kopieren Sie den privaten Schlüssel",show_privkey_qr:"Zeigen Sie den privaten Schlüssel QR code",hide_privkey_qr:"Blended Sie den privaten Schlüssel QR code aus",privkey_storage_recommendation:"Der sicherste Platz für Ihren privaten Schlüssel ist ein Passwor Manager.",language:"Sprache",peers:"Peers",peer_url:"Peer url",public:"Öffentlich",remove:"Entfernen",enable:"Einstellen",disable:"Ausstellen",from:"Von",add:"Hinzufügen",public_peer_info:"Öffentliche peers sind automatisch auffindbar für Leute in Ihren Unterhaltungen (und ausserhalb).",peers_info:"Peers sind GunDB nodes die Sie einfach hochfahren können. Kommend: Direkte Verbindung zu Freunden über WebRTC.",webrtc_connection_options:"WebRTC Verbindungsoptionen",webrtc_info:"WebRTC ist für Videoanrufe benutzt. Wenn Sie hinter einem NAT sind, müssen Sie wahrscheinlich einen TURN server hier definieren, der dann Ihr Video Verkehr weiterleitet. Bandwidth ist nicht kostenfrei, darum gibt es nicht viele kostenfreie TURN servers.",restore_defaults:"Einstellungen zurückstellen",about:"Über uns",application_security_warning:"Diese App ist ein ungeprüftes 'proof-of-concept' Implementation, also nicht für Sicherheit nötige Dinge benutzten.",donate:"Spenden",donate_info:"Spenden helfen dem Projekt weiter zu gehen und werden dankbar angenommen. Sie können via Open Collective oder bitcoin spenden.",logout_confirmation_info:"Sie können nicht wieder einloggen, ausser Sie haben saved eine Kopie ihres privaten Schlüssels gespeichert.",participants:"Teilnehmer",admin:"admin",add_participant:"Teilnehmer hinzufügen",new_participants_profile_link:"Neuer Teilnehmer's Unterhaltung's link",add_friend:"Freund hinzufügen",send_message:"Nachricht senden",copy_link:"Link kopieren",chat_settings:"Unterhaltunseinstellungen",nicknames:"Nicknames",nickname:"Nickname",video_call:"Video Anruf",online:"online",last_active:"Letztmals aktiv",their_nickname_for_you:"Ihr Nickname für die Anderen",notifications:"Notifikationen",all_messages:"Alle Nachrichten",mentions_only:"Nur Erwähnungen",nothing:"Nichts",delete_chat:"Unterhaltung löschen",block_user:"Benutzer blockieren",typing:"Schreibt...",attachment:"Anhang",note_to_self:"Notiz zu Selbst",today:"heute",yesterday:"gestern",copied:"Kopiert",answer:"antworten",reject:"ablehnen",incoming_call:"Einkommender Anruf",call_rejected:"Anruf abgelehnt",close:"Schliessen",call_ended:"Anruf beendet",calling:"Rufe an",on_call_with:"Anruf mit"},fi:{language_name:"Suomi",whats_your_name:"Mikä on nimesi?",new_user_go:"Aloita",already_have_an_account:"Onko sinulla jo tili?",back:"Takaisin",scan_private_key_qr_code:"Skannaa salaisen avaimen QR-koodi",paste_private_key:"Liitä salainen avain",get_notified_new_messages:"Tilaa ilmoitukset uusista viesteistä",turn_on_desktop_notifications:"Ota käyttöön työpöytäilmoitukset",new_chat:"Uusi keskustelu",if_other_person_doesnt_see_message:"Jos toinen käyttäjä ei näe viestiäsi, voit antaa hänelle sinun kutsulinkkisi jotain muuta kautta:",type_a_message:"Kirjoita viesti",beware_of_sharing_invite_link_publicly:"Jos jaat kutsulinkkisi julkisesti: saatat saada viestipyyntö-spämmiä. Sen sijaan voit turvallisesti jakaa profiililinkkisi julkisesti.",your_invite_links:"Kutsulinkkisi",create_new_invite_link:"Luo uusi kutsulinkki",copy_your_invite_link:"Kopioi kutsulinkkisi",have_someones_invite_link:"Saitko toisen käyttäjän kutsulinkin?",paste_their_invite_link:"Liitä kutsulinkki",give_your_invite_link:"Anna oma kutsulinkkisi:",or_scan_qr_code:"Tai skannaa toisen QR-koodi",or_show_qr_code:"Tai näytä oma QR-koodisi",new_group:"Uusi ryhmä",group_name:"Ryhmän nimi",create:"Luo",settings:"Asetukset",profile:"Profiili",your_name:"Nimesi",profile_photo:"Profiilikuva",add_profile_photo:"Lisää profiilikuva",profile_photo_too_big:"Profiilikuva on liian suuri: maksimikoko on 200KB",cancel:"Peruuta",use_photo:"Käytä kuvaa",remove_photo:"Poista kuva",about_text:"Kuvausteksti",account:"Tili",save_backup_of_privkey_first:"Tallenna ensin varmuuskopio salaisesta avaimestasi!",otherwise_cant_log_in_again:"Muuten et voi kirjautua takaisin tälle tilille.",log_out:"Kirjaudu ulos",private_key:"Salainen avain",download_private_key:"Lataa salainen avain tiedostona",private_key_warning:"VAROITUS! Salainen avain antaa pääsyn tilillesi. Älä anna tai näytä salaista avaintasi kenellekään.",copy_private_key:"Kopioi salainen avain",show_privkey_qr:"Näytä salaisen avaimen QR-koodi",hide_privkey_qr:"Piilota salaisen avaimen QR-koodi",privkey_storage_recommendation:"Turvallisin säilytyspaikka salaiselle avaimellesi on salasananhallintaohjelma (password manager).",language:"Kieli",peers:"Yhteyspisteet (peers)",peer_url:"Peer url",public:"Julkinen",remove:"Poista",enable:"Käytä",disable:"Poista käytöstä",from:"lähde",add:"Lisää",public_peer_info:"Julkiset yhteyspisteet näkyvät automaattisesti käyttäjille, joiden kanssa keskustelet (ja muille).",peers_info:"Yhteyspisteet ovat GunDB-solmuja, joiden pystyttämisestä tietoa täällä. Tulossa: suorat yhteydet kavereiden kesken WebRTC:llä.",webrtc_connection_options:"WebRTC-yhteysasetukset",webrtc_info:"WebRTC:tä käytetään videopuheluihin. Jos olet NATin takana, sinun tarvitsee ehkä määrittää tähän TURN-palvelin, joka välittää videoliikenteesi. Tiedonsiirto ei ole ilmaista, joten ilmaisia TURN-palvelimia ei ole saatavilla.",restore_defaults:"Palauta oletusarvot",about:"Tietoa",application_security_warning:"Sovellus on auditoimaton konseptitoteutus, joten älä käytä sitä tarkoituksiin joissa turvallisuus on oleellisen tärkeää.",donate:"Lahjoita",donate_info:"Lahjoitukset pitävät projektin pystyssä ja arvostamme niitä suuresti. Voit lahjoittaa Open Collectiven kautta tai bitcoinilla",logout_confirmation_info:"Et voi kirjautua takaisin sisään ellet ole tallentanut varmuuskopiota salaisesta avaimestasi.",participants:"osallistujat",admin:"ylläpitäjä",add_participant:"Lisää osallistuja",new_participants_profile_link:"Uuden osallistujan kutsulinkki",add_friend:"Lisää kaveriksi",send_message:"Lähetä viesti",copy_link:"Kopioi linkki",chat_settings:"Keskustelun asetukset",nicknames:"Lempinimet",nickname:"Lempinimi",video_call:"Videopuhelu",online:"paikalla",last_active:"viimeksi aktiivisena",their_nickname_for_you:"Hänen lempinimensä sinulle",notifications:"Ilmoitukset",all_messages:"Kaikki viestit",mentions_only:"Vain maininnat",nothing:"Ei mitään",delete_chat:"Poista keskustelu",block_user:"Estä käyttäjä",typing:"Kirjoittaa...",attachment:"liite",note_to_self:"Muistiinpanot",today:"tänään",yesterday:"eilen",copied:"Kopioitu",answer:"vastaa",reject:"hylkää",incoming_call:"Saapuva puhelu",call_rejected:"Puhelu hylätty",close:"Sulje",call_ended:"Puhelu päättyi",calling:"Soitetaan",on_call_with:"Puhelu käyttäjälle",total:"Yhteensä",home:"Koti",messages:"Viestit",market:"Tori",contacts:"Yhteystiedot",explorer:"Hakemisto",no_followers_yet:"Jaa linkkisi, niin muut voivat seurata sinua:",next:"Seuraava",shopping_carts:"Ostoskorit",shopping_cart:"Ostoskori",cart:"Kori",delivery:"Yhteystiedot",payment:"Maksutapa",payment_method:"Maksutapa",confirm:"Yhteenveto",address:"Osoite",email_optional:"Sähköposti (valinnainen)",name:"Nimi",confirm_button:"Vahvista",summary:"Yhteenveto",following:"Seurataan",followers:"Seuraajat",likes:"Tykkäykset",replies:"Vastaukset",posts:"Julkaisut",type_a_message_or_paste_a_magnet_link:"Kirjoita viesti tai liitä magnet-linkki",download_webtorrent:"Lataa Webtorrent Desktop mediatiedostojen jakamiseen ja liitä niiden magnet-linkki alle.",alternatively:"Vaihtoehtoisesti",alternatively_get_sms_verified:"Vaihtoehtoisesti tunnistaudu tekstiviestillä",visibility:"Julkaisut, vastaukset ja tykkäykset näkyvät vain seuraajillesi ja heidän verkostoillensa.",no_followers_yet_info:"Julkaisut, vastaukset ja tykkäykset näkyvät vain seuraajillesi ja heidän verkostoillensa.",iris_is_like:"Iiris on kuin tuntemamme sosiaalisen median sovellukset, mutta parempi.",copy:"Kopioi",this_is_a_prototype_store:"Tori on prototyyppi, ja se näyttää myynnissä olevat tavarat sosiaalisessa verkostossasi. Iriksessä tuotteet tilataan yksityisviesteillä. Tästä pääset omaan kauppaasi.",add_to_cart:"Lisää koriin",switch_account:"Vaihda tiliä",web_push_subscriptions:"Selaimen ilmoitustilaukset (web push subscriptions)",enable_public_peer_discovery:"Salli julkisten yhteyspisteiden hakeminen",maximum_number_of_peer_connections:"Maksimimäärä yhteyspisteitä",there_is_a_bug:"Bugin vuoksi useampaan kuin yhteen yhteyspisteeseen yhdistäminen voi kuormittaa tietokoneen suoritinta ja viedä verkkokaistaa. Korjaaminen on työn alla!",set_up_your_own_peer:"Pystytä oma yhteyspisteesi",also:"Myös",or_small:"tai",automatically_load_webtorrent_attachments:"Lataa webtorrentin liitteet automaattisesti",autoplay_webtorrent_videos:"Käynnistä webtorrentin videot automaattisesti",search:"Etsi"},it:{language_name:"Italian",whats_your_name:"Quale è il tuo nome??",new_user_go:"Inizia",already_have_an_account:"Hai già un account?",back:"Indietro",scan_private_key_qr_code:"Scansione codice QR di chiave privata",paste_private_key:"Incolla una chiave privata",get_notified_new_messages:"Ricevi una notifica per i nuovi messaggi",turn_on_desktop_notifications:"Attiva le notifiche desktop",new_chat:"Nuova chat",if_other_person_doesnt_see_message:"Se l'altra persona non vede il tuo messaggio, puoi dargli il tuo invite link attraverso qualche altro canale:",type_a_message:"Scrivi un messaggio",beware_of_sharing_invite_link_publicly:"Fai attenzione a condividere pubblicamente il tuo invite link: potresti ricevere spam con richieste di messaggi. Condividi pubblicamente invece il tuo link di profilo.",your_invite_links:"I tuoi invite link",create_new_invite_link:"Crea nuovo invite link",copy_your_invite_link:"Copia il tuo invite link",have_someones_invite_link:"Hai il invite link di quakcuno?",paste_their_invite_link:"Incolla il loro invite link",give_your_invite_link:"Dai il tuo invite link:",or_scan_qr_code:"O scansiona il loro codice QR",or_show_qr_code:"O mostra il tuo codice QR",new_group:"Nuovo gruppo",group_name:"Nome gruppo",create:"Crea",profile:"Profilo",settings:"Impostazioni",your_name:"Il tuo nome",profile_photo:"Foto di profilo",add_profile_photo:"Aggiungi foto di profilo",profile_photo_too_big:"Foto di profilo troppo grande: dimensione massima di 200KB",cancel:"Cancella",use_photo:"Usa foto",remove_photo:"Rimuovi foto",about_text:"Riguardo a te",account:"Account",save_backup_of_privkey_first:"Salva prima un backup della tua chiave privata!",otherwise_cant_log_in_again:"Altrimenti non potrai riautenticarti a questo account.",log_out:"Scollegati",private_key:"Chiave privata",download_private_key:"Scarica chiave privata",private_key_warning:"PERICOLO! La chiave privata è usata per autenticarti al tuo account. Non dare o mostrare la tua chiave privata a nessun altro!",copy_private_key:"Copia chiave privata",show_privkey_qr:"Mostra il codice QR della chiave privata",hide_privkey_qr:"Nascondi il codice QR della chaive privata",privkey_storage_recommendation:"Il posto più sicuro dove archiviare la chiave privata è un gestore password.",language:"Lingua",peers:"Peer",peer_url:"Peer url",public:"Pubblico",remove:"Rimuovi",enable:"Abilita",disable:"Disabilita",from:"da",add:"Aggiungi",public_peer_info:"Peer pubblici sono automaticamente rilevabili dalle persone con cui scrivi (e altri).",peers_info:"I peer sono nodi GunDB che puoi facilmente montare. In arrivo: connessione diretta con gli amici attraverso WebRTC.",webrtc_connection_options:"Opzioni di connessione WebRTC",webrtc_info:"WebRTC è usato per le video chiamate. Se sei dietro ad una NAT, potresti aver bisogno di specificare un server TURN qui, che inoltrerà il tuo traffico video. La banda di trasferimento non è gratuita, non ci sono server TURN gratuiti in giro.",restore_defaults:"Ripristina le impostazioni predifinite",about:"A proposito",application_security_warning:"L'applicazione è un'implementazione di prova del concetto non certificata, quindi non utilizzarla per fini che richiedano un uso sicuro in situazioni critiche.",donate:"Dona",donate_info:"Le donazioni aiutano a mantenere il progetto e sono molto apprezzate. Puoi donare attraverso Open Collective o bitcoin",logout_confirmation_info:"Non puoi autenticarti a meno che tu non abbia salvato una copia della tua chiave privata.",participants:"partecipanti",admin:"admin",add_participant:"Aggiungi partecipante",new_participants_profile_link:"Nuovi invite link del participante",add_friend:"Aggiungi amico",send_message:"Invia messaggio",copy_link:"Copia link",chat_settings:"Impostazioni della Chat",nicknames:"Soprannome",nickname:"Soprannome",video_call:"Chiamata video",online:"online",last_active:"ultimo attivo",their_nickname_for_you:"Il loro soprannome per te",notifications:"Notifiche",all_messages:"Tutti i messaggi",mentions_only:"Solo menzioni",nothing:"Nulla",delete_chat:"Cancella chat",block_user:"Blocca utente",typing:"Sta scrivendo...",attachment:"allegato",note_to_self:"Nota a te stesso",today:"oggi",yesterday:"ieri",copied:"Copiato",answer:"rispondere",reject:"rifiutare",incoming_call:"Chiamata in arrivo",call_rejected:"Chiamata respinta",close:"Chiudere",call_ended:"Chiamata conclusa",calling:"Chiamata in corso",on_call_with:"In chiamata con",no_contacts_in_list:"Non hai contatti nella tua lista."},"zh-cn":{language_name:"中文",whats_your_name:"你叫什么名字?",new_user_go:"开始",already_have_an_account:"已有账户?",back:"后退",scan_private_key_qr_code:"请扫描私钥的二维码",paste_private_key:"请复制你的私钥",get_notified_new_messages:"接收新消息的提醒",turn_on_desktop_notifications:"打开桌面消息提醒",new_chat:"新的聊天",if_other_person_doesnt_see_message:"如果其他人无法看到你的消息,你可以把 你的 聊天链接在其他频道发送给他们:",type_a_message:"请输入消息",beware_of_sharing_invite_link_publicly:"请注意,公开分享你的聊天链接将有可能让你收到垃圾消息申请。推荐分享你的账号链接。",your_invite_links:"你的聊天链接",create_new_invite_link:"创建新的聊天链接",copy_your_invite_link:"复制你的聊天链接",have_someones_invite_link:"有其他人的聊天链接?",paste_their_invite_link:"请将聊天链接粘贴在此",give_your_invite_link:"你的聊天链接:",or_scan_qr_code:"或扫描他们的二维码",or_show_qr_code:"或展示你的二维码",new_group:"新的聊天群组",group_name:"群组名称",create:"创建",profile:"个人资料",settings:"设定",your_name:"你的名字",profile_photo:"头像",add_profile_photo:"添加头像",profile_photo_too_big:"头像超过最大尺寸(200KB)",cancel:"取消",use_photo:"选取照片",remove_photo:"移除照片",about_text:"简介",account:"账号",save_backup_of_privkey_first:"首先请妥善保管你的私钥!",otherwise_cant_log_in_again:"否则你将无法登录这个账号。",log_out:"登出",private_key:"私钥",download_private_key:"下载私钥",private_key_warning:"危险! 私钥可以用来 登录你的账号。 不要将你的私钥交给或展示给任何其他人!",copy_private_key:"复制私钥",show_privkey_qr:"显示私钥二维码",hide_privkey_qr:"隐藏私钥二维码",privkey_storage_recommendation:"密码管理器是保存私钥最安全的方式。",language:"语言",peers:"节点",peer_url:"节点地址",public:"公开",remove:"移除",enable:"启用",disable:"禁用",from:"来自于",add:"添加",public_peer_info:"公开 节点可被自动发现",peers_info:"GunDB 的节点可以帮助加速连接速度 。即将支持:通过 WebRTC 直接连接聊天对象。",webrtc_connection_options:"WebRTC 连接选项",webrtc_info:"本应用的视频聊天使用了 WebRTC。 如果你在一个内部网络中,你可能需要手动指定一个用作转发视频流量的 Turn server。网络带宽是收费的所以我们不提供免费的 Turn server。",restore_defaults:"恢复默认值",about:"关于",application_security_warning:"本应用的实现暂时还未进行代码审计,仍处在概念验证阶段,所以请大家不要在任何安全等级高的场景下使用。",donate:"Donate",donate_info:"捐款可以帮助我们继续更好地开发。 你可以通过 Open Collective 或比特币(Bitcoin)来完成捐款,非常感谢你的帮助。比特币地址",logout_confirmation_info:"如果你不保存好你的私钥,你将无法再次登录。 ",participants:"参与者",admin:"管理员",add_participant:"添加参与者",new_participants_profile_link:"新加参与者的聊天链接",add_friend:"添加好友",send_message:"发送消息",copy_link:"复制链接",chat_settings:"聊天设置",nicknames:"所有昵称",nickname:"昵称",video_call:"视频通话",online:"在线",last_active:"上次在线",their_nickname_for_you:"其他人给你起的昵称",notifications:"通知",all_messages:"所有消息",mentions_only:"只提到",nothing:"无",delete_chat:"删除聊天",block_user:"屏蔽用户",typing:"正在输入...",attachment:"福建",note_to_self:"个人备忘录",today:"今天",yesterday:"昨天",copied:"已复制",answer:"接通",reject:"拒绝",incoming_call:"来电",call_rejected:"通话被拒绝",close:"关闭",call_ended:"通话结束",calling:"拨号中",on_call_with:"通话对象:"},ko:{language_name:"한글",whats_your_name:"이름?",new_user_go:"진행",already_have_an_account:"기존 계정이 있나요?",back:"뒤로",scan_private_key_qr_code:"프라이빗 키 스캔 QR 코드",paste_private_key:"프라이빗 키 붙여넣기",get_notified_new_messages:"신규 메시지 통보",turn_on_desktop_notifications:"데스크탑 통보 시작",new_chat:"신규 채팅",public_messages:"공개 메시지",follow_someone_info:"제안 그들의 네트워크의 내용을 보기위하여 펄로우 하기:",creator_of_this_distribution:"본Iris 배분을 위한 저작권자",no_followers_yet:"약력 링크를 소개하여 타인들이 펄로우 하게 함:",no_followers_yet_info:"당신의 게시, 응답, 좋아요는 당신의 펄로워 및 네트워크에 보여짐.",alternatively:"대안으로,",alternatively_get_sms_verified:"대안으로, 타인이 당신을 찾을 수 있도록 하기 SMS 확인 .",give_your_profile_link_to_someone:"당신의 약력 링크를 타인에게 전달",if_other_person_doesnt_see_message:"타인이 당신의 메시지를 보지 못하면 다른 채널의 링크로 초대 할 수 있음 당신:",type_a_message:"메시지 입력",beware_of_sharing_invite_link_publicly:"경고 초대링크를 공개적으로 사용하는 것은: 스팸을 받을수 있으니 공개 할 시는 당신의 profile link를 사용하세요.",your_invite_links:"당신의 초대 링크",create_new_invite_link:"새 초대링크 생성",copy_your_invite_link:"초대링크 복사",have_someones_invite_link:"타인의 초대링크 보유?",paste_their_invite_link:"그들의 초대링크 붙이기",give_your_invite_link:"당신의 초대링크 제공:",or_scan_qr_code:"아니면 그들의 QR코드 스캔",or_show_qr_code:"아니면 당신의 QR코드 공개",new_group:"신규 그룹",group_name:"그룹 이름",create:"생성",settings:"환경",profile:"약력",your_name:"성명",profile_photo:"약력 사진",add_profile_photo:"약력 사진 추가",profile_photo_too_big:"약력 사진 크기 초과: 최대 사이즈 200KB",cancel:"취소",use_photo:"사진 사용",remove_photo:"사진 제거",about_text:" 원문",account:"계정",save_backup_of_privkey_first:"먼저 당신의 프라이빗 키 백업 저장!",otherwise_cant_log_in_again:"아니면 이 계정으로 다시 로그인 할 수 없음.",log_out:"로그 아웃",private_key:"프라이빗 키",download_private_key:"프라이빗 키 내려받기",private_key_warning:"위험! 프라이빗키 는 당신 계정을 사용할 수 있음. 타인에게 당신의 프라이빗 키를 보여주거나 공유하지 말것!",copy_private_key:"프라이빗 키 복사",show_privkey_qr:"프라이빗 키 QR 코드 공개",hide_privkey_qr:"프라이빗 코 QR 코드 숭기기",privkey_storage_recommendation:"안전하게 당신의 프라이빗 키를 저장하는 장소는 패스워드 관리자.",language:"언어",peers:"친구",peer_url:"친구 url",public:"공개",remove:"제거",enable:"동작",disable:"비동작",from:"전송자",add:"추가",public_peer_info:"공개 친구는 자동적으로 당신이 채팅하고 있는(타인들도)사람들로부터 보여질 수 있음.",peers_info:"친구는 GunDB 노드이며 쉽게 공유. 향후 계획: 친구들과 직접 접속 WebRTC.",webrtc_connection_options:"WebRTC 접속 옵션",webrtc_info:"WebRTC 는 화상 통신에 사용. 당신이 NAT에 속해 있으면, TURN 서버를 여기에 추가 해야 할 수도 있음, 화상 트래픽 전송. 통신량은 무료가 아니라 무료 TURN 서버를 찾기가 쉽지 않음.",restore_defaults:"조건 원상회복",about:"About",application_security_warning:"본 응용은 검증되지 않은 아이디어 차원의 도구이어서 비밀을 요하는 중요한 목적으로 사용 할 수 없음.",donate:"기부",donate_info:"기부 는 본 프로젝트를 진행 하는데 도움이 되고 감사 드립니다. 기부 하려면 여기서 하면 됩니다 Open Collective or bitcoin",logout_confirmation_info:"당신은 로그인 다시 할 수 없음만약 당신이 프라이빗 키를 저장해 두자 않았으ㅁ.",participants:"참여자",admin:"관리자",add_participant:"참여자 추가",new_participants_profile_link:"신규 참여자 약력 링크",invite_links:"링크 초대",copy:"복사",follows_you:"당신 펄로우",follow:"펄로우",unfollow:"펄로우 취소",following:"펄러우 진행중",followers:"펄로워들",add_friend:"친구 추가",send_message:"메시지 전송",copy_link:"링크 복사",show_qr_code:"QR코드 공유",chat_settings:"채팅 환경",nicknames:"닉네임들",nickname:"닉네임",video_call:"화상채팅",online:"온라인",last_active:"마지막 활동",their_nickname_for_you:"당신을 위한 그들의 닉네임",notifications:"통보",all_messages:"모든 메시지",mentions_only:"단지 멘션",nothing:"존대하지 않음",delete_chat:"책 삭제",block_user:"사용자 거부",typing:"타이핑 중...",attachment:"첨부",note_to_self:"자신에게 메모",today:"오늘",yesterday:"어제",copied:"복사완료",answer:"대답",reject:"거부",incoming_call:"전화 수신",call_rejected:"응답 거부",close:"닫기",call_ended:"통화 종료",calling:"통화",on_call_with:"통화 상대",delete:"삭제",confirm_delete_msg:"메시지 삭제?",search:"검색",feed_up:"신규",feed_top:"최신",feed_down:"과거",feed_bottom:"최대 과거",email_optional:"이메일 (옵션)",delivery:"전달",address:"주소",confirmation:"확인",payment_method:"지불 방법",summary:"요약",download_webtorrent:"다운로드 Webtorrent Desktop 미디어 파일을호스트 하고 붙여 넣기 위하여 마그넷링크 아래 제공.",visibility:"당신의 게시물, 답변과 좋아요는 당신의 펄로워들과 네트워크에만 보여짐.",iris_is_like:"Iris는 소셜네트워킹 앱이지만 더 향상된 기능임.",this_is_a_prototype_store:"ㅇ본 화면은 시범 상점이며 당신의 소셜네트워크의 판매점을 보여 줌. 주문은 Iris 개인 메시지로 함. 당신의 상점은 여기에 볼 수 있음. 여기.",add_to_cart:"카트에 추가",web_push_subscriptions:"웹 푸시 구독",enable_public_peer_discovery:"공개 친구 찾기 동작",there_is_a_bug:"1명 이상의 친구와 접속하면 CPU와 통신량이 급증하는 문제가 있어 수정 하고 있음!",set_up_your_own_peer:"당신의 자체 친구 설정",also:"그리고",or_small:"또는",automatically_load_webtorrent_attachments:"자동적으로 webtorrent 첨부 파일 로드",autoplay_webtorrent_videos:"자동으로 webtorrent 비디오 시작",no_contacts_in_list:"더 이상 친구 리스트가 없음."}}},"5WRv":function(n,e,l){var t=l("iNmH"),i=l("Qatm"),r=l("Zhxd"),o=l("kluZ");n.exports=function(n){return t(n)||i(n)||r(n)||o()},n.exports.default=n.exports,n.exports.__esModule=!0},"5rjA":function(n,e,l){"use strict";var t=l("hosL"),i=l("kpue"),r=l("jMw0"),o=l("24Gu"),u=l("CGOa"),a=l("3QNJ"),s=l("qIEf"),c=l.n(s),h=l("lBHI");let p,f,d,g,m,v,b,y=n=>n;const _=new u.a({stripPrefix:!1,stripTrailingSlash:!1}),w=200,F=Object(i.b)(p||(p=y``));e.a=class extends t.Component{constructor(){super(),this.i=0}componentDidMount(){c()(this.base).find("a").click((n=>{const e=c()(n.target).attr("href");e&&0===e.indexOf("https://iris.to/")&&(n.preventDefault(),window.location=e.replace("https://iris.to/",""))}));const n=this.getSeenStatus().seen;n.seen||n.delivered||h.a.local.get("channels").get(this.props.chatId).get("theirLastActiveTime").on(((n,e,l,t)=>{this.getSeenStatus().delivered&&(this.setState({}),t.off())})),n.seen||h.a.local.get("channels").get(this.props.chatId).get("theirMsgsLastSeenTime").on(((n,e,l,t)=>{this.getSeenStatus().seen&&(this.setState({}),t.off())}))}getSeenStatus(){const n=r.a.channels[this.props.chatId],e="object"==typeof this.props.time?this.props.time:new Date(this.props.time);return{seen:n&&n.theirMsgsLastSeenDate>=e,delivered:n&&n.activity&&n.activity.lastActive&&new Date(n.activity.lastActive)>=e}}onNameClick(n){c()(".new-msg").val(`${c()(".new-msg").val().trim()} @${n} `),c()(".new-msg").focus()}openAttachmentsGallery(n){const e=this.state.msg||this.props;c()("#floating-day-separator").remove();const l=c()("
\n "]),lt=on(['\n \n '," \n \n ","\n \n />\n />\n "],['\n \n '," \n \n ","\n \n />\n />\n "]),rt=on(['\n Follow someone to see more search results\n \n <'," user="," width=40/>\n <",' alignItems="center" marginLeft="5px">Suggested/>\n \n '],['\n Follow someone to see more search results\n \n <'," user="," width=40/>\n <",' alignItems="center" marginLeft="5px">Suggested/>\n \n ']),it="hyECQHwSo7fgr2MVfPyakvayPeixxsaAWVtZ-vbaiSc.TXIp8MnCtrnW6n2MrYquWPcc-DTmZzMBmc2yaGv9gIU",ot=function(n){function e(){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var t=function(n,e){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?n:e}(this,n.call(this));return t.eventListeners={},t.state={results:[]},t.follows={},t.debouncedIndexAndSearch=fn.a.debounce((function(){t.fuse=new et(Object.values(t.follows),{keys:["name"],includeScore:!0,includeMatches:!0,threshold:.3}),t.search()}),200),oe.getDefault().then((function(n){t.key=n,fn.a.getPublicState().user().auth(n),t.getFollowsFn((function(){return t.debouncedIndexAndSearch()}))})),t}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)}(e,n),e.prototype.onInput=function(){this.search()},e.prototype.close=function(){this.base.querySelector("input").value="",this.setState({results:[],query:""})},e.prototype.getFollowsFn=function(n,e){var t=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=function(e,l,r){t.follows[e]?(t.follows[e].followDistance>l&&(t.follows[e].followDistance=l),t.follows[e].followers.add(r)):(t.follows[e]={key:e,followDistance:l,followers:new Set([r])},fn.a.getPublicState().user(e).get("profile").get("name").on((function(l){t.follows[e].name=l,n(e,t.follows[e])}))),n(e,t.follows[e])};return i(e=e||this.key.pub,r-1),fn.a.getPublicState().user(e).get("follow").map().once((function(o,u){o&&(t.hasFollows=!0,i(u,r,e),r1)return this.props["on-select"]({key:t[1]});null}if(e&&this.fuse){var l=this.fuse.search(e).slice(0,5);if(l.length){var r=function e(t){"Escape"===t.key&&(document.removeEventListener("keyup",e),n.close())};document.removeEventListener("keyup",r),document.addEventListener("keyup",r)}this.setState({results:l,query:e})}else this.setState({results:[],query:e})},e.prototype.onClick=function(n,e){this.close();var t=this.props.onSelect||window.onIrisSearchSelect;t&&(n.preventDefault(),n.stopPropagation(),t(e))},e.prototype.render=function(){var n=this;return In(tt,(function(e){return n.onSubmit(e)}),this.props["inner-class"]||"",(function(){return n.onInput()}),ne,this.offsetLeft||"",this.state.results.map((function(e){var t=e.item,l="";return 1===t.followDistance&&(l="Following"),2===t.followDistance&&(l=1===t.followers.size&&n.follows[[].concat(t.followers)[0]]&&n.follows[[].concat(t.followers)[0]].name?"Followed by "+n.follows[[].concat(t.followers)[0]].name:"Followed by "+t.followers.size+" users you follow"),In(lt,t.key,(function(e){return n.onClick(e,t)}),re,t.key,ne,t.name||"",l)})),this.state.query&&!this.hasFollows?In(rt,(function(e){return n.onClick(e,{key:it})}),it,re,it,Xn):"")},e}(An.Component);!fn.a.isNode&&jn(ot,"iris-search",["on-select","inner-class"]);e.a={VERSION:Tn.a,Collection:cn,SignedMessage:Fn,Contact:kn,Attribute:mn,Key:yn,Channel:En,util:fn.a,components:{Identicon:re,TextNode:ce,ImageNode:ye,CopyButton:we,FollowButton:xe,Search:ot}}},"5IsQ":function(n){function e(){throw new Error("setTimeout has not been defined")}function t(){throw new Error("clearTimeout has not been defined")}function l(n){if(a===setTimeout)return setTimeout(n,0);if((a===e||!a)&&setTimeout)return a=setTimeout,setTimeout(n,0);try{return a(n,0)}catch(e){try{return a.call(null,n,0)}catch(e){return a.call(this,n,0)}}}function r(){p&&f&&(p=!1,f.length?h=f.concat(h):d=-1,h.length&&i())}function i(){if(!p){var n=l(r);p=!0;for(var e=h.length;e;){for(f=h,h=[];++d1)for(var t=1;tSMS verified so others can find you.",give_your_profile_link_to_someone:"give your profile link to someone",if_other_person_doesnt_see_message:"If the other person doesn't see your message, you can give them your invite link through some other channel:",type_a_message:"Type a message",beware_of_sharing_invite_link_publicly:"Beware of sharing your invite link publicly: you might get spammed with message requests. Publicly share your profile link instead.",your_invite_links:"Your Invite Links",create_new_invite_link:"Create new invite link",copy_your_invite_link:"Copy your invite link",have_someones_invite_link:"Have someone's invite link?",paste_their_invite_link:"Paste their invite link",give_your_invite_link:"Give your invite link:",or_scan_qr_code:"Or scan their QR code",or_show_qr_code:"Or show your QR code",new_group:"New group",group_name:"Group name",create:"Create",settings:"Settings",profile:"Profile",your_name:"Your name",profile_photo:"Profile photo",add_profile_photo:"Add profile photo",profile_photo_too_big:"Profile photo too big: maximum size is 200KB",cancel:"Cancel",use_photo:"Use photo",remove_photo:"Remove photo",about_text:"About text",account:"Account",save_backup_of_privkey_first:"Save a backup of your private key first!",otherwise_cant_log_in_again:"Otherwise you can't log in back to this account.",log_out:"Log out",private_key:"Private key",download_private_key:"Download private key",private_key_warning:"DANGER! Private key gives access to your account. Don't give or show your private key to anyone else!",copy_private_key:"Copy private key",show_privkey_qr:"Show private key QR code",hide_privkey_qr:"Hide private key QR code",privkey_storage_recommendation:"The safest place to store your private key is a password manager.",language:"Language",peers:"Peers",peer_url:"Peer url",public:"Public",remove:"Remove",enable:"Enable",disable:"Disable",from:"from",add:"Add",public_peer_info:"Public peers are automatically discoverable by people you chat with (and others).",peers_info:"Peers are GunDB nodes that you can easily spin up. Upcoming: direct connection with friends over WebRTC.",webrtc_connection_options:"WebRTC connection options",webrtc_info:"WebRTC is used for video calls. If you're behind a NAT, you might need to specify a TURN server here, which will relay your video traffic.",restore_defaults:"Restore defaults",about:"About",application_security_warning:"The application is an unaudited proof-of-concept implementation, so don't use it for security critical purposes.",donate:"Donate",donate_info:"Donations help keep the project going and are very much appreciated. You can donate via Open Collective or bitcoin",logout_confirmation_info:"You cannot log in again unless you have saved a copy of your private key.",participants:"Participants",admin:"admin",add_participant:"Add participant",new_participants_profile_link:"New participant's profile link",invite_links:"Invite links",copy:"Copy",follows_you:"Follows you",follow:"Follow",unfollow:"Unfollow",following:"Following",followers:"Followers",add_friend:"Add friend",send_message:"Send message",copy_link:"Copy link",show_qr_code:"Show QR code",chat_settings:"Chat Settings",nicknames:"Nicknames",nickname:"Nickname",video_call:"Video call",online:"online",last_active:"last active",their_nickname_for_you:"Their nickname for you",notifications:"Notifications",all_messages:"All messages",mentions_only:"Mentions only",nothing:"Nothing",delete_chat:"Delete chat",block_user:"Block user",typing:"Typing...",attachment:"attachment",note_to_self:"Note to Self",today:"today",yesterday:"yesterday",copied:"Copied",answer:"answer",reject:"reject",incoming_call:"Incoming call",call_rejected:"Call rejected",close:"Close",call_ended:"Call ended",calling:"Calling",on_call_with:"On call with",delete:"Delete",confirm_delete_msg:"Delete message?",search:"Search",feed_up:"Newer",feed_top:"Newest",feed_down:"Older",feed_bottom:"Oldest",email_optional:"Email (optional)",delivery:"Delivery",address:"Address",confirmation:"Confirmation",payment_method:"Payment method",summary:"Summary",download_webtorrent:"Download Webtorrent Desktop to host your media files and paste their magnet links below.",visibility:"Your posts, replies and likes are only shown to your followers and their network.",iris_is_like:"Iris is like the social networking apps we're used to, but better.",this_is_a_prototype_store:"This is a prototype store that shows items from merchants in your social network. Orders are sent via Iris private message. Your own store can be found here.",add_to_cart:"Add to cart",web_push_subscriptions:"Web push subscriptions",enable_public_peer_discovery:"Enable public peer discovery",there_is_a_bug:"There's a bug that may cause high CPU and bandwidth usage when connecting to more than 1 peer. Working on it!",set_up_your_own_peer:"Set up your own peer",also:"Also",or_small:"or",automatically_load_webtorrent_attachments:"Automatically load webtorrent attachments",autoplay_webtorrent_videos:"Autoplay webtorrent videos",home:"Home",media:"Media",messages:"Messages",market:"Market",contacts:"Contacts",explorer:"Explorer",no_contacts_in_list:"You don't have any contacts in your list."},es:{language_name:"Español",whats_your_name:"¿Cuál es tu nombre?",new_user_go:"Ir",already_have_an_account:"¿Ya tienes una cuenta?",back:"volver",scan_private_key_qr_code:"Escanee el código QR de clave privada",paste_private_key:"Pegar una clave privada",get_notified_new_messages:"Recibe notificaciones de nuevos mensajes",turn_on_desktop_notifications:"Activa las notificaciones de escritorio",new_chat:"Nueva conversación",if_other_person_doesnt_see_message:"Si la otra persona no ve su mensaje, puede darle su enlace de chat a través de otro canal:",type_a_message:"Escribe un mensaje",beware_of_sharing_invite_link_publicly:"Tenga cuidado de compartir su enlace de chat públicamente: puede recibir spam con solicitudes de mensajes. Comparta públicamente su enlace de perfil en su lugar.",your_invite_links:"Tus enlaces de chat",create_new_invite_link:"Crear nuevo enlace de chat",copy_your_invite_link:"Copia tu enlace de chat",have_someones_invite_link:"¿Tienes el enlace de chat de alguien?",paste_their_invite_link:"Pegue su enlace de chat",give_your_invite_link:"Pasa tu enlace de chat:",or_scan_qr_code:"O escanee su código QR",or_show_qr_code:"O muestra tu código QR",new_group:"Nuevo grupo",group_name:"Nombre del grupo",create:"Crear",settings:"Configuraciones",profile:"Perfil",your_name:"Tu nombre",profile_photo:"Foto de perfil",add_profile_photo:"Añadir foto de perfil",profile_photo_too_big:"Foto de perfil demasiado grande: el tamaño máximo es de 200 KB",cancel:"Cancelar",use_photo:"Usar foto",remove_photo:"Eliminar foto",about_text:"Sobre el texto",account:"Cuenta",save_backup_of_privkey_first:"¡tenga una copia de seguridad de su clave privada primero!",otherwise_cant_log_in_again:"De lo contrario, no puede volver a iniciar sesión en esta cuenta.",log_out:"Cerrar sesión",private_key:"Llave privada",download_private_key:"Descargar clave privada",private_key_warning:" ¡PELIGRO! La clave privada se utiliza para iniciar sesión en su cuenta . ¡No le dé ni muestre su clave privada a nadie más!",copy_private_key:"Copiar clave privada",show_privkey_qr:"Mostrar código QR de clave privada",hide_privkey_qr:"Ocultar código QR de clave privada",privkey_storage_recommendation:"El lugar más seguro para almacenar su clave privada es un administrador de contraseñas .",language:"Idioma",peers:"Pares",peer_url:"Par url",public:"Público",remove:"Remove",enable:"Eliminar",disable:"Inhabilitar",from:"desde",add:"Añadir",public_peer_info:"Las personas con las que chatea (y otras) pueden detectar automáticamente a los pares públicos .",peers_info:"Los pares son nodos GunDB que puede girar fácilmente . Próximamente: conexión directa con amigos a través de WebRTC.",webrtc_connection_options:"Opciones de conexión de WebRTC",webrtc_info:"WebRTC se utiliza para videollamadas. Si está detrás de un NAT, es posible que deba especificar un servidor TURN aquí, que retransmitirá su tráfico de video. El ancho de banda no es gratuito, por lo que no hay servidores TURN gratuitos disponibles.",restore_defaults:"Restaurar los valores predeterminados",about:"Acerca de",application_security_warning:"La aplicación es una implementación de prueba de concepto no auditada, así que no la use con fines críticos de seguridad.",donate:"Donar",donate_info:" Donaciones ayudan a mantener el proyecto en marcha y son muy apreciados. Puede donar a través de Open Collective o bitcoin ",logout_confirmation_info:" no puede iniciar sesión de nuevo a menos que haya guardado una copia de su clave privada.",participants:"Participantes",admin:"administración",add_participant:"Añada participante",new_participants_profile_link:"Enlace de chat del nuevo participante",add_friend:"Añadir amigo",send_message:"Enviar mensaje",copy_link:"Copiar link",chat_settings:"Configuraciones de chat",nicknames:"Apodos",nickname:"Apodo",video_call:"Videollamada",online:"en línea",last_active:"Último Activo",their_nickname_for_you:"Su apodo para ti",notifications:"Notificaciones",all_messages:"Todos los mensajes",mentions_only:"Solo menciones",nothing:"Nada",delete_chat:"Eliminar chat",block_user:"Bloquear usuario",typing:"Escribiendo...",attachment:"adjunto archivo",note_to_self:"Nota personal",today:"hoy",yesterday:"ayer",copied:"Copiado",answer:"responder",reject:"rechazar",incoming_call:"Llamada entrante",call_rejected:"Llamada rechazada",close:"Cerrar",call_ended:"Llamada finalizada",calling:"Llamando",on_call_with:"En comunicación con",no_contacts_in_list:"No tienes ningún contacto en tu lista."},"pt-BR":{language_name:"Português Brasil",whats_your_name:"Qual o seu nome?",new_user_go:"Vai",already_have_an_account:"Já tem uma conta?",back:"Voltar",scan_private_key_qr_code:"Ler QR code da chave privada",paste_private_key:"Cole a chave privada",get_notified_new_messages:"Ser notificado de novas mensagens",turn_on_desktop_notifications:"Ativar notificações no desktop",new_chat:"Nova conversa",if_other_person_doesnt_see_message:"Se a outra pessoa não vê sua mensagens, você pode passar pra ela o seu link do bate-papo através de outro canal.",type_a_message:"Digite uma mensagem",beware_of_sharing_invite_link_publicly:"Cuidado ao compartilhar seu link de bate-papo publicamente: você pode receber spam com solicitações de mensagem. Ao invés disso, compartilhe publicamente seu Link do perfil.",your_invite_links:"Seus links de bate-papo",create_new_invite_link:"Criar um novo link de bate-papo",copy_your_invite_link:"Copiar seu link de bate-papo",have_someones_invite_link:"Tem o link de bate-papo de alguém?",paste_their_invite_link:"Cole o link da outra pessoa",give_your_invite_link:"Forneça seu link de bate-papo:",or_scan_qr_code:"Ou leia o QR code",or_show_qr_code:"Ou mostre seu QR code",new_group:"Novo grupo",group_name:"Nome do grupo",create:"Criar",profile:"Perfil",settings:"Configurações",your_name:"Seu nome",profile_photo:"Foto do perfil",add_profile_photo:"Adicionar foto do perfil",profile_photo_too_big:"Foto do perfil muito grande: tamanho máximo é 200KB",cancel:"Cancelar",use_photo:"Usar foto",remove_photo:"Remover foto",about_text:"Texto sobre",account:"Conta",save_backup_of_privkey_first:"Faça backup da sua chave privada primeiro!",otherwise_cant_log_in_again:"Caso contrário você não vai conseguir acessar sua conta novamente.",log_out:"Sair",private_key:"Chave privada",download_private_key:"Baixar chave privada",private_key_warning:"PERIGO! A chave privada é usada para acessar sua conta. Não compartilhe ou mostre sua chave privada para ninguém!",copy_private_key:"Copiar chave privada",show_privkey_qr:"Mostrar QR code da chave privada",hide_privkey_qr:"Esconder QR code da chave privada",privkey_storage_recommendation:"O lugar mais seguro para armazenar sua chave privada é um gerenciardor de senhas.",language:"Idioma",peers:"Peers",peer_url:"Peer url",public:"Público",remove:"Remover",enable:"Ativar",disable:"Desativar",from:"de",add:"Adicionar",public_peer_info:"Peers públicos são encontrados automaticamente por pessoas que você bate-papo (e outros).",peers_info:"Peers são nós do GunDB que você pode facilmente trocar. Novidade pela frente: conexão direta com seus amigos utilizando WebRTC.",webrtc_connection_options:"Opções de conexão WebRTC",webrtc_info:"WebRTC é utilizado para chamadas de vídeo. Se você está atrás de um NAT, você precisa especificar aqui um servidor TURN que vai retransmitir o tráfego de vídeo. A largura de banda não é gratuita, portanto, não há servidores TURN gratuitos disponíveis.",restore_defaults:"Restaurar padrões",about:"Sobre",application_security_warning:"O aplicativo é uma implementação de prova de conceito não auditada; portanto, não o use para fins críticos de segurança.",donate:"Doe",donate_info:"Ajude a manter o projeto com doações, nós agrademos muito. Você pode doar por Open Collective ou bitcoin",logout_confirmation_info:"Você não pode logar novamente ao menos que você tenha salvado uma cópia da sua chave primária.",participants:"participantes",admin:"administração",add_participant:"Adicionar participante",new_participants_profile_link:"Link do bate-papo do novo participante.",add_friend:"Adicionar amigo",send_message:"Enviar mensagem",copy_link:"Copiar link",chat_settings:"Configurações do bate-papo",nicknames:"Apelidos",nickname:"Apelido",video_call:"Chamada de vídeo",online:"online",last_active:"última atividade",their_nickname_for_you:"Apelido deles para você",notifications:"Notificações",all_messages:"Todas mensagens",mentions_only:"Somente menções",nothing:"Nada",delete_chat:"Apagar bate-papo",block_user:"Bloquear usuário",typing:"Digitando...",attachment:"anexo",note_to_self:"Nota pessoal",today:"hoje",yesterday:"ontem",copied:"Copiado",answer:"resposta",reject:"rejeitado",incoming_call:"Chamada entrante",call_rejected:"Chamada rejeitada",close:"Fechar",call_ended:"Chamada encerrada",calling:"Chamando",on_call_with:"Em chamada com",no_contacts_in_list:"Você não tem nenhum contato na sua lista."},ru:{language_name:"Русский",whats_your_name:"Как вас зовут?",new_user_go:"Поехали!",already_have_an_account:"Уже есть аккаунт?",back:"Назад",scan_private_key_qr_code:"Отсканируйте QR-код приватного ключа",paste_private_key:"Вставьте приватный ключ",get_notified_new_messages:"Узнавайте о новых сообщениях",turn_on_desktop_notifications:"Включить уведомления на рабочем столе",new_chat:"Новый чат",if_other_person_doesnt_see_message:"Если собеседник не видит сообщение, вы можете дать вашу ссылку на чат через другой канал связи:",type_a_message:"Напишите сообщение",beware_of_sharing_invite_link_publicly:"Аккуратно распространяйте вашу ссылку на чат: вас могут заспамить сообщениями. Лучше расшарьте ссылку на ваш профиль.",your_invite_links:"Ссылки на ваши чаты",create_new_invite_link:"Создать новую ссылку на чат",copy_your_invite_link:"Скопировать вашу ссылку на чат",have_someones_invite_link:"Есть чья-то ссылка на чат?",paste_their_invite_link:"Вставьте свою ссылку на чат",give_your_invite_link:"Дайте свою ссылку на чат:",or_scan_qr_code:"Или отсканируйте их QR-код",or_show_qr_code:"Или покажите свой QR-код",new_group:"Новая группа",group_name:"Название группы",create:"Создать",settings:"Настройки",profile:"Профиль",your_name:"Ваше имя",profile_photo:"Аватар",add_profile_photo:"Добавить аватар",profile_photo_too_big:"Аватар слишком большой: макс. размер 200KB",cancel:"Отмена",use_photo:"Использовать фото",remove_photo:"Убрать фото",about_text:"Описание",account:"Аккаунт",save_backup_of_privkey_first:"Сначала сохраните копию приватного ключа!",otherwise_cant_log_in_again:"Иначе вы не сможите войти в аккаунт.",log_out:"Выйти",private_key:"Приватный ключ",download_private_key:"Скачать приватный ключ",private_key_warning:"ОПАСНО! Приватный ключ используется для входа в ваш аккаунт. Никому не показывайте ключ!",copy_private_key:"Скопировать приватный ключ",show_privkey_qr:"Показать QR-код приватного ключа",hide_privkey_qr:"Спрятать QR-код приватного ключа",privkey_storage_recommendation:"Лучшее место для хранения приватного ключа — менеджер паролей.",language:"Язык",peers:"Пиры",peer_url:"Ссылка пира",public:"Публичный",remove:"Убрать",enable:"Включить",disable:"Выключить",from:"от кого",add:"Добавить",public_peer_info:"Публичные пиры автоматически обнаруживаются людьми, с которыми вы общаетесь (и другими).",peers_info:"Пиры — это ноды GunDB, вы можете легко развернуть ноду у себя. Скоро будет возможно общаться с друзьями напрямую через WebRTC.",webrtc_connection_options:"Опции подключения через WebRTC",webrtc_info:"WebRTC используется для видеозвонков. Если вы используете NAT, возможно вам понадобится TURN-сервер, который будет обслуживать ваш видео-трафик. Передача данных стоит денег, поэтому бесплатных TURN-серверов мы не предоставляем.",restore_defaults:"Восстановить исходные настройки",about:"Про Iris",application_security_warning:"Приложение является экспериментальным, поэтому не используйте его для критичных процессов и не храните в нем секретные данные.",donate:"Задонатить",donate_info:"Донаты помогают проекту развиваться и приветствуются. Вы можете задонатить через via Open Collective или прислать BTC",logout_confirmation_info:"Вы не сможете заново войти пока не скопируете приватный ключ.",participants:"участники",admin:"админ",add_participant:"Добавить участника",new_participants_profile_link:"Ссылка на чат для нового участника",add_friend:"Добавить друга",send_message:"Отправить сообщение",copy_link:"Скопировать ссылку",chat_settings:"Настройки чата",nicknames:"Никнеймы",nickname:"Никнейм",video_call:"Видео-звонок",online:"онлайн",last_active:"последняя активность",their_nickname_for_you:"Их никнейм для вас",notifications:"Уведомления",all_messages:"Все сообщения",mentions_only:"Только упоминания меня",nothing:"Ничего",delete_chat:"Удалить чат",block_user:"Заблокировать",typing:"Печатает...",attachment:"вложение",note_to_self:"Заметка для себя",today:"сегодня",yesterday:"вчера",copied:"Скопировано",answer:"ответить",reject:"отклонить",incoming_call:"Входящий звонок",call_rejected:"Звонок отклонен",close:"Закрыть",call_ended:"Звонок завершен",calling:"Звоню",on_call_with:"На звонке с"},de:{language_name:"Deutsch",whats_your_name:"Was ist Ihr Name?",new_user_go:"Auf Gehts",already_have_an_account:"Haben sie schon ein Konto eingerichtet?",back:"zurück",scan_private_key_qr_code:"Scan einen privaten Schlüssel QR code",paste_private_key:"Füge einen privaten Schlüssel ein",get_notified_new_messages:"Werde über neue Nachrichten notifiziert",turn_on_desktop_notifications:"Stelle Desktop Notifikationen ein",new_chat:"Neue Unterhaltung",if_other_person_doesnt_see_message:"Sollte die andere Person die Nachricht nicht sehen, können Sie Ihren Unterhaltung's link über einen anderen Kanal senden:",type_a_message:"Schreiben sie eine Nachricht",beware_of_sharing_invite_link_publicly:"Vorsicht wenn Unterhaltung's links in der Öffentlichkeit geteilt werden: Sie können mit Nachricht Anfragen gespammt werden. Teilen sie lieber ihren Profil link.",your_invite_links:"Ihre Unterhaltung's links",create_new_invite_link:"Machen Sie einen neuen Unterhaltung's link",copy_your_invite_link:"Kopieren Sie ihren Unterhaltung's link",have_someones_invite_link:"Haben Sie einen Unterhaltung's link von jemandem?",paste_their_invite_link:"Fügen Sie den Unterhaltung's link hier ein",give_your_invite_link:"Geben Sie ihren Unterhaltung's link:",or_scan_qr_code:"Oder scannen Sie den QR code",or_show_qr_code:"Oder zeigen Sie ihren QR code",new_group:"Neue Gruppe",group_name:"Gruppen Name",create:"Erstellen",settings:"Einstellungen",profile:"Profile",your_name:"Ihr Name",profile_photo:"Profil Bild",add_profile_photo:"Profil Bild hinzufügen",profile_photo_too_big:"Profil Bild zu gross: maximale Grösse ist 200KB",cancel:"Abbrechen",use_photo:"Bild benutzen",remove_photo:"Bild entfernen",about_text:"'Über uns' Text",account:"Konto",save_backup_of_privkey_first:"Speichern Sie ein Backup für Ihren privaten Schlüssel!",otherwise_cant_log_in_again:"Sonst können Sie nicht mehr in Ihr Konto einloggen.",log_out:"Ausloggen",private_key:"Privater Schlüssel",download_private_key:"Download Privaten Schlüssel",private_key_warning:"Warnung! Der private Schlüssel ist benötigt um in Ihr Konto einzuloggen. Geben Sie niemals Ihren privaten Schlüssel an Andere weiter!",copy_private_key:"Kopieren Sie den privaten Schlüssel",show_privkey_qr:"Zeigen Sie den privaten Schlüssel QR code",hide_privkey_qr:"Blended Sie den privaten Schlüssel QR code aus",privkey_storage_recommendation:"Der sicherste Platz für Ihren privaten Schlüssel ist ein Passwor Manager.",language:"Sprache",peers:"Peers",peer_url:"Peer url",public:"Öffentlich",remove:"Entfernen",enable:"Einstellen",disable:"Ausstellen",from:"Von",add:"Hinzufügen",public_peer_info:"Öffentliche peers sind automatisch auffindbar für Leute in Ihren Unterhaltungen (und ausserhalb).",peers_info:"Peers sind GunDB nodes die Sie einfach hochfahren können. Kommend: Direkte Verbindung zu Freunden über WebRTC.",webrtc_connection_options:"WebRTC Verbindungsoptionen",webrtc_info:"WebRTC ist für Videoanrufe benutzt. Wenn Sie hinter einem NAT sind, müssen Sie wahrscheinlich einen TURN server hier definieren, der dann Ihr Video Verkehr weiterleitet. Bandwidth ist nicht kostenfrei, darum gibt es nicht viele kostenfreie TURN servers.",restore_defaults:"Einstellungen zurückstellen",about:"Über uns",application_security_warning:"Diese App ist ein ungeprüftes 'proof-of-concept' Implementation, also nicht für Sicherheit nötige Dinge benutzten.",donate:"Spenden",donate_info:"Spenden helfen dem Projekt weiter zu gehen und werden dankbar angenommen. Sie können via Open Collective oder bitcoin spenden.",logout_confirmation_info:"Sie können nicht wieder einloggen, ausser Sie haben saved eine Kopie ihres privaten Schlüssels gespeichert.",participants:"Teilnehmer",admin:"admin",add_participant:"Teilnehmer hinzufügen",new_participants_profile_link:"Neuer Teilnehmer's Unterhaltung's link",add_friend:"Freund hinzufügen",send_message:"Nachricht senden",copy_link:"Link kopieren",chat_settings:"Unterhaltunseinstellungen",nicknames:"Nicknames",nickname:"Nickname",video_call:"Video Anruf",online:"online",last_active:"Letztmals aktiv",their_nickname_for_you:"Ihr Nickname für die Anderen",notifications:"Notifikationen",all_messages:"Alle Nachrichten",mentions_only:"Nur Erwähnungen",nothing:"Nichts",delete_chat:"Unterhaltung löschen",block_user:"Benutzer blockieren",typing:"Schreibt...",attachment:"Anhang",note_to_self:"Notiz zu Selbst",today:"heute",yesterday:"gestern",copied:"Kopiert",answer:"antworten",reject:"ablehnen",incoming_call:"Einkommender Anruf",call_rejected:"Anruf abgelehnt",close:"Schliessen",call_ended:"Anruf beendet",calling:"Rufe an",on_call_with:"Anruf mit"},fi:{language_name:"Suomi",whats_your_name:"Mikä on nimesi?",new_user_go:"Aloita",already_have_an_account:"Onko sinulla jo tili?",back:"Takaisin",scan_private_key_qr_code:"Skannaa salaisen avaimen QR-koodi",paste_private_key:"Liitä salainen avain",get_notified_new_messages:"Tilaa ilmoitukset uusista viesteistä",turn_on_desktop_notifications:"Ota käyttöön työpöytäilmoitukset",new_chat:"Uusi keskustelu",if_other_person_doesnt_see_message:"Jos toinen käyttäjä ei näe viestiäsi, voit antaa hänelle sinun kutsulinkkisi jotain muuta kautta:",type_a_message:"Kirjoita viesti",beware_of_sharing_invite_link_publicly:"Jos jaat kutsulinkkisi julkisesti: saatat saada viestipyyntö-spämmiä. Sen sijaan voit turvallisesti jakaa profiililinkkisi julkisesti.",your_invite_links:"Kutsulinkkisi",create_new_invite_link:"Luo uusi kutsulinkki",copy_your_invite_link:"Kopioi kutsulinkkisi",have_someones_invite_link:"Saitko toisen käyttäjän kutsulinkin?",paste_their_invite_link:"Liitä kutsulinkki",give_your_invite_link:"Anna oma kutsulinkkisi:",or_scan_qr_code:"Tai skannaa toisen QR-koodi",or_show_qr_code:"Tai näytä oma QR-koodisi",new_group:"Uusi ryhmä",group_name:"Ryhmän nimi",create:"Luo",settings:"Asetukset",profile:"Profiili",your_name:"Nimesi",profile_photo:"Profiilikuva",add_profile_photo:"Lisää profiilikuva",profile_photo_too_big:"Profiilikuva on liian suuri: maksimikoko on 200KB",cancel:"Peruuta",use_photo:"Käytä kuvaa",remove_photo:"Poista kuva",about_text:"Kuvausteksti",account:"Tili",save_backup_of_privkey_first:"Tallenna ensin varmuuskopio salaisesta avaimestasi!",otherwise_cant_log_in_again:"Muuten et voi kirjautua takaisin tälle tilille.",log_out:"Kirjaudu ulos",private_key:"Salainen avain",download_private_key:"Lataa salainen avain tiedostona",private_key_warning:"VAROITUS! Salainen avain antaa pääsyn tilillesi. Älä anna tai näytä salaista avaintasi kenellekään.",copy_private_key:"Kopioi salainen avain",show_privkey_qr:"Näytä salaisen avaimen QR-koodi",hide_privkey_qr:"Piilota salaisen avaimen QR-koodi",privkey_storage_recommendation:"Turvallisin säilytyspaikka salaiselle avaimellesi on salasananhallintaohjelma (password manager).",language:"Kieli",peers:"Yhteyspisteet (peers)",peer_url:"Peer url",public:"Julkinen",remove:"Poista",enable:"Käytä",disable:"Poista käytöstä",from:"lähde",add:"Lisää",public_peer_info:"Julkiset yhteyspisteet näkyvät automaattisesti käyttäjille, joiden kanssa keskustelet (ja muille).",peers_info:"Yhteyspisteet ovat GunDB-solmuja, joiden pystyttämisestä tietoa täällä. Tulossa: suorat yhteydet kavereiden kesken WebRTC:llä.",webrtc_connection_options:"WebRTC-yhteysasetukset",webrtc_info:"WebRTC:tä käytetään videopuheluihin. Jos olet NATin takana, sinun tarvitsee ehkä määrittää tähän TURN-palvelin, joka välittää videoliikenteesi. Tiedonsiirto ei ole ilmaista, joten ilmaisia TURN-palvelimia ei ole saatavilla.",restore_defaults:"Palauta oletusarvot",about:"Tietoa",application_security_warning:"Sovellus on auditoimaton konseptitoteutus, joten älä käytä sitä tarkoituksiin joissa turvallisuus on oleellisen tärkeää.",donate:"Lahjoita",donate_info:"Lahjoitukset pitävät projektin pystyssä ja arvostamme niitä suuresti. Voit lahjoittaa Open Collectiven kautta tai bitcoinilla",logout_confirmation_info:"Et voi kirjautua takaisin sisään ellet ole tallentanut varmuuskopiota salaisesta avaimestasi.",participants:"osallistujat",admin:"ylläpitäjä",add_participant:"Lisää osallistuja",new_participants_profile_link:"Uuden osallistujan kutsulinkki",add_friend:"Lisää kaveriksi",send_message:"Lähetä viesti",copy_link:"Kopioi linkki",chat_settings:"Keskustelun asetukset",nicknames:"Lempinimet",nickname:"Lempinimi",video_call:"Videopuhelu",online:"paikalla",last_active:"viimeksi aktiivisena",their_nickname_for_you:"Hänen lempinimensä sinulle",notifications:"Ilmoitukset",all_messages:"Kaikki viestit",mentions_only:"Vain maininnat",nothing:"Ei mitään",delete_chat:"Poista keskustelu",block_user:"Estä käyttäjä",typing:"Kirjoittaa...",attachment:"liite",note_to_self:"Muistiinpanot",today:"tänään",yesterday:"eilen",copied:"Kopioitu",answer:"vastaa",reject:"hylkää",incoming_call:"Saapuva puhelu",call_rejected:"Puhelu hylätty",close:"Sulje",call_ended:"Puhelu päättyi",calling:"Soitetaan",on_call_with:"Puhelu käyttäjälle",total:"Yhteensä",home:"Koti",messages:"Viestit",market:"Tori",contacts:"Yhteystiedot",explorer:"Hakemisto",no_followers_yet:"Jaa linkkisi, niin muut voivat seurata sinua:",next:"Seuraava",shopping_carts:"Ostoskorit",shopping_cart:"Ostoskori",cart:"Kori",delivery:"Yhteystiedot",payment:"Maksutapa",payment_method:"Maksutapa",confirm:"Yhteenveto",address:"Osoite",email_optional:"Sähköposti (valinnainen)",name:"Nimi",confirm_button:"Vahvista",summary:"Yhteenveto",following:"Seurataan",followers:"Seuraajat",likes:"Tykkäykset",replies:"Vastaukset",posts:"Julkaisut",type_a_message_or_paste_a_magnet_link:"Kirjoita viesti tai liitä magnet-linkki",download_webtorrent:"Lataa Webtorrent Desktop mediatiedostojen jakamiseen ja liitä niiden magnet-linkki alle.",alternatively:"Vaihtoehtoisesti",alternatively_get_sms_verified:"Vaihtoehtoisesti tunnistaudu tekstiviestillä",visibility:"Julkaisut, vastaukset ja tykkäykset näkyvät vain seuraajillesi ja heidän verkostoillensa.",no_followers_yet_info:"Julkaisut, vastaukset ja tykkäykset näkyvät vain seuraajillesi ja heidän verkostoillensa.",iris_is_like:"Iiris on kuin tuntemamme sosiaalisen median sovellukset, mutta parempi.",copy:"Kopioi",this_is_a_prototype_store:"Tori on prototyyppi, ja se näyttää myynnissä olevat tavarat sosiaalisessa verkostossasi. Iriksessä tuotteet tilataan yksityisviesteillä. Tästä pääset omaan kauppaasi.",add_to_cart:"Lisää koriin",switch_account:"Vaihda tiliä",web_push_subscriptions:"Selaimen ilmoitustilaukset (web push subscriptions)",enable_public_peer_discovery:"Salli julkisten yhteyspisteiden hakeminen",maximum_number_of_peer_connections:"Maksimimäärä yhteyspisteitä",there_is_a_bug:"Bugin vuoksi useampaan kuin yhteen yhteyspisteeseen yhdistäminen voi kuormittaa tietokoneen suoritinta ja viedä verkkokaistaa. Korjaaminen on työn alla!",set_up_your_own_peer:"Pystytä oma yhteyspisteesi",also:"Myös",or_small:"tai",automatically_load_webtorrent_attachments:"Lataa webtorrentin liitteet automaattisesti",autoplay_webtorrent_videos:"Käynnistä webtorrentin videot automaattisesti",search:"Etsi"},it:{language_name:"Italian",whats_your_name:"Quale è il tuo nome??",new_user_go:"Inizia",already_have_an_account:"Hai già un account?",back:"Indietro",scan_private_key_qr_code:"Scansione codice QR di chiave privata",paste_private_key:"Incolla una chiave privata",get_notified_new_messages:"Ricevi una notifica per i nuovi messaggi",turn_on_desktop_notifications:"Attiva le notifiche desktop",new_chat:"Nuova chat",if_other_person_doesnt_see_message:"Se l'altra persona non vede il tuo messaggio, puoi dargli il tuo invite link attraverso qualche altro canale:",type_a_message:"Scrivi un messaggio",beware_of_sharing_invite_link_publicly:"Fai attenzione a condividere pubblicamente il tuo invite link: potresti ricevere spam con richieste di messaggi. Condividi pubblicamente invece il tuo link di profilo.",your_invite_links:"I tuoi invite link",create_new_invite_link:"Crea nuovo invite link",copy_your_invite_link:"Copia il tuo invite link",have_someones_invite_link:"Hai il invite link di quakcuno?",paste_their_invite_link:"Incolla il loro invite link",give_your_invite_link:"Dai il tuo invite link:",or_scan_qr_code:"O scansiona il loro codice QR",or_show_qr_code:"O mostra il tuo codice QR",new_group:"Nuovo gruppo",group_name:"Nome gruppo",create:"Crea",profile:"Profilo",settings:"Impostazioni",your_name:"Il tuo nome",profile_photo:"Foto di profilo",add_profile_photo:"Aggiungi foto di profilo",profile_photo_too_big:"Foto di profilo troppo grande: dimensione massima di 200KB",cancel:"Cancella",use_photo:"Usa foto",remove_photo:"Rimuovi foto",about_text:"Riguardo a te",account:"Account",save_backup_of_privkey_first:"Salva prima un backup della tua chiave privata!",otherwise_cant_log_in_again:"Altrimenti non potrai riautenticarti a questo account.",log_out:"Scollegati",private_key:"Chiave privata",download_private_key:"Scarica chiave privata",private_key_warning:"PERICOLO! La chiave privata è usata per autenticarti al tuo account. Non dare o mostrare la tua chiave privata a nessun altro!",copy_private_key:"Copia chiave privata",show_privkey_qr:"Mostra il codice QR della chiave privata",hide_privkey_qr:"Nascondi il codice QR della chaive privata",privkey_storage_recommendation:"Il posto più sicuro dove archiviare la chiave privata è un gestore password.",language:"Lingua",peers:"Peer",peer_url:"Peer url",public:"Pubblico",remove:"Rimuovi",enable:"Abilita",disable:"Disabilita",from:"da",add:"Aggiungi",public_peer_info:"Peer pubblici sono automaticamente rilevabili dalle persone con cui scrivi (e altri).",peers_info:"I peer sono nodi GunDB che puoi facilmente montare. In arrivo: connessione diretta con gli amici attraverso WebRTC.",webrtc_connection_options:"Opzioni di connessione WebRTC",webrtc_info:"WebRTC è usato per le video chiamate. Se sei dietro ad una NAT, potresti aver bisogno di specificare un server TURN qui, che inoltrerà il tuo traffico video. La banda di trasferimento non è gratuita, non ci sono server TURN gratuiti in giro.",restore_defaults:"Ripristina le impostazioni predifinite",about:"A proposito",application_security_warning:"L'applicazione è un'implementazione di prova del concetto non certificata, quindi non utilizzarla per fini che richiedano un uso sicuro in situazioni critiche.",donate:"Dona",donate_info:"Le donazioni aiutano a mantenere il progetto e sono molto apprezzate. Puoi donare attraverso Open Collective o bitcoin",logout_confirmation_info:"Non puoi autenticarti a meno che tu non abbia salvato una copia della tua chiave privata.",participants:"partecipanti",admin:"admin",add_participant:"Aggiungi partecipante",new_participants_profile_link:"Nuovi invite link del participante",add_friend:"Aggiungi amico",send_message:"Invia messaggio",copy_link:"Copia link",chat_settings:"Impostazioni della Chat",nicknames:"Soprannome",nickname:"Soprannome",video_call:"Chiamata video",online:"online",last_active:"ultimo attivo",their_nickname_for_you:"Il loro soprannome per te",notifications:"Notifiche",all_messages:"Tutti i messaggi",mentions_only:"Solo menzioni",nothing:"Nulla",delete_chat:"Cancella chat",block_user:"Blocca utente",typing:"Sta scrivendo...",attachment:"allegato",note_to_self:"Nota a te stesso",today:"oggi",yesterday:"ieri",copied:"Copiato",answer:"rispondere",reject:"rifiutare",incoming_call:"Chiamata in arrivo",call_rejected:"Chiamata respinta",close:"Chiudere",call_ended:"Chiamata conclusa",calling:"Chiamata in corso",on_call_with:"In chiamata con",no_contacts_in_list:"Non hai contatti nella tua lista."},"zh-cn":{language_name:"中文",whats_your_name:"你叫什么名字?",new_user_go:"开始",already_have_an_account:"已有账户?",back:"后退",scan_private_key_qr_code:"请扫描私钥的二维码",paste_private_key:"请复制你的私钥",get_notified_new_messages:"接收新消息的提醒",turn_on_desktop_notifications:"打开桌面消息提醒",new_chat:"新的聊天",if_other_person_doesnt_see_message:"如果其他人无法看到你的消息,你可以把 你的 聊天链接在其他频道发送给他们:",type_a_message:"请输入消息",beware_of_sharing_invite_link_publicly:"请注意,公开分享你的聊天链接将有可能让你收到垃圾消息申请。推荐分享你的账号链接。",your_invite_links:"你的聊天链接",create_new_invite_link:"创建新的聊天链接",copy_your_invite_link:"复制你的聊天链接",have_someones_invite_link:"有其他人的聊天链接?",paste_their_invite_link:"请将聊天链接粘贴在此",give_your_invite_link:"你的聊天链接:",or_scan_qr_code:"或扫描他们的二维码",or_show_qr_code:"或展示你的二维码",new_group:"新的聊天群组",group_name:"群组名称",create:"创建",profile:"个人资料",settings:"设定",your_name:"你的名字",profile_photo:"头像",add_profile_photo:"添加头像",profile_photo_too_big:"头像超过最大尺寸(200KB)",cancel:"取消",use_photo:"选取照片",remove_photo:"移除照片",about_text:"简介",account:"账号",save_backup_of_privkey_first:"首先请妥善保管你的私钥!",otherwise_cant_log_in_again:"否则你将无法登录这个账号。",log_out:"登出",private_key:"私钥",download_private_key:"下载私钥",private_key_warning:"危险! 私钥可以用来 登录你的账号。 不要将你的私钥交给或展示给任何其他人!",copy_private_key:"复制私钥",show_privkey_qr:"显示私钥二维码",hide_privkey_qr:"隐藏私钥二维码",privkey_storage_recommendation:"密码管理器是保存私钥最安全的方式。",language:"语言",peers:"节点",peer_url:"节点地址",public:"公开",remove:"移除",enable:"启用",disable:"禁用",from:"来自于",add:"添加",public_peer_info:"公开 节点可被自动发现",peers_info:"GunDB 的节点可以帮助加速连接速度 。即将支持:通过 WebRTC 直接连接聊天对象。",webrtc_connection_options:"WebRTC 连接选项",webrtc_info:"本应用的视频聊天使用了 WebRTC。 如果你在一个内部网络中,你可能需要手动指定一个用作转发视频流量的 Turn server。网络带宽是收费的所以我们不提供免费的 Turn server。",restore_defaults:"恢复默认值",about:"关于",application_security_warning:"本应用的实现暂时还未进行代码审计,仍处在概念验证阶段,所以请大家不要在任何安全等级高的场景下使用。",donate:"Donate",donate_info:"捐款可以帮助我们继续更好地开发。 你可以通过 Open Collective 或比特币(Bitcoin)来完成捐款,非常感谢你的帮助。比特币地址",logout_confirmation_info:"如果你不保存好你的私钥,你将无法再次登录。 ",participants:"参与者",admin:"管理员",add_participant:"添加参与者",new_participants_profile_link:"新加参与者的聊天链接",add_friend:"添加好友",send_message:"发送消息",copy_link:"复制链接",chat_settings:"聊天设置",nicknames:"所有昵称",nickname:"昵称",video_call:"视频通话",online:"在线",last_active:"上次在线",their_nickname_for_you:"其他人给你起的昵称",notifications:"通知",all_messages:"所有消息",mentions_only:"只提到",nothing:"无",delete_chat:"删除聊天",block_user:"屏蔽用户",typing:"正在输入...",attachment:"福建",note_to_self:"个人备忘录",today:"今天",yesterday:"昨天",copied:"已复制",answer:"接通",reject:"拒绝",incoming_call:"来电",call_rejected:"通话被拒绝",close:"关闭",call_ended:"通话结束",calling:"拨号中",on_call_with:"通话对象:"},ko:{language_name:"한글",whats_your_name:"이름?",new_user_go:"진행",already_have_an_account:"기존 계정이 있나요?",back:"뒤로",scan_private_key_qr_code:"프라이빗 키 스캔 QR 코드",paste_private_key:"프라이빗 키 붙여넣기",get_notified_new_messages:"신규 메시지 통보",turn_on_desktop_notifications:"데스크탑 통보 시작",new_chat:"신규 채팅",public_messages:"공개 메시지",follow_someone_info:"제안 그들의 네트워크의 내용을 보기위하여 펄로우 하기:",creator_of_this_distribution:"본Iris 배분을 위한 저작권자",no_followers_yet:"약력 링크를 소개하여 타인들이 펄로우 하게 함:",no_followers_yet_info:"당신의 게시, 응답, 좋아요는 당신의 펄로워 및 네트워크에 보여짐.",alternatively:"대안으로,",alternatively_get_sms_verified:"대안으로, 타인이 당신을 찾을 수 있도록 하기 SMS 확인 .",give_your_profile_link_to_someone:"당신의 약력 링크를 타인에게 전달",if_other_person_doesnt_see_message:"타인이 당신의 메시지를 보지 못하면 다른 채널의 링크로 초대 할 수 있음 당신:",type_a_message:"메시지 입력",beware_of_sharing_invite_link_publicly:"경고 초대링크를 공개적으로 사용하는 것은: 스팸을 받을수 있으니 공개 할 시는 당신의 profile link를 사용하세요.",your_invite_links:"당신의 초대 링크",create_new_invite_link:"새 초대링크 생성",copy_your_invite_link:"초대링크 복사",have_someones_invite_link:"타인의 초대링크 보유?",paste_their_invite_link:"그들의 초대링크 붙이기",give_your_invite_link:"당신의 초대링크 제공:",or_scan_qr_code:"아니면 그들의 QR코드 스캔",or_show_qr_code:"아니면 당신의 QR코드 공개",new_group:"신규 그룹",group_name:"그룹 이름",create:"생성",settings:"환경",profile:"약력",your_name:"성명",profile_photo:"약력 사진",add_profile_photo:"약력 사진 추가",profile_photo_too_big:"약력 사진 크기 초과: 최대 사이즈 200KB",cancel:"취소",use_photo:"사진 사용",remove_photo:"사진 제거",about_text:" 원문",account:"계정",save_backup_of_privkey_first:"먼저 당신의 프라이빗 키 백업 저장!",otherwise_cant_log_in_again:"아니면 이 계정으로 다시 로그인 할 수 없음.",log_out:"로그 아웃",private_key:"프라이빗 키",download_private_key:"프라이빗 키 내려받기",private_key_warning:"위험! 프라이빗키 는 당신 계정을 사용할 수 있음. 타인에게 당신의 프라이빗 키를 보여주거나 공유하지 말것!",copy_private_key:"프라이빗 키 복사",show_privkey_qr:"프라이빗 키 QR 코드 공개",hide_privkey_qr:"프라이빗 코 QR 코드 숭기기",privkey_storage_recommendation:"안전하게 당신의 프라이빗 키를 저장하는 장소는 패스워드 관리자.",language:"언어",peers:"친구",peer_url:"친구 url",public:"공개",remove:"제거",enable:"동작",disable:"비동작",from:"전송자",add:"추가",public_peer_info:"공개 친구는 자동적으로 당신이 채팅하고 있는(타인들도)사람들로부터 보여질 수 있음.",peers_info:"친구는 GunDB 노드이며 쉽게 공유. 향후 계획: 친구들과 직접 접속 WebRTC.",webrtc_connection_options:"WebRTC 접속 옵션",webrtc_info:"WebRTC 는 화상 통신에 사용. 당신이 NAT에 속해 있으면, TURN 서버를 여기에 추가 해야 할 수도 있음, 화상 트래픽 전송. 통신량은 무료가 아니라 무료 TURN 서버를 찾기가 쉽지 않음.",restore_defaults:"조건 원상회복",about:"About",application_security_warning:"본 응용은 검증되지 않은 아이디어 차원의 도구이어서 비밀을 요하는 중요한 목적으로 사용 할 수 없음.",donate:"기부",donate_info:"기부 는 본 프로젝트를 진행 하는데 도움이 되고 감사 드립니다. 기부 하려면 여기서 하면 됩니다 Open Collective or bitcoin",logout_confirmation_info:"당신은 로그인 다시 할 수 없음만약 당신이 프라이빗 키를 저장해 두자 않았으ㅁ.",participants:"참여자",admin:"관리자",add_participant:"참여자 추가",new_participants_profile_link:"신규 참여자 약력 링크",invite_links:"링크 초대",copy:"복사",follows_you:"당신 펄로우",follow:"펄로우",unfollow:"펄로우 취소",following:"펄러우 진행중",followers:"펄로워들",add_friend:"친구 추가",send_message:"메시지 전송",copy_link:"링크 복사",show_qr_code:"QR코드 공유",chat_settings:"채팅 환경",nicknames:"닉네임들",nickname:"닉네임",video_call:"화상채팅",online:"온라인",last_active:"마지막 활동",their_nickname_for_you:"당신을 위한 그들의 닉네임",notifications:"통보",all_messages:"모든 메시지",mentions_only:"단지 멘션",nothing:"존대하지 않음",delete_chat:"책 삭제",block_user:"사용자 거부",typing:"타이핑 중...",attachment:"첨부",note_to_self:"자신에게 메모",today:"오늘",yesterday:"어제",copied:"복사완료",answer:"대답",reject:"거부",incoming_call:"전화 수신",call_rejected:"응답 거부",close:"닫기",call_ended:"통화 종료",calling:"통화",on_call_with:"통화 상대",delete:"삭제",confirm_delete_msg:"메시지 삭제?",search:"검색",feed_up:"신규",feed_top:"최신",feed_down:"과거",feed_bottom:"최대 과거",email_optional:"이메일 (옵션)",delivery:"전달",address:"주소",confirmation:"확인",payment_method:"지불 방법",summary:"요약",download_webtorrent:"다운로드 Webtorrent Desktop 미디어 파일을호스트 하고 붙여 넣기 위하여 마그넷링크 아래 제공.",visibility:"당신의 게시물, 답변과 좋아요는 당신의 펄로워들과 네트워크에만 보여짐.",iris_is_like:"Iris는 소셜네트워킹 앱이지만 더 향상된 기능임.",this_is_a_prototype_store:"ㅇ본 화면은 시범 상점이며 당신의 소셜네트워크의 판매점을 보여 줌. 주문은 Iris 개인 메시지로 함. 당신의 상점은 여기에 볼 수 있음. 여기.",add_to_cart:"카트에 추가",web_push_subscriptions:"웹 푸시 구독",enable_public_peer_discovery:"공개 친구 찾기 동작",there_is_a_bug:"1명 이상의 친구와 접속하면 CPU와 통신량이 급증하는 문제가 있어 수정 하고 있음!",set_up_your_own_peer:"당신의 자체 친구 설정",also:"그리고",or_small:"또는",automatically_load_webtorrent_attachments:"자동적으로 webtorrent 첨부 파일 로드",autoplay_webtorrent_videos:"자동으로 webtorrent 비디오 시작",no_contacts_in_list:"더 이상 친구 리스트가 없음."}}},"5WRv":function(n,e,t){var l=t("iNmH"),r=t("Qatm"),i=t("Zhxd"),o=t("kluZ");n.exports=function(n){return l(n)||r(n)||i(n)||o()},n.exports.default=n.exports,n.exports.__esModule=!0},"5rjA":function(n,e,t){"use strict";function l(n,e){return(l=Object.setPrototypeOf||function(n,e){return n.__proto__=e,n})(n,e)}function r(n,e){return e||(e=n.slice(0)),n.raw=e,n}var i,o,u,a,s,c,f,h=t("hosL"),p=t("kpue"),d=t("jMw0"),g=t("24Gu"),m=t("CGOa"),v=t("3QNJ"),y=t("qIEf"),b=t.n(y),_=t("lBHI"),w=new m.a({stripPrefix:!1,stripTrailingSlash:!1}),F=200,k=Object(p.b)(i||(i=r([''])));e.a=function(n){function e(){var e;return(e=n.call(this)||this).i=0,e}var t,i;i=n,(t=e).prototype=Object.create(i.prototype),t.prototype.constructor=t,l(t,i);var h=e.prototype;return h.componentDidMount=function(){var n=this;b()(this.base).find("a").click((function(n){var e=b()(n.target).attr("href");e&&0===e.indexOf("https://iris.to/")&&(n.preventDefault(),window.location=e.replace("https://iris.to/",""))}));var e=this.getSeenStatus().seen;e.seen||e.delivered||_.a.local.get("channels").get(this.props.chatId).get("theirLastActiveTime").on((function(e,t,l,r){n.getSeenStatus().delivered&&(n.setState({}),r.off())})),e.seen||_.a.local.get("channels").get(this.props.chatId).get("theirMsgsLastSeenTime").on((function(e,t,l,r){n.getSeenStatus().seen&&(n.setState({}),r.off())}))},h.getSeenStatus=function(){var n=d.a.channels[this.props.chatId],e="object"==typeof this.props.time?this.props.time:new Date(this.props.time);return{seen:n&&n.theirMsgsLastSeenDate>=e,delivered:n&&n.activity&&n.activity.lastActive&&new Date(n.activity.lastActive)>=e}},h.onNameClick=function(n){b()(".new-msg").val(b()(".new-msg").val().trim()+" @"+n+" "),b()(".new-msg").focus()},h.openAttachmentsGallery=function(n){var e=this,t=this.state.msg||this.props;b()("#floating-day-separator").remove();var l,r,i,o,u=b()("