!function e(t,r,n){function i(s,o){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){var r=t[s][1][e];return i(r?r:e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var a="function"==typeof require&&require,s=0;s1)for(var r=1;r=0;--n){var i=this.tryEntries[n],a=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var s=m.call(i,"catchLoc"),o=m.call(i,"finallyLoc");if(s&&o){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&m.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),p(r),C}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;p(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:y(e),resultName:t,nextLoc:r},C}}}("object"===("undefined"==typeof r?"undefined":n(r))?r:"object"===("undefined"==typeof window?"undefined":n(window))?window:"object"===("undefined"==typeof self?"undefined":n(self))?self:void 0)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:1}],3:[function(e,t,r){"use strict";console.warn("The regenerator/runtime module is deprecated; please import regenerator-runtime/runtime instead."),t.exports=e("regenerator-runtime/runtime")},{"regenerator-runtime/runtime":2}],4:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return"read"===e||"write"===e}function a(e){return"write"===e}var s=function(){function e(e,t){for(var r=0;r "+e+": "+t.type,t)}},{key:"broadcastOps",value:function(t){function r(){n.broadcastOpBuffer.length>0&&(n.broadcast({type:"update",ops:n.broadcastOpBuffer}),n.broadcastOpBuffer=[])}t=t.map(function(t){return e.Struct[t.struct].encode(t)});var n=this;0===this.broadcastOpBuffer.length?(this.broadcastOpBuffer=t,this.y.db.transactionInProgress?this.y.db.whenTransactionsFinished().then(r):setTimeout(r,0)):this.broadcastOpBuffer=this.broadcastOpBuffer.concat(t)}},{key:"receiveMessage",value:function(e,t){var r=this;if(e===this.userId)return Promise.resolve();if(this.debug&&console.log("receive "+e+" -> "+this.userId+": "+t.type,JSON.parse(JSON.stringify(t))),null!=t.protocolVersion&&t.protocolVersion!==this.protocolVersion)return console.error("You tried to sync with a yjs instance that has a different protocol version\n (You: "+this.protocolVersion+", Client: "+t.protocolVersion+").\n The sync was stopped. You need to upgrade your dependencies (especially Yjs & the Connector)!\n "),this.send(e,{type:"sync stop",protocolVersion:this.protocolVersion}),Promise.reject("Incompatible protocol version");if(null!=t.auth&&null!=this.connections[e]){var n=this.checkAuth(t.auth,this.y);this.connections[e].auth=n,n.then(function(t){var n=!0,i=!1,a=void 0;try{for(var s,o=r.userEventListeners[Symbol.iterator]();!(n=(s=o.next()).done);n=!0){var u=s.value;u({action:"userAuthenticated",user:e,auth:t})}}catch(c){i=!0,a=c}finally{try{!n&&o["return"]&&o["return"]()}finally{if(i)throw a}}})}else null!=this.connections[e]&&null==this.connections[e].auth&&(this.connections[e].auth=this.checkAuth(null,this.y));return null!=this.connections[e]&&null!=this.connections[e].auth?this.connections[e].auth.then(function(n){if("sync step 1"===t.type&&i(n))!function(){var i=r,s=t;r.y.db.requestTransaction(regeneratorRuntime.mark(function o(){var t,r,u;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.delegateYield(this.getStateSet(),"t0",1);case 1:if(t=o.t0,!a(n)){o.next=4;break}return o.delegateYield(this.applyDeleteSet(s.deleteSet),"t1",4);case 4:return o.delegateYield(this.getDeleteSet(),"t2",5);case 5:return r=o.t2,o.delegateYield(this.getOperations(s.stateSet),"t3",7);case 7:u=o.t3,i.send(e,{type:"sync step 2",os:u,stateSet:t,deleteSet:r,protocolVersion:this.protocolVersion,auth:this.authInfo}),this.forwardToSyncingClients?(i.syncingClients.push(e),setTimeout(function(){i.syncingClients=i.syncingClients.filter(function(t){return t!==e}),i.send(e,{type:"sync done"})},5e3)):i.send(e,{type:"sync done"}),i._setSyncedWith(e);case 11:case"end":return o.stop()}},o,this)}))}();else if("sync step 2"===t.type&&a(n)){var s,o,u;!function(){var n=r;s=!r.broadcastedHB,r.broadcastedHB=!0,o=r.y.db,u={},u.promise=new Promise(function(e){u.resolve=e}),r.syncStep2=u.promise;var i=t;o.requestTransaction(regeneratorRuntime.mark(function a(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(this.applyDeleteSet(i.deleteSet),"t0",1);case 1:this.store.apply(i.os),o.requestTransaction(regeneratorRuntime.mark(function r(){var t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.delegateYield(this.getOperations(i.stateSet),"t0",1);case 1:t=r.t0,t.length>0&&(s?n.broadcastOps(t):n.send(e,{type:"update",ops:t})),u.resolve();case 4:case"end":return r.stop()}},r,this)}));case 3:case"end":return t.stop()}},a,this)}))}()}else if("sync done"===t.type){var c=r;r.syncStep2.then(function(){c._setSyncedWith(e)})}else if("update"===t.type&&a(n)){if(r.forwardToSyncingClients){var l=!0,d=!1,f=void 0;try{for(var h,p=r.syncingClients[Symbol.iterator]();!(l=(h=p.next()).done);l=!0){var g=h.value;r.send(g,t)}}catch(y){d=!0,f=y}finally{try{!l&&p["return"]&&p["return"]()}finally{if(d)throw f}}}if(r.y.db.forwardAppliedOperations){var b=t.ops.filter(function(e){return"Delete"===e.struct});b.length>0&&r.broadcastOps(b)}r.y.db.apply(t.ops)}}):Promise.reject("Unable to deliver message")}},{key:"_setSyncedWith",value:function(e){var t=this.connections[e];null!=t&&(t.isSynced=!0),e===this.currentSyncTarget&&(this.currentSyncTarget=null,this.findNextSyncTarget())}},{key:"parseMessageFromXml",value:function(e){function t(e){var n=!0,i=!1,a=void 0;try{for(var s,o=e.children[Symbol.iterator]();!(n=(s=o.next()).done);n=!0){var u=s.value;return"true"===u.getAttribute("isArray")?t(u):r(u)}}catch(c){i=!0,a=c}finally{try{!n&&o["return"]&&o["return"]()}finally{if(i)throw a}}}function r(e){var n={};for(var i in e.attrs){var a=e.attrs[i],s=parseInt(a,10);isNaN(s)||""+s!==a?n[i]=a:n[i]=s}for(var o in e.children){var u=o.name;"true"===o.getAttribute("isArray")?n[u]=t(o):n[u]=r(o)}return n}r(e)}},{key:"encodeMessageToXml",value:function(e,t){function r(e,t){for(var i in t){var a=t[i];null==i||(a.constructor===Object?r(e.c(i),a):a.constructor===Array?n(e.c(i),a):e.setAttribute(i,a))}}function n(e,t){e.setAttribute("isArray","true");var i=!0,a=!1,s=void 0;try{for(var o,u=t[Symbol.iterator]();!(i=(o=u.next()).done);i=!0){var c=o.value;c.constructor===Object?r(e.c("array-element"),c):n(e.c("array-element"),c)}}catch(l){a=!0,s=l}finally{try{!i&&u["return"]&&u["return"]()}finally{if(a)throw s}}}if(t.constructor===Object)r(e.c("y",{xmlns:"http://y.ninja/connector-stanza"}),t);else{if(t.constructor!==Array)throw new Error("I can't encode this json!");n(e.c("y",{xmlns:"http://y.ninja/connector-stanza"}),t)}}}]),t}();e.AbstractConnector=t}},{}],5:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var r=0;r0){i=!0;break}i&&e.push(r)}if(e.length>0){var s=getRandom(e),o=t.buffers[s],u=getRandom(Object.keys(o)),c=o[u].shift();0===o[u].length&&delete o[u];var l=t.users[s];return l.receiveMessage(c[0],c[1]).then(function(){return l.y.db.whenTransactionsFinished()},function(){})}return!1},flushAll:function(){return new Promise(function(e){function r(){var n=t.flushOne();if(n){for(;n;)n=t.flushOne();t.whenTransactionsFinished().then(r)}else n=t.flushOne(),n?n.then(function(){t.whenTransactionsFinished().then(r)}):e()}t.whenTransactionsFinished().then(r)})}};e.utils.globalRoom=t;var r=0,u=function(u){function c(e,a){if(n(this,c),void 0===a)throw new Error("Options must not be undefined!");a.role="master",a.forwardToSyncingClients=!1;var s=i(this,Object.getPrototypeOf(c).call(this,e,a));return s.setUserId(r++ +"").then(function(){t.addUser(s)}),s.globalRoom=t,s.syncingClientDuration=0,s}return a(c,u),s(c,[{key:"receiveMessage",value:function(e,t){return o(Object.getPrototypeOf(c.prototype),"receiveMessage",this).call(this,e,JSON.parse(JSON.stringify(t)))}},{key:"send",value:function(e,r){var n=t.buffers[e];null!=n&&(null==n[this.userId]&&(n[this.userId]=[]),n[this.userId].push(JSON.parse(JSON.stringify([this.userId,r]))))}},{key:"broadcast",value:function(e){for(var r in t.buffers){var n=t.buffers[r];null==n[this.userId]&&(n[this.userId]=[]),n[this.userId].push(JSON.parse(JSON.stringify([this.userId,e])))}}},{key:"isDisconnected",value:function(){return null==t.users[this.userId]}},{key:"reconnect",value:function(){return this.isDisconnected()&&(t.addUser(this),o(Object.getPrototypeOf(c.prototype),"reconnect",this).call(this)),e.utils.globalRoom.flushAll()}},{key:"disconnect",value:function(){return this.isDisconnected()||(t.removeUser(this.userId),o(Object.getPrototypeOf(c.prototype),"disconnect",this).call(this)),this.y.db.whenTransactionsFinished()}},{key:"flush",value:function(){var e=this;return async(regeneratorRuntime.mark(function r(){var n,i,a;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:n=t.buffers[e.userId];case 1:if(!(Object.keys(n).length>0)){r.next=9;break}return i=getRandom(Object.keys(n)),a=n[i].shift(),0===n[i].length&&delete n[i],r.next=7,this.receiveMessage(a[0],a[1]);case 7:r.next=1;break;case 9:return r.next=11,e.whenTransactionsFinished();case 11:case"end":return r.stop()}},r,this)}))}}]),c}(e.AbstractConnector);e.Test=u}},{}],6:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var r=0;r0||a.gc2.length>0?(a.y.isConnected()||console.warn("gc should be empty when disconnected!"),new Promise(function(e){a.requestTransaction(regeneratorRuntime.mark(function t(){var r,n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(null==a.y.connector||!a.y.connector.isSynced){t.next=10;break}r=0;case 2:if(!(r0&&(a.gcInterval=setTimeout(i,a.gcTimeout)),e();case 12:case"end":return t.stop()}},t,this)}))})):(a.gcTimeout>0&&(a.gcInterval=setTimeout(i,a.gcTimeout)),Promise.resolve())})}n(this,t),this.y=e;var a=this;this.userId=null;var s;this.userIdPromise=new Promise(function(e){s=e}),this.userIdPromise.resolve=s,this.forwardAppliedOperations=!1,this.listenersById={},this.listenersByIdExecuteNow=[],this.listenersByIdRequestPending=!1,this.initializedTypes={},this.waitingTransactions=[],this.transactionInProgress=!1,this.transactionIsFlushed=!1,"undefined"!=typeof YConcurrency_TestingMode&&(this.executeOrder=[]),this.gc1=[],this.gc2=[],this.gcTimeout=r.gcTimeout?r.gcTimeouts:5e4,this.garbageCollect=i,this.gcTimeout>0&&i(),this.repairCheckInterval=r.repairCheckInterval?r.repairCheckInterval:6e3,this.opsReceivedTimestamp=new Date,this.startRepairCheck()}return i(t,[{key:"startRepairCheck",value:function(){var e=this;this.repairCheckInterval>0&&(this.repairCheckIntervalHandler=setInterval(function(){new Date-e.opsReceivedTimestamp>e.repairCheckInterval&&Object.keys(e.listenersById).length>0&&(e.listenersById={},e.opsReceivedTimestamp=new Date,e.y.connector.repair())},this.repairCheckInterval))}},{key:"stopRepairCheck",value:function(){clearInterval(this.repairCheckIntervalHandler)}},{key:"queueGarbageCollector",value:function(e){this.y.isConnected()&&this.gc1.push(e)}},{key:"emptyGarbageCollector",value:function(){var e=this;return new Promise(function(t){var r=function n(){e.gc1.length>0||e.gc2.length>0?e.garbageCollect().then(n):t()};setTimeout(r,0)})}},{key:"addToDebug",value:function(){if("undefined"!=typeof YConcurrency_TestingMode){var e=Array.prototype.map.call(arguments,function(e){return"string"==typeof e?e:JSON.stringify(e)}).join("").replace(/"/g,"'").replace(/,/g,", ").replace(/:/g,": ");this.executeOrder.push(e)}}},{key:"getDebugData",value:function(){console.log(this.executeOrder.join("\n"))}},{key:"stopGarbageCollector",value:function(){var e=this;return new Promise(function(t){e.requestTransaction(regeneratorRuntime.mark(function r(){var n,i,a;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:n=e.gc1.concat(e.gc2),e.gc1=[],e.gc2=[],i=0;case 4:if(!(i1)){r.next=10;break}return r.delegateYield(this.getInsertionCleanStart([e.id[0],e.id[1]+1]),"t0",8);case 8:e=r.t0,n=!0;case 10:if(!n){r.next=15;break}return e.gc=!0,r.delegateYield(this.setOperation(e),"t1",13);case 13:return this.store.queueGarbageCollector(e.id),r.abrupt("return",!0);case 15:return r.abrupt("return",!1);case 16:case"end":return r.stop()}},r,this)})},{key:"removeFromGarbageCollector",value:function(t){function r(r){return!e.utils.compareIds(r,t.id)}this.gc1=this.gc1.filter(r),this.gc2=this.gc2.filter(r),delete t.gc}},{key:"destroy",value:regeneratorRuntime.mark(function a(){var e,t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:clearInterval(this.gcInterval),this.gcInterval=null,this.stopRepairCheck();for(e in this.initializedTypes)t=this.initializedTypes[e],null!=t._destroy?t._destroy():console.error("The type you included does not provide destroy functionality, it will remain in memory (updating your packages will help).");case 4:case"end":return r.stop()}},a,this)})},{key:"setUserId",value:function(e){if(!this.userIdPromise.inProgress){this.userIdPromise.inProgress=!0;var t=this;t.requestTransaction(regeneratorRuntime.mark(function r(){var n;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return t.userId=e,r.delegateYield(this.getState(e),"t0",2);case 2:n=r.t0,t.opClock=n.clock,t.userIdPromise.resolve(e);case 5:case"end":return r.stop()}},r,this)}))}return this.userIdPromise}},{key:"whenUserIdSet",value:function(e){this.userIdPromise.then(e)}},{key:"getNextOpId",value:function(e){if(null==e)throw new Error("getNextOpId expects the number of created ids to create!");if(null==this.userId)throw new Error("OperationStore not yet initialized!");var t=[this.userId,this.opClock];return this.opClock+=e,t}},{key:"apply",value:function(t){this.opsReceivedTimestamp=new Date;for(var r=0;r0)for(var r={op:t,missing:e.length},n=0;ns;s++)if(u=JSON.stringify([r.id[0],r.id[1]+s]), c=this.listenersById[u],delete this.listenersById[u],null!=c)for(l in c)d=c[l],0===--d.missing&&this.whenOperationsExist([],d.op);if(f=this.initializedTypes[JSON.stringify(r.parent)],null==r.parent){o.next=18;break}return o.delegateYield(t.isDeleted(r.parent),"t3",14);case 14:if(h=o.t3,!h){o.next=18;break}return o.delegateYield(t.deleteList(r.id),"t4",17);case 17:return o.abrupt("return");case 18:if(null==f){o.next=21;break}return p=e.utils.copyOperation(r),o.delegateYield(f._changed(t,p),"t5",21);case 21:if(r.deleted){o.next=35;break}g=null!=r.content?r.content.length:1,y=r.id,b=0;case 25:if(!(g>b)){o.next=35;break}return v=[y[0],y[1]+b],o.delegateYield(t.isDeleted(v),"t6",28);case 28:if(m=o.t6,!m){o.next=32;break}return k={struct:"Delete",target:v},o.delegateYield(this.tryExecute.call(t,k),"t7",32);case 32:b++,o.next=25;break;case 35:case"end":return o.stop()}},o,this)})},{key:"whenTransactionsFinished",value:function(){if(this.transactionInProgress){if(null==this.transactionsFinished){var e,t=new Promise(function(t){e=t});return this.transactionsFinished={resolve:e,promise:t},t}return this.transactionsFinished.promise}return Promise.resolve()}},{key:"getNextRequest",value:function(){return 0===this.waitingTransactions.length?this.transactionIsFlushed?(this.transactionInProgress=!1,this.transactionIsFlushed=!1,null!=this.transactionsFinished&&(this.transactionsFinished.resolve(),this.transactionsFinished=null),null):(this.transactionIsFlushed=!0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this.flush(),"t0",1);case 1:case"end":return e.stop()}},e,this)})):(this.transactionIsFlushed=!1,this.waitingTransactions.shift())}},{key:"requestTransaction",value:function(e,t){var r=this;this.waitingTransactions.push(e),this.transactionInProgress||(this.transactionInProgress=!0,setTimeout(function(){r.transact(r.getNextRequest())},0))}},{key:"getType",value:function(e){return this.initializedTypes[JSON.stringify(e)]}},{key:"initType",value:regeneratorRuntime.mark(function u(t,r){var n,i,a;return regeneratorRuntime.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:if(n=JSON.stringify(t),i=this.store.initializedTypes[n],null!=i){s.next=9;break}return s.delegateYield(this.getOperation(t),"t0",4);case 4:if(a=s.t0,null==a){s.next=9;break}return s.delegateYield(e[a.type].typeDefinition.initType.call(this,this.store,a,r),"t1",7);case 7:i=s.t1,this.store.initializedTypes[n]=i;case 9:return s.abrupt("return",i);case 10:case"end":return s.stop()}},u,this)})},{key:"createType",value:function(t,r){var n=t[0].struct;r=r||this.getNextOpId(1);var i=e.Struct[n].create(r);i.type=t[0].name,this.requestTransaction(regeneratorRuntime.mark(function s(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("_"!==i.id[0]){e.next=4;break}return e.delegateYield(this.setOperation(i),"t0",2);case 2:e.next=5;break;case 4:return e.delegateYield(this.applyCreatedOperations([i]),"t1",5);case 5:case"end":return e.stop()}},s,this)}));var a=e[i.type].typeDefinition.createType(this,i,t[1]);return this.initializedTypes[JSON.stringify(i.id)]=a,a}}]),t}();e.AbstractDatabase=t}},{}],7:[function(e,t,r){"use strict";t.exports=function(e){var t={Delete:{encode:function(e){return e},requiredOps:function(e){return[]},execute:regeneratorRuntime.mark(function r(e){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(this.deleteOperation(e.target,e.length||1),"t0",1);case 1:return t.abrupt("return",t.t0);case 2:case"end":return t.stop()}},r,this)})},Insert:{encode:function(e){var t={id:e.id,left:e.left,right:e.right,origin:e.origin,parent:e.parent,struct:e.struct};return null!=e.parentSub&&(t.parentSub=e.parentSub),e.hasOwnProperty("opContent")?t.opContent=e.opContent:t.content=e.content.slice(),t},requiredOps:function(t){var r=[];return null!=t.left&&r.push(t.left),null!=t.right&&r.push(t.right),null==t.origin||e.utils.compareIds(t.left,t.origin)||r.push(t.origin),r.push(t.parent),null!=t.opContent&&r.push(t.opContent),r},getDistanceToOrigin:regeneratorRuntime.mark(function n(t){var r,i;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(null!=t.left){n.next=4;break}return n.abrupt("return",0);case 4:return r=0,n.delegateYield(this.getInsertion(t.left),"t0",6);case 6:i=n.t0;case 7:if(e.utils.matchesId(i,t.origin)){n.next=17;break}if(r++,null!=i.left){n.next=13;break}return n.abrupt("break",17);case 13:return n.delegateYield(this.getInsertion(i.left),"t1",14);case 14:i=n.t1;case 15:n.next=7;break;case 17:return n.abrupt("return",r);case 18:case"end":return n.stop()}},n,this)}),execute:regeneratorRuntime.mark(function i(r){var n,a,s,o,u,c,l,d,f,h,p,g,y;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(a=[],null==r.origin){i.next=8;break}return i.delegateYield(this.getInsertionCleanEnd(r.origin),"t0",3);case 3:return s=i.t0,null==s.originOf&&(s.originOf=[]),s.originOf.push(r.id),i.delegateYield(this.setOperation(s),"t1",7);case 7:null!=s.right&&a.push(s.right);case 8:return i.delegateYield(t.Insert.getDistanceToOrigin.call(this,r),"t2",9);case 9:if(o=n=i.t2,null==r.left){i.next=23;break}return i.delegateYield(this.getInsertionCleanEnd(r.left),"t3",12);case 12:if(u=i.t3,e.utils.compareIds(r.left,r.origin)||null==u.right||a.push(u.right),null!=u.right){i.next=18;break}i.t4=null,i.next=20;break;case 18:return i.delegateYield(this.getOperation(u.right),"t5",19);case 19:i.t4=i.t5;case 20:u=i.t4,i.next=34;break;case 23:return i.delegateYield(this.getOperation(r.parent),"t6",24);case 24:if(c=i.t6,d=r.parentSub?c.map[r.parentSub]:c.start,null!=d){i.next=30;break}i.t7=null,i.next=32;break;case 30:return i.delegateYield(this.getOperation(d),"t8",31);case 31:i.t7=i.t8;case 32:l=i.t7,u=l;case 34:if(null==r.right){i.next=37;break}return a.push(r.right),i.delegateYield(this.getInsertionCleanStart(r.right),"t9",37);case 37:if(null==u||e.utils.compareIds(u.id,r.right)){i.next=59;break}return i.delegateYield(t.Insert.getDistanceToOrigin.call(this,u),"t10",40);case 40:if(f=i.t10,f!==n){i.next=45;break}u.id[0]f)){i.next=49;break}f>=n-o&&(r.left=e.utils.getLastId(u),o=n+1),i.next=50;break;case 49:return i.abrupt("break",62);case 50:if(n++,null==u.right){i.next=56;break}return i.delegateYield(this.getInsertion(u.right),"t11",53);case 53:u=i.t11,i.next=57;break;case 56:u=null;case 57:i.next=60;break;case 59:return i.abrupt("break",62);case 60:i.next=37;break;case 62:if(h=null,p=null,null!=c){i.next=67;break}return i.delegateYield(this.getOperation(r.parent),"t12",66);case 66:c=i.t12;case 67:if(null==r.left){i.next=75;break}return i.delegateYield(this.getInsertion(r.left),"t13",69);case 69:return h=i.t13,r.right=h.right,h.right=r.id,i.delegateYield(this.setOperation(h),"t14",73);case 73:i.next=76;break;case 75:r.right=r.parentSub?c.map[r.parentSub]||null:c.start;case 76:if(null==r.right){i.next=86;break}return i.delegateYield(this.getOperation(r.right),"t15",78);case 78:if(p=i.t15,p.left=e.utils.getLastId(r),null==p.gc){i.next=85;break}if(!(null!=p.content&&p.content.length>1)){i.next=84;break}return i.delegateYield(this.getInsertionCleanEnd(p.id),"t16",83);case 83:p=i.t16;case 84:this.store.removeFromGarbageCollector(p);case 85:return i.delegateYield(this.setOperation(p),"t17",86);case 86:if(null==r.parentSub){i.next=96;break}if(null!=h){i.next=90;break}return c.map[r.parentSub]=r.id,i.delegateYield(this.setOperation(c),"t18",90);case 90:if(null==r.right){i.next=92;break}return i.delegateYield(this.deleteOperation(r.right,1,!0),"t19",92);case 92:if(null==r.left){i.next=94;break}return i.delegateYield(this.deleteOperation(r.id,1,!0),"t20",94);case 94:i.next=100;break;case 96:if(null!=p&&null!=h){i.next=100;break}return null==p&&(c.end=e.utils.getLastId(r)),null==h&&(c.start=r.id),i.delegateYield(this.setOperation(c),"t21",100);case 100:g=0;case 101:if(!(g=0&&null!=n.right)){i.next=12;break}return i.delegateYield(this.getOperation(n.right),"t1",9);case 9:n=i.t1,i.next=13;break;case 12:return i.abrupt("break",15);case 13:i.next=5;break;case 15:return i.abrupt("return",r);case 16:case"end":return i.stop()}},s,this)}),map:regeneratorRuntime.mark(function o(e,t){var r,n;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:e=e.start,r=[];case 2:if(null==e){i.next=9;break}return i.delegateYield(this.getOperation(e),"t0",4);case 4:n=i.t0,n.deleted||r.push(t(n)),e=n.right,i.next=2;break;case 9:return i.abrupt("return",r);case 10:case"end":return i.stop()}},o,this)})},Map:{create:function(e){return{id:e,map:{},struct:"Map"}},encode:function(e){var t={struct:"Map",type:e.type,id:e.id,map:{}};return null!=e.requires&&(t.requires=e.requires),null!=e.info&&(t.info=e.info),t},requiredOps:function(){return[]},execute:regeneratorRuntime.mark(function u(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},u,this)}),get:regeneratorRuntime.mark(function c(e,t){var r,n;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(r=e.map[t],null==r){i.next=14;break}return i.delegateYield(this.getOperation(r),"t0",3);case 3:if(n=i.t0,null!=n&&!n.deleted){i.next=8;break}return i.abrupt("return",void 0);case 8:if(null!=n.opContent){i.next=12;break}return i.abrupt("return",n.content[0]);case 12:return i.delegateYield(this.getType(n.opContent),"t1",13);case 13:return i.abrupt("return",i.t1);case 14:case"end":return i.stop()}},c,this)})}};e.Struct=t}},{}],8:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var r=0;r0&&this.store.y.connector.broadcastOps(n);case 10:case"end":return r.stop()}},r,this)})},{key:"deleteList",value:regeneratorRuntime.mark(function a(e){var t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(null==e){r.next=15;break}return r.delegateYield(this.getOperation(e),"t0",2);case 2:if(e=r.t0,e.gc){r.next=12;break}return e.gc=!0,e.deleted=!0,r.delegateYield(this.setOperation(e),"t1",7);case 7:return t=null!=e.content?e.content.length:1,r.delegateYield(this.markDeleted(e.id,t),"t2",9);case 9:if(null==e.opContent){r.next=11;break}return r.delegateYield(this.deleteOperation(e.opContent),"t3",11);case 11:this.store.queueGarbageCollector(e.id);case 12:e=e.right,r.next=0;break;case 15:case"end":return r.stop()}},a,this)})},{key:"deleteOperation",value:regeneratorRuntime.mark(function s(e,t,r){var n,i,a,o,u,c,l;return regeneratorRuntime.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return null==t&&(t=1),s.delegateYield(this.markDeleted(e,t),"t0",2);case 2:if(!(t>0)){s.next=64;break}return n=!1,s.delegateYield(this.os.findWithUpperBound([e[0],e[1]+t-1]),"t1",5);case 5:if(i=s.t1,a=null!=i&&null!=i.content?i.content.length:1,!(null==i||i.id[0]!==e[0]||i.id[1]+a<=e[1])){s.next=12;break}i=null,t=0,s.next=22;break;case 12:if(i.deleted){s.next=21;break}if(!(i.id[1]e[1]+t)){s.next=21;break}return s.delegateYield(this.getInsertionCleanEnd([e[0],e[1]+t-1]),"t3",19);case 19:i=s.t3,a=i.content.length;case 21:t=i.id[1]-e[1];case 22:if(null==i){s.next=62;break}if(i.deleted){s.next=44;break}if(n=!0,i.deleted=!0,null==i.start){s.next=28;break}return s.delegateYield(this.deleteList(i.start),"t4",28);case 28:if(null==i.map){s.next=35;break}s.t5=regeneratorRuntime.keys(i.map);case 30:if((s.t6=s.t5()).done){s.next=35;break}return o=s.t6.value,s.delegateYield(this.deleteList(i.map[o]),"t7",33);case 33:s.next=30;break;case 35:if(null==i.opContent){s.next=37;break}return s.delegateYield(this.deleteOperation(i.opContent),"t8",37);case 37:if(null==i.requires){s.next=44;break}u=0;case 39:if(!(u0)){s.next=20;break}if(r.gc){s.next=11;break}r.len+=n,s.next=18;break;case 11:if(n=r.id[1]+r.len-e[1],!(t>n)){s.next=17;break}return r={id:[e[0],e[1]+n],len:t-n,gc:!1},s.delegateYield(this.ds.put(r),"t1",15);case 15:s.next=18;break;case 17:throw new Error("Cannot happen! (it dit though.. :()");case 18:s.next=21;break;case 20:return s.abrupt("return",r);case 21:s.next=25;break;case 23:return r={id:e,len:t,gc:!1},s.delegateYield(this.ds.put(r),"t2",25);case 25:s.next=29;break;case 27:return r={id:e,len:t,gc:!1},s.delegateYield(this.ds.put(r),"t3",29);case 29:return s.delegateYield(this.ds.findNext(r.id),"t4",30);case 30:if(i=s.t4,!(null!=i&&r.id[0]===i.id[0]&&r.id[1]+r.len>=i.id[1])){s.next=61;break}n=r.id[1]+r.len-i.id[1];case 33:if(!(n>=0)){s.next=61;break}if(!i.gc){s.next=44;break}if(r.len-=n,!(n>=i.len)){s.next=41;break}if(n-=i.len,!(n>0)){s.next=41;break}return s.delegateYield(this.ds.put(r),"t5",40);case 40:return s.delegateYield(this.markDeleted([i.id[0],i.id[1]+i.len],n),"t6",41);case 41:return s.abrupt("break",61);case 44:if(!(n>i.len)){s.next=56;break}return s.delegateYield(this.ds.findNext(i.id),"t7",46);case 46:return a=s.t7,s.delegateYield(this.ds["delete"](i.id),"t8",48);case 48:if(null!=a&&r.id[0]===a.id[0]){s.next=52;break}return s.abrupt("break",61);case 52:i=a,n=r.id[1]+r.len-i.id[1];case 54:s.next=59;break;case 56:return r.len+=i.len-n,s.delegateYield(this.ds["delete"](i.id),"t9",58);case 58:return s.abrupt("break",61);case 59:s.next=33;break;case 61:return s.delegateYield(this.ds.put(r),"t10",62);case 62:return s.abrupt("return",r);case 63:case"end":return s.stop()}},u,this)})},{key:"garbageCollectAfterSync",value:regeneratorRuntime.mark(function c(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(this.store.gc1.length>0||this.store.gc2.length>0)&&console.warn("gc should be empty after sync"),e.delegateYield(this.os.iterate(this,null,null,regeneratorRuntime.mark(function t(e){var r,n,i;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.gc){t.next=3;break}return delete e.gc,t.delegateYield(this.setOperation(e),"t0",3);case 3:if(null==e.parent){t.next=23;break}return t.delegateYield(this.isDeleted(e.parent),"t1",5);case 5:if(r=t.t1,!r){t.next=23;break}if(e.gc=!0,e.deleted){t.next=20;break}return t.delegateYield(this.markDeleted(e.id,null!=e.content?e.content.length:1),"t2",10);case 10:if(e.deleted=!0,null==e.opContent){t.next=13;break}return t.delegateYield(this.deleteOperation(e.opContent),"t3",13);case 13:if(null==e.requires){t.next=20;break}n=0;case 15:if(!(n0)){l.next=60;break}u=r.left,c=null;case 39:if(null==u){l.next=47;break}return l.delegateYield(this.getInsertion(u),"t11",41);case 41:if(c=l.t11,!c.deleted){l.next=44;break}return l.abrupt("break",47);case 44:u=c.left,l.next=39;break;case 47:l.t12=regeneratorRuntime.keys(r.originOf);case 48:if((l.t13=l.t12()).done){l.next=57;break}return d=l.t13.value,l.delegateYield(this.getOperation(r.originOf[d]),"t14",51);case 51:if(f=l.t14,null==f){l.next=55;break}return f.origin=u,l.delegateYield(this.setOperation(f),"t15",55);case 55:l.next=48;break;case 57:if(null==u){l.next=60;break}return null==c.originOf?c.originOf=r.originOf:c.originOf=r.originOf.concat(c.originOf),l.delegateYield(this.setOperation(c),"t16",60);case 60:if(null==r.origin){l.next=65;break}return l.delegateYield(this.getInsertion(r.origin),"t17",62);case 62:return h=l.t17,h.originOf=h.originOf.filter(function(r){return!e.utils.compareIds(t,r)}),l.delegateYield(this.setOperation(h),"t18",65);case 65:if(null==r.parent){l.next=68;break}return l.delegateYield(this.getOperation(r.parent),"t19",67);case 67:p=l.t19;case 68:if(null==p){l.next=73;break}if(g=!1,null!=r.parentSub?e.utils.compareIds(p.map[r.parentSub],r.id)&&(g=!0,null!=r.right?p.map[r.parentSub]=r.right:delete p.map[r.parentSub]):(e.utils.compareIds(p.start,r.id)&&(g=!0,p.start=r.right),e.utils.matchesId(r,p.end)&&(g=!0,p.end=r.left)),!g){l.next=73;break}return l.delegateYield(this.setOperation(p),"t20",73);case 73:return l.delegateYield(this.removeOperation(r.id),"t21",74);case 74:case"end":return l.stop()}},l,this)})},{key:"checkDeleteStoreForState",value:regeneratorRuntime.mark(function d(e){var t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.delegateYield(this.ds.findWithUpperBound([e.user,e.clock]),"t0",1);case 1:t=r.t0,null!=t&&t.id[0]===e.user&&t.gc&&(e.clock=Math.max(e.clock,t.id[1]+t.len));case 3:case"end":return r.stop()}},d,this)})},{key:"updateState",value:regeneratorRuntime.mark(function f(e){var t,r,n;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return i.delegateYield(this.getState(e),"t0",1);case 1:return t=i.t0,i.delegateYield(this.checkDeleteStoreForState(t),"t1",3);case 3:return i.delegateYield(this.getInsertion([e,t.clock]),"t2",4);case 4:r=i.t2,n=null!=r&&null!=r.content?r.content.length:1;case 6:if(!(null!=r&&e===r.id[0]&&r.id[1]<=t.clock&&r.id[1]+n>t.clock)){i.next=14;break}return t.clock+=n,i.delegateYield(this.checkDeleteStoreForState(t),"t3",9);case 9:return i.delegateYield(this.os.findNext(r.id),"t4",10);case 10:r=i.t4,n=null!=r&&null!=r.content?r.content.length:1,i.next=6;break;case 14:return i.delegateYield(this.setState(t),"t5",15);case 15:case"end":return i.stop()}},f,this)})},{key:"applyDeleteSet",value:regeneratorRuntime.mark(function h(e){var t,r,n,i,a,s,o,u,c,l,d;return regeneratorRuntime.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:t=[],f.t0=regeneratorRuntime.keys(e);case 2:if((f.t1=f.t0()).done){f.next=11;break}return r=f.t1.value,n=e[r],i=0,a=n[i],f.delegateYield(this.ds.iterate(this,[r,0],[r,Number.MAX_VALUE],regeneratorRuntime.mark(function h(e){var s;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(null==a){o.next=10;break}if(s=0,!(e.id[1]+e.len<=a[0])){o.next=6;break}return o.abrupt("break",10);case 6:a[0]=o[1])){f.next=36;break}return f.delegateYield(this.os.findWithUpperBound([o[0],u-1]),"t5",20);case 20:if(c=f.t5,null!=c){f.next=23;break}return f.abrupt("break",36);case 23:if(l=null!=c.content?c.content.length:1,!(c.id[0]!==o[0]||c.id[1]+l<=o[1])){f.next=26;break}return f.abrupt("break",36);case 26:if(!(c.id[1]+l>o[1]+o[2])){f.next=29;break}return f.delegateYield(this.getInsertionCleanEnd([o[0],o[1]+o[2]-1]),"t6",28);case 28:c=f.t6;case 29:if(!(c.id[1]1)){s.next=15;break}return i=n[0],a=e.Struct[i].create(t),a.type=n[1],s.delegateYield(this.setOperation(a),"t1",12);case 12:return s.abrupt("return",a);case 15:return console.error("Unexpected case. How can this happen?"),s.abrupt("return",null);case 18:case"end":return s.stop()}},Y,this)})},{key:"removeOperation",value:regeneratorRuntime.mark(function I(e){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(this.os["delete"](e),"t0",1);case 1:case"end":return t.stop()}},I,this)})},{key:"setState",value:regeneratorRuntime.mark(function R(e){var t;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return t={id:[e.user],clock:e.clock },r.delegateYield(this.ss.put(t),"t0",2);case 2:case"end":return r.stop()}},R,this)})},{key:"getState",value:regeneratorRuntime.mark(function S(e){var t,r;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.delegateYield(this.ss.find([e]),"t0",1);case 1:return t=n.t0,r=null==t?null:t.clock,null==r&&(r=0),n.abrupt("return",{user:e,clock:r});case 5:case"end":return n.stop()}},S,this)})},{key:"getStateVector",value:regeneratorRuntime.mark(function T(){var e;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e=[],t.delegateYield(this.ss.iterate(this,null,null,regeneratorRuntime.mark(function r(t){return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:e.push({user:t.id[0],clock:t.clock});case 1:case"end":return r.stop()}},r,this)})),"t0",2);case 2:return t.abrupt("return",e);case 3:case"end":return t.stop()}},T,this)})},{key:"getStateSet",value:regeneratorRuntime.mark(function C(){var e;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e={},t.delegateYield(this.ss.iterate(this,null,null,regeneratorRuntime.mark(function r(t){return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:e[t.id[0]]=t.clock;case 1:case"end":return r.stop()}},r,this)})),"t0",2);case 2:return t.abrupt("return",e);case 3:case"end":return t.stop()}},C,this)})},{key:"getOperations",value:regeneratorRuntime.mark(function E(t){var r,n,i,a,s,o,u,c,l,d,f;return regeneratorRuntime.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return null==t&&(t={}),r=[],h.delegateYield(this.getStateVector(),"t0",3);case 3:n=h.t0,i=!0,a=!1,s=void 0,h.prev=7,o=n[Symbol.iterator]();case 9:if(i=(u=o.next()).done){h.next=23;break}if(c=u.value,l=c.user,"_"!==l){h.next=14;break}return h.abrupt("continue",20);case 14:if(d=t[l]||0,!(d>0)){h.next=19;break}return h.delegateYield(this.getInsertion([l,d]),"t1",17);case 17:f=h.t1,null!=f&&(d=f.id[1],t[l]=d);case 19:return h.delegateYield(this.os.iterate(this,[l,d],[l,Number.MAX_VALUE],regeneratorRuntime.mark(function p(n){var i,a,s,o;return regeneratorRuntime.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:if(n=e.Struct[n.struct].encode(n),"Insert"===n.struct){u.next=5;break}r.push(n),u.next=27;break;case 5:if(!(null==n.right||n.right[1]<(t[n.right[0]]||0))){u.next=27;break}i=n,a=[n],s=n.right;case 9:if(null!=i.left){u.next=15;break}return n.left=null,r.push(n),e.utils.compareIds(i.id,n.id)||(i=e.Struct[n.struct].encode(i),i.right=a[a.length-1].id,r.push(i)),u.abrupt("break",27);case 15:return u.delegateYield(this.getInsertion(i.left),"t0",16);case 16:for(i=u.t0;a.length>0&&e.utils.matchesId(i,a[a.length-1].origin);)a.pop();if(!(i.id[1]<(t[i.id[0]]||0))){u.next=24;break}return n.left=e.utils.getLastId(i),r.push(n),u.abrupt("break",27);case 24:e.utils.matchesId(i,n.origin)?(n.left=n.origin,r.push(n),n=e.Struct[n.struct].encode(i),n.right=s,a.length>0&&console.log("This should not happen .. :( please report this"),a=[n]):(o=e.Struct[n.struct].encode(i),o.right=a[a.length-1].id,o.left=o.origin,r.push(o),a.push(i));case 25:u.next=9;break;case 27:case"end":return u.stop()}},p,this)})),"t2",20);case 20:i=!0,h.next=9;break;case 23:h.next=29;break;case 25:h.prev=25,h.t3=h["catch"](7),a=!0,s=h.t3;case 29:h.prev=29,h.prev=30,!i&&o["return"]&&o["return"]();case 32:if(h.prev=32,!a){h.next=35;break}throw s;case 35:return h.finish(32);case 36:return h.finish(29);case 37:return h.abrupt("return",r.reverse());case 38:case"end":return h.stop()}},E,this,[[7,25,29,37],[30,,32,36]])})},{key:"flush",value:regeneratorRuntime.mark(function j(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this.os.flush(),"t0",1);case 1:return e.delegateYield(this.ss.flush(),"t1",2);case 2:return e.delegateYield(this.ds.flush(),"t2",3);case 3:case"end":return e.stop()}},j,this)})}]),t}();e.Transaction=t}},{}],9:[function(e,t,r){"use strict";function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function c(e,t,r){null===e&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,t);if(void 0===n){var i=Object.getPrototypeOf(e);return null===i?void 0:c(i,t,r)}if("value"in n)return n.value;var a=n.get;return void 0===a?void 0:a.call(r)},u=function(){function e(e,t){for(var r=0;r=e.id[1]&&t[1]=0)){r.next=10;break}if(a=this.readBuffer[i],a.id[1]!==e[1]||a.id[0]!==e[0]){r.next=7;break}for(;i=0)){r.next=19;break}if(a=this.writeBuffer[i],a.id[1]!==e[1]||a.id[0]!==e[0]){r.next=16;break}return s=a,r.abrupt("break",19);case 16:i--,r.next=11;break;case 19:if(!(0>i&&void 0===n)){r.next=22;break}return r.delegateYield(o(Object.getPrototypeOf(t.prototype),"find",this).call(this,e),"t0",21);case 21:s=r.t0;case 22:if(null!=s){for(i=0;i=0)){s.next=11;break}if(i=this.writeBuffer[n],i.id[1]!==r[1]||i.id[0]!==r[0]){s.next=8;break}for(;nn)){s.next=17;break}if(a=this.writeBuffer[0],null===a.id[0]){s.next=15;break}return s.delegateYield(o(Object.getPrototypeOf(t.prototype),"put",this).call(this,a),"t0",15);case 15:for(n=0;n=c||u>=o)continue;if(s>u){if(c>s){if(o>c){i.content.splice(s-u),e.length=o-c,e.target=[e.target[0],c];continue}if(c===o)return void i.content.splice(s-u);var l={id:[i.id[0],o],content:i.content.slice(o-u),struct:"Insert"};return t.waiting.push(l),void i.content.splice(s-u)}}else{if(s===u){if(o>c){e.length=o-c,e.target=[e.target[0],c],i.content=[];continue}return c===o?void t.waiting.splice(r,1):(i.content=i.content.slice(o-u),void(i.id=[i.id[0],o]))}if(o>u){if(o>c)return t.waiting.splice(r,1),n({target:[e.target[0],s],length:u-s,struct:"Delete"}),void n({target:[e.target[0],c],length:c-o,struct:"Delete"});if(c===o){t.waiting.splice(r,1),r--,e.length-=a;continue}e.length=u-s,i.content.splice(0,o-u),i.id=[i.id[0],o];continue}}}}t.waiting.push(e)};null==e.key?r(e):this.waiting.push(e)}else this.waiting.push(e)}},{key:"awaitAndPrematurelyCall",value:function(t){this.awaiting++,t.map(e.utils.copyOperation).forEach(this.onevent)}},{key:"awaitOps",value:regeneratorRuntime.mark(function s(t,r,n){var i,a,o,u,c,l,d,f,h;return regeneratorRuntime.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return i=function(t){for(var r=[];t.length>0;)for(var n=0;n0&&this.awaiting--,!(0===this.awaiting&&this.waiting.length>0)){s.next=70;break}o=0;case 7:if(!(o=0;a--){var s=this.waiting[a];"Insert"===s.struct&&(e.utils.matchesId(s,i.left)?(s.right=i.id,i.left=s.left):e.utils.compareIds(s.id,i.right)&&(s.left=e.utils.getLastId(i),i.right=s.right))}}this._tryCallEvents(t)}},{key:"awaitedDeletes",value:function(t,r){for(var n=this.waiting.splice(this.waiting.length-t),i=0;i0;)for(var n=0;n0&&this.awaiting--,0===this.awaiting&&this.waiting.length>0){var r=[],n=[];this.waiting.forEach(function(e){"Delete"===e.struct?n.push(e):r.push(e)}),r=t(r),r.forEach(this.onevent),n.forEach(this.onevent),this.waiting=[]}}}]),r}(y);e.utils.EventHandler=b;var v=function k(){a(this,k)};e.utils.CustomType=v;var m=function x(e){if(a(this,x),null==e.struct||null==e.initType||null==e["class"]||null==e.name||null==e.createType)throw new Error("Custom type was not initialized correctly!");this.struct=e.struct,this.initType=e.initType,this.createType=e.createType,this["class"]=e["class"],this.name=e.name,null!=e.appendAdditionalInfo&&(this.appendAdditionalInfo=e.appendAdditionalInfo),this.parseArguments=(e.parseArguments||function(){return[this]}).bind(this),this.parseArguments.typeDefinition=this};e.utils.CustomTypeDefinition=m,e.utils.isTypeDefinition=function(t){if(null!=t){if(t instanceof e.utils.CustomTypeDefinition)return[t];if(t.constructor===Array&&t[0]instanceof e.utils.CustomTypeDefinition)return t;if(t instanceof Function&&t.typeDefinition instanceof e.utils.CustomTypeDefinition)return[t.typeDefinition]}return!1},e.utils.copyObject=t,e.utils.copyOperation=r,e.utils.smaller=c,e.utils.inDeletionRange=l,e.utils.compareIds=d,e.utils.matchesId=f,e.utils.getLastId=h,e.utils.createSmallLookupBuffer=g}},{}],10:[function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(t){for(var r=a.sourceDir||"/bower_components",n="undefined"!=typeof regeneratorRuntime?".js":".es6",i=[],s=0;s