From 710abbef92581b7b3ddfa06666cf2a7fea26ac89 Mon Sep 17 00:00:00 2001 From: Benjamin Pannell Date: Fri, 24 Apr 2015 07:50:54 +0200 Subject: [PATCH] Tweaked behaviour of cursor.each to differentiate it from map Now resolves the promise when all handlers have been dispatched but not necessarily fulfilled. --- lib/Cursor.js | 14 +++- lib/Cursor.js.map | 2 +- lib/Cursor.ts | 14 +++- test/Model.js | 197 +++++++++++++++++++++++----------------------- test/Model.js.map | 2 +- test/Model.ts | 195 ++++++++++++++++++++++----------------------- 6 files changed, 216 insertions(+), 208 deletions(-) diff --git a/lib/Cursor.js b/lib/Cursor.js index 898c58e..5a2e057 100644 --- a/lib/Cursor.js +++ b/lib/Cursor.js @@ -5,6 +5,10 @@ var Cursor = (function () { this.conditions = conditions; this.cursor = cursor; } + /** + * Counts the number of documents which are matched by this cursor + * @param {function(Error, Number)} callback A callback which is triggered when the result is available + */ Cursor.prototype.count = function (callback) { var _this = this; return new Promise(function (resolve, reject) { @@ -15,16 +19,20 @@ var Cursor = (function () { }); }).nodeify(callback); }; + /** + * Runs the specified handler over each instance in the query results + * @param {function(Instance)} handler The handler which is triggered for each element in the query + * @param {function(Error)} callback A callback which is triggered when all operations have been dispatched + */ Cursor.prototype.each = function (handler, callback) { var _this = this; return new Promise(function (resolve, reject) { - var promises = []; _this.cursor.each(function (err, item) { if (err) return reject(err); if (!item) - return resolve(Promise.all(promises).then(function () { return null; })); - promises.push(_this.model.handlers.documentReceived(_this.conditions, item, function (document, isNew, isPartial) { return _this.model.helpers.wrapDocument(document, isNew, isPartial); }).then(handler)); + return resolve(null); + _this.model.handlers.documentReceived(_this.conditions, item, function (document, isNew, isPartial) { return _this.model.helpers.wrapDocument(document, isNew, isPartial); }).then(handler); }); }).nodeify(callback); }; diff --git a/lib/Cursor.js.map b/lib/Cursor.js.map index e7be195..8960503 100644 --- a/lib/Cursor.js.map +++ b/lib/Cursor.js.map @@ -1 +1 @@ -{"version":3,"file":"Cursor.js","sourceRoot":"","sources":["Cursor.ts"],"names":["Cursor","Cursor.constructor","Cursor.count","Cursor.each","Cursor.map","Cursor.toArray","Cursor.next","Cursor.rewind","Cursor.sort","Cursor.limit","Cursor.skip"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Cursor.js","sourceRoot":"","sources":["Cursor.ts"],"names":["Cursor","Cursor.constructor","Cursor.count","Cursor.each","Cursor.map","Cursor.toArray","Cursor.next","Cursor.rewind","Cursor.sort","Cursor.limit","Cursor.skip"],"mappings":"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"} \ No newline at end of file diff --git a/lib/Cursor.ts b/lib/Cursor.ts index 104e62b..ee21a71 100644 --- a/lib/Cursor.ts +++ b/lib/Cursor.ts @@ -11,6 +11,10 @@ class Cursor { } + /** + * Counts the number of documents which are matched by this cursor + * @param {function(Error, Number)} callback A callback which is triggered when the result is available + */ count(callback?: general.Callback): Promise { return new Promise((resolve, reject) => { this.cursor.count(true,(err, count) => { @@ -20,13 +24,17 @@ class Cursor { }).nodeify(callback); } + /** + * Runs the specified handler over each instance in the query results + * @param {function(Instance)} handler The handler which is triggered for each element in the query + * @param {function(Error)} callback A callback which is triggered when all operations have been dispatched + */ each(handler: (instance: TInstance) => void, callback?: general.Callback): Promise { return new Promise((resolve, reject) => { - var promises = []; this.cursor.each((err, item: TDocument) => { if (err) return reject(err); - if (!item) return resolve(Promise.all(promises).then(() => null)); - promises.push(this.model.handlers.documentReceived(this.conditions, item,(document, isNew?, isPartial?) => this.model.helpers.wrapDocument(document, isNew, isPartial)).then(handler)); + if (!item) return resolve(null); + this.model.handlers.documentReceived(this.conditions, item,(document, isNew?, isPartial?) => this.model.helpers.wrapDocument(document, isNew, isPartial)).then(handler); }); }).nodeify(callback); } diff --git a/test/Model.js b/test/Model.js index c95d55d..820bcfa 100644 --- a/test/Model.js +++ b/test/Model.js @@ -324,118 +324,115 @@ describe("Model", function () { it("should return a cursor object", function () { chai.expect(model.find()).to.be.an.instanceof(Cursor); }); - describe("cursor", function () { - describe("each()", function () { - it("should call the handler with each document", function () { - return chai.expect(model.find().each(function (instance) { - chai.expect(instance).to.exist; - })).to.eventually.not.be.rejected; - }); - it("should return a promise immediately", function () { - chai.expect(model.find().each(function (i) { - })).to.be.instanceof(Promise); - }); - it("should resolve the promise after all handlers have been completed", function () { - var count = 0; - return chai.expect(model.find().each(function (instance) { - count++; - }).then(function () { return count; })).to.eventually.equal(5); - }); - it("should support using callbacks instead of promises", function (done) { - var count = 0; - model.find().each(function (i) { return count++; }, function (err) { - if (err) - return done(err); - chai.expect(count).to.eql(5); - return done(); - }); - }); + describe("each()", function () { + it("should call the handler with each document", function () { + return chai.expect(model.find().each(function (instance) { + chai.expect(instance).to.exist; + })).to.eventually.not.be.rejected; }); - describe("map()", function () { - it("should call the handler with documents", function () { - return chai.expect(model.find().map(function (instance) { - chai.expect(instance).to.exist; - })).to.eventually.not.be.rejected; - }); - it("should return the values from of each iteration", function () { - var count = 0; - return chai.expect(model.find().map(function (instance) { - return count++; - })).to.eventually.be.eql([0, 1, 2, 3, 4]); - }); - it("should return its result promise immediately", function () { - chai.expect(model.find().map(function (i) { return i; })).to.be.instanceof(Promise); - }); - it("should only resolve its result promise after all results have been resolved", function () { - var count = 0; - return chai.expect(model.find().map(function (instance) { - return count++; - }).then(function () { return count; })).to.eventually.equal(5); - }); - it("should support using callbacks instead of promises", function (done) { - var count = 0; - model.find().map(function (i) { return count++; }, function (err, results) { - if (err) - return done(err); - chai.expect(results).to.eql([0, 1, 2, 3, 4]); - return done(); - }); - }); + it("should return a promise immediately", function () { + chai.expect(model.find().each(function (i) { + })).to.be.instanceof(Promise); }); - describe("toArray()", function () { - it("should return all documents", function () { - return chai.expect(model.find().toArray()).to.eventually.exist.and.have.length(5); - }); - it("should support a callback style instead of promises", function (done) { - model.find().toArray(function (err, docs) { - if (err) - return done(err); - chai.expect(docs).to.exist.and.have.length(5); - return done(); - }); - }); + it("should resolve the promise after all handlers have been dispatched", function () { + var count = 0; + return chai.expect(model.find().each(function (instance) { + count++; + }).then(function () { return chai.expect(count).to.not.equal(5); }).then(function () { return Promise.delay(10); }).then(function () { return count; })).to.eventually.equal(5); }); - describe("count()", function () { - it("should return a promise", function () { - chai.expect(model.find().count()).to.be.instanceof(Promise); - }); - it("should resolve the promise with the number of documents which match the query", function () { - return chai.expect(model.find().count()).to.eventually.be.equal(5); - }); - it("should support using callbacks instead of promises", function (done) { - model.find().count(function (err, count) { - if (err) - return done(err); - chai.expect(count).to.equal(5); - return done(); - }); + it("should support using callbacks instead of promises", function (done) { + var count = 0; + model.find().each(function (i) { return count++; }, function (err) { + if (err) + return done(err); + Promise.delay(10).then(function () { return chai.expect(count).to.eql(5); }).then(function () { return done(); }); }); }); - describe("limit()", function () { - it("should return a new cursor", function () { - chai.expect(model.find().limit(1)).to.be.instanceof(Cursor); - }); - it("which should impose the limit", function () { - return chai.expect(model.find().limit(2).toArray()).to.eventually.have.length(2); - }); + }); + describe("map()", function () { + it("should call the handler with documents", function () { + return chai.expect(model.find().map(function (instance) { + chai.expect(instance).to.exist; + })).to.eventually.not.be.rejected; }); - describe("skip()", function () { - it("should return a new cursor", function () { - chai.expect(model.find().skip(1)).to.be.instanceof(Cursor); - }); - it("which should impose the limit", function () { - return chai.expect(model.find().skip(2).count()).to.eventually.be.equal(3); + it("should return the values from of each iteration", function () { + var count = 0; + return chai.expect(model.find().map(function (instance) { + return count++; + })).to.eventually.be.eql([0, 1, 2, 3, 4]); + }); + it("should return its result promise immediately", function () { + chai.expect(model.find().map(function (i) { return i; })).to.be.instanceof(Promise); + }); + it("should only resolve its result promise after all results have been resolved", function () { + var count = 0; + return chai.expect(model.find().map(function (instance) { + return count++; + }).then(function () { return count; })).to.eventually.equal(5); + }); + it("should support using callbacks instead of promises", function (done) { + var count = 0; + model.find().map(function (i) { return count++; }, function (err, results) { + if (err) + return done(err); + chai.expect(results).to.eql([0, 1, 2, 3, 4]); + return done(); }); }); - describe("sort()", function () { - it("should return a new cursor", function () { - chai.expect(model.find().sort({ answer: 1 })).to.be.instanceof(Cursor); + }); + describe("toArray()", function () { + it("should return all documents", function () { + return chai.expect(model.find().toArray()).to.eventually.exist.and.have.length(5); + }); + it("should support a callback style instead of promises", function (done) { + model.find().toArray(function (err, docs) { + if (err) + return done(err); + chai.expect(docs).to.exist.and.have.length(5); + return done(); }); - it("which should perform the sort", function () { - return chai.expect(model.find().sort({ answer: -1 }).map(function (i) { return i.answer; })).to.eventually.eql([14, 13, 12, 11, 10]); + }); + }); + describe("count()", function () { + it("should return a promise", function () { + chai.expect(model.find().count()).to.be.instanceof(Promise); + }); + it("should resolve the promise with the number of documents which match the query", function () { + return chai.expect(model.find().count()).to.eventually.be.equal(5); + }); + it("should support using callbacks instead of promises", function (done) { + model.find().count(function (err, count) { + if (err) + return done(err); + chai.expect(count).to.equal(5); + return done(); }); }); }); + describe("limit()", function () { + it("should return a new cursor", function () { + chai.expect(model.find().limit(1)).to.be.instanceof(Cursor); + }); + it("which should impose the limit", function () { + return chai.expect(model.find().limit(2).toArray()).to.eventually.have.length(2); + }); + }); + describe("skip()", function () { + it("should return a new cursor", function () { + chai.expect(model.find().skip(1)).to.be.instanceof(Cursor); + }); + it("which should impose the limit", function () { + return chai.expect(model.find().skip(2).count()).to.eventually.be.equal(3); + }); + }); + describe("sort()", function () { + it("should return a new cursor", function () { + chai.expect(model.find().sort({ answer: 1 })).to.be.instanceof(Cursor); + }); + it("which should perform the sort", function () { + return chai.expect(model.find().sort({ answer: -1 }).map(function (i) { return i.answer; })).to.eventually.eql([14, 13, 12, 11, 10]); + }); + }); describe("filtering", function () { it("should allow filtering using a selector", function () { return chai.expect(model.find({ answer: 10 }).toArray()).to.eventually.exist.and.have.length(1); diff --git a/test/Model.js.map b/test/Model.js.map index cacc62d..0b6046b 100644 --- a/test/Model.js.map +++ b/test/Model.js.map @@ -1 +1 @@ -{"version":3,"file":"Model.js","sourceRoot":"","sources":["Model.ts"],"names":["Test","Test.constructor"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Model.js","sourceRoot":"","sources":["Model.ts"],"names":["Test","Test.constructor"],"mappings":";;;;;;AACA,AADA,4CAA4C;AAC5C,IAAO,OAAO,WAAW,UAAU,CAAC,CAAC;AACrC,IAAO,MAAM,WAAW,eAAe,CAAC,CAAC;AACzC,IAAO,OAAO,WAAW,UAAU,CAAC,CAAC;AAOrC,IAAM,IAAI;IAASA,UAAbA,IAAIA,UAA6CA;IAAvDA,SAAMA,IAAIA;QAASC,8BAAoCA;IAGvDA,CAACA;IAADD,WAACA;AAADA,CAACA,AAHD,EAAmB,OAAO,CAAC,QAAQ,EAGlC;AAED,QAAQ,CAAC,OAAO,EAAC;IACb,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,OAAO,EAAE,EAAd,CAAc,CAAC,CAAC;IAE7B,QAAQ,CAAC,aAAa,EAAC;QACnB,EAAE,CAAC,yDAAyD,EAAC;YACzD,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAC;gBAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACvE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAC;YACjE,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACnE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAC;YAC9D,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAC;gBAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACrE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAE5E,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAC;gBAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACnE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAE5E,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAC;gBAAQ,CAAC,EAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACvE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAC;YAC3D,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAC;gBAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAEnE,IAAI,CAAC,MAAM,CAAC;gBACR,IAAI,OAAO,CAAC,KAAK,CAAW,IAAI,EAAC;gBAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAC;YAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAC;YAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAC;YAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAC;QACf,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;YAC7C,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAtD,CAAsD,CAAC,CAAC;QAC1F,EAAE,CAAC,wBAAwB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAtD,CAAsD,CAAC,CAAC;QAC1F,EAAE,CAAC,wBAAwB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAtD,CAAsD,CAAC,CAAC;QAC1F,EAAE,CAAC,yBAAyB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAvD,CAAuD,CAAC,CAAC;QAC5F,EAAE,CAAC,qBAAqB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAnD,CAAmD,CAAC,CAAC;QACpF,EAAE,CAAC,sBAAsB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAApD,CAAoD,CAAC,CAAC;QACtF,EAAE,CAAC,uBAAuB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAArD,CAAqD,CAAC,CAAC;QACxF,EAAE,CAAC,6BAA6B,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAA3D,CAA2D,CAAC,CAAC;QACpG,EAAE,CAAC,+BAA+B,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAA7D,CAA6D,CAAC,CAAC;QACxG,EAAE,CAAC,2BAA2B,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAzD,CAAyD,CAAC,CAAC;QAChG,EAAE,CAAC,6BAA6B,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAA3D,CAA2D,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAC;QAClB,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;YAC7C,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0BAA0B,EAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,8BAA8B,EAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAA7C,CAA6C,CAAC,CAAC;QAChF,EAAE,CAAC,sBAAsB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAA5C,CAA4C,CAAC,CAAC;QAC9E,EAAE,CAAC,uBAAuB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAA7C,CAA6C,CAAC,CAAC;QAChF,EAAE,CAAC,wBAAwB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAA9C,CAA8C,CAAC,CAAC;QAClF,EAAE,CAAC,qBAAqB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAA3C,CAA2C,CAAC,CAAC;QAC5E,EAAE,CAAC,6BAA6B,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAnD,CAAmD,CAAC,CAAC;QAC5F,EAAE,CAAC,wBAAwB,EAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAxD,CAAwD,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAC;QAChB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QACzB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAC;YACjD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAC;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC5B,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;YAC1D,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAC,UAAC,GAAG,EAAE,QAAQ;gBACtC,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAC;QAChB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QACzB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAC;YACjD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAC;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC5B,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;YAC1D,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAC,UAAC,GAAG,EAAE,QAAQ;gBACtC,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAC;QAChB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAC;YACxD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;YAC1D,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,OAAO;gBACtB,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAC;QACjB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAC;YACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5I,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAC;YAChD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAC,GAAG;gBAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC;YACrD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;gBACjC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;aACvB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;YAC1D,KAAK,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;gBACnB,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAC;QACb,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAC;YACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpI,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAC;YAChD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAC,GAAG;gBACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC;YACrD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;gBAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;aACvB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;YAC1D,KAAK,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,GAAG;gBACf,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAC;QACd,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAC;YACd,EAAE,CAAC,4CAA4C,EAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAC,QAAQ;oBAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;gBACnC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qCAAqC,EAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,CAAC;gBAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oEAAoE,EAAC;gBACpE,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAC,QAAQ;oBAC1C,KAAK,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC,IAAI,CAAC,cAAM,YAAK,EAAL,CAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9H,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAC,UAAC,IAAI;gBACzD,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,KAAK,EAAE,EAAP,CAAO,EAAC,UAAC,GAAG;oBAC/B,EAAE,CAAC,CAAC,GAAG,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAA5B,CAA4B,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,EAAE,EAAN,CAAM,CAAC,CAAC;gBAClF,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,EAAC;YACb,EAAE,CAAC,wCAAwC,EAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAC,QAAQ;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;gBACnC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAC;gBACjD,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAC,QAAQ;oBACzC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8CAA8C,EAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,QAAC,EAAD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6EAA6E,EAAC;gBAC7E,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAC,QAAQ;oBACzC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAM,YAAK,EAAL,CAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAC,UAAC,IAAI;gBACzD,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAK,EAAE,EAAP,CAAO,EAAC,UAAC,GAAG,EAAE,OAAO;oBACvC,EAAE,CAAC,CAAC,GAAG,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,WAAW,EAAC;YACjB,EAAE,CAAC,6BAA6B,EAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;gBAC1D,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,IAAI;oBAC3B,EAAE,CAAC,CAAC,GAAG,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,EAAC;YACf,EAAE,CAAC,yBAAyB,EAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+EAA+E,EAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAC,UAAC,IAAI;gBACzD,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAC,GAAG,EAAE,KAAK;oBAC1B,EAAE,CAAC,CAAC,GAAG,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,EAAC;YACf,EAAE,CAAC,4BAA4B,EAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,EAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAC;YACd,EAAE,CAAC,4BAA4B,EAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,EAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAC;YACd,EAAE,CAAC,4BAA4B,EAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,EAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrH,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,WAAW,EAAC;YACjB,EAAE,CAAC,yCAAyC,EAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iCAAiC,EAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBACvD,EAAE,EAAE,QAAQ,CAAC,EAAE;iBAClB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAFE,CAEF,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACpJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAC;QACf,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAC;YACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAC;YACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC,UAAC,IAAI;YAC1D,KAAK,CAAC,KAAK,CAAC,UAAC,GAAG,EAAE,IAAI;gBAClB,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAC;QACrB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,WAAW,EAAE,EAAnB,CAAmB,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAC;YACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAC;QACvB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACjG,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,WAAW,EAAE,EAAnB,CAAmB,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAC;QACnB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAhC,CAAgC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,WAAW,EAAE,EAAnB,CAAmB,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAC;YACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAC;QACrB,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAqB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,CAAC;gBACrE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;gBACd,EAAE,MAAM,EAAE,EAAE,EAAE;aACjB,CAAC,EAN0D,CAM1D,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAhC,CAAgC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,KAAK,CAAC,WAAW,EAAE,EAAnB,CAAmB,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAC;YACrD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/test/Model.ts b/test/Model.ts index efd9140..281bc56 100644 --- a/test/Model.ts +++ b/test/Model.ts @@ -114,7 +114,7 @@ describe("Model",() => { it("should expose cacheDirector",() => chai.expect(test).to.have.property('cacheDirector')); it("should expose Instance",() => chai.expect(test.Instance).to.exist.and.be.a('function')); }); - + describe("create()",() => { var model = new Iridium.Model(core, Test, 'test', { id: false, answer: Number }); @@ -215,7 +215,7 @@ describe("Model",() => { { answer: 14 } ])); }); - + after(() => { return model.remove().then(() => core.close()); }); @@ -240,7 +240,7 @@ describe("Model",() => { }); }); }); - + describe("findOne()",() => { var model = new Iridium.Model(core, Test, 'test', { id: false, answer: Number }); @@ -374,133 +374,128 @@ describe("Model",() => { chai.expect(model.find()).to.be.an.instanceof(Cursor); }); - describe("cursor",() => { - - describe("each()",() => { - it("should call the handler with each document",() => { - return chai.expect(model.find().each((instance) => { - chai.expect(instance).to.exist; - })).to.eventually.not.be.rejected; - }); - - it("should return a promise immediately",() => { - chai.expect(model.find().each(i => { })).to.be.instanceof(Promise); - }); + describe("each()",() => { + it("should call the handler with each document",() => { + return chai.expect(model.find().each((instance) => { + chai.expect(instance).to.exist; + })).to.eventually.not.be.rejected; + }); - it("should resolve the promise after all handlers have been completed",() => { - var count = 0; - return chai.expect(model.find().each((instance) => { - count++; - }).then(() => count)).to.eventually.equal(5); - }); + it("should return a promise immediately",() => { + chai.expect(model.find().each(i => { })).to.be.instanceof(Promise); + }); - it("should support using callbacks instead of promises",(done) => { - var count = 0; - model.find().each(i => count++,(err) => { - if (err) return done(err); - chai.expect(count).to.eql(5); - return done(); - }); - }); + it("should resolve the promise after all handlers have been dispatched",() => { + var count = 0; + return chai.expect(model.find().each((instance) => { + count++; + }).then(() => chai.expect(count).to.not.equal(5)).then(() => Promise.delay(10)).then(() => count)).to.eventually.equal(5); }); - describe("map()",() => { - it("should call the handler with documents",() => { - return chai.expect(model.find().map((instance) => { - chai.expect(instance).to.exist; - })).to.eventually.not.be.rejected; + it("should support using callbacks instead of promises",(done) => { + var count = 0; + model.find().each(i => count++,(err) => { + if (err) return done(err); + Promise.delay(10).then(() => chai.expect(count).to.eql(5)).then(() => done()); }); + }); + }); - it("should return the values from of each iteration",() => { - var count = 0; - return chai.expect(model.find().map((instance) => { - return count++; - })).to.eventually.be.eql([0,1,2,3,4]); - }); + describe("map()",() => { + it("should call the handler with documents",() => { + return chai.expect(model.find().map((instance) => { + chai.expect(instance).to.exist; + })).to.eventually.not.be.rejected; + }); - it("should return its result promise immediately",() => { - chai.expect(model.find().map(i => i)).to.be.instanceof(Promise); - }); + it("should return the values from of each iteration",() => { + var count = 0; + return chai.expect(model.find().map((instance) => { + return count++; + })).to.eventually.be.eql([0, 1, 2, 3, 4]); + }); - it("should only resolve its result promise after all results have been resolved",() => { - var count = 0; - return chai.expect(model.find().map((instance) => { - return count++; - }).then(() => count)).to.eventually.equal(5); - }); + it("should return its result promise immediately",() => { + chai.expect(model.find().map(i => i)).to.be.instanceof(Promise); + }); - it("should support using callbacks instead of promises",(done) => { - var count = 0; - model.find().map(i => count++,(err, results) => { - if (err) return done(err); - chai.expect(results).to.eql([0, 1, 2, 3, 4]); - return done(); - }); - }); + it("should only resolve its result promise after all results have been resolved",() => { + var count = 0; + return chai.expect(model.find().map((instance) => { + return count++; + }).then(() => count)).to.eventually.equal(5); }); - describe("toArray()",() => { - it("should return all documents",() => { - return chai.expect(model.find().toArray()).to.eventually.exist.and.have.length(5); + it("should support using callbacks instead of promises",(done) => { + var count = 0; + model.find().map(i => count++,(err, results) => { + if (err) return done(err); + chai.expect(results).to.eql([0, 1, 2, 3, 4]); + return done(); }); + }); + }); - it("should support a callback style instead of promises",(done) => { - model.find().toArray((err, docs) => { - if (err) return done(err); - chai.expect(docs).to.exist.and.have.length(5); - return done(); - }); - }); + describe("toArray()",() => { + it("should return all documents",() => { + return chai.expect(model.find().toArray()).to.eventually.exist.and.have.length(5); }); - describe("count()",() => { - it("should return a promise",() => { - chai.expect(model.find().count()).to.be.instanceof(Promise); + it("should support a callback style instead of promises",(done) => { + model.find().toArray((err, docs) => { + if (err) return done(err); + chai.expect(docs).to.exist.and.have.length(5); + return done(); }); + }); + }); - it("should resolve the promise with the number of documents which match the query",() => { - return chai.expect(model.find().count()).to.eventually.be.equal(5); - }); + describe("count()",() => { + it("should return a promise",() => { + chai.expect(model.find().count()).to.be.instanceof(Promise); + }); - it("should support using callbacks instead of promises",(done) => { - model.find().count((err, count) => { - if (err) return done(err); - chai.expect(count).to.equal(5); - return done(); - }); - }); + it("should resolve the promise with the number of documents which match the query",() => { + return chai.expect(model.find().count()).to.eventually.be.equal(5); }); - describe("limit()",() => { - it("should return a new cursor",() => { - chai.expect(model.find().limit(1)).to.be.instanceof(Cursor); + it("should support using callbacks instead of promises",(done) => { + model.find().count((err, count) => { + if (err) return done(err); + chai.expect(count).to.equal(5); + return done(); }); + }); + }); - it("which should impose the limit",() => { - return chai.expect(model.find().limit(2).toArray()).to.eventually.have.length(2); - }); + describe("limit()",() => { + it("should return a new cursor",() => { + chai.expect(model.find().limit(1)).to.be.instanceof(Cursor); }); - describe("skip()",() => { - it("should return a new cursor",() => { - chai.expect(model.find().skip(1)).to.be.instanceof(Cursor); - }); + it("which should impose the limit",() => { + return chai.expect(model.find().limit(2).toArray()).to.eventually.have.length(2); + }); + }); - it("which should impose the limit",() => { - return chai.expect(model.find().skip(2).count()).to.eventually.be.equal(3); - }); + describe("skip()",() => { + it("should return a new cursor",() => { + chai.expect(model.find().skip(1)).to.be.instanceof(Cursor); }); - describe("sort()",() => { - it("should return a new cursor",() => { - chai.expect(model.find().sort({ answer: 1 })).to.be.instanceof(Cursor); - }); + it("which should impose the limit",() => { + return chai.expect(model.find().skip(2).count()).to.eventually.be.equal(3); + }); + }); - it("which should perform the sort",() => { - return chai.expect(model.find().sort({ answer: -1 }).map(i => i.answer)).to.eventually.eql([14, 13, 12, 11, 10]); - }); + describe("sort()",() => { + it("should return a new cursor",() => { + chai.expect(model.find().sort({ answer: 1 })).to.be.instanceof(Cursor); }); + it("which should perform the sort",() => { + return chai.expect(model.find().sort({ answer: -1 }).map(i => i.answer)).to.eventually.eql([14, 13, 12, 11, 10]); + }); }); describe("filtering",() => {