From cd6011c7b2d1d7a8792831918c467a3e1eb071c2 Mon Sep 17 00:00:00 2001 From: Max Seiden <140dbs@gmail.com> Date: Sat, 23 Jan 2016 17:51:18 -0800 Subject: [PATCH 1/9] https://github.com/dcodeIO/bytebuffer.js/issues/66 - BitSet support --- dist/bytebuffer-dataview.js | 709 ++++++++++++++++------------- dist/bytebuffer-dataview.min.js | 72 +-- dist/bytebuffer-dataview.min.js.gz | Bin 7636 -> 7902 bytes dist/bytebuffer-dataview.min.map | 6 +- dist/bytebuffer-node.js | 487 ++++++++++++-------- dist/bytebuffer.js | 709 ++++++++++++++++------------- dist/bytebuffer.min.js | 171 +++---- dist/bytebuffer.min.js.gz | Bin 8305 -> 8552 bytes dist/bytebuffer.min.map | 6 +- src/types/bytes/bitset.js | 89 ++++ tests/suite.js | 31 +- 11 files changed, 1344 insertions(+), 936 deletions(-) create mode 100644 src/types/bytes/bitset.js diff --git a/dist/bytebuffer-dataview.js b/dist/bytebuffer-dataview.js index d5bab3c..a0d1182 100644 --- a/dist/bytebuffer-dataview.js +++ b/dist/bytebuffer-dataview.js @@ -392,6 +392,101 @@ return bb; }; + /** + * Writes the array as a bitset. + * @param {Array} value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.writeBitSet = function(value, offset) { + var relative = typeof offset === 'undefined'; + if (relative) offset = this.offset; + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); + if (typeof offset !== 'number' || offset % 1 !== 0) + throw TypeError("Illegal offset: "+offset+" (not an integer)"); + offset >>>= 0; + if (offset < 0 || offset + 0 > this.buffer.byteLength) + throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + } + + /** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ + ByteBufferPrototype.readBitSet = function(offset) { + var relative = typeof offset === 'undefined'; + if (relative) offset = this.offset; + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; + } /** * Reads the specified number of bytes. * @param {number} length Number of bytes to read @@ -2623,117 +2718,117 @@ // lxiv-embeddable - /** - * lxiv-embeddable (c) 2014 Daniel Wirtz - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/lxiv for details - */ - var lxiv = function() { - "use strict"; - - /** - * lxiv namespace. - * @type {!Object.} - * @exports lxiv - */ - var lxiv = {}; - - /** - * Character codes for output. - * @type {!Array.} - * @inner - */ - var aout = [ - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 - ]; - - /** - * Character codes for input. - * @type {!Array.} - * @inner - */ - var ain = []; - for (var i=0, k=aout.length; i>2)&0x3f]); - t = (b&0x3)<<4; - if ((b = src()) !== null) { - t |= (b>>4)&0xf; - dst(aout[(t|((b>>4)&0xf))&0x3f]); - t = (b&0xf)<<2; - if ((b = src()) !== null) - dst(aout[(t|((b>>6)&0x3))&0x3f]), - dst(aout[b&0x3f]); - else - dst(aout[t&0x3f]), - dst(61); - } else - dst(aout[t&0x3f]), - dst(61), - dst(61); - } - }; - - /** - * Decodes base64 char codes to bytes. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. - * @throws {Error} If a character code is invalid - */ - lxiv.decode = function(src, dst) { - var c, t1, t2; - function fail(c) { - throw Error("Illegal character code: "+c); - } - while ((c = src()) !== null) { - t1 = ain[c]; - if (typeof t1 === 'undefined') fail(c); - if ((c = src()) !== null) { - t2 = ain[c]; - if (typeof t2 === 'undefined') fail(c); - dst((t1<<2)>>>0|(t2&0x30)>>4); - if ((c = src()) !== null) { - t1 = ain[c]; - if (typeof t1 === 'undefined') - if (c === 61) break; else fail(c); - dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2); - if ((c = src()) !== null) { - t2 = ain[c]; - if (typeof t2 === 'undefined') - if (c === 61) break; else fail(c); - dst(((t1&0x3)<<6)>>>0|t2); - } - } - } - } - }; - - /** - * Tests if a string is valid base64. - * @param {string} str String to test - * @returns {boolean} `true` if valid, otherwise `false` - */ - lxiv.test = function(str) { - return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str); - }; - - return lxiv; - }(); + /** + * lxiv-embeddable (c) 2014 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/lxiv for details + */ + var lxiv = function() { + "use strict"; + + /** + * lxiv namespace. + * @type {!Object.} + * @exports lxiv + */ + var lxiv = {}; + + /** + * Character codes for output. + * @type {!Array.} + * @inner + */ + var aout = [ + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 + ]; + + /** + * Character codes for input. + * @type {!Array.} + * @inner + */ + var ain = []; + for (var i=0, k=aout.length; i>2)&0x3f]); + t = (b&0x3)<<4; + if ((b = src()) !== null) { + t |= (b>>4)&0xf; + dst(aout[(t|((b>>4)&0xf))&0x3f]); + t = (b&0xf)<<2; + if ((b = src()) !== null) + dst(aout[(t|((b>>6)&0x3))&0x3f]), + dst(aout[b&0x3f]); + else + dst(aout[t&0x3f]), + dst(61); + } else + dst(aout[t&0x3f]), + dst(61), + dst(61); + } + }; + + /** + * Decodes base64 char codes to bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + * @throws {Error} If a character code is invalid + */ + lxiv.decode = function(src, dst) { + var c, t1, t2; + function fail(c) { + throw Error("Illegal character code: "+c); + } + while ((c = src()) !== null) { + t1 = ain[c]; + if (typeof t1 === 'undefined') fail(c); + if ((c = src()) !== null) { + t2 = ain[c]; + if (typeof t2 === 'undefined') fail(c); + dst((t1<<2)>>>0|(t2&0x30)>>4); + if ((c = src()) !== null) { + t1 = ain[c]; + if (typeof t1 === 'undefined') + if (c === 61) break; else fail(c); + dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2); + if ((c = src()) !== null) { + t2 = ain[c]; + if (typeof t2 === 'undefined') + if (c === 61) break; else fail(c); + dst(((t1&0x3)<<6)>>>0|t2); + } + } + } + } + }; + + /** + * Tests if a string is valid base64. + * @param {string} str String to test + * @returns {boolean} `true` if valid, otherwise `false` + */ + lxiv.test = function(str) { + return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str); + }; + + return lxiv; + }(); // encodings/base64 @@ -3109,202 +3204,202 @@ // utfx-embeddable - /** - * utfx-embeddable (c) 2014 Daniel Wirtz - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/utfx for details - */ - var utfx = function() { - "use strict"; - - /** - * utfx namespace. - * @inner - * @type {!Object.} - */ - var utfx = {}; - - /** - * Maximum valid code point. - * @type {number} - * @const - */ - utfx.MAX_CODEPOINT = 0x10FFFF; - - /** - * Encodes UTF8 code points to UTF8 bytes. - * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point - * respectively `null` if there are no more code points left or a single numeric code point. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte - */ - utfx.encodeUTF8 = function(src, dst) { - var cp = null; - if (typeof src === 'number') - cp = src, - src = function() { return null; }; - while (cp !== null || (cp = src()) !== null) { - if (cp < 0x80) - dst(cp&0x7F); - else if (cp < 0x800) - dst(((cp>>6)&0x1F)|0xC0), - dst((cp&0x3F)|0x80); - else if (cp < 0x10000) - dst(((cp>>12)&0x0F)|0xE0), - dst(((cp>>6)&0x3F)|0x80), - dst((cp&0x3F)|0x80); - else - dst(((cp>>18)&0x07)|0xF0), - dst(((cp>>12)&0x3F)|0x80), - dst(((cp>>6)&0x3F)|0x80), - dst((cp&0x3F)|0x80); - cp = null; - } - }; - - /** - * Decodes UTF8 bytes to UTF8 code points. - * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there - * are no more bytes left. - * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. - * @throws {RangeError} If a starting byte is invalid in UTF8 - * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the - * remaining bytes. - */ - utfx.decodeUTF8 = function(src, dst) { - var a, b, c, d, fail = function(b) { - b = b.slice(0, b.indexOf(null)); - var err = Error(b.toString()); - err.name = "TruncatedError"; - err['bytes'] = b; - throw err; - }; - while ((a = src()) !== null) { - if ((a&0x80) === 0) - dst(a); - else if ((a&0xE0) === 0xC0) - ((b = src()) === null) && fail([a, b]), - dst(((a&0x1F)<<6) | (b&0x3F)); - else if ((a&0xF0) === 0xE0) - ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), - dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); - else if ((a&0xF8) === 0xF0) - ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), - dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); - else throw RangeError("Illegal starting byte: "+a); - } - }; - - /** - * Converts UTF16 characters to UTF8 code points. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @param {!function(number)} dst Code points destination as a function successively called with each converted code - * point. - */ - utfx.UTF16toUTF8 = function(src, dst) { - var c1, c2 = null; - while (true) { - if ((c1 = c2 !== null ? c2 : src()) === null) - break; - if (c1 >= 0xD800 && c1 <= 0xDFFF) { - if ((c2 = src()) !== null) { - if (c2 >= 0xDC00 && c2 <= 0xDFFF) { - dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); - c2 = null; continue; - } - } - } - dst(c1); - } - if (c2 !== null) dst(c2); - }; - - /** - * Converts UTF8 code points to UTF16 characters. - * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point - * respectively `null` if there are no more code points left or a single numeric code point. - * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. - * @throws {RangeError} If a code point is out of range - */ - utfx.UTF8toUTF16 = function(src, dst) { - var cp = null; - if (typeof src === 'number') - cp = src, src = function() { return null; }; - while (cp !== null || (cp = src()) !== null) { - if (cp <= 0xFFFF) - dst(cp); - else - cp -= 0x10000, - dst((cp>>10)+0xD800), - dst((cp%0x400)+0xDC00); - cp = null; - } - }; - - /** - * Converts and encodes UTF16 characters to UTF8 bytes. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` - * if there are no more characters left. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. - */ - utfx.encodeUTF16toUTF8 = function(src, dst) { - utfx.UTF16toUTF8(src, function(cp) { - utfx.encodeUTF8(cp, dst); - }); - }; - - /** - * Decodes and converts UTF8 bytes to UTF16 characters. - * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there - * are no more bytes left. - * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. - * @throws {RangeError} If a starting byte is invalid in UTF8 - * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. - */ - utfx.decodeUTF8toUTF16 = function(src, dst) { - utfx.decodeUTF8(src, function(cp) { - utfx.UTF8toUTF16(cp, dst); - }); - }; - - /** - * Calculates the byte length of an UTF8 code point. - * @param {number} cp UTF8 code point - * @returns {number} Byte length - */ - utfx.calculateCodePoint = function(cp) { - return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - }; - - /** - * Calculates the number of UTF8 bytes required to store UTF8 code points. - * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively - * `null` if there are no more code points left. - * @returns {number} The number of UTF8 bytes required - */ - utfx.calculateUTF8 = function(src) { - var cp, l=0; - while ((cp = src()) !== null) - l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - return l; - }; - - /** - * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. - * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. - */ - utfx.calculateUTF16asUTF8 = function(src) { - var n=0, l=0; - utfx.UTF16toUTF8(src, function(cp) { - ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - }); - return [n,l]; - }; - - return utfx; - }(); + /** + * utfx-embeddable (c) 2014 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/utfx for details + */ + var utfx = function() { + "use strict"; + + /** + * utfx namespace. + * @inner + * @type {!Object.} + */ + var utfx = {}; + + /** + * Maximum valid code point. + * @type {number} + * @const + */ + utfx.MAX_CODEPOINT = 0x10FFFF; + + /** + * Encodes UTF8 code points to UTF8 bytes. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte + */ + utfx.encodeUTF8 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, + src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp < 0x80) + dst(cp&0x7F); + else if (cp < 0x800) + dst(((cp>>6)&0x1F)|0xC0), + dst((cp&0x3F)|0x80); + else if (cp < 0x10000) + dst(((cp>>12)&0x0F)|0xE0), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + else + dst(((cp>>18)&0x07)|0xF0), + dst(((cp>>12)&0x3F)|0x80), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + cp = null; + } + }; + + /** + * Decodes UTF8 bytes to UTF8 code points. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the + * remaining bytes. + */ + utfx.decodeUTF8 = function(src, dst) { + var a, b, c, d, fail = function(b) { + b = b.slice(0, b.indexOf(null)); + var err = Error(b.toString()); + err.name = "TruncatedError"; + err['bytes'] = b; + throw err; + }; + while ((a = src()) !== null) { + if ((a&0x80) === 0) + dst(a); + else if ((a&0xE0) === 0xC0) + ((b = src()) === null) && fail([a, b]), + dst(((a&0x1F)<<6) | (b&0x3F)); + else if ((a&0xF0) === 0xE0) + ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), + dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); + else if ((a&0xF8) === 0xF0) + ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), + dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); + else throw RangeError("Illegal starting byte: "+a); + } + }; + + /** + * Converts UTF16 characters to UTF8 code points. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Code points destination as a function successively called with each converted code + * point. + */ + utfx.UTF16toUTF8 = function(src, dst) { + var c1, c2 = null; + while (true) { + if ((c1 = c2 !== null ? c2 : src()) === null) + break; + if (c1 >= 0xD800 && c1 <= 0xDFFF) { + if ((c2 = src()) !== null) { + if (c2 >= 0xDC00 && c2 <= 0xDFFF) { + dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); + c2 = null; continue; + } + } + } + dst(c1); + } + if (c2 !== null) dst(c2); + }; + + /** + * Converts UTF8 code points to UTF16 characters. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a code point is out of range + */ + utfx.UTF8toUTF16 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp <= 0xFFFF) + dst(cp); + else + cp -= 0x10000, + dst((cp>>10)+0xD800), + dst((cp%0x400)+0xDC00); + cp = null; + } + }; + + /** + * Converts and encodes UTF16 characters to UTF8 bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` + * if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + */ + utfx.encodeUTF16toUTF8 = function(src, dst) { + utfx.UTF16toUTF8(src, function(cp) { + utfx.encodeUTF8(cp, dst); + }); + }; + + /** + * Decodes and converts UTF8 bytes to UTF16 characters. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. + */ + utfx.decodeUTF8toUTF16 = function(src, dst) { + utfx.decodeUTF8(src, function(cp) { + utfx.UTF8toUTF16(cp, dst); + }); + }; + + /** + * Calculates the byte length of an UTF8 code point. + * @param {number} cp UTF8 code point + * @returns {number} Byte length + */ + utfx.calculateCodePoint = function(cp) { + return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }; + + /** + * Calculates the number of UTF8 bytes required to store UTF8 code points. + * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively + * `null` if there are no more code points left. + * @returns {number} The number of UTF8 bytes required + */ + utfx.calculateUTF8 = function(src) { + var cp, l=0; + while ((cp = src()) !== null) + l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + return l; + }; + + /** + * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. + * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. + */ + utfx.calculateUTF16asUTF8 = function(src) { + var n=0, l=0; + utfx.UTF16toUTF8(src, function(cp) { + ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }); + return [n,l]; + }; + + return utfx; + }(); // encodings/utf8 diff --git a/dist/bytebuffer-dataview.min.js b/dist/bytebuffer-dataview.min.js index 8a64045..fca5f2f 100644 --- a/dist/bytebuffer-dataview.min.js +++ b/dist/bytebuffer-dataview.min.js @@ -4,23 +4,25 @@ Released under the Apache License, Version 2.0 see: https://github.com/dcodeIO/bytebuffer.js for details */ -function t(k){function f(a,b,c){"undefined"===typeof a&&(a=f.DEFAULT_CAPACITY);"undefined"===typeof b&&(b=f.DEFAULT_ENDIAN);"undefined"===typeof c&&(c=f.DEFAULT_NOASSERT);if(!c){a|=0;if(0>a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?u:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c}function n(a){var b=0;return function(){return ba)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c}function n(a){var b=0;return function(){return b=p||(e.set((new Uint8Array(c.buffer)).subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset; b.offset=0;return b};f.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};f.type=function(){return ArrayBuffer};f.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return f.fromBase64(a,c);case "hex":return f.fromHex(a,c);case "binary":return f.fromBinary(a,c);case "utf8":return f.fromUTF8(a,c);case "debug":return f.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!== typeof a)throw TypeError("Illegal buffer");if(f.isByteBuffer(a))return b=d.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new f(0,c,e),0>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var e=this.slice(b,b+a);c&&(this.offset+=a);return e};d.writeBytes=d.append;d.writeInt8= -function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt8(b-1,a);c&&(this.offset+=1);return this}; -d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getInt8(a);b&&(this.offset+=1);return a};d.readByte=d.readInt8;d.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint8(b-1,a);c&&(this.offset+=1);return this};d.writeUInt8=d.writeUint8;d.readUint8=function(a){var b="undefined"===typeof a;b&&(a= -this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getUint8(a);b&&(this.offset+=1);return a};d.readUInt8=d.readUint8;d.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); -a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeShort=d.writeInt16;d.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!== -a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getInt16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readShort=d.readInt16;d.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b% -1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeUInt16=d.writeUint16;d.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getUint16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readUInt16=d.readUint16;d.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+ -" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeInt=d.writeInt32;d.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0> -a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getInt32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readInt=d.readInt32;d.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+ -0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeUInt32=d.writeUint32;d.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +c,e),b.limit=a.length,c=0;c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b, +h=a.length,d=h>>3,g=0,f;for(b+=this.writeVarint32(h,b);d--;)f=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]&1)<<7,this.writeByte(f,b++);if(g>3,d=0,g=[];for(a+=c.length;h--;)c=this.readByte(a++),g[d++]=!!(c&1),g[d++]=!!(c& +2),g[d++]=!!(c&4),g[d++]=!!(c&8),g[d++]=!!(c&16),g[d++]=!!(c&32),g[d++]=!!(c&64),g[d++]=!!(c&128);if(d>h++&1);b&&(this.offset=a);return g};d.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var e= +this.slice(b,b+a);c&&(this.offset+=a);return e};d.writeBytes=d.append;d.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength; +b>e&&this.resize((e*=2)>b?e:b);--b;this.view.setInt8(b,a);c&&(this.offset+=1);return this};d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getInt8(a);b&&(this.offset+=1);return a};d.readByte=d.readInt8;d.writeUint8= +function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);--b;this.view.setUint8(b,a);c&&(this.offset+=1); +return this};d.writeUInt8=d.writeUint8;d.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getUint8(a);b&&(this.offset+=1);return a};d.readUInt8=d.readUint8;d.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeShort=d.writeInt16;d.readInt16=function(a){var b="undefined"=== +typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getInt16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readShort=d.readInt16;d.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+ +a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeUInt16=d.writeUint16;d.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getUint16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readUInt16=d.readUint16;d.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b|| +0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeInt=d.writeInt32;d.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getInt32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readInt=d.readInt32;d.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)"); +b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeUInt32=d.writeUint32;d.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getUint32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readUInt32=d.readUint32;k&&(d.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)"); b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;this.littleEndian?(this.view.setInt32(b,a.low,!0),this.view.setInt32(b+4,a.high,!0)):(this.view.setInt32(b,a.high,!1),this.view.setInt32(b+4,a.low,!1));c&&(this.offset+=8);return this},d.writeLong=d.writeInt64,d.readInt64=function(a){var b= "undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=this.littleEndian?new k(this.view.getInt32(a,!0),this.view.getInt32(a+4,!0),!1):new k(this.view.getInt32(a+4,!1),this.view.getInt32(a,!1),!1);b&&(this.offset+=8);return a},d.readLong=d.readInt64,d.writeUint64=function(a,b){var c= @@ -42,19 +44,19 @@ a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeErro this.view.getUint8(a++),h|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),d=g&127,g&128&&(g=this.view.getUint8(a++),d|=(g&127)<<7,g&128))))))))))throw Error("Buffer overrun");e=k.fromBits(e|h<<28,h>>>4|d<<24,!1);return b?(this.offset=a,e):{value:e,length:a-c}},d.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=f.zigZagDecode64(a.value):a=f.zigZagDecode64(a);return a});d.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var e,h=a.length; if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(e=0;e>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}h=m.a(n(a))[1];b+=h+1;e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=h+1;m.b(n(a),function(a){this.view.setUint8(b++, a)}.bind(this));this.view.setUint8(b++,0);return c?(this.offset=b,this):h};d.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e,h=-1;m.c(function(){if(0===h)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+ -" < "+this.limit);h=this.view.getUint8(a++);return 0===h?null:h}.bind(this),e=s(),!0);return b?(this.offset=a,e()):{string:e(),length:a-c}};d.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); +" < "+this.limit);h=this.view.getUint8(a++);return 0===h?null:h}.bind(this),e=t(),!0);return b?(this.offset=a,e()):{string:e(),length:a-c}};d.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); }var e=b,h;h=m.a(n(a),this.noAssert)[1];b+=4+h;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4+h;this.view.setUint32(b,h,this.littleEndian);b+=4;m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+4+h)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+h));return c?(this.offset=b,this):b-e};d.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+ " (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,e=this.readUint32(a),e=this.readUTF8String(e,f.METRICS_BYTES,a+=4);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};f.METRICS_CHARS="c";f.METRICS_BYTES="b";d.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+ -" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e,h=b;e=m.a(n(a))[1];b+=e;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=e;m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));return c?(this.offset=b,this):b-h};d.writeString=d.writeUTF8String;f.calculateUTF8Chars=function(a){return m.a(n(a))[0]};f.calculateUTF8Bytes=function(a){return m.a(n(a))[1]};f.calculateString=f.calculateUTF8Bytes; +" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e,d=b;e=m.a(n(a))[1];b+=e;var f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=e;m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));return c?(this.offset=b,this):b-d};d.writeString=d.writeUTF8String;f.calculateUTF8Chars=function(a){return m.a(n(a))[0]};f.calculateUTF8Bytes=function(a){return m.a(n(a))[1]};f.calculateString=f.calculateUTF8Bytes; d.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var e="undefined"===typeof c;e&&(c=this.offset);"undefined"===typeof b&&(b=f.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var d=0,l=c,g; -if(b===f.METRICS_CHARS){g=s();m.f(function(){return d>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength); -}var p=c+a;m.c(function(){return c>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength); +}var p=c+a;m.c(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,d,l;d=m.a(n(a),this.noAssert)[1];l=f.calculateVarint32(d);b+=l+d;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=l+d;b+=this.writeVarint32(d,b);m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+d+l)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+d+l));return c?(this.offset=b,this):b-e};d.readVString= function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=this.readVarint32(a),e=this.readUTF8String(e.value,f.METRICS_BYTES,a+=e.length);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};d.append=function(a,b,c){if("number"===typeof b|| "string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var d=this.buffer.byteLength;c>d&&this.resize((d*=2)>c?d:c);(new Uint8Array(this.buffer,c-b)).set((new Uint8Array(a.buffer)).subarray(a.offset, a.limit));a.offset+=b;e&&(this.offset+=b);return this};d.appendTo=function(a,b){a.append(this,b);return this};d.assert=function(a){this.noAssert=!a;return this};d.capacity=function(){return this.buffer.byteLength};d.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};d.clone=function(a){var b=new f(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),(new Uint8Array(b.buffer)).set(this.buffer),b.view=new DataView(b.buffer)): (b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};d.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+ -b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=u,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c);(new Uint8Array(e)).set((new Uint8Array(this.buffer)).subarray(a,b));this.buffer=e;this.view=new DataView(e);0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"=== +b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c);(new Uint8Array(e)).set((new Uint8Array(this.buffer)).subarray(a,b));this.buffer=e;this.view=new DataView(e);0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"=== typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new f(0,this.littleEndian,this.noAssert);var c=b-a,e=new f(c,this.littleEndian,this.noAssert);e.offset=0;e.limit=c;0<=e.markedOffset&&(e.markedOffset-= a);this.copyTo(e,0,a,b);return e};d.copyTo=function(a,b,c,e){var d,l;if(!this.noAssert&&!f.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(l="undefined"===typeof b)?a.offset:b|0;c=(d="undefined"===typeof c)?this.offset:c|0;e="undefined"===typeof e?this.limit:e|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||e>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+c+" <= "+this.buffer.byteLength); var g=e-c;if(0===g)return a;a.ensureCapacity(b+g);(new Uint8Array(a.buffer)).set((new Uint8Array(this.buffer)).subarray(c,e),b);d&&(this.offset+=g);l&&(a.offset+=g);return this};d.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};d.fill=function(a,b,c){var e="undefined"===typeof b;e&&(b=this.offset);"string"===typeof a&&0a)throw RangeError("Illegal capacity: 0 <= "+a);}this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer"); b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call((new Uint8Array(this.buffer)).subarray(a,b));this.view=new DataView(this.buffer);return this};d.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+ this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};d.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone(); -c.offset=a;c.limit=b;return c};d.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return u;a=new ArrayBuffer(c-b); +c.offset=a;c.limit=b;return c};d.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b); (new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};d.toArrayBuffer=d.toBuffer;d.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug(); -case "columns":return this.m();default:throw Error("Unsupported encoding: "+a);}};var w=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],e=0,d=b.length;e>2&63]),d=(e&3)<<4,null!==(e=a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<<2,null!== -(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.g=function(a,b){function e(a){throw Error("Illegal character code: "+a);}for(var d,h,f;null!==(d=a());)if(h=c[d],"undefined"===typeof h&&e(d),null!==(d=a())&&(f=c[d],"undefined"===typeof f&&e(d),b(h<<2>>>0|(f&48)>>4),null!==(d=a()))){h=c[d];if("undefined"===typeof h)if(61===d)break;else e(d);b((f&15)<<4>>>0|(h&60)>>2);if(null!==(d=a())){f=c[d];if("undefined"===typeof f)if(61===d)break;else e(d);b((h&3)<<6>>>0| -f)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;w.h(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+("0"+e.toString(16).toUpperCase()):d+e.toString(16).toUpperCase(),a&&(f+=32e?String.fromCharCode(e):"."));++b;if(a&&0 -d.length;)d+=" ";g+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset?d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";g+=d+f+"\n"}return a?g:d};f.fromDebug=function(a,b,c){var e=a.length;b=new f((e+1)/3|0,b,c);for(var d=0,l=0,g,k=!1,m=!1,n=!1,r=!1,q=!1;d":if(!c){if(r){q=!0;break}r=!0}b.limit=l;k=!1;break;case "'":if(!c){if(n){q=!0;break}n=!0}b.markedOffset=l;k=!1;break;case " ":k=!1;break;default:if(!c&& -k){q=!0;break}g=parseInt(g+a.charAt(d++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),e;ae?c.push("0",e.toString(16)):c.push(e.toString(16));return c.join("")};f.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string"); -if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var e=a.length;b=new f(e/2|0,b);for(var d,l=0,g=0;ld||255e?c(e&127):(2048>e?c(e>>6&31|192):(65536>e? -c(e>>12&15|224):(c(e>>18&7|240),c(e>>12&63|128)),c(e>>6&63|128)),c(e&63|128)),e=null},f:function(a,c){function e(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;}for(var d,f,g,k;null!==(d=a());)if(0===(d&128))c(d);else if(192===(d&224))null===(f=a())&&e([d,f]),c((d&31)<<6|f&63);else if(224===(d&240))null!==(f=a())&&null!==(g=a())||e([d,f,g]),c((d&15)<<12|(f&63)<<6|g&63);else if(240===(d&248))null!==(f=a())&&null!==(g=a())&&null!==(k=a())||e([d,f, -g,k]),c((d&7)<<18|(f&63)<<12|(g&63)<<6|k&63);else throw RangeError("Illegal starting byte: "+d);},d:function(a,c){for(var e,d=null;null!==(e=null!==d?d:a());)55296<=e&&57343>=e&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(e-55296)+d-56320+65536),d=null):c(e);null!==d&&c(d)},e:function(a,c){var e=null;"number"===typeof a&&(e=a,a=function(){return null});for(;null!==e||null!==(e=a());)65535>=e?c(e):(e-=65536,c((e>>10)+55296),c(e%1024+56320)),e=null},b:function(b,c){a.d(b,function(b){a.i(b,c)})},c:function(b, -c){a.f(b,function(b){a.e(b,c)})},k:function(a){return 128>a?1:2048>a?2:65536>a?3:4},l:function(a){for(var c,e=0;null!==(c=a());)e+=128>c?1:2048>c?2:65536>c?3:4;return e},a:function(b){var c=0,e=0;a.d(b,function(a){++c;e+=128>a?1:2048>a?2:65536>a?3:4});return[c,e]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.c(function(){return a>2&63]),d=(e&3)<<4,null!==(e=a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<< +2,null!==(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.decode=function(a,b){function e(a){throw Error("Illegal character code: "+a);}for(var d,h,f;null!==(d=a());)if(h=c[d],"undefined"===typeof h&&e(d),null!==(d=a())&&(f=c[d],"undefined"===typeof f&&e(d),b(h<<2>>>0|(f&48)>>4),null!==(d=a()))){h=c[d];if("undefined"===typeof h)if(61===d)break;else e(d);b((f&15)<<4>>>0|(h&60)>>2);if(null!==(d=a())){f=c[d];if("undefined"===typeof f)if(61===d)break;else e(d); +b((h&3)<<6>>>0|f)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a=a|0;b=b|0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;x.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+="0"+e.toString(16).toUpperCase():d+=e.toString(16).toUpperCase(),a&&(f+=32e?String.fromCharCode(e): +"."));++b;if(a&&0d.length;)d+=" ";g+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset?d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";g+=d+f+"\n"}return a?g:d};f.fromDebug=function(a,b,c){var e=a.length;b=new f((e+1)/3|0,b,c);for(var d=0,l=0,g,k=!1,m=!1,n=!1,r=!1,q=!1;d":if(!c){if(r){q=!0;break}r=!0}b.limit=l;k=!1;break;case "'":if(!c){if(n){q=!0;break}n=!0}b.markedOffset=l;k=!1;break;case " ":k=!1; +break;default:if(!c&&k){q=!0;break}g=parseInt(g+a.charAt(d++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),e;ae?c.push("0",e.toString(16)):c.push(e.toString(16));return c.join("")};f.fromHex=function(a,b,c){if(!c){if("string"!== +typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var e=a.length;b=new f(e/2|0,b);for(var d,l=0,g=0;ld||255e?c(e&127):(2048>e?c(e>>6&31|192):(65536>e?c(e>>12&15|224):(c(e>>18&7|240),c(e>>12&63|128)),c(e>>6&63|128)),c(e&63|128)),e=null},h:function(a,c){function e(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;}for(var d,f,g,k;null!==(d=a());)if(0===(d&128))c(d);else if(192===(d&224))null===(f=a())&&e([d,f]),c((d&31)<<6|f&63);else if(224===(d&240))null!==(f=a())&&null!==(g=a())||e([d,f,g]),c((d&15)<<12|(f&63)<<6|g&63);else if(240===(d&248))null!== +(f=a())&&null!==(g=a())&&null!==(k=a())||e([d,f,g,k]),c((d&7)<<18|(f&63)<<12|(g&63)<<6|k&63);else throw RangeError("Illegal starting byte: "+d);},f:function(a,c){for(var e,d=null;null!==(e=null!==d?d:a());)55296<=e&&57343>=e&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(e-55296)+d-56320+65536),d=null):c(e);null!==d&&c(d)},g:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},b:function(b, +c){a.f(b,function(b){a.i(b,c)})},c:function(b,c){a.h(b,function(b){a.g(b,c)})},l:function(a){return 128>a?1:2048>a?2:65536>a?3:4},m:function(a){for(var c,d=0;null!==(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},a:function(b){var c=0,d=0;a.f(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer"); +a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.c(function(){return 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 IppK#d0K1Q7ZvX%Q literal 7636 zcmV;_9V_A=iwFpAR4rBl3u1Y6Wny(^W@U0MWMOn+c4=jIE^TRUE^2cC>^*C9+DNwF z^(!!SuS*@;1YurAmRTq9+)Y(B*-D(bcPHyfwOS2gjDZ4?OvdKF-_tLt^|G;zXPm54 zg@Z(&ew_C?{d)e)s`%d`=C6iBwy6KMtk@J)nhmF2c}1pUHmUsYcoF?kISlA5V1E;T z>*LvxRe3?^`FJ|2NXUNWc(EYgUWf-=Ii{2?mos?%ibUk+G5cy&-m?iKOBPgC(||21 zQOGLCb3)<2H)G1CONJ{yv&C{en^v0jhE-WI)~|$7G+*|gKOc>waOKzO?BcoT!|Qj? z)7>7<7L|ZSWIS0~&z@Vu)s#lOs>nV^m+{lkCfLUmT~>J~hT|y{tLN<#eFF58^urFzIuK9wxlqH!qh1I_TBM^4=3+W zkvksRJJ2I?zZ zkVpM!qf7P1KP2@Dn~tJzKEShoV5HJdY;J8)^8Ul?cW=FFyWXfbs_wA<=Jo06n-j%r z-cAEvy?FgU@w4OR+1GPAZk9_u6U@!CrL5`AY&!DJudXjcuLOu{JDyOFq0MQ?=&!*!uS@%pTLuY>1;Y2k5>A5jYKmm zFU!0Qgui$apY`ElcJWfN0(6onUE^7K_R)O3=H(`n86^?(;$lh{sIt6Ctsi)K=o%Ey zl*UZ3P}QH!K$}fXZE$r}U5XA?caoQgc@$I62X_228wVAj7l<<-Bd`Jv;4|_xZ{WEb z9FE*tEkMJ%i9nlt3eM2gmG~bh@O44v;yd<%wdNlGDur-Qe3c@L8;5h?$*|_lg_7ZH zAM?2!Y(oqPG>Lo+&RS5g)P4Z2Q#8>J@zjQ4>(NS88IsHrw8dTKu-r@MLLFJQr zmR$w;IR(8uM;T1XOL0;Zut)(X04cJ(AjqPN8fFMBzm6js+Sgc}>M9!cs(>1FNx`UA zsy_Vfw5olr@r0DT5HF!y6uGik$bQe1`8)gFEZ~o)WbrLqk9cVo6V0a!eLVfCXBG*- zI*&4CUh#Lb5R8nhCQ)D7I%VcQPM53se71l)SNvQ(yBc^3g)|sd;F;nw5&>h(Z*4%BrtjUKrQc3vIfTyfBi3Q4K6Tp48lLpfk z^)jhF)zhSljZDANT}f9lNcT)y>7-xPPm*%7PiLI5l^ID4Vl-2lUJ(LuwWIqTYfDS? zKk1lyO+gLN81CG^topkA@Sx>Sg) z;Y~@WFXb9ZvjVo!hc6GW0r;IrpZZXsPDhL_sxbL4uJY0ifS6 zM?W$3pqF4<3#ZVr53L@pZAxd1{3rRmRz9Wm+*Cj{I|xZMc|);JmQOYkQR_)Y6&W@Z zQjPu?N%paxDrWnSs!hfzj zZz#^zW0z+|oI4A2Oq7HShHc(&djE;>t@ZfixwTc>yx#pq*$zq-b9Lfc`1(RVi3X|*8g$*f1iIoe*gOI>3;L`i+`P- zeDKtLFoDf@U7WzHV(Q@y9wX-`^`?Twcl>F zJMh%%xB2q(KgOe9$moQxlxCTlWtFzg=Vs91q4O&=weKKkuaQ8$Vx^E3-ZkgfJqURm zbk&HtvS1jGCb4b(r>(z~N~?g$`119TM@`HP%avM~QEH)5YN3jlnAq^4codlP&?7Di zJ>ZCD_X?hI(ekib4TlH|psrg|AX(~52d2DvzNixQS&rX+5e%E*Izw%yOWRr5;0UpN zq-D5J7@wAimNFUj8koT+bc5MtZrr=OYDKx+x+6P4Jk|Q?V#Rk-0Y3RYxJW;FI}J=U zcV^bM)oRFXA91z8t~@*B{02I#`-~#Kpnv@}98Z|daVmc6@qG_h#`d2yPgw*r)K@#u z7?v9Y`gEP;g&c>0diIojB&B#hNbf#LWjE@g0WYgsZS@1{lY-w&>%u1)Of%AHDKp|U za8ATCwtve>YbgmptQo|ewlEr)!t*j552N?vQ5b!kF2^H~5gV{?7IR5)v34h2Obxri zx1quxI*>NcA8;E8fBT8;^TGDDlue}KcRFbIJMr&y(Czp7(smy7oyHocg&$C5-4<6O zL0W*WK^9q};Euz^yS`F`6*%R{`yj`T5-Lm7ykW!0c2NCyu3Zgm*`0mF(G+71C1a61 za|g0N>`>BFj>kl%fqhJRV3i$d#=GLsIwD6-&3vZiWrH^D4 zXi(uKWwczdk(Lv?b~n&+!U5wQn3p?Y^NbTVS5DYGcEZ$lP^R{JI*opzTXld(&}bLj zb-4rcptx8M9{|eOV8lJR{z%wX3D7GB=;EFL2%z?+BcSA01GHNV+QHoz)M>?_PRju8 z6oa;LCkE}tkX-|?T@2X5Z3!rVtiXV16+`UfmVgM80fyND?iYhL@qP@d1{h`s*enKh za5Dz&#*pR!okBqDNH7T^imwZuY2dxso6aiP+j!F;C|QFlcE=)}oG$c8zO$U-pX^N& z=}pIH0Ps(VBMc>lkn+y*FFnBBHHE=n9%+9W->$sVx+Or<*#IDv-QT3-E&Cpp_1)S8 zVx!In8+Sg)cOJ$6Qk&f6M(oP$3tK=eROJUQoU3j2(Gmil5c<}`Tp6^k0{AYbkV;~k z!qA57L2#3i&4S>@&P6vuun|8JLDZP?Xi5Sc4pJ82i0YC6C!Vl+DJ}Rt9X(;!h5c4r zy{!@zk~@pxn(Q}}?N{E4q_+Z-hhBiRy6li|Cuc|>A!D9L!_YN~LR9*4HjM}%wDR`j zn>TwLl+cJRmOrSc7kU?UVsk!2pPV!92!%Dry~pf52fwKMqDpMCaY>5FB4}Or#}J1I z8;HtMQH`5YQK8NgR_u<#S~-|Q=k-6pcE6YqHuLM4hv_P_=tj4MW4=87 zsi!g;3=ix7I5~a)`sD|i`Nc#mBY?k5J2|DAs4hj?P)F)bS|=qfy!`v|`ww1~R^3di zUe&M0I~3yHJ<P9j zcbts8akkDvWzSD4fO67Mnga{!;pf1l#VB{aUq0#Ri^Dk0gV?0SC_cH%IfK6l0}QFr-oobg>(yoMK>2Lo-3Jn6puu#=L6=m$i5tLpAE!h zXy?!F3l7QdE!VAT&6-+?3}YhAGIFm|~Oj#iX}4_n_5moS_xo;e2yK3;xOYihN`g zur$95iK!;>{Ej5f(ZxI@@qz&mUFtIu^;r>Gf2TELyrkj>4@j&>x=zQ(0iL+Qbs@>5 za4}CH!iEXx9bVC>+<_Qn9Eg!}AV$i8;8j3P1?y!3V1ey~B|&X+->`&Naf`4-^RxAo znQ`tAmY8eCN&*v^;VlYJbYQaGC`BLmnDgZdH+X?8TSaFtr_Nozt%vv5TF^hutx7Fh z81gfw;{&Go>C!G=1*DFa)(0+&UV1(?{cuLe4v`)>E`nl!TlKD<&84F3&4+0z)fXPGdbILP5{(gsK zLG*e41t(1x<52)j7+IJQ1qb!ZQ*ldZQFxSpwrBh(>+R8djWRRRCoITFH zgdMS6cJjC+zj-@B;X%kr`M#C3Zt{|Xij5jSP+Vcoz@nQu`ZFfds z8)X>inp-C}jV{g1_BKtH&qm{^a>ioSw1q=KKwJuH^)vQQxMR0hdCHkEETG&N;OlRt zYERGM?e6mMsic^x;H2I3_lQ19pQ5~+daGnbw8ujW+&Ikhj@CcsyFE|4g9cm0r*FqS zU^z)DP@SwqS(?&g>Pw;L%~3GpqL7q$G34H6KyImCqB(6dn}6Giuvkyha!YC1NLUD< z*3VuZaia-{g$6TaH|WhkEa4ayvkR~t%kmt{Fr1}1jx*Eg%x1WOiD9OhX0(i9msd6j z=LJvPg2nAS`8xwjDHxH(hcahnWm_&*pFqmXVT?twV*818oh}{Eg2WHJ*w67NHZ$| z=Z{U7s|9rh|@nn*VqOOUBq<@@A^%U+KNZoHi(#v5Q=w>J8T4#qQ0okVN+j=wy z8kSiH{~GJCNf=pd9cU)2B?8F%T8CJ^=_b~}KT5kpV#$>2A5s^UZve~0VFh8>a5A3f z!knCc0{!WffUYvM$s|_m4#m@5uyH)n;DS36L z!HVUpAVH^oDa+8!d8S)j zLYCe}ryoqw7G4dVO_!jS>XX?>&UUC5Jf|qTsV}RtQLXy#>E8YS{d=l7KAOqv()cM; za;oEkjHjuIyL7Tpa=L*$3B|E%KooIBI!~Yb85boCrH@%^ccoW)z1g^jN!5wdO}71S zcBN`!Ikj2L3FDz;iu}#0xx^(=VZ?R9Z%VvJaEVwGgz~8U!WK*Rlw2%!h^@z#FA+8- zd+VzrqP*ko_Nlr&qonk5hGUlJrYF5+QQT-v(%J}Vm4zZjxfUJ7lpyySa_Mg9(_ze} zs+F2a!ZOOG!jT*f`Q>#_GWR%BlrqyOvwwWz$_6z+W7oo^`qJ2VQ30oDG%L6rHpi#f z%tJiLI@YZx3S`pnQKkxZc;<*J$K74J(aekb)m1Cq;ylC3%^PCjQCelTcta)2BQ;}J z5Rsf>G~*?lBYrAbcFL(&s2<`;Mw zPcW~lhws^nJ#r<-|{kI?jNp2%=p#xtM$d+#JgPc z+vhuN-09#>7k7HNbAY=I+;wobiM#u_+rr&8?sjmui@QDCJ;1#N?m4*E#JzpoYvEoS z_d2-O#l0Tx9pHloKIr0u9zHn0PNM-I2R=>s?8B!8pEi6t@ae**2OlWsKsg7>IZ)1l zat@SppqvBc94O~NIS0x$pt3{Zs4|q+fCfw$L$tww{g3J+g;q+$F1%e zsKZZZV)rsc%zC{KI}F6uNczeD#Lmt<260_zN(4>t!*Jm8xlw+45Az5=q5)AG;Es-( zyPf?rzUkIxyZh+yu!YkF2X=7fLAlm041~kLvwB1ZC_Eh=HZ`mj11At2s9pkymc>`p z7Xxcj}ilj4-=`Qa@FgOd%P(6bBo6-)Dtykk#CzQ4`=04`bv63OS%iLXYz6 z-V60fxVy{j0O2$kKTGHuprHctZNA%>pH*>X4|iKV1lY`0h0vvJ-z`&VA@5_yffoVt z7mS?CqfwYxxM)Mgf+8*1Ot{-=Kr>C@?qpiJ9A4kh@cM>A!8IMxjx|K$!*Z z6-99CUl~r9^0%~x7hYI_6&H>n=6+mN&Ct4E>tVsVX>#ZfO14hs*G*HtZaP`BX(PUY zBe{bvxznDX8v=NVF!r5xo)%r@Af=_2I@Cs=0`h2wv z?Gm0r++?*5J(|oKG6|q=d*>MY|Msr#w^1C3zvr(=kjmnNWPyCN3nA5MrIYsIcAxI4 z>H~=##Fix8BztNa_}_2FA7BV+daZO1t9u~Wr%omXlp*Z6n6i)@X?;<2!JE<_kEgVy z$y3cjl*R$nTGsq{J;*U7Mb;GJObFH~xT!dvM}1HEGAA=`2dr{r7|s$e30%bL-La3s zW>B%pfA36P|}xnH1wy;#6TKA zwxx3|Mgn7C5R3#k=dy`Q(R1llTzM1I#C_;;!V!+WS%<1=3ZZsnbd4~vBWf=ZuQfs% zVVw(@%qVwcBZ2brfjBD!RV<&>uv4RF1V(O=#64t~8Q6s9QhYE1 z2@A|+3*16g0~jKOXe7Anq1`Oo<)vm(5ryL0B%n%_H)TuTOi)JQP&-6H;dd`T&|Ni4^hu^R(M(CWs8>|a0w|NJksk(*UQn!}&N>2`Zc*;H%T|?o+WhGWV1nN{St#M^rkg> z4PrW}mb~|R-ffeYt>Q%jB^Ozl)yOqyX_Q*Be$cbl*^o?JDjWn`d#1cMPSi9z4>giW z^cZh<_|+jRv1`KQfDQ^}CM(^2jlWt6m_&D$TNHO`7_<^fFFr9VSGW}EyAp4 z)A?E8=ik@43vJj<_g(PmZwYXl*&-MR1FrSG(cHyvuH3zDQ^uJCJ#&4pTW9`1j{0UC zwVK|@4fuUL6eOm1>}>2SJ_V4oKbQtMbu&)_`Ks}_oPL*+Ib~>?@*&|gDfjO_V#q%_ z!^1`jn|0-1$S<0wD?Wy>0#%bfW(`R+(Q-~f-8d!KxGJQn%0!Yld1EL)F zf+Rx^p_P0IEl?4Fe3Ae(AW=mt0_r~D_jxV|I*B65Q6bMq?vgAGwP9%_Zv9 z{X@O94m64?kOvC9Da*s66IJv>RrE`d+~VyXO&xZFbkGWi24|5@A^nx)%765h2BLe$ zWB=1+8iB_%z8;Q-GyK;?^2U>)?@l9HrlE*sqBs4U#rm8Av1y+tv$?nvSu&_zJhY)o zHBIdP!eRgIKt-0uP%|8wFzi@A;!I+n;D~dHE$V;+>fa)#u)E%CDd6Jx!$sd9i07rd_gDVyM5{FPD_#KW>;bcLZhrQrvl&bwg)}Gms zh*>U)ElOewBvzeHaNst9Js$KibBuD z&!oISV_8&ebW@bgLp-W_-ox6*#=m> zclKH|`4$RW_Ty)|1rn#} value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.writeBitSet = function(value, offset) { + var relative = typeof offset === 'undefined'; + if (relative) offset = this.offset; + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); + if (typeof offset !== 'number' || offset % 1 !== 0) + throw TypeError("Illegal offset: "+offset+" (not an integer)"); + offset >>>= 0; + if (offset < 0 || offset + 0 > this.buffer.length) + throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + } + + /** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ + ByteBufferPrototype.readBitSet = function(offset) { + var relative = typeof offset === 'undefined'; + if (relative) offset = this.offset; + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; + } /** * Reads the specified number of bytes. * @param {number} length Number of bytes to read @@ -3097,202 +3192,202 @@ module.exports = (function() { // utfx-embeddable - /** - * utfx-embeddable (c) 2014 Daniel Wirtz - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/utfx for details - */ - var utfx = function() { - "use strict"; - - /** - * utfx namespace. - * @inner - * @type {!Object.} - */ - var utfx = {}; - - /** - * Maximum valid code point. - * @type {number} - * @const - */ - utfx.MAX_CODEPOINT = 0x10FFFF; - - /** - * Encodes UTF8 code points to UTF8 bytes. - * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point - * respectively `null` if there are no more code points left or a single numeric code point. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte - */ - utfx.encodeUTF8 = function(src, dst) { - var cp = null; - if (typeof src === 'number') - cp = src, - src = function() { return null; }; - while (cp !== null || (cp = src()) !== null) { - if (cp < 0x80) - dst(cp&0x7F); - else if (cp < 0x800) - dst(((cp>>6)&0x1F)|0xC0), - dst((cp&0x3F)|0x80); - else if (cp < 0x10000) - dst(((cp>>12)&0x0F)|0xE0), - dst(((cp>>6)&0x3F)|0x80), - dst((cp&0x3F)|0x80); - else - dst(((cp>>18)&0x07)|0xF0), - dst(((cp>>12)&0x3F)|0x80), - dst(((cp>>6)&0x3F)|0x80), - dst((cp&0x3F)|0x80); - cp = null; - } - }; - - /** - * Decodes UTF8 bytes to UTF8 code points. - * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there - * are no more bytes left. - * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. - * @throws {RangeError} If a starting byte is invalid in UTF8 - * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the - * remaining bytes. - */ - utfx.decodeUTF8 = function(src, dst) { - var a, b, c, d, fail = function(b) { - b = b.slice(0, b.indexOf(null)); - var err = Error(b.toString()); - err.name = "TruncatedError"; - err['bytes'] = b; - throw err; - }; - while ((a = src()) !== null) { - if ((a&0x80) === 0) - dst(a); - else if ((a&0xE0) === 0xC0) - ((b = src()) === null) && fail([a, b]), - dst(((a&0x1F)<<6) | (b&0x3F)); - else if ((a&0xF0) === 0xE0) - ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), - dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); - else if ((a&0xF8) === 0xF0) - ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), - dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); - else throw RangeError("Illegal starting byte: "+a); - } - }; - - /** - * Converts UTF16 characters to UTF8 code points. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @param {!function(number)} dst Code points destination as a function successively called with each converted code - * point. - */ - utfx.UTF16toUTF8 = function(src, dst) { - var c1, c2 = null; - while (true) { - if ((c1 = c2 !== null ? c2 : src()) === null) - break; - if (c1 >= 0xD800 && c1 <= 0xDFFF) { - if ((c2 = src()) !== null) { - if (c2 >= 0xDC00 && c2 <= 0xDFFF) { - dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); - c2 = null; continue; - } - } - } - dst(c1); - } - if (c2 !== null) dst(c2); - }; - - /** - * Converts UTF8 code points to UTF16 characters. - * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point - * respectively `null` if there are no more code points left or a single numeric code point. - * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. - * @throws {RangeError} If a code point is out of range - */ - utfx.UTF8toUTF16 = function(src, dst) { - var cp = null; - if (typeof src === 'number') - cp = src, src = function() { return null; }; - while (cp !== null || (cp = src()) !== null) { - if (cp <= 0xFFFF) - dst(cp); - else - cp -= 0x10000, - dst((cp>>10)+0xD800), - dst((cp%0x400)+0xDC00); - cp = null; - } - }; - - /** - * Converts and encodes UTF16 characters to UTF8 bytes. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` - * if there are no more characters left. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. - */ - utfx.encodeUTF16toUTF8 = function(src, dst) { - utfx.UTF16toUTF8(src, function(cp) { - utfx.encodeUTF8(cp, dst); - }); - }; - - /** - * Decodes and converts UTF8 bytes to UTF16 characters. - * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there - * are no more bytes left. - * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. - * @throws {RangeError} If a starting byte is invalid in UTF8 - * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. - */ - utfx.decodeUTF8toUTF16 = function(src, dst) { - utfx.decodeUTF8(src, function(cp) { - utfx.UTF8toUTF16(cp, dst); - }); - }; - - /** - * Calculates the byte length of an UTF8 code point. - * @param {number} cp UTF8 code point - * @returns {number} Byte length - */ - utfx.calculateCodePoint = function(cp) { - return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - }; - - /** - * Calculates the number of UTF8 bytes required to store UTF8 code points. - * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively - * `null` if there are no more code points left. - * @returns {number} The number of UTF8 bytes required - */ - utfx.calculateUTF8 = function(src) { - var cp, l=0; - while ((cp = src()) !== null) - l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - return l; - }; - - /** - * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. - * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. - */ - utfx.calculateUTF16asUTF8 = function(src) { - var n=0, l=0; - utfx.UTF16toUTF8(src, function(cp) { - ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - }); - return [n,l]; - }; - - return utfx; - }(); + /** + * utfx-embeddable (c) 2014 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/utfx for details + */ + var utfx = function() { + "use strict"; + + /** + * utfx namespace. + * @inner + * @type {!Object.} + */ + var utfx = {}; + + /** + * Maximum valid code point. + * @type {number} + * @const + */ + utfx.MAX_CODEPOINT = 0x10FFFF; + + /** + * Encodes UTF8 code points to UTF8 bytes. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte + */ + utfx.encodeUTF8 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, + src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp < 0x80) + dst(cp&0x7F); + else if (cp < 0x800) + dst(((cp>>6)&0x1F)|0xC0), + dst((cp&0x3F)|0x80); + else if (cp < 0x10000) + dst(((cp>>12)&0x0F)|0xE0), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + else + dst(((cp>>18)&0x07)|0xF0), + dst(((cp>>12)&0x3F)|0x80), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + cp = null; + } + }; + + /** + * Decodes UTF8 bytes to UTF8 code points. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the + * remaining bytes. + */ + utfx.decodeUTF8 = function(src, dst) { + var a, b, c, d, fail = function(b) { + b = b.slice(0, b.indexOf(null)); + var err = Error(b.toString()); + err.name = "TruncatedError"; + err['bytes'] = b; + throw err; + }; + while ((a = src()) !== null) { + if ((a&0x80) === 0) + dst(a); + else if ((a&0xE0) === 0xC0) + ((b = src()) === null) && fail([a, b]), + dst(((a&0x1F)<<6) | (b&0x3F)); + else if ((a&0xF0) === 0xE0) + ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), + dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); + else if ((a&0xF8) === 0xF0) + ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), + dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); + else throw RangeError("Illegal starting byte: "+a); + } + }; + + /** + * Converts UTF16 characters to UTF8 code points. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Code points destination as a function successively called with each converted code + * point. + */ + utfx.UTF16toUTF8 = function(src, dst) { + var c1, c2 = null; + while (true) { + if ((c1 = c2 !== null ? c2 : src()) === null) + break; + if (c1 >= 0xD800 && c1 <= 0xDFFF) { + if ((c2 = src()) !== null) { + if (c2 >= 0xDC00 && c2 <= 0xDFFF) { + dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); + c2 = null; continue; + } + } + } + dst(c1); + } + if (c2 !== null) dst(c2); + }; + + /** + * Converts UTF8 code points to UTF16 characters. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a code point is out of range + */ + utfx.UTF8toUTF16 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp <= 0xFFFF) + dst(cp); + else + cp -= 0x10000, + dst((cp>>10)+0xD800), + dst((cp%0x400)+0xDC00); + cp = null; + } + }; + + /** + * Converts and encodes UTF16 characters to UTF8 bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` + * if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + */ + utfx.encodeUTF16toUTF8 = function(src, dst) { + utfx.UTF16toUTF8(src, function(cp) { + utfx.encodeUTF8(cp, dst); + }); + }; + + /** + * Decodes and converts UTF8 bytes to UTF16 characters. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. + */ + utfx.decodeUTF8toUTF16 = function(src, dst) { + utfx.decodeUTF8(src, function(cp) { + utfx.UTF8toUTF16(cp, dst); + }); + }; + + /** + * Calculates the byte length of an UTF8 code point. + * @param {number} cp UTF8 code point + * @returns {number} Byte length + */ + utfx.calculateCodePoint = function(cp) { + return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }; + + /** + * Calculates the number of UTF8 bytes required to store UTF8 code points. + * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively + * `null` if there are no more code points left. + * @returns {number} The number of UTF8 bytes required + */ + utfx.calculateUTF8 = function(src) { + var cp, l=0; + while ((cp = src()) !== null) + l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + return l; + }; + + /** + * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. + * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. + */ + utfx.calculateUTF16asUTF8 = function(src) { + var n=0, l=0; + utfx.UTF16toUTF8(src, function(cp) { + ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }); + return [n,l]; + }; + + return utfx; + }(); // encodings/utf8 diff --git a/dist/bytebuffer.js b/dist/bytebuffer.js index 476756b..9c78984 100644 --- a/dist/bytebuffer.js +++ b/dist/bytebuffer.js @@ -391,6 +391,101 @@ return bb; }; + /** + * Writes the array as a bitset. + * @param {Array} value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.writeBitSet = function(value, offset) { + var relative = typeof offset === 'undefined'; + if (relative) offset = this.offset; + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); + if (typeof offset !== 'number' || offset % 1 !== 0) + throw TypeError("Illegal offset: "+offset+" (not an integer)"); + offset >>>= 0; + if (offset < 0 || offset + 0 > this.buffer.byteLength) + throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + } + + /** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ + ByteBufferPrototype.readBitSet = function(offset) { + var relative = typeof offset === 'undefined'; + if (relative) offset = this.offset; + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; + } /** * Reads the specified number of bytes. * @param {number} length Number of bytes to read @@ -2908,117 +3003,117 @@ // lxiv-embeddable - /** - * lxiv-embeddable (c) 2014 Daniel Wirtz - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/lxiv for details - */ - var lxiv = function() { - "use strict"; - - /** - * lxiv namespace. - * @type {!Object.} - * @exports lxiv - */ - var lxiv = {}; - - /** - * Character codes for output. - * @type {!Array.} - * @inner - */ - var aout = [ - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 - ]; - - /** - * Character codes for input. - * @type {!Array.} - * @inner - */ - var ain = []; - for (var i=0, k=aout.length; i>2)&0x3f]); - t = (b&0x3)<<4; - if ((b = src()) !== null) { - t |= (b>>4)&0xf; - dst(aout[(t|((b>>4)&0xf))&0x3f]); - t = (b&0xf)<<2; - if ((b = src()) !== null) - dst(aout[(t|((b>>6)&0x3))&0x3f]), - dst(aout[b&0x3f]); - else - dst(aout[t&0x3f]), - dst(61); - } else - dst(aout[t&0x3f]), - dst(61), - dst(61); - } - }; - - /** - * Decodes base64 char codes to bytes. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. - * @throws {Error} If a character code is invalid - */ - lxiv.decode = function(src, dst) { - var c, t1, t2; - function fail(c) { - throw Error("Illegal character code: "+c); - } - while ((c = src()) !== null) { - t1 = ain[c]; - if (typeof t1 === 'undefined') fail(c); - if ((c = src()) !== null) { - t2 = ain[c]; - if (typeof t2 === 'undefined') fail(c); - dst((t1<<2)>>>0|(t2&0x30)>>4); - if ((c = src()) !== null) { - t1 = ain[c]; - if (typeof t1 === 'undefined') - if (c === 61) break; else fail(c); - dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2); - if ((c = src()) !== null) { - t2 = ain[c]; - if (typeof t2 === 'undefined') - if (c === 61) break; else fail(c); - dst(((t1&0x3)<<6)>>>0|t2); - } - } - } - } - }; - - /** - * Tests if a string is valid base64. - * @param {string} str String to test - * @returns {boolean} `true` if valid, otherwise `false` - */ - lxiv.test = function(str) { - return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str); - }; - - return lxiv; - }(); + /** + * lxiv-embeddable (c) 2014 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/lxiv for details + */ + var lxiv = function() { + "use strict"; + + /** + * lxiv namespace. + * @type {!Object.} + * @exports lxiv + */ + var lxiv = {}; + + /** + * Character codes for output. + * @type {!Array.} + * @inner + */ + var aout = [ + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 + ]; + + /** + * Character codes for input. + * @type {!Array.} + * @inner + */ + var ain = []; + for (var i=0, k=aout.length; i>2)&0x3f]); + t = (b&0x3)<<4; + if ((b = src()) !== null) { + t |= (b>>4)&0xf; + dst(aout[(t|((b>>4)&0xf))&0x3f]); + t = (b&0xf)<<2; + if ((b = src()) !== null) + dst(aout[(t|((b>>6)&0x3))&0x3f]), + dst(aout[b&0x3f]); + else + dst(aout[t&0x3f]), + dst(61); + } else + dst(aout[t&0x3f]), + dst(61), + dst(61); + } + }; + + /** + * Decodes base64 char codes to bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + * @throws {Error} If a character code is invalid + */ + lxiv.decode = function(src, dst) { + var c, t1, t2; + function fail(c) { + throw Error("Illegal character code: "+c); + } + while ((c = src()) !== null) { + t1 = ain[c]; + if (typeof t1 === 'undefined') fail(c); + if ((c = src()) !== null) { + t2 = ain[c]; + if (typeof t2 === 'undefined') fail(c); + dst((t1<<2)>>>0|(t2&0x30)>>4); + if ((c = src()) !== null) { + t1 = ain[c]; + if (typeof t1 === 'undefined') + if (c === 61) break; else fail(c); + dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2); + if ((c = src()) !== null) { + t2 = ain[c]; + if (typeof t2 === 'undefined') + if (c === 61) break; else fail(c); + dst(((t1&0x3)<<6)>>>0|t2); + } + } + } + } + }; + + /** + * Tests if a string is valid base64. + * @param {string} str String to test + * @returns {boolean} `true` if valid, otherwise `false` + */ + lxiv.test = function(str) { + return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str); + }; + + return lxiv; + }(); // encodings/base64 @@ -3394,202 +3489,202 @@ // utfx-embeddable - /** - * utfx-embeddable (c) 2014 Daniel Wirtz - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/utfx for details - */ - var utfx = function() { - "use strict"; - - /** - * utfx namespace. - * @inner - * @type {!Object.} - */ - var utfx = {}; - - /** - * Maximum valid code point. - * @type {number} - * @const - */ - utfx.MAX_CODEPOINT = 0x10FFFF; - - /** - * Encodes UTF8 code points to UTF8 bytes. - * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point - * respectively `null` if there are no more code points left or a single numeric code point. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte - */ - utfx.encodeUTF8 = function(src, dst) { - var cp = null; - if (typeof src === 'number') - cp = src, - src = function() { return null; }; - while (cp !== null || (cp = src()) !== null) { - if (cp < 0x80) - dst(cp&0x7F); - else if (cp < 0x800) - dst(((cp>>6)&0x1F)|0xC0), - dst((cp&0x3F)|0x80); - else if (cp < 0x10000) - dst(((cp>>12)&0x0F)|0xE0), - dst(((cp>>6)&0x3F)|0x80), - dst((cp&0x3F)|0x80); - else - dst(((cp>>18)&0x07)|0xF0), - dst(((cp>>12)&0x3F)|0x80), - dst(((cp>>6)&0x3F)|0x80), - dst((cp&0x3F)|0x80); - cp = null; - } - }; - - /** - * Decodes UTF8 bytes to UTF8 code points. - * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there - * are no more bytes left. - * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. - * @throws {RangeError} If a starting byte is invalid in UTF8 - * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the - * remaining bytes. - */ - utfx.decodeUTF8 = function(src, dst) { - var a, b, c, d, fail = function(b) { - b = b.slice(0, b.indexOf(null)); - var err = Error(b.toString()); - err.name = "TruncatedError"; - err['bytes'] = b; - throw err; - }; - while ((a = src()) !== null) { - if ((a&0x80) === 0) - dst(a); - else if ((a&0xE0) === 0xC0) - ((b = src()) === null) && fail([a, b]), - dst(((a&0x1F)<<6) | (b&0x3F)); - else if ((a&0xF0) === 0xE0) - ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), - dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); - else if ((a&0xF8) === 0xF0) - ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), - dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); - else throw RangeError("Illegal starting byte: "+a); - } - }; - - /** - * Converts UTF16 characters to UTF8 code points. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @param {!function(number)} dst Code points destination as a function successively called with each converted code - * point. - */ - utfx.UTF16toUTF8 = function(src, dst) { - var c1, c2 = null; - while (true) { - if ((c1 = c2 !== null ? c2 : src()) === null) - break; - if (c1 >= 0xD800 && c1 <= 0xDFFF) { - if ((c2 = src()) !== null) { - if (c2 >= 0xDC00 && c2 <= 0xDFFF) { - dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); - c2 = null; continue; - } - } - } - dst(c1); - } - if (c2 !== null) dst(c2); - }; - - /** - * Converts UTF8 code points to UTF16 characters. - * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point - * respectively `null` if there are no more code points left or a single numeric code point. - * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. - * @throws {RangeError} If a code point is out of range - */ - utfx.UTF8toUTF16 = function(src, dst) { - var cp = null; - if (typeof src === 'number') - cp = src, src = function() { return null; }; - while (cp !== null || (cp = src()) !== null) { - if (cp <= 0xFFFF) - dst(cp); - else - cp -= 0x10000, - dst((cp>>10)+0xD800), - dst((cp%0x400)+0xDC00); - cp = null; - } - }; - - /** - * Converts and encodes UTF16 characters to UTF8 bytes. - * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` - * if there are no more characters left. - * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. - */ - utfx.encodeUTF16toUTF8 = function(src, dst) { - utfx.UTF16toUTF8(src, function(cp) { - utfx.encodeUTF8(cp, dst); - }); - }; - - /** - * Decodes and converts UTF8 bytes to UTF16 characters. - * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there - * are no more bytes left. - * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. - * @throws {RangeError} If a starting byte is invalid in UTF8 - * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. - */ - utfx.decodeUTF8toUTF16 = function(src, dst) { - utfx.decodeUTF8(src, function(cp) { - utfx.UTF8toUTF16(cp, dst); - }); - }; - - /** - * Calculates the byte length of an UTF8 code point. - * @param {number} cp UTF8 code point - * @returns {number} Byte length - */ - utfx.calculateCodePoint = function(cp) { - return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - }; - - /** - * Calculates the number of UTF8 bytes required to store UTF8 code points. - * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively - * `null` if there are no more code points left. - * @returns {number} The number of UTF8 bytes required - */ - utfx.calculateUTF8 = function(src) { - var cp, l=0; - while ((cp = src()) !== null) - l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - return l; - }; - - /** - * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. - * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively - * `null` if there are no more characters left. - * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. - */ - utfx.calculateUTF16asUTF8 = function(src) { - var n=0, l=0; - utfx.UTF16toUTF8(src, function(cp) { - ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; - }); - return [n,l]; - }; - - return utfx; - }(); + /** + * utfx-embeddable (c) 2014 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/utfx for details + */ + var utfx = function() { + "use strict"; + + /** + * utfx namespace. + * @inner + * @type {!Object.} + */ + var utfx = {}; + + /** + * Maximum valid code point. + * @type {number} + * @const + */ + utfx.MAX_CODEPOINT = 0x10FFFF; + + /** + * Encodes UTF8 code points to UTF8 bytes. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte + */ + utfx.encodeUTF8 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, + src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp < 0x80) + dst(cp&0x7F); + else if (cp < 0x800) + dst(((cp>>6)&0x1F)|0xC0), + dst((cp&0x3F)|0x80); + else if (cp < 0x10000) + dst(((cp>>12)&0x0F)|0xE0), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + else + dst(((cp>>18)&0x07)|0xF0), + dst(((cp>>12)&0x3F)|0x80), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + cp = null; + } + }; + + /** + * Decodes UTF8 bytes to UTF8 code points. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the + * remaining bytes. + */ + utfx.decodeUTF8 = function(src, dst) { + var a, b, c, d, fail = function(b) { + b = b.slice(0, b.indexOf(null)); + var err = Error(b.toString()); + err.name = "TruncatedError"; + err['bytes'] = b; + throw err; + }; + while ((a = src()) !== null) { + if ((a&0x80) === 0) + dst(a); + else if ((a&0xE0) === 0xC0) + ((b = src()) === null) && fail([a, b]), + dst(((a&0x1F)<<6) | (b&0x3F)); + else if ((a&0xF0) === 0xE0) + ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), + dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); + else if ((a&0xF8) === 0xF0) + ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), + dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); + else throw RangeError("Illegal starting byte: "+a); + } + }; + + /** + * Converts UTF16 characters to UTF8 code points. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Code points destination as a function successively called with each converted code + * point. + */ + utfx.UTF16toUTF8 = function(src, dst) { + var c1, c2 = null; + while (true) { + if ((c1 = c2 !== null ? c2 : src()) === null) + break; + if (c1 >= 0xD800 && c1 <= 0xDFFF) { + if ((c2 = src()) !== null) { + if (c2 >= 0xDC00 && c2 <= 0xDFFF) { + dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); + c2 = null; continue; + } + } + } + dst(c1); + } + if (c2 !== null) dst(c2); + }; + + /** + * Converts UTF8 code points to UTF16 characters. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a code point is out of range + */ + utfx.UTF8toUTF16 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp <= 0xFFFF) + dst(cp); + else + cp -= 0x10000, + dst((cp>>10)+0xD800), + dst((cp%0x400)+0xDC00); + cp = null; + } + }; + + /** + * Converts and encodes UTF16 characters to UTF8 bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` + * if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + */ + utfx.encodeUTF16toUTF8 = function(src, dst) { + utfx.UTF16toUTF8(src, function(cp) { + utfx.encodeUTF8(cp, dst); + }); + }; + + /** + * Decodes and converts UTF8 bytes to UTF16 characters. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. + */ + utfx.decodeUTF8toUTF16 = function(src, dst) { + utfx.decodeUTF8(src, function(cp) { + utfx.UTF8toUTF16(cp, dst); + }); + }; + + /** + * Calculates the byte length of an UTF8 code point. + * @param {number} cp UTF8 code point + * @returns {number} Byte length + */ + utfx.calculateCodePoint = function(cp) { + return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }; + + /** + * Calculates the number of UTF8 bytes required to store UTF8 code points. + * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively + * `null` if there are no more code points left. + * @returns {number} The number of UTF8 bytes required + */ + utfx.calculateUTF8 = function(src) { + var cp, l=0; + while ((cp = src()) !== null) + l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + return l; + }; + + /** + * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. + * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. + */ + utfx.calculateUTF16asUTF8 = function(src) { + var n=0, l=0; + utfx.UTF16toUTF8(src, function(cp) { + ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }); + return [n,l]; + }; + + return utfx; + }(); // encodings/utf8 diff --git a/dist/bytebuffer.min.js b/dist/bytebuffer.min.js index e7abf2f..3839f1e 100644 --- a/dist/bytebuffer.min.js +++ b/dist/bytebuffer.min.js @@ -4,87 +4,90 @@ Released under the Apache License, Version 2.0 see: https://github.com/dcodeIO/bytebuffer.js for details */ -function u(k){function g(a,b,c){"undefined"===typeof a&&(a=g.DEFAULT_CAPACITY);"undefined"===typeof b&&(b=g.DEFAULT_ENDIAN);"undefined"===typeof c&&(c=g.DEFAULT_NOASSERT);if(!c){a|=0;if(0>a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c}function m(a){var b=0;return function(){return b>1,g=-7;f=c?f-1:0;var q=c?-1:1,k=a[b+f];f+=q;c=k&(1<<-g)-1;k>>=-g;for(g+=n;0>=-g;for(g+=d;0>1,y=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;n=d?0:n-1;var l=d?1:-1,m=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=t):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(e=Math.pow(2,-d))&&(d--,e*=2),b=1<=d+k?b+y/e:b+y*Math.pow(2,1-k),2<=b*e&&(d++,e/=2),d+k>=t?(b=0,d=t):1<=d+k?(b=(b*e-1)*Math.pow(2,f),d+=k):(b=b*Math.pow(2,k-1)*Math.pow(2,f),d=0));for(;8<=f;a[c+n]=b&255,n+=l,b/=256,f-=8);d=d<=p||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset;b.offset=0;return b};g.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};g.type=function(){return ArrayBuffer};g.wrap=function(a,b,c,d){"string"!==typeof b&&(d=c,c=b,b=void 0); -if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return g.fromBase64(a,c);case "hex":return g.fromHex(a,c);case "binary":return g.fromBinary(a,c);case "utf8":return g.fromUTF8(a,c);case "debug":return g.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(g.isByteBuffer(a))return b=e.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new g(0,c,d),0>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var d=this.slice(b,b+a);c&&(this.offset+=a);return d};e.writeBytes=e.append;e.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);this.view[b-1]=a;c&&(this.offset+=1);return this};e.writeByte=e.writeInt8;e.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)"); -a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];128===(a&128)&&(a=-(255-a+1));b&&(this.offset+=1);return a};e.readByte=e.readInt8;e.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>= -0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);this.view[b-1]=a;c&&(this.offset+=1);return this};e.writeUInt8=e.writeUint8;e.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];b&&(this.offset+=1);return a};e.readUInt8=e.readUint8;e.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); -}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeShort=e.writeInt16;e.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);32768===(c&32768)&&(c=-(65535-c+1));b&&(this.offset+=2);return c};e.readShort=e.readInt16;e.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)"); -b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeUInt16=e.writeUint16;e.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);b&&(this.offset+=2);return c};e.readUInt16=e.readUint16;e.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4); -return this};e.writeInt=e.writeInt32;e.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+ -3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c|0};e.readInt=e.readInt32;e.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength; -b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeUInt32=e.writeUint32;e.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0> -a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c};e.readUInt32=e.readUint32;k&&(e.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a); -else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8; -var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeLong=e.writeInt64,e.readInt64= -function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+ -1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!1);b&&(this.offset+=8);return a},e.readLong=e.readInt64,e.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)"); -if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4, -this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeUInt64=e.writeUint64,e.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+= -this.view[a]<<24>>>0);a=new k(c,d,!0);b&&(this.offset+=8);return a},e.readUInt64=e.readUint64);e.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength; -b>d&&this.resize((d*=2)>b?d:b);z(this.view,a,b-4,this.littleEndian,23,4);c&&(this.offset+=4);return this};e.writeFloat=e.writeFloat32;e.readFloat32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=x(this.view,a,this.littleEndian,23,4);b&&(this.offset+=4);return a}; -e.readFloat=e.readFloat32;e.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);z(this.view,a,b-8,this.littleEndian, -52,8);c&&(this.offset+=8);return this};e.writeDouble=e.writeFloat64;e.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=x(this.view,a,this.littleEndian,52,8);b&&(this.offset+=8);return a};e.readDouble=e.readFloat64;g.MAX_VARINT32_BYTES=5;g.calculateVarint32= -function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};g.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};g.zigZagDecode32=function(a){return a>>>1^-(a&1)|0};e.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}var d=g.calculateVarint32(a),f;b+=d;f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=d;for(a>>>=0;128<=a;)f=a&127|128,this.view[b++]=f,a>>>=7;this.view[b++]=a;return c?(this.offset=b,this):d};e.writeVarint32ZigZag=function(a,b){return this.writeVarint32(g.zigZagEncode32(a),b)};e.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)"); -a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,d=0,f;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;f=this.view[a++];5>c&&(d|=(f&127)<<7*c);++c}while(0!==(f&128));d|=0;return b?(this.offset=a,d):{value:d,length:c}};e.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=g.zigZagDecode32(a.value):a=g.zigZagDecode32(a);return a};k&&(g.MAX_VARINT64_BYTES=10,g.calculateVarint64= -function(a){"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));var b=a.toInt()>>>0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},g.zigZagEncode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},g.zigZagDecode64= -function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(k.ONE).toSigned().negate()).toSigned()},e.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var d=g.calculateVarint64(a),f=a.toInt()>>>0,e=a.shiftRightUnsigned(28).toInt()>>>0,h=a.shiftRightUnsigned(56).toInt()>>>0;b+=d;var p=this.buffer.byteLength;b>p&&this.resize((p*=2)>b?p:b); -b-=d;switch(d){case 10:this.view[b+9]=h>>>7&1;case 9:this.view[b+8]=9!==d?h|128:h&127;case 8:this.view[b+7]=8!==d?e>>>21|128:e>>>21&127;case 7:this.view[b+6]=7!==d?e>>>14|128:e>>>14&127;case 6:this.view[b+5]=6!==d?e>>>7|128:e>>>7&127;case 5:this.view[b+4]=5!==d?e|128:e&127;case 4:this.view[b+3]=4!==d?f>>>21|128:f>>>21&127;case 3:this.view[b+2]=3!==d?f>>>14|128:f>>>14&127;case 2:this.view[b+1]=2!==d?f>>>7|128:f>>>7&127;case 1:this.view[b]=1!==d?f|128:f&127}return c?(this.offset+=d,this):d},e.writeVarint64ZigZag= -function(a,b){return this.writeVarint64(g.zigZagEncode64(a),b)},e.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=0,f=0,e=0,h=0,h=this.view[a++],d=h&127;if(h&128&&(h=this.view[a++],d|=(h&127)<<7,h&128||this.noAssert&&"undefined"===typeof h)&& -(h=this.view[a++],d|=(h&127)<<14,h&128||this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],d|=(h&127)<<21,h&128||this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],f=h&127,h&128||this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],f|=(h&127)<<7,h&128||this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],f|=(h&127)<<14,h&128||this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],f|=(h&127)<<21,h&128||this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],e=h&127,h&128|| -this.noAssert&&"undefined"===typeof h)&&(h=this.view[a++],e|=(h&127)<<7,h&128||this.noAssert&&"undefined"===typeof h))throw Error("Buffer overrun");d=k.fromBits(d|f<<28,f>>>4|e<<24,!1);return b?(this.offset=a,d):{value:d,length:a-c}},e.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=g.zigZagDecode64(a.value):a=g.zigZagDecode64(a);return a});e.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var d,f=a.length;if(!this.noAssert){if("string"!== -typeof a)throw TypeError("Illegal str: Not a string");for(d=0;d>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}f=l.a(m(a))[1];b+=f+1;d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=f+1;l.b(m(a),function(a){this.view[b++]=a}.bind(this));this.view[b++]= -0;return c?(this.offset=b,this):f};e.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d,f=-1;l.c(function(){if(0===f)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);f=this.view[a++];return 0=== -f?null:f}.bind(this),d=s(),!0);return b?(this.offset=a,d()):{string:d(),length:a-c}};e.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f;f=l.a(m(a),this.noAssert)[1];b+= -4+f;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4+f;this.littleEndian?(this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255);b+=4;l.b(m(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+4+f)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+f));return c?(this.offset=b,this):b-d};e.readIString=function(a){var b="undefined"=== -typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,d=this.readUint32(a),d=this.readUTF8String(d,g.METRICS_BYTES,a+=4);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};g.METRICS_CHARS="c";g.METRICS_BYTES="b";e.writeUTF8String=function(a,b){var c="undefined"=== -typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d,f=b;d=l.a(m(a))[1];b+=d;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d;l.b(m(a),function(a){this.view[b++]=a}.bind(this));return c?(this.offset=b,this):b-f};e.writeString=e.writeUTF8String;g.calculateUTF8Chars=function(a){return l.a(m(a))[0]}; -g.calculateUTF8Bytes=function(a){return l.a(m(a))[1]};g.calculateString=g.calculateUTF8Bytes;e.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var d="undefined"===typeof c;d&&(c=this.offset);"undefined"===typeof b&&(b=g.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -c+" (+0) <= "+this.buffer.byteLength);}var f=0,e=c,h;if(b===g.METRICS_CHARS){h=s();l.f(function(){return f>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -c+" (+"+a+") <= "+this.buffer.byteLength);}var p=c+a;l.c(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f,e;f=l.a(m(a),this.noAssert)[1];e=g.calculateVarint32(f);b+=e+f;var h=this.buffer.byteLength;b>h&&this.resize((h*=2)>b?h:b);b-=e+f;b+=this.writeVarint32(f,b);l.b(m(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+f+e)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+f+e));return c? -(this.offset=b,this):b-d};e.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=this.readVarint32(a),d=this.readUTF8String(d.value,g.METRICS_BYTES,a+=d.length);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};e.append= -function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof g||(a=g.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var f=this.buffer.byteLength;c>f&&this.resize((f*=2)>c?f:c);this.view.set(a.view.subarray(a.offset, -a.limit),c-b);a.offset+=b;d&&(this.offset+=b);return this};e.appendTo=function(a,b){a.append(this,b);return this};e.assert=function(a){this.noAssert=!a;return this};e.capacity=function(){return this.buffer.byteLength};e.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};e.clone=function(a){var b=new g(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),b.view=new Uint8Array(b.buffer)):(b.buffer=this.buffer,b.view=this.view); -b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};e.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(0=== -a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var d=new ArrayBuffer(c),f=new Uint8Array(d);f.set(this.view.subarray(a,b));this.buffer=d;this.view=f;0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};e.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a|| -0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new g(0,this.littleEndian,this.noAssert);var c=b-a,d=new g(c,this.littleEndian,this.noAssert);d.offset=0;d.limit=c;0<=d.markedOffset&&(d.markedOffset-=a);this.copyTo(d,0,a,b);return d};e.copyTo=function(a,b,c,d){var f, -e;if(!this.noAssert&&!g.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(e="undefined"===typeof b)?a.offset:b|0;c=(f="undefined"===typeof c)?this.offset:c|0;d="undefined"===typeof d?this.limit:d|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||d>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+c+" <= "+this.buffer.byteLength);var h=d-c;if(0===h)return a;a.ensureCapacity(b+h);a.view.set(this.view.subarray(c, -d),b);f&&(this.offset+=h);e&&(a.offset+=h);return this};e.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};e.fill=function(a,b,c){var d="undefined"===typeof b;d&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};e.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};e.LE=function(a){this.littleEndian="undefined"!==typeof a?!!a:!0;return this};e.BE=function(a){this.littleEndian="undefined"!== -typeof a?!a:!1;return this};e.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof g||(a=g.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var f=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+a);}if(this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call(this.view.subarray(a,b));return this}; -e.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};e.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer"); -a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};e.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer"); -c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};e.toArrayBuffer=e.toBuffer;e.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+ -")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug();case "columns":return this.m();default:throw Error("Unsupported encoding: "+a);}};var A=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115, -116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],d=0,f=b.length;d>2&63]),f=(d&3)<<4,null!==(d=a())?(f|=d>>4&15,c(b[(f|d>>4&15)&63]),f=(d&15)<<2,null!==(d=a())?(c(b[(f|d>>6&3)&63]),c(b[d&63])):(c(b[f&63]),c(61))):(c(b[f&63]),c(61),c(61))};a.g=function(a,b){function d(a){throw Error("Illegal character code: "+a);}for(var f,e,g;null!==(f=a());)if(e=c[f],"undefined"===typeof e&&d(f),null!==(f=a())&&(g=c[f],"undefined"=== -typeof g&&d(f),b(e<<2>>>0|(g&48)>>4),null!==(f=a()))){e=c[f];if("undefined"===typeof e)if(61===f)break;else d(f);b((g&15)<<4>>>0|(e&60)>>2);if(null!==(f=a())){g=c[f];if("undefined"===typeof g)if(61===f)break;else d(f);b((e&3)<<6>>>0|g)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();e.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end"); -var c;A.h(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end"); -if(a===b)return"";for(var c=[],d=[];ad?f+("0"+d.toString(16).toUpperCase()):f+d.toString(16).toUpperCase(),a&&(e+=32d?String.fromCharCode(d):"."));++b;if(a&&0f.length;)f+=" ";g+=f+e+"\n";f=e=""}f=b===this.offset&&b===this.limit?f+(b===this.markedOffset?"!":"|"):b===this.offset?f+(b===this.markedOffset?"[":"<"):b===this.limit?f+(b===this.markedOffset?"]":">"):f+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==f){for(;51>f.length;)f+=" ";g+=f+e+"\n"}return a?g:f};g.fromDebug=function(a, -b,c){var d=a.length;b=new g((d+1)/3|0,b,c);for(var f=0,e=0,h,k=!1,l=!1,q=!1,m=!1,r=!1;f":if(!c){if(m){r=!0;break}m=!0}b.limit=e;k=!1;break;case "'":if(!c){if(q){r=!0;break}q=!0}b.markedOffset=e;k=!1;break;case " ":k=!1;break;default:if(!c&&k){r=!0;break}h=parseInt(h+a.charAt(f++),16);if(!c&&(isNaN(h)||0>h||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),d;ad?c.push("0",d.toString(16)): -c.push(d.toString(16));return c.join("")};g.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var d=a.length;b=new g(d/2|0,b);for(var f,e=0,h=0;ef||255d?c(d&127):(2048>d?c(d>>6&31|192):(65536>d?c(d>>12&15|224):(c(d>>18&7|240),c(d>>12&63|128)),c(d>>6&63|128)),c(d&63|128)),d=null},f:function(a,c){function d(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;}for(var f,e,g,k;null!==(f=a());)if(0===(f&128))c(f);else if(192===(f&224))null===(e=a())&&d([f,e]),c((f&31)<<6|e&63);else if(224===(f&240))null!==(e=a())&&null!== -(g=a())||d([f,e,g]),c((f&15)<<12|(e&63)<<6|g&63);else if(240===(f&248))null!==(e=a())&&null!==(g=a())&&null!==(k=a())||d([f,e,g,k]),c((f&7)<<18|(e&63)<<12|(g&63)<<6|k&63);else throw RangeError("Illegal starting byte: "+f);},d:function(a,c){for(var d,f=null;null!==(d=null!==f?f:a());)55296<=d&&57343>=d&&null!==(f=a())&&56320<=f&&57343>=f?(c(1024*(d-55296)+f-56320+65536),f=null):c(d);null!==f&&c(f)},e:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!== -(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},b:function(b,c){a.d(b,function(b){a.i(b,c)})},c:function(b,c){a.f(b,function(b){a.e(b,c)})},k:function(a){return 128>a?1:2048>a?2:65536>a?3:4},l:function(a){for(var c,d=0;null!==(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},a:function(b){var c=0,d=0;a.d(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();e.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b= -this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{l.c(function(){return aa)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c}function n(a){var b=0;return function(){return b>1,h=-7;f=c?f-1:0;var p=c?-1:1,k=a[b+f];f+=p;c=k&(1<<-h)-1;k>>=-h;for(h+=l;0>=-h;for(h+=d;0>1,y=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;l=d?0:l-1;var m=d?1:-1,n=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=h):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(g=Math.pow(2,-d))&&(d--,g*=2),b=1<=d+k?b+y/g:b+y*Math.pow(2,1-k),2<=b*g&&(d++,g/=2),d+k>=h?(b=0,d=h):1<=d+k?(b=(b*g-1)*Math.pow(2,f),d+=k):(b=b*Math.pow(2,k-1)*Math.pow(2,f),d=0));for(;8<=f;a[c+l]=b&255,l+=m,b/=256,f-=8); +d=d<=e||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=e);b.limit=b.offset;b.offset=0;return b};h.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};h.type=function(){return ArrayBuffer};h.wrap=function(a,b,c,d){"string"!==typeof b&&(d= +c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return h.fromBase64(a,c);case "hex":return h.fromHex(a,c);case "binary":return h.fromBinary(a,c);case "utf8":return h.fromUTF8(a,c);case "debug":return h.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(h.isByteBuffer(a))return b=e.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new h(0,c,d),0>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f=a.length,l=f>>3,g=0,e;for(b+=this.writeVarint32(f,b);l--;)e=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]& +1)<<7,this.writeByte(e,b++);if(g>3,e=0,g=[];for(a+=c.length;f--;)c=this.readByte(a++),g[e++]=!!(c&1),g[e++]=!!(c&2),g[e++]=!!(c&4),g[e++]=!!(c&8),g[e++]=!!(c&16),g[e++]=!!(c&32),g[e++]=!!(c&64),g[e++]=!!(c&128);if(e>f++&1);b&&(this.offset=a); +return g};e.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var d=this.slice(b,b+a);c&&(this.offset+=a);return d};e.writeBytes=e.append;e.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);--b;this.view[b]=a;c&&(this.offset+=1);return this};e.writeByte=e.writeInt8;e.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset); +if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];128===(a&128)&&(a=-(255-a+1));b&&(this.offset+=1);return a};e.readByte=e.readInt8;e.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); +a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);--b;this.view[b]=a;c&&(this.offset+=1);return this};e.writeUInt8=e.writeUint8;e.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];b&&(this.offset+=1);return a};e.readUInt8=e.readUint8;e.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0> +b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeShort=e.writeInt16;e.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);32768===(c&32768)&&(c=-(65535-c+1));b&&(this.offset+=2);return c};e.readShort=e.readInt16;e.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); +a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeUInt16=e.writeUint16;e.readUint16=function(a){var b="undefined"=== +typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);b&&(this.offset+=2);return c};e.readUInt16=e.readUint16;e.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255, +this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeInt=e.writeInt32;e.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8, +c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c|0};e.readInt=e.readInt32;e.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeUInt32=e.writeUint32;e.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!== +a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c};e.readUInt32=e.readUint32;k&&(e.writeInt64=function(a,b){var c="undefined"===typeof b;c&& +(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a)); +b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d& +255);c&&(this.offset+=8);return this},e.writeLong=e.writeInt64,e.readInt64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<< +16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!1);b&&(this.offset+=8);return a},e.readLong=e.readInt64,e.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&& +a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>> +24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeUInt64=e.writeUint64,e.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset); +if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<< +24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!0);b&&(this.offset+=8);return a},e.readUInt64=e.readUint64);e.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);z(this.view,a,b-4,this.littleEndian,23,4);c&&(this.offset+=4);return this};e.writeFloat=e.writeFloat32;e.readFloat32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength); +}a=x(this.view,a,this.littleEndian,23,4);b&&(this.offset+=4);return a};e.readFloat=e.readFloat32;e.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var d=this.buffer.byteLength; +b>d&&this.resize((d*=2)>b?d:b);z(this.view,a,b-8,this.littleEndian,52,8);c&&(this.offset+=8);return this};e.writeDouble=e.writeFloat64;e.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=x(this.view,a,this.littleEndian,52,8);b&&(this.offset+=8);return a}; +e.readDouble=e.readFloat64;h.MAX_VARINT32_BYTES=5;h.calculateVarint32=function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};h.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};h.zigZagDecode32=function(a){return a>>>1^-(a&1)|0};e.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+ +b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=h.calculateVarint32(a),f;b+=d;f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=d;for(a>>>=0;128<=a;)f=a&127|128,this.view[b++]=f,a>>>=7;this.view[b++]=a;return c?(this.offset=b,this):d};e.writeVarint32ZigZag=function(a,b){return this.writeVarint32(h.zigZagEncode32(a),b)};e.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset); +if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,d=0,f;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;f=this.view[a++];5>c&&(d|=(f&127)<<7*c);++c}while(0!==(f&128));d|=0;return b?(this.offset=a,d):{value:d,length:c}};e.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"=== +typeof a?a.value=h.zigZagDecode32(a.value):a=h.zigZagDecode32(a);return a};k&&(h.MAX_VARINT64_BYTES=10,h.calculateVarint64=function(a){"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));var b=a.toInt()>>>0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},h.zigZagEncode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a, +!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},h.zigZagDecode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(k.ONE).toSigned().negate()).toSigned()},e.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a); +else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var d=h.calculateVarint64(a),f=a.toInt()>>>0,e=a.shiftRightUnsigned(28).toInt()>>> +0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=d;var t=this.buffer.byteLength;b>t&&this.resize((t*=2)>b?t:b);b-=d;switch(d){case 10:this.view[b+9]=g>>>7&1;case 9:this.view[b+8]=9!==d?g|128:g&127;case 8:this.view[b+7]=8!==d?e>>>21|128:e>>>21&127;case 7:this.view[b+6]=7!==d?e>>>14|128:e>>>14&127;case 6:this.view[b+5]=6!==d?e>>>7|128:e>>>7&127;case 5:this.view[b+4]=5!==d?e|128:e&127;case 4:this.view[b+3]=4!==d?f>>>21|128:f>>>21&127;case 3:this.view[b+2]=3!==d?f>>>14|128:f>>>14&127;case 2:this.view[b+1]= +2!==d?f>>>7|128:f>>>7&127;case 1:this.view[b]=1!==d?f|128:f&127}return c?(this.offset+=d,this):d},e.writeVarint64ZigZag=function(a,b){return this.writeVarint64(h.zigZagEncode64(a),b)},e.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=0, +f=0,e=0,g=0,g=this.view[a++],d=g&127;if(g&128&&(g=this.view[a++],d|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<14,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<14,g&128||this.noAssert&&"undefined"=== +typeof g)&&(g=this.view[a++],f|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g))throw Error("Buffer overrun");d=k.fromBits(d|f<<28,f>>>4|e<<24,!1);return b?(this.offset=a,d):{value:d,length:a-c}},e.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=h.zigZagDecode64(a.value):a=h.zigZagDecode64(a);return a}); +e.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var d,f=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(d=0;d>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}f=m.a(n(a))[1]; +b+=f+1;d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=f+1;m.b(n(a),function(a){this.view[b++]=a}.bind(this));this.view[b++]=0;return c?(this.offset=b,this):f};e.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d,f=-1;m.c(function(){if(0=== +f)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);f=this.view[a++];return 0===f?null:f}.bind(this),d=r(),!0);return b?(this.offset=a,d()):{string:d(),length:a-c}};e.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}var d=b,f;f=m.a(n(a),this.noAssert)[1];b+=4+f;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4+f;this.littleEndian?(this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255);b+=4;m.b(n(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+4+f)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+f)); +return c?(this.offset=b,this):b-d};e.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,d=this.readUint32(a),d=this.readUTF8String(d,h.METRICS_BYTES,a+=4);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};h.METRICS_CHARS= +"c";h.METRICS_BYTES="b";e.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d,f=b;d=m.a(n(a))[1];b+=d;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d;m.b(n(a),function(a){this.view[b++]=a}.bind(this));return c?(this.offset= +b,this):b-f};e.writeString=e.writeUTF8String;h.calculateUTF8Chars=function(a){return m.a(n(a))[0]};h.calculateUTF8Bytes=function(a){return m.a(n(a))[1]};h.calculateString=h.calculateUTF8Bytes;e.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var d="undefined"===typeof c;d&&(c=this.offset);"undefined"===typeof b&&(b=h.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+ +c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var f=0,e=c,g;if(b===h.METRICS_CHARS){g=r();m.h(function(){return f>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength);}var k=c+a;m.c(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f,e;f=m.a(n(a),this.noAssert)[1];e=h.calculateVarint32(f);b+=e+f;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=e+f;b+=this.writeVarint32(f,b);m.b(n(a),function(a){this.view[b++]= +a}.bind(this));if(b!==d+f+e)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+f+e));return c?(this.offset=b,this):b-d};e.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=this.readVarint32(a),d=this.readUTF8String(d.value,h.METRICS_BYTES, +a+=d.length);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};e.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a=h.wrap(a,b));b=a.limit-a.offset; +if(0>=b)return this;c+=b;var f=this.buffer.byteLength;c>f&&this.resize((f*=2)>c?f:c);this.view.set(a.view.subarray(a.offset,a.limit),c-b);a.offset+=b;d&&(this.offset+=b);return this};e.appendTo=function(a,b){a.append(this,b);return this};e.assert=function(a){this.noAssert=!a;return this};e.capacity=function(){return this.buffer.byteLength};e.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};e.clone=function(a){var b=new h(0,this.littleEndian,this.noAssert); +a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),b.view=new Uint8Array(b.buffer)):(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};e.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>= +0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var d=new ArrayBuffer(c),f=new Uint8Array(d);f.set(this.view.subarray(a,b));this.buffer=d;this.view=f;0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};e.copy=function(a, +b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new h(0,this.littleEndian,this.noAssert);var c=b-a,d=new h(c,this.littleEndian,this.noAssert); +d.offset=0;d.limit=c;0<=d.markedOffset&&(d.markedOffset-=a);this.copyTo(d,0,a,b);return d};e.copyTo=function(a,b,c,d){var f,e;if(!this.noAssert&&!h.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(e="undefined"===typeof b)?a.offset:b|0;c=(f="undefined"===typeof c)?this.offset:c|0;d="undefined"===typeof d?this.limit:d|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||d>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+ +c+" <= "+this.buffer.byteLength);var g=d-c;if(0===g)return a;a.ensureCapacity(b+g);a.view.set(this.view.subarray(c,d),b);f&&(this.offset+=g);e&&(a.offset+=g);return this};e.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};e.fill=function(a,b,c){var d="undefined"===typeof b;d&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};e.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};e.LE=function(a){this.littleEndian= +"undefined"!==typeof a?!!a:!0;return this};e.BE=function(a){this.littleEndian="undefined"!==typeof a?!a:!1;return this};e.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a= +h.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var f=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+ +a);}if(this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ +a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call(this.view.subarray(a,b));return this};e.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};e.slice=function(a,b){"undefined"===typeof a&&(a= +this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};e.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!== +typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};e.toArrayBuffer=e.toBuffer;e.toString= +function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug();case "columns":return this.o();default:throw Error("Unsupported encoding: "+a);}};var A=function(){for(var a= +{},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],d=0,f=b.length;d>2&63]),f=(d&3)<<4,null!==(d=a())?(f|=d>>4&15,c(b[(f|d>>4&15)&63]),f=(d&15)<<2,null!==(d=a())?(c(b[(f|d>>6&3)&63]),c(b[d&63])):(c(b[f&63]),c(61))):(c(b[f&63]),c(61),c(61))};a.decode=function(a, +b){function d(a){throw Error("Illegal character code: "+a);}for(var f,e,h;null!==(f=a());)if(e=c[f],"undefined"===typeof e&&d(f),null!==(f=a())&&(h=c[f],"undefined"===typeof h&&d(f),b(e<<2>>>0|(h&48)>>4),null!==(f=a()))){e=c[f];if("undefined"===typeof e)if(61===f)break;else d(f);b((h&15)<<4>>>0|(e&60)>>2);if(null!==(f=a())){h=c[f];if("undefined"===typeof h)if(61===f)break;else d(f);b((e&3)<<6>>>0|h)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)}; +return a}();e.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a=a|0;b=b|0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;A.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],d=[];ad?f+="0"+d.toString(16).toUpperCase():f+=d.toString(16).toUpperCase(),a&&(e+=32d?String.fromCharCode(d):"."));++b;if(a&&0f.length;)f+=" ";g+=f+e+"\n";f=e=""}f=b===this.offset&&b===this.limit?f+(b===this.markedOffset?"!":"|"):b===this.offset? +f+(b===this.markedOffset?"[":"<"):b===this.limit?f+(b===this.markedOffset?"]":">"):f+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==f){for(;51>f.length;)f+=" ";g+=f+e+"\n"}return a?g:f};h.fromDebug=function(a,b,c){var d=a.length;b=new h((d+1)/3|0,b,c);for(var f=0,e=0,g,k=!1,m=!1,p=!1,n=!1,q=!1;f":if(!c){if(n){q=!0;break}n=!0}b.limit=e;k=!1;break;case "'":if(!c){if(p){q=!0;break}p=!0}b.markedOffset=e;k=!1;break;case " ":k=!1;break;default:if(!c&&k){q=!0;break}g=parseInt(g+a.charAt(f++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!== +b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),d;ad?c.push("0",d.toString(16)):c.push(d.toString(16));return c.join("")};h.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var d=a.length;b=new h(d/ +2|0,b);for(var f,e=0,g=0;ef||255d?c(d&127):(2048>d?c(d>>6&31|192):(65536>d?c(d>>12&15|224):(c(d>>18&7|240),c(d>>12&63|128)),c(d>>6&63|128)),c(d&63|128)),d=null},h:function(a,c){function d(a){a= +a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;}for(var f,e,g,h;null!==(f=a());)if(0===(f&128))c(f);else if(192===(f&224))null===(e=a())&&d([f,e]),c((f&31)<<6|e&63);else if(224===(f&240))null!==(e=a())&&null!==(g=a())||d([f,e,g]),c((f&15)<<12|(e&63)<<6|g&63);else if(240===(f&248))null!==(e=a())&&null!==(g=a())&&null!==(h=a())||d([f,e,g,h]),c((f&7)<<18|(e&63)<<12|(g&63)<<6|h&63);else throw RangeError("Illegal starting byte: "+f);},f:function(a,c){for(var d, +e=null;null!==(d=null!==e?e:a());)55296<=d&&57343>=d&&null!==(e=a())&&56320<=e&&57343>=e?(c(1024*(d-55296)+e-56320+65536),e=null):c(d);null!==e&&c(e)},g:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},b:function(b,c){a.f(b,function(b){a.i(b,c)})},c:function(b,c){a.h(b,function(b){a.g(b,c)})},l:function(a){return 128>a?1:2048>a?2:65536>a?3:4},m:function(a){for(var c,d=0;null!== +(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},a:function(b){var c=0,d=0;a.f(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();e.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ +a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.c(function(){return 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 literal 8305 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 value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ +ByteBufferPrototype.writeBitSet = function(value, offset) { + //? RELATIVE() + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); + //? ASSERT_OFFSET(); + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; +} + +/** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ +ByteBufferPrototype.readBitSet = function(offset) { + //? RELATIVE() + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; +} diff --git a/tests/suite.js b/tests/suite.js index edb8bf5..1e3829c 100644 --- a/tests/suite.js +++ b/tests/suite.js @@ -633,6 +633,35 @@ function makeSuite(ByteBuffer) { }; }); + suite.types.bitset = function(test) { + var bb = new ByteBuffer(2), + arr; + + function run(data) { + bb.reset(); + bb.writeBitSet(data); + bb.reset(); + test.deepEqual(bb.readBitSet(),data); + }; + + run([]); + run([true]); + run([false]); + run([false,true]); + run([false,false,false,false,false,false,false,false]); + run([true,false,true,false,true,false,true,false]); + run([true,true,true,true,true,true,true,true]); + run([true,false,true,false,true,false,true,false]); + run([true,false,true,false,true,false,true,false,true]); + + bb.reset(); + bb.writeBitSet([,null,"",0,42,"hello world",new Date(0),{},[]]); + bb.reset(); + test.deepEqual(bb.readBitSet(),[false,false,false,false,true,true,true,true,true]); + + test.done(); + }; + suite.types.calculateVarint = function(test) { test.equal(ByteBuffer.MAX_VARINT32_BYTES, 5); test.equal(ByteBuffer.MAX_VARINT64_BYTES, 10); @@ -973,4 +1002,4 @@ module.exports = { "node": makeSuite(ByteBufferNode), "browser": makeSuite(ByteBufferBrowser), "dataview": makeSuite(ByteBufferBrowser_DataView) -}; \ No newline at end of file +}; From 6384cb40b2a56187ba1477070f55aa3eb41cade3 Mon Sep 17 00:00:00 2001 From: Chas Emerick Date: Fri, 5 Feb 2016 16:01:20 -0500 Subject: [PATCH 2/9] add various externs declarations --- externs/ByteBuffer.js | 71 +++++++++++++++++++++++++++++++++++++++++++ externs/bytebuffer.js | 71 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+) diff --git a/externs/ByteBuffer.js b/externs/ByteBuffer.js index a321f54..2dd39ae 100644 --- a/externs/ByteBuffer.js +++ b/externs/ByteBuffer.js @@ -113,6 +113,47 @@ ByteBuffer.prototype.LE = function(littleEndian) {}; */ ByteBuffer.prototype.BE = function(bigEndian) {}; +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromBase64 = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromBinary = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromDebug = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromHex = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromUTF8 = function(str, littleEndian, noAssert) {}; + + /** * @param {number} capacity * @returns {boolean} @@ -212,6 +253,15 @@ ByteBuffer.prototype.append = function(src, offset) {}; */ ByteBuffer.prototype.prepend = function(src, offset) {}; +/** + * @param {number|string} value + * @param {number} begin + * @param {number} end + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fill = function(value, begin, end) {}; + + /** * @param {number} value * @param {number=} offset @@ -494,6 +544,21 @@ ByteBuffer.prototype.writeZigZagVarint64 = function(value, offset) {}; */ ByteBuffer.prototype.readZigZagVarint64 = function(offset) {}; +/** + * @param {number|Long} value + * @param {number=} offset + * @returns {!ByteBuffer|number} + * @throws {Error} + */ +ByteBuffer.prototype.writeVarint64ZigZag = function(value, offset) {}; + +/** + * @param {number=} offset + * @returns {!Long|{value: !Long, length: number}} + * @throws {Error} + */ +ByteBuffer.prototype.readVarint64ZigZag = function(offset) {}; + /** * @param {number} value * @param {number=} offset @@ -545,6 +610,12 @@ ByteBuffer.calculateVarint64 = function(value) {}; */ ByteBuffer.calculateUTF8String = function(str) {}; +/** + * @param {string} str + * @returns {number} + */ +ByteBuffer.prototype.calculateUTF8Bytes = function(str) {}; + /** * @param {string} str * @param {number=} offset diff --git a/externs/bytebuffer.js b/externs/bytebuffer.js index a321f54..2dd39ae 100644 --- a/externs/bytebuffer.js +++ b/externs/bytebuffer.js @@ -113,6 +113,47 @@ ByteBuffer.prototype.LE = function(littleEndian) {}; */ ByteBuffer.prototype.BE = function(bigEndian) {}; +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromBase64 = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromBinary = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromDebug = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromHex = function(str, littleEndian, noAssert) {}; + +/** + * @param {string} str + * @param {boolean} littleEndian + * @param {boolean} noAssert + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fromUTF8 = function(str, littleEndian, noAssert) {}; + + /** * @param {number} capacity * @returns {boolean} @@ -212,6 +253,15 @@ ByteBuffer.prototype.append = function(src, offset) {}; */ ByteBuffer.prototype.prepend = function(src, offset) {}; +/** + * @param {number|string} value + * @param {number} begin + * @param {number} end + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.fill = function(value, begin, end) {}; + + /** * @param {number} value * @param {number=} offset @@ -494,6 +544,21 @@ ByteBuffer.prototype.writeZigZagVarint64 = function(value, offset) {}; */ ByteBuffer.prototype.readZigZagVarint64 = function(offset) {}; +/** + * @param {number|Long} value + * @param {number=} offset + * @returns {!ByteBuffer|number} + * @throws {Error} + */ +ByteBuffer.prototype.writeVarint64ZigZag = function(value, offset) {}; + +/** + * @param {number=} offset + * @returns {!Long|{value: !Long, length: number}} + * @throws {Error} + */ +ByteBuffer.prototype.readVarint64ZigZag = function(offset) {}; + /** * @param {number} value * @param {number=} offset @@ -545,6 +610,12 @@ ByteBuffer.calculateVarint64 = function(value) {}; */ ByteBuffer.calculateUTF8String = function(str) {}; +/** + * @param {string} str + * @returns {number} + */ +ByteBuffer.prototype.calculateUTF8Bytes = function(str) {}; + /** * @param {string} str * @param {number=} offset From 3f285219269cbecd4a75cb8ea40cda85fdf27d27 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 12 Feb 2016 14:59:09 +0100 Subject: [PATCH 3/9] Post-merge, externs, switched to simple opt. --- dist/bytebuffer-dataview.js | 5278 +++++++++++++------------- dist/bytebuffer-dataview.min.js | 163 +- dist/bytebuffer-dataview.min.js.gz | Bin 7902 -> 7988 bytes dist/bytebuffer-dataview.min.map | 6 +- dist/bytebuffer-node.js | 5232 +++++++++++++------------- dist/bytebuffer.js | 5610 ++++++++++++++-------------- dist/bytebuffer.min.js | 174 +- dist/bytebuffer.min.js.gz | Bin 8552 -> 8658 bytes dist/bytebuffer.min.map | 4 +- externs/ByteBuffer.js | 834 ----- externs/bytebuffer.js | 28 + package.json | 6 +- 12 files changed, 8265 insertions(+), 9070 deletions(-) delete mode 100644 externs/ByteBuffer.js diff --git a/dist/bytebuffer-dataview.js b/dist/bytebuffer-dataview.js index a0d1182..d9beb30 100644 --- a/dist/bytebuffer-dataview.js +++ b/dist/bytebuffer-dataview.js @@ -1,540 +1,540 @@ -/* - Copyright 2013-2014 Daniel Wirtz - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -/** - * @license bytebuffer.js (c) 2015 Daniel Wirtz - * Backing buffer: ArrayBuffer, Accessor: DataView - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/bytebuffer.js for details - */ -(function(global, factory) { - - /* AMD */ if (typeof define === 'function' && define["amd"]) - define(["long"], factory); - /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) - module['exports'] = (function() { - var Long; try { Long = require("long"); } catch (e) {} - return factory(Long); - })(); - /* Global */ else - (global["dcodeIO"] = global["dcodeIO"] || {})["ByteBuffer"] = factory(global["dcodeIO"]["Long"]); - -})(this, function(Long) { - "use strict"; - - /** - * Constructs a new ByteBuffer. - * @class The swiss army knife for binary data in JavaScript. - * @exports ByteBuffer - * @constructor - * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @expose - */ - var ByteBuffer = function(capacity, littleEndian, noAssert) { - if (typeof capacity === 'undefined') - capacity = ByteBuffer.DEFAULT_CAPACITY; - if (typeof littleEndian === 'undefined') - littleEndian = ByteBuffer.DEFAULT_ENDIAN; - if (typeof noAssert === 'undefined') - noAssert = ByteBuffer.DEFAULT_NOASSERT; - if (!noAssert) { - capacity = capacity | 0; - if (capacity < 0) - throw RangeError("Illegal capacity"); - littleEndian = !!littleEndian; - noAssert = !!noAssert; - } - - /** - * Backing ArrayBuffer. - * @type {!ArrayBuffer} - * @expose - */ - this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity); - - /** - * DataView utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`. - * @type {?DataView} - * @expose - */ - this.view = capacity === 0 ? null : new DataView(this.buffer); - - /** - * Absolute read/write offset. - * @type {number} - * @expose - * @see ByteBuffer#flip - * @see ByteBuffer#clear - */ - this.offset = 0; - - /** - * Marked offset. - * @type {number} - * @expose - * @see ByteBuffer#mark - * @see ByteBuffer#reset - */ - this.markedOffset = -1; - - /** - * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation. - * @type {number} - * @expose - * @see ByteBuffer#flip - * @see ByteBuffer#clear - */ - this.limit = capacity; - - /** - * Whether to use little endian byte order, defaults to `false` for big endian. - * @type {boolean} - * @expose - */ - this.littleEndian = littleEndian; - - /** - * Whether to skip assertions of offsets and values, defaults to `false`. - * @type {boolean} - * @expose - */ - this.noAssert = noAssert; - }; - - /** - * ByteBuffer version. - * @type {string} - * @const - * @expose - */ - ByteBuffer.VERSION = "5.0.0"; - - /** - * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. - * @type {boolean} - * @const - * @expose - */ - ByteBuffer.LITTLE_ENDIAN = true; - - /** - * Big endian constant that can be used instead of its boolean value. Evaluates to `false`. - * @type {boolean} - * @const - * @expose - */ - ByteBuffer.BIG_ENDIAN = false; - - /** - * Default initial capacity of `16`. - * @type {number} - * @expose - */ - ByteBuffer.DEFAULT_CAPACITY = 16; - - /** - * Default endianess of `false` for big endian. - * @type {boolean} - * @expose - */ - ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN; - - /** - * Default no assertions flag of `false`. - * @type {boolean} - * @expose - */ - ByteBuffer.DEFAULT_NOASSERT = false; - - /** - * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded - * and int64 support is not available. - * @type {?Long} - * @const - * @see https://github.com/dcodeIO/long.js - * @expose - */ - ByteBuffer.Long = Long || null; - - /** - * @alias ByteBuffer.prototype - * @inner - */ - var ByteBufferPrototype = ByteBuffer.prototype; - - /** - * An indicator used to reliably determine if an object is a ByteBuffer or not. - * @type {boolean} - * @const - * @expose - * @private - */ - ByteBufferPrototype.__isByteBuffer__; - - Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", { - value: true, - enumerable: false, - configurable: false - }); - - // helpers - - /** - * @type {!ArrayBuffer} - * @inner - */ - var EMPTY_BUFFER = new ArrayBuffer(0); - - /** - * String.fromCharCode reference for compile-time renaming. - * @type {function(...number):string} - * @inner - */ - var stringFromCharCode = String.fromCharCode; - - /** - * Creates a source function for a string. - * @param {string} s String to read from - * @returns {function():number|null} Source function returning the next char code respectively `null` if there are - * no more characters left. - * @throws {TypeError} If the argument is invalid - * @inner - */ - function stringSource(s) { - var i=0; return function() { - return i < s.length ? s.charCodeAt(i++) : null; - }; - } - - /** - * Creates a destination function for a string. - * @returns {function(number=):undefined|string} Destination function successively called with the next char code. - * Returns the final string when called without arguments. - * @inner - */ - function stringDestination() { - var cs = [], ps = []; return function() { - if (arguments.length === 0) - return ps.join('')+stringFromCharCode.apply(String, cs); - if (cs.length + arguments.length > 1024) - ps.push(stringFromCharCode.apply(String, cs)), - cs.length = 0; - Array.prototype.push.apply(cs, arguments); - }; - } - - /** - * Gets the accessor type. - * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes) - * @expose - */ - ByteBuffer.accessor = function() { - return DataView; - }; - /** - * Allocates a new ByteBuffer backed by a buffer of the specified capacity. - * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} - * @expose - */ - ByteBuffer.allocate = function(capacity, littleEndian, noAssert) { - return new ByteBuffer(capacity, littleEndian, noAssert); - }; - - /** - * Concatenates multiple ByteBuffers into one. - * @param {!Array.} buffers Buffers to concatenate - * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary", - * defaults to "utf8") - * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults - * to {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} Concatenated ByteBuffer - * @expose - */ - ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) { - if (typeof encoding === 'boolean' || typeof encoding !== 'string') { - noAssert = littleEndian; - littleEndian = encoding; - encoding = undefined; - } - var capacity = 0; - for (var i=0, k=buffers.length, length; i 0) capacity += length; - } - if (capacity === 0) - return new ByteBuffer(0, littleEndian, noAssert); - var bb = new ByteBuffer(capacity, littleEndian, noAssert), - bi; - var view = new Uint8Array(bb.buffer); - i=0; while (i} buffer Anything that can be wrapped - * @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to - * "utf8") - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer` - * @expose - */ - ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) { - if (typeof encoding !== 'string') { - noAssert = littleEndian; - littleEndian = encoding; - encoding = undefined; - } - if (typeof buffer === 'string') { - if (typeof encoding === 'undefined') - encoding = "utf8"; - switch (encoding) { - case "base64": - return ByteBuffer.fromBase64(buffer, littleEndian); - case "hex": - return ByteBuffer.fromHex(buffer, littleEndian); - case "binary": - return ByteBuffer.fromBinary(buffer, littleEndian); - case "utf8": - return ByteBuffer.fromUTF8(buffer, littleEndian); - case "debug": - return ByteBuffer.fromDebug(buffer, littleEndian); - default: - throw Error("Unsupported encoding: "+encoding); - } - } - if (buffer === null || typeof buffer !== 'object') - throw TypeError("Illegal buffer"); - var bb; - if (ByteBuffer.isByteBuffer(buffer)) { - bb = ByteBufferPrototype.clone.call(buffer); - bb.markedOffset = -1; - return bb; - } - if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array - bb = new ByteBuffer(0, littleEndian, noAssert); - if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER - bb.buffer = buffer.buffer; - bb.offset = buffer.byteOffset; - bb.limit = buffer.byteOffset + buffer.byteLength; - bb.view = new DataView(buffer.buffer); - } - } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer - bb = new ByteBuffer(0, littleEndian, noAssert); - if (buffer.byteLength > 0) { - bb.buffer = buffer; - bb.offset = 0; - bb.limit = buffer.byteLength; - bb.view = buffer.byteLength > 0 ? new DataView(buffer) : null; - } - } else if (Object.prototype.toString.call(buffer) === "[object Array]") { // Create from octets - bb = new ByteBuffer(buffer.length, littleEndian, noAssert); - bb.limit = buffer.length; - for (var i=0; i} value Array of booleans to write - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {!ByteBuffer} - * @expose - */ - ByteBufferPrototype.writeBitSet = function(value, offset) { +/* + Copyright 2013-2014 Daniel Wirtz + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/** + * @license bytebuffer.js (c) 2015 Daniel Wirtz + * Backing buffer: ArrayBuffer, Accessor: DataView + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bytebuffer.js for details + */ +(function(global, factory) { + + /* AMD */ if (typeof define === 'function' && define["amd"]) + define(["long"], factory); + /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) + module['exports'] = (function() { + var Long; try { Long = require("long"); } catch (e) {} + return factory(Long); + })(); + /* Global */ else + (global["dcodeIO"] = global["dcodeIO"] || {})["ByteBuffer"] = factory(global["dcodeIO"]["Long"]); + +})(this, function(Long) { + "use strict"; + + /** + * Constructs a new ByteBuffer. + * @class The swiss army knife for binary data in JavaScript. + * @exports ByteBuffer + * @constructor + * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @expose + */ + var ByteBuffer = function(capacity, littleEndian, noAssert) { + if (typeof capacity === 'undefined') + capacity = ByteBuffer.DEFAULT_CAPACITY; + if (typeof littleEndian === 'undefined') + littleEndian = ByteBuffer.DEFAULT_ENDIAN; + if (typeof noAssert === 'undefined') + noAssert = ByteBuffer.DEFAULT_NOASSERT; + if (!noAssert) { + capacity = capacity | 0; + if (capacity < 0) + throw RangeError("Illegal capacity"); + littleEndian = !!littleEndian; + noAssert = !!noAssert; + } + + /** + * Backing ArrayBuffer. + * @type {!ArrayBuffer} + * @expose + */ + this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity); + + /** + * DataView utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`. + * @type {?DataView} + * @expose + */ + this.view = capacity === 0 ? null : new DataView(this.buffer); + + /** + * Absolute read/write offset. + * @type {number} + * @expose + * @see ByteBuffer#flip + * @see ByteBuffer#clear + */ + this.offset = 0; + + /** + * Marked offset. + * @type {number} + * @expose + * @see ByteBuffer#mark + * @see ByteBuffer#reset + */ + this.markedOffset = -1; + + /** + * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation. + * @type {number} + * @expose + * @see ByteBuffer#flip + * @see ByteBuffer#clear + */ + this.limit = capacity; + + /** + * Whether to use little endian byte order, defaults to `false` for big endian. + * @type {boolean} + * @expose + */ + this.littleEndian = littleEndian; + + /** + * Whether to skip assertions of offsets and values, defaults to `false`. + * @type {boolean} + * @expose + */ + this.noAssert = noAssert; + }; + + /** + * ByteBuffer version. + * @type {string} + * @const + * @expose + */ + ByteBuffer.VERSION = "5.0.0"; + + /** + * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. + * @type {boolean} + * @const + * @expose + */ + ByteBuffer.LITTLE_ENDIAN = true; + + /** + * Big endian constant that can be used instead of its boolean value. Evaluates to `false`. + * @type {boolean} + * @const + * @expose + */ + ByteBuffer.BIG_ENDIAN = false; + + /** + * Default initial capacity of `16`. + * @type {number} + * @expose + */ + ByteBuffer.DEFAULT_CAPACITY = 16; + + /** + * Default endianess of `false` for big endian. + * @type {boolean} + * @expose + */ + ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN; + + /** + * Default no assertions flag of `false`. + * @type {boolean} + * @expose + */ + ByteBuffer.DEFAULT_NOASSERT = false; + + /** + * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded + * and int64 support is not available. + * @type {?Long} + * @const + * @see https://github.com/dcodeIO/long.js + * @expose + */ + ByteBuffer.Long = Long || null; + + /** + * @alias ByteBuffer.prototype + * @inner + */ + var ByteBufferPrototype = ByteBuffer.prototype; + + /** + * An indicator used to reliably determine if an object is a ByteBuffer or not. + * @type {boolean} + * @const + * @expose + * @private + */ + ByteBufferPrototype.__isByteBuffer__; + + Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", { + value: true, + enumerable: false, + configurable: false + }); + + // helpers + + /** + * @type {!ArrayBuffer} + * @inner + */ + var EMPTY_BUFFER = new ArrayBuffer(0); + + /** + * String.fromCharCode reference for compile-time renaming. + * @type {function(...number):string} + * @inner + */ + var stringFromCharCode = String.fromCharCode; + + /** + * Creates a source function for a string. + * @param {string} s String to read from + * @returns {function():number|null} Source function returning the next char code respectively `null` if there are + * no more characters left. + * @throws {TypeError} If the argument is invalid + * @inner + */ + function stringSource(s) { + var i=0; return function() { + return i < s.length ? s.charCodeAt(i++) : null; + }; + } + + /** + * Creates a destination function for a string. + * @returns {function(number=):undefined|string} Destination function successively called with the next char code. + * Returns the final string when called without arguments. + * @inner + */ + function stringDestination() { + var cs = [], ps = []; return function() { + if (arguments.length === 0) + return ps.join('')+stringFromCharCode.apply(String, cs); + if (cs.length + arguments.length > 1024) + ps.push(stringFromCharCode.apply(String, cs)), + cs.length = 0; + Array.prototype.push.apply(cs, arguments); + }; + } + + /** + * Gets the accessor type. + * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes) + * @expose + */ + ByteBuffer.accessor = function() { + return DataView; + }; + /** + * Allocates a new ByteBuffer backed by a buffer of the specified capacity. + * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} + * @expose + */ + ByteBuffer.allocate = function(capacity, littleEndian, noAssert) { + return new ByteBuffer(capacity, littleEndian, noAssert); + }; + + /** + * Concatenates multiple ByteBuffers into one. + * @param {!Array.} buffers Buffers to concatenate + * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary", + * defaults to "utf8") + * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults + * to {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} Concatenated ByteBuffer + * @expose + */ + ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) { + if (typeof encoding === 'boolean' || typeof encoding !== 'string') { + noAssert = littleEndian; + littleEndian = encoding; + encoding = undefined; + } + var capacity = 0; + for (var i=0, k=buffers.length, length; i 0) capacity += length; + } + if (capacity === 0) + return new ByteBuffer(0, littleEndian, noAssert); + var bb = new ByteBuffer(capacity, littleEndian, noAssert), + bi; + var view = new Uint8Array(bb.buffer); + i=0; while (i} buffer Anything that can be wrapped + * @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to + * "utf8") + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer` + * @expose + */ + ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) { + if (typeof encoding !== 'string') { + noAssert = littleEndian; + littleEndian = encoding; + encoding = undefined; + } + if (typeof buffer === 'string') { + if (typeof encoding === 'undefined') + encoding = "utf8"; + switch (encoding) { + case "base64": + return ByteBuffer.fromBase64(buffer, littleEndian); + case "hex": + return ByteBuffer.fromHex(buffer, littleEndian); + case "binary": + return ByteBuffer.fromBinary(buffer, littleEndian); + case "utf8": + return ByteBuffer.fromUTF8(buffer, littleEndian); + case "debug": + return ByteBuffer.fromDebug(buffer, littleEndian); + default: + throw Error("Unsupported encoding: "+encoding); + } + } + if (buffer === null || typeof buffer !== 'object') + throw TypeError("Illegal buffer"); + var bb; + if (ByteBuffer.isByteBuffer(buffer)) { + bb = ByteBufferPrototype.clone.call(buffer); + bb.markedOffset = -1; + return bb; + } + if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array + bb = new ByteBuffer(0, littleEndian, noAssert); + if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER + bb.buffer = buffer.buffer; + bb.offset = buffer.byteOffset; + bb.limit = buffer.byteOffset + buffer.byteLength; + bb.view = new DataView(buffer.buffer); + } + } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer + bb = new ByteBuffer(0, littleEndian, noAssert); + if (buffer.byteLength > 0) { + bb.buffer = buffer; + bb.offset = 0; + bb.limit = buffer.byteLength; + bb.view = buffer.byteLength > 0 ? new DataView(buffer) : null; + } + } else if (Object.prototype.toString.call(buffer) === "[object Array]") { // Create from octets + bb = new ByteBuffer(buffer.length, littleEndian, noAssert); + bb.limit = buffer.length; + for (var i=0; i} value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.writeBitSet = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (!(value instanceof Array)) - throw TypeError("Illegal BitSet: Not an array"); + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - - var start = offset, - bits = value.length, - bytes = (bits >> 3), - bit = 0, - k; - - offset += this.writeVarint32(bits,offset); - - while(bytes--) { - k = (!!value[bit++] & 1) | - ((!!value[bit++] & 1) << 1) | - ((!!value[bit++] & 1) << 2) | - ((!!value[bit++] & 1) << 3) | - ((!!value[bit++] & 1) << 4) | - ((!!value[bit++] & 1) << 5) | - ((!!value[bit++] & 1) << 6) | - ((!!value[bit++] & 1) << 7); - this.writeByte(k,offset++); - } - - if(bit < bits) { - var m = 0; k = 0; - while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); - this.writeByte(k,offset++); - } - - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - } - - /** - * Reads a BitSet as an array of booleans. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {Array - * @expose - */ - ByteBufferPrototype.readBitSet = function(offset) { + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + } + + /** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ + ByteBufferPrototype.readBitSet = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - - var ret = this.readVarint32(offset), - bits = ret.value, - bytes = (bits >> 3), - bit = 0, - value = [], - k; - - offset += ret.length; - - while(bytes--) { - k = this.readByte(offset++); - value[bit++] = !!(k & 0x01); - value[bit++] = !!(k & 0x02); - value[bit++] = !!(k & 0x04); - value[bit++] = !!(k & 0x08); - value[bit++] = !!(k & 0x10); - value[bit++] = !!(k & 0x20); - value[bit++] = !!(k & 0x40); - value[bit++] = !!(k & 0x80); - } - - if(bit < bits) { - var m = 0; - k = this.readByte(offset++); - while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); - } - - if (relative) { - this.offset = offset; - } - return value; - } - /** - * Reads the specified number of bytes. - * @param {number} length Number of bytes to read - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {!ByteBuffer} - * @expose - */ - ByteBufferPrototype.readBytes = function(length, offset) { + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; + } + /** + * Reads the specified number of bytes. + * @param {number} length Number of bytes to read + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.readBytes = function(length, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + length > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.byteLength); - } - var slice = this.slice(offset, offset + length); + } + var slice = this.slice(offset, offset + length); if (relative) this.offset += length; - return slice; - }; - - /** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; - - // types/ints/int8 - - /** - * Writes an 8bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeInt8 = function(value, offset) { + return slice; + }; + + /** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; + + // types/ints/int8 + + /** + * Writes an 8bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeInt8 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -543,68 +543,68 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 1; var capacity0 = this.buffer.byteLength; if (offset > capacity0) this.resize((capacity0 *= 2) > offset ? capacity0 : offset); offset -= 1; - this.view.setInt8(offset, value); + this.view.setInt8(offset, value); if (relative) this.offset += 1; - return this; - }; - - /** - * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8; - - /** - * Reads an 8bit signed integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt8 = function(offset) { + return this; + }; + + /** + * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8; + + /** + * Reads an 8bit signed integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt8 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var value = this.view.getInt8(offset); + } + var value = this.view.getInt8(offset); if (relative) this.offset += 1; - return value; - }; - - /** - * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8; - - /** - * Writes an 8bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUint8 = function(value, offset) { + return value; + }; + + /** + * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8; + + /** + * Writes an 8bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUint8 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -613,71 +613,71 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 1; var capacity1 = this.buffer.byteLength; if (offset > capacity1) this.resize((capacity1 *= 2) > offset ? capacity1 : offset); offset -= 1; - this.view.setUint8(offset, value); + this.view.setUint8(offset, value); if (relative) this.offset += 1; - return this; - }; - - /** - * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8; - - /** - * Reads an 8bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUint8 = function(offset) { + return this; + }; + + /** + * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8; + + /** + * Reads an 8bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUint8 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var value = this.view.getUint8(offset); + } + var value = this.view.getUint8(offset); if (relative) this.offset += 1; - return value; - }; - - /** - * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8; - - // types/ints/int16 - - /** - * Writes a 16bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeInt16 = function(value, offset) { + return value; + }; + + /** + * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8; + + // types/ints/int16 + + /** + * Writes a 16bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeInt16 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -686,74 +686,74 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 2; var capacity2 = this.buffer.byteLength; if (offset > capacity2) this.resize((capacity2 *= 2) > offset ? capacity2 : offset); offset -= 2; - this.view.setInt16(offset, value, this.littleEndian); + this.view.setInt16(offset, value, this.littleEndian); if (relative) this.offset += 2; - return this; - }; - - /** - * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16; - - /** - * Reads a 16bit signed integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readInt16 = function(offset) { + return this; + }; + + /** + * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16; + + /** + * Reads a 16bit signed integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readInt16 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 2 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.byteLength); - } - var value = this.view.getInt16(offset, this.littleEndian); + } + var value = this.view.getInt16(offset, this.littleEndian); if (relative) this.offset += 2; - return value; - }; - - /** - * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16; - - /** - * Writes a 16bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeUint16 = function(value, offset) { + return value; + }; + + /** + * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16; + + /** + * Writes a 16bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeUint16 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -762,74 +762,74 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 2; var capacity3 = this.buffer.byteLength; if (offset > capacity3) this.resize((capacity3 *= 2) > offset ? capacity3 : offset); offset -= 2; - this.view.setUint16(offset, value, this.littleEndian); + this.view.setUint16(offset, value, this.littleEndian); if (relative) this.offset += 2; - return this; - }; - - /** - * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16; - - /** - * Reads a 16bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readUint16 = function(offset) { + return this; + }; + + /** + * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16; + + /** + * Reads a 16bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readUint16 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 2 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.byteLength); - } - var value = this.view.getUint16(offset, this.littleEndian); + } + var value = this.view.getUint16(offset, this.littleEndian); if (relative) this.offset += 2; - return value; - }; - - /** - * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16; - - // types/ints/int32 - - /** - * Writes a 32bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeInt32 = function(value, offset) { + return value; + }; + + /** + * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16; + + // types/ints/int32 + + /** + * Writes a 32bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeInt32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -838,64 +838,64 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 4; var capacity4 = this.buffer.byteLength; if (offset > capacity4) this.resize((capacity4 *= 2) > offset ? capacity4 : offset); offset -= 4; - this.view.setInt32(offset, value, this.littleEndian); + this.view.setInt32(offset, value, this.littleEndian); if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32; - - /** - * Reads a 32bit signed integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32; + + /** + * Reads a 32bit signed integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var value = this.view.getInt32(offset, this.littleEndian); + } + var value = this.view.getInt32(offset, this.littleEndian); if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32; - - /** - * Writes a 32bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeUint32 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32; + + /** + * Writes a 32bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeUint32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -904,71 +904,71 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 4; var capacity5 = this.buffer.byteLength; if (offset > capacity5) this.resize((capacity5 *= 2) > offset ? capacity5 : offset); offset -= 4; - this.view.setUint32(offset, value, this.littleEndian); + this.view.setUint32(offset, value, this.littleEndian); if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32; - - /** - * Reads a 32bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUint32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32; + + /** + * Reads a 32bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUint32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var value = this.view.getUint32(offset, this.littleEndian); + } + var value = this.view.getUint32(offset, this.littleEndian); if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32; - - // types/ints/int64 - - if (Long) { - - /** - * Writes a 64bit signed integer. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeInt64 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32; + + // types/ints/int64 + + if (Long) { + + /** + * Writes a 64bit signed integer. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeInt64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -980,7 +980,7 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -990,68 +990,68 @@ if (offset > capacity6) this.resize((capacity6 *= 2) > offset ? capacity6 : offset); offset -= 8; - if (this.littleEndian) { - this.view.setInt32(offset , value.low , true); - this.view.setInt32(offset+4, value.high, true); - } else { - this.view.setInt32(offset , value.high, false); - this.view.setInt32(offset+4, value.low , false); - } + if (this.littleEndian) { + this.view.setInt32(offset , value.low , true); + this.view.setInt32(offset+4, value.high, true); + } else { + this.view.setInt32(offset , value.high, false); + this.view.setInt32(offset+4, value.low , false); + } if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64; - - /** - * Reads a 64bit signed integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readInt64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64; + + /** + * Reads a 64bit signed integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readInt64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength); - } - var value = this.littleEndian - ? new Long(this.view.getInt32(offset , true ), this.view.getInt32(offset+4, true ), false) - : new Long(this.view.getInt32(offset+4, false), this.view.getInt32(offset , false), false); + } + var value = this.littleEndian + ? new Long(this.view.getInt32(offset , true ), this.view.getInt32(offset+4, true ), false) + : new Long(this.view.getInt32(offset+4, false), this.view.getInt32(offset , false), false); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64; - - /** - * Writes a 64bit unsigned integer. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUint64 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64; + + /** + * Writes a 64bit unsigned integer. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUint64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1063,7 +1063,7 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1073,263 +1073,263 @@ if (offset > capacity7) this.resize((capacity7 *= 2) > offset ? capacity7 : offset); offset -= 8; - if (this.littleEndian) { - this.view.setInt32(offset , value.low , true); - this.view.setInt32(offset+4, value.high, true); - } else { - this.view.setInt32(offset , value.high, false); - this.view.setInt32(offset+4, value.low , false); - } + if (this.littleEndian) { + this.view.setInt32(offset , value.low , true); + this.view.setInt32(offset+4, value.high, true); + } else { + this.view.setInt32(offset , value.high, false); + this.view.setInt32(offset+4, value.low , false); + } if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}. - * @function - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64; - - /** - * Reads a 64bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readUint64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}. + * @function + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64; + + /** + * Reads a 64bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readUint64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength); - } - var value = this.littleEndian - ? new Long(this.view.getInt32(offset , true ), this.view.getInt32(offset+4, true ), true) - : new Long(this.view.getInt32(offset+4, false), this.view.getInt32(offset , false), true); + } + var value = this.littleEndian + ? new Long(this.view.getInt32(offset , true ), this.view.getInt32(offset+4, true ), true) + : new Long(this.view.getInt32(offset+4, false), this.view.getInt32(offset , false), true); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64; - - } // Long - - - // types/floats/float32 - - /** - * Writes a 32bit float. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat32 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64; + + } // Long + + + // types/floats/float32 + + /** + * Writes a 32bit float. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof value !== 'number') - throw TypeError("Illegal value: "+value+" (not a number)"); + if (!this.noAssert) { + if (typeof value !== 'number') + throw TypeError("Illegal value: "+value+" (not a number)"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 4; var capacity8 = this.buffer.byteLength; if (offset > capacity8) this.resize((capacity8 *= 2) > offset ? capacity8 : offset); offset -= 4; - this.view.setFloat32(offset, value, this.littleEndian); + this.view.setFloat32(offset, value, this.littleEndian); if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32; - - /** - * Reads a 32bit float. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32; + + /** + * Reads a 32bit float. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var value = this.view.getFloat32(offset, this.littleEndian); + } + var value = this.view.getFloat32(offset, this.littleEndian); if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32; - - // types/floats/float64 - - /** - * Writes a 64bit float. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat64 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32; + + // types/floats/float64 + + /** + * Writes a 64bit float. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof value !== 'number') - throw TypeError("Illegal value: "+value+" (not a number)"); + if (!this.noAssert) { + if (typeof value !== 'number') + throw TypeError("Illegal value: "+value+" (not a number)"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 8; var capacity9 = this.buffer.byteLength; if (offset > capacity9) this.resize((capacity9 *= 2) > offset ? capacity9 : offset); offset -= 8; - this.view.setFloat64(offset, value, this.littleEndian); + this.view.setFloat64(offset, value, this.littleEndian); if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64; - - /** - * Reads a 64bit float. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64; + + /** + * Reads a 64bit float. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength); - } - var value = this.view.getFloat64(offset, this.littleEndian); + } + var value = this.view.getFloat64(offset, this.littleEndian); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64; - - - // types/varints/varint32 - - /** - * Maximum number of bytes required to store a 32bit base 128 variable-length integer. - * @type {number} - * @const - * @expose - */ - ByteBuffer.MAX_VARINT32_BYTES = 5; - - /** - * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer. - * @param {number} value Value to encode - * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES} - * @expose - */ - ByteBuffer.calculateVarint32 = function(value) { - // ref: src/google/protobuf/io/coded_stream.cc - value = value >>> 0; - if (value < 1 << 7 ) return 1; - else if (value < 1 << 14) return 2; - else if (value < 1 << 21) return 3; - else if (value < 1 << 28) return 4; - else return 5; - }; - - /** - * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding. - * @param {number} n Signed 32bit integer - * @returns {number} Unsigned zigzag encoded 32bit integer - * @expose - */ - ByteBuffer.zigZagEncode32 = function(n) { - return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h - }; - - /** - * Decodes a zigzag encoded signed 32bit integer. - * @param {number} n Unsigned zigzag encoded 32bit integer - * @returns {number} Signed 32bit integer - * @expose - */ - ByteBuffer.zigZagDecode32 = function(n) { - return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h - }; - - /** - * Writes a 32bit base 128 variable-length integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeVarint32 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64; + + + // types/varints/varint32 + + /** + * Maximum number of bytes required to store a 32bit base 128 variable-length integer. + * @type {number} + * @const + * @expose + */ + ByteBuffer.MAX_VARINT32_BYTES = 5; + + /** + * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer. + * @param {number} value Value to encode + * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES} + * @expose + */ + ByteBuffer.calculateVarint32 = function(value) { + // ref: src/google/protobuf/io/coded_stream.cc + value = value >>> 0; + if (value < 1 << 7 ) return 1; + else if (value < 1 << 14) return 2; + else if (value < 1 << 21) return 3; + else if (value < 1 << 28) return 4; + else return 5; + }; + + /** + * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding. + * @param {number} n Signed 32bit integer + * @returns {number} Unsigned zigzag encoded 32bit integer + * @expose + */ + ByteBuffer.zigZagEncode32 = function(n) { + return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h + }; + + /** + * Decodes a zigzag encoded signed 32bit integer. + * @param {number} n Unsigned zigzag encoded 32bit integer + * @returns {number} Signed 32bit integer + * @expose + */ + ByteBuffer.zigZagDecode32 = function(n) { + return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h + }; + + /** + * Writes a 32bit base 128 variable-length integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeVarint32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -1338,190 +1338,190 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var size = ByteBuffer.calculateVarint32(value), - b; + } + var size = ByteBuffer.calculateVarint32(value), + b; offset += size; var capacity10 = this.buffer.byteLength; if (offset > capacity10) this.resize((capacity10 *= 2) > offset ? capacity10 : offset); offset -= size; - value >>>= 0; - while (value >= 0x80) { - b = (value & 0x7f) | 0x80; - this.view.setUint8(offset++, b); - value >>>= 7; - } - this.view.setUint8(offset++, value); - if (relative) { - this.offset = offset; - return this; - } - return size; - }; - - /** - * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) { - return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset); - }; - - /** - * Reads a 32bit base 128 variable-length integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read - * and the actual number of bytes read. - * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available - * to fully decode the varint. - * @expose - */ - ByteBufferPrototype.readVarint32 = function(offset) { + value >>>= 0; + while (value >= 0x80) { + b = (value & 0x7f) | 0x80; + this.view.setUint8(offset++, b); + value >>>= 7; + } + this.view.setUint8(offset++, value); + if (relative) { + this.offset = offset; + return this; + } + return size; + }; + + /** + * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) { + return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset); + }; + + /** + * Reads a 32bit base 128 variable-length integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read + * and the actual number of bytes read. + * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available + * to fully decode the varint. + * @expose + */ + ByteBufferPrototype.readVarint32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var c = 0, - value = 0 >>> 0, - b; - do { - if (!this.noAssert && offset > this.limit) { - var err = Error("Truncated"); - err['truncated'] = true; - throw err; - } - b = this.view.getUint8(offset++); - if (c < 5) - value |= (b & 0x7f) << (7*c); - ++c; - } while ((b & 0x80) !== 0); - value |= 0; - if (relative) { - this.offset = offset; - return value; - } - return { - "value": value, - "length": c - }; - }; - - /** - * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read - * and the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint32ZigZag = function(offset) { - var val = this.readVarint32(offset); - if (typeof val === 'object') - val["value"] = ByteBuffer.zigZagDecode32(val["value"]); - else - val = ByteBuffer.zigZagDecode32(val); - return val; - }; - - // types/varints/varint64 - - if (Long) { - - /** - * Maximum number of bytes required to store a 64bit base 128 variable-length integer. - * @type {number} - * @const - * @expose - */ - ByteBuffer.MAX_VARINT64_BYTES = 10; - - /** - * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer. - * @param {number|!Long} value Value to encode - * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES} - * @expose - */ - ByteBuffer.calculateVarint64 = function(value) { + } + var c = 0, + value = 0 >>> 0, + b; + do { + if (!this.noAssert && offset > this.limit) { + var err = Error("Truncated"); + err['truncated'] = true; + throw err; + } + b = this.view.getUint8(offset++); + if (c < 5) + value |= (b & 0x7f) << (7*c); + ++c; + } while ((b & 0x80) !== 0); + value |= 0; + if (relative) { + this.offset = offset; + return value; + } + return { + "value": value, + "length": c + }; + }; + + /** + * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read + * and the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint32ZigZag = function(offset) { + var val = this.readVarint32(offset); + if (typeof val === 'object') + val["value"] = ByteBuffer.zigZagDecode32(val["value"]); + else + val = ByteBuffer.zigZagDecode32(val); + return val; + }; + + // types/varints/varint64 + + if (Long) { + + /** + * Maximum number of bytes required to store a 64bit base 128 variable-length integer. + * @type {number} + * @const + * @expose + */ + ByteBuffer.MAX_VARINT64_BYTES = 10; + + /** + * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer. + * @param {number|!Long} value Value to encode + * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES} + * @expose + */ + ByteBuffer.calculateVarint64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') value = Long.fromString(value); - // ref: src/google/protobuf/io/coded_stream.cc - var part0 = value.toInt() >>> 0, - part1 = value.shiftRightUnsigned(28).toInt() >>> 0, - part2 = value.shiftRightUnsigned(56).toInt() >>> 0; - if (part2 == 0) { - if (part1 == 0) { - if (part0 < 1 << 14) - return part0 < 1 << 7 ? 1 : 2; - else - return part0 < 1 << 21 ? 3 : 4; - } else { - if (part1 < 1 << 14) - return part1 < 1 << 7 ? 5 : 6; - else - return part1 < 1 << 21 ? 7 : 8; - } - } else - return part2 < 1 << 7 ? 9 : 10; - }; - - /** - * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding. - * @param {number|!Long} value Signed long - * @returns {!Long} Unsigned zigzag encoded long - * @expose - */ - ByteBuffer.zigZagEncode64 = function(value) { + // ref: src/google/protobuf/io/coded_stream.cc + var part0 = value.toInt() >>> 0, + part1 = value.shiftRightUnsigned(28).toInt() >>> 0, + part2 = value.shiftRightUnsigned(56).toInt() >>> 0; + if (part2 == 0) { + if (part1 == 0) { + if (part0 < 1 << 14) + return part0 < 1 << 7 ? 1 : 2; + else + return part0 < 1 << 21 ? 3 : 4; + } else { + if (part1 < 1 << 14) + return part1 < 1 << 7 ? 5 : 6; + else + return part1 < 1 << 21 ? 7 : 8; + } + } else + return part2 < 1 << 7 ? 9 : 10; + }; + + /** + * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding. + * @param {number|!Long} value Signed long + * @returns {!Long} Unsigned zigzag encoded long + * @expose + */ + ByteBuffer.zigZagEncode64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - // ref: src/google/protobuf/wire_format_lite.h - return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned(); - }; - - /** - * Decodes a zigzag encoded signed 64bit integer. - * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number - * @returns {!Long} Signed long - * @expose - */ - ByteBuffer.zigZagDecode64 = function(value) { + // ref: src/google/protobuf/wire_format_lite.h + return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned(); + }; + + /** + * Decodes a zigzag encoded signed 64bit integer. + * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number + * @returns {!Long} Signed long + * @expose + */ + ByteBuffer.zigZagDecode64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - // ref: src/google/protobuf/wire_format_lite.h - return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned(); - }; - - /** - * Writes a 64bit base 128 variable-length integer. - * @param {number|Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeVarint64 = function(value, offset) { + // ref: src/google/protobuf/wire_format_lite.h + return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned(); + }; + + /** + * Writes a 64bit base 128 variable-length integer. + * @param {number|Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeVarint64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1533,402 +1533,402 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - var size = ByteBuffer.calculateVarint64(value), - part0 = value.toInt() >>> 0, - part1 = value.shiftRightUnsigned(28).toInt() >>> 0, - part2 = value.shiftRightUnsigned(56).toInt() >>> 0; + var size = ByteBuffer.calculateVarint64(value), + part0 = value.toInt() >>> 0, + part1 = value.shiftRightUnsigned(28).toInt() >>> 0, + part2 = value.shiftRightUnsigned(56).toInt() >>> 0; offset += size; var capacity11 = this.buffer.byteLength; if (offset > capacity11) this.resize((capacity11 *= 2) > offset ? capacity11 : offset); offset -= size; - switch (size) { - case 10: this.view.setUint8(offset+9, (part2 >>> 7) & 0x01); - case 9 : this.view.setUint8(offset+8, size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F); - case 8 : this.view.setUint8(offset+7, size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F); - case 7 : this.view.setUint8(offset+6, size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F); - case 6 : this.view.setUint8(offset+5, size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F); - case 5 : this.view.setUint8(offset+4, size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F); - case 4 : this.view.setUint8(offset+3, size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F); - case 3 : this.view.setUint8(offset+2, size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F); - case 2 : this.view.setUint8(offset+1, size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F); - case 1 : this.view.setUint8(offset , size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F); - } - if (relative) { - this.offset += size; - return this; - } else { - return size; - } - }; - - /** - * Writes a zig-zag encoded 64bit base 128 variable-length integer. - * @param {number|Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) { - return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset); - }; - - /** - * Reads a 64bit base 128 variable-length integer. Requires Long.js. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and - * the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint64 = function(offset) { + switch (size) { + case 10: this.view.setUint8(offset+9, (part2 >>> 7) & 0x01); + case 9 : this.view.setUint8(offset+8, size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F); + case 8 : this.view.setUint8(offset+7, size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F); + case 7 : this.view.setUint8(offset+6, size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F); + case 6 : this.view.setUint8(offset+5, size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F); + case 5 : this.view.setUint8(offset+4, size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F); + case 4 : this.view.setUint8(offset+3, size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F); + case 3 : this.view.setUint8(offset+2, size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F); + case 2 : this.view.setUint8(offset+1, size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F); + case 1 : this.view.setUint8(offset , size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F); + } + if (relative) { + this.offset += size; + return this; + } else { + return size; + } + }; + + /** + * Writes a zig-zag encoded 64bit base 128 variable-length integer. + * @param {number|Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) { + return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset); + }; + + /** + * Reads a 64bit base 128 variable-length integer. Requires Long.js. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and + * the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - // ref: src/google/protobuf/io/coded_stream.cc - var start = offset, - part0 = 0, - part1 = 0, - part2 = 0, - b = 0; - b = this.view.getUint8(offset++); part0 = (b & 0x7F) ; if (b & 0x80) { - b = this.view.getUint8(offset++); part0 |= (b & 0x7F) << 7; if (b & 0x80) { - b = this.view.getUint8(offset++); part0 |= (b & 0x7F) << 14; if (b & 0x80) { - b = this.view.getUint8(offset++); part0 |= (b & 0x7F) << 21; if (b & 0x80) { - b = this.view.getUint8(offset++); part1 = (b & 0x7F) ; if (b & 0x80) { - b = this.view.getUint8(offset++); part1 |= (b & 0x7F) << 7; if (b & 0x80) { - b = this.view.getUint8(offset++); part1 |= (b & 0x7F) << 14; if (b & 0x80) { - b = this.view.getUint8(offset++); part1 |= (b & 0x7F) << 21; if (b & 0x80) { - b = this.view.getUint8(offset++); part2 = (b & 0x7F) ; if (b & 0x80) { - b = this.view.getUint8(offset++); part2 |= (b & 0x7F) << 7; if (b & 0x80) { - throw Error("Buffer overrun"); }}}}}}}}}} - var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false); - if (relative) { - this.offset = offset; - return value; - } else { - return { - 'value': value, - 'length': offset-start - }; - } - }; - - /** - * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and - * the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint64ZigZag = function(offset) { - var val = this.readVarint64(offset); - if (val && val['value'] instanceof Long) - val["value"] = ByteBuffer.zigZagDecode64(val["value"]); - else - val = ByteBuffer.zigZagDecode64(val); - return val; - }; - - } // Long - - - // types/strings/cstring - - /** - * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL - * characters itself. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * contained in `str` + 1 if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeCString = function(str, offset) { + } + // ref: src/google/protobuf/io/coded_stream.cc + var start = offset, + part0 = 0, + part1 = 0, + part2 = 0, + b = 0; + b = this.view.getUint8(offset++); part0 = (b & 0x7F) ; if (b & 0x80) { + b = this.view.getUint8(offset++); part0 |= (b & 0x7F) << 7; if (b & 0x80) { + b = this.view.getUint8(offset++); part0 |= (b & 0x7F) << 14; if (b & 0x80) { + b = this.view.getUint8(offset++); part0 |= (b & 0x7F) << 21; if (b & 0x80) { + b = this.view.getUint8(offset++); part1 = (b & 0x7F) ; if (b & 0x80) { + b = this.view.getUint8(offset++); part1 |= (b & 0x7F) << 7; if (b & 0x80) { + b = this.view.getUint8(offset++); part1 |= (b & 0x7F) << 14; if (b & 0x80) { + b = this.view.getUint8(offset++); part1 |= (b & 0x7F) << 21; if (b & 0x80) { + b = this.view.getUint8(offset++); part2 = (b & 0x7F) ; if (b & 0x80) { + b = this.view.getUint8(offset++); part2 |= (b & 0x7F) << 7; if (b & 0x80) { + throw Error("Buffer overrun"); }}}}}}}}}} + var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false); + if (relative) { + this.offset = offset; + return value; + } else { + return { + 'value': value, + 'length': offset-start + }; + } + }; + + /** + * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and + * the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint64ZigZag = function(offset) { + var val = this.readVarint64(offset); + if (val && val['value'] instanceof Long) + val["value"] = ByteBuffer.zigZagDecode64(val["value"]); + else + val = ByteBuffer.zigZagDecode64(val); + return val; + }; + + } // Long + + + // types/strings/cstring + + /** + * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL + * characters itself. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * contained in `str` + 1 if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeCString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - var i, - k = str.length; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - for (i=0; i>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - // UTF8 strings do not contain zero bytes in between except for the zero character, so: - k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; + } + // UTF8 strings do not contain zero bytes in between except for the zero character, so: + k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; offset += k+1; var capacity12 = this.buffer.byteLength; if (offset > capacity12) this.resize((capacity12 *= 2) > offset ? capacity12 : offset); offset -= k+1; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view.setUint8(offset++, b); - }.bind(this)); - this.view.setUint8(offset++, 0); - if (relative) { - this.offset = offset; - return this; - } - return k; - }; - - /** - * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters - * itself. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readCString = function(offset) { + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view.setUint8(offset++, b); + }.bind(this)); + this.view.setUint8(offset++, 0); + if (relative) { + this.offset = offset; + return this; + } + return k; + }; + + /** + * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters + * itself. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readCString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var start = offset, - temp; - // UTF8 strings do not contain zero bytes in between except for the zero character itself, so: - var sd, b = -1; - utfx.decodeUTF8toUTF16(function() { - if (b === 0) return null; - if (offset >= this.limit) - throw RangeError("Illegal range: Truncated data, "+offset+" < "+this.limit); - b = this.view.getUint8(offset++); - return b === 0 ? null : b; - }.bind(this), sd = stringDestination(), true); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - "string": sd(), - "length": offset - start - }; - } - }; - - // types/strings/istring - - /** - * Writes a length as uint32 prefixed UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written - * @expose - * @see ByteBuffer#writeVarint32 - */ - ByteBufferPrototype.writeIString = function(str, offset) { + } + var start = offset, + temp; + // UTF8 strings do not contain zero bytes in between except for the zero character itself, so: + var sd, b = -1; + utfx.decodeUTF8toUTF16(function() { + if (b === 0) return null; + if (offset >= this.limit) + throw RangeError("Illegal range: Truncated data, "+offset+" < "+this.limit); + b = this.view.getUint8(offset++); + return b === 0 ? null : b; + }.bind(this), sd = stringDestination(), true); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + "string": sd(), + "length": offset - start + }; + } + }; + + // types/strings/istring + + /** + * Writes a length as uint32 prefixed UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written + * @expose + * @see ByteBuffer#writeVarint32 + */ + ByteBufferPrototype.writeIString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); + if (!this.noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var start = offset, - k; - k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; + } + var start = offset, + k; + k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; offset += 4+k; var capacity13 = this.buffer.byteLength; if (offset > capacity13) this.resize((capacity13 *= 2) > offset ? capacity13 : offset); offset -= 4+k; - this.view.setUint32(offset, k, this.littleEndian); - offset += 4; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view.setUint8(offset++, b); - }.bind(this)); - if (offset !== start + 4 + k) - throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+4+k)); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Reads a length as uint32 prefixed UTF8 encoded string. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - * @see ByteBuffer#readVarint32 - */ - ByteBufferPrototype.readIString = function(offset) { + this.view.setUint32(offset, k, this.littleEndian); + offset += 4; + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view.setUint8(offset++, b); + }.bind(this)); + if (offset !== start + 4 + k) + throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+4+k)); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Reads a length as uint32 prefixed UTF8 encoded string. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + * @see ByteBuffer#readVarint32 + */ + ByteBufferPrototype.readIString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var start = offset; - var len = this.readUint32(offset); - var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4); - offset += str['length']; - if (relative) { - this.offset = offset; - return str['string']; - } else { - return { - 'string': str['string'], - 'length': offset - start - }; - } - }; - - // types/strings/utf8string - - /** - * Metrics representing number of UTF8 characters. Evaluates to `c`. - * @type {string} - * @const - * @expose - */ - ByteBuffer.METRICS_CHARS = 'c'; - - /** - * Metrics representing number of bytes. Evaluates to `b`. - * @type {string} - * @const - * @expose - */ - ByteBuffer.METRICS_BYTES = 'b'; - - /** - * Writes an UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeUTF8String = function(str, offset) { + } + var start = offset; + var len = this.readUint32(offset); + var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4); + offset += str['length']; + if (relative) { + this.offset = offset; + return str['string']; + } else { + return { + 'string': str['string'], + 'length': offset - start + }; + } + }; + + // types/strings/utf8string + + /** + * Metrics representing number of UTF8 characters. Evaluates to `c`. + * @type {string} + * @const + * @expose + */ + ByteBuffer.METRICS_CHARS = 'c'; + + /** + * Metrics representing number of bytes. Evaluates to `b`. + * @type {string} + * @const + * @expose + */ + ByteBuffer.METRICS_BYTES = 'b'; + + /** + * Writes an UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeUTF8String = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var k; - var start = offset; - k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; + } + var k; + var start = offset; + k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; offset += k; var capacity14 = this.buffer.byteLength; if (offset > capacity14) this.resize((capacity14 *= 2) > offset ? capacity14 : offset); offset -= k; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view.setUint8(offset++, b); - }.bind(this)); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}. - * @function - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String; - - /** - * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's - * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF. - * @param {string} str String to calculate - * @returns {number} Number of UTF8 characters - * @expose - */ - ByteBuffer.calculateUTF8Chars = function(str) { - return utfx.calculateUTF16asUTF8(stringSource(str))[0]; - }; - - /** - * Calculates the number of UTF8 bytes of a string. - * @param {string} str String to calculate - * @returns {number} Number of UTF8 bytes - * @expose - */ - ByteBuffer.calculateUTF8Bytes = function(str) { - return utfx.calculateUTF16asUTF8(stringSource(str))[1]; - }; - - /** - * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}. - * @function - * @param {string} str String to calculate - * @returns {number} Number of UTF8 bytes - * @expose - */ - ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes; - - /** - * Reads an UTF8 encoded string. - * @param {number} length Number of characters or bytes to read. - * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to - * {@link ByteBuffer.METRICS_CHARS}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readUTF8String = function(length, metrics, offset) { - if (typeof metrics === 'number') { - offset = metrics; - metrics = undefined; - } + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view.setUint8(offset++, b); + }.bind(this)); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}. + * @function + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String; + + /** + * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's + * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF. + * @param {string} str String to calculate + * @returns {number} Number of UTF8 characters + * @expose + */ + ByteBuffer.calculateUTF8Chars = function(str) { + return utfx.calculateUTF16asUTF8(stringSource(str))[0]; + }; + + /** + * Calculates the number of UTF8 bytes of a string. + * @param {string} str String to calculate + * @returns {number} Number of UTF8 bytes + * @expose + */ + ByteBuffer.calculateUTF8Bytes = function(str) { + return utfx.calculateUTF16asUTF8(stringSource(str))[1]; + }; + + /** + * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}. + * @function + * @param {string} str String to calculate + * @returns {number} Number of UTF8 bytes + * @expose + */ + ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes; + + /** + * Reads an UTF8 encoded string. + * @param {number} length Number of characters or bytes to read. + * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to + * {@link ByteBuffer.METRICS_CHARS}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readUTF8String = function(length, metrics, offset) { + if (typeof metrics === 'number') { + offset = metrics; + metrics = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS; - if (!this.noAssert) { + if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS; + if (!this.noAssert) { if (typeof length !== 'number' || length % 1 !== 0) throw TypeError("Illegal length: "+length+" (not an integer)"); length |= 0; @@ -1937,275 +1937,275 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var i = 0, - start = offset, - sd; - if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser - sd = stringDestination(); - utfx.decodeUTF8(function() { - return i < length && offset < this.limit ? this.view.getUint8(offset++) : null; - }.bind(this), function(cp) { - ++i; utfx.UTF8toUTF16(cp, sd); - }); - if (i !== length) - throw RangeError("Illegal range: Truncated data, "+i+" == "+length); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - "string": sd(), - "length": offset - start - }; - } - } else if (metrics === ByteBuffer.METRICS_BYTES) { - if (!this.noAssert) { + } + var i = 0, + start = offset, + sd; + if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser + sd = stringDestination(); + utfx.decodeUTF8(function() { + return i < length && offset < this.limit ? this.view.getUint8(offset++) : null; + }.bind(this), function(cp) { + ++i; utfx.UTF8toUTF16(cp, sd); + }); + if (i !== length) + throw RangeError("Illegal range: Truncated data, "+i+" == "+length); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + "string": sd(), + "length": offset - start + }; + } + } else if (metrics === ByteBuffer.METRICS_BYTES) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + length > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.byteLength); - } - var k = offset + length; - utfx.decodeUTF8toUTF16(function() { - return offset < k ? this.view.getUint8(offset++) : null; - }.bind(this), sd = stringDestination(), this.noAssert); - if (offset !== k) - throw RangeError("Illegal range: Truncated data, "+offset+" == "+k); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - 'string': sd(), - 'length': offset - start - }; - } - } else - throw TypeError("Unsupported metrics: "+metrics); - }; - - /** - * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}. - * @function - * @param {number} length Number of characters or bytes to read - * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to - * {@link ByteBuffer.METRICS_CHARS}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String; - - // types/strings/vstring - - /** - * Writes a length as varint32 prefixed UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written - * @expose - * @see ByteBuffer#writeVarint32 - */ - ByteBufferPrototype.writeVString = function(str, offset) { + } + var k = offset + length; + utfx.decodeUTF8toUTF16(function() { + return offset < k ? this.view.getUint8(offset++) : null; + }.bind(this), sd = stringDestination(), this.noAssert); + if (offset !== k) + throw RangeError("Illegal range: Truncated data, "+offset+" == "+k); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + 'string': sd(), + 'length': offset - start + }; + } + } else + throw TypeError("Unsupported metrics: "+metrics); + }; + + /** + * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}. + * @function + * @param {number} length Number of characters or bytes to read + * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to + * {@link ByteBuffer.METRICS_CHARS}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String; + + // types/strings/vstring + + /** + * Writes a length as varint32 prefixed UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written + * @expose + * @see ByteBuffer#writeVarint32 + */ + ByteBufferPrototype.writeVString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); + if (!this.noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var start = offset, - k, l; - k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; - l = ByteBuffer.calculateVarint32(k); + } + var start = offset, + k, l; + k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; + l = ByteBuffer.calculateVarint32(k); offset += l+k; var capacity15 = this.buffer.byteLength; if (offset > capacity15) this.resize((capacity15 *= 2) > offset ? capacity15 : offset); offset -= l+k; - offset += this.writeVarint32(k, offset); - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view.setUint8(offset++, b); - }.bind(this)); - if (offset !== start+k+l) - throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+k+l)); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Reads a length as varint32 prefixed UTF8 encoded string. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - * @see ByteBuffer#readVarint32 - */ - ByteBufferPrototype.readVString = function(offset) { + offset += this.writeVarint32(k, offset); + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view.setUint8(offset++, b); + }.bind(this)); + if (offset !== start+k+l) + throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+k+l)); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Reads a length as varint32 prefixed UTF8 encoded string. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + * @see ByteBuffer#readVarint32 + */ + ByteBufferPrototype.readVString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var start = offset; - var len = this.readVarint32(offset); - var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']); - offset += str['length']; - if (relative) { - this.offset = offset; - return str['string']; - } else { - return { - 'string': str['string'], - 'length': offset - start - }; - } - }; - - - /** - * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended - * data's length. - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|` - * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|` - */ - ByteBufferPrototype.append = function(source, encoding, offset) { - if (typeof encoding === 'number' || typeof encoding !== 'string') { - offset = encoding; - encoding = undefined; - } + } + var start = offset; + var len = this.readVarint32(offset); + var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']); + offset += str['length']; + if (relative) { + this.offset = offset; + return str['string']; + } else { + return { + 'string': str['string'], + 'length': offset - start + }; + } + }; + + + /** + * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended + * data's length. + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|` + * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|` + */ + ByteBufferPrototype.append = function(source, encoding, offset) { + if (typeof encoding === 'number' || typeof encoding !== 'string') { + offset = encoding; + encoding = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - if (!(source instanceof ByteBuffer)) - source = ByteBuffer.wrap(source, encoding); - var length = source.limit - source.offset; - if (length <= 0) return this; // Nothing to append + } + if (!(source instanceof ByteBuffer)) + source = ByteBuffer.wrap(source, encoding); + var length = source.limit - source.offset; + if (length <= 0) return this; // Nothing to append offset += length; var capacity16 = this.buffer.byteLength; if (offset > capacity16) this.resize((capacity16 *= 2) > offset ? capacity16 : offset); offset -= length; - new Uint8Array(this.buffer, offset).set(new Uint8Array(source.buffer).subarray(source.offset, source.limit)); - source.offset += length; + new Uint8Array(this.buffer, offset).set(new Uint8Array(source.buffer).subarray(source.offset, source.limit)); + source.offset += length; if (relative) this.offset += length; - return this; - }; - - /** - * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the - specified offset up to the length of this ByteBuffer's data. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!ByteBuffer} this - * @expose - * @see ByteBuffer#append - */ - ByteBufferPrototype.appendTo = function(target, offset) { - target.append(this, offset); - return this; - }; - - /** - * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to - * disable them if your code already makes sure that everything is valid. - * @param {boolean} assert `true` to enable assertions, otherwise `false` - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.assert = function(assert) { - this.noAssert = !assert; - return this; - }; - - /** - * Gets the capacity of this ByteBuffer's backing buffer. - * @returns {number} Capacity of the backing buffer - * @expose - */ - ByteBufferPrototype.capacity = function() { - return this.buffer.byteLength; - }; - /** - * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the - * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.clear = function() { - this.offset = 0; - this.limit = this.buffer.byteLength; - this.markedOffset = -1; - return this; - }; - - /** - * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset}, - * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}. - * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false` - * @returns {!ByteBuffer} Cloned instance - * @expose - */ - ByteBufferPrototype.clone = function(copy) { - var bb = new ByteBuffer(0, this.littleEndian, this.noAssert); - if (copy) { - bb.buffer = new ArrayBuffer(this.buffer.byteLength); - new Uint8Array(bb.buffer).set(this.buffer); - bb.view = new DataView(bb.buffer); - } else { - bb.buffer = this.buffer; - bb.view = this.view; - } - bb.offset = this.offset; - bb.markedOffset = this.markedOffset; - bb.limit = this.limit; - return bb; - }; - - /** - * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes - * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and - * adapt {@link ByteBuffer#markedOffset} to the same relative position if set. - * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.compact = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + return this; + }; + + /** + * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the + specified offset up to the length of this ByteBuffer's data. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!ByteBuffer} this + * @expose + * @see ByteBuffer#append + */ + ByteBufferPrototype.appendTo = function(target, offset) { + target.append(this, offset); + return this; + }; + + /** + * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to + * disable them if your code already makes sure that everything is valid. + * @param {boolean} assert `true` to enable assertions, otherwise `false` + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.assert = function(assert) { + this.noAssert = !assert; + return this; + }; + + /** + * Gets the capacity of this ByteBuffer's backing buffer. + * @returns {number} Capacity of the backing buffer + * @expose + */ + ByteBufferPrototype.capacity = function() { + return this.buffer.byteLength; + }; + /** + * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the + * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.clear = function() { + this.offset = 0; + this.limit = this.buffer.byteLength; + this.markedOffset = -1; + return this; + }; + + /** + * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset}, + * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}. + * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false` + * @returns {!ByteBuffer} Cloned instance + * @expose + */ + ByteBufferPrototype.clone = function(copy) { + var bb = new ByteBuffer(0, this.littleEndian, this.noAssert); + if (copy) { + bb.buffer = new ArrayBuffer(this.buffer.byteLength); + new Uint8Array(bb.buffer).set(this.buffer); + bb.view = new DataView(bb.buffer); + } else { + bb.buffer = this.buffer; + bb.view = this.view; + } + bb.offset = this.offset; + bb.markedOffset = this.markedOffset; + bb.limit = this.limit; + return bb; + }; + + /** + * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes + * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and + * adapt {@link ByteBuffer#markedOffset} to the same relative position if set. + * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.compact = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2214,40 +2214,40 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin === 0 && end === this.buffer.byteLength) - return this; // Already compacted - var len = end - begin; - if (len === 0) { - this.buffer = EMPTY_BUFFER; - this.view = null; - if (this.markedOffset >= 0) this.markedOffset -= begin; - this.offset = 0; - this.limit = 0; - return this; - } - var buffer = new ArrayBuffer(len); - new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(begin, end)); - this.buffer = buffer; - this.view = new DataView(buffer); - if (this.markedOffset >= 0) this.markedOffset -= begin; - this.offset = 0; - this.limit = len; - return this; - }; - - /** - * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}. - * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} Copy - * @expose - */ - ByteBufferPrototype.copy = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + } + if (begin === 0 && end === this.buffer.byteLength) + return this; // Already compacted + var len = end - begin; + if (len === 0) { + this.buffer = EMPTY_BUFFER; + this.view = null; + if (this.markedOffset >= 0) this.markedOffset -= begin; + this.offset = 0; + this.limit = 0; + return this; + } + var buffer = new ArrayBuffer(len); + new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(begin, end)); + this.buffer = buffer; + this.view = new DataView(buffer); + if (this.markedOffset >= 0) this.markedOffset -= begin; + this.offset = 0; + this.limit = len; + return this; + }; + + /** + * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}. + * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} Copy + * @expose + */ + ByteBufferPrototype.copy = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2256,94 +2256,94 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin === end) - return new ByteBuffer(0, this.littleEndian, this.noAssert); - var capacity = end - begin, - bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert); - bb.offset = 0; - bb.limit = capacity; - if (bb.markedOffset >= 0) bb.markedOffset -= begin; - this.copyTo(bb, 0, begin, end); - return bb; - }; - - /** - * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset} - * by the number of bytes copied if omitted. - * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the - * number of bytes copied if omitted. - * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) { - var relative, - targetRelative; - if (!this.noAssert) { - if (!ByteBuffer.isByteBuffer(target)) - throw TypeError("Illegal target: Not a ByteBuffer"); - } - targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0; - sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0; - sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0; - - if (targetOffset < 0 || targetOffset > target.buffer.byteLength) - throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.byteLength); - if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength) - throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.byteLength); - - var len = sourceLimit - sourceOffset; - if (len === 0) - return target; // Nothing to copy - - target.ensureCapacity(targetOffset + len); - - new Uint8Array(target.buffer).set(new Uint8Array(this.buffer).subarray(sourceOffset, sourceLimit), targetOffset); - - if (relative) this.offset += len; - if (targetRelative) target.offset += len; - - return this; - }; - - /** - * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the - * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity, - * the required capacity will be used instead. - * @param {number} capacity Required capacity - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.ensureCapacity = function(capacity) { - var current = this.buffer.byteLength; - if (current < capacity) - return this.resize((current *= 2) > capacity ? current : capacity); - return this; - }; - - /** - * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @param {number|string} value Byte value to fill with. If given as a string, the first character is used. - * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} this - * @expose - * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes - */ - ByteBufferPrototype.fill = function(value, begin, end) { + } + if (begin === end) + return new ByteBuffer(0, this.littleEndian, this.noAssert); + var capacity = end - begin, + bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert); + bb.offset = 0; + bb.limit = capacity; + if (bb.markedOffset >= 0) bb.markedOffset -= begin; + this.copyTo(bb, 0, begin, end); + return bb; + }; + + /** + * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset} + * by the number of bytes copied if omitted. + * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the + * number of bytes copied if omitted. + * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) { + var relative, + targetRelative; + if (!this.noAssert) { + if (!ByteBuffer.isByteBuffer(target)) + throw TypeError("Illegal target: Not a ByteBuffer"); + } + targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0; + sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0; + sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0; + + if (targetOffset < 0 || targetOffset > target.buffer.byteLength) + throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.byteLength); + if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength) + throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.byteLength); + + var len = sourceLimit - sourceOffset; + if (len === 0) + return target; // Nothing to copy + + target.ensureCapacity(targetOffset + len); + + new Uint8Array(target.buffer).set(new Uint8Array(this.buffer).subarray(sourceOffset, sourceLimit), targetOffset); + + if (relative) this.offset += len; + if (targetRelative) target.offset += len; + + return this; + }; + + /** + * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the + * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity, + * the required capacity will be used instead. + * @param {number} capacity Required capacity + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.ensureCapacity = function(capacity) { + var current = this.buffer.byteLength; + if (current < capacity) + return this.resize((current *= 2) > capacity ? current : capacity); + return this; + }; + + /** + * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @param {number|string} value Byte value to fill with. If given as a string, the first character is used. + * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} this + * @expose + * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes + */ + ByteBufferPrototype.fill = function(value, begin, end) { var relative = typeof begin === 'undefined'; if (relative) begin = this.offset; - if (typeof value === 'string' && value.length > 0) - value = value.charCodeAt(0); - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + if (typeof value === 'string' && value.length > 0) + value = value.charCodeAt(0); + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -2355,227 +2355,227 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin >= end) - return this; // Nothing to fill - while (begin < end) this.view.setUint8(begin++, value); - if (relative) this.offset = begin; - return this; - }; - - /** - * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and - * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.flip = function() { - this.limit = this.offset; - this.offset = 0; - return this; - }; - /** - * Marks an offset on this ByteBuffer to be used later. - * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}. - * @returns {!ByteBuffer} this - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @see ByteBuffer#reset - * @expose - */ - ByteBufferPrototype.mark = function(offset) { - offset = typeof offset === 'undefined' ? this.offset : offset; - if (!this.noAssert) { + } + if (begin >= end) + return this; // Nothing to fill + while (begin < end) this.view.setUint8(begin++, value); + if (relative) this.offset = begin; + return this; + }; + + /** + * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and + * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.flip = function() { + this.limit = this.offset; + this.offset = 0; + return this; + }; + /** + * Marks an offset on this ByteBuffer to be used later. + * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}. + * @returns {!ByteBuffer} this + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @see ByteBuffer#reset + * @expose + */ + ByteBufferPrototype.mark = function(offset) { + offset = typeof offset === 'undefined' ? this.offset : offset; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - this.markedOffset = offset; - return this; - }; - /** - * Sets the byte order. - * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.order = function(littleEndian) { - if (!this.noAssert) { - if (typeof littleEndian !== 'boolean') - throw TypeError("Illegal littleEndian: Not a boolean"); - } - this.littleEndian = !!littleEndian; - return this; - }; - - /** - * Switches (to) little endian byte order. - * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.LE = function(littleEndian) { - this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true; - return this; - }; - - /** - * Switches (to) big endian byte order. - * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.BE = function(bigEndian) { - this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false; - return this; - }; - /** - * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the - * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer - * will be resized and its contents moved accordingly. - * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be - * modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes - * prepended if omitted. - * @returns {!ByteBuffer} this - * @expose - * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|` - * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|` - */ - ByteBufferPrototype.prepend = function(source, encoding, offset) { - if (typeof encoding === 'number' || typeof encoding !== 'string') { - offset = encoding; - encoding = undefined; - } + } + this.markedOffset = offset; + return this; + }; + /** + * Sets the byte order. + * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.order = function(littleEndian) { + if (!this.noAssert) { + if (typeof littleEndian !== 'boolean') + throw TypeError("Illegal littleEndian: Not a boolean"); + } + this.littleEndian = !!littleEndian; + return this; + }; + + /** + * Switches (to) little endian byte order. + * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.LE = function(littleEndian) { + this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true; + return this; + }; + + /** + * Switches (to) big endian byte order. + * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.BE = function(bigEndian) { + this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false; + return this; + }; + /** + * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the + * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer + * will be resized and its contents moved accordingly. + * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be + * modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes + * prepended if omitted. + * @returns {!ByteBuffer} this + * @expose + * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|` + * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|` + */ + ByteBufferPrototype.prepend = function(source, encoding, offset) { + if (typeof encoding === 'number' || typeof encoding !== 'string') { + offset = encoding; + encoding = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - if (!(source instanceof ByteBuffer)) - source = ByteBuffer.wrap(source, encoding); - var len = source.limit - source.offset; - if (len <= 0) return this; // Nothing to prepend - var diff = len - offset; - if (diff > 0) { // Not enough space before offset, so resize + move - var buffer = new ArrayBuffer(this.buffer.byteLength + diff); - var arrayView = new Uint8Array(buffer); - arrayView.set(new Uint8Array(this.buffer).subarray(offset, this.buffer.byteLength), len); - this.buffer = buffer; - this.view = new DataView(buffer); - this.offset += diff; - if (this.markedOffset >= 0) this.markedOffset += diff; - this.limit += diff; - offset += diff; - } else { - var arrayView = new Uint8Array(this.buffer); - } - arrayView.set(new Uint8Array(source.buffer).subarray(source.offset, source.limit), offset - len); - - source.offset = source.limit; - if (relative) - this.offset -= len; - return this; - }; - - /** - * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the - * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer - * will be resized and its contents moved accordingly. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes - * prepended if omitted. - * @returns {!ByteBuffer} this - * @expose - * @see ByteBuffer#prepend - */ - ByteBufferPrototype.prependTo = function(target, offset) { - target.prepend(this, offset); - return this; - }; - /** - * Prints debug information about this ByteBuffer's contents. - * @param {function(string)=} out Output function to call, defaults to console.log - * @expose - */ - ByteBufferPrototype.printDebug = function(out) { - if (typeof out !== 'function') out = console.log.bind(console); - out( - this.toString()+"\n"+ - "-------------------------------------------------------------------\n"+ - this.toDebug(/* columns */ true) - ); - }; - - /** - * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}, so this returns `limit - offset`. - * @returns {number} Remaining readable bytes. May be negative if `offset > limit`. - * @expose - */ - ByteBufferPrototype.remaining = function() { - return this.limit - this.offset; - }; - /** - * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark} - * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been - * marked, sets `offset = 0`. - * @returns {!ByteBuffer} this - * @see ByteBuffer#mark - * @expose - */ - ByteBufferPrototype.reset = function() { - if (this.markedOffset >= 0) { - this.offset = this.markedOffset; - this.markedOffset = -1; - } else { - this.offset = 0; - } - return this; - }; - /** - * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that - * large or larger. - * @param {number} capacity Capacity required - * @returns {!ByteBuffer} this - * @throws {TypeError} If `capacity` is not a number - * @throws {RangeError} If `capacity < 0` - * @expose - */ - ByteBufferPrototype.resize = function(capacity) { - if (!this.noAssert) { + } + if (!(source instanceof ByteBuffer)) + source = ByteBuffer.wrap(source, encoding); + var len = source.limit - source.offset; + if (len <= 0) return this; // Nothing to prepend + var diff = len - offset; + if (diff > 0) { // Not enough space before offset, so resize + move + var buffer = new ArrayBuffer(this.buffer.byteLength + diff); + var arrayView = new Uint8Array(buffer); + arrayView.set(new Uint8Array(this.buffer).subarray(offset, this.buffer.byteLength), len); + this.buffer = buffer; + this.view = new DataView(buffer); + this.offset += diff; + if (this.markedOffset >= 0) this.markedOffset += diff; + this.limit += diff; + offset += diff; + } else { + var arrayView = new Uint8Array(this.buffer); + } + arrayView.set(new Uint8Array(source.buffer).subarray(source.offset, source.limit), offset - len); + + source.offset = source.limit; + if (relative) + this.offset -= len; + return this; + }; + + /** + * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the + * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer + * will be resized and its contents moved accordingly. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes + * prepended if omitted. + * @returns {!ByteBuffer} this + * @expose + * @see ByteBuffer#prepend + */ + ByteBufferPrototype.prependTo = function(target, offset) { + target.prepend(this, offset); + return this; + }; + /** + * Prints debug information about this ByteBuffer's contents. + * @param {function(string)=} out Output function to call, defaults to console.log + * @expose + */ + ByteBufferPrototype.printDebug = function(out) { + if (typeof out !== 'function') out = console.log.bind(console); + out( + this.toString()+"\n"+ + "-------------------------------------------------------------------\n"+ + this.toDebug(/* columns */ true) + ); + }; + + /** + * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}, so this returns `limit - offset`. + * @returns {number} Remaining readable bytes. May be negative if `offset > limit`. + * @expose + */ + ByteBufferPrototype.remaining = function() { + return this.limit - this.offset; + }; + /** + * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark} + * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been + * marked, sets `offset = 0`. + * @returns {!ByteBuffer} this + * @see ByteBuffer#mark + * @expose + */ + ByteBufferPrototype.reset = function() { + if (this.markedOffset >= 0) { + this.offset = this.markedOffset; + this.markedOffset = -1; + } else { + this.offset = 0; + } + return this; + }; + /** + * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that + * large or larger. + * @param {number} capacity Capacity required + * @returns {!ByteBuffer} this + * @throws {TypeError} If `capacity` is not a number + * @throws {RangeError} If `capacity < 0` + * @expose + */ + ByteBufferPrototype.resize = function(capacity) { + if (!this.noAssert) { if (typeof capacity !== 'number' || capacity % 1 !== 0) throw TypeError("Illegal capacity: "+capacity+" (not an integer)"); capacity |= 0; - if (capacity < 0) - throw RangeError("Illegal capacity: 0 <= "+capacity); - } - if (this.buffer.byteLength < capacity) { - var buffer = new ArrayBuffer(capacity); - new Uint8Array(buffer).set(new Uint8Array(this.buffer)); - this.buffer = buffer; - this.view = new DataView(buffer); - } - return this; - }; - /** - * Reverses this ByteBuffer's contents. - * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.reverse = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + if (capacity < 0) + throw RangeError("Illegal capacity: 0 <= "+capacity); + } + if (this.buffer.byteLength < capacity) { + var buffer = new ArrayBuffer(capacity); + new Uint8Array(buffer).set(new Uint8Array(this.buffer)); + this.buffer = buffer; + this.view = new DataView(buffer); + } + return this; + }; + /** + * Reverses this ByteBuffer's contents. + * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.reverse = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2584,45 +2584,45 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin === end) - return this; // Nothing to reverse - Array.prototype.reverse.call(new Uint8Array(this.buffer).subarray(begin, end)); - this.view = new DataView(this.buffer); // FIXME: Why exactly is this necessary? - return this; - }; - /** - * Skips the next `length` bytes. This will just advance - * @param {number} length Number of bytes to skip. May also be negative to move the offset back. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.skip = function(length) { - if (!this.noAssert) { + } + if (begin === end) + return this; // Nothing to reverse + Array.prototype.reverse.call(new Uint8Array(this.buffer).subarray(begin, end)); + this.view = new DataView(this.buffer); // FIXME: Why exactly is this necessary? + return this; + }; + /** + * Skips the next `length` bytes. This will just advance + * @param {number} length Number of bytes to skip. May also be negative to move the offset back. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.skip = function(length) { + if (!this.noAssert) { if (typeof length !== 'number' || length % 1 !== 0) throw TypeError("Illegal length: "+length+" (not an integer)"); length |= 0; - } - var offset = this.offset + length; - if (!this.noAssert) { - if (offset < 0 || offset > this.buffer.byteLength) - throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.byteLength); - } - this.offset = offset; - return this; - }; - - /** - * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`. - * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer} - * @expose - */ - ByteBufferPrototype.slice = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + } + var offset = this.offset + length; + if (!this.noAssert) { + if (offset < 0 || offset > this.buffer.byteLength) + throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.byteLength); + } + this.offset = offset; + return this; + }; + + /** + * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`. + * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer} + * @expose + */ + ByteBufferPrototype.slice = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2631,24 +2631,24 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - var bb = this.clone(); - bb.offset = begin; - bb.limit = end; - return bb; - }; - /** - * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if - * possible. Defaults to `false` - * @returns {!ArrayBuffer} Contents as an ArrayBuffer - * @expose - */ - ByteBufferPrototype.toBuffer = function(forceCopy) { - var offset = this.offset, - limit = this.limit; - if (!this.noAssert) { + } + var bb = this.clone(); + bb.offset = begin; + bb.limit = end; + return bb; + }; + /** + * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if + * possible. Defaults to `false` + * @returns {!ArrayBuffer} Contents as an ArrayBuffer + * @expose + */ + ByteBufferPrototype.toBuffer = function(forceCopy) { + var offset = this.offset, + limit = this.limit; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: Not an integer"); offset >>>= 0; @@ -2657,67 +2657,67 @@ limit >>>= 0; if (offset < 0 || offset > limit || limit > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+offset+" <= "+limit+" <= "+this.buffer.byteLength); - } - // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is - // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So: - if (!forceCopy && offset === 0 && limit === this.buffer.byteLength) - return this.buffer; - if (offset === limit) - return EMPTY_BUFFER; - var buffer = new ArrayBuffer(limit - offset); - new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0); - return buffer; - }; - - /** - * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}. - * @function - * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory. - * Defaults to `false` - * @returns {!ArrayBuffer} Contents as an ArrayBuffer - * @expose - */ - ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer; - - /** - * Converts the ByteBuffer's contents to a string. - * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows - * direct conversion to "utf8", "hex", "base64" and "binary" encoding. "debug" returns a hex representation with - * highlighted offsets. - * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {string} String representation - * @throws {Error} If `encoding` is invalid - * @expose - */ - ByteBufferPrototype.toString = function(encoding, begin, end) { - if (typeof encoding === 'undefined') - return "ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")"; - if (typeof encoding === 'number') - encoding = "utf8", - begin = encoding, - end = begin; - switch (encoding) { - case "utf8": - return this.toUTF8(begin, end); - case "base64": - return this.toBase64(begin, end); - case "hex": - return this.toHex(begin, end); - case "binary": - return this.toBinary(begin, end); - case "debug": - return this.toDebug(); - case "columns": - return this.toColumns(); - default: - throw Error("Unsupported encoding: "+encoding); - } - }; - - // lxiv-embeddable - + } + // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is + // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So: + if (!forceCopy && offset === 0 && limit === this.buffer.byteLength) + return this.buffer; + if (offset === limit) + return EMPTY_BUFFER; + var buffer = new ArrayBuffer(limit - offset); + new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0); + return buffer; + }; + + /** + * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}. + * @function + * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory. + * Defaults to `false` + * @returns {!ArrayBuffer} Contents as an ArrayBuffer + * @expose + */ + ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer; + + /** + * Converts the ByteBuffer's contents to a string. + * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows + * direct conversion to "utf8", "hex", "base64" and "binary" encoding. "debug" returns a hex representation with + * highlighted offsets. + * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {string} String representation + * @throws {Error} If `encoding` is invalid + * @expose + */ + ByteBufferPrototype.toString = function(encoding, begin, end) { + if (typeof encoding === 'undefined') + return "ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")"; + if (typeof encoding === 'number') + encoding = "utf8", + begin = encoding, + end = begin; + switch (encoding) { + case "utf8": + return this.toUTF8(begin, end); + case "base64": + return this.toBase64(begin, end); + case "hex": + return this.toHex(begin, end); + case "binary": + return this.toBinary(begin, end); + case "debug": + return this.toDebug(); + case "columns": + return this.toColumns(); + default: + throw Error("Unsupported encoding: "+encoding); + } + }; + + // lxiv-embeddable + /** * lxiv-embeddable (c) 2014 Daniel Wirtz * Released under the Apache License, Version 2.0 @@ -2829,328 +2829,328 @@ return lxiv; }(); - - // encodings/base64 - - /** - * Encodes this ByteBuffer's contents to a base64 encoded string. - * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}. - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}. - * @returns {string} Base64 encoded string - * @throws {RangeError} If `begin` or `end` is out of bounds - * @expose - */ - ByteBufferPrototype.toBase64 = function(begin, end) { - if (typeof begin === 'undefined') - begin = this.offset; - if (typeof end === 'undefined') - end = this.limit; - begin = begin | 0; end = end | 0; - if (begin < 0 || end > this.capacity || begin > end) - throw RangeError("begin, end"); - var sd; lxiv.encode(function() { - return begin < end ? this.view.getUint8(begin++) : null; - }.bind(this), sd = stringDestination()); - return sd(); - }; - - /** - * Decodes a base64 encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromBase64 = function(str, littleEndian) { - if (typeof str !== 'string') - throw TypeError("str"); - var bb = new ByteBuffer(str.length/4*3, littleEndian), - i = 0; - lxiv.decode(stringSource(str), function(b) { - bb.view.setUint8(i++, b); - }); - bb.limit = i; - return bb; - }; - - /** - * Encodes a binary string to base64 like `window.btoa` does. - * @param {string} str Binary string - * @returns {string} Base64 encoded string - * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa - * @expose - */ - ByteBuffer.btoa = function(str) { - return ByteBuffer.fromBinary(str).toBase64(); - }; - - /** - * Decodes a base64 encoded string to binary like `window.atob` does. - * @param {string} b64 Base64 encoded string - * @returns {string} Binary string - * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob - * @expose - */ - ByteBuffer.atob = function(b64) { - return ByteBuffer.fromBase64(b64).toBinary(); - }; - - // encodings/binary - - /** - * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes. - * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}. - * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}. - * @returns {string} Binary encoded string - * @throws {RangeError} If `offset > limit` - * @expose - */ - ByteBufferPrototype.toBinary = function(begin, end) { - if (typeof begin === 'undefined') - begin = this.offset; - if (typeof end === 'undefined') - end = this.limit; - begin |= 0; end |= 0; - if (begin < 0 || end > this.capacity() || begin > end) - throw RangeError("begin, end"); - if (begin === end) - return ""; - var chars = [], - parts = []; - while (begin < end) { - chars.push(this.view.getUint8(begin++)); - if (chars.length >= 1024) - parts.push(String.fromCharCode.apply(String, chars)), - chars = []; - } - return parts.join('') + String.fromCharCode.apply(String, chars); - }; - - /** - * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromBinary = function(str, littleEndian) { - if (typeof str !== 'string') - throw TypeError("str"); - var i = 0, - k = str.length, - charCode, - bb = new ByteBuffer(k, littleEndian); - while (i 0xff) - throw RangeError("illegal char code: "+charCode); - bb.view.setUint8(i++, charCode); - } - bb.limit = k; - return bb; - }; - - // encodings/debug - - /** - * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are: - * * `<` : offset, - * * `'` : markedOffset, - * * `>` : limit, - * * `|` : offset and limit, - * * `[` : offset and markedOffset, - * * `]` : markedOffset and limit, - * * `!` : offset, markedOffset and limit - * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false` - * @returns {string|!Array.} Debug string or array of lines if `asArray = true` - * @expose - * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3` - * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4` - * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1` - * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1` - */ - ByteBufferPrototype.toDebug = function(columns) { - var i = -1, - k = this.buffer.byteLength, - b, - hex = "", - asc = "", - out = ""; - while (i 32 && b < 127 ? String.fromCharCode(b) : '.'; - } - ++i; - if (columns) { - if (i > 0 && i % 16 === 0 && i !== k) { - while (hex.length < 3*16+3) hex += " "; - out += hex+asc+"\n"; - hex = asc = ""; - } - } - if (i === this.offset && i === this.limit) - hex += i === this.markedOffset ? "!" : "|"; - else if (i === this.offset) - hex += i === this.markedOffset ? "[" : "<"; - else if (i === this.limit) - hex += i === this.markedOffset ? "]" : ">"; - else - hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : ""); - } - if (columns && hex !== " ") { - while (hex.length < 3*16+3) - hex += " "; - out += hex + asc + "\n"; - } - return columns ? out : hex; - }; - - /** - * Decodes a hex encoded string with marked offsets to a ByteBuffer. - * @param {string} str Debug string to decode (not be generated with `columns = true`) - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - * @see ByteBuffer#toDebug - */ - ByteBuffer.fromDebug = function(str, littleEndian, noAssert) { - var k = str.length, - bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert); - var i = 0, j = 0, ch, b, - rs = false, // Require symbol next - ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)? - fail = false; - while (i': - if (!noAssert) { - if (hl) { - fail = true; - break; - } - hl = true; - } - bb.limit = j; - rs = false; - break; - case "'": - if (!noAssert) { - if (hm) { - fail = true; - break; - } - hm = true; - } - bb.markedOffset = j; - rs = false; - break; - case ' ': - rs = false; - break; - default: - if (!noAssert) { - if (rs) { - fail = true; - break; - } - } - b = parseInt(ch+str.charAt(i++), 16); - if (!noAssert) { - if (isNaN(b) || b < 0 || b > 255) - throw TypeError("Illegal str: Not a debug encoded string"); - } - bb.view.setUint8(j++, b); - rs = true; - } - if (fail) - throw TypeError("Illegal str: Invalid symbol at "+i); - } - if (!noAssert) { - if (!ho || !hl) - throw TypeError("Illegal str: Missing offset or limit"); - if (j this.capacity || begin > end) + throw RangeError("begin, end"); + var sd; lxiv.encode(function() { + return begin < end ? this.view.getUint8(begin++) : null; + }.bind(this), sd = stringDestination()); + return sd(); + }; + + /** + * Decodes a base64 encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromBase64 = function(str, littleEndian) { + if (typeof str !== 'string') + throw TypeError("str"); + var bb = new ByteBuffer(str.length/4*3, littleEndian), + i = 0; + lxiv.decode(stringSource(str), function(b) { + bb.view.setUint8(i++, b); + }); + bb.limit = i; + return bb; + }; + + /** + * Encodes a binary string to base64 like `window.btoa` does. + * @param {string} str Binary string + * @returns {string} Base64 encoded string + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa + * @expose + */ + ByteBuffer.btoa = function(str) { + return ByteBuffer.fromBinary(str).toBase64(); + }; + + /** + * Decodes a base64 encoded string to binary like `window.atob` does. + * @param {string} b64 Base64 encoded string + * @returns {string} Binary string + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob + * @expose + */ + ByteBuffer.atob = function(b64) { + return ByteBuffer.fromBase64(b64).toBinary(); + }; + + // encodings/binary + + /** + * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes. + * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}. + * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}. + * @returns {string} Binary encoded string + * @throws {RangeError} If `offset > limit` + * @expose + */ + ByteBufferPrototype.toBinary = function(begin, end) { + if (typeof begin === 'undefined') + begin = this.offset; + if (typeof end === 'undefined') + end = this.limit; + begin |= 0; end |= 0; + if (begin < 0 || end > this.capacity() || begin > end) + throw RangeError("begin, end"); + if (begin === end) + return ""; + var chars = [], + parts = []; + while (begin < end) { + chars.push(this.view.getUint8(begin++)); + if (chars.length >= 1024) + parts.push(String.fromCharCode.apply(String, chars)), + chars = []; + } + return parts.join('') + String.fromCharCode.apply(String, chars); + }; + + /** + * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromBinary = function(str, littleEndian) { + if (typeof str !== 'string') + throw TypeError("str"); + var i = 0, + k = str.length, + charCode, + bb = new ByteBuffer(k, littleEndian); + while (i 0xff) + throw RangeError("illegal char code: "+charCode); + bb.view.setUint8(i++, charCode); + } + bb.limit = k; + return bb; + }; + + // encodings/debug + + /** + * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are: + * * `<` : offset, + * * `'` : markedOffset, + * * `>` : limit, + * * `|` : offset and limit, + * * `[` : offset and markedOffset, + * * `]` : markedOffset and limit, + * * `!` : offset, markedOffset and limit + * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false` + * @returns {string|!Array.} Debug string or array of lines if `asArray = true` + * @expose + * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3` + * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4` + * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1` + * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1` + */ + ByteBufferPrototype.toDebug = function(columns) { + var i = -1, + k = this.buffer.byteLength, + b, + hex = "", + asc = "", + out = ""; + while (i 32 && b < 127 ? String.fromCharCode(b) : '.'; + } + ++i; + if (columns) { + if (i > 0 && i % 16 === 0 && i !== k) { + while (hex.length < 3*16+3) hex += " "; + out += hex+asc+"\n"; + hex = asc = ""; + } + } + if (i === this.offset && i === this.limit) + hex += i === this.markedOffset ? "!" : "|"; + else if (i === this.offset) + hex += i === this.markedOffset ? "[" : "<"; + else if (i === this.limit) + hex += i === this.markedOffset ? "]" : ">"; + else + hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : ""); + } + if (columns && hex !== " ") { + while (hex.length < 3*16+3) + hex += " "; + out += hex + asc + "\n"; + } + return columns ? out : hex; + }; + + /** + * Decodes a hex encoded string with marked offsets to a ByteBuffer. + * @param {string} str Debug string to decode (not be generated with `columns = true`) + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + * @see ByteBuffer#toDebug + */ + ByteBuffer.fromDebug = function(str, littleEndian, noAssert) { + var k = str.length, + bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert); + var i = 0, j = 0, ch, b, + rs = false, // Require symbol next + ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)? + fail = false; + while (i': + if (!noAssert) { + if (hl) { + fail = true; + break; + } + hl = true; + } + bb.limit = j; + rs = false; + break; + case "'": + if (!noAssert) { + if (hm) { + fail = true; + break; + } + hm = true; + } + bb.markedOffset = j; + rs = false; + break; + case ' ': + rs = false; + break; + default: + if (!noAssert) { + if (rs) { + fail = true; + break; + } + } + b = parseInt(ch+str.charAt(i++), 16); + if (!noAssert) { + if (isNaN(b) || b < 0 || b > 255) + throw TypeError("Illegal str: Not a debug encoded string"); + } + bb.view.setUint8(j++, b); + rs = true; + } + if (fail) + throw TypeError("Illegal str: Invalid symbol at "+i); + } + if (!noAssert) { + if (!ho || !hl) + throw TypeError("Illegal str: Missing offset or limit"); + if (j>>= 0; @@ -3159,51 +3159,51 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - var out = new Array(end - begin), - b; - while (begin < end) { - b = this.view.getUint8(begin++); - if (b < 0x10) - out.push("0", b.toString(16)); - else out.push(b.toString(16)); - } - return out.join(''); - }; - - /** - * Decodes a hex encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromHex = function(str, littleEndian, noAssert) { - if (!noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - if (str.length % 2 !== 0) - throw TypeError("Illegal str: Length not a multiple of 2"); - } - var k = str.length, - bb = new ByteBuffer((k / 2) | 0, littleEndian), - b; - for (var i=0, j=0; i 255) - throw TypeError("Illegal str: Contains non-hex characters"); - bb.view.setUint8(j++, b); - } - bb.limit = j; - return bb; - }; - - // utfx-embeddable - + } + var out = new Array(end - begin), + b; + while (begin < end) { + b = this.view.getUint8(begin++); + if (b < 0x10) + out.push("0", b.toString(16)); + else out.push(b.toString(16)); + } + return out.join(''); + }; + + /** + * Decodes a hex encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromHex = function(str, littleEndian, noAssert) { + if (!noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); + if (str.length % 2 !== 0) + throw TypeError("Illegal str: Length not a multiple of 2"); + } + var k = str.length, + bb = new ByteBuffer((k / 2) | 0, littleEndian), + b; + for (var i=0, j=0; i 255) + throw TypeError("Illegal str: Contains non-hex characters"); + bb.view.setUint8(j++, b); + } + bb.limit = j; + return bb; + }; + + // utfx-embeddable + /** * utfx-embeddable (c) 2014 Daniel Wirtz * Released under the Apache License, Version 2.0 @@ -3400,20 +3400,20 @@ return utfx; }(); - - // encodings/utf8 - - /** - * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded - * string. - * @returns {string} Hex encoded string - * @throws {RangeError} If `offset > limit` - * @expose - */ - ByteBufferPrototype.toUTF8 = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + + // encodings/utf8 + + /** + * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded + * string. + * @returns {string} Hex encoded string + * @throws {RangeError} If `offset > limit` + * @expose + */ + ByteBufferPrototype.toUTF8 = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -3422,40 +3422,40 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - var sd; try { - utfx.decodeUTF8toUTF16(function() { - return begin < end ? this.view.getUint8(begin++) : null; - }.bind(this), sd = stringDestination()); - } catch (e) { - if (begin !== end) - throw RangeError("Illegal range: Truncated data, "+begin+" != "+end); - } - return sd(); - }; - - /** - * Decodes an UTF8 encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) { - if (!noAssert) - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert), - i = 0; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - bb.view.setUint8(i++, b); - }); - bb.limit = i; - return bb; - }; - - return ByteBuffer; -}); + } + var sd; try { + utfx.decodeUTF8toUTF16(function() { + return begin < end ? this.view.getUint8(begin++) : null; + }.bind(this), sd = stringDestination()); + } catch (e) { + if (begin !== end) + throw RangeError("Illegal range: Truncated data, "+begin+" != "+end); + } + return sd(); + }; + + /** + * Decodes an UTF8 encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) { + if (!noAssert) + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); + var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert), + i = 0; + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + bb.view.setUint8(i++, b); + }); + bb.limit = i; + return bb; + }; + + return ByteBuffer; +}); diff --git a/dist/bytebuffer-dataview.min.js b/dist/bytebuffer-dataview.min.js index fca5f2f..c8de74f 100644 --- a/dist/bytebuffer-dataview.min.js +++ b/dist/bytebuffer-dataview.min.js @@ -4,84 +4,85 @@ Released under the Apache License, Version 2.0 see: https://github.com/dcodeIO/bytebuffer.js for details */ -function u(k){function f(a,b,c){"undefined"===typeof a&&(a=f.DEFAULT_CAPACITY);"undefined"===typeof b&&(b=f.DEFAULT_ENDIAN);"undefined"===typeof c&&(c=f.DEFAULT_NOASSERT);if(!c){a|=0;if(0>a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c}function n(a){var b=0;return function(){return b=p||(e.set((new Uint8Array(c.buffer)).subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset; -b.offset=0;return b};f.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};f.type=function(){return ArrayBuffer};f.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return f.fromBase64(a,c);case "hex":return f.fromHex(a,c);case "binary":return f.fromBinary(a,c);case "utf8":return f.fromUTF8(a,c);case "debug":return f.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!== -typeof a)throw TypeError("Illegal buffer");if(f.isByteBuffer(a))return b=d.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new f(0,c,e),0>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b, -h=a.length,d=h>>3,g=0,f;for(b+=this.writeVarint32(h,b);d--;)f=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]&1)<<7,this.writeByte(f,b++);if(g>3,d=0,g=[];for(a+=c.length;h--;)c=this.readByte(a++),g[d++]=!!(c&1),g[d++]=!!(c& -2),g[d++]=!!(c&4),g[d++]=!!(c&8),g[d++]=!!(c&16),g[d++]=!!(c&32),g[d++]=!!(c&64),g[d++]=!!(c&128);if(d>h++&1);b&&(this.offset=a);return g};d.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var e= -this.slice(b,b+a);c&&(this.offset+=a);return e};d.writeBytes=d.append;d.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength; -b>e&&this.resize((e*=2)>b?e:b);--b;this.view.setInt8(b,a);c&&(this.offset+=1);return this};d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getInt8(a);b&&(this.offset+=1);return a};d.readByte=d.readInt8;d.writeUint8= -function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);--b;this.view.setUint8(b,a);c&&(this.offset+=1); -return this};d.writeUInt8=d.writeUint8;d.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getUint8(a);b&&(this.offset+=1);return a};d.readUInt8=d.readUint8;d.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeShort=d.writeInt16;d.readInt16=function(a){var b="undefined"=== -typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getInt16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readShort=d.readInt16;d.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+ -a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeUInt16=d.writeUint16;d.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getUint16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readUInt16=d.readUint16;d.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b|| -0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeInt=d.writeInt32;d.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getInt32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readInt=d.readInt32;d.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)"); -b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeUInt32=d.writeUint32;d.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getUint32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readUInt32=d.readUint32;k&&(d.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)"); -b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;this.littleEndian?(this.view.setInt32(b,a.low,!0),this.view.setInt32(b+4,a.high,!0)):(this.view.setInt32(b,a.high,!1),this.view.setInt32(b+4,a.low,!1));c&&(this.offset+=8);return this},d.writeLong=d.writeInt64,d.readInt64=function(a){var b= -"undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=this.littleEndian?new k(this.view.getInt32(a,!0),this.view.getInt32(a+4,!0),!1):new k(this.view.getInt32(a+4,!1),this.view.getInt32(a,!1),!1);b&&(this.offset+=8);return a},d.readLong=d.readInt64,d.writeUint64=function(a,b){var c= -"undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"=== -typeof a&&(a=k.fromString(a));b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;this.littleEndian?(this.view.setInt32(b,a.low,!0),this.view.setInt32(b+4,a.high,!0)):(this.view.setInt32(b,a.high,!1),this.view.setInt32(b+4,a.low,!1));c&&(this.offset+=8);return this},d.writeUInt64=d.writeUint64,d.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0; -if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=this.littleEndian?new k(this.view.getInt32(a,!0),this.view.getInt32(a+4,!0),!0):new k(this.view.getInt32(a+4,!1),this.view.getInt32(a,!1),!0);b&&(this.offset+=8);return a},d.readUInt64=d.readUint64);d.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setFloat32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeFloat=d.writeFloat32;d.readFloat32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getFloat32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readFloat=d.readFloat32;d.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)"); -b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setFloat64(b-8,a,this.littleEndian);c&&(this.offset+=8);return this};d.writeDouble=d.writeFloat64;d.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -a+" (+8) <= "+this.buffer.byteLength);}a=this.view.getFloat64(a,this.littleEndian);b&&(this.offset+=8);return a};d.readDouble=d.readFloat64;f.MAX_VARINT32_BYTES=5;f.calculateVarint32=function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};f.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};f.zigZagDecode32=function(a){return a>>>1^-(a&1)|0};d.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+ -a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=f.calculateVarint32(a),h;b+=e;h=this.buffer.byteLength;b>h&&this.resize((h*=2)>b?h:b);b-=e;for(a>>>=0;128<=a;)h=a&127|128,this.view.setUint8(b++,h),a>>>=7;this.view.setUint8(b++,a);return c?(this.offset=b,this):e};d.writeVarint32ZigZag=function(a,b){return this.writeVarint32(f.zigZagEncode32(a), -b)};d.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,e=0,h;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;h=this.view.getUint8(a++);5>c&&(e|=(h&127)<<7*c);++c}while(0!==(h&128));e|=0;return b?(this.offset= -a,e):{value:e,length:c}};d.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=f.zigZagDecode32(a.value):a=f.zigZagDecode32(a);return a};k&&(f.MAX_VARINT64_BYTES=10,f.calculateVarint64=function(a){"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));var b=a.toInt()>>>0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},f.zigZagEncode64= -function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},f.zigZagDecode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(k.ONE).toSigned().negate()).toSigned()},d.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"=== -typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var e= -f.calculateVarint64(a),h=a.toInt()>>>0,d=a.shiftRightUnsigned(28).toInt()>>>0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=e;var p=this.buffer.byteLength;b>p&&this.resize((p*=2)>b?p:b);b-=e;switch(e){case 10:this.view.setUint8(b+9,g>>>7&1);case 9:this.view.setUint8(b+8,9!==e?g|128:g&127);case 8:this.view.setUint8(b+7,8!==e?d>>>21|128:d>>>21&127);case 7:this.view.setUint8(b+6,7!==e?d>>>14|128:d>>>14&127);case 6:this.view.setUint8(b+5,6!==e?d>>>7|128:d>>>7&127);case 5:this.view.setUint8(b+4,5!==e?d|128: -d&127);case 4:this.view.setUint8(b+3,4!==e?h>>>21|128:h>>>21&127);case 3:this.view.setUint8(b+2,3!==e?h>>>14|128:h>>>14&127);case 2:this.view.setUint8(b+1,2!==e?h>>>7|128:h>>>7&127);case 1:this.view.setUint8(b,1!==e?h|128:h&127)}return c?(this.offset+=e,this):e},d.writeVarint64ZigZag=function(a,b){return this.writeVarint64(f.zigZagEncode64(a),b)},d.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=0,h=0,d=0,g=0,g=this.view.getUint8(a++),e=g&127;if(g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),h=g&127,g&128&&(g=this.view.getUint8(a++),h|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),h|=(g&127)<<14,g&128&&(g= -this.view.getUint8(a++),h|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),d=g&127,g&128&&(g=this.view.getUint8(a++),d|=(g&127)<<7,g&128))))))))))throw Error("Buffer overrun");e=k.fromBits(e|h<<28,h>>>4|d<<24,!1);return b?(this.offset=a,e):{value:e,length:a-c}},d.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=f.zigZagDecode64(a.value):a=f.zigZagDecode64(a);return a});d.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var e,h=a.length; -if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(e=0;e>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}h=m.a(n(a))[1];b+=h+1;e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=h+1;m.b(n(a),function(a){this.view.setUint8(b++, -a)}.bind(this));this.view.setUint8(b++,0);return c?(this.offset=b,this):h};d.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e,h=-1;m.c(function(){if(0===h)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+ -" < "+this.limit);h=this.view.getUint8(a++);return 0===h?null:h}.bind(this),e=t(),!0);return b?(this.offset=a,e()):{string:e(),length:a-c}};d.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); -}var e=b,h;h=m.a(n(a),this.noAssert)[1];b+=4+h;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4+h;this.view.setUint32(b,h,this.littleEndian);b+=4;m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+4+h)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+h));return c?(this.offset=b,this):b-e};d.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+ -" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,e=this.readUint32(a),e=this.readUTF8String(e,f.METRICS_BYTES,a+=4);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};f.METRICS_CHARS="c";f.METRICS_BYTES="b";d.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+ -" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e,d=b;e=m.a(n(a))[1];b+=e;var f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=e;m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));return c?(this.offset=b,this):b-d};d.writeString=d.writeUTF8String;f.calculateUTF8Chars=function(a){return m.a(n(a))[0]};f.calculateUTF8Bytes=function(a){return m.a(n(a))[1]};f.calculateString=f.calculateUTF8Bytes; -d.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var e="undefined"===typeof c;e&&(c=this.offset);"undefined"===typeof b&&(b=f.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var d=0,l=c,g; -if(b===f.METRICS_CHARS){g=t();m.h(function(){return d>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength); -}var p=c+a;m.c(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,d,l;d=m.a(n(a),this.noAssert)[1];l=f.calculateVarint32(d);b+=l+d;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=l+d;b+=this.writeVarint32(d,b);m.b(n(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+d+l)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+d+l));return c?(this.offset=b,this):b-e};d.readVString= -function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=this.readVarint32(a),e=this.readUTF8String(e.value,f.METRICS_BYTES,a+=e.length);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};d.append=function(a,b,c){if("number"===typeof b|| -"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var d=this.buffer.byteLength;c>d&&this.resize((d*=2)>c?d:c);(new Uint8Array(this.buffer,c-b)).set((new Uint8Array(a.buffer)).subarray(a.offset, -a.limit));a.offset+=b;e&&(this.offset+=b);return this};d.appendTo=function(a,b){a.append(this,b);return this};d.assert=function(a){this.noAssert=!a;return this};d.capacity=function(){return this.buffer.byteLength};d.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};d.clone=function(a){var b=new f(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),(new Uint8Array(b.buffer)).set(this.buffer),b.view=new DataView(b.buffer)): -(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};d.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+ -b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c);(new Uint8Array(e)).set((new Uint8Array(this.buffer)).subarray(a,b));this.buffer=e;this.view=new DataView(e);0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"=== -typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new f(0,this.littleEndian,this.noAssert);var c=b-a,e=new f(c,this.littleEndian,this.noAssert);e.offset=0;e.limit=c;0<=e.markedOffset&&(e.markedOffset-= -a);this.copyTo(e,0,a,b);return e};d.copyTo=function(a,b,c,e){var d,l;if(!this.noAssert&&!f.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(l="undefined"===typeof b)?a.offset:b|0;c=(d="undefined"===typeof c)?this.offset:c|0;e="undefined"===typeof e?this.limit:e|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||e>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+c+" <= "+this.buffer.byteLength); -var g=e-c;if(0===g)return a;a.ensureCapacity(b+g);(new Uint8Array(a.buffer)).set((new Uint8Array(this.buffer)).subarray(c,e),b);d&&(this.offset+=g);l&&(a.offset+=g);return this};d.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};d.fill=function(a,b,c){var e="undefined"===typeof b;e&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};d.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};d.LE= -function(a){this.littleEndian="undefined"!==typeof a?!!a:!0;return this};d.BE=function(a){this.littleEndian="undefined"!==typeof a?!a:!1;return this};d.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength); -}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var d=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+a);}this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer"); -b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call((new Uint8Array(this.buffer)).subarray(a,b));this.view=new DataView(this.buffer);return this};d.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+ -this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};d.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone(); -c.offset=a;c.limit=b;return c};d.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b); -(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};d.toArrayBuffer=d.toBuffer;d.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug(); -case "columns":return this.o();default:throw Error("Unsupported encoding: "+a);}};var x=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],e=0,d=b.length;e>2&63]),d=(e&3)<<4,null!==(e=a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<< -2,null!==(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.decode=function(a,b){function e(a){throw Error("Illegal character code: "+a);}for(var d,h,f;null!==(d=a());)if(h=c[d],"undefined"===typeof h&&e(d),null!==(d=a())&&(f=c[d],"undefined"===typeof f&&e(d),b(h<<2>>>0|(f&48)>>4),null!==(d=a()))){h=c[d];if("undefined"===typeof h)if(61===d)break;else e(d);b((f&15)<<4>>>0|(h&60)>>2);if(null!==(d=a())){f=c[d];if("undefined"===typeof f)if(61===d)break;else e(d); -b((h&3)<<6>>>0|f)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a=a|0;b=b|0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;x.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+="0"+e.toString(16).toUpperCase():d+=e.toString(16).toUpperCase(),a&&(f+=32e?String.fromCharCode(e): -"."));++b;if(a&&0d.length;)d+=" ";g+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset?d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";g+=d+f+"\n"}return a?g:d};f.fromDebug=function(a,b,c){var e=a.length;b=new f((e+1)/3|0,b,c);for(var d=0,l=0,g,k=!1,m=!1,n=!1,r=!1,q=!1;d":if(!c){if(r){q=!0;break}r=!0}b.limit=l;k=!1;break;case "'":if(!c){if(n){q=!0;break}n=!0}b.markedOffset=l;k=!1;break;case " ":k=!1; -break;default:if(!c&&k){q=!0;break}g=parseInt(g+a.charAt(d++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),e;ae?c.push("0",e.toString(16)):c.push(e.toString(16));return c.join("")};f.fromHex=function(a,b,c){if(!c){if("string"!== -typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var e=a.length;b=new f(e/2|0,b);for(var d,l=0,g=0;ld||255e?c(e&127):(2048>e?c(e>>6&31|192):(65536>e?c(e>>12&15|224):(c(e>>18&7|240),c(e>>12&63|128)),c(e>>6&63|128)),c(e&63|128)),e=null},h:function(a,c){function e(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;}for(var d,f,g,k;null!==(d=a());)if(0===(d&128))c(d);else if(192===(d&224))null===(f=a())&&e([d,f]),c((d&31)<<6|f&63);else if(224===(d&240))null!==(f=a())&&null!==(g=a())||e([d,f,g]),c((d&15)<<12|(f&63)<<6|g&63);else if(240===(d&248))null!== -(f=a())&&null!==(g=a())&&null!==(k=a())||e([d,f,g,k]),c((d&7)<<18|(f&63)<<12|(g&63)<<6|k&63);else throw RangeError("Illegal starting byte: "+d);},f:function(a,c){for(var e,d=null;null!==(e=null!==d?d:a());)55296<=e&&57343>=e&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(e-55296)+d-56320+65536),d=null):c(e);null!==d&&c(d)},g:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},b:function(b, -c){a.f(b,function(b){a.i(b,c)})},c:function(b,c){a.h(b,function(b){a.g(b,c)})},l:function(a){return 128>a?1:2048>a?2:65536>a?3:4},m:function(a){for(var c,d=0;null!==(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},a:function(b){var c=0,d=0;a.f(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer"); -a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.c(function(){return aa)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?t:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};f.VERSION= +"5.0.0";f.LITTLE_ENDIAN=!0;f.BIG_ENDIAN=!1;f.DEFAULT_CAPACITY=16;f.DEFAULT_ENDIAN=f.BIG_ENDIAN;f.DEFAULT_NOASSERT=!1;f.Long=h||null;var d=f.prototype;Object.defineProperty(d,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var t=new ArrayBuffer(0),u=String.fromCharCode;f.accessor=function(){return DataView};f.allocate=function(a,b,c){return new f(a,b,c)};f.concat=function(a,b,c,e){if("boolean"===typeof b||"string"!==typeof b)e=c,c=b,b=void 0;for(var k=0,d=0,g=a.length,p;d=p||(e.set((new Uint8Array(c.buffer)).subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset;b.offset=0;return b};f.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};f.type=function(){return ArrayBuffer};f.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"=== +typeof b&&(b="utf8"),b){case "base64":return f.fromBase64(a,c);case "hex":return f.fromHex(a,c);case "binary":return f.fromBinary(a,c);case "utf8":return f.fromUTF8(a,c);case "debug":return f.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(f.isByteBuffer(a))return b=d.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new f(0,c,e),0>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,k=a.length,d=k>>3,g=0,f;for(b+=this.writeVarint32(k,b);d--;)f=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]&1)<<7,this.writeByte(f,b++);if(g>3,d=0,g=[];for(a+=c.length;k--;)c=this.readByte(a++),g[d++]=!!(c&1),g[d++]=!!(c&2),g[d++]=!!(c&4),g[d++]=!!(c&8),g[d++]=!!(c&16),g[d++]=!!(c&32),g[d++]=!!(c&64),g[d++]=!!(c&128);if(d>k++&1);b&&(this.offset=a);return g};d.readBytes=function(a,b){var c="undefined"=== +typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var e=this.slice(b,b+a);c&&(this.offset+=a);return e};d.writeBytes=d.append;d.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); +a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt8(b-1,a);c&&(this.offset+=1);return this};d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getInt8(a);b&&(this.offset+=1);return a};d.readByte=d.readInt8;d.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>= +0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint8(b-1,a);c&&(this.offset+=1);return this};d.writeUInt8=d.writeUint8;d.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getUint8(a);b&&(this.offset+=1);return a};d.readUInt8=d.readUint8;d.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); +}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeShort=d.writeInt16;d.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getInt16(a,this.littleEndian); +b&&(this.offset+=2);return a};d.readShort=d.readInt16;d.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*= +2)>b?e:b);this.view.setUint16(b-2,a,this.littleEndian);c&&(this.offset+=2);return this};d.writeUInt16=d.writeUint16;d.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}a=this.view.getUint16(a,this.littleEndian);b&&(this.offset+=2);return a};d.readUInt16= +d.readUint16;d.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt32(b-4, +a,this.littleEndian);c&&(this.offset+=4);return this};d.writeInt=d.writeInt32;d.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getInt32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readInt=d.readInt32;d.writeUint32=function(a,b){var c= +"undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this}; +d.writeUInt32=d.writeUint32;d.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getUint32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readUInt32=d.readUint32;h&&(d.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset); +if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));b+=8;var e= +this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;this.littleEndian?(this.view.setInt32(b,a.low,!0),this.view.setInt32(b+4,a.high,!0)):(this.view.setInt32(b,a.high,!1),this.view.setInt32(b+4,a.low,!1));c&&(this.offset+=8);return this},d.writeLong=d.writeInt64,d.readInt64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +a+" (+8) <= "+this.buffer.byteLength);}a=this.littleEndian?new h(this.view.getInt32(a,!0),this.view.getInt32(a+4,!0),!1):new h(this.view.getInt32(a+4,!1),this.view.getInt32(a,!1),!1);b&&(this.offset+=8);return a},d.readLong=d.readInt64,d.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)"); +if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;this.littleEndian?(this.view.setInt32(b,a.low,!0),this.view.setInt32(b+4,a.high,!0)):(this.view.setInt32(b,a.high,!1),this.view.setInt32(b+4, +a.low,!1));c&&(this.offset+=8);return this},d.writeUInt64=d.writeUint64,d.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=this.littleEndian?new h(this.view.getInt32(a,!0),this.view.getInt32(a+4,!0),!0):new h(this.view.getInt32(a+4,!1),this.view.getInt32(a, +!1),!0);b&&(this.offset+=8);return a},d.readUInt64=d.readUint64);d.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*= +2)>b?e:b);this.view.setFloat32(b-4,a,this.littleEndian);c&&(this.offset+=4);return this};d.writeFloat=d.writeFloat32;d.readFloat32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=this.view.getFloat32(a,this.littleEndian);b&&(this.offset+=4);return a};d.readFloat= +d.readFloat32;d.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setFloat64(b-8,a,this.littleEndian); +c&&(this.offset+=8);return this};d.writeDouble=d.writeFloat64;d.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=this.view.getFloat64(a,this.littleEndian);b&&(this.offset+=8);return a};d.readDouble=d.readFloat64;f.MAX_VARINT32_BYTES=5;f.calculateVarint32= +function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};f.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};f.zigZagDecode32=function(a){return a>>>1^-(a&1)|0};d.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}var e=f.calculateVarint32(a),k;b+=e;k=this.buffer.byteLength;b>k&&this.resize((k*=2)>b?k:b);b-=e;for(a>>>=0;128<=a;)k=a&127|128,this.view.setUint8(b++,k),a>>>=7;this.view.setUint8(b++,a);return c?(this.offset=b,this):e};d.writeVarint32ZigZag=function(a,b){return this.writeVarint32(f.zigZagEncode32(a),b)};d.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,e=0,k;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;k=this.view.getUint8(a++);5>c&&(e|=(k&127)<<7*c);++c}while(0!==(k&128));e|=0;return b?(this.offset=a,e):{value:e,length:c}};d.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=f.zigZagDecode32(a.value):a=f.zigZagDecode32(a);return a}; +h&&(f.MAX_VARINT64_BYTES=10,f.calculateVarint64=function(a){"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));var b=a.toInt()>>>0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},f.zigZagEncode64=function(a){"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()}, +f.zigZagDecode64=function(a){"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(h.ONE).toSigned().negate()).toSigned()},d.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)"); +if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var e=f.calculateVarint64(a),k=a.toInt()>>>0,d=a.shiftRightUnsigned(28).toInt()>>>0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=e;var p=this.buffer.byteLength;b>p&&this.resize((p*= +2)>b?p:b);b-=e;switch(e){case 10:this.view.setUint8(b+9,g>>>7&1);case 9:this.view.setUint8(b+8,9!==e?g|128:g&127);case 8:this.view.setUint8(b+7,8!==e?d>>>21|128:d>>>21&127);case 7:this.view.setUint8(b+6,7!==e?d>>>14|128:d>>>14&127);case 6:this.view.setUint8(b+5,6!==e?d>>>7|128:d>>>7&127);case 5:this.view.setUint8(b+4,5!==e?d|128:d&127);case 4:this.view.setUint8(b+3,4!==e?k>>>21|128:k>>>21&127);case 3:this.view.setUint8(b+2,3!==e?k>>>14|128:k>>>14&127);case 2:this.view.setUint8(b+1,2!==e?k>>>7|128: +k>>>7&127);case 1:this.view.setUint8(b,1!==e?k|128:k&127)}return c?(this.offset+=e,this):e},d.writeVarint64ZigZag=function(a,b){return this.writeVarint64(f.zigZagEncode64(a),b)},d.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=0,k=0,d= +0,g=0,g=this.view.getUint8(a++),e=g&127;if(g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),k=g&127,g&128&&(g=this.view.getUint8(a++),k|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),k|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),k|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),d=g&127,g&128&&(g=this.view.getUint8(a++),d|=(g&127)<<7,g&128))))))))))throw Error("Buffer overrun"); +e=h.fromBits(e|k<<28,k>>>4|d<<24,!1);return b?(this.offset=a,e):{value:e,length:a-c}},d.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof h?a.value=f.zigZagDecode64(a.value):a=f.zigZagDecode64(a);return a});d.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var e,d=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(e=0;e>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}d=n.calculateUTF16asUTF8(m(a))[1];b+=d+1;e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d+1;n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));this.view.setUint8(b++,0);return c?(this.offset=b,this):d};d.readCString=function(a){var b="undefined"===typeof a; +b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e,d=-1;n.decodeUTF8toUTF16(function(){if(0===d)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);d=this.view.getUint8(a++);return 0===d?null:d}.bind(this),e=s(),!0);return b?(this.offset=a,e()): +{string:e(),length:a-c}};d.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,d;d=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];b+=4+d;var f=this.buffer.byteLength;b>f&&this.resize((f*= +2)>b?f:b);b-=4+d;this.view.setUint32(b,d,this.littleEndian);b+=4;n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+4+d)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+d));return c?(this.offset=b,this):b-e};d.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +a+" (+4) <= "+this.buffer.byteLength);}var c=a,e=this.readUint32(a),e=this.readUTF8String(e,f.METRICS_BYTES,a+=4);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};f.METRICS_CHARS="c";f.METRICS_BYTES="b";d.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}var e,d=b;e=n.calculateUTF16asUTF8(m(a))[1];b+=e;var f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=e;n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));return c?(this.offset=b,this):b-d};d.writeString=d.writeUTF8String;f.calculateUTF8Chars=function(a){return n.calculateUTF16asUTF8(m(a))[0]};f.calculateUTF8Bytes=function(a){return n.calculateUTF16asUTF8(m(a))[1]};f.calculateString=f.calculateUTF8Bytes;d.readUTF8String=function(a, +b,c){"number"===typeof b&&(c=b,b=void 0);var e="undefined"===typeof c;e&&(c=this.offset);"undefined"===typeof b&&(b=f.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var d=0,l=c,g;if(b===f.METRICS_CHARS){g=s(); +n.decodeUTF8(function(){return d>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength); +}var p=c+a;n.decodeUTF8toUTF16(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,d,l;d=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];l=f.calculateVarint32(d);b+=l+d;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=l+d;b+=this.writeVarint32(d,b);n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+d+l)throw RangeError("Illegal range: Truncated data, "+ +b+" == "+(b+d+l));return c?(this.offset=b,this):b-e};d.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=this.readVarint32(a),e=this.readUTF8String(e.value,f.METRICS_BYTES,a+=e.length);a+=e.length;return b?(this.offset=a,e.string):{string:e.string, +length:a-c}};d.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var d=this.buffer.byteLength;c>d&&this.resize((d*=2)> +c?d:c);(new Uint8Array(this.buffer,c-b)).set((new Uint8Array(a.buffer)).subarray(a.offset,a.limit));a.offset+=b;e&&(this.offset+=b);return this};d.appendTo=function(a,b){a.append(this,b);return this};d.assert=function(a){this.noAssert=!a;return this};d.capacity=function(){return this.buffer.byteLength};d.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};d.clone=function(a){var b=new f(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength), +(new Uint8Array(b.buffer)).set(this.buffer),b.view=new DataView(b.buffer)):(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};d.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a|| +a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=t,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c);(new Uint8Array(e)).set((new Uint8Array(this.buffer)).subarray(a,b));this.buffer=e;this.view=new DataView(e);0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this}; +d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new f(0,this.littleEndian,this.noAssert);var c=b-a,e=new f(c,this.littleEndian, +this.noAssert);e.offset=0;e.limit=c;0<=e.markedOffset&&(e.markedOffset-=a);this.copyTo(e,0,a,b);return e};d.copyTo=function(a,b,c,e){var d,l;if(!this.noAssert&&!f.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(l="undefined"===typeof b)?a.offset:b|0;c=(d="undefined"===typeof c)?this.offset:c|0;e="undefined"===typeof e?this.limit:e|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||e>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+ +c+" <= "+this.buffer.byteLength);var g=e-c;if(0===g)return a;a.ensureCapacity(b+g);(new Uint8Array(a.buffer)).set((new Uint8Array(this.buffer)).subarray(c,e),b);d&&(this.offset+=g);l&&(a.offset+=g);return this};d.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};d.fill=function(a,b,c){var e="undefined"===typeof b;e&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};d.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean"); +this.littleEndian=!!a;return this};d.LE=function(a){this.littleEndian="undefined"!==typeof a?!!a:!0;return this};d.BE=function(a){this.littleEndian="undefined"!==typeof a?!a:!1;return this};d.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +c+" (+0) <= "+this.buffer.byteLength);}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var d=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+a);}this.buffer.byteLength>>=0; +if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call((new Uint8Array(this.buffer)).subarray(a,b));this.view=new DataView(this.buffer);return this};d.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+ +a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};d.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ +a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};d.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer; +if(b===c)return t;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};d.toArrayBuffer=d.toBuffer;d.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b, +c);case "debug":return this.toDebug();case "columns":return this.toColumns();default:throw Error("Unsupported encoding: "+a);}};var v=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],e=0,d=b.length;e>2&63]),d=(e&3)<<4,null!==(e= +a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<<2,null!==(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.decode=function(a,b){function e(a){throw Error("Illegal character code: "+a);}for(var d,k,f;null!==(d=a());)if(k=c[d],"undefined"===typeof k&&e(d),null!==(d=a())&&(f=c[d],"undefined"===typeof f&&e(d),b(k<<2>>>0|(f&48)>>4),null!==(d=a()))){k=c[d];if("undefined"===typeof k)if(61===d)break;else e(d);b((f&15)<<4>>>0|(k&60)>>2);if(null!==(d=a())){f=c[d];if("undefined"=== +typeof f)if(61===d)break;else e(d);b((k&3)<<6>>>0|f)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;v.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+("0"+e.toString(16).toUpperCase()):d+e.toString(16).toUpperCase(),a&&(f+=32 +e?String.fromCharCode(e):"."));++b;if(a&&0d.length;)d+=" ";g+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset?d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";g+=d+f+"\n"}return a?g:d};f.fromDebug=function(a,b,c){var e=a.length;b=new f((e+1)/3|0,b,c);for(var d=0,l=0,g,h=!1,m=!1,n=!1,r=!1,q=!1;d< +e;){switch(g=a.charAt(d++)){case "!":if(!c){if(m||n||r){q=!0;break}m=n=r=!0}b.offset=b.markedOffset=b.limit=l;h=!1;break;case "|":if(!c){if(m||r){q=!0;break}m=r=!0}b.offset=b.limit=l;h=!1;break;case "[":if(!c){if(m||n){q=!0;break}m=n=!0}b.offset=b.markedOffset=l;h=!1;break;case "<":if(!c){if(m){q=!0;break}m=!0}b.offset=l;h=!1;break;case "]":if(!c){if(r||n){q=!0;break}r=n=!0}b.limit=b.markedOffset=l;h=!1;break;case ">":if(!c){if(r){q=!0;break}r=!0}b.limit=l;h=!1;break;case "'":if(!c){if(n){q=!0;break}n= +!0}b.markedOffset=l;h=!1;break;case " ":h=!1;break;default:if(!c&&h){q=!0;break}g=parseInt(g+a.charAt(d++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),e;ae?c.push("0",e.toString(16)):c.push(e.toString(16));return c.join("")}; +f.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var e=a.length;b=new f(e/2|0,b);for(var d,h=0,g=0;hd||255e?c(e&127):(2048>e?c(e>>6&31|192):(65536>e?c(e>>12&15|224):(c(e>>18&7|240),c(e>>12&63|128)),c(e>>6&63|128)),c(e&63|128)),e=null},decodeUTF8:function(a,c){for(var e,d,f,g,h=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(e=a());)if(0===(e&128))c(e);else if(192===(e&224))null===(d=a())&&h([e,d]),c((e&31)<<6|d&63);else if(224===(e&240))null!==(d=a())&&null!== +(f=a())||h([e,d,f]),c((e&15)<<12|(d&63)<<6|f&63);else if(240===(e&248))null!==(d=a())&&null!==(f=a())&&null!==(g=a())||h([e,d,f,g]),c((e&7)<<18|(d&63)<<12|(f&63)<<6|g&63);else throw RangeError("Illegal starting byte: "+e);},UTF16toUTF8:function(a,c){for(var e,d=null;null!==(e=null!==d?d:a());)55296<=e&&57343>=e&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(e-55296)+d-56320+65536),d=null):c(e);null!==d&&c(d)},UTF8toUTF16:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null}); +for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},encodeUTF16toUTF8:function(b,c){a.UTF16toUTF8(b,function(b){a.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(b,c){a.decodeUTF8(b,function(b){a.UTF8toUTF16(b,c)})},calculateCodePoint:function(a){return 128>a?1:2048>a?2:65536>a?3:4},calculateUTF8:function(a){for(var c,d=0;null!==(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},calculateUTF16asUTF8:function(b){var c=0,d=0;a.UTF16toUTF8(b,function(a){++c; +d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{n.decodeUTF8toUTF16(function(){return a< +b?this.view.getUint8(a++):null}.bind(this),c=s())}catch(d){if(a!==b)throw RangeError("Illegal range: Truncated data, "+a+" != "+b);}return c()};f.fromUTF8=function(a,b,c){if(!c&&"string"!==typeof a)throw TypeError("Illegal str: Not a string");var d=new f(n.calculateUTF16asUTF8(m(a),!0)[1],b,c),h=0;n.encodeUTF16toUTF8(m(a),function(a){d.view.setUint8(h++,a)});d.limit=h;return d};return f}); diff --git a/dist/bytebuffer-dataview.min.js.gz b/dist/bytebuffer-dataview.min.js.gz index 192f353c52c8bb13d2c090401b0c89b73419ab32..ce0d67a2a1e72292e331c7074a3d936b8ee09358 100644 GIT binary patch literal 7988 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 literal 7902 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 IppK#d0K1Q7ZvX%Q diff --git a/dist/bytebuffer-dataview.min.map b/dist/bytebuffer-dataview.min.map index 99c7a52..d357379 100644 --- a/dist/bytebuffer-dataview.min.map +++ b/dist/bytebuffer-dataview.min.map @@ -1,8 +1,8 @@ { "version":3, "file":"", -"lineCount":87, -"mappings":"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", +"lineCount":88, +"mappings":"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", "sources":["dist/bytebuffer-dataview.js"], -"names":["Long","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","buffer","EMPTY_BUFFER","ArrayBuffer","view","DataView","offset","markedOffset","limit","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","value","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","Uint8Array","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","setUint8","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","m","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeBytes","append","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","setInt8","readInt8","ByteBufferPrototype.readInt8","getInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","getUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","setInt16","writeShort","readInt16","ByteBufferPrototype.readInt16","getInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","setUint16","writeUInt16","readUint16","ByteBufferPrototype.readUint16","getUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","setInt32","writeInt","readInt32","ByteBufferPrototype.readInt32","getInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","setUint32","writeUInt32","readUint32","ByteBufferPrototype.readUint32","getUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","low","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","setFloat32","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","getFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","setFloat64","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","getFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","b","capacity10","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","c","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","arrayView","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","log","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","isNaN","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","indexOf","name","a","d","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","e","ByteBuffer.fromUTF8","define","factory","require","module","global"] +"names":["global","factory","define","require","module","Long","e","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","buffer","EMPTY_BUFFER","ArrayBuffer","view","DataView","offset","markedOffset","limit","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","value","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","Uint8Array","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","setUint8","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","m","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeBytes","append","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","setInt8","readInt8","ByteBufferPrototype.readInt8","getInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","getUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","setInt16","writeShort","readInt16","ByteBufferPrototype.readInt16","getInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","setUint16","writeUInt16","readUint16","ByteBufferPrototype.readUint16","getUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","setInt32","writeInt","readInt32","ByteBufferPrototype.readInt32","getInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","setUint32","writeUInt32","readUint32","ByteBufferPrototype.readUint32","getUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","low","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","setFloat32","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","getFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","setFloat64","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","getFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","b","capacity10","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","c","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","arrayView","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","log","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","isNaN","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","a","d","indexOf","name","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8"] } diff --git a/dist/bytebuffer-node.js b/dist/bytebuffer-node.js index 51c4886..72ccec6 100644 --- a/dist/bytebuffer-node.js +++ b/dist/bytebuffer-node.js @@ -1,534 +1,534 @@ -/* - Copyright 2013-2014 Daniel Wirtz - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -/** - * @license bytebuffer.js (c) 2015 Daniel Wirtz - * Backing buffer / Accessor: node Buffer - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/bytebuffer.js for details - */ -module.exports = (function() { - "use strict"; - - var buffer = require("buffer"), - Buffer = buffer["Buffer"], - Long = require("long"), - memcpy = null; try { memcpy = require("memcpy"); } catch (e) {} - - /** - * Constructs a new ByteBuffer. - * @class The swiss army knife for binary data in JavaScript. - * @exports ByteBuffer - * @constructor - * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @expose - */ - var ByteBuffer = function(capacity, littleEndian, noAssert) { - if (typeof capacity === 'undefined') - capacity = ByteBuffer.DEFAULT_CAPACITY; - if (typeof littleEndian === 'undefined') - littleEndian = ByteBuffer.DEFAULT_ENDIAN; - if (typeof noAssert === 'undefined') - noAssert = ByteBuffer.DEFAULT_NOASSERT; - if (!noAssert) { - capacity = capacity | 0; - if (capacity < 0) - throw RangeError("Illegal capacity"); - littleEndian = !!littleEndian; - noAssert = !!noAssert; - } - - /** - * Backing node Buffer. - * @type {!Buffer} - * @expose - */ - this.buffer = capacity === 0 ? EMPTY_BUFFER : new Buffer(capacity); - - /** - * Absolute read/write offset. - * @type {number} - * @expose - * @see ByteBuffer#flip - * @see ByteBuffer#clear - */ - this.offset = 0; - - /** - * Marked offset. - * @type {number} - * @expose - * @see ByteBuffer#mark - * @see ByteBuffer#reset - */ - this.markedOffset = -1; - - /** - * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation. - * @type {number} - * @expose - * @see ByteBuffer#flip - * @see ByteBuffer#clear - */ - this.limit = capacity; - - /** - * Whether to use little endian byte order, defaults to `false` for big endian. - * @type {boolean} - * @expose - */ - this.littleEndian = littleEndian; - - /** - * Whether to skip assertions of offsets and values, defaults to `false`. - * @type {boolean} - * @expose - */ - this.noAssert = noAssert; - }; - - /** - * ByteBuffer version. - * @type {string} - * @const - * @expose - */ - ByteBuffer.VERSION = "5.0.0"; - - /** - * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. - * @type {boolean} - * @const - * @expose - */ - ByteBuffer.LITTLE_ENDIAN = true; - - /** - * Big endian constant that can be used instead of its boolean value. Evaluates to `false`. - * @type {boolean} - * @const - * @expose - */ - ByteBuffer.BIG_ENDIAN = false; - - /** - * Default initial capacity of `16`. - * @type {number} - * @expose - */ - ByteBuffer.DEFAULT_CAPACITY = 16; - - /** - * Default endianess of `false` for big endian. - * @type {boolean} - * @expose - */ - ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN; - - /** - * Default no assertions flag of `false`. - * @type {boolean} - * @expose - */ - ByteBuffer.DEFAULT_NOASSERT = false; - - /** - * A `Long` class for representing a 64-bit two's-complement integer value. - * @type {!Long} - * @const - * @see https://npmjs.org/package/long - * @expose - */ - ByteBuffer.Long = Long; - - /** - * @alias ByteBuffer.prototype - * @inner - */ - var ByteBufferPrototype = ByteBuffer.prototype; - - /** - * An indicator used to reliably determine if an object is a ByteBuffer or not. - * @type {boolean} - * @const - * @expose - * @private - */ - ByteBufferPrototype.__isByteBuffer__; - - Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", { - value: true, - enumerable: false, - configurable: false - }); - - // helpers - - /** - * @type {!Buffer} - * @inner - */ - var EMPTY_BUFFER = new Buffer(0); - - /** - * String.fromCharCode reference for compile-time renaming. - * @type {function(...number):string} - * @inner - */ - var stringFromCharCode = String.fromCharCode; - - /** - * Creates a source function for a string. - * @param {string} s String to read from - * @returns {function():number|null} Source function returning the next char code respectively `null` if there are - * no more characters left. - * @throws {TypeError} If the argument is invalid - * @inner - */ - function stringSource(s) { - var i=0; return function() { - return i < s.length ? s.charCodeAt(i++) : null; - }; - } - - /** - * Creates a destination function for a string. - * @returns {function(number=):undefined|string} Destination function successively called with the next char code. - * Returns the final string when called without arguments. - * @inner - */ - function stringDestination() { - var cs = [], ps = []; return function() { - if (arguments.length === 0) - return ps.join('')+stringFromCharCode.apply(String, cs); - if (cs.length + arguments.length > 1024) - ps.push(stringFromCharCode.apply(String, cs)), - cs.length = 0; - Array.prototype.push.apply(cs, arguments); - }; - } - - /** - * Gets the accessor type. - * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes) - * @expose - */ - ByteBuffer.accessor = function() { - return Buffer; - }; - /** - * Allocates a new ByteBuffer backed by a buffer of the specified capacity. - * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} - * @expose - */ - ByteBuffer.allocate = function(capacity, littleEndian, noAssert) { - return new ByteBuffer(capacity, littleEndian, noAssert); - }; - - /** - * Concatenates multiple ByteBuffers into one. - * @param {!Array.} buffers Buffers to concatenate - * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary", - * defaults to "utf8") - * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults - * to {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} Concatenated ByteBuffer - * @expose - */ - ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) { - if (typeof encoding === 'boolean' || typeof encoding !== 'string') { - noAssert = littleEndian; - littleEndian = encoding; - encoding = undefined; - } - var capacity = 0; - for (var i=0, k=buffers.length, length; i 0) capacity += length; - } - if (capacity === 0) - return new ByteBuffer(0, littleEndian, noAssert); - var bb = new ByteBuffer(capacity, littleEndian, noAssert), - bi; - i=0; while (i} buffer Anything that can be wrapped - * @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to - * "utf8") - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer` - * @expose - */ - ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) { - if (typeof encoding !== 'string') { - noAssert = littleEndian; - littleEndian = encoding; - encoding = undefined; - } - if (typeof buffer === 'string') { - if (typeof encoding === 'undefined') - encoding = "utf8"; - switch (encoding) { - case "base64": - return ByteBuffer.fromBase64(buffer, littleEndian); - case "hex": - return ByteBuffer.fromHex(buffer, littleEndian); - case "binary": - return ByteBuffer.fromBinary(buffer, littleEndian); - case "utf8": - return ByteBuffer.fromUTF8(buffer, littleEndian); - case "debug": - return ByteBuffer.fromDebug(buffer, littleEndian); - default: - throw Error("Unsupported encoding: "+encoding); - } - } - if (buffer === null || typeof buffer !== 'object') - throw TypeError("Illegal buffer"); - var bb; - if (ByteBuffer.isByteBuffer(buffer)) { - bb = ByteBufferPrototype.clone.call(buffer); - bb.markedOffset = -1; - return bb; - } - var i = 0, - k = 0, - b; - if (buffer instanceof Uint8Array) { // Extract bytes from Uint8Array - b = new Buffer(buffer.length); - if (memcpy) { // Fast - memcpy(b, 0, buffer.buffer, buffer.byteOffset, buffer.byteOffset + buffer.length); - } else { // Slow - for (i=0, k=buffer.length; i 0) { // Avoid references to more than one EMPTY_BUFFER - bb.buffer = buffer; - bb.limit = buffer.length; - } - return bb; - }; - - /** - * Writes the array as a bitset. - * @param {Array} value Array of booleans to write - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {!ByteBuffer} - * @expose - */ - ByteBufferPrototype.writeBitSet = function(value, offset) { +/* + Copyright 2013-2014 Daniel Wirtz + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/** + * @license bytebuffer.js (c) 2015 Daniel Wirtz + * Backing buffer / Accessor: node Buffer + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bytebuffer.js for details + */ +module.exports = (function() { + "use strict"; + + var buffer = require("buffer"), + Buffer = buffer["Buffer"], + Long = require("long"), + memcpy = null; try { memcpy = require("memcpy"); } catch (e) {} + + /** + * Constructs a new ByteBuffer. + * @class The swiss army knife for binary data in JavaScript. + * @exports ByteBuffer + * @constructor + * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @expose + */ + var ByteBuffer = function(capacity, littleEndian, noAssert) { + if (typeof capacity === 'undefined') + capacity = ByteBuffer.DEFAULT_CAPACITY; + if (typeof littleEndian === 'undefined') + littleEndian = ByteBuffer.DEFAULT_ENDIAN; + if (typeof noAssert === 'undefined') + noAssert = ByteBuffer.DEFAULT_NOASSERT; + if (!noAssert) { + capacity = capacity | 0; + if (capacity < 0) + throw RangeError("Illegal capacity"); + littleEndian = !!littleEndian; + noAssert = !!noAssert; + } + + /** + * Backing node Buffer. + * @type {!Buffer} + * @expose + */ + this.buffer = capacity === 0 ? EMPTY_BUFFER : new Buffer(capacity); + + /** + * Absolute read/write offset. + * @type {number} + * @expose + * @see ByteBuffer#flip + * @see ByteBuffer#clear + */ + this.offset = 0; + + /** + * Marked offset. + * @type {number} + * @expose + * @see ByteBuffer#mark + * @see ByteBuffer#reset + */ + this.markedOffset = -1; + + /** + * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation. + * @type {number} + * @expose + * @see ByteBuffer#flip + * @see ByteBuffer#clear + */ + this.limit = capacity; + + /** + * Whether to use little endian byte order, defaults to `false` for big endian. + * @type {boolean} + * @expose + */ + this.littleEndian = littleEndian; + + /** + * Whether to skip assertions of offsets and values, defaults to `false`. + * @type {boolean} + * @expose + */ + this.noAssert = noAssert; + }; + + /** + * ByteBuffer version. + * @type {string} + * @const + * @expose + */ + ByteBuffer.VERSION = "5.0.0"; + + /** + * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. + * @type {boolean} + * @const + * @expose + */ + ByteBuffer.LITTLE_ENDIAN = true; + + /** + * Big endian constant that can be used instead of its boolean value. Evaluates to `false`. + * @type {boolean} + * @const + * @expose + */ + ByteBuffer.BIG_ENDIAN = false; + + /** + * Default initial capacity of `16`. + * @type {number} + * @expose + */ + ByteBuffer.DEFAULT_CAPACITY = 16; + + /** + * Default endianess of `false` for big endian. + * @type {boolean} + * @expose + */ + ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN; + + /** + * Default no assertions flag of `false`. + * @type {boolean} + * @expose + */ + ByteBuffer.DEFAULT_NOASSERT = false; + + /** + * A `Long` class for representing a 64-bit two's-complement integer value. + * @type {!Long} + * @const + * @see https://npmjs.org/package/long + * @expose + */ + ByteBuffer.Long = Long; + + /** + * @alias ByteBuffer.prototype + * @inner + */ + var ByteBufferPrototype = ByteBuffer.prototype; + + /** + * An indicator used to reliably determine if an object is a ByteBuffer or not. + * @type {boolean} + * @const + * @expose + * @private + */ + ByteBufferPrototype.__isByteBuffer__; + + Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", { + value: true, + enumerable: false, + configurable: false + }); + + // helpers + + /** + * @type {!Buffer} + * @inner + */ + var EMPTY_BUFFER = new Buffer(0); + + /** + * String.fromCharCode reference for compile-time renaming. + * @type {function(...number):string} + * @inner + */ + var stringFromCharCode = String.fromCharCode; + + /** + * Creates a source function for a string. + * @param {string} s String to read from + * @returns {function():number|null} Source function returning the next char code respectively `null` if there are + * no more characters left. + * @throws {TypeError} If the argument is invalid + * @inner + */ + function stringSource(s) { + var i=0; return function() { + return i < s.length ? s.charCodeAt(i++) : null; + }; + } + + /** + * Creates a destination function for a string. + * @returns {function(number=):undefined|string} Destination function successively called with the next char code. + * Returns the final string when called without arguments. + * @inner + */ + function stringDestination() { + var cs = [], ps = []; return function() { + if (arguments.length === 0) + return ps.join('')+stringFromCharCode.apply(String, cs); + if (cs.length + arguments.length > 1024) + ps.push(stringFromCharCode.apply(String, cs)), + cs.length = 0; + Array.prototype.push.apply(cs, arguments); + }; + } + + /** + * Gets the accessor type. + * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes) + * @expose + */ + ByteBuffer.accessor = function() { + return Buffer; + }; + /** + * Allocates a new ByteBuffer backed by a buffer of the specified capacity. + * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} + * @expose + */ + ByteBuffer.allocate = function(capacity, littleEndian, noAssert) { + return new ByteBuffer(capacity, littleEndian, noAssert); + }; + + /** + * Concatenates multiple ByteBuffers into one. + * @param {!Array.} buffers Buffers to concatenate + * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary", + * defaults to "utf8") + * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults + * to {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} Concatenated ByteBuffer + * @expose + */ + ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) { + if (typeof encoding === 'boolean' || typeof encoding !== 'string') { + noAssert = littleEndian; + littleEndian = encoding; + encoding = undefined; + } + var capacity = 0; + for (var i=0, k=buffers.length, length; i 0) capacity += length; + } + if (capacity === 0) + return new ByteBuffer(0, littleEndian, noAssert); + var bb = new ByteBuffer(capacity, littleEndian, noAssert), + bi; + i=0; while (i} buffer Anything that can be wrapped + * @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to + * "utf8") + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer` + * @expose + */ + ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) { + if (typeof encoding !== 'string') { + noAssert = littleEndian; + littleEndian = encoding; + encoding = undefined; + } + if (typeof buffer === 'string') { + if (typeof encoding === 'undefined') + encoding = "utf8"; + switch (encoding) { + case "base64": + return ByteBuffer.fromBase64(buffer, littleEndian); + case "hex": + return ByteBuffer.fromHex(buffer, littleEndian); + case "binary": + return ByteBuffer.fromBinary(buffer, littleEndian); + case "utf8": + return ByteBuffer.fromUTF8(buffer, littleEndian); + case "debug": + return ByteBuffer.fromDebug(buffer, littleEndian); + default: + throw Error("Unsupported encoding: "+encoding); + } + } + if (buffer === null || typeof buffer !== 'object') + throw TypeError("Illegal buffer"); + var bb; + if (ByteBuffer.isByteBuffer(buffer)) { + bb = ByteBufferPrototype.clone.call(buffer); + bb.markedOffset = -1; + return bb; + } + var i = 0, + k = 0, + b; + if (buffer instanceof Uint8Array) { // Extract bytes from Uint8Array + b = new Buffer(buffer.length); + if (memcpy) { // Fast + memcpy(b, 0, buffer.buffer, buffer.byteOffset, buffer.byteOffset + buffer.length); + } else { // Slow + for (i=0, k=buffer.length; i 0) { // Avoid references to more than one EMPTY_BUFFER + bb.buffer = buffer; + bb.limit = buffer.length; + } + return bb; + }; + + /** + * Writes the array as a bitset. + * @param {Array} value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.writeBitSet = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (!(value instanceof Array)) - throw TypeError("Illegal BitSet: Not an array"); + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - - var start = offset, - bits = value.length, - bytes = (bits >> 3), - bit = 0, - k; - - offset += this.writeVarint32(bits,offset); - - while(bytes--) { - k = (!!value[bit++] & 1) | - ((!!value[bit++] & 1) << 1) | - ((!!value[bit++] & 1) << 2) | - ((!!value[bit++] & 1) << 3) | - ((!!value[bit++] & 1) << 4) | - ((!!value[bit++] & 1) << 5) | - ((!!value[bit++] & 1) << 6) | - ((!!value[bit++] & 1) << 7); - this.writeByte(k,offset++); - } - - if(bit < bits) { - var m = 0; k = 0; - while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); - this.writeByte(k,offset++); - } - - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - } - - /** - * Reads a BitSet as an array of booleans. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {Array - * @expose - */ - ByteBufferPrototype.readBitSet = function(offset) { + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + } + + /** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ + ByteBufferPrototype.readBitSet = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - - var ret = this.readVarint32(offset), - bits = ret.value, - bytes = (bits >> 3), - bit = 0, - value = [], - k; - - offset += ret.length; - - while(bytes--) { - k = this.readByte(offset++); - value[bit++] = !!(k & 0x01); - value[bit++] = !!(k & 0x02); - value[bit++] = !!(k & 0x04); - value[bit++] = !!(k & 0x08); - value[bit++] = !!(k & 0x10); - value[bit++] = !!(k & 0x20); - value[bit++] = !!(k & 0x40); - value[bit++] = !!(k & 0x80); - } - - if(bit < bits) { - var m = 0; - k = this.readByte(offset++); - while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); - } - - if (relative) { - this.offset = offset; - } - return value; - } - /** - * Reads the specified number of bytes. - * @param {number} length Number of bytes to read - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {!ByteBuffer} - * @expose - */ - ByteBufferPrototype.readBytes = function(length, offset) { + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; + } + /** + * Reads the specified number of bytes. + * @param {number} length Number of bytes to read + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.readBytes = function(length, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + length > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.length); - } - var slice = this.slice(offset, offset + length); + } + var slice = this.slice(offset, offset + length); if (relative) this.offset += length; - return slice; - }; - - /** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its - * offsets will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; - - // types/ints/int8 - - /** - * Writes an 8bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeInt8 = function(value, offset) { + return slice; + }; + + /** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its + * offsets will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; + + // types/ints/int8 + + /** + * Writes an 8bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeInt8 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -537,69 +537,69 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 1; var capacity0 = this.buffer.length; if (offset > capacity0) this.resize((capacity0 *= 2) > offset ? capacity0 : offset); offset -= 1; - this.buffer[offset] = value; + this.buffer[offset] = value; if (relative) this.offset += 1; - return this; - }; - - /** - * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8; - - /** - * Reads an 8bit signed integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt8 = function(offset) { + return this; + }; + + /** + * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8; + + /** + * Reads an 8bit signed integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt8 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.length); - } - var value = this.buffer[offset]; - if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed + } + var value = this.buffer[offset]; + if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed if (relative) this.offset += 1; - return value; - }; - - /** - * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8; - - /** - * Writes an 8bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUint8 = function(value, offset) { + return value; + }; + + /** + * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8; + + /** + * Writes an 8bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUint8 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -608,71 +608,71 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 1; var capacity1 = this.buffer.length; if (offset > capacity1) this.resize((capacity1 *= 2) > offset ? capacity1 : offset); offset -= 1; - this.buffer[offset] = value; + this.buffer[offset] = value; if (relative) this.offset += 1; - return this; - }; - - /** - * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8; - - /** - * Reads an 8bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUint8 = function(offset) { + return this; + }; + + /** + * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8; + + /** + * Reads an 8bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUint8 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.length); - } - var value = this.buffer[offset]; + } + var value = this.buffer[offset]; if (relative) this.offset += 1; - return value; - }; - - /** - * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8; - - // types/ints/int16 - - /** - * Writes a 16bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeInt16 = function(value, offset) { + return value; + }; + + /** + * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8; + + // types/ints/int16 + + /** + * Writes a 16bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeInt16 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -681,88 +681,88 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 2; var capacity2 = this.buffer.length; if (offset > capacity2) this.resize((capacity2 *= 2) > offset ? capacity2 : offset); offset -= 2; - if (this.littleEndian) { - this.buffer[offset+1] = (value & 0xFF00) >>> 8; - this.buffer[offset ] = value & 0x00FF; - } else { - this.buffer[offset] = (value & 0xFF00) >>> 8; - this.buffer[offset+1] = value & 0x00FF; - } + if (this.littleEndian) { + this.buffer[offset+1] = (value & 0xFF00) >>> 8; + this.buffer[offset ] = value & 0x00FF; + } else { + this.buffer[offset] = (value & 0xFF00) >>> 8; + this.buffer[offset+1] = value & 0x00FF; + } if (relative) this.offset += 2; - return this; - }; - - /** - * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16; - - /** - * Reads a 16bit signed integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readInt16 = function(offset) { + return this; + }; + + /** + * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16; + + /** + * Reads a 16bit signed integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readInt16 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 2 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.length); - } - var value = 0; - if (this.littleEndian) { - value = this.buffer[offset ]; - value |= this.buffer[offset+1] << 8; - } else { - value = this.buffer[offset ] << 8; - value |= this.buffer[offset+1]; - } - if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed + } + var value = 0; + if (this.littleEndian) { + value = this.buffer[offset ]; + value |= this.buffer[offset+1] << 8; + } else { + value = this.buffer[offset ] << 8; + value |= this.buffer[offset+1]; + } + if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed if (relative) this.offset += 2; - return value; - }; - - /** - * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16; - - /** - * Writes a 16bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeUint16 = function(value, offset) { + return value; + }; + + /** + * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16; + + /** + * Writes a 16bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeUint16 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -771,87 +771,87 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 2; var capacity3 = this.buffer.length; if (offset > capacity3) this.resize((capacity3 *= 2) > offset ? capacity3 : offset); offset -= 2; - if (this.littleEndian) { - this.buffer[offset+1] = (value & 0xFF00) >>> 8; - this.buffer[offset ] = value & 0x00FF; - } else { - this.buffer[offset] = (value & 0xFF00) >>> 8; - this.buffer[offset+1] = value & 0x00FF; - } + if (this.littleEndian) { + this.buffer[offset+1] = (value & 0xFF00) >>> 8; + this.buffer[offset ] = value & 0x00FF; + } else { + this.buffer[offset] = (value & 0xFF00) >>> 8; + this.buffer[offset+1] = value & 0x00FF; + } if (relative) this.offset += 2; - return this; - }; - - /** - * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16; - - /** - * Reads a 16bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readUint16 = function(offset) { + return this; + }; + + /** + * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16; + + /** + * Reads a 16bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readUint16 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 2 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.length); - } - var value = 0; - if (this.littleEndian) { - value = this.buffer[offset ]; - value |= this.buffer[offset+1] << 8; - } else { - value = this.buffer[offset ] << 8; - value |= this.buffer[offset+1]; - } + } + var value = 0; + if (this.littleEndian) { + value = this.buffer[offset ]; + value |= this.buffer[offset+1] << 8; + } else { + value = this.buffer[offset ] << 8; + value |= this.buffer[offset+1]; + } if (relative) this.offset += 2; - return value; - }; - - /** - * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16; - - // types/ints/int32 - - /** - * Writes a 32bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeInt32 = function(value, offset) { + return value; + }; + + /** + * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16; + + // types/ints/int32 + + /** + * Writes a 32bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeInt32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -860,7 +860,7 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 4; var capacity4 = this.buffer.length; if (offset > capacity4) @@ -878,34 +878,34 @@ module.exports = (function() { this.buffer[offset+3] = value & 0xFF; } if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32; - - /** - * Reads a 32bit signed integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32; + + /** + * Reads a 32bit signed integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.length); - } - var value = 0; + } + var value = 0; if (this.littleEndian) { value = this.buffer[offset+2] << 16; value |= this.buffer[offset+1] << 8; @@ -917,29 +917,29 @@ module.exports = (function() { value |= this.buffer[offset+3]; value += this.buffer[offset ] << 24 >>> 0; } - value |= 0; // Cast to signed + value |= 0; // Cast to signed if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32; - - /** - * Writes a 32bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeUint32 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32; + + /** + * Writes a 32bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeUint32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -948,7 +948,7 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 4; var capacity5 = this.buffer.length; if (offset > capacity5) @@ -966,35 +966,35 @@ module.exports = (function() { this.buffer[offset+3] = value & 0xFF; } if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32; - - /** - * Reads a 32bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUint32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32; + + /** + * Reads a 32bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUint32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.length); - } - var value = 0; + } + var value = 0; if (this.littleEndian) { value = this.buffer[offset+2] << 16; value |= this.buffer[offset+1] << 8; @@ -1007,33 +1007,33 @@ module.exports = (function() { value += this.buffer[offset ] << 24 >>> 0; } if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32; - - // types/ints/int64 - - if (Long) { - - /** - * Writes a 64bit signed integer. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeInt64 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32; + + // types/ints/int64 + + if (Long) { + + /** + * Writes a 64bit signed integer. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeInt64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1045,7 +1045,7 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1055,105 +1055,105 @@ module.exports = (function() { if (offset > capacity6) this.resize((capacity6 *= 2) > offset ? capacity6 : offset); offset -= 8; - var lo = value.low, - hi = value.high; - if (this.littleEndian) { + var lo = value.low, + hi = value.high; + if (this.littleEndian) { this.buffer[offset+3] = (lo >>> 24) & 0xFF; this.buffer[offset+2] = (lo >>> 16) & 0xFF; this.buffer[offset+1] = (lo >>> 8) & 0xFF; this.buffer[offset ] = lo & 0xFF; - offset += 4; + offset += 4; this.buffer[offset+3] = (hi >>> 24) & 0xFF; this.buffer[offset+2] = (hi >>> 16) & 0xFF; this.buffer[offset+1] = (hi >>> 8) & 0xFF; this.buffer[offset ] = hi & 0xFF; - } else { + } else { this.buffer[offset ] = (hi >>> 24) & 0xFF; this.buffer[offset+1] = (hi >>> 16) & 0xFF; this.buffer[offset+2] = (hi >>> 8) & 0xFF; this.buffer[offset+3] = hi & 0xFF; - offset += 4; + offset += 4; this.buffer[offset ] = (lo >>> 24) & 0xFF; this.buffer[offset+1] = (lo >>> 16) & 0xFF; this.buffer[offset+2] = (lo >>> 8) & 0xFF; this.buffer[offset+3] = lo & 0xFF; - } + } if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64; - - /** - * Reads a 64bit signed integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readInt64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64; + + /** + * Reads a 64bit signed integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readInt64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.length); - } - var lo = 0, - hi = 0; - if (this.littleEndian) { + } + var lo = 0, + hi = 0; + if (this.littleEndian) { lo = this.buffer[offset+2] << 16; lo |= this.buffer[offset+1] << 8; lo |= this.buffer[offset ]; lo += this.buffer[offset+3] << 24 >>> 0; - offset += 4; + offset += 4; hi = this.buffer[offset+2] << 16; hi |= this.buffer[offset+1] << 8; hi |= this.buffer[offset ]; hi += this.buffer[offset+3] << 24 >>> 0; - } else { + } else { hi = this.buffer[offset+1] << 16; hi |= this.buffer[offset+2] << 8; hi |= this.buffer[offset+3]; hi += this.buffer[offset ] << 24 >>> 0; - offset += 4; + offset += 4; lo = this.buffer[offset+1] << 16; lo |= this.buffer[offset+2] << 8; lo |= this.buffer[offset+3]; lo += this.buffer[offset ] << 24 >>> 0; - } - var value = new Long(lo, hi, false); + } + var value = new Long(lo, hi, false); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64; - - /** - * Writes a 64bit unsigned integer. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUint64 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64; + + /** + * Writes a 64bit unsigned integer. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUint64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1165,7 +1165,7 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1175,308 +1175,308 @@ module.exports = (function() { if (offset > capacity7) this.resize((capacity7 *= 2) > offset ? capacity7 : offset); offset -= 8; - var lo = value.low, - hi = value.high; - if (this.littleEndian) { + var lo = value.low, + hi = value.high; + if (this.littleEndian) { this.buffer[offset+3] = (lo >>> 24) & 0xFF; this.buffer[offset+2] = (lo >>> 16) & 0xFF; this.buffer[offset+1] = (lo >>> 8) & 0xFF; this.buffer[offset ] = lo & 0xFF; - offset += 4; + offset += 4; this.buffer[offset+3] = (hi >>> 24) & 0xFF; this.buffer[offset+2] = (hi >>> 16) & 0xFF; this.buffer[offset+1] = (hi >>> 8) & 0xFF; this.buffer[offset ] = hi & 0xFF; - } else { + } else { this.buffer[offset ] = (hi >>> 24) & 0xFF; this.buffer[offset+1] = (hi >>> 16) & 0xFF; this.buffer[offset+2] = (hi >>> 8) & 0xFF; this.buffer[offset+3] = hi & 0xFF; - offset += 4; + offset += 4; this.buffer[offset ] = (lo >>> 24) & 0xFF; this.buffer[offset+1] = (lo >>> 16) & 0xFF; this.buffer[offset+2] = (lo >>> 8) & 0xFF; this.buffer[offset+3] = lo & 0xFF; - } + } if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}. - * @function - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64; - - /** - * Reads a 64bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readUint64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}. + * @function + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64; + + /** + * Reads a 64bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readUint64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.length); - } - var lo = 0, - hi = 0; - if (this.littleEndian) { + } + var lo = 0, + hi = 0; + if (this.littleEndian) { lo = this.buffer[offset+2] << 16; lo |= this.buffer[offset+1] << 8; lo |= this.buffer[offset ]; lo += this.buffer[offset+3] << 24 >>> 0; - offset += 4; + offset += 4; hi = this.buffer[offset+2] << 16; hi |= this.buffer[offset+1] << 8; hi |= this.buffer[offset ]; hi += this.buffer[offset+3] << 24 >>> 0; - } else { + } else { hi = this.buffer[offset+1] << 16; hi |= this.buffer[offset+2] << 8; hi |= this.buffer[offset+3]; hi += this.buffer[offset ] << 24 >>> 0; - offset += 4; + offset += 4; lo = this.buffer[offset+1] << 16; lo |= this.buffer[offset+2] << 8; lo |= this.buffer[offset+3]; lo += this.buffer[offset ] << 24 >>> 0; - } - var value = new Long(lo, hi, true); + } + var value = new Long(lo, hi, true); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64; - - } // Long - - - // types/floats/float32 - - /** - * Writes a 32bit float. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat32 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64; + + } // Long + + + // types/floats/float32 + + /** + * Writes a 32bit float. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof value !== 'number') - throw TypeError("Illegal value: "+value+" (not a number)"); + if (!this.noAssert) { + if (typeof value !== 'number') + throw TypeError("Illegal value: "+value+" (not a number)"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 4; var capacity8 = this.buffer.length; if (offset > capacity8) this.resize((capacity8 *= 2) > offset ? capacity8 : offset); offset -= 4; - this.littleEndian - ? this.buffer.writeFloatLE(value, offset, true) - : this.buffer.writeFloatBE(value, offset, true); + this.littleEndian + ? this.buffer.writeFloatLE(value, offset, true) + : this.buffer.writeFloatBE(value, offset, true); if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32; - - /** - * Reads a 32bit float. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32; + + /** + * Reads a 32bit float. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.length); - } - var value = this.littleEndian - ? this.buffer.readFloatLE(offset, true) - : this.buffer.readFloatBE(offset, true); + } + var value = this.littleEndian + ? this.buffer.readFloatLE(offset, true) + : this.buffer.readFloatBE(offset, true); if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32; - - // types/floats/float64 - - /** - * Writes a 64bit float. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat64 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32; + + // types/floats/float64 + + /** + * Writes a 64bit float. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof value !== 'number') - throw TypeError("Illegal value: "+value+" (not a number)"); + if (!this.noAssert) { + if (typeof value !== 'number') + throw TypeError("Illegal value: "+value+" (not a number)"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } offset += 8; var capacity9 = this.buffer.length; if (offset > capacity9) this.resize((capacity9 *= 2) > offset ? capacity9 : offset); offset -= 8; - this.littleEndian - ? this.buffer.writeDoubleLE(value, offset, true) - : this.buffer.writeDoubleBE(value, offset, true); + this.littleEndian + ? this.buffer.writeDoubleLE(value, offset, true) + : this.buffer.writeDoubleBE(value, offset, true); if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64; - - /** - * Reads a 64bit float. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64; + + /** + * Reads a 64bit float. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.length); - } - var value = this.littleEndian - ? this.buffer.readDoubleLE(offset, true) - : this.buffer.readDoubleBE(offset, true); + } + var value = this.littleEndian + ? this.buffer.readDoubleLE(offset, true) + : this.buffer.readDoubleBE(offset, true); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64; - - - // types/varints/varint32 - - /** - * Maximum number of bytes required to store a 32bit base 128 variable-length integer. - * @type {number} - * @const - * @expose - */ - ByteBuffer.MAX_VARINT32_BYTES = 5; - - /** - * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer. - * @param {number} value Value to encode - * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES} - * @expose - */ - ByteBuffer.calculateVarint32 = function(value) { - // ref: src/google/protobuf/io/coded_stream.cc - value = value >>> 0; - if (value < 1 << 7 ) return 1; - else if (value < 1 << 14) return 2; - else if (value < 1 << 21) return 3; - else if (value < 1 << 28) return 4; - else return 5; - }; - - /** - * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding. - * @param {number} n Signed 32bit integer - * @returns {number} Unsigned zigzag encoded 32bit integer - * @expose - */ - ByteBuffer.zigZagEncode32 = function(n) { - return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h - }; - - /** - * Decodes a zigzag encoded signed 32bit integer. - * @param {number} n Unsigned zigzag encoded 32bit integer - * @returns {number} Signed 32bit integer - * @expose - */ - ByteBuffer.zigZagDecode32 = function(n) { - return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h - }; - - /** - * Writes a 32bit base 128 variable-length integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeVarint32 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64; + + + // types/varints/varint32 + + /** + * Maximum number of bytes required to store a 32bit base 128 variable-length integer. + * @type {number} + * @const + * @expose + */ + ByteBuffer.MAX_VARINT32_BYTES = 5; + + /** + * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer. + * @param {number} value Value to encode + * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES} + * @expose + */ + ByteBuffer.calculateVarint32 = function(value) { + // ref: src/google/protobuf/io/coded_stream.cc + value = value >>> 0; + if (value < 1 << 7 ) return 1; + else if (value < 1 << 14) return 2; + else if (value < 1 << 21) return 3; + else if (value < 1 << 28) return 4; + else return 5; + }; + + /** + * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding. + * @param {number} n Signed 32bit integer + * @returns {number} Unsigned zigzag encoded 32bit integer + * @expose + */ + ByteBuffer.zigZagEncode32 = function(n) { + return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h + }; + + /** + * Decodes a zigzag encoded signed 32bit integer. + * @param {number} n Unsigned zigzag encoded 32bit integer + * @returns {number} Signed 32bit integer + * @expose + */ + ByteBuffer.zigZagDecode32 = function(n) { + return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h + }; + + /** + * Writes a 32bit base 128 variable-length integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeVarint32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -1485,190 +1485,190 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - var size = ByteBuffer.calculateVarint32(value), - b; + } + var size = ByteBuffer.calculateVarint32(value), + b; offset += size; var capacity10 = this.buffer.length; if (offset > capacity10) this.resize((capacity10 *= 2) > offset ? capacity10 : offset); offset -= size; - value >>>= 0; - while (value >= 0x80) { - b = (value & 0x7f) | 0x80; - this.buffer[offset++] = b; - value >>>= 7; - } - this.buffer[offset++] = value; - if (relative) { - this.offset = offset; - return this; - } - return size; - }; - - /** - * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) { - return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset); - }; - - /** - * Reads a 32bit base 128 variable-length integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read - * and the actual number of bytes read. - * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available - * to fully decode the varint. - * @expose - */ - ByteBufferPrototype.readVarint32 = function(offset) { + value >>>= 0; + while (value >= 0x80) { + b = (value & 0x7f) | 0x80; + this.buffer[offset++] = b; + value >>>= 7; + } + this.buffer[offset++] = value; + if (relative) { + this.offset = offset; + return this; + } + return size; + }; + + /** + * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) { + return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset); + }; + + /** + * Reads a 32bit base 128 variable-length integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read + * and the actual number of bytes read. + * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available + * to fully decode the varint. + * @expose + */ + ByteBufferPrototype.readVarint32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.length); - } - var c = 0, - value = 0 >>> 0, - b; - do { - if (!this.noAssert && offset > this.limit) { - var err = Error("Truncated"); - err['truncated'] = true; - throw err; - } - b = this.buffer[offset++]; - if (c < 5) - value |= (b & 0x7f) << (7*c); - ++c; - } while ((b & 0x80) !== 0); - value |= 0; - if (relative) { - this.offset = offset; - return value; - } - return { - "value": value, - "length": c - }; - }; - - /** - * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read - * and the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint32ZigZag = function(offset) { - var val = this.readVarint32(offset); - if (typeof val === 'object') - val["value"] = ByteBuffer.zigZagDecode32(val["value"]); - else - val = ByteBuffer.zigZagDecode32(val); - return val; - }; - - // types/varints/varint64 - - if (Long) { - - /** - * Maximum number of bytes required to store a 64bit base 128 variable-length integer. - * @type {number} - * @const - * @expose - */ - ByteBuffer.MAX_VARINT64_BYTES = 10; - - /** - * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer. - * @param {number|!Long} value Value to encode - * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES} - * @expose - */ - ByteBuffer.calculateVarint64 = function(value) { + } + var c = 0, + value = 0 >>> 0, + b; + do { + if (!this.noAssert && offset > this.limit) { + var err = Error("Truncated"); + err['truncated'] = true; + throw err; + } + b = this.buffer[offset++]; + if (c < 5) + value |= (b & 0x7f) << (7*c); + ++c; + } while ((b & 0x80) !== 0); + value |= 0; + if (relative) { + this.offset = offset; + return value; + } + return { + "value": value, + "length": c + }; + }; + + /** + * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read + * and the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint32ZigZag = function(offset) { + var val = this.readVarint32(offset); + if (typeof val === 'object') + val["value"] = ByteBuffer.zigZagDecode32(val["value"]); + else + val = ByteBuffer.zigZagDecode32(val); + return val; + }; + + // types/varints/varint64 + + if (Long) { + + /** + * Maximum number of bytes required to store a 64bit base 128 variable-length integer. + * @type {number} + * @const + * @expose + */ + ByteBuffer.MAX_VARINT64_BYTES = 10; + + /** + * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer. + * @param {number|!Long} value Value to encode + * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES} + * @expose + */ + ByteBuffer.calculateVarint64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') value = Long.fromString(value); - // ref: src/google/protobuf/io/coded_stream.cc - var part0 = value.toInt() >>> 0, - part1 = value.shiftRightUnsigned(28).toInt() >>> 0, - part2 = value.shiftRightUnsigned(56).toInt() >>> 0; - if (part2 == 0) { - if (part1 == 0) { - if (part0 < 1 << 14) - return part0 < 1 << 7 ? 1 : 2; - else - return part0 < 1 << 21 ? 3 : 4; - } else { - if (part1 < 1 << 14) - return part1 < 1 << 7 ? 5 : 6; - else - return part1 < 1 << 21 ? 7 : 8; - } - } else - return part2 < 1 << 7 ? 9 : 10; - }; - - /** - * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding. - * @param {number|!Long} value Signed long - * @returns {!Long} Unsigned zigzag encoded long - * @expose - */ - ByteBuffer.zigZagEncode64 = function(value) { + // ref: src/google/protobuf/io/coded_stream.cc + var part0 = value.toInt() >>> 0, + part1 = value.shiftRightUnsigned(28).toInt() >>> 0, + part2 = value.shiftRightUnsigned(56).toInt() >>> 0; + if (part2 == 0) { + if (part1 == 0) { + if (part0 < 1 << 14) + return part0 < 1 << 7 ? 1 : 2; + else + return part0 < 1 << 21 ? 3 : 4; + } else { + if (part1 < 1 << 14) + return part1 < 1 << 7 ? 5 : 6; + else + return part1 < 1 << 21 ? 7 : 8; + } + } else + return part2 < 1 << 7 ? 9 : 10; + }; + + /** + * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding. + * @param {number|!Long} value Signed long + * @returns {!Long} Unsigned zigzag encoded long + * @expose + */ + ByteBuffer.zigZagEncode64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - // ref: src/google/protobuf/wire_format_lite.h - return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned(); - }; - - /** - * Decodes a zigzag encoded signed 64bit integer. - * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number - * @returns {!Long} Signed long - * @expose - */ - ByteBuffer.zigZagDecode64 = function(value) { + // ref: src/google/protobuf/wire_format_lite.h + return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned(); + }; + + /** + * Decodes a zigzag encoded signed 64bit integer. + * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number + * @returns {!Long} Signed long + * @expose + */ + ByteBuffer.zigZagDecode64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - // ref: src/google/protobuf/wire_format_lite.h - return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned(); - }; - - /** - * Writes a 64bit base 128 variable-length integer. - * @param {number|Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeVarint64 = function(value, offset) { + // ref: src/google/protobuf/wire_format_lite.h + return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned(); + }; + + /** + * Writes a 64bit base 128 variable-length integer. + * @param {number|Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeVarint64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1680,232 +1680,232 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } + } if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - var size = ByteBuffer.calculateVarint64(value), - part0 = value.toInt() >>> 0, - part1 = value.shiftRightUnsigned(28).toInt() >>> 0, - part2 = value.shiftRightUnsigned(56).toInt() >>> 0; + var size = ByteBuffer.calculateVarint64(value), + part0 = value.toInt() >>> 0, + part1 = value.shiftRightUnsigned(28).toInt() >>> 0, + part2 = value.shiftRightUnsigned(56).toInt() >>> 0; offset += size; var capacity11 = this.buffer.length; if (offset > capacity11) this.resize((capacity11 *= 2) > offset ? capacity11 : offset); offset -= size; - switch (size) { - case 10: this.buffer[offset+9] = (part2 >>> 7) & 0x01; - case 9 : this.buffer[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F; - case 8 : this.buffer[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F; - case 7 : this.buffer[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F; - case 6 : this.buffer[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F; - case 5 : this.buffer[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F; - case 4 : this.buffer[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F; - case 3 : this.buffer[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F; - case 2 : this.buffer[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F; - case 1 : this.buffer[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F; - } - if (relative) { - this.offset += size; - return this; - } else { - return size; - } - }; - - /** - * Writes a zig-zag encoded 64bit base 128 variable-length integer. - * @param {number|Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) { - return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset); - }; - - /** - * Reads a 64bit base 128 variable-length integer. Requires Long.js. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and - * the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint64 = function(offset) { + switch (size) { + case 10: this.buffer[offset+9] = (part2 >>> 7) & 0x01; + case 9 : this.buffer[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F; + case 8 : this.buffer[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F; + case 7 : this.buffer[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F; + case 6 : this.buffer[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F; + case 5 : this.buffer[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F; + case 4 : this.buffer[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F; + case 3 : this.buffer[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F; + case 2 : this.buffer[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F; + case 1 : this.buffer[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F; + } + if (relative) { + this.offset += size; + return this; + } else { + return size; + } + }; + + /** + * Writes a zig-zag encoded 64bit base 128 variable-length integer. + * @param {number|Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) { + return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset); + }; + + /** + * Reads a 64bit base 128 variable-length integer. Requires Long.js. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and + * the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.length); - } - // ref: src/google/protobuf/io/coded_stream.cc - var start = offset, - part0 = 0, - part1 = 0, - part2 = 0, - b = 0; - b = this.buffer[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) { - b = this.buffer[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.buffer[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - throw Error("Buffer overrun"); }}}}}}}}}} - var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false); - if (relative) { - this.offset = offset; - return value; - } else { - return { - 'value': value, - 'length': offset-start - }; - } - }; - - /** - * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and - * the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint64ZigZag = function(offset) { - var val = this.readVarint64(offset); - if (val && val['value'] instanceof Long) - val["value"] = ByteBuffer.zigZagDecode64(val["value"]); - else - val = ByteBuffer.zigZagDecode64(val); - return val; - }; - - } // Long - - - // types/strings/cstring - - /** - * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL - * characters itself. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * contained in `str` + 1 if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeCString = function(str, offset) { + } + // ref: src/google/protobuf/io/coded_stream.cc + var start = offset, + part0 = 0, + part1 = 0, + part2 = 0, + b = 0; + b = this.buffer[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) { + b = this.buffer[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.buffer[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + throw Error("Buffer overrun"); }}}}}}}}}} + var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false); + if (relative) { + this.offset = offset; + return value; + } else { + return { + 'value': value, + 'length': offset-start + }; + } + }; + + /** + * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and + * the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint64ZigZag = function(offset) { + var val = this.readVarint64(offset); + if (val && val['value'] instanceof Long) + val["value"] = ByteBuffer.zigZagDecode64(val["value"]); + else + val = ByteBuffer.zigZagDecode64(val); + return val; + }; + + } // Long + + + // types/strings/cstring + + /** + * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL + * characters itself. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * contained in `str` + 1 if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeCString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - var i, - k = str.length; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - for (i=0; i>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - // UTF8 strings do not contain zero bytes in between except for the zero character, so: - k = Buffer.byteLength(str, "utf8"); + } + // UTF8 strings do not contain zero bytes in between except for the zero character, so: + k = Buffer.byteLength(str, "utf8"); offset += k+1; var capacity12 = this.buffer.length; if (offset > capacity12) this.resize((capacity12 *= 2) > offset ? capacity12 : offset); offset -= k+1; - offset += this.buffer.write(str, offset, k, "utf8"); - this.buffer[offset++] = 0; - if (relative) { - this.offset = offset; - return this; - } - return k; - }; - - /** - * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters - * itself. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readCString = function(offset) { + offset += this.buffer.write(str, offset, k, "utf8"); + this.buffer[offset++] = 0; + if (relative) { + this.offset = offset; + return this; + } + return k; + }; + + /** + * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters + * itself. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readCString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.length); - } - var start = offset, - temp; - // UTF8 strings do not contain zero bytes in between except for the zero character itself, so: - do { - if (offset >= this.buffer.length) - throw RangeError("Index out of range: "+offset+" <= "+this.buffer.length); - temp = this.buffer[offset++]; - } while (temp !== 0); - var str = this.buffer.toString("utf8", start, offset-1); - if (relative) { - this.offset = offset; - return str; - } else { - return { - "string": str, - "length": offset - start - }; - } - }; - - // types/strings/istring - - /** - * Writes a length as uint32 prefixed UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written - * @expose - * @see ByteBuffer#writeVarint32 - */ - ByteBufferPrototype.writeIString = function(str, offset) { + } + var start = offset, + temp; + // UTF8 strings do not contain zero bytes in between except for the zero character itself, so: + do { + if (offset >= this.buffer.length) + throw RangeError("Index out of range: "+offset+" <= "+this.buffer.length); + temp = this.buffer[offset++]; + } while (temp !== 0); + var str = this.buffer.toString("utf8", start, offset-1); + if (relative) { + this.offset = offset; + return str; + } else { + return { + "string": str, + "length": offset - start + }; + } + }; + + // types/strings/istring + + /** + * Writes a length as uint32 prefixed UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written + * @expose + * @see ByteBuffer#writeVarint32 + */ + ByteBufferPrototype.writeIString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); + if (!this.noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - var start = offset, - k; - k = Buffer.byteLength(str, "utf8"); + } + var start = offset, + k; + k = Buffer.byteLength(str, "utf8"); offset += 4+k; var capacity13 = this.buffer.length; if (offset > capacity13) @@ -1922,161 +1922,161 @@ module.exports = (function() { this.buffer[offset+2] = (k >>> 8) & 0xFF; this.buffer[offset+3] = k & 0xFF; } - offset += 4; - offset += this.buffer.write(str, offset, k, "utf8"); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Reads a length as uint32 prefixed UTF8 encoded string. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - * @see ByteBuffer#readVarint32 - */ - ByteBufferPrototype.readIString = function(offset) { + offset += 4; + offset += this.buffer.write(str, offset, k, "utf8"); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Reads a length as uint32 prefixed UTF8 encoded string. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + * @see ByteBuffer#readVarint32 + */ + ByteBufferPrototype.readIString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.length); - } - var start = offset; - var len = this.readUint32(offset); - var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4); - offset += str['length']; - if (relative) { - this.offset = offset; - return str['string']; - } else { - return { - 'string': str['string'], - 'length': offset - start - }; - } - }; - - // types/strings/utf8string - - /** - * Metrics representing number of UTF8 characters. Evaluates to `c`. - * @type {string} - * @const - * @expose - */ - ByteBuffer.METRICS_CHARS = 'c'; - - /** - * Metrics representing number of bytes. Evaluates to `b`. - * @type {string} - * @const - * @expose - */ - ByteBuffer.METRICS_BYTES = 'b'; - - /** - * Writes an UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeUTF8String = function(str, offset) { + } + var start = offset; + var len = this.readUint32(offset); + var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4); + offset += str['length']; + if (relative) { + this.offset = offset; + return str['string']; + } else { + return { + 'string': str['string'], + 'length': offset - start + }; + } + }; + + // types/strings/utf8string + + /** + * Metrics representing number of UTF8 characters. Evaluates to `c`. + * @type {string} + * @const + * @expose + */ + ByteBuffer.METRICS_CHARS = 'c'; + + /** + * Metrics representing number of bytes. Evaluates to `b`. + * @type {string} + * @const + * @expose + */ + ByteBuffer.METRICS_BYTES = 'b'; + + /** + * Writes an UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeUTF8String = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - var k; - k = Buffer.byteLength(str, "utf8"); + } + var k; + k = Buffer.byteLength(str, "utf8"); offset += k; var capacity14 = this.buffer.length; if (offset > capacity14) this.resize((capacity14 *= 2) > offset ? capacity14 : offset); offset -= k; - offset += this.buffer.write(str, offset, k, "utf8"); - if (relative) { - this.offset = offset; - return this; - } - return k; - }; - - /** - * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}. - * @function - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String; - - /** - * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's - * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF. - * @param {string} str String to calculate - * @returns {number} Number of UTF8 characters - * @expose - */ - ByteBuffer.calculateUTF8Chars = function(str) { - return utfx.calculateUTF16asUTF8(stringSource(str))[0]; - }; - - /** - * Calculates the number of UTF8 bytes of a string. - * @param {string} str String to calculate - * @returns {number} Number of UTF8 bytes - * @expose - */ - ByteBuffer.calculateUTF8Bytes = function(str) { - if (typeof str !== 'string') - throw TypeError("Illegal argument: "+(typeof str)); - return Buffer.byteLength(str, "utf8"); - }; - - /** - * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}. - * @function - * @param {string} str String to calculate - * @returns {number} Number of UTF8 bytes - * @expose - */ - ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes; - - /** - * Reads an UTF8 encoded string. - * @param {number} length Number of characters or bytes to read. - * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to - * {@link ByteBuffer.METRICS_CHARS}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readUTF8String = function(length, metrics, offset) { - if (typeof metrics === 'number') { - offset = metrics; - metrics = undefined; - } + offset += this.buffer.write(str, offset, k, "utf8"); + if (relative) { + this.offset = offset; + return this; + } + return k; + }; + + /** + * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}. + * @function + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String; + + /** + * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's + * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF. + * @param {string} str String to calculate + * @returns {number} Number of UTF8 characters + * @expose + */ + ByteBuffer.calculateUTF8Chars = function(str) { + return utfx.calculateUTF16asUTF8(stringSource(str))[0]; + }; + + /** + * Calculates the number of UTF8 bytes of a string. + * @param {string} str String to calculate + * @returns {number} Number of UTF8 bytes + * @expose + */ + ByteBuffer.calculateUTF8Bytes = function(str) { + if (typeof str !== 'string') + throw TypeError("Illegal argument: "+(typeof str)); + return Buffer.byteLength(str, "utf8"); + }; + + /** + * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}. + * @function + * @param {string} str String to calculate + * @returns {number} Number of UTF8 bytes + * @expose + */ + ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes; + + /** + * Reads an UTF8 encoded string. + * @param {number} length Number of characters or bytes to read. + * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to + * {@link ByteBuffer.METRICS_CHARS}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readUTF8String = function(length, metrics, offset) { + if (typeof metrics === 'number') { + offset = metrics; + metrics = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS; - if (!this.noAssert) { + if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS; + if (!this.noAssert) { if (typeof length !== 'number' || length % 1 !== 0) throw TypeError("Illegal length: "+length+" (not an integer)"); length |= 0; @@ -2085,266 +2085,266 @@ module.exports = (function() { offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - var i = 0, - start = offset, - temp, - sd; - if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser - sd = stringDestination(); - utfx.decodeUTF8(function() { - return i < length && offset < this.limit ? this.buffer[offset++] : null; - }.bind(this), function(cp) { - ++i; utfx.UTF8toUTF16(cp, sd); - }); - if (i !== length) - throw RangeError("Illegal range: Truncated data, "+i+" == "+length); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - "string": sd(), - "length": offset - start - }; - } - } else if (metrics === ByteBuffer.METRICS_BYTES) { - if (!this.noAssert) { + } + var i = 0, + start = offset, + temp, + sd; + if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser + sd = stringDestination(); + utfx.decodeUTF8(function() { + return i < length && offset < this.limit ? this.buffer[offset++] : null; + }.bind(this), function(cp) { + ++i; utfx.UTF8toUTF16(cp, sd); + }); + if (i !== length) + throw RangeError("Illegal range: Truncated data, "+i+" == "+length); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + "string": sd(), + "length": offset - start + }; + } + } else if (metrics === ByteBuffer.METRICS_BYTES) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + length > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.length); - } - temp = this.buffer.toString("utf8", offset, offset+length); - if (relative) { - this.offset += length; - return temp; - } else { - return { - 'string': temp, - 'length': length - }; - } - } else - throw TypeError("Unsupported metrics: "+metrics); - }; - - /** - * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}. - * @function - * @param {number} length Number of characters or bytes to read - * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to - * {@link ByteBuffer.METRICS_CHARS}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String; - - // types/strings/vstring - - /** - * Writes a length as varint32 prefixed UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written - * @expose - * @see ByteBuffer#writeVarint32 - */ - ByteBufferPrototype.writeVString = function(str, offset) { + } + temp = this.buffer.toString("utf8", offset, offset+length); + if (relative) { + this.offset += length; + return temp; + } else { + return { + 'string': temp, + 'length': length + }; + } + } else + throw TypeError("Unsupported metrics: "+metrics); + }; + + /** + * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}. + * @function + * @param {number} length Number of characters or bytes to read + * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to + * {@link ByteBuffer.METRICS_CHARS}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String; + + // types/strings/vstring + + /** + * Writes a length as varint32 prefixed UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written + * @expose + * @see ByteBuffer#writeVarint32 + */ + ByteBufferPrototype.writeVString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); + if (!this.noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - var start = offset, - k, l; - k = Buffer.byteLength(str, "utf8"); - l = ByteBuffer.calculateVarint32(k); + } + var start = offset, + k, l; + k = Buffer.byteLength(str, "utf8"); + l = ByteBuffer.calculateVarint32(k); offset += l+k; var capacity15 = this.buffer.length; if (offset > capacity15) this.resize((capacity15 *= 2) > offset ? capacity15 : offset); offset -= l+k; - offset += this.writeVarint32(k, offset); - offset += this.buffer.write(str, offset, k, "utf8"); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Reads a length as varint32 prefixed UTF8 encoded string. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - * @see ByteBuffer#readVarint32 - */ - ByteBufferPrototype.readVString = function(offset) { + offset += this.writeVarint32(k, offset); + offset += this.buffer.write(str, offset, k, "utf8"); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Reads a length as varint32 prefixed UTF8 encoded string. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + * @see ByteBuffer#readVarint32 + */ + ByteBufferPrototype.readVString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.length); - } - var start = offset; - var len = this.readVarint32(offset); - var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']); - offset += str['length']; - if (relative) { - this.offset = offset; - return str['string']; - } else { - return { - 'string': str['string'], - 'length': offset - start - }; - } - }; - - - /** - * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended - * data's length. - * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its - * offsets will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|` - * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|` - */ - ByteBufferPrototype.append = function(source, encoding, offset) { - if (typeof encoding === 'number' || typeof encoding !== 'string') { - offset = encoding; - encoding = undefined; - } + } + var start = offset; + var len = this.readVarint32(offset); + var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']); + offset += str['length']; + if (relative) { + this.offset = offset; + return str['string']; + } else { + return { + 'string': str['string'], + 'length': offset - start + }; + } + }; + + + /** + * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended + * data's length. + * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its + * offsets will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|` + * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|` + */ + ByteBufferPrototype.append = function(source, encoding, offset) { + if (typeof encoding === 'number' || typeof encoding !== 'string') { + offset = encoding; + encoding = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - if (!(source instanceof ByteBuffer)) - source = ByteBuffer.wrap(source, encoding); - var length = source.limit - source.offset; - if (length <= 0) return this; // Nothing to append + } + if (!(source instanceof ByteBuffer)) + source = ByteBuffer.wrap(source, encoding); + var length = source.limit - source.offset; + if (length <= 0) return this; // Nothing to append offset += length; var capacity16 = this.buffer.length; if (offset > capacity16) this.resize((capacity16 *= 2) > offset ? capacity16 : offset); offset -= length; - source.buffer.copy(this.buffer, offset, source.offset, source.limit); - source.offset += length; + source.buffer.copy(this.buffer, offset, source.offset, source.limit); + source.offset += length; if (relative) this.offset += length; - return this; - }; - - /** - * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the - specified offset up to the length of this ByteBuffer's data. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!ByteBuffer} this - * @expose - * @see ByteBuffer#append - */ - ByteBufferPrototype.appendTo = function(target, offset) { - target.append(this, offset); - return this; - }; - - /** - * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to - * disable them if your code already makes sure that everything is valid. - * @param {boolean} assert `true` to enable assertions, otherwise `false` - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.assert = function(assert) { - this.noAssert = !assert; - return this; - }; - - /** - * Gets the capacity of this ByteBuffer's backing buffer. - * @returns {number} Capacity of the backing buffer - * @expose - */ - ByteBufferPrototype.capacity = function() { - return this.buffer.length; - }; - /** - * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the - * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.clear = function() { - this.offset = 0; - this.limit = this.buffer.length; - this.markedOffset = -1; - return this; - }; - - /** - * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset}, - * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}. - * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false` - * @returns {!ByteBuffer} Cloned instance - * @expose - */ - ByteBufferPrototype.clone = function(copy) { - var bb = new ByteBuffer(0, this.littleEndian, this.noAssert); - if (copy) { - var buffer = new Buffer(this.buffer.length); - this.buffer.copy(buffer); - bb.buffer = buffer; - } else { - bb.buffer = this.buffer; - } - bb.offset = this.offset; - bb.markedOffset = this.markedOffset; - bb.limit = this.limit; - return bb; - }; - - /** - * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes - * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and - * adapt {@link ByteBuffer#markedOffset} to the same relative position if set. - * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.compact = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + return this; + }; + + /** + * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the + specified offset up to the length of this ByteBuffer's data. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!ByteBuffer} this + * @expose + * @see ByteBuffer#append + */ + ByteBufferPrototype.appendTo = function(target, offset) { + target.append(this, offset); + return this; + }; + + /** + * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to + * disable them if your code already makes sure that everything is valid. + * @param {boolean} assert `true` to enable assertions, otherwise `false` + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.assert = function(assert) { + this.noAssert = !assert; + return this; + }; + + /** + * Gets the capacity of this ByteBuffer's backing buffer. + * @returns {number} Capacity of the backing buffer + * @expose + */ + ByteBufferPrototype.capacity = function() { + return this.buffer.length; + }; + /** + * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the + * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.clear = function() { + this.offset = 0; + this.limit = this.buffer.length; + this.markedOffset = -1; + return this; + }; + + /** + * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset}, + * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}. + * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false` + * @returns {!ByteBuffer} Cloned instance + * @expose + */ + ByteBufferPrototype.clone = function(copy) { + var bb = new ByteBuffer(0, this.littleEndian, this.noAssert); + if (copy) { + var buffer = new Buffer(this.buffer.length); + this.buffer.copy(buffer); + bb.buffer = buffer; + } else { + bb.buffer = this.buffer; + } + bb.offset = this.offset; + bb.markedOffset = this.markedOffset; + bb.limit = this.limit; + return bb; + }; + + /** + * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes + * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and + * adapt {@link ByteBuffer#markedOffset} to the same relative position if set. + * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.compact = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2353,38 +2353,38 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - if (begin === 0 && end === this.buffer.length) - return this; // Already compacted - var len = end - begin; - if (len === 0) { - this.buffer = EMPTY_BUFFER; - if (this.markedOffset >= 0) this.markedOffset -= begin; - this.offset = 0; - this.limit = 0; - return this; - } - var buffer = new Buffer(len); - this.buffer.copy(buffer, 0, begin, end); - this.buffer = buffer; - if (this.markedOffset >= 0) this.markedOffset -= begin; - this.offset = 0; - this.limit = len; - return this; - }; - - /** - * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}. - * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} Copy - * @expose - */ - ByteBufferPrototype.copy = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + } + if (begin === 0 && end === this.buffer.length) + return this; // Already compacted + var len = end - begin; + if (len === 0) { + this.buffer = EMPTY_BUFFER; + if (this.markedOffset >= 0) this.markedOffset -= begin; + this.offset = 0; + this.limit = 0; + return this; + } + var buffer = new Buffer(len); + this.buffer.copy(buffer, 0, begin, end); + this.buffer = buffer; + if (this.markedOffset >= 0) this.markedOffset -= begin; + this.offset = 0; + this.limit = len; + return this; + }; + + /** + * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}. + * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} Copy + * @expose + */ + ByteBufferPrototype.copy = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2393,94 +2393,94 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - if (begin === end) - return new ByteBuffer(0, this.littleEndian, this.noAssert); - var capacity = end - begin, - bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert); - bb.offset = 0; - bb.limit = capacity; - if (bb.markedOffset >= 0) bb.markedOffset -= begin; - this.copyTo(bb, 0, begin, end); - return bb; - }; - - /** - * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset} - * by the number of bytes copied if omitted. - * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the - * number of bytes copied if omitted. - * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) { - var relative, - targetRelative; - if (!this.noAssert) { - if (!ByteBuffer.isByteBuffer(target)) - throw TypeError("Illegal target: Not a ByteBuffer"); - } - targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0; - sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0; - sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0; - - if (targetOffset < 0 || targetOffset > target.buffer.length) - throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.length); - if (sourceOffset < 0 || sourceLimit > this.buffer.length) - throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.length); - - var len = sourceLimit - sourceOffset; - if (len === 0) - return target; // Nothing to copy - - target.ensureCapacity(targetOffset + len); - - this.buffer.copy(target.buffer, targetOffset, sourceOffset, sourceLimit); - - if (relative) this.offset += len; - if (targetRelative) target.offset += len; - - return this; - }; - - /** - * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the - * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity, - * the required capacity will be used instead. - * @param {number} capacity Required capacity - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.ensureCapacity = function(capacity) { - var current = this.buffer.length; - if (current < capacity) - return this.resize((current *= 2) > capacity ? current : capacity); - return this; - }; - - /** - * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @param {number|string} value Byte value to fill with. If given as a string, the first character is used. - * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} this - * @expose - * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes - */ - ByteBufferPrototype.fill = function(value, begin, end) { + } + if (begin === end) + return new ByteBuffer(0, this.littleEndian, this.noAssert); + var capacity = end - begin, + bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert); + bb.offset = 0; + bb.limit = capacity; + if (bb.markedOffset >= 0) bb.markedOffset -= begin; + this.copyTo(bb, 0, begin, end); + return bb; + }; + + /** + * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset} + * by the number of bytes copied if omitted. + * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the + * number of bytes copied if omitted. + * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) { + var relative, + targetRelative; + if (!this.noAssert) { + if (!ByteBuffer.isByteBuffer(target)) + throw TypeError("Illegal target: Not a ByteBuffer"); + } + targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0; + sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0; + sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0; + + if (targetOffset < 0 || targetOffset > target.buffer.length) + throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.length); + if (sourceOffset < 0 || sourceLimit > this.buffer.length) + throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.length); + + var len = sourceLimit - sourceOffset; + if (len === 0) + return target; // Nothing to copy + + target.ensureCapacity(targetOffset + len); + + this.buffer.copy(target.buffer, targetOffset, sourceOffset, sourceLimit); + + if (relative) this.offset += len; + if (targetRelative) target.offset += len; + + return this; + }; + + /** + * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the + * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity, + * the required capacity will be used instead. + * @param {number} capacity Required capacity + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.ensureCapacity = function(capacity) { + var current = this.buffer.length; + if (current < capacity) + return this.resize((current *= 2) > capacity ? current : capacity); + return this; + }; + + /** + * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @param {number|string} value Byte value to fill with. If given as a string, the first character is used. + * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} this + * @expose + * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes + */ + ByteBufferPrototype.fill = function(value, begin, end) { var relative = typeof begin === 'undefined'; if (relative) begin = this.offset; - if (typeof value === 'string' && value.length > 0) - value = value.charCodeAt(0); - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + if (typeof value === 'string' && value.length > 0) + value = value.charCodeAt(0); + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -2492,222 +2492,222 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - if (begin >= end) - return this; // Nothing to fill - this.buffer.fill(value, begin, end); - begin = end; - if (relative) this.offset = begin; - return this; - }; - - /** - * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and - * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.flip = function() { - this.limit = this.offset; - this.offset = 0; - return this; - }; - /** - * Marks an offset on this ByteBuffer to be used later. - * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}. - * @returns {!ByteBuffer} this - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @see ByteBuffer#reset - * @expose - */ - ByteBufferPrototype.mark = function(offset) { - offset = typeof offset === 'undefined' ? this.offset : offset; - if (!this.noAssert) { + } + if (begin >= end) + return this; // Nothing to fill + this.buffer.fill(value, begin, end); + begin = end; + if (relative) this.offset = begin; + return this; + }; + + /** + * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and + * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.flip = function() { + this.limit = this.offset; + this.offset = 0; + return this; + }; + /** + * Marks an offset on this ByteBuffer to be used later. + * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}. + * @returns {!ByteBuffer} this + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @see ByteBuffer#reset + * @expose + */ + ByteBufferPrototype.mark = function(offset) { + offset = typeof offset === 'undefined' ? this.offset : offset; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - this.markedOffset = offset; - return this; - }; - /** - * Sets the byte order. - * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.order = function(littleEndian) { - if (!this.noAssert) { - if (typeof littleEndian !== 'boolean') - throw TypeError("Illegal littleEndian: Not a boolean"); - } - this.littleEndian = !!littleEndian; - return this; - }; - - /** - * Switches (to) little endian byte order. - * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.LE = function(littleEndian) { - this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true; - return this; - }; - - /** - * Switches (to) big endian byte order. - * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.BE = function(bigEndian) { - this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false; - return this; - }; - /** - * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the - * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer - * will be resized and its contents moved accordingly. - * @param {!ByteBuffer|string||!Buffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be modified - * according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes - * prepended if omitted. - * @returns {!ByteBuffer} this - * @expose - * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|` - * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|` - */ - ByteBufferPrototype.prepend = function(source, encoding, offset) { - if (typeof encoding === 'number' || typeof encoding !== 'string') { - offset = encoding; - encoding = undefined; - } + } + this.markedOffset = offset; + return this; + }; + /** + * Sets the byte order. + * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.order = function(littleEndian) { + if (!this.noAssert) { + if (typeof littleEndian !== 'boolean') + throw TypeError("Illegal littleEndian: Not a boolean"); + } + this.littleEndian = !!littleEndian; + return this; + }; + + /** + * Switches (to) little endian byte order. + * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.LE = function(littleEndian) { + this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true; + return this; + }; + + /** + * Switches (to) big endian byte order. + * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.BE = function(bigEndian) { + this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false; + return this; + }; + /** + * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the + * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer + * will be resized and its contents moved accordingly. + * @param {!ByteBuffer|string||!Buffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be modified + * according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes + * prepended if omitted. + * @returns {!ByteBuffer} this + * @expose + * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|` + * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|` + */ + ByteBufferPrototype.prepend = function(source, encoding, offset) { + if (typeof encoding === 'number' || typeof encoding !== 'string') { + offset = encoding; + encoding = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.length) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.length); - } - if (!(source instanceof ByteBuffer)) - source = ByteBuffer.wrap(source, encoding); - var len = source.limit - source.offset; - if (len <= 0) return this; // Nothing to prepend - var diff = len - offset; - if (diff > 0) { // Not enough space before offset, so resize + move - var buffer = new Buffer(this.buffer.length + diff); - this.buffer.copy(buffer, len, offset, this.buffer.length); - this.buffer = buffer; - this.offset += diff; - if (this.markedOffset >= 0) this.markedOffset += diff; - this.limit += diff; - offset += diff; - } source.buffer.copy(this.buffer, offset - len, source.offset, source.limit); - - source.offset = source.limit; - if (relative) - this.offset -= len; - return this; - }; - - /** - * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the - * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer - * will be resized and its contents moved accordingly. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes - * prepended if omitted. - * @returns {!ByteBuffer} this - * @expose - * @see ByteBuffer#prepend - */ - ByteBufferPrototype.prependTo = function(target, offset) { - target.prepend(this, offset); - return this; - }; - /** - * Prints debug information about this ByteBuffer's contents. - * @param {function(string)=} out Output function to call, defaults to console.log - * @expose - */ - ByteBufferPrototype.printDebug = function(out) { - if (typeof out !== 'function') out = console.log.bind(console); - out( - this.toString()+"\n"+ - "-------------------------------------------------------------------\n"+ - this.toDebug(/* columns */ true) - ); - }; - - /** - * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}, so this returns `limit - offset`. - * @returns {number} Remaining readable bytes. May be negative if `offset > limit`. - * @expose - */ - ByteBufferPrototype.remaining = function() { - return this.limit - this.offset; - }; - /** - * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark} - * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been - * marked, sets `offset = 0`. - * @returns {!ByteBuffer} this - * @see ByteBuffer#mark - * @expose - */ - ByteBufferPrototype.reset = function() { - if (this.markedOffset >= 0) { - this.offset = this.markedOffset; - this.markedOffset = -1; - } else { - this.offset = 0; - } - return this; - }; - /** - * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that - * large or larger. - * @param {number} capacity Capacity required - * @returns {!ByteBuffer} this - * @throws {TypeError} If `capacity` is not a number - * @throws {RangeError} If `capacity < 0` - * @expose - */ - ByteBufferPrototype.resize = function(capacity) { - if (!this.noAssert) { + } + if (!(source instanceof ByteBuffer)) + source = ByteBuffer.wrap(source, encoding); + var len = source.limit - source.offset; + if (len <= 0) return this; // Nothing to prepend + var diff = len - offset; + if (diff > 0) { // Not enough space before offset, so resize + move + var buffer = new Buffer(this.buffer.length + diff); + this.buffer.copy(buffer, len, offset, this.buffer.length); + this.buffer = buffer; + this.offset += diff; + if (this.markedOffset >= 0) this.markedOffset += diff; + this.limit += diff; + offset += diff; + } source.buffer.copy(this.buffer, offset - len, source.offset, source.limit); + + source.offset = source.limit; + if (relative) + this.offset -= len; + return this; + }; + + /** + * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the + * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer + * will be resized and its contents moved accordingly. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes + * prepended if omitted. + * @returns {!ByteBuffer} this + * @expose + * @see ByteBuffer#prepend + */ + ByteBufferPrototype.prependTo = function(target, offset) { + target.prepend(this, offset); + return this; + }; + /** + * Prints debug information about this ByteBuffer's contents. + * @param {function(string)=} out Output function to call, defaults to console.log + * @expose + */ + ByteBufferPrototype.printDebug = function(out) { + if (typeof out !== 'function') out = console.log.bind(console); + out( + this.toString()+"\n"+ + "-------------------------------------------------------------------\n"+ + this.toDebug(/* columns */ true) + ); + }; + + /** + * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}, so this returns `limit - offset`. + * @returns {number} Remaining readable bytes. May be negative if `offset > limit`. + * @expose + */ + ByteBufferPrototype.remaining = function() { + return this.limit - this.offset; + }; + /** + * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark} + * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been + * marked, sets `offset = 0`. + * @returns {!ByteBuffer} this + * @see ByteBuffer#mark + * @expose + */ + ByteBufferPrototype.reset = function() { + if (this.markedOffset >= 0) { + this.offset = this.markedOffset; + this.markedOffset = -1; + } else { + this.offset = 0; + } + return this; + }; + /** + * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that + * large or larger. + * @param {number} capacity Capacity required + * @returns {!ByteBuffer} this + * @throws {TypeError} If `capacity` is not a number + * @throws {RangeError} If `capacity < 0` + * @expose + */ + ByteBufferPrototype.resize = function(capacity) { + if (!this.noAssert) { if (typeof capacity !== 'number' || capacity % 1 !== 0) throw TypeError("Illegal capacity: "+capacity+" (not an integer)"); capacity |= 0; - if (capacity < 0) - throw RangeError("Illegal capacity: 0 <= "+capacity); - } - if (this.buffer.length < capacity) { - var buffer = new Buffer(capacity); - this.buffer.copy(buffer); - this.buffer = buffer; - } - return this; - }; - /** - * Reverses this ByteBuffer's contents. - * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.reverse = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + if (capacity < 0) + throw RangeError("Illegal capacity: 0 <= "+capacity); + } + if (this.buffer.length < capacity) { + var buffer = new Buffer(capacity); + this.buffer.copy(buffer); + this.buffer = buffer; + } + return this; + }; + /** + * Reverses this ByteBuffer's contents. + * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.reverse = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2716,44 +2716,44 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - if (begin === end) - return this; // Nothing to reverse - Array.prototype.reverse.call(this.buffer.slice(begin, end)); - return this; - }; - /** - * Skips the next `length` bytes. This will just advance - * @param {number} length Number of bytes to skip. May also be negative to move the offset back. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.skip = function(length) { - if (!this.noAssert) { + } + if (begin === end) + return this; // Nothing to reverse + Array.prototype.reverse.call(this.buffer.slice(begin, end)); + return this; + }; + /** + * Skips the next `length` bytes. This will just advance + * @param {number} length Number of bytes to skip. May also be negative to move the offset back. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.skip = function(length) { + if (!this.noAssert) { if (typeof length !== 'number' || length % 1 !== 0) throw TypeError("Illegal length: "+length+" (not an integer)"); length |= 0; - } - var offset = this.offset + length; - if (!this.noAssert) { - if (offset < 0 || offset > this.buffer.length) - throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.length); - } - this.offset = offset; - return this; - }; - - /** - * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`. - * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer} - * @expose - */ - ByteBufferPrototype.slice = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + } + var offset = this.offset + length; + if (!this.noAssert) { + if (offset < 0 || offset > this.buffer.length) + throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.length); + } + this.offset = offset; + return this; + }; + + /** + * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`. + * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer} + * @expose + */ + ByteBufferPrototype.slice = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2762,24 +2762,24 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - var bb = this.clone(); - bb.offset = begin; - bb.limit = end; - return bb; - }; - /** - * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if - * possible. Defaults to `false` - * @returns {!Buffer} Contents as a Buffer - * @expose - */ - ByteBufferPrototype.toBuffer = function(forceCopy) { - var offset = this.offset, - limit = this.limit; - if (!this.noAssert) { + } + var bb = this.clone(); + bb.offset = begin; + bb.limit = end; + return bb; + }; + /** + * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if + * possible. Defaults to `false` + * @returns {!Buffer} Contents as a Buffer + * @expose + */ + ByteBufferPrototype.toBuffer = function(forceCopy) { + var offset = this.offset, + limit = this.limit; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: Not an integer"); offset >>>= 0; @@ -2788,28 +2788,28 @@ module.exports = (function() { limit >>>= 0; if (offset < 0 || offset > limit || limit > this.buffer.length) throw RangeError("Illegal range: 0 <= "+offset+" <= "+limit+" <= "+this.buffer.length); - } - if (forceCopy) { - var buffer = new Buffer(limit - offset); - this.buffer.copy(buffer, 0, offset, limit); - return buffer; - } else { - if (offset === 0 && limit === this.buffer.length) - return this.buffer; - else - return this.buffer.slice(offset, limit); - } - }; - - /** - * Returns a copy of the backing buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @returns {!ArrayBuffer} Contents as an ArrayBuffer - */ - ByteBufferPrototype.toArrayBuffer = function() { - var offset = this.offset, - limit = this.limit; - if (!this.noAssert) { + } + if (forceCopy) { + var buffer = new Buffer(limit - offset); + this.buffer.copy(buffer, 0, offset, limit); + return buffer; + } else { + if (offset === 0 && limit === this.buffer.length) + return this.buffer; + else + return this.buffer.slice(offset, limit); + } + }; + + /** + * Returns a copy of the backing buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @returns {!ArrayBuffer} Contents as an ArrayBuffer + */ + ByteBufferPrototype.toArrayBuffer = function() { + var offset = this.offset, + limit = this.limit; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: Not an integer"); offset >>>= 0; @@ -2818,343 +2818,343 @@ module.exports = (function() { limit >>>= 0; if (offset < 0 || offset > limit || limit > this.buffer.length) throw RangeError("Illegal range: 0 <= "+offset+" <= "+limit+" <= "+this.buffer.length); - } - var ab = new ArrayBuffer(limit - offset); - if (memcpy) { // Fast - memcpy(ab, 0, this.buffer, offset, limit); - } else { // Slow - var dst = new Uint8Array(ab); - for (var i=offset; i this.capacity || begin > end) - throw RangeError("begin, end"); - return this.buffer.toString("base64", begin, end); - }; - - /** - * Decodes a base64 encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromBase64 = function(str, littleEndian) { - return ByteBuffer.wrap(new Buffer(str, "base64"), littleEndian); - return bb; - }; - - /** - * Encodes a binary string to base64 like `window.btoa` does. - * @param {string} str Binary string - * @returns {string} Base64 encoded string - * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa - * @expose - */ - ByteBuffer.btoa = function(str) { - return ByteBuffer.fromBinary(str).toBase64(); - }; - - /** - * Decodes a base64 encoded string to binary like `window.atob` does. - * @param {string} b64 Base64 encoded string - * @returns {string} Binary string - * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob - * @expose - */ - ByteBuffer.atob = function(b64) { - return ByteBuffer.fromBase64(b64).toBinary(); - }; - - // encodings/binary - - /** - * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes. - * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}. - * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}. - * @returns {string} Binary encoded string - * @throws {RangeError} If `offset > limit` - * @expose - */ - ByteBufferPrototype.toBinary = function(begin, end) { - if (typeof begin === 'undefined') - begin = this.offset; - if (typeof end === 'undefined') - end = this.limit; - begin |= 0; end |= 0; - if (begin < 0 || end > this.capacity() || begin > end) - throw RangeError("begin, end"); - return this.buffer.toString("binary", begin, end); - }; - - /** - * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromBinary = function(str, littleEndian) { - return ByteBuffer.wrap(new Buffer(str, "binary"), littleEndian); - return bb; - }; - - // encodings/debug - - /** - * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are: - * * `<` : offset, - * * `'` : markedOffset, - * * `>` : limit, - * * `|` : offset and limit, - * * `[` : offset and markedOffset, - * * `]` : markedOffset and limit, - * * `!` : offset, markedOffset and limit - * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false` - * @returns {string|!Array.} Debug string or array of lines if `asArray = true` - * @expose - * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3` - * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4` - * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1` - * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1` - */ - ByteBufferPrototype.toDebug = function(columns) { - var i = -1, - k = this.buffer.length, - b, - hex = "", - asc = "", - out = ""; - while (i 32 && b < 127 ? String.fromCharCode(b) : '.'; - } - ++i; - if (columns) { - if (i > 0 && i % 16 === 0 && i !== k) { - while (hex.length < 3*16+3) hex += " "; - out += hex+asc+"\n"; - hex = asc = ""; - } - } - if (i === this.offset && i === this.limit) - hex += i === this.markedOffset ? "!" : "|"; - else if (i === this.offset) - hex += i === this.markedOffset ? "[" : "<"; - else if (i === this.limit) - hex += i === this.markedOffset ? "]" : ">"; - else - hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : ""); - } - if (columns && hex !== " ") { - while (hex.length < 3*16+3) - hex += " "; - out += hex + asc + "\n"; - } - return columns ? out : hex; - }; - - /** - * Decodes a hex encoded string with marked offsets to a ByteBuffer. - * @param {string} str Debug string to decode (not be generated with `columns = true`) - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - * @see ByteBuffer#toDebug - */ - ByteBuffer.fromDebug = function(str, littleEndian, noAssert) { - var k = str.length, - bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert); - var i = 0, j = 0, ch, b, - rs = false, // Require symbol next - ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)? - fail = false; - while (i': - if (!noAssert) { - if (hl) { - fail = true; - break; - } - hl = true; - } - bb.limit = j; - rs = false; - break; - case "'": - if (!noAssert) { - if (hm) { - fail = true; - break; - } - hm = true; - } - bb.markedOffset = j; - rs = false; - break; - case ' ': - rs = false; - break; - default: - if (!noAssert) { - if (rs) { - fail = true; - break; - } - } - b = parseInt(ch+str.charAt(i++), 16); - if (!noAssert) { - if (isNaN(b) || b < 0 || b > 255) - throw TypeError("Illegal str: Not a debug encoded string"); - } - bb.buffer[j++] = b; - rs = true; - } - if (fail) - throw TypeError("Illegal str: Invalid symbol at "+i); - } - if (!noAssert) { - if (!ho || !hl) - throw TypeError("Illegal str: Missing offset or limit"); - if (j this.capacity || begin > end) + throw RangeError("begin, end"); + return this.buffer.toString("base64", begin, end); + }; + + /** + * Decodes a base64 encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromBase64 = function(str, littleEndian) { + return ByteBuffer.wrap(new Buffer(str, "base64"), littleEndian); + return bb; + }; + + /** + * Encodes a binary string to base64 like `window.btoa` does. + * @param {string} str Binary string + * @returns {string} Base64 encoded string + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa + * @expose + */ + ByteBuffer.btoa = function(str) { + return ByteBuffer.fromBinary(str).toBase64(); + }; + + /** + * Decodes a base64 encoded string to binary like `window.atob` does. + * @param {string} b64 Base64 encoded string + * @returns {string} Binary string + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob + * @expose + */ + ByteBuffer.atob = function(b64) { + return ByteBuffer.fromBase64(b64).toBinary(); + }; + + // encodings/binary + + /** + * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes. + * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}. + * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}. + * @returns {string} Binary encoded string + * @throws {RangeError} If `offset > limit` + * @expose + */ + ByteBufferPrototype.toBinary = function(begin, end) { + if (typeof begin === 'undefined') + begin = this.offset; + if (typeof end === 'undefined') + end = this.limit; + begin |= 0; end |= 0; + if (begin < 0 || end > this.capacity() || begin > end) + throw RangeError("begin, end"); + return this.buffer.toString("binary", begin, end); + }; + + /** + * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromBinary = function(str, littleEndian) { + return ByteBuffer.wrap(new Buffer(str, "binary"), littleEndian); + return bb; + }; + + // encodings/debug + + /** + * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are: + * * `<` : offset, + * * `'` : markedOffset, + * * `>` : limit, + * * `|` : offset and limit, + * * `[` : offset and markedOffset, + * * `]` : markedOffset and limit, + * * `!` : offset, markedOffset and limit + * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false` + * @returns {string|!Array.} Debug string or array of lines if `asArray = true` + * @expose + * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3` + * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4` + * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1` + * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1` + */ + ByteBufferPrototype.toDebug = function(columns) { + var i = -1, + k = this.buffer.length, + b, + hex = "", + asc = "", + out = ""; + while (i 32 && b < 127 ? String.fromCharCode(b) : '.'; + } + ++i; + if (columns) { + if (i > 0 && i % 16 === 0 && i !== k) { + while (hex.length < 3*16+3) hex += " "; + out += hex+asc+"\n"; + hex = asc = ""; + } + } + if (i === this.offset && i === this.limit) + hex += i === this.markedOffset ? "!" : "|"; + else if (i === this.offset) + hex += i === this.markedOffset ? "[" : "<"; + else if (i === this.limit) + hex += i === this.markedOffset ? "]" : ">"; + else + hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : ""); + } + if (columns && hex !== " ") { + while (hex.length < 3*16+3) + hex += " "; + out += hex + asc + "\n"; + } + return columns ? out : hex; + }; + + /** + * Decodes a hex encoded string with marked offsets to a ByteBuffer. + * @param {string} str Debug string to decode (not be generated with `columns = true`) + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + * @see ByteBuffer#toDebug + */ + ByteBuffer.fromDebug = function(str, littleEndian, noAssert) { + var k = str.length, + bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert); + var i = 0, j = 0, ch, b, + rs = false, // Require symbol next + ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)? + fail = false; + while (i': + if (!noAssert) { + if (hl) { + fail = true; + break; + } + hl = true; + } + bb.limit = j; + rs = false; + break; + case "'": + if (!noAssert) { + if (hm) { + fail = true; + break; + } + hm = true; + } + bb.markedOffset = j; + rs = false; + break; + case ' ': + rs = false; + break; + default: + if (!noAssert) { + if (rs) { + fail = true; + break; + } + } + b = parseInt(ch+str.charAt(i++), 16); + if (!noAssert) { + if (isNaN(b) || b < 0 || b > 255) + throw TypeError("Illegal str: Not a debug encoded string"); + } + bb.buffer[j++] = b; + rs = true; + } + if (fail) + throw TypeError("Illegal str: Invalid symbol at "+i); + } + if (!noAssert) { + if (!ho || !hl) + throw TypeError("Illegal str: Missing offset or limit"); + if (j>>= 0; @@ -3163,35 +3163,35 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - return this.buffer.toString("hex", begin, end); - }; - - /** - * Decodes a hex encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromHex = function(str, littleEndian, noAssert) { - if (!noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - if (str.length % 2 !== 0) - throw TypeError("Illegal str: Length not a multiple of 2"); - } - var bb = new ByteBuffer(0, littleEndian, true); - bb.buffer = new Buffer(str, "hex"); - bb.limit = bb.buffer.length; - return bb; - }; - - // utfx-embeddable - + } + return this.buffer.toString("hex", begin, end); + }; + + /** + * Decodes a hex encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromHex = function(str, littleEndian, noAssert) { + if (!noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); + if (str.length % 2 !== 0) + throw TypeError("Illegal str: Length not a multiple of 2"); + } + var bb = new ByteBuffer(0, littleEndian, true); + bb.buffer = new Buffer(str, "hex"); + bb.limit = bb.buffer.length; + return bb; + }; + + // utfx-embeddable + /** * utfx-embeddable (c) 2014 Daniel Wirtz * Released under the Apache License, Version 2.0 @@ -3388,20 +3388,20 @@ module.exports = (function() { return utfx; }(); - - // encodings/utf8 - - /** - * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded - * string. - * @returns {string} Hex encoded string - * @throws {RangeError} If `offset > limit` - * @expose - */ - ByteBufferPrototype.toUTF8 = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + + // encodings/utf8 + + /** + * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded + * string. + * @returns {string} Hex encoded string + * @throws {RangeError} If `offset > limit` + * @expose + */ + ByteBufferPrototype.toUTF8 = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -3410,45 +3410,45 @@ module.exports = (function() { end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.length) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.length); - } - return this.buffer.toString("utf8", begin, end); - }; - - /** - * Decodes an UTF8 encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) { - if (!noAssert) - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - var bb = new ByteBuffer(0, littleEndian, noAssert); - bb.buffer = new Buffer(str, "utf8"); - bb.limit = bb.buffer.length; - return bb; - }; - - - /** - * node-memcpy. This is an optional binding dependency and may not be present. - * @function - * @param {!(Buffer|ArrayBuffer|Uint8Array)} target Destination - * @param {number|!(Buffer|ArrayBuffer)} targetStart Destination start, defaults to 0. - * @param {(!(Buffer|ArrayBuffer|Uint8Array)|number)=} source Source - * @param {number=} sourceStart Source start, defaults to 0. - * @param {number=} sourceEnd Source end, defaults to capacity. - * @returns {number} Number of bytes copied - * @throws {Error} If any index is out of bounds - * @expose - */ - ByteBuffer.memcpy = memcpy; - - return ByteBuffer; - -})(); + } + return this.buffer.toString("utf8", begin, end); + }; + + /** + * Decodes an UTF8 encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) { + if (!noAssert) + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); + var bb = new ByteBuffer(0, littleEndian, noAssert); + bb.buffer = new Buffer(str, "utf8"); + bb.limit = bb.buffer.length; + return bb; + }; + + + /** + * node-memcpy. This is an optional binding dependency and may not be present. + * @function + * @param {!(Buffer|ArrayBuffer|Uint8Array)} target Destination + * @param {number|!(Buffer|ArrayBuffer)} targetStart Destination start, defaults to 0. + * @param {(!(Buffer|ArrayBuffer|Uint8Array)|number)=} source Source + * @param {number=} sourceStart Source start, defaults to 0. + * @param {number=} sourceEnd Source end, defaults to capacity. + * @returns {number} Number of bytes copied + * @throws {Error} If any index is out of bounds + * @expose + */ + ByteBuffer.memcpy = memcpy; + + return ByteBuffer; + +})(); diff --git a/dist/bytebuffer.js b/dist/bytebuffer.js index 9c78984..36d0207 100644 --- a/dist/bytebuffer.js +++ b/dist/bytebuffer.js @@ -1,539 +1,539 @@ -/* - Copyright 2013-2014 Daniel Wirtz - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -/** - * @license bytebuffer.js (c) 2015 Daniel Wirtz - * Backing buffer: ArrayBuffer, Accessor: Uint8Array - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/bytebuffer.js for details - */ -(function(global, factory) { - - /* AMD */ if (typeof define === 'function' && define["amd"]) - define(["long"], factory); - /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) - module['exports'] = (function() { - var Long; try { Long = require("long"); } catch (e) {} - return factory(Long); - })(); - /* Global */ else - (global["dcodeIO"] = global["dcodeIO"] || {})["ByteBuffer"] = factory(global["dcodeIO"]["Long"]); - -})(this, function(Long) { - "use strict"; - - /** - * Constructs a new ByteBuffer. - * @class The swiss army knife for binary data in JavaScript. - * @exports ByteBuffer - * @constructor - * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @expose - */ - var ByteBuffer = function(capacity, littleEndian, noAssert) { - if (typeof capacity === 'undefined') - capacity = ByteBuffer.DEFAULT_CAPACITY; - if (typeof littleEndian === 'undefined') - littleEndian = ByteBuffer.DEFAULT_ENDIAN; - if (typeof noAssert === 'undefined') - noAssert = ByteBuffer.DEFAULT_NOASSERT; - if (!noAssert) { - capacity = capacity | 0; - if (capacity < 0) - throw RangeError("Illegal capacity"); - littleEndian = !!littleEndian; - noAssert = !!noAssert; - } - - /** - * Backing ArrayBuffer. - * @type {!ArrayBuffer} - * @expose - */ - this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity); - - /** - * Uint8Array utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`. - * @type {?Uint8Array} - * @expose - */ - this.view = capacity === 0 ? null : new Uint8Array(this.buffer); - - /** - * Absolute read/write offset. - * @type {number} - * @expose - * @see ByteBuffer#flip - * @see ByteBuffer#clear - */ - this.offset = 0; - - /** - * Marked offset. - * @type {number} - * @expose - * @see ByteBuffer#mark - * @see ByteBuffer#reset - */ - this.markedOffset = -1; - - /** - * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation. - * @type {number} - * @expose - * @see ByteBuffer#flip - * @see ByteBuffer#clear - */ - this.limit = capacity; - - /** - * Whether to use little endian byte order, defaults to `false` for big endian. - * @type {boolean} - * @expose - */ - this.littleEndian = littleEndian; - - /** - * Whether to skip assertions of offsets and values, defaults to `false`. - * @type {boolean} - * @expose - */ - this.noAssert = noAssert; - }; - - /** - * ByteBuffer version. - * @type {string} - * @const - * @expose - */ - ByteBuffer.VERSION = "5.0.0"; - - /** - * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. - * @type {boolean} - * @const - * @expose - */ - ByteBuffer.LITTLE_ENDIAN = true; - - /** - * Big endian constant that can be used instead of its boolean value. Evaluates to `false`. - * @type {boolean} - * @const - * @expose - */ - ByteBuffer.BIG_ENDIAN = false; - - /** - * Default initial capacity of `16`. - * @type {number} - * @expose - */ - ByteBuffer.DEFAULT_CAPACITY = 16; - - /** - * Default endianess of `false` for big endian. - * @type {boolean} - * @expose - */ - ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN; - - /** - * Default no assertions flag of `false`. - * @type {boolean} - * @expose - */ - ByteBuffer.DEFAULT_NOASSERT = false; - - /** - * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded - * and int64 support is not available. - * @type {?Long} - * @const - * @see https://github.com/dcodeIO/long.js - * @expose - */ - ByteBuffer.Long = Long || null; - - /** - * @alias ByteBuffer.prototype - * @inner - */ - var ByteBufferPrototype = ByteBuffer.prototype; - - /** - * An indicator used to reliably determine if an object is a ByteBuffer or not. - * @type {boolean} - * @const - * @expose - * @private - */ - ByteBufferPrototype.__isByteBuffer__; - - Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", { - value: true, - enumerable: false, - configurable: false - }); - - // helpers - - /** - * @type {!ArrayBuffer} - * @inner - */ - var EMPTY_BUFFER = new ArrayBuffer(0); - - /** - * String.fromCharCode reference for compile-time renaming. - * @type {function(...number):string} - * @inner - */ - var stringFromCharCode = String.fromCharCode; - - /** - * Creates a source function for a string. - * @param {string} s String to read from - * @returns {function():number|null} Source function returning the next char code respectively `null` if there are - * no more characters left. - * @throws {TypeError} If the argument is invalid - * @inner - */ - function stringSource(s) { - var i=0; return function() { - return i < s.length ? s.charCodeAt(i++) : null; - }; - } - - /** - * Creates a destination function for a string. - * @returns {function(number=):undefined|string} Destination function successively called with the next char code. - * Returns the final string when called without arguments. - * @inner - */ - function stringDestination() { - var cs = [], ps = []; return function() { - if (arguments.length === 0) - return ps.join('')+stringFromCharCode.apply(String, cs); - if (cs.length + arguments.length > 1024) - ps.push(stringFromCharCode.apply(String, cs)), - cs.length = 0; - Array.prototype.push.apply(cs, arguments); - }; - } - - /** - * Gets the accessor type. - * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes) - * @expose - */ - ByteBuffer.accessor = function() { - return Uint8Array; - }; - /** - * Allocates a new ByteBuffer backed by a buffer of the specified capacity. - * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} - * @expose - */ - ByteBuffer.allocate = function(capacity, littleEndian, noAssert) { - return new ByteBuffer(capacity, littleEndian, noAssert); - }; - - /** - * Concatenates multiple ByteBuffers into one. - * @param {!Array.} buffers Buffers to concatenate - * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary", - * defaults to "utf8") - * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults - * to {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} Concatenated ByteBuffer - * @expose - */ - ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) { - if (typeof encoding === 'boolean' || typeof encoding !== 'string') { - noAssert = littleEndian; - littleEndian = encoding; - encoding = undefined; - } - var capacity = 0; - for (var i=0, k=buffers.length, length; i 0) capacity += length; - } - if (capacity === 0) - return new ByteBuffer(0, littleEndian, noAssert); - var bb = new ByteBuffer(capacity, littleEndian, noAssert), - bi; - i=0; while (i} buffer Anything that can be wrapped - * @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to - * "utf8") - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer` - * @expose - */ - ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) { - if (typeof encoding !== 'string') { - noAssert = littleEndian; - littleEndian = encoding; - encoding = undefined; - } - if (typeof buffer === 'string') { - if (typeof encoding === 'undefined') - encoding = "utf8"; - switch (encoding) { - case "base64": - return ByteBuffer.fromBase64(buffer, littleEndian); - case "hex": - return ByteBuffer.fromHex(buffer, littleEndian); - case "binary": - return ByteBuffer.fromBinary(buffer, littleEndian); - case "utf8": - return ByteBuffer.fromUTF8(buffer, littleEndian); - case "debug": - return ByteBuffer.fromDebug(buffer, littleEndian); - default: - throw Error("Unsupported encoding: "+encoding); - } - } - if (buffer === null || typeof buffer !== 'object') - throw TypeError("Illegal buffer"); - var bb; - if (ByteBuffer.isByteBuffer(buffer)) { - bb = ByteBufferPrototype.clone.call(buffer); - bb.markedOffset = -1; - return bb; - } - if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array - bb = new ByteBuffer(0, littleEndian, noAssert); - if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER - bb.buffer = buffer.buffer; - bb.offset = buffer.byteOffset; - bb.limit = buffer.byteOffset + buffer.byteLength; - bb.view = new Uint8Array(buffer.buffer); - } - } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer - bb = new ByteBuffer(0, littleEndian, noAssert); - if (buffer.byteLength > 0) { - bb.buffer = buffer; - bb.offset = 0; - bb.limit = buffer.byteLength; - bb.view = buffer.byteLength > 0 ? new Uint8Array(buffer) : null; - } - } else if (Object.prototype.toString.call(buffer) === "[object Array]") { // Create from octets - bb = new ByteBuffer(buffer.length, littleEndian, noAssert); - bb.limit = buffer.length; - for (var i=0; i} value Array of booleans to write - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {!ByteBuffer} - * @expose - */ - ByteBufferPrototype.writeBitSet = function(value, offset) { +/* + Copyright 2013-2014 Daniel Wirtz + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/** + * @license bytebuffer.js (c) 2015 Daniel Wirtz + * Backing buffer: ArrayBuffer, Accessor: Uint8Array + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bytebuffer.js for details + */ +(function(global, factory) { + + /* AMD */ if (typeof define === 'function' && define["amd"]) + define(["long"], factory); + /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) + module['exports'] = (function() { + var Long; try { Long = require("long"); } catch (e) {} + return factory(Long); + })(); + /* Global */ else + (global["dcodeIO"] = global["dcodeIO"] || {})["ByteBuffer"] = factory(global["dcodeIO"]["Long"]); + +})(this, function(Long) { + "use strict"; + + /** + * Constructs a new ByteBuffer. + * @class The swiss army knife for binary data in JavaScript. + * @exports ByteBuffer + * @constructor + * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @expose + */ + var ByteBuffer = function(capacity, littleEndian, noAssert) { + if (typeof capacity === 'undefined') + capacity = ByteBuffer.DEFAULT_CAPACITY; + if (typeof littleEndian === 'undefined') + littleEndian = ByteBuffer.DEFAULT_ENDIAN; + if (typeof noAssert === 'undefined') + noAssert = ByteBuffer.DEFAULT_NOASSERT; + if (!noAssert) { + capacity = capacity | 0; + if (capacity < 0) + throw RangeError("Illegal capacity"); + littleEndian = !!littleEndian; + noAssert = !!noAssert; + } + + /** + * Backing ArrayBuffer. + * @type {!ArrayBuffer} + * @expose + */ + this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity); + + /** + * Uint8Array utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`. + * @type {?Uint8Array} + * @expose + */ + this.view = capacity === 0 ? null : new Uint8Array(this.buffer); + + /** + * Absolute read/write offset. + * @type {number} + * @expose + * @see ByteBuffer#flip + * @see ByteBuffer#clear + */ + this.offset = 0; + + /** + * Marked offset. + * @type {number} + * @expose + * @see ByteBuffer#mark + * @see ByteBuffer#reset + */ + this.markedOffset = -1; + + /** + * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation. + * @type {number} + * @expose + * @see ByteBuffer#flip + * @see ByteBuffer#clear + */ + this.limit = capacity; + + /** + * Whether to use little endian byte order, defaults to `false` for big endian. + * @type {boolean} + * @expose + */ + this.littleEndian = littleEndian; + + /** + * Whether to skip assertions of offsets and values, defaults to `false`. + * @type {boolean} + * @expose + */ + this.noAssert = noAssert; + }; + + /** + * ByteBuffer version. + * @type {string} + * @const + * @expose + */ + ByteBuffer.VERSION = "5.0.0"; + + /** + * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. + * @type {boolean} + * @const + * @expose + */ + ByteBuffer.LITTLE_ENDIAN = true; + + /** + * Big endian constant that can be used instead of its boolean value. Evaluates to `false`. + * @type {boolean} + * @const + * @expose + */ + ByteBuffer.BIG_ENDIAN = false; + + /** + * Default initial capacity of `16`. + * @type {number} + * @expose + */ + ByteBuffer.DEFAULT_CAPACITY = 16; + + /** + * Default endianess of `false` for big endian. + * @type {boolean} + * @expose + */ + ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN; + + /** + * Default no assertions flag of `false`. + * @type {boolean} + * @expose + */ + ByteBuffer.DEFAULT_NOASSERT = false; + + /** + * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded + * and int64 support is not available. + * @type {?Long} + * @const + * @see https://github.com/dcodeIO/long.js + * @expose + */ + ByteBuffer.Long = Long || null; + + /** + * @alias ByteBuffer.prototype + * @inner + */ + var ByteBufferPrototype = ByteBuffer.prototype; + + /** + * An indicator used to reliably determine if an object is a ByteBuffer or not. + * @type {boolean} + * @const + * @expose + * @private + */ + ByteBufferPrototype.__isByteBuffer__; + + Object.defineProperty(ByteBufferPrototype, "__isByteBuffer__", { + value: true, + enumerable: false, + configurable: false + }); + + // helpers + + /** + * @type {!ArrayBuffer} + * @inner + */ + var EMPTY_BUFFER = new ArrayBuffer(0); + + /** + * String.fromCharCode reference for compile-time renaming. + * @type {function(...number):string} + * @inner + */ + var stringFromCharCode = String.fromCharCode; + + /** + * Creates a source function for a string. + * @param {string} s String to read from + * @returns {function():number|null} Source function returning the next char code respectively `null` if there are + * no more characters left. + * @throws {TypeError} If the argument is invalid + * @inner + */ + function stringSource(s) { + var i=0; return function() { + return i < s.length ? s.charCodeAt(i++) : null; + }; + } + + /** + * Creates a destination function for a string. + * @returns {function(number=):undefined|string} Destination function successively called with the next char code. + * Returns the final string when called without arguments. + * @inner + */ + function stringDestination() { + var cs = [], ps = []; return function() { + if (arguments.length === 0) + return ps.join('')+stringFromCharCode.apply(String, cs); + if (cs.length + arguments.length > 1024) + ps.push(stringFromCharCode.apply(String, cs)), + cs.length = 0; + Array.prototype.push.apply(cs, arguments); + }; + } + + /** + * Gets the accessor type. + * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes) + * @expose + */ + ByteBuffer.accessor = function() { + return Uint8Array; + }; + /** + * Allocates a new ByteBuffer backed by a buffer of the specified capacity. + * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}. + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} + * @expose + */ + ByteBuffer.allocate = function(capacity, littleEndian, noAssert) { + return new ByteBuffer(capacity, littleEndian, noAssert); + }; + + /** + * Concatenates multiple ByteBuffers into one. + * @param {!Array.} buffers Buffers to concatenate + * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string ("base64", "hex", "binary", + * defaults to "utf8") + * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults + * to {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} Concatenated ByteBuffer + * @expose + */ + ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) { + if (typeof encoding === 'boolean' || typeof encoding !== 'string') { + noAssert = littleEndian; + littleEndian = encoding; + encoding = undefined; + } + var capacity = 0; + for (var i=0, k=buffers.length, length; i 0) capacity += length; + } + if (capacity === 0) + return new ByteBuffer(0, littleEndian, noAssert); + var bb = new ByteBuffer(capacity, littleEndian, noAssert), + bi; + i=0; while (i} buffer Anything that can be wrapped + * @param {(string|boolean)=} encoding String encoding if `buffer` is a string ("base64", "hex", "binary", defaults to + * "utf8") + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer` + * @expose + */ + ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) { + if (typeof encoding !== 'string') { + noAssert = littleEndian; + littleEndian = encoding; + encoding = undefined; + } + if (typeof buffer === 'string') { + if (typeof encoding === 'undefined') + encoding = "utf8"; + switch (encoding) { + case "base64": + return ByteBuffer.fromBase64(buffer, littleEndian); + case "hex": + return ByteBuffer.fromHex(buffer, littleEndian); + case "binary": + return ByteBuffer.fromBinary(buffer, littleEndian); + case "utf8": + return ByteBuffer.fromUTF8(buffer, littleEndian); + case "debug": + return ByteBuffer.fromDebug(buffer, littleEndian); + default: + throw Error("Unsupported encoding: "+encoding); + } + } + if (buffer === null || typeof buffer !== 'object') + throw TypeError("Illegal buffer"); + var bb; + if (ByteBuffer.isByteBuffer(buffer)) { + bb = ByteBufferPrototype.clone.call(buffer); + bb.markedOffset = -1; + return bb; + } + if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array + bb = new ByteBuffer(0, littleEndian, noAssert); + if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER + bb.buffer = buffer.buffer; + bb.offset = buffer.byteOffset; + bb.limit = buffer.byteOffset + buffer.byteLength; + bb.view = new Uint8Array(buffer.buffer); + } + } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer + bb = new ByteBuffer(0, littleEndian, noAssert); + if (buffer.byteLength > 0) { + bb.buffer = buffer; + bb.offset = 0; + bb.limit = buffer.byteLength; + bb.view = buffer.byteLength > 0 ? new Uint8Array(buffer) : null; + } + } else if (Object.prototype.toString.call(buffer) === "[object Array]") { // Create from octets + bb = new ByteBuffer(buffer.length, littleEndian, noAssert); + bb.limit = buffer.length; + for (var i=0; i} value Array of booleans to write + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.writeBitSet = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (!(value instanceof Array)) - throw TypeError("Illegal BitSet: Not an array"); + if (!this.noAssert) { + if (!(value instanceof Array)) + throw TypeError("Illegal BitSet: Not an array"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - - var start = offset, - bits = value.length, - bytes = (bits >> 3), - bit = 0, - k; - - offset += this.writeVarint32(bits,offset); - - while(bytes--) { - k = (!!value[bit++] & 1) | - ((!!value[bit++] & 1) << 1) | - ((!!value[bit++] & 1) << 2) | - ((!!value[bit++] & 1) << 3) | - ((!!value[bit++] & 1) << 4) | - ((!!value[bit++] & 1) << 5) | - ((!!value[bit++] & 1) << 6) | - ((!!value[bit++] & 1) << 7); - this.writeByte(k,offset++); - } - - if(bit < bits) { - var m = 0; k = 0; - while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); - this.writeByte(k,offset++); - } - - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - } - - /** - * Reads a BitSet as an array of booleans. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {Array - * @expose - */ - ByteBufferPrototype.readBitSet = function(offset) { + } + + var start = offset, + bits = value.length, + bytes = (bits >> 3), + bit = 0, + k; + + offset += this.writeVarint32(bits,offset); + + while(bytes--) { + k = (!!value[bit++] & 1) | + ((!!value[bit++] & 1) << 1) | + ((!!value[bit++] & 1) << 2) | + ((!!value[bit++] & 1) << 3) | + ((!!value[bit++] & 1) << 4) | + ((!!value[bit++] & 1) << 5) | + ((!!value[bit++] & 1) << 6) | + ((!!value[bit++] & 1) << 7); + this.writeByte(k,offset++); + } + + if(bit < bits) { + var m = 0; k = 0; + while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++)); + this.writeByte(k,offset++); + } + + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + } + + /** + * Reads a BitSet as an array of booleans. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {Array + * @expose + */ + ByteBufferPrototype.readBitSet = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - - var ret = this.readVarint32(offset), - bits = ret.value, - bytes = (bits >> 3), - bit = 0, - value = [], - k; - - offset += ret.length; - - while(bytes--) { - k = this.readByte(offset++); - value[bit++] = !!(k & 0x01); - value[bit++] = !!(k & 0x02); - value[bit++] = !!(k & 0x04); - value[bit++] = !!(k & 0x08); - value[bit++] = !!(k & 0x10); - value[bit++] = !!(k & 0x20); - value[bit++] = !!(k & 0x40); - value[bit++] = !!(k & 0x80); - } - - if(bit < bits) { - var m = 0; - k = this.readByte(offset++); - while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); - } - - if (relative) { - this.offset = offset; - } - return value; - } - /** - * Reads the specified number of bytes. - * @param {number} length Number of bytes to read - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. - * @returns {!ByteBuffer} - * @expose - */ - ByteBufferPrototype.readBytes = function(length, offset) { + + var ret = this.readVarint32(offset), + bits = ret.value, + bytes = (bits >> 3), + bit = 0, + value = [], + k; + + offset += ret.length; + + while(bytes--) { + k = this.readByte(offset++); + value[bit++] = !!(k & 0x01); + value[bit++] = !!(k & 0x02); + value[bit++] = !!(k & 0x04); + value[bit++] = !!(k & 0x08); + value[bit++] = !!(k & 0x10); + value[bit++] = !!(k & 0x20); + value[bit++] = !!(k & 0x40); + value[bit++] = !!(k & 0x80); + } + + if(bit < bits) { + var m = 0; + k = this.readByte(offset++); + while(bit < bits) value[bit++] = !!((k >> (m++)) & 1); + } + + if (relative) { + this.offset = offset; + } + return value; + } + /** + * Reads the specified number of bytes. + * @param {number} length Number of bytes to read + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted. + * @returns {!ByteBuffer} + * @expose + */ + ByteBufferPrototype.readBytes = function(length, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + length > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.byteLength); - } - var slice = this.slice(offset, offset + length); + } + var slice = this.slice(offset, offset + length); if (relative) this.offset += length; - return slice; - }; - - /** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; - - // types/ints/int8 - - /** - * Writes an 8bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeInt8 = function(value, offset) { + return slice; + }; + + /** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; + + // types/ints/int8 + + /** + * Writes an 8bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeInt8 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -542,69 +542,69 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 1; var capacity0 = this.buffer.byteLength; if (offset > capacity0) this.resize((capacity0 *= 2) > offset ? capacity0 : offset); offset -= 1; - this.view[offset] = value; + this.view[offset] = value; if (relative) this.offset += 1; - return this; - }; - - /** - * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8; - - /** - * Reads an 8bit signed integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt8 = function(offset) { + return this; + }; + + /** + * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8; + + /** + * Reads an 8bit signed integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt8 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var value = this.view[offset]; - if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed + } + var value = this.view[offset]; + if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed if (relative) this.offset += 1; - return value; - }; - - /** - * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8; - - /** - * Writes an 8bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUint8 = function(value, offset) { + return value; + }; + + /** + * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8; + + /** + * Writes an 8bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUint8 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -613,71 +613,71 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 1; var capacity1 = this.buffer.byteLength; if (offset > capacity1) this.resize((capacity1 *= 2) > offset ? capacity1 : offset); offset -= 1; - this.view[offset] = value; + this.view[offset] = value; if (relative) this.offset += 1; - return this; - }; - - /** - * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8; - - /** - * Reads an 8bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUint8 = function(offset) { + return this; + }; + + /** + * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8; + + /** + * Reads an 8bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUint8 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var value = this.view[offset]; + } + var value = this.view[offset]; if (relative) this.offset += 1; - return value; - }; - - /** - * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8; - - // types/ints/int16 - - /** - * Writes a 16bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeInt16 = function(value, offset) { + return value; + }; + + /** + * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8; + + // types/ints/int16 + + /** + * Writes a 16bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeInt16 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -686,88 +686,88 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 2; var capacity2 = this.buffer.byteLength; if (offset > capacity2) this.resize((capacity2 *= 2) > offset ? capacity2 : offset); offset -= 2; - if (this.littleEndian) { - this.view[offset+1] = (value & 0xFF00) >>> 8; - this.view[offset ] = value & 0x00FF; - } else { - this.view[offset] = (value & 0xFF00) >>> 8; - this.view[offset+1] = value & 0x00FF; - } + if (this.littleEndian) { + this.view[offset+1] = (value & 0xFF00) >>> 8; + this.view[offset ] = value & 0x00FF; + } else { + this.view[offset] = (value & 0xFF00) >>> 8; + this.view[offset+1] = value & 0x00FF; + } if (relative) this.offset += 2; - return this; - }; - - /** - * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16; - - /** - * Reads a 16bit signed integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readInt16 = function(offset) { + return this; + }; + + /** + * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16; + + /** + * Reads a 16bit signed integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readInt16 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 2 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.byteLength); - } - var value = 0; - if (this.littleEndian) { - value = this.view[offset ]; - value |= this.view[offset+1] << 8; - } else { - value = this.view[offset ] << 8; - value |= this.view[offset+1]; - } - if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed + } + var value = 0; + if (this.littleEndian) { + value = this.view[offset ]; + value |= this.view[offset+1] << 8; + } else { + value = this.view[offset ] << 8; + value |= this.view[offset+1]; + } + if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed if (relative) this.offset += 2; - return value; - }; - - /** - * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16; - - /** - * Writes a 16bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeUint16 = function(value, offset) { + return value; + }; + + /** + * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16; + + /** + * Writes a 16bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeUint16 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -776,87 +776,87 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 2; var capacity3 = this.buffer.byteLength; if (offset > capacity3) this.resize((capacity3 *= 2) > offset ? capacity3 : offset); offset -= 2; - if (this.littleEndian) { - this.view[offset+1] = (value & 0xFF00) >>> 8; - this.view[offset ] = value & 0x00FF; - } else { - this.view[offset] = (value & 0xFF00) >>> 8; - this.view[offset+1] = value & 0x00FF; - } + if (this.littleEndian) { + this.view[offset+1] = (value & 0xFF00) >>> 8; + this.view[offset ] = value & 0x00FF; + } else { + this.view[offset] = (value & 0xFF00) >>> 8; + this.view[offset+1] = value & 0x00FF; + } if (relative) this.offset += 2; - return this; - }; - - /** - * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @throws {TypeError} If `offset` or `value` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16; - - /** - * Reads a 16bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readUint16 = function(offset) { + return this; + }; + + /** + * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @throws {TypeError} If `offset` or `value` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16; + + /** + * Reads a 16bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readUint16 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 2 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+2+") <= "+this.buffer.byteLength); - } - var value = 0; - if (this.littleEndian) { - value = this.view[offset ]; - value |= this.view[offset+1] << 8; - } else { - value = this.view[offset ] << 8; - value |= this.view[offset+1]; - } + } + var value = 0; + if (this.littleEndian) { + value = this.view[offset ]; + value |= this.view[offset+1] << 8; + } else { + value = this.view[offset ] << 8; + value |= this.view[offset+1]; + } if (relative) this.offset += 2; - return value; - }; - - /** - * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}. - * @function - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. - * @returns {number} Value read - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @expose - */ - ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16; - - // types/ints/int32 - - /** - * Writes a 32bit signed integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeInt32 = function(value, offset) { + return value; + }; + + /** + * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}. + * @function + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted. + * @returns {number} Value read + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @expose + */ + ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16; + + // types/ints/int32 + + /** + * Writes a 32bit signed integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeInt32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -865,7 +865,7 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 4; var capacity4 = this.buffer.byteLength; if (offset > capacity4) @@ -883,34 +883,34 @@ this.view[offset+3] = value & 0xFF; } if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32; - - /** - * Reads a 32bit signed integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32; + + /** + * Reads a 32bit signed integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var value = 0; + } + var value = 0; if (this.littleEndian) { value = this.view[offset+2] << 16; value |= this.view[offset+1] << 8; @@ -922,29 +922,29 @@ value |= this.view[offset+3]; value += this.view[offset ] << 24 >>> 0; } - value |= 0; // Cast to signed + value |= 0; // Cast to signed if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}. - * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32; - - /** - * Writes a 32bit unsigned integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeUint32 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}. + * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32; + + /** + * Writes a 32bit unsigned integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeUint32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value >>>= 0; @@ -953,7 +953,7 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 4; var capacity5 = this.buffer.byteLength; if (offset > capacity5) @@ -971,35 +971,35 @@ this.view[offset+3] = value & 0xFF; } if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @expose - */ - ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32; - - /** - * Reads a 32bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUint32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @expose + */ + ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32; + + /** + * Reads a 32bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUint32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var value = 0; + } + var value = 0; if (this.littleEndian) { value = this.view[offset+2] << 16; value |= this.view[offset+1] << 8; @@ -1012,33 +1012,33 @@ value += this.view[offset ] << 24 >>> 0; } if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} Value read - * @expose - */ - ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32; - - // types/ints/int64 - - if (Long) { - - /** - * Writes a 64bit signed integer. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeInt64 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} Value read + * @expose + */ + ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32; + + // types/ints/int64 + + if (Long) { + + /** + * Writes a 64bit signed integer. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeInt64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1050,7 +1050,7 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1060,105 +1060,105 @@ if (offset > capacity6) this.resize((capacity6 *= 2) > offset ? capacity6 : offset); offset -= 8; - var lo = value.low, - hi = value.high; - if (this.littleEndian) { + var lo = value.low, + hi = value.high; + if (this.littleEndian) { this.view[offset+3] = (lo >>> 24) & 0xFF; this.view[offset+2] = (lo >>> 16) & 0xFF; this.view[offset+1] = (lo >>> 8) & 0xFF; this.view[offset ] = lo & 0xFF; - offset += 4; + offset += 4; this.view[offset+3] = (hi >>> 24) & 0xFF; this.view[offset+2] = (hi >>> 16) & 0xFF; this.view[offset+1] = (hi >>> 8) & 0xFF; this.view[offset ] = hi & 0xFF; - } else { + } else { this.view[offset ] = (hi >>> 24) & 0xFF; this.view[offset+1] = (hi >>> 16) & 0xFF; this.view[offset+2] = (hi >>> 8) & 0xFF; this.view[offset+3] = hi & 0xFF; - offset += 4; + offset += 4; this.view[offset ] = (lo >>> 24) & 0xFF; this.view[offset+1] = (lo >>> 16) & 0xFF; this.view[offset+2] = (lo >>> 8) & 0xFF; this.view[offset+3] = lo & 0xFF; - } + } if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64; - - /** - * Reads a 64bit signed integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readInt64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64; + + /** + * Reads a 64bit signed integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readInt64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength); - } - var lo = 0, - hi = 0; - if (this.littleEndian) { + } + var lo = 0, + hi = 0; + if (this.littleEndian) { lo = this.view[offset+2] << 16; lo |= this.view[offset+1] << 8; lo |= this.view[offset ]; lo += this.view[offset+3] << 24 >>> 0; - offset += 4; + offset += 4; hi = this.view[offset+2] << 16; hi |= this.view[offset+1] << 8; hi |= this.view[offset ]; hi += this.view[offset+3] << 24 >>> 0; - } else { + } else { hi = this.view[offset+1] << 16; hi |= this.view[offset+2] << 8; hi |= this.view[offset+3]; hi += this.view[offset ] << 24 >>> 0; - offset += 4; + offset += 4; lo = this.view[offset+1] << 16; lo |= this.view[offset+2] << 8; lo |= this.view[offset+3]; lo += this.view[offset ] << 24 >>> 0; - } - var value = new Long(lo, hi, false); + } + var value = new Long(lo, hi, false); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64; - - /** - * Writes a 64bit unsigned integer. - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUint64 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64; + + /** + * Writes a 64bit unsigned integer. + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUint64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1170,7 +1170,7 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1180,431 +1180,431 @@ if (offset > capacity7) this.resize((capacity7 *= 2) > offset ? capacity7 : offset); offset -= 8; - var lo = value.low, - hi = value.high; - if (this.littleEndian) { + var lo = value.low, + hi = value.high; + if (this.littleEndian) { this.view[offset+3] = (lo >>> 24) & 0xFF; this.view[offset+2] = (lo >>> 16) & 0xFF; this.view[offset+1] = (lo >>> 8) & 0xFF; this.view[offset ] = lo & 0xFF; - offset += 4; + offset += 4; this.view[offset+3] = (hi >>> 24) & 0xFF; this.view[offset+2] = (hi >>> 16) & 0xFF; this.view[offset+1] = (hi >>> 8) & 0xFF; this.view[offset ] = hi & 0xFF; - } else { + } else { this.view[offset ] = (hi >>> 24) & 0xFF; this.view[offset+1] = (hi >>> 16) & 0xFF; this.view[offset+2] = (hi >>> 8) & 0xFF; this.view[offset+3] = hi & 0xFF; - offset += 4; + offset += 4; this.view[offset ] = (lo >>> 24) & 0xFF; this.view[offset+1] = (lo >>> 16) & 0xFF; this.view[offset+2] = (lo >>> 8) & 0xFF; this.view[offset+3] = lo & 0xFF; - } + } if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}. - * @function - * @param {number|!Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64; - - /** - * Reads a 64bit unsigned integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readUint64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}. + * @function + * @param {number|!Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64; + + /** + * Reads a 64bit unsigned integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readUint64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength); - } - var lo = 0, - hi = 0; - if (this.littleEndian) { + } + var lo = 0, + hi = 0; + if (this.littleEndian) { lo = this.view[offset+2] << 16; lo |= this.view[offset+1] << 8; lo |= this.view[offset ]; lo += this.view[offset+3] << 24 >>> 0; - offset += 4; + offset += 4; hi = this.view[offset+2] << 16; hi |= this.view[offset+1] << 8; hi |= this.view[offset ]; hi += this.view[offset+3] << 24 >>> 0; - } else { + } else { hi = this.view[offset+1] << 16; hi |= this.view[offset+2] << 8; hi |= this.view[offset+3]; hi += this.view[offset ] << 24 >>> 0; - offset += 4; + offset += 4; lo = this.view[offset+1] << 16; lo |= this.view[offset+2] << 8; lo |= this.view[offset+3]; lo += this.view[offset ] << 24 >>> 0; - } - var value = new Long(lo, hi, true); + } + var value = new Long(lo, hi, true); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!Long} - * @expose - */ - ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64; - - } // Long - - - // types/floats/float32 - - /* - ieee754 - https://github.com/feross/ieee754 - - The MIT License (MIT) - - Copyright (c) Feross Aboukhadijeh - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - */ - - /** - * Reads an IEEE754 float from a byte array. - * @param {!Array} buffer - * @param {number} offset - * @param {boolean} isLE - * @param {number} mLen - * @param {number} nBytes - * @returns {number} - * @inner - */ - function ieee754_read(buffer, offset, isLE, mLen, nBytes) { - var e, m, - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - nBits = -7, - i = isLE ? (nBytes - 1) : 0, - d = isLE ? -1 : 1, - s = buffer[offset + i]; - - i += d; - - e = s & ((1 << (-nBits)) - 1); - s >>= (-nBits); - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1); - e >>= (-nBits); - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity); - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen); - } - - /** - * Writes an IEEE754 float to a byte array. - * @param {!Array} buffer - * @param {number} value - * @param {number} offset - * @param {boolean} isLE - * @param {number} mLen - * @param {number} nBytes - * @inner - */ - function ieee754_write(buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c, - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0), - i = isLE ? 0 : (nBytes - 1), - d = isLE ? 1 : -1, - s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128; - } - - /** - * Writes a 32bit float. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat32 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!Long} + * @expose + */ + ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64; + + } // Long + + + // types/floats/float32 + + /* + ieee754 - https://github.com/feross/ieee754 + + The MIT License (MIT) + + Copyright (c) Feross Aboukhadijeh + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ + + /** + * Reads an IEEE754 float from a byte array. + * @param {!Array} buffer + * @param {number} offset + * @param {boolean} isLE + * @param {number} mLen + * @param {number} nBytes + * @returns {number} + * @inner + */ + function ieee754_read(buffer, offset, isLE, mLen, nBytes) { + var e, m, + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + nBits = -7, + i = isLE ? (nBytes - 1) : 0, + d = isLE ? -1 : 1, + s = buffer[offset + i]; + + i += d; + + e = s & ((1 << (-nBits)) - 1); + s >>= (-nBits); + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1); + e >>= (-nBits); + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity); + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + } + + /** + * Writes an IEEE754 float to a byte array. + * @param {!Array} buffer + * @param {number} value + * @param {number} offset + * @param {boolean} isLE + * @param {number} mLen + * @param {number} nBytes + * @inner + */ + function ieee754_write(buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c, + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0), + i = isLE ? 0 : (nBytes - 1), + d = isLE ? 1 : -1, + s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128; + } + + /** + * Writes a 32bit float. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof value !== 'number') - throw TypeError("Illegal value: "+value+" (not a number)"); + if (!this.noAssert) { + if (typeof value !== 'number') + throw TypeError("Illegal value: "+value+" (not a number)"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 4; var capacity8 = this.buffer.byteLength; if (offset > capacity8) this.resize((capacity8 *= 2) > offset ? capacity8 : offset); offset -= 4; - ieee754_write(this.view, value, offset, this.littleEndian, 23, 4); + ieee754_write(this.view, value, offset, this.littleEndian, 23, 4); if (relative) this.offset += 4; - return this; - }; - - /** - * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32; - - /** - * Reads a 32bit float. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat32 = function(offset) { + return this; + }; + + /** + * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32; + + /** + * Reads a 32bit float. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var value = ieee754_read(this.view, offset, this.littleEndian, 23, 4); + } + var value = ieee754_read(this.view, offset, this.littleEndian, 23, 4); if (relative) this.offset += 4; - return value; - }; - - /** - * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32; - - // types/floats/float64 - - /** - * Writes a 64bit float. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeFloat64 = function(value, offset) { + return value; + }; + + /** + * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32; + + // types/floats/float64 + + /** + * Writes a 64bit float. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeFloat64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof value !== 'number') - throw TypeError("Illegal value: "+value+" (not a number)"); + if (!this.noAssert) { + if (typeof value !== 'number') + throw TypeError("Illegal value: "+value+" (not a number)"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } offset += 8; var capacity9 = this.buffer.byteLength; if (offset > capacity9) this.resize((capacity9 *= 2) > offset ? capacity9 : offset); offset -= 8; - ieee754_write(this.view, value, offset, this.littleEndian, 52, 8); + ieee754_write(this.view, value, offset, this.littleEndian, 52, 8); if (relative) this.offset += 8; - return this; - }; - - /** - * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}. - * @function - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64; - - /** - * Reads a 64bit float. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readFloat64 = function(offset) { + return this; + }; + + /** + * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}. + * @function + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64; + + /** + * Reads a 64bit float. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readFloat64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 8 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+8+") <= "+this.buffer.byteLength); - } - var value = ieee754_read(this.view, offset, this.littleEndian, 52, 8); + } + var value = ieee754_read(this.view, offset, this.littleEndian, 52, 8); if (relative) this.offset += 8; - return value; - }; - - /** - * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}. - * @function - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. - * @returns {number} - * @expose - */ - ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64; - - - // types/varints/varint32 - - /** - * Maximum number of bytes required to store a 32bit base 128 variable-length integer. - * @type {number} - * @const - * @expose - */ - ByteBuffer.MAX_VARINT32_BYTES = 5; - - /** - * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer. - * @param {number} value Value to encode - * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES} - * @expose - */ - ByteBuffer.calculateVarint32 = function(value) { - // ref: src/google/protobuf/io/coded_stream.cc - value = value >>> 0; - if (value < 1 << 7 ) return 1; - else if (value < 1 << 14) return 2; - else if (value < 1 << 21) return 3; - else if (value < 1 << 28) return 4; - else return 5; - }; - - /** - * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding. - * @param {number} n Signed 32bit integer - * @returns {number} Unsigned zigzag encoded 32bit integer - * @expose - */ - ByteBuffer.zigZagEncode32 = function(n) { - return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h - }; - - /** - * Decodes a zigzag encoded signed 32bit integer. - * @param {number} n Unsigned zigzag encoded 32bit integer - * @returns {number} Signed 32bit integer - * @expose - */ - ByteBuffer.zigZagDecode32 = function(n) { - return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h - }; - - /** - * Writes a 32bit base 128 variable-length integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeVarint32 = function(value, offset) { + return value; + }; + + /** + * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}. + * @function + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted. + * @returns {number} + * @expose + */ + ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64; + + + // types/varints/varint32 + + /** + * Maximum number of bytes required to store a 32bit base 128 variable-length integer. + * @type {number} + * @const + * @expose + */ + ByteBuffer.MAX_VARINT32_BYTES = 5; + + /** + * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer. + * @param {number} value Value to encode + * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES} + * @expose + */ + ByteBuffer.calculateVarint32 = function(value) { + // ref: src/google/protobuf/io/coded_stream.cc + value = value >>> 0; + if (value < 1 << 7 ) return 1; + else if (value < 1 << 14) return 2; + else if (value < 1 << 21) return 3; + else if (value < 1 << 28) return 4; + else return 5; + }; + + /** + * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding. + * @param {number} n Signed 32bit integer + * @returns {number} Unsigned zigzag encoded 32bit integer + * @expose + */ + ByteBuffer.zigZagEncode32 = function(n) { + return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h + }; + + /** + * Decodes a zigzag encoded signed 32bit integer. + * @param {number} n Unsigned zigzag encoded 32bit integer + * @returns {number} Signed 32bit integer + * @expose + */ + ByteBuffer.zigZagDecode32 = function(n) { + return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h + }; + + /** + * Writes a 32bit base 128 variable-length integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeVarint32 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -1613,190 +1613,190 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var size = ByteBuffer.calculateVarint32(value), - b; + } + var size = ByteBuffer.calculateVarint32(value), + b; offset += size; var capacity10 = this.buffer.byteLength; if (offset > capacity10) this.resize((capacity10 *= 2) > offset ? capacity10 : offset); offset -= size; - value >>>= 0; - while (value >= 0x80) { - b = (value & 0x7f) | 0x80; - this.view[offset++] = b; - value >>>= 7; - } - this.view[offset++] = value; - if (relative) { - this.offset = offset; - return this; - } - return size; - }; - - /** - * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer. - * @param {number} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) { - return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset); - }; - - /** - * Reads a 32bit base 128 variable-length integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read - * and the actual number of bytes read. - * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available - * to fully decode the varint. - * @expose - */ - ByteBufferPrototype.readVarint32 = function(offset) { + value >>>= 0; + while (value >= 0x80) { + b = (value & 0x7f) | 0x80; + this.view[offset++] = b; + value >>>= 7; + } + this.view[offset++] = value; + if (relative) { + this.offset = offset; + return this; + } + return size; + }; + + /** + * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer. + * @param {number} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) { + return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset); + }; + + /** + * Reads a 32bit base 128 variable-length integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read + * and the actual number of bytes read. + * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available + * to fully decode the varint. + * @expose + */ + ByteBufferPrototype.readVarint32 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var c = 0, - value = 0 >>> 0, - b; - do { - if (!this.noAssert && offset > this.limit) { - var err = Error("Truncated"); - err['truncated'] = true; - throw err; - } - b = this.view[offset++]; - if (c < 5) - value |= (b & 0x7f) << (7*c); - ++c; - } while ((b & 0x80) !== 0); - value |= 0; - if (relative) { - this.offset = offset; - return value; - } - return { - "value": value, - "length": c - }; - }; - - /** - * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read - * and the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint32ZigZag = function(offset) { - var val = this.readVarint32(offset); - if (typeof val === 'object') - val["value"] = ByteBuffer.zigZagDecode32(val["value"]); - else - val = ByteBuffer.zigZagDecode32(val); - return val; - }; - - // types/varints/varint64 - - if (Long) { - - /** - * Maximum number of bytes required to store a 64bit base 128 variable-length integer. - * @type {number} - * @const - * @expose - */ - ByteBuffer.MAX_VARINT64_BYTES = 10; - - /** - * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer. - * @param {number|!Long} value Value to encode - * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES} - * @expose - */ - ByteBuffer.calculateVarint64 = function(value) { + } + var c = 0, + value = 0 >>> 0, + b; + do { + if (!this.noAssert && offset > this.limit) { + var err = Error("Truncated"); + err['truncated'] = true; + throw err; + } + b = this.view[offset++]; + if (c < 5) + value |= (b & 0x7f) << (7*c); + ++c; + } while ((b & 0x80) !== 0); + value |= 0; + if (relative) { + this.offset = offset; + return value; + } + return { + "value": value, + "length": c + }; + }; + + /** + * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read + * and the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint32ZigZag = function(offset) { + var val = this.readVarint32(offset); + if (typeof val === 'object') + val["value"] = ByteBuffer.zigZagDecode32(val["value"]); + else + val = ByteBuffer.zigZagDecode32(val); + return val; + }; + + // types/varints/varint64 + + if (Long) { + + /** + * Maximum number of bytes required to store a 64bit base 128 variable-length integer. + * @type {number} + * @const + * @expose + */ + ByteBuffer.MAX_VARINT64_BYTES = 10; + + /** + * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer. + * @param {number|!Long} value Value to encode + * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES} + * @expose + */ + ByteBuffer.calculateVarint64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') value = Long.fromString(value); - // ref: src/google/protobuf/io/coded_stream.cc - var part0 = value.toInt() >>> 0, - part1 = value.shiftRightUnsigned(28).toInt() >>> 0, - part2 = value.shiftRightUnsigned(56).toInt() >>> 0; - if (part2 == 0) { - if (part1 == 0) { - if (part0 < 1 << 14) - return part0 < 1 << 7 ? 1 : 2; - else - return part0 < 1 << 21 ? 3 : 4; - } else { - if (part1 < 1 << 14) - return part1 < 1 << 7 ? 5 : 6; - else - return part1 < 1 << 21 ? 7 : 8; - } - } else - return part2 < 1 << 7 ? 9 : 10; - }; - - /** - * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding. - * @param {number|!Long} value Signed long - * @returns {!Long} Unsigned zigzag encoded long - * @expose - */ - ByteBuffer.zigZagEncode64 = function(value) { + // ref: src/google/protobuf/io/coded_stream.cc + var part0 = value.toInt() >>> 0, + part1 = value.shiftRightUnsigned(28).toInt() >>> 0, + part2 = value.shiftRightUnsigned(56).toInt() >>> 0; + if (part2 == 0) { + if (part1 == 0) { + if (part0 < 1 << 14) + return part0 < 1 << 7 ? 1 : 2; + else + return part0 < 1 << 21 ? 3 : 4; + } else { + if (part1 < 1 << 14) + return part1 < 1 << 7 ? 5 : 6; + else + return part1 < 1 << 21 ? 7 : 8; + } + } else + return part2 < 1 << 7 ? 9 : 10; + }; + + /** + * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding. + * @param {number|!Long} value Signed long + * @returns {!Long} Unsigned zigzag encoded long + * @expose + */ + ByteBuffer.zigZagEncode64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - // ref: src/google/protobuf/wire_format_lite.h - return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned(); - }; - - /** - * Decodes a zigzag encoded signed 64bit integer. - * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number - * @returns {!Long} Signed long - * @expose - */ - ByteBuffer.zigZagDecode64 = function(value) { + // ref: src/google/protobuf/wire_format_lite.h + return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned(); + }; + + /** + * Decodes a zigzag encoded signed 64bit integer. + * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number + * @returns {!Long} Signed long + * @expose + */ + ByteBuffer.zigZagDecode64 = function(value) { if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - // ref: src/google/protobuf/wire_format_lite.h - return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned(); - }; - - /** - * Writes a 64bit base 128 variable-length integer. - * @param {number|Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeVarint64 = function(value, offset) { + // ref: src/google/protobuf/wire_format_lite.h + return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned(); + }; + + /** + * Writes a 64bit base 128 variable-length integer. + * @param {number|Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeVarint64 = function(value, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof value === 'number') value = Long.fromNumber(value); else if (typeof value === 'string') @@ -1808,236 +1808,236 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } + } if (typeof value === 'number') value = Long.fromNumber(value, false); else if (typeof value === 'string') value = Long.fromString(value, false); else if (value.unsigned !== false) value = value.toSigned(); - var size = ByteBuffer.calculateVarint64(value), - part0 = value.toInt() >>> 0, - part1 = value.shiftRightUnsigned(28).toInt() >>> 0, - part2 = value.shiftRightUnsigned(56).toInt() >>> 0; + var size = ByteBuffer.calculateVarint64(value), + part0 = value.toInt() >>> 0, + part1 = value.shiftRightUnsigned(28).toInt() >>> 0, + part2 = value.shiftRightUnsigned(56).toInt() >>> 0; offset += size; var capacity11 = this.buffer.byteLength; if (offset > capacity11) this.resize((capacity11 *= 2) > offset ? capacity11 : offset); offset -= size; - switch (size) { - case 10: this.view[offset+9] = (part2 >>> 7) & 0x01; - case 9 : this.view[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F; - case 8 : this.view[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F; - case 7 : this.view[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F; - case 6 : this.view[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F; - case 5 : this.view[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F; - case 4 : this.view[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F; - case 3 : this.view[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F; - case 2 : this.view[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F; - case 1 : this.view[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F; - } - if (relative) { - this.offset += size; - return this; - } else { - return size; - } - }; - - /** - * Writes a zig-zag encoded 64bit base 128 variable-length integer. - * @param {number|Long} value Value to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) { - return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset); - }; - - /** - * Reads a 64bit base 128 variable-length integer. Requires Long.js. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and - * the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint64 = function(offset) { + switch (size) { + case 10: this.view[offset+9] = (part2 >>> 7) & 0x01; + case 9 : this.view[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F; + case 8 : this.view[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F; + case 7 : this.view[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F; + case 6 : this.view[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F; + case 5 : this.view[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F; + case 4 : this.view[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F; + case 3 : this.view[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F; + case 2 : this.view[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F; + case 1 : this.view[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F; + } + if (relative) { + this.offset += size; + return this; + } else { + return size; + } + }; + + /** + * Writes a zig-zag encoded 64bit base 128 variable-length integer. + * @param {number|Long} value Value to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) { + return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset); + }; + + /** + * Reads a 64bit base 128 variable-length integer. Requires Long.js. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and + * the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint64 = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - // ref: src/google/protobuf/io/coded_stream.cc - var start = offset, - part0 = 0, - part1 = 0, - part2 = 0, - b = 0; - b = this.view[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) { - b = this.view[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - b = this.view[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { - throw Error("Buffer overrun"); }}}}}}}}}} - var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false); - if (relative) { - this.offset = offset; - return value; - } else { - return { - 'value': value, - 'length': offset-start - }; - } - }; - - /** - * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and - * the actual number of bytes read. - * @throws {Error} If it's not a valid varint - * @expose - */ - ByteBufferPrototype.readVarint64ZigZag = function(offset) { - var val = this.readVarint64(offset); - if (val && val['value'] instanceof Long) - val["value"] = ByteBuffer.zigZagDecode64(val["value"]); - else - val = ByteBuffer.zigZagDecode64(val); - return val; - }; - - } // Long - - - // types/strings/cstring - - /** - * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL - * characters itself. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * contained in `str` + 1 if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written - * @expose - */ - ByteBufferPrototype.writeCString = function(str, offset) { + } + // ref: src/google/protobuf/io/coded_stream.cc + var start = offset, + part0 = 0, + part1 = 0, + part2 = 0, + b = 0; + b = this.view[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) { + b = this.view[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + b = this.view[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) { + throw Error("Buffer overrun"); }}}}}}}}}} + var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false); + if (relative) { + this.offset = offset; + return value; + } else { + return { + 'value': value, + 'length': offset-start + }; + } + }; + + /** + * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and + * the actual number of bytes read. + * @throws {Error} If it's not a valid varint + * @expose + */ + ByteBufferPrototype.readVarint64ZigZag = function(offset) { + var val = this.readVarint64(offset); + if (val && val['value'] instanceof Long) + val["value"] = ByteBuffer.zigZagDecode64(val["value"]); + else + val = ByteBuffer.zigZagDecode64(val); + return val; + }; + + } // Long + + + // types/strings/cstring + + /** + * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL + * characters itself. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * contained in `str` + 1 if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written + * @expose + */ + ByteBufferPrototype.writeCString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - var i, - k = str.length; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - for (i=0; i>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - // UTF8 strings do not contain zero bytes in between except for the zero character, so: - k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; + } + // UTF8 strings do not contain zero bytes in between except for the zero character, so: + k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; offset += k+1; var capacity12 = this.buffer.byteLength; if (offset > capacity12) this.resize((capacity12 *= 2) > offset ? capacity12 : offset); offset -= k+1; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view[offset++] = b; - }.bind(this)); - this.view[offset++] = 0; - if (relative) { - this.offset = offset; - return this; - } - return k; - }; - - /** - * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters - * itself. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readCString = function(offset) { + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view[offset++] = b; + }.bind(this)); + this.view[offset++] = 0; + if (relative) { + this.offset = offset; + return this; + } + return k; + }; + + /** + * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters + * itself. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readCString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var start = offset, - temp; - // UTF8 strings do not contain zero bytes in between except for the zero character itself, so: - var sd, b = -1; - utfx.decodeUTF8toUTF16(function() { - if (b === 0) return null; - if (offset >= this.limit) - throw RangeError("Illegal range: Truncated data, "+offset+" < "+this.limit); - b = this.view[offset++]; - return b === 0 ? null : b; - }.bind(this), sd = stringDestination(), true); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - "string": sd(), - "length": offset - start - }; - } - }; - - // types/strings/istring - - /** - * Writes a length as uint32 prefixed UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written - * @expose - * @see ByteBuffer#writeVarint32 - */ - ByteBufferPrototype.writeIString = function(str, offset) { + } + var start = offset, + temp; + // UTF8 strings do not contain zero bytes in between except for the zero character itself, so: + var sd, b = -1; + utfx.decodeUTF8toUTF16(function() { + if (b === 0) return null; + if (offset >= this.limit) + throw RangeError("Illegal range: Truncated data, "+offset+" < "+this.limit); + b = this.view[offset++]; + return b === 0 ? null : b; + }.bind(this), sd = stringDestination(), true); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + "string": sd(), + "length": offset - start + }; + } + }; + + // types/strings/istring + + /** + * Writes a length as uint32 prefixed UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written + * @expose + * @see ByteBuffer#writeVarint32 + */ + ByteBufferPrototype.writeIString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); + if (!this.noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var start = offset, - k; - k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; + } + var start = offset, + k; + k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; offset += 4+k; var capacity13 = this.buffer.byteLength; if (offset > capacity13) @@ -2054,166 +2054,166 @@ this.view[offset+2] = (k >>> 8) & 0xFF; this.view[offset+3] = k & 0xFF; } - offset += 4; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view[offset++] = b; - }.bind(this)); - if (offset !== start + 4 + k) - throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+4+k)); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Reads a length as uint32 prefixed UTF8 encoded string. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - * @see ByteBuffer#readVarint32 - */ - ByteBufferPrototype.readIString = function(offset) { + offset += 4; + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view[offset++] = b; + }.bind(this)); + if (offset !== start + 4 + k) + throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+4+k)); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Reads a length as uint32 prefixed UTF8 encoded string. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + * @see ByteBuffer#readVarint32 + */ + ByteBufferPrototype.readIString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 4 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+4+") <= "+this.buffer.byteLength); - } - var start = offset; - var len = this.readUint32(offset); - var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4); - offset += str['length']; - if (relative) { - this.offset = offset; - return str['string']; - } else { - return { - 'string': str['string'], - 'length': offset - start - }; - } - }; - - // types/strings/utf8string - - /** - * Metrics representing number of UTF8 characters. Evaluates to `c`. - * @type {string} - * @const - * @expose - */ - ByteBuffer.METRICS_CHARS = 'c'; - - /** - * Metrics representing number of bytes. Evaluates to `b`. - * @type {string} - * @const - * @expose - */ - ByteBuffer.METRICS_BYTES = 'b'; - - /** - * Writes an UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeUTF8String = function(str, offset) { + } + var start = offset; + var len = this.readUint32(offset); + var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4); + offset += str['length']; + if (relative) { + this.offset = offset; + return str['string']; + } else { + return { + 'string': str['string'], + 'length': offset - start + }; + } + }; + + // types/strings/utf8string + + /** + * Metrics representing number of UTF8 characters. Evaluates to `c`. + * @type {string} + * @const + * @expose + */ + ByteBuffer.METRICS_CHARS = 'c'; + + /** + * Metrics representing number of bytes. Evaluates to `b`. + * @type {string} + * @const + * @expose + */ + ByteBuffer.METRICS_BYTES = 'b'; + + /** + * Writes an UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeUTF8String = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var k; - var start = offset; - k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; + } + var k; + var start = offset; + k = utfx.calculateUTF16asUTF8(stringSource(str))[1]; offset += k; var capacity14 = this.buffer.byteLength; if (offset > capacity14) this.resize((capacity14 *= 2) > offset ? capacity14 : offset); offset -= k; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view[offset++] = b; - }.bind(this)); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}. - * @function - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. - * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. - * @expose - */ - ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String; - - /** - * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's - * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF. - * @param {string} str String to calculate - * @returns {number} Number of UTF8 characters - * @expose - */ - ByteBuffer.calculateUTF8Chars = function(str) { - return utfx.calculateUTF16asUTF8(stringSource(str))[0]; - }; - - /** - * Calculates the number of UTF8 bytes of a string. - * @param {string} str String to calculate - * @returns {number} Number of UTF8 bytes - * @expose - */ - ByteBuffer.calculateUTF8Bytes = function(str) { - return utfx.calculateUTF16asUTF8(stringSource(str))[1]; - }; - - /** - * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}. - * @function - * @param {string} str String to calculate - * @returns {number} Number of UTF8 bytes - * @expose - */ - ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes; - - /** - * Reads an UTF8 encoded string. - * @param {number} length Number of characters or bytes to read. - * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to - * {@link ByteBuffer.METRICS_CHARS}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readUTF8String = function(length, metrics, offset) { - if (typeof metrics === 'number') { - offset = metrics; - metrics = undefined; - } + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view[offset++] = b; + }.bind(this)); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}. + * @function + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted. + * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written. + * @expose + */ + ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String; + + /** + * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's + * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF. + * @param {string} str String to calculate + * @returns {number} Number of UTF8 characters + * @expose + */ + ByteBuffer.calculateUTF8Chars = function(str) { + return utfx.calculateUTF16asUTF8(stringSource(str))[0]; + }; + + /** + * Calculates the number of UTF8 bytes of a string. + * @param {string} str String to calculate + * @returns {number} Number of UTF8 bytes + * @expose + */ + ByteBuffer.calculateUTF8Bytes = function(str) { + return utfx.calculateUTF16asUTF8(stringSource(str))[1]; + }; + + /** + * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}. + * @function + * @param {string} str String to calculate + * @returns {number} Number of UTF8 bytes + * @expose + */ + ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes; + + /** + * Reads an UTF8 encoded string. + * @param {number} length Number of characters or bytes to read. + * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to + * {@link ByteBuffer.METRICS_CHARS}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readUTF8String = function(length, metrics, offset) { + if (typeof metrics === 'number') { + offset = metrics; + metrics = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS; - if (!this.noAssert) { + if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS; + if (!this.noAssert) { if (typeof length !== 'number' || length % 1 !== 0) throw TypeError("Illegal length: "+length+" (not an integer)"); length |= 0; @@ -2222,274 +2222,274 @@ offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var i = 0, - start = offset, - sd; - if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser - sd = stringDestination(); - utfx.decodeUTF8(function() { - return i < length && offset < this.limit ? this.view[offset++] : null; - }.bind(this), function(cp) { - ++i; utfx.UTF8toUTF16(cp, sd); - }); - if (i !== length) - throw RangeError("Illegal range: Truncated data, "+i+" == "+length); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - "string": sd(), - "length": offset - start - }; - } - } else if (metrics === ByteBuffer.METRICS_BYTES) { - if (!this.noAssert) { + } + var i = 0, + start = offset, + sd; + if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser + sd = stringDestination(); + utfx.decodeUTF8(function() { + return i < length && offset < this.limit ? this.view[offset++] : null; + }.bind(this), function(cp) { + ++i; utfx.UTF8toUTF16(cp, sd); + }); + if (i !== length) + throw RangeError("Illegal range: Truncated data, "+i+" == "+length); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + "string": sd(), + "length": offset - start + }; + } + } else if (metrics === ByteBuffer.METRICS_BYTES) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + length > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+length+") <= "+this.buffer.byteLength); - } - var k = offset + length; - utfx.decodeUTF8toUTF16(function() { - return offset < k ? this.view[offset++] : null; - }.bind(this), sd = stringDestination(), this.noAssert); - if (offset !== k) - throw RangeError("Illegal range: Truncated data, "+offset+" == "+k); - if (relative) { - this.offset = offset; - return sd(); - } else { - return { - 'string': sd(), - 'length': offset - start - }; - } - } else - throw TypeError("Unsupported metrics: "+metrics); - }; - - /** - * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}. - * @function - * @param {number} length Number of characters or bytes to read - * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to - * {@link ByteBuffer.METRICS_CHARS}. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - */ - ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String; - - // types/strings/vstring - - /** - * Writes a length as varint32 prefixed UTF8 encoded string. - * @param {string} str String to write - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written - * @expose - * @see ByteBuffer#writeVarint32 - */ - ByteBufferPrototype.writeVString = function(str, offset) { + } + var k = offset + length; + utfx.decodeUTF8toUTF16(function() { + return offset < k ? this.view[offset++] : null; + }.bind(this), sd = stringDestination(), this.noAssert); + if (offset !== k) + throw RangeError("Illegal range: Truncated data, "+offset+" == "+k); + if (relative) { + this.offset = offset; + return sd(); + } else { + return { + 'string': sd(), + 'length': offset - start + }; + } + } else + throw TypeError("Unsupported metrics: "+metrics); + }; + + /** + * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}. + * @function + * @param {number} length Number of characters or bytes to read + * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to + * {@link ByteBuffer.METRICS_CHARS}. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + */ + ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String; + + // types/strings/vstring + + /** + * Writes a length as varint32 prefixed UTF8 encoded string. + * @param {string} str String to write + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written + * @expose + * @see ByteBuffer#writeVarint32 + */ + ByteBufferPrototype.writeVString = function(str, offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); + if (!this.noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - var start = offset, - k, l; - k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; - l = ByteBuffer.calculateVarint32(k); + } + var start = offset, + k, l; + k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1]; + l = ByteBuffer.calculateVarint32(k); offset += l+k; var capacity15 = this.buffer.byteLength; if (offset > capacity15) this.resize((capacity15 *= 2) > offset ? capacity15 : offset); offset -= l+k; - offset += this.writeVarint32(k, offset); - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - this.view[offset++] = b; - }.bind(this)); - if (offset !== start+k+l) - throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+k+l)); - if (relative) { - this.offset = offset; - return this; - } - return offset - start; - }; - - /** - * Reads a length as varint32 prefixed UTF8 encoded string. - * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string - * read and the actual number of bytes read. - * @expose - * @see ByteBuffer#readVarint32 - */ - ByteBufferPrototype.readVString = function(offset) { + offset += this.writeVarint32(k, offset); + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + this.view[offset++] = b; + }.bind(this)); + if (offset !== start+k+l) + throw RangeError("Illegal range: Truncated data, "+offset+" == "+(offset+k+l)); + if (relative) { + this.offset = offset; + return this; + } + return offset - start; + }; + + /** + * Reads a length as varint32 prefixed UTF8 encoded string. + * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string + * read and the actual number of bytes read. + * @expose + * @see ByteBuffer#readVarint32 + */ + ByteBufferPrototype.readVString = function(offset) { var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 1 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+1+") <= "+this.buffer.byteLength); - } - var start = offset; - var len = this.readVarint32(offset); - var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']); - offset += str['length']; - if (relative) { - this.offset = offset; - return str['string']; - } else { - return { - 'string': str['string'], - 'length': offset - start - }; - } - }; - - - /** - * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended - * data's length. - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|` - * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|` - */ - ByteBufferPrototype.append = function(source, encoding, offset) { - if (typeof encoding === 'number' || typeof encoding !== 'string') { - offset = encoding; - encoding = undefined; - } + } + var start = offset; + var len = this.readVarint32(offset); + var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']); + offset += str['length']; + if (relative) { + this.offset = offset; + return str['string']; + } else { + return { + 'string': str['string'], + 'length': offset - start + }; + } + }; + + + /** + * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended + * data's length. + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|` + * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|` + */ + ByteBufferPrototype.append = function(source, encoding, offset) { + if (typeof encoding === 'number' || typeof encoding !== 'string') { + offset = encoding; + encoding = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - if (!(source instanceof ByteBuffer)) - source = ByteBuffer.wrap(source, encoding); - var length = source.limit - source.offset; - if (length <= 0) return this; // Nothing to append + } + if (!(source instanceof ByteBuffer)) + source = ByteBuffer.wrap(source, encoding); + var length = source.limit - source.offset; + if (length <= 0) return this; // Nothing to append offset += length; var capacity16 = this.buffer.byteLength; if (offset > capacity16) this.resize((capacity16 *= 2) > offset ? capacity16 : offset); offset -= length; - this.view.set(source.view.subarray(source.offset, source.limit), offset); - source.offset += length; + this.view.set(source.view.subarray(source.offset, source.limit), offset); + source.offset += length; if (relative) this.offset += length; - return this; - }; - - /** - * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the - specified offset up to the length of this ByteBuffer's data. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * read if omitted. - * @returns {!ByteBuffer} this - * @expose - * @see ByteBuffer#append - */ - ByteBufferPrototype.appendTo = function(target, offset) { - target.append(this, offset); - return this; - }; - - /** - * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to - * disable them if your code already makes sure that everything is valid. - * @param {boolean} assert `true` to enable assertions, otherwise `false` - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.assert = function(assert) { - this.noAssert = !assert; - return this; - }; - - /** - * Gets the capacity of this ByteBuffer's backing buffer. - * @returns {number} Capacity of the backing buffer - * @expose - */ - ByteBufferPrototype.capacity = function() { - return this.buffer.byteLength; - }; - /** - * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the - * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.clear = function() { - this.offset = 0; - this.limit = this.buffer.byteLength; - this.markedOffset = -1; - return this; - }; - - /** - * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset}, - * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}. - * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false` - * @returns {!ByteBuffer} Cloned instance - * @expose - */ - ByteBufferPrototype.clone = function(copy) { - var bb = new ByteBuffer(0, this.littleEndian, this.noAssert); - if (copy) { - bb.buffer = new ArrayBuffer(this.buffer.byteLength); - bb.view = new Uint8Array(bb.buffer); - } else { - bb.buffer = this.buffer; - bb.view = this.view; - } - bb.offset = this.offset; - bb.markedOffset = this.markedOffset; - bb.limit = this.limit; - return bb; - }; - - /** - * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes - * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and - * adapt {@link ByteBuffer#markedOffset} to the same relative position if set. - * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.compact = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + return this; + }; + + /** + * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the + specified offset up to the length of this ByteBuffer's data. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * read if omitted. + * @returns {!ByteBuffer} this + * @expose + * @see ByteBuffer#append + */ + ByteBufferPrototype.appendTo = function(target, offset) { + target.append(this, offset); + return this; + }; + + /** + * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to + * disable them if your code already makes sure that everything is valid. + * @param {boolean} assert `true` to enable assertions, otherwise `false` + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.assert = function(assert) { + this.noAssert = !assert; + return this; + }; + + /** + * Gets the capacity of this ByteBuffer's backing buffer. + * @returns {number} Capacity of the backing buffer + * @expose + */ + ByteBufferPrototype.capacity = function() { + return this.buffer.byteLength; + }; + /** + * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the + * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.clear = function() { + this.offset = 0; + this.limit = this.buffer.byteLength; + this.markedOffset = -1; + return this; + }; + + /** + * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset}, + * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}. + * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false` + * @returns {!ByteBuffer} Cloned instance + * @expose + */ + ByteBufferPrototype.clone = function(copy) { + var bb = new ByteBuffer(0, this.littleEndian, this.noAssert); + if (copy) { + bb.buffer = new ArrayBuffer(this.buffer.byteLength); + bb.view = new Uint8Array(bb.buffer); + } else { + bb.buffer = this.buffer; + bb.view = this.view; + } + bb.offset = this.offset; + bb.markedOffset = this.markedOffset; + bb.limit = this.limit; + return bb; + }; + + /** + * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes + * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and + * adapt {@link ByteBuffer#markedOffset} to the same relative position if set. + * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.compact = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2498,41 +2498,41 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin === 0 && end === this.buffer.byteLength) - return this; // Already compacted - var len = end - begin; - if (len === 0) { - this.buffer = EMPTY_BUFFER; - this.view = null; - if (this.markedOffset >= 0) this.markedOffset -= begin; - this.offset = 0; - this.limit = 0; - return this; - } - var buffer = new ArrayBuffer(len); - var view = new Uint8Array(buffer); - view.set(this.view.subarray(begin, end)); - this.buffer = buffer; - this.view = view; - if (this.markedOffset >= 0) this.markedOffset -= begin; - this.offset = 0; - this.limit = len; - return this; - }; - - /** - * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}. - * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} Copy - * @expose - */ - ByteBufferPrototype.copy = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + } + if (begin === 0 && end === this.buffer.byteLength) + return this; // Already compacted + var len = end - begin; + if (len === 0) { + this.buffer = EMPTY_BUFFER; + this.view = null; + if (this.markedOffset >= 0) this.markedOffset -= begin; + this.offset = 0; + this.limit = 0; + return this; + } + var buffer = new ArrayBuffer(len); + var view = new Uint8Array(buffer); + view.set(this.view.subarray(begin, end)); + this.buffer = buffer; + this.view = view; + if (this.markedOffset >= 0) this.markedOffset -= begin; + this.offset = 0; + this.limit = len; + return this; + }; + + /** + * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}. + * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} Copy + * @expose + */ + ByteBufferPrototype.copy = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2541,94 +2541,94 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin === end) - return new ByteBuffer(0, this.littleEndian, this.noAssert); - var capacity = end - begin, - bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert); - bb.offset = 0; - bb.limit = capacity; - if (bb.markedOffset >= 0) bb.markedOffset -= begin; - this.copyTo(bb, 0, begin, end); - return bb; - }; - - /** - * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset} - * by the number of bytes copied if omitted. - * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the - * number of bytes copied if omitted. - * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) { - var relative, - targetRelative; - if (!this.noAssert) { - if (!ByteBuffer.isByteBuffer(target)) - throw TypeError("Illegal target: Not a ByteBuffer"); - } - targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0; - sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0; - sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0; - - if (targetOffset < 0 || targetOffset > target.buffer.byteLength) - throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.byteLength); - if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength) - throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.byteLength); - - var len = sourceLimit - sourceOffset; - if (len === 0) - return target; // Nothing to copy - - target.ensureCapacity(targetOffset + len); - - target.view.set(this.view.subarray(sourceOffset, sourceLimit), targetOffset); - - if (relative) this.offset += len; - if (targetRelative) target.offset += len; - - return this; - }; - - /** - * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the - * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity, - * the required capacity will be used instead. - * @param {number} capacity Required capacity - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.ensureCapacity = function(capacity) { - var current = this.buffer.byteLength; - if (current < capacity) - return this.resize((current *= 2) > capacity ? current : capacity); - return this; - }; - - /** - * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @param {number|string} value Byte value to fill with. If given as a string, the first character is used. - * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} this - * @expose - * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes - */ - ByteBufferPrototype.fill = function(value, begin, end) { + } + if (begin === end) + return new ByteBuffer(0, this.littleEndian, this.noAssert); + var capacity = end - begin, + bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert); + bb.offset = 0; + bb.limit = capacity; + if (bb.markedOffset >= 0) bb.markedOffset -= begin; + this.copyTo(bb, 0, begin, end); + return bb; + }; + + /** + * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset} + * by the number of bytes copied if omitted. + * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the + * number of bytes copied if omitted. + * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) { + var relative, + targetRelative; + if (!this.noAssert) { + if (!ByteBuffer.isByteBuffer(target)) + throw TypeError("Illegal target: Not a ByteBuffer"); + } + targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0; + sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0; + sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0; + + if (targetOffset < 0 || targetOffset > target.buffer.byteLength) + throw RangeError("Illegal target range: 0 <= "+targetOffset+" <= "+target.buffer.byteLength); + if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength) + throw RangeError("Illegal source range: 0 <= "+sourceOffset+" <= "+this.buffer.byteLength); + + var len = sourceLimit - sourceOffset; + if (len === 0) + return target; // Nothing to copy + + target.ensureCapacity(targetOffset + len); + + target.view.set(this.view.subarray(sourceOffset, sourceLimit), targetOffset); + + if (relative) this.offset += len; + if (targetRelative) target.offset += len; + + return this; + }; + + /** + * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the + * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity, + * the required capacity will be used instead. + * @param {number} capacity Required capacity + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.ensureCapacity = function(capacity) { + var current = this.buffer.byteLength; + if (current < capacity) + return this.resize((current *= 2) > capacity ? current : capacity); + return this; + }; + + /** + * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @param {number|string} value Byte value to fill with. If given as a string, the first character is used. + * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} this + * @expose + * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes + */ + ByteBufferPrototype.fill = function(value, begin, end) { var relative = typeof begin === 'undefined'; if (relative) begin = this.offset; - if (typeof value === 'string' && value.length > 0) - value = value.charCodeAt(0); - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + if (typeof value === 'string' && value.length > 0) + value = value.charCodeAt(0); + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof value !== 'number' || value % 1 !== 0) throw TypeError("Illegal value: "+value+" (not an integer)"); value |= 0; @@ -2640,228 +2640,228 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin >= end) - return this; // Nothing to fill - while (begin < end) this.view[begin++] = value; - if (relative) this.offset = begin; - return this; - }; - - /** - * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and - * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.flip = function() { - this.limit = this.offset; - this.offset = 0; - return this; - }; - /** - * Marks an offset on this ByteBuffer to be used later. - * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}. - * @returns {!ByteBuffer} this - * @throws {TypeError} If `offset` is not a valid number - * @throws {RangeError} If `offset` is out of bounds - * @see ByteBuffer#reset - * @expose - */ - ByteBufferPrototype.mark = function(offset) { - offset = typeof offset === 'undefined' ? this.offset : offset; - if (!this.noAssert) { + } + if (begin >= end) + return this; // Nothing to fill + while (begin < end) this.view[begin++] = value; + if (relative) this.offset = begin; + return this; + }; + + /** + * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and + * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.flip = function() { + this.limit = this.offset; + this.offset = 0; + return this; + }; + /** + * Marks an offset on this ByteBuffer to be used later. + * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}. + * @returns {!ByteBuffer} this + * @throws {TypeError} If `offset` is not a valid number + * @throws {RangeError} If `offset` is out of bounds + * @see ByteBuffer#reset + * @expose + */ + ByteBufferPrototype.mark = function(offset) { + offset = typeof offset === 'undefined' ? this.offset : offset; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - this.markedOffset = offset; - return this; - }; - /** - * Sets the byte order. - * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.order = function(littleEndian) { - if (!this.noAssert) { - if (typeof littleEndian !== 'boolean') - throw TypeError("Illegal littleEndian: Not a boolean"); - } - this.littleEndian = !!littleEndian; - return this; - }; - - /** - * Switches (to) little endian byte order. - * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.LE = function(littleEndian) { - this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true; - return this; - }; - - /** - * Switches (to) big endian byte order. - * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.BE = function(bigEndian) { - this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false; - return this; - }; - /** - * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the - * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer - * will be resized and its contents moved accordingly. - * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be - * modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes - * prepended if omitted. - * @returns {!ByteBuffer} this - * @expose - * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|` - * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|` - */ - ByteBufferPrototype.prepend = function(source, encoding, offset) { - if (typeof encoding === 'number' || typeof encoding !== 'string') { - offset = encoding; - encoding = undefined; - } + } + this.markedOffset = offset; + return this; + }; + /** + * Sets the byte order. + * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.order = function(littleEndian) { + if (!this.noAssert) { + if (typeof littleEndian !== 'boolean') + throw TypeError("Illegal littleEndian: Not a boolean"); + } + this.littleEndian = !!littleEndian; + return this; + }; + + /** + * Switches (to) little endian byte order. + * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.LE = function(littleEndian) { + this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true; + return this; + }; + + /** + * Switches (to) big endian byte order. + * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.BE = function(bigEndian) { + this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false; + return this; + }; + /** + * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the + * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer + * will be resized and its contents moved accordingly. + * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be + * modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes + * prepended if omitted. + * @returns {!ByteBuffer} this + * @expose + * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|` + * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|` + */ + ByteBufferPrototype.prepend = function(source, encoding, offset) { + if (typeof encoding === 'number' || typeof encoding !== 'string') { + offset = encoding; + encoding = undefined; + } var relative = typeof offset === 'undefined'; if (relative) offset = this.offset; - if (!this.noAssert) { + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength); - } - if (!(source instanceof ByteBuffer)) - source = ByteBuffer.wrap(source, encoding); - var len = source.limit - source.offset; - if (len <= 0) return this; // Nothing to prepend - var diff = len - offset; - if (diff > 0) { // Not enough space before offset, so resize + move - var buffer = new ArrayBuffer(this.buffer.byteLength + diff); - var view = new Uint8Array(buffer); - view.set(this.view.subarray(offset, this.buffer.byteLength), len); - this.buffer = buffer; - this.view = view; - this.offset += diff; - if (this.markedOffset >= 0) this.markedOffset += diff; - this.limit += diff; - offset += diff; - } else { - var arrayView = new Uint8Array(this.buffer); - } - this.view.set(source.view.subarray(source.offset, source.limit), offset - len); - - source.offset = source.limit; - if (relative) - this.offset -= len; - return this; - }; - - /** - * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the - * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer - * will be resized and its contents moved accordingly. - * @param {!ByteBuffer} target Target ByteBuffer - * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes - * prepended if omitted. - * @returns {!ByteBuffer} this - * @expose - * @see ByteBuffer#prepend - */ - ByteBufferPrototype.prependTo = function(target, offset) { - target.prepend(this, offset); - return this; - }; - /** - * Prints debug information about this ByteBuffer's contents. - * @param {function(string)=} out Output function to call, defaults to console.log - * @expose - */ - ByteBufferPrototype.printDebug = function(out) { - if (typeof out !== 'function') out = console.log.bind(console); - out( - this.toString()+"\n"+ - "-------------------------------------------------------------------\n"+ - this.toDebug(/* columns */ true) - ); - }; - - /** - * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and - * {@link ByteBuffer#limit}, so this returns `limit - offset`. - * @returns {number} Remaining readable bytes. May be negative if `offset > limit`. - * @expose - */ - ByteBufferPrototype.remaining = function() { - return this.limit - this.offset; - }; - /** - * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark} - * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been - * marked, sets `offset = 0`. - * @returns {!ByteBuffer} this - * @see ByteBuffer#mark - * @expose - */ - ByteBufferPrototype.reset = function() { - if (this.markedOffset >= 0) { - this.offset = this.markedOffset; - this.markedOffset = -1; - } else { - this.offset = 0; - } - return this; - }; - /** - * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that - * large or larger. - * @param {number} capacity Capacity required - * @returns {!ByteBuffer} this - * @throws {TypeError} If `capacity` is not a number - * @throws {RangeError} If `capacity < 0` - * @expose - */ - ByteBufferPrototype.resize = function(capacity) { - if (!this.noAssert) { + } + if (!(source instanceof ByteBuffer)) + source = ByteBuffer.wrap(source, encoding); + var len = source.limit - source.offset; + if (len <= 0) return this; // Nothing to prepend + var diff = len - offset; + if (diff > 0) { // Not enough space before offset, so resize + move + var buffer = new ArrayBuffer(this.buffer.byteLength + diff); + var view = new Uint8Array(buffer); + view.set(this.view.subarray(offset, this.buffer.byteLength), len); + this.buffer = buffer; + this.view = view; + this.offset += diff; + if (this.markedOffset >= 0) this.markedOffset += diff; + this.limit += diff; + offset += diff; + } else { + var arrayView = new Uint8Array(this.buffer); + } + this.view.set(source.view.subarray(source.offset, source.limit), offset - len); + + source.offset = source.limit; + if (relative) + this.offset -= len; + return this; + }; + + /** + * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the + * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer + * will be resized and its contents moved accordingly. + * @param {!ByteBuffer} target Target ByteBuffer + * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes + * prepended if omitted. + * @returns {!ByteBuffer} this + * @expose + * @see ByteBuffer#prepend + */ + ByteBufferPrototype.prependTo = function(target, offset) { + target.prepend(this, offset); + return this; + }; + /** + * Prints debug information about this ByteBuffer's contents. + * @param {function(string)=} out Output function to call, defaults to console.log + * @expose + */ + ByteBufferPrototype.printDebug = function(out) { + if (typeof out !== 'function') out = console.log.bind(console); + out( + this.toString()+"\n"+ + "-------------------------------------------------------------------\n"+ + this.toDebug(/* columns */ true) + ); + }; + + /** + * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and + * {@link ByteBuffer#limit}, so this returns `limit - offset`. + * @returns {number} Remaining readable bytes. May be negative if `offset > limit`. + * @expose + */ + ByteBufferPrototype.remaining = function() { + return this.limit - this.offset; + }; + /** + * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark} + * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been + * marked, sets `offset = 0`. + * @returns {!ByteBuffer} this + * @see ByteBuffer#mark + * @expose + */ + ByteBufferPrototype.reset = function() { + if (this.markedOffset >= 0) { + this.offset = this.markedOffset; + this.markedOffset = -1; + } else { + this.offset = 0; + } + return this; + }; + /** + * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that + * large or larger. + * @param {number} capacity Capacity required + * @returns {!ByteBuffer} this + * @throws {TypeError} If `capacity` is not a number + * @throws {RangeError} If `capacity < 0` + * @expose + */ + ByteBufferPrototype.resize = function(capacity) { + if (!this.noAssert) { if (typeof capacity !== 'number' || capacity % 1 !== 0) throw TypeError("Illegal capacity: "+capacity+" (not an integer)"); capacity |= 0; - if (capacity < 0) - throw RangeError("Illegal capacity: 0 <= "+capacity); - } - if (this.buffer.byteLength < capacity) { - var buffer = new ArrayBuffer(capacity); - var view = new Uint8Array(buffer); - view.set(this.view); - this.buffer = buffer; - this.view = view; - } - return this; - }; - /** - * Reverses this ByteBuffer's contents. - * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.reverse = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + if (capacity < 0) + throw RangeError("Illegal capacity: 0 <= "+capacity); + } + if (this.buffer.byteLength < capacity) { + var buffer = new ArrayBuffer(capacity); + var view = new Uint8Array(buffer); + view.set(this.view); + this.buffer = buffer; + this.view = view; + } + return this; + }; + /** + * Reverses this ByteBuffer's contents. + * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.reverse = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2870,44 +2870,44 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - if (begin === end) - return this; // Nothing to reverse - Array.prototype.reverse.call(this.view.subarray(begin, end)); - return this; - }; - /** - * Skips the next `length` bytes. This will just advance - * @param {number} length Number of bytes to skip. May also be negative to move the offset back. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.skip = function(length) { - if (!this.noAssert) { + } + if (begin === end) + return this; // Nothing to reverse + Array.prototype.reverse.call(this.view.subarray(begin, end)); + return this; + }; + /** + * Skips the next `length` bytes. This will just advance + * @param {number} length Number of bytes to skip. May also be negative to move the offset back. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.skip = function(length) { + if (!this.noAssert) { if (typeof length !== 'number' || length % 1 !== 0) throw TypeError("Illegal length: "+length+" (not an integer)"); length |= 0; - } - var offset = this.offset + length; - if (!this.noAssert) { - if (offset < 0 || offset > this.buffer.byteLength) - throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.byteLength); - } - this.offset = offset; - return this; - }; - - /** - * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`. - * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. - * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. - * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer} - * @expose - */ - ByteBufferPrototype.slice = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + } + var offset = this.offset + length; + if (!this.noAssert) { + if (offset < 0 || offset > this.buffer.byteLength) + throw RangeError("Illegal length: 0 <= "+this.offset+" + "+length+" <= "+this.buffer.byteLength); + } + this.offset = offset; + return this; + }; + + /** + * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`. + * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}. + * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}. + * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer} + * @expose + */ + ByteBufferPrototype.slice = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -2916,24 +2916,24 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - var bb = this.clone(); - bb.offset = begin; - bb.limit = end; - return bb; - }; - /** - * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. - * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if - * possible. Defaults to `false` - * @returns {!ArrayBuffer} Contents as an ArrayBuffer - * @expose - */ - ByteBufferPrototype.toBuffer = function(forceCopy) { - var offset = this.offset, - limit = this.limit; - if (!this.noAssert) { + } + var bb = this.clone(); + bb.offset = begin; + bb.limit = end; + return bb; + }; + /** + * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. + * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if + * possible. Defaults to `false` + * @returns {!ArrayBuffer} Contents as an ArrayBuffer + * @expose + */ + ByteBufferPrototype.toBuffer = function(forceCopy) { + var offset = this.offset, + limit = this.limit; + if (!this.noAssert) { if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: Not an integer"); offset >>>= 0; @@ -2942,67 +2942,67 @@ limit >>>= 0; if (offset < 0 || offset > limit || limit > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+offset+" <= "+limit+" <= "+this.buffer.byteLength); - } - // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is - // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So: - if (!forceCopy && offset === 0 && limit === this.buffer.byteLength) - return this.buffer; - if (offset === limit) - return EMPTY_BUFFER; - var buffer = new ArrayBuffer(limit - offset); - new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0); - return buffer; - }; - - /** - * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between - * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}. - * @function - * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory. - * Defaults to `false` - * @returns {!ArrayBuffer} Contents as an ArrayBuffer - * @expose - */ - ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer; - - /** - * Converts the ByteBuffer's contents to a string. - * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows - * direct conversion to "utf8", "hex", "base64" and "binary" encoding. "debug" returns a hex representation with - * highlighted offsets. - * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset} - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} - * @returns {string} String representation - * @throws {Error} If `encoding` is invalid - * @expose - */ - ByteBufferPrototype.toString = function(encoding, begin, end) { - if (typeof encoding === 'undefined') - return "ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")"; - if (typeof encoding === 'number') - encoding = "utf8", - begin = encoding, - end = begin; - switch (encoding) { - case "utf8": - return this.toUTF8(begin, end); - case "base64": - return this.toBase64(begin, end); - case "hex": - return this.toHex(begin, end); - case "binary": - return this.toBinary(begin, end); - case "debug": - return this.toDebug(); - case "columns": - return this.toColumns(); - default: - throw Error("Unsupported encoding: "+encoding); - } - }; - - // lxiv-embeddable - + } + // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is + // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So: + if (!forceCopy && offset === 0 && limit === this.buffer.byteLength) + return this.buffer; + if (offset === limit) + return EMPTY_BUFFER; + var buffer = new ArrayBuffer(limit - offset); + new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0); + return buffer; + }; + + /** + * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between + * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}. + * @function + * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory. + * Defaults to `false` + * @returns {!ArrayBuffer} Contents as an ArrayBuffer + * @expose + */ + ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer; + + /** + * Converts the ByteBuffer's contents to a string. + * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows + * direct conversion to "utf8", "hex", "base64" and "binary" encoding. "debug" returns a hex representation with + * highlighted offsets. + * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset} + * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit} + * @returns {string} String representation + * @throws {Error} If `encoding` is invalid + * @expose + */ + ByteBufferPrototype.toString = function(encoding, begin, end) { + if (typeof encoding === 'undefined') + return "ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")"; + if (typeof encoding === 'number') + encoding = "utf8", + begin = encoding, + end = begin; + switch (encoding) { + case "utf8": + return this.toUTF8(begin, end); + case "base64": + return this.toBase64(begin, end); + case "hex": + return this.toHex(begin, end); + case "binary": + return this.toBinary(begin, end); + case "debug": + return this.toDebug(); + case "columns": + return this.toColumns(); + default: + throw Error("Unsupported encoding: "+encoding); + } + }; + + // lxiv-embeddable + /** * lxiv-embeddable (c) 2014 Daniel Wirtz * Released under the Apache License, Version 2.0 @@ -3114,328 +3114,328 @@ return lxiv; }(); - - // encodings/base64 - - /** - * Encodes this ByteBuffer's contents to a base64 encoded string. - * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}. - * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}. - * @returns {string} Base64 encoded string - * @throws {RangeError} If `begin` or `end` is out of bounds - * @expose - */ - ByteBufferPrototype.toBase64 = function(begin, end) { - if (typeof begin === 'undefined') - begin = this.offset; - if (typeof end === 'undefined') - end = this.limit; - begin = begin | 0; end = end | 0; - if (begin < 0 || end > this.capacity || begin > end) - throw RangeError("begin, end"); - var sd; lxiv.encode(function() { - return begin < end ? this.view[begin++] : null; - }.bind(this), sd = stringDestination()); - return sd(); - }; - - /** - * Decodes a base64 encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromBase64 = function(str, littleEndian) { - if (typeof str !== 'string') - throw TypeError("str"); - var bb = new ByteBuffer(str.length/4*3, littleEndian), - i = 0; - lxiv.decode(stringSource(str), function(b) { - bb.view[i++] = b; - }); - bb.limit = i; - return bb; - }; - - /** - * Encodes a binary string to base64 like `window.btoa` does. - * @param {string} str Binary string - * @returns {string} Base64 encoded string - * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa - * @expose - */ - ByteBuffer.btoa = function(str) { - return ByteBuffer.fromBinary(str).toBase64(); - }; - - /** - * Decodes a base64 encoded string to binary like `window.atob` does. - * @param {string} b64 Base64 encoded string - * @returns {string} Binary string - * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob - * @expose - */ - ByteBuffer.atob = function(b64) { - return ByteBuffer.fromBase64(b64).toBinary(); - }; - - // encodings/binary - - /** - * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes. - * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}. - * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}. - * @returns {string} Binary encoded string - * @throws {RangeError} If `offset > limit` - * @expose - */ - ByteBufferPrototype.toBinary = function(begin, end) { - if (typeof begin === 'undefined') - begin = this.offset; - if (typeof end === 'undefined') - end = this.limit; - begin |= 0; end |= 0; - if (begin < 0 || end > this.capacity() || begin > end) - throw RangeError("begin, end"); - if (begin === end) - return ""; - var chars = [], - parts = []; - while (begin < end) { - chars.push(this.view[begin++]); - if (chars.length >= 1024) - parts.push(String.fromCharCode.apply(String, chars)), - chars = []; - } - return parts.join('') + String.fromCharCode.apply(String, chars); - }; - - /** - * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromBinary = function(str, littleEndian) { - if (typeof str !== 'string') - throw TypeError("str"); - var i = 0, - k = str.length, - charCode, - bb = new ByteBuffer(k, littleEndian); - while (i 0xff) - throw RangeError("illegal char code: "+charCode); - bb.view[i++] = charCode; - } - bb.limit = k; - return bb; - }; - - // encodings/debug - - /** - * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are: - * * `<` : offset, - * * `'` : markedOffset, - * * `>` : limit, - * * `|` : offset and limit, - * * `[` : offset and markedOffset, - * * `]` : markedOffset and limit, - * * `!` : offset, markedOffset and limit - * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false` - * @returns {string|!Array.} Debug string or array of lines if `asArray = true` - * @expose - * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3` - * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4` - * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1` - * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1` - */ - ByteBufferPrototype.toDebug = function(columns) { - var i = -1, - k = this.buffer.byteLength, - b, - hex = "", - asc = "", - out = ""; - while (i 32 && b < 127 ? String.fromCharCode(b) : '.'; - } - ++i; - if (columns) { - if (i > 0 && i % 16 === 0 && i !== k) { - while (hex.length < 3*16+3) hex += " "; - out += hex+asc+"\n"; - hex = asc = ""; - } - } - if (i === this.offset && i === this.limit) - hex += i === this.markedOffset ? "!" : "|"; - else if (i === this.offset) - hex += i === this.markedOffset ? "[" : "<"; - else if (i === this.limit) - hex += i === this.markedOffset ? "]" : ">"; - else - hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : ""); - } - if (columns && hex !== " ") { - while (hex.length < 3*16+3) - hex += " "; - out += hex + asc + "\n"; - } - return columns ? out : hex; - }; - - /** - * Decodes a hex encoded string with marked offsets to a ByteBuffer. - * @param {string} str Debug string to decode (not be generated with `columns = true`) - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - * @see ByteBuffer#toDebug - */ - ByteBuffer.fromDebug = function(str, littleEndian, noAssert) { - var k = str.length, - bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert); - var i = 0, j = 0, ch, b, - rs = false, // Require symbol next - ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)? - fail = false; - while (i': - if (!noAssert) { - if (hl) { - fail = true; - break; - } - hl = true; - } - bb.limit = j; - rs = false; - break; - case "'": - if (!noAssert) { - if (hm) { - fail = true; - break; - } - hm = true; - } - bb.markedOffset = j; - rs = false; - break; - case ' ': - rs = false; - break; - default: - if (!noAssert) { - if (rs) { - fail = true; - break; - } - } - b = parseInt(ch+str.charAt(i++), 16); - if (!noAssert) { - if (isNaN(b) || b < 0 || b > 255) - throw TypeError("Illegal str: Not a debug encoded string"); - } - bb.view[j++] = b; - rs = true; - } - if (fail) - throw TypeError("Illegal str: Invalid symbol at "+i); - } - if (!noAssert) { - if (!ho || !hl) - throw TypeError("Illegal str: Missing offset or limit"); - if (j this.capacity || begin > end) + throw RangeError("begin, end"); + var sd; lxiv.encode(function() { + return begin < end ? this.view[begin++] : null; + }.bind(this), sd = stringDestination()); + return sd(); + }; + + /** + * Decodes a base64 encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromBase64 = function(str, littleEndian) { + if (typeof str !== 'string') + throw TypeError("str"); + var bb = new ByteBuffer(str.length/4*3, littleEndian), + i = 0; + lxiv.decode(stringSource(str), function(b) { + bb.view[i++] = b; + }); + bb.limit = i; + return bb; + }; + + /** + * Encodes a binary string to base64 like `window.btoa` does. + * @param {string} str Binary string + * @returns {string} Base64 encoded string + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa + * @expose + */ + ByteBuffer.btoa = function(str) { + return ByteBuffer.fromBinary(str).toBase64(); + }; + + /** + * Decodes a base64 encoded string to binary like `window.atob` does. + * @param {string} b64 Base64 encoded string + * @returns {string} Binary string + * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob + * @expose + */ + ByteBuffer.atob = function(b64) { + return ByteBuffer.fromBase64(b64).toBinary(); + }; + + // encodings/binary + + /** + * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes. + * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}. + * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}. + * @returns {string} Binary encoded string + * @throws {RangeError} If `offset > limit` + * @expose + */ + ByteBufferPrototype.toBinary = function(begin, end) { + if (typeof begin === 'undefined') + begin = this.offset; + if (typeof end === 'undefined') + end = this.limit; + begin |= 0; end |= 0; + if (begin < 0 || end > this.capacity() || begin > end) + throw RangeError("begin, end"); + if (begin === end) + return ""; + var chars = [], + parts = []; + while (begin < end) { + chars.push(this.view[begin++]); + if (chars.length >= 1024) + parts.push(String.fromCharCode.apply(String, chars)), + chars = []; + } + return parts.join('') + String.fromCharCode.apply(String, chars); + }; + + /** + * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromBinary = function(str, littleEndian) { + if (typeof str !== 'string') + throw TypeError("str"); + var i = 0, + k = str.length, + charCode, + bb = new ByteBuffer(k, littleEndian); + while (i 0xff) + throw RangeError("illegal char code: "+charCode); + bb.view[i++] = charCode; + } + bb.limit = k; + return bb; + }; + + // encodings/debug + + /** + * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are: + * * `<` : offset, + * * `'` : markedOffset, + * * `>` : limit, + * * `|` : offset and limit, + * * `[` : offset and markedOffset, + * * `]` : markedOffset and limit, + * * `!` : offset, markedOffset and limit + * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false` + * @returns {string|!Array.} Debug string or array of lines if `asArray = true` + * @expose + * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3` + * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4` + * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1` + * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1` + */ + ByteBufferPrototype.toDebug = function(columns) { + var i = -1, + k = this.buffer.byteLength, + b, + hex = "", + asc = "", + out = ""; + while (i 32 && b < 127 ? String.fromCharCode(b) : '.'; + } + ++i; + if (columns) { + if (i > 0 && i % 16 === 0 && i !== k) { + while (hex.length < 3*16+3) hex += " "; + out += hex+asc+"\n"; + hex = asc = ""; + } + } + if (i === this.offset && i === this.limit) + hex += i === this.markedOffset ? "!" : "|"; + else if (i === this.offset) + hex += i === this.markedOffset ? "[" : "<"; + else if (i === this.limit) + hex += i === this.markedOffset ? "]" : ">"; + else + hex += i === this.markedOffset ? "'" : (columns || (i !== 0 && i !== k) ? " " : ""); + } + if (columns && hex !== " ") { + while (hex.length < 3*16+3) + hex += " "; + out += hex + asc + "\n"; + } + return columns ? out : hex; + }; + + /** + * Decodes a hex encoded string with marked offsets to a ByteBuffer. + * @param {string} str Debug string to decode (not be generated with `columns = true`) + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + * @see ByteBuffer#toDebug + */ + ByteBuffer.fromDebug = function(str, littleEndian, noAssert) { + var k = str.length, + bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert); + var i = 0, j = 0, ch, b, + rs = false, // Require symbol next + ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)? + fail = false; + while (i': + if (!noAssert) { + if (hl) { + fail = true; + break; + } + hl = true; + } + bb.limit = j; + rs = false; + break; + case "'": + if (!noAssert) { + if (hm) { + fail = true; + break; + } + hm = true; + } + bb.markedOffset = j; + rs = false; + break; + case ' ': + rs = false; + break; + default: + if (!noAssert) { + if (rs) { + fail = true; + break; + } + } + b = parseInt(ch+str.charAt(i++), 16); + if (!noAssert) { + if (isNaN(b) || b < 0 || b > 255) + throw TypeError("Illegal str: Not a debug encoded string"); + } + bb.view[j++] = b; + rs = true; + } + if (fail) + throw TypeError("Illegal str: Invalid symbol at "+i); + } + if (!noAssert) { + if (!ho || !hl) + throw TypeError("Illegal str: Missing offset or limit"); + if (j>>= 0; @@ -3444,51 +3444,51 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - var out = new Array(end - begin), - b; - while (begin < end) { - b = this.view[begin++]; - if (b < 0x10) - out.push("0", b.toString(16)); - else out.push(b.toString(16)); - } - return out.join(''); - }; - - /** - * Decodes a hex encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromHex = function(str, littleEndian, noAssert) { - if (!noAssert) { - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - if (str.length % 2 !== 0) - throw TypeError("Illegal str: Length not a multiple of 2"); - } - var k = str.length, - bb = new ByteBuffer((k / 2) | 0, littleEndian), - b; - for (var i=0, j=0; i 255) - throw TypeError("Illegal str: Contains non-hex characters"); - bb.view[j++] = b; - } - bb.limit = j; - return bb; - }; - - // utfx-embeddable - + } + var out = new Array(end - begin), + b; + while (begin < end) { + b = this.view[begin++]; + if (b < 0x10) + out.push("0", b.toString(16)); + else out.push(b.toString(16)); + } + return out.join(''); + }; + + /** + * Decodes a hex encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromHex = function(str, littleEndian, noAssert) { + if (!noAssert) { + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); + if (str.length % 2 !== 0) + throw TypeError("Illegal str: Length not a multiple of 2"); + } + var k = str.length, + bb = new ByteBuffer((k / 2) | 0, littleEndian), + b; + for (var i=0, j=0; i 255) + throw TypeError("Illegal str: Contains non-hex characters"); + bb.view[j++] = b; + } + bb.limit = j; + return bb; + }; + + // utfx-embeddable + /** * utfx-embeddable (c) 2014 Daniel Wirtz * Released under the Apache License, Version 2.0 @@ -3685,20 +3685,20 @@ return utfx; }(); - - // encodings/utf8 - - /** - * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded - * string. - * @returns {string} Hex encoded string - * @throws {RangeError} If `offset > limit` - * @expose - */ - ByteBufferPrototype.toUTF8 = function(begin, end) { - if (typeof begin === 'undefined') begin = this.offset; - if (typeof end === 'undefined') end = this.limit; - if (!this.noAssert) { + + // encodings/utf8 + + /** + * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded + * string. + * @returns {string} Hex encoded string + * @throws {RangeError} If `offset > limit` + * @expose + */ + ByteBufferPrototype.toUTF8 = function(begin, end) { + if (typeof begin === 'undefined') begin = this.offset; + if (typeof end === 'undefined') end = this.limit; + if (!this.noAssert) { if (typeof begin !== 'number' || begin % 1 !== 0) throw TypeError("Illegal begin: Not an integer"); begin >>>= 0; @@ -3707,40 +3707,40 @@ end >>>= 0; if (begin < 0 || begin > end || end > this.buffer.byteLength) throw RangeError("Illegal range: 0 <= "+begin+" <= "+end+" <= "+this.buffer.byteLength); - } - var sd; try { - utfx.decodeUTF8toUTF16(function() { - return begin < end ? this.view[begin++] : null; - }.bind(this), sd = stringDestination()); - } catch (e) { - if (begin !== end) - throw RangeError("Illegal range: Truncated data, "+begin+" != "+end); - } - return sd(); - }; - - /** - * Decodes an UTF8 encoded string to a ByteBuffer. - * @param {string} str String to decode - * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to - * {@link ByteBuffer.DEFAULT_ENDIAN}. - * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to - * {@link ByteBuffer.DEFAULT_NOASSERT}. - * @returns {!ByteBuffer} ByteBuffer - * @expose - */ - ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) { - if (!noAssert) - if (typeof str !== 'string') - throw TypeError("Illegal str: Not a string"); - var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert), - i = 0; - utfx.encodeUTF16toUTF8(stringSource(str), function(b) { - bb.view[i++] = b; - }); - bb.limit = i; - return bb; - }; - - return ByteBuffer; -}); + } + var sd; try { + utfx.decodeUTF8toUTF16(function() { + return begin < end ? this.view[begin++] : null; + }.bind(this), sd = stringDestination()); + } catch (e) { + if (begin !== end) + throw RangeError("Illegal range: Truncated data, "+begin+" != "+end); + } + return sd(); + }; + + /** + * Decodes an UTF8 encoded string to a ByteBuffer. + * @param {string} str String to decode + * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to + * {@link ByteBuffer.DEFAULT_ENDIAN}. + * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to + * {@link ByteBuffer.DEFAULT_NOASSERT}. + * @returns {!ByteBuffer} ByteBuffer + * @expose + */ + ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) { + if (!noAssert) + if (typeof str !== 'string') + throw TypeError("Illegal str: Not a string"); + var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert), + i = 0; + utfx.encodeUTF16toUTF8(stringSource(str), function(b) { + bb.view[i++] = b; + }); + bb.limit = i; + return bb; + }; + + return ByteBuffer; +}); diff --git a/dist/bytebuffer.min.js b/dist/bytebuffer.min.js index 3839f1e..be2b37e 100644 --- a/dist/bytebuffer.min.js +++ b/dist/bytebuffer.min.js @@ -4,90 +4,90 @@ Released under the Apache License, Version 2.0 see: https://github.com/dcodeIO/bytebuffer.js for details */ -function u(k){function h(a,b,c){"undefined"===typeof a&&(a=h.DEFAULT_CAPACITY);"undefined"===typeof b&&(b=h.DEFAULT_ENDIAN);"undefined"===typeof c&&(c=h.DEFAULT_NOASSERT);if(!c){a|=0;if(0>a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c}function n(a){var b=0;return function(){return b>1,h=-7;f=c?f-1:0;var p=c?-1:1,k=a[b+f];f+=p;c=k&(1<<-h)-1;k>>=-h;for(h+=l;0>=-h;for(h+=d;0>1,y=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;l=d?0:l-1;var m=d?1:-1,n=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=h):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(g=Math.pow(2,-d))&&(d--,g*=2),b=1<=d+k?b+y/g:b+y*Math.pow(2,1-k),2<=b*g&&(d++,g/=2),d+k>=h?(b=0,d=h):1<=d+k?(b=(b*g-1)*Math.pow(2,f),d+=k):(b=b*Math.pow(2,k-1)*Math.pow(2,f),d=0));for(;8<=f;a[c+l]=b&255,l+=m,b/=256,f-=8); -d=d<=e||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=e);b.limit=b.offset;b.offset=0;return b};h.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};h.type=function(){return ArrayBuffer};h.wrap=function(a,b,c,d){"string"!==typeof b&&(d= -c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return h.fromBase64(a,c);case "hex":return h.fromHex(a,c);case "binary":return h.fromBinary(a,c);case "utf8":return h.fromUTF8(a,c);case "debug":return h.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(h.isByteBuffer(a))return b=e.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new h(0,c,d),0>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f=a.length,l=f>>3,g=0,e;for(b+=this.writeVarint32(f,b);l--;)e=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]& -1)<<7,this.writeByte(e,b++);if(g>3,e=0,g=[];for(a+=c.length;f--;)c=this.readByte(a++),g[e++]=!!(c&1),g[e++]=!!(c&2),g[e++]=!!(c&4),g[e++]=!!(c&8),g[e++]=!!(c&16),g[e++]=!!(c&32),g[e++]=!!(c&64),g[e++]=!!(c&128);if(e>f++&1);b&&(this.offset=a); -return g};e.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var d=this.slice(b,b+a);c&&(this.offset+=a);return d};e.writeBytes=e.append;e.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);--b;this.view[b]=a;c&&(this.offset+=1);return this};e.writeByte=e.writeInt8;e.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset); -if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];128===(a&128)&&(a=-(255-a+1));b&&(this.offset+=1);return a};e.readByte=e.readInt8;e.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); -a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);--b;this.view[b]=a;c&&(this.offset+=1);return this};e.writeUInt8=e.writeUint8;e.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];b&&(this.offset+=1);return a};e.readUInt8=e.readUint8;e.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0> -b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeShort=e.writeInt16;e.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);32768===(c&32768)&&(c=-(65535-c+1));b&&(this.offset+=2);return c};e.readShort=e.readInt16;e.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); -a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeUInt16=e.writeUint16;e.readUint16=function(a){var b="undefined"=== -typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);b&&(this.offset+=2);return c};e.readUInt16=e.readUint16;e.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255, -this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeInt=e.writeInt32;e.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8, -c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c|0};e.readInt=e.readInt32;e.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeUInt32=e.writeUint32;e.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!== -a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c};e.readUInt32=e.readUint32;k&&(e.writeInt64=function(a,b){var c="undefined"===typeof b;c&& -(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a)); -b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d& -255);c&&(this.offset+=8);return this},e.writeLong=e.writeInt64,e.readInt64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<< -16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!1);b&&(this.offset+=8);return a},e.readLong=e.readInt64,e.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&& -a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>> -24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeUInt64=e.writeUint64,e.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset); -if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<< -24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!0);b&&(this.offset+=8);return a},e.readUInt64=e.readUint64);e.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);z(this.view,a,b-4,this.littleEndian,23,4);c&&(this.offset+=4);return this};e.writeFloat=e.writeFloat32;e.readFloat32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength); -}a=x(this.view,a,this.littleEndian,23,4);b&&(this.offset+=4);return a};e.readFloat=e.readFloat32;e.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var d=this.buffer.byteLength; -b>d&&this.resize((d*=2)>b?d:b);z(this.view,a,b-8,this.littleEndian,52,8);c&&(this.offset+=8);return this};e.writeDouble=e.writeFloat64;e.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=x(this.view,a,this.littleEndian,52,8);b&&(this.offset+=8);return a}; -e.readDouble=e.readFloat64;h.MAX_VARINT32_BYTES=5;h.calculateVarint32=function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};h.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};h.zigZagDecode32=function(a){return a>>>1^-(a&1)|0};e.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+ -b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=h.calculateVarint32(a),f;b+=d;f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=d;for(a>>>=0;128<=a;)f=a&127|128,this.view[b++]=f,a>>>=7;this.view[b++]=a;return c?(this.offset=b,this):d};e.writeVarint32ZigZag=function(a,b){return this.writeVarint32(h.zigZagEncode32(a),b)};e.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset); -if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,d=0,f;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;f=this.view[a++];5>c&&(d|=(f&127)<<7*c);++c}while(0!==(f&128));d|=0;return b?(this.offset=a,d):{value:d,length:c}};e.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"=== -typeof a?a.value=h.zigZagDecode32(a.value):a=h.zigZagDecode32(a);return a};k&&(h.MAX_VARINT64_BYTES=10,h.calculateVarint64=function(a){"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));var b=a.toInt()>>>0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},h.zigZagEncode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a, -!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},h.zigZagDecode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(k.ONE).toSigned().negate()).toSigned()},e.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a); -else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var d=h.calculateVarint64(a),f=a.toInt()>>>0,e=a.shiftRightUnsigned(28).toInt()>>> -0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=d;var t=this.buffer.byteLength;b>t&&this.resize((t*=2)>b?t:b);b-=d;switch(d){case 10:this.view[b+9]=g>>>7&1;case 9:this.view[b+8]=9!==d?g|128:g&127;case 8:this.view[b+7]=8!==d?e>>>21|128:e>>>21&127;case 7:this.view[b+6]=7!==d?e>>>14|128:e>>>14&127;case 6:this.view[b+5]=6!==d?e>>>7|128:e>>>7&127;case 5:this.view[b+4]=5!==d?e|128:e&127;case 4:this.view[b+3]=4!==d?f>>>21|128:f>>>21&127;case 3:this.view[b+2]=3!==d?f>>>14|128:f>>>14&127;case 2:this.view[b+1]= -2!==d?f>>>7|128:f>>>7&127;case 1:this.view[b]=1!==d?f|128:f&127}return c?(this.offset+=d,this):d},e.writeVarint64ZigZag=function(a,b){return this.writeVarint64(h.zigZagEncode64(a),b)},e.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=0, -f=0,e=0,g=0,g=this.view[a++],d=g&127;if(g&128&&(g=this.view[a++],d|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<14,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<14,g&128||this.noAssert&&"undefined"=== -typeof g)&&(g=this.view[a++],f|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g))throw Error("Buffer overrun");d=k.fromBits(d|f<<28,f>>>4|e<<24,!1);return b?(this.offset=a,d):{value:d,length:a-c}},e.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=h.zigZagDecode64(a.value):a=h.zigZagDecode64(a);return a}); -e.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var d,f=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(d=0;d>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}f=m.a(n(a))[1]; -b+=f+1;d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=f+1;m.b(n(a),function(a){this.view[b++]=a}.bind(this));this.view[b++]=0;return c?(this.offset=b,this):f};e.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d,f=-1;m.c(function(){if(0=== -f)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);f=this.view[a++];return 0===f?null:f}.bind(this),d=r(),!0);return b?(this.offset=a,d()):{string:d(),length:a-c}};e.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}var d=b,f;f=m.a(n(a),this.noAssert)[1];b+=4+f;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4+f;this.littleEndian?(this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255);b+=4;m.b(n(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+4+f)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+f)); -return c?(this.offset=b,this):b-d};e.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,d=this.readUint32(a),d=this.readUTF8String(d,h.METRICS_BYTES,a+=4);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};h.METRICS_CHARS= -"c";h.METRICS_BYTES="b";e.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d,f=b;d=m.a(n(a))[1];b+=d;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d;m.b(n(a),function(a){this.view[b++]=a}.bind(this));return c?(this.offset= -b,this):b-f};e.writeString=e.writeUTF8String;h.calculateUTF8Chars=function(a){return m.a(n(a))[0]};h.calculateUTF8Bytes=function(a){return m.a(n(a))[1]};h.calculateString=h.calculateUTF8Bytes;e.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var d="undefined"===typeof c;d&&(c=this.offset);"undefined"===typeof b&&(b=h.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+ -c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var f=0,e=c,g;if(b===h.METRICS_CHARS){g=r();m.h(function(){return f>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength);}var k=c+a;m.c(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f,e;f=m.a(n(a),this.noAssert)[1];e=h.calculateVarint32(f);b+=e+f;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=e+f;b+=this.writeVarint32(f,b);m.b(n(a),function(a){this.view[b++]= -a}.bind(this));if(b!==d+f+e)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+f+e));return c?(this.offset=b,this):b-d};e.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=this.readVarint32(a),d=this.readUTF8String(d.value,h.METRICS_BYTES, -a+=d.length);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};e.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a=h.wrap(a,b));b=a.limit-a.offset; -if(0>=b)return this;c+=b;var f=this.buffer.byteLength;c>f&&this.resize((f*=2)>c?f:c);this.view.set(a.view.subarray(a.offset,a.limit),c-b);a.offset+=b;d&&(this.offset+=b);return this};e.appendTo=function(a,b){a.append(this,b);return this};e.assert=function(a){this.noAssert=!a;return this};e.capacity=function(){return this.buffer.byteLength};e.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};e.clone=function(a){var b=new h(0,this.littleEndian,this.noAssert); -a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),b.view=new Uint8Array(b.buffer)):(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};e.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>= -0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var d=new ArrayBuffer(c),f=new Uint8Array(d);f.set(this.view.subarray(a,b));this.buffer=d;this.view=f;0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};e.copy=function(a, -b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new h(0,this.littleEndian,this.noAssert);var c=b-a,d=new h(c,this.littleEndian,this.noAssert); -d.offset=0;d.limit=c;0<=d.markedOffset&&(d.markedOffset-=a);this.copyTo(d,0,a,b);return d};e.copyTo=function(a,b,c,d){var f,e;if(!this.noAssert&&!h.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(e="undefined"===typeof b)?a.offset:b|0;c=(f="undefined"===typeof c)?this.offset:c|0;d="undefined"===typeof d?this.limit:d|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||d>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+ -c+" <= "+this.buffer.byteLength);var g=d-c;if(0===g)return a;a.ensureCapacity(b+g);a.view.set(this.view.subarray(c,d),b);f&&(this.offset+=g);e&&(a.offset+=g);return this};e.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};e.fill=function(a,b,c){var d="undefined"===typeof b;d&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};e.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};e.LE=function(a){this.littleEndian= -"undefined"!==typeof a?!!a:!0;return this};e.BE=function(a){this.littleEndian="undefined"!==typeof a?!a:!1;return this};e.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a= -h.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var f=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+ -a);}if(this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ -a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call(this.view.subarray(a,b));return this};e.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};e.slice=function(a,b){"undefined"===typeof a&&(a= -this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};e.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};e.toArrayBuffer=e.toBuffer;e.toString= -function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug();case "columns":return this.o();default:throw Error("Unsupported encoding: "+a);}};var A=function(){for(var a= -{},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],d=0,f=b.length;d>2&63]),f=(d&3)<<4,null!==(d=a())?(f|=d>>4&15,c(b[(f|d>>4&15)&63]),f=(d&15)<<2,null!==(d=a())?(c(b[(f|d>>6&3)&63]),c(b[d&63])):(c(b[f&63]),c(61))):(c(b[f&63]),c(61),c(61))};a.decode=function(a, -b){function d(a){throw Error("Illegal character code: "+a);}for(var f,e,h;null!==(f=a());)if(e=c[f],"undefined"===typeof e&&d(f),null!==(f=a())&&(h=c[f],"undefined"===typeof h&&d(f),b(e<<2>>>0|(h&48)>>4),null!==(f=a()))){e=c[f];if("undefined"===typeof e)if(61===f)break;else d(f);b((h&15)<<4>>>0|(e&60)>>2);if(null!==(f=a())){h=c[f];if("undefined"===typeof h)if(61===f)break;else d(f);b((e&3)<<6>>>0|h)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)}; -return a}();e.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a=a|0;b=b|0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;A.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],d=[];ad?f+="0"+d.toString(16).toUpperCase():f+=d.toString(16).toUpperCase(),a&&(e+=32d?String.fromCharCode(d):"."));++b;if(a&&0f.length;)f+=" ";g+=f+e+"\n";f=e=""}f=b===this.offset&&b===this.limit?f+(b===this.markedOffset?"!":"|"):b===this.offset? -f+(b===this.markedOffset?"[":"<"):b===this.limit?f+(b===this.markedOffset?"]":">"):f+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==f){for(;51>f.length;)f+=" ";g+=f+e+"\n"}return a?g:f};h.fromDebug=function(a,b,c){var d=a.length;b=new h((d+1)/3|0,b,c);for(var f=0,e=0,g,k=!1,m=!1,p=!1,n=!1,q=!1;f":if(!c){if(n){q=!0;break}n=!0}b.limit=e;k=!1;break;case "'":if(!c){if(p){q=!0;break}p=!0}b.markedOffset=e;k=!1;break;case " ":k=!1;break;default:if(!c&&k){q=!0;break}g=parseInt(g+a.charAt(f++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!== -b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),d;ad?c.push("0",d.toString(16)):c.push(d.toString(16));return c.join("")};h.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var d=a.length;b=new h(d/ -2|0,b);for(var f,e=0,g=0;ef||255d?c(d&127):(2048>d?c(d>>6&31|192):(65536>d?c(d>>12&15|224):(c(d>>18&7|240),c(d>>12&63|128)),c(d>>6&63|128)),c(d&63|128)),d=null},h:function(a,c){function d(a){a= -a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;}for(var f,e,g,h;null!==(f=a());)if(0===(f&128))c(f);else if(192===(f&224))null===(e=a())&&d([f,e]),c((f&31)<<6|e&63);else if(224===(f&240))null!==(e=a())&&null!==(g=a())||d([f,e,g]),c((f&15)<<12|(e&63)<<6|g&63);else if(240===(f&248))null!==(e=a())&&null!==(g=a())&&null!==(h=a())||d([f,e,g,h]),c((f&7)<<18|(e&63)<<12|(g&63)<<6|h&63);else throw RangeError("Illegal starting byte: "+f);},f:function(a,c){for(var d, -e=null;null!==(d=null!==e?e:a());)55296<=d&&57343>=d&&null!==(e=a())&&56320<=e&&57343>=e?(c(1024*(d-55296)+e-56320+65536),e=null):c(d);null!==e&&c(e)},g:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},b:function(b,c){a.f(b,function(b){a.i(b,c)})},c:function(b,c){a.h(b,function(b){a.g(b,c)})},l:function(a){return 128>a?1:2048>a?2:65536>a?3:4},m:function(a){for(var c,d=0;null!== -(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},a:function(b){var c=0,d=0;a.f(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();e.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ -a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.c(function(){return a>1,h=-7;f=c?f-1:0;var k=c?-1:1,p=a[b+f];f+=k;c=p&(1<<-h)-1;p>>=-h;for(h+=l;0>=-h;for(h+=d;0>1,p=23===f? +Math.pow(2,-24)-Math.pow(2,-77):0;l=d?0:l-1;var m=d?1:-1,n=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=h):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(g=Math.pow(2,-d))&&(d--,g*=2),b=1<=d+k?b+p/g:b+p*Math.pow(2,1-k),2<=b*g&&(d++,g/=2),d+k>=h?(b=0,d=h):1<=d+k?(b=(b*g-1)*Math.pow(2,f),d+=k):(b=b*Math.pow(2,k-1)*Math.pow(2,f),d=0));for(;8<=f;a[c+l]=b&255,l+=m,b/=256,f-=8);d=d<a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};h.VERSION="5.0.0";h.LITTLE_ENDIAN=!0;h.BIG_ENDIAN=!1;h.DEFAULT_CAPACITY=16;h.DEFAULT_ENDIAN=h.BIG_ENDIAN;h.DEFAULT_NOASSERT=!1;h.Long=k|| +null;var e=h.prototype;Object.defineProperty(e,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var v=new ArrayBuffer(0),w=String.fromCharCode;h.accessor=function(){return Uint8Array};h.allocate=function(a,b,c){return new h(a,b,c)};h.concat=function(a,b,c,d){if("boolean"===typeof b||"string"!==typeof b)d=c,c=b,b=void 0;for(var f=0,l=0,g=a.length,e;l=e||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=e);b.limit=b.offset;b.offset=0;return b};h.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};h.type=function(){return ArrayBuffer};h.wrap=function(a,b,c,d){"string"!==typeof b&&(d=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return h.fromBase64(a,c);case "hex":return h.fromHex(a,c);case "binary":return h.fromBinary(a,c);case "utf8":return h.fromUTF8(a, +c);case "debug":return h.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(h.isByteBuffer(a))return b=e.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new h(0,c,d),0>>=0;if(0>b||b+0> +this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f=a.length,e=f>>3,g=0,h;for(b+=this.writeVarint32(f,b);e--;)h=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]&1)<<7,this.writeByte(h,b++);if(g>3,e=0,g=[];for(a+=c.length;f--;)c=this.readByte(a++),g[e++]=!!(c&1),g[e++]=!!(c&2),g[e++]=!!(c&4),g[e++]=!!(c&8),g[e++]=!!(c&16),g[e++]=!!(c&32),g[e++]=!!(c&64),g[e++]=!!(c&128);if(e>f++&1);b&&(this.offset=a);return g};e.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+"+a+") <= "+this.buffer.byteLength);}var d=this.slice(b,b+a);c&&(this.offset+=a);return d};e.writeBytes=e.append;e.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); +}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);this.view[b-1]=a;c&&(this.offset+=1);return this};e.writeByte=e.writeInt8;e.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];128===(a&128)&&(a=-(255-a+1));b&&(this.offset+= +1);return a};e.readByte=e.readInt8;e.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b); +this.view[b-1]=a;c&&(this.offset+=1);return this};e.writeUInt8=e.writeUint8;e.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];b&&(this.offset+=1);return a};e.readUInt8=e.readUint8;e.writeInt16=function(a,b){var c="undefined"===typeof b; +c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>> +8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeShort=e.writeInt16;e.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);32768===(c&32768)&& +(c=-(65535-c+1));b&&(this.offset+=2);return c};e.readShort=e.readInt16;e.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength; +b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeUInt16=e.writeUint16;e.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength); +}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);b&&(this.offset+=2);return c};e.readUInt16=e.readUint16;e.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeInt=e.writeInt32;e.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a% +1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c|0};e.readInt=e.readInt32;e.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset); +if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]= +a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeUInt32=e.writeUint32;e.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+ +2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c};e.readUInt32=e.readUint32;k&&(e.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!== +typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]= +f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeLong=e.writeInt64,e.readInt64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)"); +a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0); +a=new k(c,d,!1);b&&(this.offset+=8);return a},e.readLong=e.readInt64,e.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255, +this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeUInt64=e.writeUint64,e.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian? +(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!0);b&&(this.offset+=8);return a},e.readUInt64=e.readUint64);e.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== +typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);u(this.view,a,b-4,this.littleEndian,23,4);c&&(this.offset+=4);return this};e.writeFloat=e.writeFloat32;e.readFloat32=function(a){var b="undefined"===typeof a;b&& +(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=s(this.view,a,this.littleEndian,23,4);b&&(this.offset+=4);return a};e.readFloat=e.readFloat32;e.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)"); +if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);u(this.view,a,b-8,this.littleEndian,52,8);c&&(this.offset+=8);return this};e.writeDouble=e.writeFloat64;e.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!== +a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=s(this.view,a,this.littleEndian,52,8);b&&(this.offset+=8);return a};e.readDouble=e.readFloat64;h.MAX_VARINT32_BYTES=5;h.calculateVarint32=function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};h.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};h.zigZagDecode32=function(a){return a>>>1^-(a& +1)|0};e.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=h.calculateVarint32(a),f;b+=d;f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b); +b-=d;for(a>>>=0;128<=a;)f=a&127|128,this.view[b++]=f,a>>>=7;this.view[b++]=a;return c?(this.offset=b,this):d};e.writeVarint32ZigZag=function(a,b){return this.writeVarint32(h.zigZagEncode32(a),b)};e.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength); +}var c=0,d=0,f;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;f=this.view[a++];5>c&&(d|=(f&127)<<7*c);++c}while(0!==(f&128));d|=0;return b?(this.offset=a,d):{value:d,length:c}};e.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=h.zigZagDecode32(a.value):a=h.zigZagDecode32(a);return a};k&&(h.MAX_VARINT64_BYTES=10,h.calculateVarint64=function(a){"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));var b=a.toInt()>>> +0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},h.zigZagEncode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},h.zigZagDecode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&& +(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(k.ONE).toSigned().negate()).toSigned()},e.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var d=h.calculateVarint64(a),f=a.toInt()>>>0,e=a.shiftRightUnsigned(28).toInt()>>>0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=d;var t=this.buffer.byteLength;b>t&&this.resize((t*=2)>b?t:b);b-=d;switch(d){case 10:this.view[b+9]=g>>>7&1;case 9:this.view[b+8]=9!==d?g|128:g&127;case 8:this.view[b+7]=8!==d?e>>>21|128:e>>>21&127;case 7:this.view[b+6]= +7!==d?e>>>14|128:e>>>14&127;case 6:this.view[b+5]=6!==d?e>>>7|128:e>>>7&127;case 5:this.view[b+4]=5!==d?e|128:e&127;case 4:this.view[b+3]=4!==d?f>>>21|128:f>>>21&127;case 3:this.view[b+2]=3!==d?f>>>14|128:f>>>14&127;case 2:this.view[b+1]=2!==d?f>>>7|128:f>>>7&127;case 1:this.view[b]=1!==d?f|128:f&127}return c?(this.offset+=d,this):d},e.writeVarint64ZigZag=function(a,b){return this.writeVarint64(h.zigZagEncode64(a),b)},e.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=0,f=0,e=0,g=0,g=this.view[a++],d=g&127;if(g&128&&(g=this.view[a++],d|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<14,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++], +f=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<14,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g))throw Error("Buffer overrun");d=k.fromBits(d|f<<28,f>>>4| +e<<24,!1);return b?(this.offset=a,d):{value:d,length:a-c}},e.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=h.zigZagDecode64(a.value):a=h.zigZagDecode64(a);return a});e.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var d,f=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(d=0;d>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}f=n.calculateUTF16asUTF8(m(a))[1];b+=f+1;d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=f+1;n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));this.view[b++]=0;return c?(this.offset=b,this):f};e.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d,f=-1;n.decodeUTF8toUTF16(function(){if(0===f)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);f=this.view[a++];return 0===f?null:f}.bind(this),d=r(),!0);return b?(this.offset=a,d()):{string:d(),length:a-c}};e.writeIString=function(a,b){var c= +"undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f;f=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];b+=4+f;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4+f;this.littleEndian?(this.view[b+ +3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255);b+=4;n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+4+f)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+f));return c?(this.offset=b,this):b-d};e.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,d=this.readUint32(a),d=this.readUTF8String(d,h.METRICS_BYTES,a+=4);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};h.METRICS_CHARS="c";h.METRICS_BYTES="b";e.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+ +b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d,f=b;d=n.calculateUTF16asUTF8(m(a))[1];b+=d;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d;n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));return c?(this.offset=b,this):b-f};e.writeString=e.writeUTF8String;h.calculateUTF8Chars=function(a){return n.calculateUTF16asUTF8(m(a))[0]};h.calculateUTF8Bytes=function(a){return n.calculateUTF16asUTF8(m(a))[1]}; +h.calculateString=h.calculateUTF8Bytes;e.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var d="undefined"===typeof c;d&&(c=this.offset);"undefined"===typeof b&&(b=h.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+ +this.buffer.byteLength);}var f=0,e=c,g;if(b===h.METRICS_CHARS){g=r();n.decodeUTF8(function(){return f>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +c+" (+"+a+") <= "+this.buffer.byteLength);}var k=c+a;n.decodeUTF8toUTF16(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f,e;f=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];e=h.calculateVarint32(f);b+=e+f;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=e+f;b+=this.writeVarint32(f,b);n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+f+e)throw RangeError("Illegal range: Truncated data, "+ +b+" == "+(b+f+e));return c?(this.offset=b,this):b-d};e.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=this.readVarint32(a),d=this.readUTF8String(d.value,h.METRICS_BYTES,a+=d.length);a+=d.length;return b?(this.offset=a,d.string):{string:d.string, +length:a-c}};e.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a=h.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var f=this.buffer.byteLength;c>f&&this.resize((f*=2)> +c?f:c);c-=b;this.view.set(a.view.subarray(a.offset,a.limit),c);a.offset+=b;d&&(this.offset+=b);return this};e.appendTo=function(a,b){a.append(this,b);return this};e.assert=function(a){this.noAssert=!a;return this};e.capacity=function(){return this.buffer.byteLength};e.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};e.clone=function(a){var b=new h(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),b.view=new Uint8Array(b.buffer)): +(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};e.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+ +b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var d=new ArrayBuffer(c),f=new Uint8Array(d);f.set(this.view.subarray(a,b));this.buffer=d;this.view=f;0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};e.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new h(0,this.littleEndian,this.noAssert);var c=b-a,d=new h(c,this.littleEndian,this.noAssert);d.offset=0;d.limit=c;0<=d.markedOffset&&(d.markedOffset-=a);this.copyTo(d,0,a,b);return d};e.copyTo=function(a, +b,c,d){var f,e;if(!this.noAssert&&!h.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(e="undefined"===typeof b)?a.offset:b|0;c=(f="undefined"===typeof c)?this.offset:c|0;d="undefined"===typeof d?this.limit:d|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||d>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+c+" <= "+this.buffer.byteLength);var g=d-c;if(0===g)return a;a.ensureCapacity(b+g); +a.view.set(this.view.subarray(c,d),b);f&&(this.offset+=g);e&&(a.offset+=g);return this};e.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};e.fill=function(a,b,c){var d="undefined"===typeof b;d&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};e.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};e.LE=function(a){this.littleEndian="undefined"!==typeof a?!!a:!0;return this};e.BE=function(a){this.littleEndian= +"undefined"!==typeof a?!a:!1;return this};e.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a=h.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var f=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+a);}if(this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call(this.view.subarray(a,b));return this}; +e.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};e.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer"); +a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};e.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer"); +c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};e.toArrayBuffer=e.toBuffer;e.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+ +")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug();case "columns":return this.toColumns();default:throw Error("Unsupported encoding: "+a);}};var x=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113, +114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],d=0,f=b.length;d>2&63]),f=(d&3)<<4,null!==(d=a())?(f|=d>>4&15,c(b[(f|d>>4&15)&63]),f=(d&15)<<2,null!==(d=a())?(c(b[(f|d>>6&3)&63]),c(b[d&63])):(c(b[f&63]),c(61))):(c(b[f&63]),c(61),c(61))};a.decode=function(a,b){function d(a){throw Error("Illegal character code: "+a);}for(var f,e,h;null!==(f=a());)if(e=c[f],"undefined"===typeof e&&d(f),null!==(f=a())&& +(h=c[f],"undefined"===typeof h&&d(f),b(e<<2>>>0|(h&48)>>4),null!==(f=a()))){e=c[f];if("undefined"===typeof e)if(61===f)break;else d(f);b((h&15)<<4>>>0|(e&60)>>2);if(null!==(f=a())){h=c[f];if("undefined"===typeof h)if(61===f)break;else d(f);b((e&3)<<6>>>0|h)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();e.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity|| +a>b)throw RangeError("begin, end");var c;x.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],d=[];ad?f+("0"+d.toString(16).toUpperCase()):f+d.toString(16).toUpperCase(),a&&(e+=32d?String.fromCharCode(d):"."));++b;if(a&&0f.length;)f+=" ";g+=f+e+"\n";f=e=""}f=b===this.offset&&b===this.limit?f+(b===this.markedOffset?"!":"|"):b===this.offset?f+(b===this.markedOffset?"[":"<"):b===this.limit?f+(b===this.markedOffset?"]":">"):f+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!== +f){for(;51>f.length;)f+=" ";g+=f+e+"\n"}return a?g:f};h.fromDebug=function(a,b,c){var d=a.length;b=new h((d+1)/3|0,b,c);for(var f=0,e=0,g,k=!1,m=!1,n=!1,p=!1,q=!1;f":if(!c){if(p){q=!0;break}p=!0}b.limit=e;k=!1;break;case "'":if(!c){if(n){q=!0;break}n=!0}b.markedOffset=e;k=!1;break;case " ":k=!1;break;default:if(!c&&k){q=!0;break}g=parseInt(g+a.charAt(f++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+ +this.buffer.byteLength);}for(var c=Array(b-a),d;ad?c.push("0",d.toString(16)):c.push(d.toString(16));return c.join("")};h.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var d=a.length;b=new h(d/2|0,b);for(var f,e=0,g=0;ef||255d?c(d&127):(2048>d?c(d>>6&31|192):(65536>d?c(d>>12&15|224):(c(d>>18&7|240),c(d>>12&63|128)),c(d>>6&63|128)),c(d&63|128)),d=null},decodeUTF8:function(a,c){for(var d,f,e,g,h=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(d=a());)if(0=== +(d&128))c(d);else if(192===(d&224))null===(f=a())&&h([d,f]),c((d&31)<<6|f&63);else if(224===(d&240))null!==(f=a())&&null!==(e=a())||h([d,f,e]),c((d&15)<<12|(f&63)<<6|e&63);else if(240===(d&248))null!==(f=a())&&null!==(e=a())&&null!==(g=a())||h([d,f,e,g]),c((d&7)<<18|(f&63)<<12|(e&63)<<6|g&63);else throw RangeError("Illegal starting byte: "+d);},UTF16toUTF8:function(a,c){for(var d,e=null;null!==(d=null!==e?e:a());)55296<=d&&57343>=d&&null!==(e=a())&&56320<=e&&57343>=e?(c(1024*(d-55296)+e-56320+65536), +e=null):c(d);null!==e&&c(e)},UTF8toUTF16:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},encodeUTF16toUTF8:function(b,c){a.UTF16toUTF8(b,function(b){a.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(b,c){a.decodeUTF8(b,function(b){a.UTF8toUTF16(b,c)})},calculateCodePoint:function(a){return 128>a?1:2048>a?2:65536>a?3:4},calculateUTF8:function(a){for(var c,d=0;null!==(c=a());)d+= +128>c?1:2048>c?2:65536>c?3:4;return d},calculateUTF16asUTF8:function(b){var c=0,d=0;a.UTF16toUTF8(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();e.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ +a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{n.decodeUTF8toUTF16(function(){return aUYI6YWU2SvQIFkO(Um>gNT!cv} zqAbZ8QjpF`Jh!gOc(xK}?si??6bOQp#sAMv>|NAunzJPDG94nqA>kn~65NHDZ z@^m){0x$NohWj~U?%Ma+viu(QS9M#)>h!F^!_DmHpyHFpH*Zw@nw9FGMene|?efxW8C7 zJQk5zxYG7sXu7|i(+Ftk7v?3pp80w+DQRMiqt91t;X?y|HfOuL^8Yru^pO0ipEbk9 zJZPRnV~2$+)~KPdWdB~zmO!GpaDQhsQf^%?ymbh7^8dHlA6JWIv_jV($+EG;veaBT z(em^43di(x`FM0oNkpgm8eQM6@TI;&&N3l@SGT-l`b9ft2u^?9++5$H_DkT8lnAs; z@3r3mVRVc1XgXV&8JEy?^1E@V6WKc#cbp}Q*2{S#t%$DU5_d$}A)5!$bVAy6N|vvH z{$ZrMhJoz)It*`bQ;JJn5+wNS+;rhj1zBKl2bf2e!TOTTqg6~CC68O9@H(ZmNp6SaWhE9lwdw$DnSq{Grux^b;A!=DB!@+oLnN!?4aC}TBe#^2u zqS6Ii!G&dBVRGgg{<-5D_`;$1YL~ZeO`*ASH6G*E)B#1;rv?t4&S(lXy8Xc(HDoK3 zw=$yr*A@ z0l;$&{0oVu?W@Hny=!{Np)JgAWuv6hUbv^!p)C((3|(goHABhL05~_?3tPZ1U>+Y7 zw=xVf zc)?pigE5}+j>Wx+i9mr4bz2|+g^JG`;0x%p3zU=_7Znx3NRZGXXE?&XL(ZrXo&(dm z{k{p3zck$!T&ql9=#huL(a67XMGIy?gU*O0jl8UpCmS)*NZf8+p5I`rJKUS!a!E~b z3KT*+&~=kL5suUzM_et2TmpO`c-nq_^z-5SH>V$79sd3B)$!>+kdv<;S9duuDAkWn zULPNx)KsQWnJSe}em#8m?&$5QFqa+Z61f4ms@ck8wpm*Zxk}NNn_p2-eQxJvW>~a=il3YYl$d2aTjLfks%jS#2)ru`6OmCfO z`?sUF?~Z>x!OecV)9y5(6@dNg?Og}MK6#4C%v|uvQ)4&aEi>wYBQ(IZAppy zFnn=yqw(F&}YJC>>;e!qT0z{pI5FRqP3&mn05@aM^ig;^N#SVYmQC z&q`Vz*XGZh#$~)d^bM*PY6I4aFvndiAkI=_6o9toO7yU~lNBNlQN_81vv4ICUe43;21`TrfrpjIyno^0TIRjAc9XzawUG7F1S{P`A?}^E%8%o zq6shn)&w4hrOw7jxxseCfWSoLr7tge4@0bVL~p=50Zqd=hv(4vAvAr$7&GXWD~zQL zB|43Nu3aL`B&`~^1+{eTDk@(T*(6fj;iJ?6p-8)^g+i!Y zE)|-h=o+uZ8C)Uw3i)!EP>`@-c2YId4}w;oW<1Qi10V#U-5Vv@)9Vv4J+)uF;(6~8Y7l$;Y6o?@p$ zVyIrHWl!wJ$s%fyc|(Ax)bJ)aP8Yhrqk5bUT)F>c)zg!m6SihF8~R+51tGEkbcTmV zV@O)!hzbb0MrW)kv5g}CJHoBxDV@d$Cyz2ZNM6-Yb41MP0dV??2gLq(ybnIHW6C_r zH6)XTn0_OmI?;X?92Fo3YqcCSg}9EK1>m1{ts6c2jYgy5b+>T6U%2iSuKR`SLE-wq z%zDP5M+d`!temql7(t#Y(m>3Bxo`62}#hdroVmmWv`zF=a6Tr3Rj@Edny_gI#9tu zO3U%sHw@^iV3x{%k^)DN@*k+Iz6xwSm9>-cV~t&t*4{LT(cH}9#qCu%qfCdW$pF66 zJgW_b*IowFg4vAE6tTINlpcdWdLjuBDFJeq1Z1Am5ZtH|K$5;b9hyH4m}|Fy)N;Zn z7I3K&bk5t|jV*9B`;+Oq$LC+h?!>cQCF?$OTNXI1g; zn|hH+u1+x&$pJxPSdW&Rc#>h=XO!`%1?S1R1HdU$D2||lDJ{L*@3){ws04}z)-s_G z6&7(OghWmvcKn`fH5JK^X04AmR_%+e^}Vo5RV8ArDXPb_!ER=-Zaw2ui%giF@>y}8 z*5DyFsXaT;uV#|nN13GC0s^I(RymE%*t6fCepF`k>$6@3&}mERYGECcu*jJe9E;3_J{Zo}+=k z4tlh|9(x`OJ?|yNzxzBX@D+hY+Z?~r+ zDfts%mbO*U>TLC5P!6ii&kZNo~1uLan_cRywKc3og)? zL2hHQY=|}MrNsu?j{&+BVwjY~U{|nTfI~q5Fc1R|AB*7$0n!c^pTsJN=`5IT0PJ2Z zuzR(@?o|W3Tp!FmQW1|ezxFA9?Nj{fr}$Og!>{!oey#WL>%50wIgVOZS+%U{*04(O zy~afi^DfGaF-5GORq@44BeNXVeB0@&)wzHXwO|?GL zbCgVq{2VUG6TJG+?*BHU!WT9qf$z=(KGm$=I>T=h<$i?J{zGTU2wvqxQzw=?rlHb>Scym!8RVq(m4oDszN@<1cC{bWc!ygx-eHB7 z^t8#0_%4pobuHonom*8t~!>y>i3)Az=FPi3MA!I`#yIsCs5za73k zJ~`d*et7wh)1!B|&p#k0Azg($ou3Y@eiwf4 z+ugyix8Lve2XNK1`}`BtKWD)|NpQqJrep=m@iq`TUsk}sgZdXdYTx2(XgXQT*Q~Z> zL%hBDR|}F~%|i0sV($B^=cN^YJz`0)s!%fi<(AL$XV3BL!OSm!nID6hFBW%0^6bfP zyyW;mJ4cu}2y*CMt9x(**SXxyfCSMLbq}0EIdSg(n$0U|*FS}R7IaKO$ilaPMN<%; z_@cyOD^2ftUHP4hyLc`LD&#G$O9S8CjXxNZAM?u|5F9`Lbh+kRCICbEhCfkqg?Au_ zN|Z6qii~roKjzo~X_)SFrQ%;y?oq@)>%ILnorO&2ycG9_2sz%3vJpUDm5AvfJKkZ! zGvybFHoYyXKuNCvgDXFLbjrI-kqMDsLgFHR>hTR^lZtz)3*m1YRbMga#lFJom?b+d zIQK2ju1Ny`5iKB@)Wynf{&gg2uck9UdOHiI(fj#o7JzN&zmLBpa+v?n!d7J+NUhxU- zDt1kZ%n}uMEN<29bv#zVQ_j41a_A_NvgFJg=101P+JA5aRhXp@_7Ue&$~2S>Me5Ac z4@J9YEO{xXgCcWJzi9t@a)gw&?Kz-N#B`({@aImY;HWhv)bwV30Qncu-~s+>^?B!(6?Cb37FF7@x4WL}mFiYjKckF*wKCLE6OX zrA@3})?|=t(m%(8w8cT%;2^8t&(-gpt^+OcHz}PPt^0X&ijSV@7sm94Et$| zxbJ?U?_Im_#-f|HI7k~PeYfn~n-5FYmNj{;>TMf9L()jMh=dP`bU~eqUN4SxO*PE< z+LHp>kMRkmbUH*vy0{Z>Y{CEKgH)&>O^R>o!6Q*%S-B2`ut5^SnxfjxO(ATq6hVOQ zBWLxtORsA^o}T7Qo;;qCzg@=pTV|ZUWyY~>@r`{s-%xH}F1dA7WATwKAz5qky(BN< zt-+!dq-H)0d}wkU?A>ULzqb-AK^~BXkrpIk1%#?d#Pm`oCg2V6ecS}aT=Z3wjPWLQ z$(SIQC1dFuvsW_Mcw|f}LJ(yiqdFWd?H_l?EIibWw}EQJ&E(E}{6(!d@*z+5P_mn^ zx-+nc?m$aH^wnY>5#VRz9Aj?Z0VXB&5oF2PvyEDk8M2LWjlV_cKCeQq2j-#x` z&%Xa&-wy`c;!^WiEVZE!nl;eN8)j!4XY##J`96GOT$%{0>f@4^*^P8+tl^P}m~n4M zNk1i(@*G(wMI=W9qerbi$N<~ zp5qz7t1mHdt_hecf$jdF?Sd2@zQ zt1)+w#oV;TZf{Er5xxLjZ>oJ?M?JQ%4=jDyKCl-Uo_b&Ql>p}G;$F!Mg(}3$e1H^~ zb@3&Vrir94zEIL7@u=J2UovP!SII8;$#z)@?B}5}T_W=}LxjhsY1$8+r4ZqB) z+{V2o2a0!gugHXw9O%&rkye;%k~?>o;=an|8#Tx2s5M%Cjx?5T7g~YmeEvbB<)hoK-pnW3U8dkK|Lilq-REDEX*D4LKl}HuHvyS)$XJ0JnqOG z)hYXJ`WTl5vw3>mDKSxa< zo`QcV=m{8B`|K%a4)XIGH}9}hizc*$5sRzOf3Y!W|Do2fkueZ{(rNL4zI%Z?H44*< z(VpJl$jdawOVtI`&MWGiSEF!TmrfVDXLk7KZu!$%wD8jp7I7bSq$-@DL=WAs09Tq%RjCn@TrNVvSYO;xxm#Gfh(D~HbHjs5Puei zrEKMnq(erlh1r(Mk1}$n2$K8)9)9@meRz8(F4HXY`3gbG24CE1k3i=-)OYVd{Y~<< zYSgENi6xP#Jr?y-yQQ0;zB|r`G4kMNcSIdj`joDa3{~VpemJ`-zZ+>0Q$4ZIfV(Ar*r>$^#=^?@!O}VP>JaK&q0aS6K z^iDZ_eREXKc5`hMF)MwV04aN?q$V%#qo&o718SuN_G-zVCx^bD$ssu}>*1U0tt{vR>o7GJqW%!T0IoKK-h~`)epI z7;9kju3Y&o=8)g`eN-D(pZWb;RgnG6E9WBXoLt#R3KkNzX)ff};m9bR7L+D!y5yn!a@*$fBB{@t^~3_Y&o?(rtc8q zg}V9wA_k$KeRs|^Xf1R9Kd?c+LVXQVIbEM$bWS0@O4GMucmICeWSdL?G#WgUFqUbY z5H(3jKyjZ$&1$r&!&a#!EHQ_DI%0o`v)4)2_Gr|rAyUU%rwHSUq zr=IJ3ma67krBC%t|45%Ikk*^%@k0X=OI7nFDACrlaWPkBnQ!mkJ#6;%Os{w{WP?eH z-rXNY6>m<}yo}lYpfQG!=5i*TJ*h%4>X|Sx3ZHY>Hcvg5dLH$B>IKvrQs1P$MSYw4 z1L`}}cd74D-=}^+{UHrZ8dx;2X)vIHLj#uv9u0gN1T+}Zp-G269R_qbq?T#IW5Hv? zGl0i|$A!m($A>3?2l82v&w_jw>Ae87;_YLq;1i+BS6p>I|uC zQrE&TZtj4(4s~7Xderr)GoX$?19CW>2~Y1>TC+$G%K0>&CbL`?X9hQgBczH8i_t2lZivC8SjimhCz=V9eRUh;9a~Dr6{~j zCU&E2S-=D6JU^?L{fk$sz{^6WdlqR+6JK)ZCAYV%i3Reln{ZW*f>p&PLHdbyvAo19 zIXnxR(p51)3o$@IQPOZeUCd}JVM%p8F&2bYi(yQf)rnFoQ7SgjBN^jxWX4K&0s=!? zhegOUZ@~B%aZ9n0p2b}J;>R?4%fr4T%ude$z-(F^UQMcdco(J31fN<>&#TiFtxi{z zGSu-{Ju8yuI8}#qe`qnuzxlUuH=2Ie|0U}GZuW=0o7uCIlb4M|I}gLGnl#8ma`(** zgA4%kl4lr%%NLCBeOaNAZA#-z5x#`nC24+^fy@`TuyZCNQWWSkaqu~Q63e#5YB-w2 zcU6DNrq%Eqt%ggpM1!DX1oMDz8;DEIWFe1ipg5D2$2~XB%K<=Q;kKW|T5OtS&Uup) zZj(t0X)sZw!PRwq*hXz08=?c8@kFF#XRLG4VH=+)#dGpf90C!NCwu#{n9(_l8U|sa z`Z?UFZA>+7ED4oh2GiLX&;v;L_3qt%WmM6GAhU8N;k-PfOL#smIkAy?B~I+n%IyAw z_yQb*Fn&{>h+qF_yWSX@MtT<%F0ij{us;s_$_`^dKZ$>6$ShDYLG9ptl8k};S5F}4 zYyfT7owPYVt`&w*@PY-BkHR`1Ri$;5O*tAhRgbcvaoFiwa_`a*u$jBIra|lBX9++2 zi0rwKad;4u)X4Ag3^H5ZZF0Bh8Jel}l2S=&u^3K2?{?|qD?oNM;9s2lP7$BeUO2EP ziH=b>0Bp-t8VMO`*BZeHhA~4xJm!tX-r9T{*a~%Zk-$A-poc|DMW3l%X(KJu$fyS4M2RVsn5ZSrRWXACw;GP% zu^iuOBeD69#Q@wvS4XfOay~}zhK50l%f>}&2&20tMnB-IrH)hTL46UDL)tPie*wn0itiiD~mqh&jx>X`12e5j2CRJh)u>)EE!lXi(Ze&EeDJ_ZW;M*>LJTE zS+*n3P#nk_GX4A^+=Kwq%nOspnwg_CYD~x25MD}b3$hyUI^;UsqkyLMRyLY=qJb^& zCKY%!U@EAVvNN^p4p@J+F+159p$|FRmfH%v8Y~4;OVMxDqSa=IMx3i0Fk4BJyEFz= z*WXqkF2h~)xW|jZjAgHaOB6`ZSd=l=``6KHV+m}}yj^A)66Gbi$T5fQGx&0l?aqMt=X$?~W(Y+R zhC^hNA-spuNqkhR^YMM{!q|1!hc4{g?+7$E6#+LAXtru5%r^4%W3n2;1^LI<#=nEvbjaVhmphbinj!m8p}F_*6?SMCw9NlWe7q7D7iR z@cnayHDS{&7}N{pDs6(OfK+f5%9WVaG^sv~I9 zl8cU#LN66-er)M?XdBJF3izt zUPj%8p$ajtjzdGRXsD=&R>l;%!PHx*b+b@+lA*?{1OVj(02oVB*D=ZWl)Yye2S`&1 zlBsDH$e=o3yJ=QB_4K`eF%MLI$5?!lqxpArdVJ18!`C_?qqAu#jhzNj6AcZ)7&Y`Nk!#KrU2=TqVtkWc*x_N`1>|`F zd5(}vZvxupZ#`0br`}(8bW~X|i1`@mJ=q~C3rwNev%IMsMX+B@QT{|xvGcL#>EpxW zhv&;;N?fiT&VjG-_}r+mz~T9$@&2wt5$>U>Z*JgLA#LjVCySb;+uF)F6~o}l#J~lt kZWI$Qiy@FG8%k7GC&dQ4bPAF>X87FsFRKm0R}ZfM04+VgUYI6YXJ!x~>IF{e}D`eGl-jc7k>nh0>A&xL07!y|Y&mw^Nw>QyZV?0?fp@=$ z>+p$IaX+sE_c9EFW%JinMfXU>Y#H6kb2gs_v&#QYm+RjuL*HBY!GH6=&FSJ;t2|}i z*>oONL`$o3vRtyyPx%9_oOoWaS}maX{dB$_@ON6}r(hPaRp3`H=YFuPtS3R`}jYU zK#$nQY2okIF(d2Aa`Cb96PriDi{)~$)T=LNvmj!#ipKzD)Ai>nv0dljz_mU2>uuMQ z>8dG^;k4kRZ1lmJ2Om|k=#1FB+J|ZIQC6B?&Stz`N+(?bB^xZla22efcl_y`Ezbh~ zjVNmvqHs1npROGiKdjfY;KkgZvbp1mviagEt-JL)v2Xy}6yj1B0GXqmj;ZUMj!WPoj&bzM z=<+<6uU8T}iNDwUbupdm)helfY_f}s*=POjdI`Kv0f9!#>?HlE=RqJpG%qe!6TQ%q z(72V;A~wf#^J2MJFOWTW8`*-<1S(NR_DL`<^=T-EIJ0NY;7Qo*3fA>&^x6&{+*zHzv^BK07{k8WS4? zN}tr7ncW&rpoZD)J@M+I6~$I`(r^X@df_Q;y-Zu5x1I5}vy!%w5+3m!qY>D_Y!x7N zJSdA|a?D1r*=y_N9OMbu{)v9Z2LRu#J3q4ZqXLeHEDBJ{IkwxMg`NCDX}JEWmL_xl8pJ#+j~ z%bH2roWql00ie0lI(9c395g78*0FKuj*vF47z=Y(x(jGo!I0s{W)lw^>yJR!#BZ<> z^_>Z^bYClj1Fub++F z`sc&Qg1;)>jK&$E=FoAUMA)icr_mv{f(FOV1Un{sBY{AH4s{!Ve+5d24V*LRvkQ=v z7iT3EK}rZ`BYQA(LYtj>_1PGZW_G(2NPkY^JVOfwyi7+w%A2;sW&P zXFZ_RUw)aco`N+LivE{hsuZ|+b{SX)EgH;0nJk$*gC~P}3*e~eGJf6?{+SO>-d3~- z{pbkg)eM)5^Jh};LMNFt?oLrvr&eT(6=$=B$JRkwQQBTv8^0ObW2_H-gX+23AlaxA zs_tR|-osqAzMG9!UGXkf57JWNJ0A5M7g+kkV(M2~oF#CSA#mvo{zXo#ifLfahLK&b z&&Z^yqEKh2voXjY|3A>+x#cUZ_^%pU+l$|L%u@TEzz^H_Fv{j%A_}jEr5*)|PM?rMLKg zzPh})SS;7zZ3lDkmjN?YrCJB$vIShBenAgtv#Bn)PEjx%JD>01G3R>d^k$1W`~?L7FM#cGE+cgj0;^2tt2LW@_|;T%kXSZ^sDMnd#Jkdf^QDu^|@fK0;&eRtxLm;gt}5Awy2i`HjJX@j-8-lJBR&w`Cno;d56o?rYk~R<38+&SXK1 z@_iHTZrZczsi2+m((DrYvP_KdXNtw?O9w3s=!Oo4{FjQqNAtY z7?hMZ7CpI{Us8P%fT&M_Yo_bBK~~iZ2h4NIh1J$PF0V>FA_AvOaKTN*K?%jkZl)Gp zu_~_@>k6A!xE2*GUIokPLjMm`lhcAH_bviZV$CZkH2)8v!m?*(NfLYx}Z|to$9!lETJxP1D&g#|uB%Z%s&8A+UgVR(8yn0zw z*Adqe)qbj^Ij#fDO9XR2E`161=xY-|i{(d9fL%uc5$IGnI?4zTr`7&&+8i{s$Sz0% z7wSOY{8~*);A;9?pzA&c`^WCcw?Lma8g7~pJaxgO7x}_S_yUVFtl=mOA*D0N8@Jbu z+P<>64`-yb+r=6R?EoOF8+WE1|5Dw!iFR_>9Pw;ygYFbj6e>}Um4 zXvKyaz3)gYAJB$s4=$AEorKbD0D!`*my9EXpw^8s>h@mO9JB}wbwIOHjM-^o>6yZv z^%0n8Q51f&T=?Hk7R$AxvR-PgGi>5M|<%EXqM1kMlVorqdo(*hQk36 zH(LwJiWQ07Hv2v92w=1YKM9{QZs@&kx7}@c<<3A#bT8IBF~JiWtM0&erFj0}{=gqz z^}H7s?{7JRXKAI(=XG%fEr)isyiGgoJv2^aLSUNW;mNw`D7@^tW zbL;9GQ@k;Hg*S$HGswT#p@3KSg`@C?>TZ2~op_%r@jLXkv_G#_d~l`sUZ}qedn@kT!)iwDPpuliY0ap*i=1Cl z4zbUmU20f+om;9$?RNT6T@A#XGroA{HGhT6p_7FaC2NP`+G6>HTKj-6cT(3FoRKfn zxs}DTf@}WBA9TS%2^B^KDp)1h=gJ|6e`15GcLsOW;V}T#oGm``r4W;8G}%M3`#Tl8 zzf-aM<%(S_NJWd3SIFVckAyov5|)1?EVCZrPU{iwv>xFu>k*a?V<)DJotQFrV2Y!? zrj^^MLDoi5sZ{tHT2;Z4n%oA1qYAKa698tiGFa0&JUnJCJTh5Q0w4Iukvko_EF z{~F`xml;35%=q~QVpSPmnRlk+u7m@l#L5noX(q|plH(I5r;2}eYy0|* zm{;x5zCOHt{oT#0_Gn*!2m5*}^ZH)c(Ts|rse^w<6RSPi*ax<;-<*ln9@fUT_Or1G z+oz09;;hIIvjuy=Jm0NMVMVn6?hN3AW%Yhb^*05&HKeLl<&m0g+Sxxz#@WHi@`lWZ z6glN_{-B(&+Lk$=GNjo>mTU4*$wI7{Bnk~O)cVR^@}Et3_m|xp+)eG4!aFG8lCDVy zH@i16J3L=py0gH^GKb1Vk2!>W{F|GFSCHje(`#!2?+Hy5BG{AWk0<~4%g-l2y?p(y zZT|A~AMakgb-K8Vn9aP)8A~@WW#}bQBEMmngJU)_ETh*Rbl{h1nXRL~(KX?B+cJBD zPP^Ob_TZ^wb#b5SZ`0_XEP8=EDuWzkdG3IY%L;Ha)W6|VZ37q4w9=N(gPkoaeER0! z4O|6I#MEMD57wV>xv2Jy?w~7SGTgltVgT*i;cibP%qg=_Dzi`q&%W5_C58vgIdqs! zAcn3PW`6_Enb@rk0V3sf`*yCJ+1GDq^9$VdPtKk>9#a%#Za-jN68JV>5}Vsn$$Q)i za$_h69ON&q3gfQTIr8i8mX~;J0w5HRm|4e9&H;o_F)zxXs6Mv4$EX`1 z4AVnoD%@20#3Q)1cl&WNodr6glD``eV*4BAFn}y8G3pabo-*N6u`AK?ws{sP@D-@w z(!Gy%yc1nr^EYB*JEW7>pSpZOELQSPwIMj&sM?BNN7@RbMGJDAGw%1CUK0`kG+IC~ zsdLK!0WNEXz1{y znbg3!VBk8^@Ok{bH|kowWZE05KzW`O3&@RK)D32?uVa)>rrMh`3 z2g`Aa$a^csPEslh)VvD9wQi8+Csd&dw)9?`Aes`ak#sDAXTIuKzGNs_Dko!Nb6-De zzIpwEC~cc_P(JHGCu(7mt}Ef|Z+jL%dz@we8nXcR&96HgAv`37@T|Y8s}QReMn>>L4x z{85BnnH8Za74-(0di}98;PnE`*c-gE_?fooXIk{ePCsd3bdnZECvDNowCIkVUecnU zH0Y=GyP5i(vC|dxMcuSs$I49&ba=fm?R%K(d)vy*GPIKxvhQK8@1~WTvCzzHD-x?jA7 zx5t~dH^BQqTyS5A3%(q2By%{II6kVf_z)~1S_6^vr44>MU9TWE3t`{`ih8iK32@qq zuLQY87{(e9h~*SiNg$>dA~CMr2%hD}A!eMf9kCcT*%ga%aA_=t&Ye)M&xE&eN2iqg zAj)AzyYy(`5V>oz@K9GC1yzyF#OZuEQR@#w2$X#ipC79pM(dMn)FlV{Y%yOmKxpOl z`&X|T*pzweV7dB(I;Ej=-efxR896n^eCcLbH|#sCEWzgIO_#%@Dj(;QU)!cTg-D6p zf09p)wQfj_g>eR>$fJ*j{U*Z>!q`9}d3y1z0}4GRH}btTk+1rHfDo9q|67nSyv zG}s?<>OVQn&Q5g=%_0vq53UfXhw?PtoysT3DW5-I$xq! zf#fa*V|75ymk2LX*+By9E(ehw_IC3rd@sLy-Tc6tjaa<$E8U1A&Kpb%-~BL8vKvW&OT03=RQz#upVak%M)=a~AMOy>+yzSG9AWb*gSP z*?E?9@4G(y?_nn@!5q8bab+B_BzblRW$1s2z9<)NEtT#tJ+MX)x%E6EHL>}tF1i-Mt3~r8&CAUE;0&A z7czxBBnV{46z%pBqMVlyNiQLiUIK!+<}~qrTnKGf%n{auyT%*{g4lb996vv%gKj_1 zv*VES(x5{ge4YPO>ri`ykDXs?3`9K;QrMIW#ucq3;XFD!* zagz&OtQ4dIB5s!O21zeMQgCDEF0m<~A-PW}MPcUJ6K`=2y=bIsaLCEXtSf5s*Qw| za~mwZ#jq%S&WAMX>Y)EmTf-vn#9BoyYdEpbrm$6ViBQr5zaSnSuD{9&0bVi2b)KRD z6Sc>6u-a!|xh53v(c8bn_D*f$6?DYn;{TY>UCHHg+>?M9sbszVLGgC8ofKTN zWt7|>RY@E13wrfnN03WKv0q`io0jc4dbq=JBqN3QEe|U1a54Q+%KVnUQDV%Gu?$?cV7|Is2G6921kqlE zj$GpUm8d~+0~+Ybyo(1d@lr>o7UXnU_G=}M&kkQIz2JD1aavvOw6c+FF=E9Z38%AJ zAym00;t<|yZuX;euY!8R9$)CItZTtrSZ`9d*Q#YN4SV)g%iqo+zq_=)dyUrLCs-@j z`d%(&#KW|^YW+lRy?wO4dz^J+#0|Xe(6dQli&-uhDv5={+4Q0iYZTm>jMJdC@<34I z=k^bk`w1C6$$sZ#OY5GJEjI?&#dxd`C@z+M?&{VOlb2kuyH_q%HRrMEivf_5OW+TR z;p?jx#b`IvMpMYFbZP{!tb+oZJiQ6rE@%L(5Wrq6gU8I!?~@tQZb}W6Wrjpj$d%3j zUIi&;xc5sP)I*$#$%RY-v7_C-!pNiX?kSJvwSv%>r?V@J#Ez>6PLQRU8wx0tU$&EOsPVrD=V z0Ix97&G^Dwoz$!Unm6wL-@oRPgVzgj?eYOQMPgduoK5GMNr7wzPH?V*Jke^UULZ=Y z%J?9g(=NQGWm!1kDi$vBj&UuV%j?a+9ZY1LjoiZ*0~2|TCP@Lsu>cdkNx94oxkr!} zbQbTnEnJ~&yIHBu3M^9u*4-8`_#s%Xg2xoz112rBJ7g`mY2b8M?!%Tu6xU(zOo!zt zzdBPL*?X3py%yDMl|WLO5LTACh(m`RNV*2^aW`5DmgSeKmAaZg+C_j&Fi=1tUO&6P z=xC3!^NVBC9nE>dXU zWPpBv`5IJmwVJorJcWE4uUJc>`ww=}YH|lqFPKciEv9~rt4UJ*iE$EbWshK6FO;u1 zDd+H4a$SX17HgI22RVXjnrc0Hs!LwY=`EUZk>tyaZ(XH=wbe}|P?*fE%JTRbok~)* zOLp9gHJuJ7C)VKrm__a{XL5hJD7I9}tQWZcfn!YUb*{Sbx7W$nddf@HdXwN&zS7@< zPZ>zlIa_`%K;orpJs&;Vd^O?b##Ow1XFxp@>X}f_G-+o*J4dwJqFn=z zHS4x%w?n&K+U?P9pLW``(;tHxJROTOejGPm!4hvM^iJJVe>`@4p1H=Ild7TgQY`s2 zv~d;@&*F z`VR%1b$a|e6SCbRsn)@2U9wvK@Zb8#Iz4IplQn*8HIC|sO?peT;qM+K#MtS)3RO1-K2h(bh%<}&mFN6L(Y9eimqH$PI=lV zQgBOF0<)nz%I--lt_1dQC2+bLQ75?nfNu#e!^FNTU!hLiK{*>6PxKsip0oiHKY#i} zN@H;~rYE}Wi`^U~@dJIu51cgJ^@5dcr;q~>CWn#KknzE>^}@|2eX`9&RnbgiJoN>g4U`tbi8zS&KLEB z&%_b+OwQHe`m)()`37tT;T9*I3UB_pn9lWTmDKlWoN!+mu5ZVE>45QwyO{r|2C7=} zq>qU~Z|K`#0J4*h9><{B?GDR!7)}+FkXVBd6-ct=9cGs2UV-OsS+y( zVWjPDatcj`YLlD3F@^@mRm9=08h@=?GU#_D21YPe3&de7kOWT$XcYItOPm;FqX^Fn z5VDeID0PB9IiVt61F8FUgB-RuEnX`TlH^bvdgdG$^c??O;Ga4E`49ZDLoO&XxQL{@ zfUJb|I*CIKz&VDBB8WQQY%VsNIk|%7pw!UlZ_k|z2SB#A$x_GM^2T^EV_;)PL@OB% zY;wT!kn?aefHW1-X}+6zqlAaAS@N&RZP$g~0YTJ3fFY~xBG7oZNSB^8_a>%_mMgp`OONUqUINV}5^A`BW4e0HUh5GU zz1DHG*`P*_$X+{bczh`WK?n$weK(p|b$c41l8$f)EfmE6+yL|C`~#a!0nX=hcQLE5 zwb1z66k!LzM+fs8!2CE}t)L$=frQ5ca%u>J9Sq%_*__*twF0=SOxG2N*hd6<8^|Lo zeCV~hJeUXY`RTL$7CP+Mf#Rym!Q5{pH>!Py$kxR-OxQj(NZhrohC~okjI|oLe zW{o5Qh zww@KNoqwpAXzCP07oYuR2VlH!VvW>y^?Ojkcl=hHPrTU;fD zLM4Sasifoxrukyt0Ew(*PGOQNDH48Ttf3=i6+ia;T+LpI%+=MemSGqjOdCzDY~n^P z(Z&OB%5#Q*Ey_yfk9mYB@D=AXe6Y2-+z%el3*3fz8?#R=-E4Ja0Z-Hz8{^1?;$FAg z?#1PXSu?sD)9mmJ4HgV){f*gaVSYxu@3lAl{AVfwsn6+y7}u6ga%0YBahRhqG5Mpn zC~HE<8+>{r@)pUF$bwc(nYu@6%-K13pUEaZUJ2Z7E}JVpQ;W2Av)P}hJpY64Z+xn? zhsloklvzNKc!dZd*b*NDnF8|lQvk~IS5T#GU~*&=018q7&`tsX43hZMF@X3v;?J9n z07#=4B+u&@CQs_{)XOHyLhrO<=!2V}r_Ynz*XShv9zUgTkbDlm9K~Orq+h=7C^NQP zqg_KP$bf50Lu*&QQVRt4r<^N)1*5)FVab%g+QRU>LhVVRc9hhfStWUx_-+iY zQ}AjGp+)dwjLw#xTV-Dc z@N5ZrXFp@ZdI~)oZ?|?n(TEc;kLx+U(e)f6v$|e>zA8UrVgJPH7A%N3>lvecM8}sN zH+SI3(+`TN+5#^nu3D{jXFo07>ow7nE&T^A+{e#9g#J|dmU>@_v@nV5C!uG$OD0ae zZgJmjy7*4nTf#XV3?l!3lb!oS{M1jYvjy~UOfQv_-b)}Xga2GkmjFV!=Rv+YU-*|Z zc$58qGx&tlh%2E6o;sqGKBLb$OFVZZL|t?srZL2~+h@+D{+!rPV-U_WzF1PESA7i6 iUcPbEht1|{OPc9~GPGA;H~H!Dw)X#oFxgNptpEV#Da`x; diff --git a/dist/bytebuffer.min.map b/dist/bytebuffer.min.map index 1f0bbd7..0720f48 100644 --- a/dist/bytebuffer.min.map +++ b/dist/bytebuffer.min.map @@ -2,7 +2,7 @@ "version":3, "file":"", "lineCount":93, -"mappings":"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", +"mappings":"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", "sources":["dist/bytebuffer.js"], -"names":["Long","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","buffer","EMPTY_BUFFER","ArrayBuffer","view","Uint8Array","offset","markedOffset","limit","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ieee754_read","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","e","NaN","Infinity","Math","pow","ieee754_write","value","c","rt","abs","isNaN","floor","log","LN2","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeBytes","append","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","readInt8","ByteBufferPrototype.readInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","writeShort","readInt16","ByteBufferPrototype.readInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","writeUInt16","readUint16","ByteBufferPrototype.readUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","writeInt","readInt32","ByteBufferPrototype.readInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","writeUInt32","readUint32","ByteBufferPrototype.readUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","lo","low","hi","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","b","capacity10","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","indexOf","name","a","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8","define","factory","require","module","global"] +"names":["global","factory","define","require","module","Long","e","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ieee754_read","buffer","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","ieee754_write","value","c","rt","abs","isNaN","floor","log","LN2","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","EMPTY_BUFFER","ArrayBuffer","view","Uint8Array","markedOffset","limit","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeBytes","append","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","readInt8","ByteBufferPrototype.readInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","writeShort","readInt16","ByteBufferPrototype.readInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","writeUInt16","readUint16","ByteBufferPrototype.readUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","writeInt","readInt32","ByteBufferPrototype.readInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","writeUInt32","readUint32","ByteBufferPrototype.readUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","lo","low","hi","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","b","capacity10","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","a","indexOf","name","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8"] } diff --git a/externs/ByteBuffer.js b/externs/ByteBuffer.js deleted file mode 100644 index 2dd39ae..0000000 --- a/externs/ByteBuffer.js +++ /dev/null @@ -1,834 +0,0 @@ -/* - * Copyright 2012 The Closure Compiler Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Externs for ByteBuffer.js. - * @see https://github.com/dcodeIO/ByteBuffer.js - * @externs - */ - -/** - BEGIN_NODE_INCLUDE - var ByteBuffer = require('bytebuffer'); - END_NODE_INCLUDE - */ - -/** - * @param {number=} capacity - * @param {boolean=} littleEndian - * @param {boolean=} sparse - * @constructor - */ -function ByteBuffer(capacity, littleEndian, sparse) {}; - -/** - * @type {?ArrayBuffer} - */ -ByteBuffer.prototype.array; - -/** - * @type {number} - */ -ByteBuffer.prototype.offset; - -/** - * @type {number} - */ -ByteBuffer.prototype.markedOffset; - -/** - * @type {number} - */ -ByteBuffer.prototype.limit; - -/** - * @type {boolean} - */ -ByteBuffer.prototype.littleEndian; - -/** - * @type {string} - * @const - */ -ByteBuffer.VERSION; - -/** - * @type {number} - * @const - */ -ByteBuffer.DEFAULT_CAPACITY = 32; - -/** - * @type {boolean} - * @const - */ -ByteBuffer.LITTLE_ENDIAN = true; - -/** - * @type {boolean} - * @const - */ -ByteBuffer.BIG_ENDIAN = false; - -/** - * @param {number=} capacity - * @param {boolean=} littleEndian - * @returns {!ByteBuffer} - * @nosideeffects - */ -ByteBuffer.allocate = function(capacity, littleEndian) {}; - -/** - * @param {!ArrayBuffer|!Buffer|!{array: ArrayBuffer}|!{buffer: ArrayBuffer}|string} buffer - * @param {(string|boolean)=} enc - * @param {boolean=} littleEndian - * @returns {!ByteBuffer} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.wrap = function(buffer, enc, littleEndian) {}; - -/** - * @param {boolean=} littleEndian - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.LE = function(littleEndian) {}; - -/** - * @param {boolean=} bigEndian - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.BE = function(bigEndian) {}; - -/** - * @param {string} str - * @param {boolean} littleEndian - * @param {boolean} noAssert - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.fromBase64 = function(str, littleEndian, noAssert) {}; - -/** - * @param {string} str - * @param {boolean} littleEndian - * @param {boolean} noAssert - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.fromBinary = function(str, littleEndian, noAssert) {}; - -/** - * @param {string} str - * @param {boolean} littleEndian - * @param {boolean} noAssert - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.fromDebug = function(str, littleEndian, noAssert) {}; - -/** - * @param {string} str - * @param {boolean} littleEndian - * @param {boolean} noAssert - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.fromHex = function(str, littleEndian, noAssert) {}; - -/** - * @param {string} str - * @param {boolean} littleEndian - * @param {boolean} noAssert - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.fromUTF8 = function(str, littleEndian, noAssert) {}; - - -/** - * @param {number} capacity - * @returns {boolean} - */ -ByteBuffer.prototype.resize = function(capacity) {}; - -/** - * @param {number} begin - * @param {number} end - * @returns {!ByteBuffer} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.prototype.slice = function(begin, end) {}; - -/** - * @param {number} begin - * @param {number} end - * @returns {!ByteBuffer} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.prototype.sliceAndCompact = function(begin, end) {}; - -/** - * @param {number} capacity - * @returns {boolean} - */ -ByteBuffer.prototype.ensureCapacity = function(capacity) {}; - -/** - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.flip = function() {}; - -/** - * @param {number=} offset - * @returns {!ByteBuffer} - * @throws {Error} - */ -ByteBuffer.prototype.mark = function(offset) {}; - -/** - * @returns {!ByteBuffer} this - */ -ByteBuffer.prototype.reset = function() {}; - -/** - * @returns {!ByteBuffer} - * @nosideeffects - */ -ByteBuffer.prototype.clone = function() {}; - -/** - * @returns {!ByteBuffer} - * @nosideeffects - */ -ByteBuffer.prototype.copy = function() {}; - -/** - * @returns {number} - * @nosideeffects - */ -ByteBuffer.prototype.remaining = function() {}; - -/** - * @returns {number} - * @nosideeffects - */ -ByteBuffer.prototype.capacity = function() {}; - -/** - * @returns {!ByteBuffer} - * @throws {Error} - */ -ByteBuffer.prototype.compact = function() {}; - -/** - * @returns {!ByteBuffer} - * @throws {Error} - */ -ByteBuffer.prototype.reverse = function() {}; - -/** - * @param {!ByteBuffer} src - * @param {number=} offset - * @returns {!ByteBuffer} - * @throws {Error} - */ -ByteBuffer.prototype.append = function(src, offset) {}; - -/** - * @param {!ByteBuffer} src - * @param {number=} offset - * @returns {!ByteBuffer} - * @throws {Error} - */ -ByteBuffer.prototype.prepend = function(src, offset) {}; - -/** - * @param {number|string} value - * @param {number} begin - * @param {number} end - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.fill = function(value, begin, end) {}; - - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeInt8 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readInt8 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeByte = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readByte = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeUint8 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readUint8 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeInt16 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readInt16 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeShort = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readShort = function (offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeUint16 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readUint16 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeInt32 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readInt32 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeInt = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readInt = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeUint32 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readUint32 = function(offset) {}; - -/** - * @param {number|Long} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeInt64 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {Long} - * @throws {Error} - */ -ByteBuffer.prototype.readInt64 = function(offset) {}; - -/** - * @param {number|Long} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeUint64 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {Long} - * @throws {Error} - */ -ByteBuffer.prototype.readUint64 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeFloat32 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readFloat32 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeFloat = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readFloat = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeFloat64 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readFloat64 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeDouble = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readDouble = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer} - */ -ByteBuffer.prototype.writeLong = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.prototype.readLong = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeVarint32 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number|!{value: number, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readVarint32 = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeZigZagVarint32 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number|{value: number, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readZigZagVarint32 = function(offset) {}; - -/** - * @param {number|Long} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - * @throws {Error} - */ -ByteBuffer.prototype.writeVarint64 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {!Long|{value: !Long, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readVarint64 = function(offset) {}; - -/** - * @param {number|Long} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - * @throws {Error} - */ -ByteBuffer.prototype.writeZigZagVarint64 = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {!Long|!{value: !Long, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readZigZagVarint64 = function(offset) {}; - -/** - * @param {number|Long} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - * @throws {Error} - */ -ByteBuffer.prototype.writeVarint64ZigZag = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {!Long|{value: !Long, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readVarint64ZigZag = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeVarint = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number|!{value: number, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readVarint = function(offset) {}; - -/** - * @param {number} value - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeZigZagVarint = function(value, offset) {}; - -/** - * @param {number=} offset - * @returns {number|{value: number, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readZigZagVarint = function(offset) {}; - -/** - * @param {number} value - * @returns {number} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.calculateVarint32 = function(value) {}; - -/** - * @param {number} value - * @returns {number} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.calculateVarint64 = function(value) {}; - -/** - * @param {string} str - * @returns {number} - * @nosideeffects - */ -ByteBuffer.calculateUTF8String = function(str) {}; - -/** - * @param {string} str - * @returns {number} - */ -ByteBuffer.prototype.calculateUTF8Bytes = function(str) {}; - -/** - * @param {string} str - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeUTF8String = function(str, offset) {}; - -/** - * @param {number} chars - * @param {number=} offset - * @returns {string|!{string: string, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readUTF8String = function(chars, offset) {}; - -/** - * @param {number} length - * @param {number} offset - * @throws {Error} - */ -ByteBuffer.prototype.readUTF8StringBytes = function(length, offset) {}; - -/** - * @param {string} str - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeLString = function(str, offset) {}; - -/** - * @param {number=} offset - * @returns {string|!{string: string, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readLString = function(offset) {}; - -/** - * @param {string} str - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeVString = function(str, offset) {}; - -/** - * @param {number=} offset - * @returns {string|!{string: string, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readVString = function(offset) {}; - -/** - * @param {string} str - * @param {number=} offset - * @returns {!ByteBuffer|number} - */ -ByteBuffer.prototype.writeCString = function(str, offset) {}; - -/** - * @param {number=} offset - * @returns {string|!{string: string, length: number}} - * @throws {Error} - */ -ByteBuffer.prototype.readCString = function(offset) {}; - -/** - * @param {number=} wrap - * @returns {string} - * @nosideeffects - */ -ByteBuffer.prototype.toColumns = function(wrap) {}; - -/** - * @param {function(string)=} out - */ -ByteBuffer.prototype.printDebug = function(out) {}; - -/** - * @param {boolean=} debug - * @returns {string} - * @nosideeffects - */ -ByteBuffer.prototype.toHex = function(debug) {}; - -/** - * @returns {string} - * @nosideeffects - */ -ByteBuffer.prototype.toBinary = function() {}; - -/** - * @returns {string} - * @nosideeffects - */ -ByteBuffer.prototype.toUTF8 = function() {}; - -/** - * @returns {string} - * @nosideeffects - */ -ByteBuffer.prototype.toBase64 = function() {}; - -/** - * @param {string=} enc - * @returns {string} - * @nosideeffects - */ -ByteBuffer.prototype.toString = function(enc) {}; - -/** - * @param {boolean=} forceCopy - * @returns {ArrayBuffer} - * @nosideeffects - */ -ByteBuffer.prototype.toArrayBuffer = function(forceCopy) {}; - -/** - * @param {!ByteBuffer} src - * @param {number} offset - * @returns {!{char: number, length: number}} - * @nosideeffects - */ -ByteBuffer.decodeUTF8Char = function(src, offset) {}; - -/** - * @param {number} charCode - * @param {!ByteBuffer} dst - * @param {number} offset - * @returns {number} - * @throws {Error} - */ -ByteBuffer.encodeUTF8Char = function(charCode, dst, offset) {}; - -/** - * @param {number} charCode - * @returns {number} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.calculateUTF8Char = function(charCode) {}; - -/** - * @param {number} n - * @returns {number} - * @nosideeffects - */ -ByteBuffer.zigZagEncode32 = function(n) {}; - -/** - * @param {number} n - * @returns {number} - * @nosideeffects - */ -ByteBuffer.zigZagDecode32 = function(n) {}; - -/** - * @param {!ByteBuffer} bb - * @returns {string} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.encode64 = function(bb) {}; - -/** - * @param {string} str - * @param {boolean=} littleEndian - * @returns {!ByteBuffer} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.decode64 = function(str, littleEndian) {}; - -/** - * @param {!ByteBuffer} bb - * @returns {string} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.encodeHex = function(bb) {}; - -/** - * @param {string} str - * @param {boolean=} littleEndian - * @returns {!ByteBuffer} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.decodeHex = function(str, littleEndian) {}; - -/** - * @param {!ByteBuffer} bb - * @returns {string} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.encodeBinary = function(bb) {}; - -/** - * @param {string} str - * @param {boolean=} littleEndian - * @returns {!ByteBuffer} - * @throws {Error} - * @nosideeffects - */ -ByteBuffer.decodeBinary = function(str, littleEndian) {}; - -/** - * @type {number} - * @const - */ -ByteBuffer.MAX_VARINT32_BYTES = 5; - -/** - * @type {number} - * @const - */ -ByteBuffer.MAX_VARINT64_BYTES = 10; diff --git a/externs/bytebuffer.js b/externs/bytebuffer.js index 2dd39ae..6de5e6b 100644 --- a/externs/bytebuffer.js +++ b/externs/bytebuffer.js @@ -680,6 +680,34 @@ ByteBuffer.prototype.writeCString = function(str, offset) {}; */ ByteBuffer.prototype.readCString = function(offset) {}; +/** + * @param {number} length + * @param {number=} offset + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.readBytes = function(length, offset) {}; + +/** + * @param {!ByteBuffer} src + * @param {number=} offset + * @returns {!ByteBuffer} + * @throws {Error} + */ +ByteBuffer.prototype.writeBytes = function(src, offset) {}; + +/** + * @param {number=} offset + * @returns {Array} + */ +ByteBufferPrototype.readBitSet = function(offset) {}; + +/** + * @param {Array} + * @param {number=} + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.writeBitSet = function(value, offset) {}; + /** * @param {number=} wrap * @returns {string} diff --git a/package.json b/package.json index c3cb75a..0a22299 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bytebuffer", - "version": "5.0.0", + "version": "5.0.1", "author": "Daniel Wirtz ", "description": "The swiss army knife for binary data in JavaScript.", "main": "dist/bytebuffer-node.js", @@ -44,8 +44,8 @@ "make": "npm run-script build && npm run-script compile && npm run-script compress && npm test", "build": "node scripts/build.js", "compile": "npm run-script compile-default && npm run-script compile-dataview", - "compile-default": "ccjs dist/bytebuffer.js --create_source_map=dist/bytebuffer.min.map --compilation_level=ADVANCED_OPTIMIZATIONS --externs=externs/minimal-env.js --externs=node_modules/long/externs/long.js > dist/bytebuffer.min.js", - "compile-dataview": "ccjs dist/bytebuffer-dataview.js --create_source_map=dist/bytebuffer-dataview.min.map --compilation_level=ADVANCED_OPTIMIZATIONS --externs=externs/minimal-env.js --externs=node_modules/long/externs/long.js > dist/bytebuffer-dataview.min.js", + "compile-default": "ccjs dist/bytebuffer.js --create_source_map=dist/bytebuffer.min.map --externs=externs/minimal-env.js --externs=node_modules/long/externs/long.js > dist/bytebuffer.min.js", + "compile-dataview": "ccjs dist/bytebuffer-dataview.js --create_source_map=dist/bytebuffer-dataview.min.map --externs=externs/minimal-env.js --externs=node_modules/long/externs/long.js > dist/bytebuffer-dataview.min.js", "compress": "gzip -c -9 dist/bytebuffer.min.js > dist/bytebuffer.min.js.gz && gzip -c -9 dist/bytebuffer-dataview.min.js > dist/bytebuffer-dataview.min.js.gz" } } From f3f310b6786e5d44686d385a2cc60c6720a1069b Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 12 Feb 2016 14:59:42 +0100 Subject: [PATCH 4/9] Rebuild --- bower.json | 2 +- dist/bytebuffer-dataview.js | 2 +- dist/bytebuffer-dataview.min.js | 2 +- dist/bytebuffer-dataview.min.js.gz | Bin 7988 -> 7988 bytes dist/bytebuffer-node.js | 2 +- dist/bytebuffer.js | 2 +- dist/bytebuffer.min.js | 2 +- dist/bytebuffer.min.js.gz | Bin 8658 -> 8658 bytes 8 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bower.json b/bower.json index 2cd12ea..a6cee3a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "bytebuffer", - "version": "5.0.0", + "version": "5.0.1", "author": "Daniel Wirtz ", "description": "A full-featured ByteBuffer implementation using typed arrays.", "main": "dist/bytebuffer.js", diff --git a/dist/bytebuffer-dataview.js b/dist/bytebuffer-dataview.js index d9beb30..bb6235c 100644 --- a/dist/bytebuffer-dataview.js +++ b/dist/bytebuffer-dataview.js @@ -124,7 +124,7 @@ * @const * @expose */ - ByteBuffer.VERSION = "5.0.0"; + ByteBuffer.VERSION = "5.0.1"; /** * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. diff --git a/dist/bytebuffer-dataview.min.js b/dist/bytebuffer-dataview.min.js index c8de74f..a35c7c5 100644 --- a/dist/bytebuffer-dataview.min.js +++ b/dist/bytebuffer-dataview.min.js @@ -6,7 +6,7 @@ */ (function(h,m){if("function"===typeof define&&define.amd)define(["long"],m);else if("function"===typeof require&&"object"===typeof module&&module&&module.exports){var s=module,f;try{f=require("long")}catch(d){}f=m(f);s.exports=f}else(h.dcodeIO=h.dcodeIO||{}).ByteBuffer=m(h.dcodeIO.Long)})(this,function(h){function m(a){var b=0;return function(){return ba)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?t:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};f.VERSION= -"5.0.0";f.LITTLE_ENDIAN=!0;f.BIG_ENDIAN=!1;f.DEFAULT_CAPACITY=16;f.DEFAULT_ENDIAN=f.BIG_ENDIAN;f.DEFAULT_NOASSERT=!1;f.Long=h||null;var d=f.prototype;Object.defineProperty(d,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var t=new ArrayBuffer(0),u=String.fromCharCode;f.accessor=function(){return DataView};f.allocate=function(a,b,c){return new f(a,b,c)};f.concat=function(a,b,c,e){if("boolean"===typeof b||"string"!==typeof b)e=c,c=b,b=void 0;for(var k=0,d=0,g=a.length,p;d=p||(e.set((new Uint8Array(c.buffer)).subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset;b.offset=0;return b};f.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};f.type=function(){return ArrayBuffer};f.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"=== typeof b&&(b="utf8"),b){case "base64":return f.fromBase64(a,c);case "hex":return f.fromHex(a,c);case "binary":return f.fromBinary(a,c);case "utf8":return f.fromUTF8(a,c);case "debug":return f.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(f.isByteBuffer(a))return b=d.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new f(0,c,e),0 delta 31 ncmdmDx5bW4zMF$%&y$U863mP@Hp?^f%5cc}AK=Md!oUCkqtFRJ diff --git a/dist/bytebuffer-node.js b/dist/bytebuffer-node.js index 72ccec6..93a7c46 100644 --- a/dist/bytebuffer-node.js +++ b/dist/bytebuffer-node.js @@ -110,7 +110,7 @@ module.exports = (function() { * @const * @expose */ - ByteBuffer.VERSION = "5.0.0"; + ByteBuffer.VERSION = "5.0.1"; /** * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. diff --git a/dist/bytebuffer.js b/dist/bytebuffer.js index 36d0207..bb3e3aa 100644 --- a/dist/bytebuffer.js +++ b/dist/bytebuffer.js @@ -124,7 +124,7 @@ * @const * @expose */ - ByteBuffer.VERSION = "5.0.0"; + ByteBuffer.VERSION = "5.0.1"; /** * Little endian constant that can be used instead of its boolean value. Evaluates to `true`. diff --git a/dist/bytebuffer.min.js b/dist/bytebuffer.min.js index be2b37e..d9dfea7 100644 --- a/dist/bytebuffer.min.js +++ b/dist/bytebuffer.min.js @@ -7,7 +7,7 @@ (function(k,m){if("function"===typeof define&&define.amd)define(["long"],m);else if("function"===typeof require&&"object"===typeof module&&module&&module.exports){var r=module,s;try{s=require("long")}catch(u){}s=m(s);r.exports=s}else(k.dcodeIO=k.dcodeIO||{}).ByteBuffer=m(k.dcodeIO.Long)})(this,function(k){function m(a){var b=0;return function(){return b>1,h=-7;f=c?f-1:0;var k=c?-1:1,p=a[b+f];f+=k;c=p&(1<<-h)-1;p>>=-h;for(h+=l;0>=-h;for(h+=d;0>1,p=23===f? Math.pow(2,-24)-Math.pow(2,-77):0;l=d?0:l-1;var m=d?1:-1,n=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=h):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(g=Math.pow(2,-d))&&(d--,g*=2),b=1<=d+k?b+p/g:b+p*Math.pow(2,1-k),2<=b*g&&(d++,g/=2),d+k>=h?(b=0,d=h):1<=d+k?(b=(b*g-1)*Math.pow(2,f),d+=k):(b=b*Math.pow(2,k-1)*Math.pow(2,f),d=0));for(;8<=f;a[c+l]=b&255,l+=m,b/=256,f-=8);d=d<a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};h.VERSION="5.0.0";h.LITTLE_ENDIAN=!0;h.BIG_ENDIAN=!1;h.DEFAULT_CAPACITY=16;h.DEFAULT_ENDIAN=h.BIG_ENDIAN;h.DEFAULT_NOASSERT=!1;h.Long=k|| +typeof a&&(a=h.DEFAULT_CAPACITY);"undefined"===typeof b&&(b=h.DEFAULT_ENDIAN);"undefined"===typeof c&&(c=h.DEFAULT_NOASSERT);if(!c){a|=0;if(0>a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};h.VERSION="5.0.1";h.LITTLE_ENDIAN=!0;h.BIG_ENDIAN=!1;h.DEFAULT_CAPACITY=16;h.DEFAULT_ENDIAN=h.BIG_ENDIAN;h.DEFAULT_NOASSERT=!1;h.Long=k|| null;var e=h.prototype;Object.defineProperty(e,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var v=new ArrayBuffer(0),w=String.fromCharCode;h.accessor=function(){return Uint8Array};h.allocate=function(a,b,c){return new h(a,b,c)};h.concat=function(a,b,c,d){if("boolean"===typeof b||"string"!==typeof b)d=c,c=b,b=void 0;for(var f=0,l=0,g=a.length,e;l=e||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=e);b.limit=b.offset;b.offset=0;return b};h.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};h.type=function(){return ArrayBuffer};h.wrap=function(a,b,c,d){"string"!==typeof b&&(d=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return h.fromBase64(a,c);case "hex":return h.fromHex(a,c);case "binary":return h.fromBinary(a,c);case "utf8":return h.fromUTF8(a, c);case "debug":return h.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(h.isByteBuffer(a))return b=e.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new h(0,c,d),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 Axc~qF delta 7478 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 AyZ`_I From 09109261a6b0efa43bfaf86fd8c472bd5ce5dd8f Mon Sep 17 00:00:00 2001 From: moxaj Date: Tue, 5 Apr 2016 15:16:22 +0200 Subject: [PATCH 5/9] Add extern for ByteBuffer#skip, fix typo at readBitSet --- externs/bytebuffer.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/externs/bytebuffer.js b/externs/bytebuffer.js index 6de5e6b..979d961 100644 --- a/externs/bytebuffer.js +++ b/externs/bytebuffer.js @@ -153,13 +153,18 @@ ByteBuffer.prototype.fromHex = function(str, littleEndian, noAssert) {}; */ ByteBuffer.prototype.fromUTF8 = function(str, littleEndian, noAssert) {}; - /** * @param {number} capacity * @returns {boolean} */ ByteBuffer.prototype.resize = function(capacity) {}; +/** + * @param {number} length + * @returns {!ByteBuffer} + */ +ByteBuffer.prototype.skip = function(length) {}; + /** * @param {number} begin * @param {number} end @@ -699,7 +704,7 @@ ByteBuffer.prototype.writeBytes = function(src, offset) {}; * @param {number=} offset * @returns {Array} */ -ByteBufferPrototype.readBitSet = function(offset) {}; +ByteBuffer.prototype.readBitSet = function(offset) {}; /** * @param {Array} From 737513750556c6e81e9c5b182337c20d4f4f3f59 Mon Sep 17 00:00:00 2001 From: adon Date: Tue, 14 Jun 2016 15:56:26 +0800 Subject: [PATCH 6/9] Fixed errors in externs --- externs/bytebuffer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/externs/bytebuffer.js b/externs/bytebuffer.js index 6de5e6b..fc8d7b3 100644 --- a/externs/bytebuffer.js +++ b/externs/bytebuffer.js @@ -699,11 +699,11 @@ ByteBuffer.prototype.writeBytes = function(src, offset) {}; * @param {number=} offset * @returns {Array} */ -ByteBufferPrototype.readBitSet = function(offset) {}; +ByteBuffer.prototype.readBitSet = function(offset) {}; /** - * @param {Array} - * @param {number=} + * @param {Array} value + * @param {number=} offset * @returns {!ByteBuffer} */ ByteBuffer.prototype.writeBitSet = function(value, offset) {}; From 7fc8584ee36ad8f6873afee205ad0f4032e9dcbd Mon Sep 17 00:00:00 2001 From: Amila Welihinda Date: Wed, 17 Aug 2016 16:12:33 -0700 Subject: [PATCH 7/9] Added support for modern node versions --- .travis.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ced0467..233454e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,8 @@ +sudo: false + language: node_js + node_js: + - 6 + - 4 - 0.12 - - 4.2 -sudo: false From c5df32641f8efce6d2ad914b732f91cc9a8e11bf Mon Sep 17 00:00:00 2001 From: Brecht Carnewal Date: Fri, 23 Feb 2018 00:57:28 +0100 Subject: [PATCH 8/9] Move writeBytes to methods/append.js (#87) fixes #74 --- dist/bytebuffer-dataview.js | 24 ++-- dist/bytebuffer-dataview.min.js | 98 ++++++++-------- dist/bytebuffer-dataview.min.js.gz | Bin 7988 -> 7955 bytes dist/bytebuffer-dataview.min.map | 4 +- dist/bytebuffer-node.js | 24 ++-- dist/bytebuffer.js | 24 ++-- dist/bytebuffer.min.js | 175 +++++++++++++++-------------- dist/bytebuffer.min.js.gz | Bin 8658 -> 8654 bytes dist/bytebuffer.min.map | 6 +- src/methods/append.js | 17 +++ src/types/bytes/bytes.js | 17 --- tests/suite.js | 14 +++ 12 files changed, 209 insertions(+), 194 deletions(-) diff --git a/dist/bytebuffer-dataview.js b/dist/bytebuffer-dataview.js index bb6235c..c4d04a2 100644 --- a/dist/bytebuffer-dataview.js +++ b/dist/bytebuffer-dataview.js @@ -509,18 +509,6 @@ return slice; }; - /** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; // types/ints/int8 @@ -2137,6 +2125,18 @@ return this; }; + /** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; /** * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to * disable them if your code already makes sure that everything is valid. diff --git a/dist/bytebuffer-dataview.min.js b/dist/bytebuffer-dataview.min.js index a35c7c5..6290102 100644 --- a/dist/bytebuffer-dataview.min.js +++ b/dist/bytebuffer-dataview.min.js @@ -4,16 +4,16 @@ Released under the Apache License, Version 2.0 see: https://github.com/dcodeIO/bytebuffer.js for details */ -(function(h,m){if("function"===typeof define&&define.amd)define(["long"],m);else if("function"===typeof require&&"object"===typeof module&&module&&module.exports){var s=module,f;try{f=require("long")}catch(d){}f=m(f);s.exports=f}else(h.dcodeIO=h.dcodeIO||{}).ByteBuffer=m(h.dcodeIO.Long)})(this,function(h){function m(a){var b=0;return function(){return ba)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?t:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};f.VERSION= -"5.0.1";f.LITTLE_ENDIAN=!0;f.BIG_ENDIAN=!1;f.DEFAULT_CAPACITY=16;f.DEFAULT_ENDIAN=f.BIG_ENDIAN;f.DEFAULT_NOASSERT=!1;f.Long=h||null;var d=f.prototype;Object.defineProperty(d,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var t=new ArrayBuffer(0),u=String.fromCharCode;f.accessor=function(){return DataView};f.allocate=function(a,b,c){return new f(a,b,c)};f.concat=function(a,b,c,e){if("boolean"===typeof b||"string"!==typeof b)e=c,c=b,b=void 0;for(var k=0,d=0,g=a.length,p;d=p||(e.set((new Uint8Array(c.buffer)).subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset;b.offset=0;return b};f.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};f.type=function(){return ArrayBuffer};f.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"=== +(function(h,l){if("function"===typeof define&&define.amd)define(["long"],l);else if("function"===typeof require&&"object"===typeof module&&module&&module.exports){h=module;try{var t=require("long")}catch(f){}l=l(t);h.exports=l}else(h.dcodeIO=h.dcodeIO||{}).ByteBuffer=l(h.dcodeIO.Long)})(this,function(h){function l(a){var b=0;return function(){return ba)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?u:new ArrayBuffer(a);this.view=0===a?null:new DataView(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};f.VERSION= +"5.0.1";f.LITTLE_ENDIAN=!0;f.BIG_ENDIAN=!1;f.DEFAULT_CAPACITY=16;f.DEFAULT_ENDIAN=f.BIG_ENDIAN;f.DEFAULT_NOASSERT=!1;f.Long=h||null;var d=f.prototype;Object.defineProperty(d,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var u=new ArrayBuffer(0),v=String.fromCharCode;f.accessor=function(){return DataView};f.allocate=function(a,b,c){return new f(a,b,c)};f.concat=function(a,b,c,e){if("boolean"===typeof b||"string"!==typeof b)e=c,c=b,b=void 0;for(var n=0,g=0,d=a.length,p;g=p||(e.set((new Uint8Array(c.buffer)).subarray(c.offset,c.limit),b.offset),b.offset+=p);b.limit=b.offset;b.offset=0;return b};f.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};f.type=function(){return ArrayBuffer};f.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"=== typeof b&&(b="utf8"),b){case "base64":return f.fromBase64(a,c);case "hex":return f.fromHex(a,c);case "binary":return f.fromBinary(a,c);case "utf8":return f.fromUTF8(a,c);case "debug":return f.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(f.isByteBuffer(a))return b=d.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new f(0,c,e),0>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,k=a.length,d=k>>3,g=0,f;for(b+=this.writeVarint32(k,b);d--;)f=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]&1)<<7,this.writeByte(f,b++);if(g>3,d=0,g=[];for(a+=c.length;k--;)c=this.readByte(a++),g[d++]=!!(c&1),g[d++]=!!(c&2),g[d++]=!!(c&4),g[d++]=!!(c&8),g[d++]=!!(c&16),g[d++]=!!(c&32),g[d++]=!!(c&64),g[d++]=!!(c&128);if(d>k++&1);b&&(this.offset=a);return g};d.readBytes=function(a,b){var c="undefined"=== -typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}var e=this.slice(b,b+a);c&&(this.offset+=a);return e};d.writeBytes=d.append;d.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)"); -a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt8(b-1,a);c&&(this.offset+=1);return this};d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +Array))throw TypeError("Illegal BitSet: Not an array");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,n=a.length,g=n>>3,d=0;for(b+=this.writeVarint32(n,b);g--;){var f=!!a[d++]&1|(!!a[d++]&1)<<1|(!!a[d++]&1)<<2|(!!a[d++]&1)<<3|(!!a[d++]&1)<<4|(!!a[d++]&1)<<5|(!!a[d++]&1)<<6|(!!a[d++]&1)<<7;this.writeByte(f,b++)}if(d>3,d=0,f=[];for(a+=c.length;n--;)c=this.readByte(a++),f[d++]=!!(c&1),f[d++]=!!(c&2),f[d++]=!!(c&4),f[d++]=!!(c&8),f[d++]=!!(c&16),f[d++]=!!(c&32),f[d++]=!!(c&64),f[d++]=!!(c&128);if(d>n++&1);b&&(this.offset=a);return f};d.readBytes=function(a,b){var c="undefined"=== +typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}b=this.slice(b,b+a);c&&(this.offset+=a);return b};d.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!== +typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setInt8(b-1,a);c&&(this.offset+=1);return this};d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getInt8(a);b&&(this.offset+=1);return a};d.readByte=d.readInt8;d.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>= 0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setUint8(b-1,a);c&&(this.offset+=1);return this};d.writeUInt8=d.writeUint8;d.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ a+" (+1) <= "+this.buffer.byteLength);}a=this.view.getUint8(a);b&&(this.offset+=1);return a};d.readUInt8=d.readUint8;d.writeInt16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); @@ -34,55 +34,55 @@ a.low,!1));c&&(this.offset+=8);return this},d.writeUInt64=d.writeUint64,d.readUi d.readFloat32;d.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view.setFloat64(b-8,a,this.littleEndian); c&&(this.offset+=8);return this};d.writeDouble=d.writeFloat64;d.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=this.view.getFloat64(a,this.littleEndian);b&&(this.offset+=8);return a};d.readDouble=d.readFloat64;f.MAX_VARINT32_BYTES=5;f.calculateVarint32= function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};f.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};f.zigZagDecode32=function(a){return a>>>1^-(a&1)|0};d.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}var e=f.calculateVarint32(a),k;b+=e;k=this.buffer.byteLength;b>k&&this.resize((k*=2)>b?k:b);b-=e;for(a>>>=0;128<=a;)k=a&127|128,this.view.setUint8(b++,k),a>>>=7;this.view.setUint8(b++,a);return c?(this.offset=b,this):e};d.writeVarint32ZigZag=function(a,b){return this.writeVarint32(f.zigZagEncode32(a),b)};d.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,e=0,k;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;k=this.view.getUint8(a++);5>c&&(e|=(k&127)<<7*c);++c}while(0!==(k&128));e|=0;return b?(this.offset=a,e):{value:e,length:c}};d.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=f.zigZagDecode32(a.value):a=f.zigZagDecode32(a);return a}; +b+" (+0) <= "+this.buffer.byteLength);}var e=f.calculateVarint32(a);b+=e;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=e;for(a>>>=0;128<=a;)d=a&127|128,this.view.setUint8(b++,d),a>>>=7;this.view.setUint8(b++,a);return c?(this.offset=b,this):e};d.writeVarint32ZigZag=function(a,b){return this.writeVarint32(f.zigZagEncode32(a),b)};d.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=0,e=0;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;var d=this.view.getUint8(a++);5>c&&(e|=(d&127)<<7*c);++c}while(0!==(d&128));e|=0;return b?(this.offset=a,e):{value:e,length:c}};d.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=f.zigZagDecode32(a.value):a=f.zigZagDecode32(a);return a}; h&&(f.MAX_VARINT64_BYTES=10,f.calculateVarint64=function(a){"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));var b=a.toInt()>>>0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},f.zigZagEncode64=function(a){"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()}, f.zigZagDecode64=function(a){"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(h.ONE).toSigned().negate()).toSigned()},d.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)"); -if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var e=f.calculateVarint64(a),k=a.toInt()>>>0,d=a.shiftRightUnsigned(28).toInt()>>>0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=e;var p=this.buffer.byteLength;b>p&&this.resize((p*= -2)>b?p:b);b-=e;switch(e){case 10:this.view.setUint8(b+9,g>>>7&1);case 9:this.view.setUint8(b+8,9!==e?g|128:g&127);case 8:this.view.setUint8(b+7,8!==e?d>>>21|128:d>>>21&127);case 7:this.view.setUint8(b+6,7!==e?d>>>14|128:d>>>14&127);case 6:this.view.setUint8(b+5,6!==e?d>>>7|128:d>>>7&127);case 5:this.view.setUint8(b+4,5!==e?d|128:d&127);case 4:this.view.setUint8(b+3,4!==e?k>>>21|128:k>>>21&127);case 3:this.view.setUint8(b+2,3!==e?k>>>14|128:k>>>14&127);case 2:this.view.setUint8(b+1,2!==e?k>>>7|128: -k>>>7&127);case 1:this.view.setUint8(b,1!==e?k|128:k&127)}return c?(this.offset+=e,this):e},d.writeVarint64ZigZag=function(a,b){return this.writeVarint64(f.zigZagEncode64(a),b)},d.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=0,k=0,d= -0,g=0,g=this.view.getUint8(a++),e=g&127;if(g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),k=g&127,g&128&&(g=this.view.getUint8(a++),k|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),k|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),k|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),d=g&127,g&128&&(g=this.view.getUint8(a++),d|=(g&127)<<7,g&128))))))))))throw Error("Buffer overrun"); -e=h.fromBits(e|k<<28,k>>>4|d<<24,!1);return b?(this.offset=a,e):{value:e,length:a-c}},d.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof h?a.value=f.zigZagDecode64(a.value):a=f.zigZagDecode64(a);return a});d.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var e,d=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(e=0;e>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}d=n.calculateUTF16asUTF8(m(a))[1];b+=d+1;e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d+1;n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));this.view.setUint8(b++,0);return c?(this.offset=b,this):d};d.readCString=function(a){var b="undefined"===typeof a; -b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e,d=-1;n.decodeUTF8toUTF16(function(){if(0===d)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);d=this.view.getUint8(a++);return 0===d?null:d}.bind(this),e=s(),!0);return b?(this.offset=a,e()): -{string:e(),length:a-c}};d.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,d;d=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];b+=4+d;var f=this.buffer.byteLength;b>f&&this.resize((f*= -2)>b?f:b);b-=4+d;this.view.setUint32(b,d,this.littleEndian);b+=4;n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+4+d)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+d));return c?(this.offset=b,this):b-e};d.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -a+" (+4) <= "+this.buffer.byteLength);}var c=a,e=this.readUint32(a),e=this.readUTF8String(e,f.METRICS_BYTES,a+=4);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};f.METRICS_CHARS="c";f.METRICS_BYTES="b";d.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}var e,d=b;e=n.calculateUTF16asUTF8(m(a))[1];b+=e;var f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=e;n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));return c?(this.offset=b,this):b-d};d.writeString=d.writeUTF8String;f.calculateUTF8Chars=function(a){return n.calculateUTF16asUTF8(m(a))[0]};f.calculateUTF8Bytes=function(a){return n.calculateUTF16asUTF8(m(a))[1]};f.calculateString=f.calculateUTF8Bytes;d.readUTF8String=function(a, -b,c){"number"===typeof b&&(c=b,b=void 0);var e="undefined"===typeof c;e&&(c=this.offset);"undefined"===typeof b&&(b=f.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var d=0,l=c,g;if(b===f.METRICS_CHARS){g=s(); -n.decodeUTF8(function(){return d>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength); -}var p=c+a;n.decodeUTF8toUTF16(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,d,l;d=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];l=f.calculateVarint32(d);b+=l+d;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=l+d;b+=this.writeVarint32(d,b);n.encodeUTF16toUTF8(m(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+d+l)throw RangeError("Illegal range: Truncated data, "+ -b+" == "+(b+d+l));return c?(this.offset=b,this):b-e};d.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=this.readVarint32(a),e=this.readUTF8String(e.value,f.METRICS_BYTES,a+=e.length);a+=e.length;return b?(this.offset=a,e.string):{string:e.string, +if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var e=f.calculateVarint64(a),d=a.toInt()>>>0,g=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;b+=e;var k=this.buffer.byteLength;b>k&&this.resize((k*= +2)>b?k:b);b-=e;switch(e){case 10:this.view.setUint8(b+9,a>>>7&1);case 9:this.view.setUint8(b+8,9!==e?a|128:a&127);case 8:this.view.setUint8(b+7,8!==e?g>>>21|128:g>>>21&127);case 7:this.view.setUint8(b+6,7!==e?g>>>14|128:g>>>14&127);case 6:this.view.setUint8(b+5,6!==e?g>>>7|128:g>>>7&127);case 5:this.view.setUint8(b+4,5!==e?g|128:g&127);case 4:this.view.setUint8(b+3,4!==e?d>>>21|128:d>>>21&127);case 3:this.view.setUint8(b+2,3!==e?d>>>14|128:d>>>14&127);case 2:this.view.setUint8(b+1,2!==e?d>>>7|128: +d>>>7&127);case 1:this.view.setUint8(b,1!==e?d|128:d&127)}return c?(this.offset+=e,this):e},d.writeVarint64ZigZag=function(a,b){return this.writeVarint64(f.zigZagEncode64(a),b)},d.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=0,d=0;var g= +this.view.getUint8(a++);var f=g&127;if(g&128&&(g=this.view.getUint8(a++),f|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),f|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),f|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),e=g&127,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<7,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<14,g&128&&(g=this.view.getUint8(a++),e|=(g&127)<<21,g&128&&(g=this.view.getUint8(a++),d=g&127,g&128&&(g=this.view.getUint8(a++),d|=(g&127)<<7,g&128))))))))))throw Error("Buffer overrun"); +f=h.fromBits(f|e<<28,e>>>4|d<<24,!1);return b?(this.offset=a,f):{value:f,length:a-c}},d.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof h?a.value=f.zigZagDecode64(a.value):a=f.zigZagDecode64(a);return a});d.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var e,d=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(e=0;e>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}d=m.calculateUTF16asUTF8(l(a))[1];b+=d+1;e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d+1;m.encodeUTF16toUTF8(l(a),function(a){this.view.setUint8(b++,a)}.bind(this));this.view.setUint8(b++,0);return c?(this.offset=b,this):d};d.readCString=function(a){var b="undefined"===typeof a; +b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e,d=-1;m.decodeUTF8toUTF16(function(){if(0===d)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);d=this.view.getUint8(a++);return 0===d?null:d}.bind(this),e=t(),!0);return b?(this.offset=a,e()): +{string:e(),length:a-c}};d.writeIString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b;var d=m.calculateUTF16asUTF8(l(a),this.noAssert)[1];b+=4+d;var g=this.buffer.byteLength;b>g&& +this.resize((g*=2)>b?g:b);b-=4+d;this.view.setUint32(b,d,this.littleEndian);b+=4;m.encodeUTF16toUTF8(l(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+4+d)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+d));return c?(this.offset=b,this):b-e};d.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +a+" (+4) <= "+this.buffer.byteLength);}var c=a,e=this.readUint32(a);e=this.readUTF8String(e,f.METRICS_BYTES,a+=4);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};f.METRICS_CHARS="c";f.METRICS_BYTES="b";d.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}var e=b;var d=m.calculateUTF16asUTF8(l(a))[1];b+=d;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=d;m.encodeUTF16toUTF8(l(a),function(a){this.view.setUint8(b++,a)}.bind(this));return c?(this.offset=b,this):b-e};d.writeString=d.writeUTF8String;f.calculateUTF8Chars=function(a){return m.calculateUTF16asUTF8(l(a))[0]};f.calculateUTF8Bytes=function(a){return m.calculateUTF16asUTF8(l(a))[1]};f.calculateString=f.calculateUTF8Bytes;d.readUTF8String=function(a, +b,c){"number"===typeof b&&(c=b,b=void 0);var e="undefined"===typeof c;e&&(c=this.offset);"undefined"===typeof b&&(b=f.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}var d=0,g=c;if(b===f.METRICS_CHARS){var k= +t();m.decodeUTF8(function(){return d>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+"+a+") <= "+this.buffer.byteLength); +}var p=c+a;m.decodeUTF8toUTF16(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b;var d=m.calculateUTF16asUTF8(l(a),this.noAssert)[1];var g=f.calculateVarint32(d);b+=g+d;var k=this.buffer.byteLength;b>k&&this.resize((k*=2)>b?k:b);b-=g+d;b+=this.writeVarint32(d,b);m.encodeUTF16toUTF8(l(a),function(a){this.view.setUint8(b++,a)}.bind(this));if(b!==e+d+g)throw RangeError("Illegal range: Truncated data, "+ +b+" == "+(b+d+g));return c?(this.offset=b,this):b-e};d.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=this.readVarint32(a);e=this.readUTF8String(e.value,f.METRICS_BYTES,a+=e.length);a+=e.length;return b?(this.offset=a,e.string):{string:e.string, length:a-c}};d.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var d=this.buffer.byteLength;c>d&&this.resize((d*=2)> -c?d:c);(new Uint8Array(this.buffer,c-b)).set((new Uint8Array(a.buffer)).subarray(a.offset,a.limit));a.offset+=b;e&&(this.offset+=b);return this};d.appendTo=function(a,b){a.append(this,b);return this};d.assert=function(a){this.noAssert=!a;return this};d.capacity=function(){return this.buffer.byteLength};d.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};d.clone=function(a){var b=new f(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength), -(new Uint8Array(b.buffer)).set(this.buffer),b.view=new DataView(b.buffer)):(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};d.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a|| -a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=t,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c);(new Uint8Array(e)).set((new Uint8Array(this.buffer)).subarray(a,b));this.buffer=e;this.view=new DataView(e);0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this}; -d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new f(0,this.littleEndian,this.noAssert);var c=b-a,e=new f(c,this.littleEndian, -this.noAssert);e.offset=0;e.limit=c;0<=e.markedOffset&&(e.markedOffset-=a);this.copyTo(e,0,a,b);return e};d.copyTo=function(a,b,c,e){var d,l;if(!this.noAssert&&!f.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(l="undefined"===typeof b)?a.offset:b|0;c=(d="undefined"===typeof c)?this.offset:c|0;e="undefined"===typeof e?this.limit:e|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||e>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+ -c+" <= "+this.buffer.byteLength);var g=e-c;if(0===g)return a;a.ensureCapacity(b+g);(new Uint8Array(a.buffer)).set((new Uint8Array(this.buffer)).subarray(c,e),b);d&&(this.offset+=g);l&&(a.offset+=g);return this};d.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};d.fill=function(a,b,c){var e="undefined"===typeof b;e&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer"); +b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=u,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c);(new Uint8Array(e)).set((new Uint8Array(this.buffer)).subarray(a,b));this.buffer=e;this.view=new DataView(e);0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit= +c;return this};d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new f(0,this.littleEndian,this.noAssert);var c=b-a,e=new f(c, +this.littleEndian,this.noAssert);e.offset=0;e.limit=c;0<=e.markedOffset&&(e.markedOffset-=a);this.copyTo(e,0,a,b);return e};d.copyTo=function(a,b,c,e){var d,g;if(!this.noAssert&&!f.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(g="undefined"===typeof b)?a.offset:b|0;c=(d="undefined"===typeof c)?this.offset:c|0;e="undefined"===typeof e?this.limit:e|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||e>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+ +c+" <= "+this.buffer.byteLength);var k=e-c;if(0===k)return a;a.ensureCapacity(b+k);(new Uint8Array(a.buffer)).set((new Uint8Array(this.buffer)).subarray(c,e),b);d&&(this.offset+=k);g&&(a.offset+=k);return this};d.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};d.fill=function(a,b,c){var e="undefined"===typeof b;e&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};d.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean"); this.littleEndian=!!a;return this};d.LE=function(a){this.littleEndian="undefined"!==typeof a?!!a:!0;return this};d.BE=function(a){this.littleEndian="undefined"!==typeof a?!a:!1;return this};d.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -c+" (+0) <= "+this.buffer.byteLength);}a instanceof f||(a=f.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var d=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+a);}this.buffer.byteLength>>=0; if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call((new Uint8Array(this.buffer)).subarray(a,b));this.view=new DataView(this.buffer);return this};d.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+ a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};d.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};d.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer; -if(b===c)return t;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};d.toArrayBuffer=d.toBuffer;d.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b, -c);case "debug":return this.toDebug();case "columns":return this.toColumns();default:throw Error("Unsupported encoding: "+a);}};var v=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],e=0,d=b.length;e>2&63]),d=(e&3)<<4,null!==(e= -a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<<2,null!==(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.decode=function(a,b){function e(a){throw Error("Illegal character code: "+a);}for(var d,k,f;null!==(d=a());)if(k=c[d],"undefined"===typeof k&&e(d),null!==(d=a())&&(f=c[d],"undefined"===typeof f&&e(d),b(k<<2>>>0|(f&48)>>4),null!==(d=a()))){k=c[d];if("undefined"===typeof k)if(61===d)break;else e(d);b((f&15)<<4>>>0|(k&60)>>2);if(null!==(d=a())){f=c[d];if("undefined"=== -typeof f)if(61===d)break;else e(d);b((k&3)<<6>>>0|f)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;v.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+("0"+e.toString(16).toUpperCase()):d+e.toString(16).toUpperCase(),a&&(f+=32 -e?String.fromCharCode(e):"."));++b;if(a&&0d.length;)d+=" ";g+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset?d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";g+=d+f+"\n"}return a?g:d};f.fromDebug=function(a,b,c){var e=a.length;b=new f((e+1)/3|0,b,c);for(var d=0,l=0,g,h=!1,m=!1,n=!1,r=!1,q=!1;d< -e;){switch(g=a.charAt(d++)){case "!":if(!c){if(m||n||r){q=!0;break}m=n=r=!0}b.offset=b.markedOffset=b.limit=l;h=!1;break;case "|":if(!c){if(m||r){q=!0;break}m=r=!0}b.offset=b.limit=l;h=!1;break;case "[":if(!c){if(m||n){q=!0;break}m=n=!0}b.offset=b.markedOffset=l;h=!1;break;case "<":if(!c){if(m){q=!0;break}m=!0}b.offset=l;h=!1;break;case "]":if(!c){if(r||n){q=!0;break}r=n=!0}b.limit=b.markedOffset=l;h=!1;break;case ">":if(!c){if(r){q=!0;break}r=!0}b.limit=l;h=!1;break;case "'":if(!c){if(n){q=!0;break}n= -!0}b.markedOffset=l;h=!1;break;case " ":h=!1;break;default:if(!c&&h){q=!0;break}g=parseInt(g+a.charAt(d++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),e;ae?c.push("0",e.toString(16)):c.push(e.toString(16));return c.join("")}; -f.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var e=a.length;b=new f(e/2|0,b);for(var d,h=0,g=0;hd||255e?c(e&127):(2048>e?c(e>>6&31|192):(65536>e?c(e>>12&15|224):(c(e>>18&7|240),c(e>>12&63|128)),c(e>>6&63|128)),c(e&63|128)),e=null},decodeUTF8:function(a,c){for(var e,d,f,g,h=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(e=a());)if(0===(e&128))c(e);else if(192===(e&224))null===(d=a())&&h([e,d]),c((e&31)<<6|d&63);else if(224===(e&240))null!==(d=a())&&null!== -(f=a())||h([e,d,f]),c((e&15)<<12|(d&63)<<6|f&63);else if(240===(e&248))null!==(d=a())&&null!==(f=a())&&null!==(g=a())||h([e,d,f,g]),c((e&7)<<18|(d&63)<<12|(f&63)<<6|g&63);else throw RangeError("Illegal starting byte: "+e);},UTF16toUTF8:function(a,c){for(var e,d=null;null!==(e=null!==d?d:a());)55296<=e&&57343>=e&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(e-55296)+d-56320+65536),d=null):c(e);null!==d&&c(d)},UTF8toUTF16:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null}); -for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},encodeUTF16toUTF8:function(b,c){a.UTF16toUTF8(b,function(b){a.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(b,c){a.decodeUTF8(b,function(b){a.UTF8toUTF16(b,c)})},calculateCodePoint:function(a){return 128>a?1:2048>a?2:65536>a?3:4},calculateUTF8:function(a){for(var c,d=0;null!==(c=a());)d+=128>c?1:2048>c?2:65536>c?3:4;return d},calculateUTF16asUTF8:function(b){var c=0,d=0;a.UTF16toUTF8(b,function(a){++c; -d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{n.decodeUTF8toUTF16(function(){return a< -b?this.view.getUint8(a++):null}.bind(this),c=s())}catch(d){if(a!==b)throw RangeError("Illegal range: Truncated data, "+a+" != "+b);}return c()};f.fromUTF8=function(a,b,c){if(!c&&"string"!==typeof a)throw TypeError("Illegal str: Not a string");var d=new f(n.calculateUTF16asUTF8(m(a),!0)[1],b,c),h=0;n.encodeUTF16toUTF8(m(a),function(a){d.view.setUint8(h++,a)});d.limit=h;return d};return f}); +if(b===c)return u;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};d.toArrayBuffer=d.toBuffer;d.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB_DataView(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b, +c);case "debug":return this.toDebug();case "columns":return this.toColumns();default:throw Error("Unsupported encoding: "+a);}};var w=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],e=0,d=b.length;e>2&63]),d=(e&3)<<4,null!==(e= +a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<<2,null!==(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.decode=function(a,b){function e(a){throw Error("Illegal character code: "+a);}for(var d,f,g;null!==(d=a());)if(f=c[d],"undefined"===typeof f&&e(d),null!==(d=a())&&(g=c[d],"undefined"===typeof g&&e(d),b(f<<2>>>0|(g&48)>>4),null!==(d=a()))){f=c[d];if("undefined"===typeof f)if(61===d)break;else e(d);b((g&15)<<4>>>0|(f&60)>>2);if(null!==(d=a())){g=c[d];if("undefined"=== +typeof g)if(61===d)break;else e(d);b((f&3)<<6>>>0|g)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;w.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+("0"+e.toString(16).toUpperCase()):d+e.toString(16).toUpperCase(),a&&(f+=32e? +String.fromCharCode(e):"."));++b;if(a&&0d.length;)d+=" ";k+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset?d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";k+=d+f+"\n"}return a?k:d};f.fromDebug=function(a,b,c){var e=a.length;b=new f((e+1)/3|0,b,c);for(var d=0,g=0,k,h=!1,l=!1,m=!1,r=!1,q=!1;d< +e;){switch(k=a.charAt(d++)){case "!":if(!c){if(l||m||r){q=!0;break}l=m=r=!0}b.offset=b.markedOffset=b.limit=g;h=!1;break;case "|":if(!c){if(l||r){q=!0;break}l=r=!0}b.offset=b.limit=g;h=!1;break;case "[":if(!c){if(l||m){q=!0;break}l=m=!0}b.offset=b.markedOffset=g;h=!1;break;case "<":if(!c){if(l){q=!0;break}l=!0}b.offset=g;h=!1;break;case "]":if(!c){if(r||m){q=!0;break}r=m=!0}b.limit=b.markedOffset=g;h=!1;break;case ">":if(!c){if(r){q=!0;break}r=!0}b.limit=g;h=!1;break;case "'":if(!c){if(m){q=!0;break}m= +!0}b.markedOffset=g;h=!1;break;case " ":h=!1;break;default:if(!c&&h)q=!0;else{k=parseInt(k+a.charAt(d++),16);if(!c&&(isNaN(k)||0>k||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),d;ad?c.push("0",d.toString(16)):c.push(d.toString(16));return c.join("")}; +f.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var d=a.length;b=new f(d/2|0,b);for(var h,g=0,k=0;gh||255b?c(b&127):(2048>b?c(b>>6&31|192):65536>b?(c(b>>12&15|224),c(b>>6&63|128)):(c(b>>18&7|240),c(b>>12&63|128),c(b>>6&63|128)),c(b&63|128)),b=null},decodeUTF8:function(a,c){for(var b,d,f,h,l=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(b=a());)if(0===(b&128))c(b);else if(192===(b&224))null===(d=a())&&l([b,d]),c((b&31)<<6|d&63);else if(224===(b&240))null!== +(d=a())&&null!==(f=a())||l([b,d,f]),c((b&15)<<12|(d&63)<<6|f&63);else if(240===(b&248))null!==(d=a())&&null!==(f=a())&&null!==(h=a())||l([b,d,f,h]),c((b&7)<<18|(d&63)<<12|(f&63)<<6|h&63);else throw RangeError("Illegal starting byte: "+b);},UTF16toUTF8:function(a,c){for(var b,d=null;null!==(b=null!==d?d:a());)55296<=b&&57343>=b&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(b-55296)+d-56320+65536),d=null):c(b);null!==d&&c(d)},UTF8toUTF16:function(a,c){var b=null;"number"===typeof a&&(b=a,a=function(){return null}); +for(;null!==b||null!==(b=a());)65535>=b?c(b):(b-=65536,c((b>>10)+55296),c(b%1024+56320)),b=null},encodeUTF16toUTF8:function(b,c){a.UTF16toUTF8(b,function(b){a.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(b,c){a.decodeUTF8(b,function(b){a.UTF8toUTF16(b,c)})},calculateCodePoint:function(a){return 128>a?1:2048>a?2:65536>a?3:4},calculateUTF8:function(a){for(var b,d=0;null!==(b=a());)d+=128>b?1:2048>b?2:65536>b?3:4;return d},calculateUTF16asUTF8:function(b){var c=0,d=0;a.UTF16toUTF8(b,function(a){++c; +d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.decodeUTF8toUTF16(function(){return a< +b?this.view.getUint8(a++):null}.bind(this),c=t())}catch(e){if(a!==b)throw RangeError("Illegal range: Truncated data, "+a+" != "+b);}return c()};f.fromUTF8=function(a,b,c){if(!c&&"string"!==typeof a)throw TypeError("Illegal str: Not a string");var d=new f(m.calculateUTF16asUTF8(l(a),!0)[1],b,c),h=0;m.encodeUTF16toUTF8(l(a),function(a){d.view.setUint8(h++,a)});d.limit=h;return d};return f}); diff --git a/dist/bytebuffer-dataview.min.js.gz b/dist/bytebuffer-dataview.min.js.gz index e3f6b364138142e25133ea719bc693333f4654ff..885731f2beff7297b17c72bee1473795fd53a683 100644 GIT binary patch literal 7955 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 JHb#V`008ktrpW*R literal 7988 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 diff --git a/dist/bytebuffer-dataview.min.map b/dist/bytebuffer-dataview.min.map index d357379..775e3ca 100644 --- a/dist/bytebuffer-dataview.min.map +++ b/dist/bytebuffer-dataview.min.map @@ -2,7 +2,7 @@ "version":3, "file":"", "lineCount":88, -"mappings":"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", +"mappings":"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", "sources":["dist/bytebuffer-dataview.js"], -"names":["global","factory","define","require","module","Long","e","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","buffer","EMPTY_BUFFER","ArrayBuffer","view","DataView","offset","markedOffset","limit","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","value","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","Uint8Array","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","setUint8","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","m","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeBytes","append","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","setInt8","readInt8","ByteBufferPrototype.readInt8","getInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","getUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","setInt16","writeShort","readInt16","ByteBufferPrototype.readInt16","getInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","setUint16","writeUInt16","readUint16","ByteBufferPrototype.readUint16","getUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","setInt32","writeInt","readInt32","ByteBufferPrototype.readInt32","getInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","setUint32","writeUInt32","readUint32","ByteBufferPrototype.readUint32","getUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","low","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","setFloat32","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","getFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","setFloat64","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","getFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","b","capacity10","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","c","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","arrayView","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","log","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","isNaN","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","a","d","indexOf","name","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8"] +"names":["global","factory","define","require","module","Long","e","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","buffer","EMPTY_BUFFER","ArrayBuffer","view","DataView","offset","markedOffset","limit","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","value","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","Uint8Array","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","setUint8","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","m","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","setInt8","readInt8","ByteBufferPrototype.readInt8","getInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","getUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","setInt16","writeShort","readInt16","ByteBufferPrototype.readInt16","getInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","setUint16","writeUInt16","readUint16","ByteBufferPrototype.readUint16","getUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","setInt32","writeInt","readInt32","ByteBufferPrototype.readInt32","getInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","setUint32","writeUInt32","readUint32","ByteBufferPrototype.readUint32","getUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","low","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","setFloat32","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","getFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","setFloat64","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","getFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","capacity10","b","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","c","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","append","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","writeBytes","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","arrayView","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","log","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","isNaN","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","a","d","indexOf","name","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8"] } diff --git a/dist/bytebuffer-node.js b/dist/bytebuffer-node.js index 93a7c46..70ba4f3 100644 --- a/dist/bytebuffer-node.js +++ b/dist/bytebuffer-node.js @@ -503,18 +503,6 @@ module.exports = (function() { return slice; }; - /** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its - * offsets will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; // types/ints/int8 @@ -2277,6 +2265,18 @@ module.exports = (function() { return this; }; + /** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its + * offsets will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; /** * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to * disable them if your code already makes sure that everything is valid. diff --git a/dist/bytebuffer.js b/dist/bytebuffer.js index bb3e3aa..8362fa3 100644 --- a/dist/bytebuffer.js +++ b/dist/bytebuffer.js @@ -508,18 +508,6 @@ return slice; }; - /** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ - ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; // types/ints/int8 @@ -2422,6 +2410,18 @@ return this; }; + /** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ + ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; /** * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to * disable them if your code already makes sure that everything is valid. diff --git a/dist/bytebuffer.min.js b/dist/bytebuffer.min.js index d9dfea7..11c798e 100644 --- a/dist/bytebuffer.min.js +++ b/dist/bytebuffer.min.js @@ -4,90 +4,91 @@ Released under the Apache License, Version 2.0 see: https://github.com/dcodeIO/bytebuffer.js for details */ -(function(k,m){if("function"===typeof define&&define.amd)define(["long"],m);else if("function"===typeof require&&"object"===typeof module&&module&&module.exports){var r=module,s;try{s=require("long")}catch(u){}s=m(s);r.exports=s}else(k.dcodeIO=k.dcodeIO||{}).ByteBuffer=m(k.dcodeIO.Long)})(this,function(k){function m(a){var b=0;return function(){return b>1,h=-7;f=c?f-1:0;var k=c?-1:1,p=a[b+f];f+=k;c=p&(1<<-h)-1;p>>=-h;for(h+=l;0>=-h;for(h+=d;0>1,p=23===f? -Math.pow(2,-24)-Math.pow(2,-77):0;l=d?0:l-1;var m=d?1:-1,n=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,d=h):(d=Math.floor(Math.log(b)/Math.LN2),1>b*(g=Math.pow(2,-d))&&(d--,g*=2),b=1<=d+k?b+p/g:b+p*Math.pow(2,1-k),2<=b*g&&(d++,g/=2),d+k>=h?(b=0,d=h):1<=d+k?(b=(b*g-1)*Math.pow(2,f),d+=k):(b=b*Math.pow(2,k-1)*Math.pow(2,f),d=0));for(;8<=f;a[c+l]=b&255,l+=m,b/=256,f-=8);d=d<a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?v:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};h.VERSION="5.0.1";h.LITTLE_ENDIAN=!0;h.BIG_ENDIAN=!1;h.DEFAULT_CAPACITY=16;h.DEFAULT_ENDIAN=h.BIG_ENDIAN;h.DEFAULT_NOASSERT=!1;h.Long=k|| -null;var e=h.prototype;Object.defineProperty(e,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var v=new ArrayBuffer(0),w=String.fromCharCode;h.accessor=function(){return Uint8Array};h.allocate=function(a,b,c){return new h(a,b,c)};h.concat=function(a,b,c,d){if("boolean"===typeof b||"string"!==typeof b)d=c,c=b,b=void 0;for(var f=0,l=0,g=a.length,e;l=e||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=e);b.limit=b.offset;b.offset=0;return b};h.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};h.type=function(){return ArrayBuffer};h.wrap=function(a,b,c,d){"string"!==typeof b&&(d=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return h.fromBase64(a,c);case "hex":return h.fromHex(a,c);case "binary":return h.fromBinary(a,c);case "utf8":return h.fromUTF8(a, -c);case "debug":return h.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(h.isByteBuffer(a))return b=e.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new h(0,c,d),0>>=0;if(0>b||b+0> -this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f=a.length,e=f>>3,g=0,h;for(b+=this.writeVarint32(f,b);e--;)h=!!a[g++]&1|(!!a[g++]&1)<<1|(!!a[g++]&1)<<2|(!!a[g++]&1)<<3|(!!a[g++]&1)<<4|(!!a[g++]&1)<<5|(!!a[g++]&1)<<6|(!!a[g++]&1)<<7,this.writeByte(h,b++);if(g>3,e=0,g=[];for(a+=c.length;f--;)c=this.readByte(a++),g[e++]=!!(c&1),g[e++]=!!(c&2),g[e++]=!!(c&4),g[e++]=!!(c&8),g[e++]=!!(c&16),g[e++]=!!(c&32),g[e++]=!!(c&64),g[e++]=!!(c&128);if(e>f++&1);b&&(this.offset=a);return g};e.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+"+a+") <= "+this.buffer.byteLength);}var d=this.slice(b,b+a);c&&(this.offset+=a);return d};e.writeBytes=e.append;e.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); -}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);this.view[b-1]=a;c&&(this.offset+=1);return this};e.writeByte=e.writeInt8;e.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];128===(a&128)&&(a=-(255-a+1));b&&(this.offset+= -1);return a};e.readByte=e.readInt8;e.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b); -this.view[b-1]=a;c&&(this.offset+=1);return this};e.writeUInt8=e.writeUint8;e.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];b&&(this.offset+=1);return a};e.readUInt8=e.readUint8;e.writeInt16=function(a,b){var c="undefined"===typeof b; -c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>> -8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeShort=e.writeInt16;e.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);32768===(c&32768)&& -(c=-(65535-c+1));b&&(this.offset+=2);return c};e.readShort=e.readInt16;e.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var d=this.buffer.byteLength; -b>d&&this.resize((d*=2)>b?d:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};e.writeUInt16=e.writeUint16;e.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength); -}var c=0;this.littleEndian?(c=this.view[a],c|=this.view[a+1]<<8):(c=this.view[a]<<8,c|=this.view[a+1]);b&&(this.offset+=2);return c};e.readUInt16=e.readUint16;e.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeInt=e.writeInt32;e.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a% -1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c|0};e.readInt=e.readInt32;e.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset); -if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]= -a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};e.writeUInt32=e.writeUint32;e.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=0;this.littleEndian?(c=this.view[a+ -2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0):(c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);b&&(this.offset+=4);return c};e.readUInt32=e.readUint32;k&&(e.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!== -typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]= -f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeLong=e.writeInt64,e.readInt64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)"); -a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian?(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0); -a=new k(c,d,!1);b&&(this.offset+=8);return a},e.readLong=e.readInt64,e.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=8;var d=a.low,f=a.high;this.littleEndian?(this.view[b+3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255,b+=4,this.view[b+3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255, -this.view[b+3]=f&255,b+=4,this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);c&&(this.offset+=8);return this},e.writeUInt64=e.writeUint64,e.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}var c=0,d=0;this.littleEndian? -(c=this.view[a+2]<<16,c|=this.view[a+1]<<8,c|=this.view[a],c+=this.view[a+3]<<24>>>0,a+=4,d=this.view[a+2]<<16,d|=this.view[a+1]<<8,d|=this.view[a],d+=this.view[a+3]<<24>>>0):(d=this.view[a+1]<<16,d|=this.view[a+2]<<8,d|=this.view[a+3],d+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0);a=new k(c,d,!0);b&&(this.offset+=8);return a},e.readUInt64=e.readUint64);e.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!== -typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);u(this.view,a,b-4,this.littleEndian,23,4);c&&(this.offset+=4);return this};e.writeFloat=e.writeFloat32;e.readFloat32=function(a){var b="undefined"===typeof a;b&& -(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=s(this.view,a,this.littleEndian,23,4);b&&(this.offset+=4);return a};e.readFloat=e.readFloat32;e.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)"); -if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);u(this.view,a,b-8,this.littleEndian,52,8);c&&(this.offset+=8);return this};e.writeDouble=e.writeFloat64;e.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!== -a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=s(this.view,a,this.littleEndian,52,8);b&&(this.offset+=8);return a};e.readDouble=e.readFloat64;h.MAX_VARINT32_BYTES=5;h.calculateVarint32=function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};h.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};h.zigZagDecode32=function(a){return a>>>1^-(a& -1)|0};e.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=h.calculateVarint32(a),f;b+=d;f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b); -b-=d;for(a>>>=0;128<=a;)f=a&127|128,this.view[b++]=f,a>>>=7;this.view[b++]=a;return c?(this.offset=b,this):d};e.writeVarint32ZigZag=function(a,b){return this.writeVarint32(h.zigZagEncode32(a),b)};e.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength); -}var c=0,d=0,f;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;f=this.view[a++];5>c&&(d|=(f&127)<<7*c);++c}while(0!==(f&128));d|=0;return b?(this.offset=a,d):{value:d,length:c}};e.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=h.zigZagDecode32(a.value):a=h.zigZagDecode32(a);return a};k&&(h.MAX_VARINT64_BYTES=10,h.calculateVarint64=function(a){"number"===typeof a?a=k.fromNumber(a):"string"===typeof a&&(a=k.fromString(a));var b=a.toInt()>>> -0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},h.zigZagEncode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},h.zigZagDecode64=function(a){"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&& -(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(k.ONE).toSigned().negate()).toSigned()},e.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=k.fromNumber(a);else if("string"===typeof a)a=k.fromString(a);else if(!(a&&a instanceof k))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=k.fromNumber(a,!1):"string"===typeof a?a=k.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var d=h.calculateVarint64(a),f=a.toInt()>>>0,e=a.shiftRightUnsigned(28).toInt()>>>0,g=a.shiftRightUnsigned(56).toInt()>>>0;b+=d;var t=this.buffer.byteLength;b>t&&this.resize((t*=2)>b?t:b);b-=d;switch(d){case 10:this.view[b+9]=g>>>7&1;case 9:this.view[b+8]=9!==d?g|128:g&127;case 8:this.view[b+7]=8!==d?e>>>21|128:e>>>21&127;case 7:this.view[b+6]= -7!==d?e>>>14|128:e>>>14&127;case 6:this.view[b+5]=6!==d?e>>>7|128:e>>>7&127;case 5:this.view[b+4]=5!==d?e|128:e&127;case 4:this.view[b+3]=4!==d?f>>>21|128:f>>>21&127;case 3:this.view[b+2]=3!==d?f>>>14|128:f>>>14&127;case 2:this.view[b+1]=2!==d?f>>>7|128:f>>>7&127;case 1:this.view[b]=1!==d?f|128:f&127}return c?(this.offset+=d,this):d},e.writeVarint64ZigZag=function(a,b){return this.writeVarint64(h.zigZagEncode64(a),b)},e.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=0,f=0,e=0,g=0,g=this.view[a++],d=g&127;if(g&128&&(g=this.view[a++],d|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<14,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],d|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++], -f=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<14,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],f|=(g&127)<<21,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e=g&127,g&128||this.noAssert&&"undefined"===typeof g)&&(g=this.view[a++],e|=(g&127)<<7,g&128||this.noAssert&&"undefined"===typeof g))throw Error("Buffer overrun");d=k.fromBits(d|f<<28,f>>>4| -e<<24,!1);return b?(this.offset=a,d):{value:d,length:a-c}},e.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof k?a.value=h.zigZagDecode64(a.value):a=h.zigZagDecode64(a);return a});e.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var d,f=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(d=0;d>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}f=n.calculateUTF16asUTF8(m(a))[1];b+=f+1;d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=f+1;n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));this.view[b++]=0;return c?(this.offset=b,this):f};e.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d,f=-1;n.decodeUTF8toUTF16(function(){if(0===f)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);f=this.view[a++];return 0===f?null:f}.bind(this),d=r(),!0);return b?(this.offset=a,d()):{string:d(),length:a-c}};e.writeIString=function(a,b){var c= -"undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f;f=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];b+=4+f;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4+f;this.littleEndian?(this.view[b+ -3]=f>>>24&255,this.view[b+2]=f>>>16&255,this.view[b+1]=f>>>8&255,this.view[b]=f&255):(this.view[b]=f>>>24&255,this.view[b+1]=f>>>16&255,this.view[b+2]=f>>>8&255,this.view[b+3]=f&255);b+=4;n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+4+f)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+f));return c?(this.offset=b,this):b-d};e.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ -a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,d=this.readUint32(a),d=this.readUTF8String(d,h.METRICS_BYTES,a+=4);a+=d.length;return b?(this.offset=a,d.string):{string:d.string,length:a-c}};h.METRICS_CHARS="c";h.METRICS_BYTES="b";e.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+ -b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d,f=b;d=n.calculateUTF16asUTF8(m(a))[1];b+=d;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d;n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));return c?(this.offset=b,this):b-f};e.writeString=e.writeUTF8String;h.calculateUTF8Chars=function(a){return n.calculateUTF16asUTF8(m(a))[0]};h.calculateUTF8Bytes=function(a){return n.calculateUTF16asUTF8(m(a))[1]}; -h.calculateString=h.calculateUTF8Bytes;e.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var d="undefined"===typeof c;d&&(c=this.offset);"undefined"===typeof b&&(b=h.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+ -this.buffer.byteLength);}var f=0,e=c,g;if(b===h.METRICS_CHARS){g=r();n.decodeUTF8(function(){return f>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ -c+" (+"+a+") <= "+this.buffer.byteLength);}var k=c+a;n.decodeUTF8toUTF16(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var d=b,f,e;f=n.calculateUTF16asUTF8(m(a),this.noAssert)[1];e=h.calculateVarint32(f);b+=e+f;var g=this.buffer.byteLength;b>g&&this.resize((g*=2)>b?g:b);b-=e+f;b+=this.writeVarint32(f,b);n.encodeUTF16toUTF8(m(a),function(a){this.view[b++]=a}.bind(this));if(b!==d+f+e)throw RangeError("Illegal range: Truncated data, "+ -b+" == "+(b+f+e));return c?(this.offset=b,this):b-d};e.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,d=this.readVarint32(a),d=this.readUTF8String(d.value,h.METRICS_BYTES,a+=d.length);a+=d.length;return b?(this.offset=a,d.string):{string:d.string, -length:a-c}};e.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a=h.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var f=this.buffer.byteLength;c>f&&this.resize((f*=2)> -c?f:c);c-=b;this.view.set(a.view.subarray(a.offset,a.limit),c);a.offset+=b;d&&(this.offset+=b);return this};e.appendTo=function(a,b){a.append(this,b);return this};e.assert=function(a){this.noAssert=!a;return this};e.capacity=function(){return this.buffer.byteLength};e.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};e.clone=function(a){var b=new h(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength),b.view=new Uint8Array(b.buffer)): -(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};e.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+ -b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=v,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var d=new ArrayBuffer(c),f=new Uint8Array(d);f.set(this.view.subarray(a,b));this.buffer=d;this.view=f;0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};e.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!== -typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new h(0,this.littleEndian,this.noAssert);var c=b-a,d=new h(c,this.littleEndian,this.noAssert);d.offset=0;d.limit=c;0<=d.markedOffset&&(d.markedOffset-=a);this.copyTo(d,0,a,b);return d};e.copyTo=function(a, -b,c,d){var f,e;if(!this.noAssert&&!h.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(e="undefined"===typeof b)?a.offset:b|0;c=(f="undefined"===typeof c)?this.offset:c|0;d="undefined"===typeof d?this.limit:d|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||d>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+c+" <= "+this.buffer.byteLength);var g=d-c;if(0===g)return a;a.ensureCapacity(b+g); -a.view.set(this.view.subarray(c,d),b);f&&(this.offset+=g);e&&(a.offset+=g);return this};e.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};e.fill=function(a,b,c){var d="undefined"===typeof b;d&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};e.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};e.LE=function(a){this.littleEndian="undefined"!==typeof a?!!a:!0;return this};e.BE=function(a){this.littleEndian= -"undefined"!==typeof a?!a:!1;return this};e.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var d="undefined"===typeof c;d&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof h||(a=h.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;var f=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+a);}if(this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call(this.view.subarray(a,b));return this}; -e.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};e.slice=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer"); -a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};e.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer"); -c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return v;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};e.toArrayBuffer=e.toBuffer;e.toString=function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+ -")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug();case "columns":return this.toColumns();default:throw Error("Unsupported encoding: "+a);}};var x=function(){for(var a={},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113, -114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],d=0,f=b.length;d>2&63]),f=(d&3)<<4,null!==(d=a())?(f|=d>>4&15,c(b[(f|d>>4&15)&63]),f=(d&15)<<2,null!==(d=a())?(c(b[(f|d>>6&3)&63]),c(b[d&63])):(c(b[f&63]),c(61))):(c(b[f&63]),c(61),c(61))};a.decode=function(a,b){function d(a){throw Error("Illegal character code: "+a);}for(var f,e,h;null!==(f=a());)if(e=c[f],"undefined"===typeof e&&d(f),null!==(f=a())&& -(h=c[f],"undefined"===typeof h&&d(f),b(e<<2>>>0|(h&48)>>4),null!==(f=a()))){e=c[f];if("undefined"===typeof e)if(61===f)break;else d(f);b((h&15)<<4>>>0|(e&60)>>2);if(null!==(f=a())){h=c[f];if("undefined"===typeof h)if(61===f)break;else d(f);b((e&3)<<6>>>0|h)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)};return a}();e.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity|| -a>b)throw RangeError("begin, end");var c;x.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],d=[];ad?f+("0"+d.toString(16).toUpperCase()):f+d.toString(16).toUpperCase(),a&&(e+=32d?String.fromCharCode(d):"."));++b;if(a&&0f.length;)f+=" ";g+=f+e+"\n";f=e=""}f=b===this.offset&&b===this.limit?f+(b===this.markedOffset?"!":"|"):b===this.offset?f+(b===this.markedOffset?"[":"<"):b===this.limit?f+(b===this.markedOffset?"]":">"):f+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!== -f){for(;51>f.length;)f+=" ";g+=f+e+"\n"}return a?g:f};h.fromDebug=function(a,b,c){var d=a.length;b=new h((d+1)/3|0,b,c);for(var f=0,e=0,g,k=!1,m=!1,n=!1,p=!1,q=!1;f":if(!c){if(p){q=!0;break}p=!0}b.limit=e;k=!1;break;case "'":if(!c){if(n){q=!0;break}n=!0}b.markedOffset=e;k=!1;break;case " ":k=!1;break;default:if(!c&&k){q=!0;break}g=parseInt(g+a.charAt(f++),16);if(!c&&(isNaN(g)||0>g||255>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+ -this.buffer.byteLength);}for(var c=Array(b-a),d;ad?c.push("0",d.toString(16)):c.push(d.toString(16));return c.join("")};h.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var d=a.length;b=new h(d/2|0,b);for(var f,e=0,g=0;ef||255d?c(d&127):(2048>d?c(d>>6&31|192):(65536>d?c(d>>12&15|224):(c(d>>18&7|240),c(d>>12&63|128)),c(d>>6&63|128)),c(d&63|128)),d=null},decodeUTF8:function(a,c){for(var d,f,e,g,h=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(d=a());)if(0=== -(d&128))c(d);else if(192===(d&224))null===(f=a())&&h([d,f]),c((d&31)<<6|f&63);else if(224===(d&240))null!==(f=a())&&null!==(e=a())||h([d,f,e]),c((d&15)<<12|(f&63)<<6|e&63);else if(240===(d&248))null!==(f=a())&&null!==(e=a())&&null!==(g=a())||h([d,f,e,g]),c((d&7)<<18|(f&63)<<12|(e&63)<<6|g&63);else throw RangeError("Illegal starting byte: "+d);},UTF16toUTF8:function(a,c){for(var d,e=null;null!==(d=null!==e?e:a());)55296<=d&&57343>=d&&null!==(e=a())&&56320<=e&&57343>=e?(c(1024*(d-55296)+e-56320+65536), -e=null):c(d);null!==e&&c(e)},UTF8toUTF16:function(a,c){var d=null;"number"===typeof a&&(d=a,a=function(){return null});for(;null!==d||null!==(d=a());)65535>=d?c(d):(d-=65536,c((d>>10)+55296),c(d%1024+56320)),d=null},encodeUTF16toUTF8:function(b,c){a.UTF16toUTF8(b,function(b){a.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(b,c){a.decodeUTF8(b,function(b){a.UTF8toUTF16(b,c)})},calculateCodePoint:function(a){return 128>a?1:2048>a?2:65536>a?3:4},calculateUTF8:function(a){for(var c,d=0;null!==(c=a());)d+= -128>c?1:2048>c?2:65536>c?3:4;return d},calculateUTF16asUTF8:function(b){var c=0,d=0;a.UTF16toUTF8(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();e.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ -a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{n.decodeUTF8toUTF16(function(){return a>1,n=-7;k=c?k-1:0;var h=c?-1:1,q=a[b+k];k+=h;c=q&(1<<-n)-1;q>>=-n;for(n+=f;0>=-n;for(n+=e;0>1,q=23===k?Math.pow(2, +-24)-Math.pow(2,-77):0;f=e?0:f-1;var l=e?1:-1,m=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,e=n):(e=Math.floor(Math.log(b)/Math.LN2),1>b*(d=Math.pow(2,-e))&&(e--,d*=2),b=1<=e+h?b+q/d:b+q*Math.pow(2,1-h),2<=b*d&&(e++,d/=2),e+h>=n?(b=0,e=n):1<=e+h?(b=(b*d-1)*Math.pow(2,k),e+=h):(b=b*Math.pow(2,h-1)*Math.pow(2,k),e=0));for(;8<=k;a[c+f]=b&255,f+=l,b/=256,k-=8);e=e<a)throw RangeError("Illegal capacity");b=!!b;c=!!c}this.buffer=0===a?w:new ArrayBuffer(a);this.view=0===a?null:new Uint8Array(this.buffer);this.offset=0;this.markedOffset=-1;this.limit=a;this.littleEndian=b;this.noAssert=c};g.VERSION="5.0.1";g.LITTLE_ENDIAN=!0;g.BIG_ENDIAN=!1;g.DEFAULT_CAPACITY=16;g.DEFAULT_ENDIAN=g.BIG_ENDIAN;g.DEFAULT_NOASSERT=!1;g.Long=h||null;var d= +g.prototype;Object.defineProperty(d,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var w=new ArrayBuffer(0),x=String.fromCharCode;g.accessor=function(){return Uint8Array};g.allocate=function(a,b,c){return new g(a,b,c)};g.concat=function(a,b,c,e){if("boolean"===typeof b||"string"!==typeof b)e=c,c=b,b=void 0;for(var k=0,f=0,d=a.length,u;f=u||(b.view.set(c.view.subarray(c.offset,c.limit),b.offset),b.offset+=u);b.limit=b.offset;b.offset=0;return b};g.isByteBuffer=function(a){return!0===(a&&a.__isByteBuffer__)};g.type=function(){return ArrayBuffer};g.wrap=function(a,b,c,e){"string"!==typeof b&&(e=c,c=b,b=void 0);if("string"===typeof a)switch("undefined"===typeof b&&(b="utf8"),b){case "base64":return g.fromBase64(a,c);case "hex":return g.fromHex(a,c);case "binary":return g.fromBinary(a,c);case "utf8":return g.fromUTF8(a, +c);case "debug":return g.fromDebug(a,c);default:throw Error("Unsupported encoding: "+b);}if(null===a||"object"!==typeof a)throw TypeError("Illegal buffer");if(g.isByteBuffer(a))return b=d.clone.call(a),b.markedOffset=-1,b;if(a instanceof Uint8Array)b=new g(0,c,e),0>>=0;if(0>b||b+0> +this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b,k=a.length,f=k>>3,d=0;for(b+=this.writeVarint32(k,b);f--;){var g=!!a[d++]&1|(!!a[d++]&1)<<1|(!!a[d++]&1)<<2|(!!a[d++]&1)<<3|(!!a[d++]&1)<<4|(!!a[d++]&1)<<5|(!!a[d++]&1)<<6|(!!a[d++]&1)<<7;this.writeByte(g,b++)}if(d>3,f=0,d=[];for(a+=c.length;k--;)c=this.readByte(a++),d[f++]=!!(c&1),d[f++]=!!(c&2),d[f++]=!!(c&4),d[f++]=!!(c&8),d[f++]=!!(c&16),d[f++]=!!(c&32),d[f++]=!!(c&64),d[f++]=!!(c&128);if(f>k++&1);b&&(this.offset=a);return d};d.readBytes=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b|| +b+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+a+") <= "+this.buffer.byteLength);}b=this.slice(b,b+a);c&&(this.offset+=a);return b};d.writeInt8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);this.view[b-1]=a;c&&(this.offset+=1);return this};d.writeByte=d.writeInt8;d.readInt8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];128=== +(a&128)&&(a=-(255-a+1));b&&(this.offset+=1);return a};d.readByte=d.readInt8;d.writeUint8=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=1;var e=this.buffer.byteLength; +b>e&&this.resize((e*=2)>b?e:b);this.view[b-1]=a;c&&(this.offset+=1);return this};d.writeUInt8=d.writeUint8;d.readUint8=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}a=this.view[a];b&&(this.offset+=1);return a};d.readUInt8=d.readUint8;d.writeInt16=function(a, +b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]= +a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};d.writeShort=d.writeInt16;d.readInt16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+2) <= "+this.buffer.byteLength);}if(this.littleEndian){var c=this.view[a];c|=this.view[a+1]<<8}else c=this.view[a]<< +8,c|=this.view[a+1];32768===(c&32768)&&(c=-(65535-c+1));b&&(this.offset+=2);return c};d.readShort=d.readInt16;d.writeUint16=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength); +}b+=2;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=2;this.littleEndian?(this.view[b+1]=(a&65280)>>>8,this.view[b]=a&255):(this.view[b]=(a&65280)>>>8,this.view[b+1]=a&255);c&&(this.offset+=2);return this};d.writeUInt16=d.writeUint16;d.readUint16=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +a+" (+2) <= "+this.buffer.byteLength);}if(this.littleEndian){var c=this.view[a];c|=this.view[a+1]<<8}else c=this.view[a]<<8,c|=this.view[a+1];b&&(this.offset+=2);return c};d.readUInt16=d.readUint16;d.writeInt32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};d.writeInt=d.writeInt32;d.readInt32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a% +1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}if(this.littleEndian){var c=this.view[a+2]<<16;c|=this.view[a+1]<<8;c|=this.view[a];c+=this.view[a+3]<<24>>>0}else c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0;b&&(this.offset+=4);return c|0};d.readInt=d.readInt32;d.writeUint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset); +if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=4;this.littleEndian?(this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]= +a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255);c&&(this.offset+=4);return this};d.writeUInt32=d.writeUint32;d.readUint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}if(this.littleEndian){var c=this.view[a+ +2]<<16;c|=this.view[a+1]<<8;c|=this.view[a];c+=this.view[a+3]<<24>>>0}else c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0;b&&(this.offset+=4);return c};d.readUInt32=d.readUint32;h&&(d.writeInt64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!== +typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;e=a.low;a=a.high;this.littleEndian?(this.view[b+3]=e>>>24&255,this.view[b+2]=e>>>16&255,this.view[b+1]=e>>>8&255,this.view[b]=e&255,b+=4,this.view[b+3]=a>>> +24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+3]=a&255,b+=4,this.view[b]=e>>>24&255,this.view[b+1]=e>>>16&255,this.view[b+2]=e>>>8&255,this.view[b+3]=e&255);c&&(this.offset+=8);return this},d.writeLong=d.writeInt64,d.readInt64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)"); +a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}if(this.littleEndian){var c=this.view[a+2]<<16;c|=this.view[a+1]<<8;c|=this.view[a];c+=this.view[a+3]<<24>>>0;a+=4;var e=this.view[a+2]<<16;e|=this.view[a+1]<<8;e|=this.view[a];e+=this.view[a+3]<<24>>>0}else e=this.view[a+1]<<16,e|=this.view[a+2]<<8,e|=this.view[a+3],e+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>> +0;a=new h(c,e,!1);b&&(this.offset+=8);return a},d.readLong=d.readInt64,d.writeUint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=8;e=a.low;a=a.high;this.littleEndian?(this.view[b+3]=e>>>24&255,this.view[b+2]=e>>>16&255,this.view[b+1]=e>>>8&255,this.view[b]=e&255,b+=4,this.view[b+3]=a>>>24&255,this.view[b+2]=a>>>16&255,this.view[b+1]=a>>>8&255,this.view[b]=a&255):(this.view[b]=a>>>24&255,this.view[b+1]=a>>>16&255,this.view[b+2]=a>>>8&255,this.view[b+ +3]=a&255,b+=4,this.view[b]=e>>>24&255,this.view[b+1]=e>>>16&255,this.view[b+2]=e>>>8&255,this.view[b+3]=e&255);c&&(this.offset+=8);return this},d.writeUInt64=d.writeUint64,d.readUint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}if(this.littleEndian){var c= +this.view[a+2]<<16;c|=this.view[a+1]<<8;c|=this.view[a];c+=this.view[a+3]<<24>>>0;a+=4;var e=this.view[a+2]<<16;e|=this.view[a+1]<<8;e|=this.view[a];e+=this.view[a+3]<<24>>>0}else e=this.view[a+1]<<16,e|=this.view[a+2]<<8,e|=this.view[a+3],e+=this.view[a]<<24>>>0,a+=4,c=this.view[a+1]<<16,c|=this.view[a+2]<<8,c|=this.view[a+3],c+=this.view[a]<<24>>>0;a=new h(c,e,!0);b&&(this.offset+=8);return a},d.readUInt64=d.readUint64);d.writeFloat32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset); +if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=4;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);y(this.view,a,b-4,this.littleEndian,23,4);c&&(this.offset+=4);return this};d.writeFloat=d.writeFloat32;d.readFloat32=function(a){var b= +"undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}a=v(this.view,a,this.littleEndian,23,4);b&&(this.offset+=4);return a};d.readFloat=d.readFloat32;d.writeFloat64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a)throw TypeError("Illegal value: "+ +a+" (not a number)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}b+=8;var e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);y(this.view,a,b-8,this.littleEndian,52,8);c&&(this.offset+=8);return this};d.writeDouble=d.writeFloat64;d.readFloat64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+8) <= "+this.buffer.byteLength);}a=v(this.view,a,this.littleEndian,52,8);b&&(this.offset+=8);return a};d.readDouble=d.readFloat64;g.MAX_VARINT32_BYTES=5;g.calculateVarint32=function(a){a>>>=0;return 128>a?1:16384>a?2:2097152>a?3:268435456>a?4:5};g.zigZagEncode32=function(a){return((a|=0)<<1^a>>31)>>>0};g.zigZagDecode32=function(a){return a>>> +1^-(a&1)|0};d.writeVarint32=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal value: "+a+" (not an integer)");a|=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=g.calculateVarint32(a);b+=e;var k=this.buffer.byteLength;b>k&&this.resize((k*=2)> +b?k:b);b-=e;for(a>>>=0;128<=a;)k=a&127|128,this.view[b++]=k,a>>>=7;this.view[b++]=a;return c?(this.offset=b,this):e};d.writeVarint32ZigZag=function(a,b){return this.writeVarint32(g.zigZagEncode32(a),b)};d.readVarint32=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength); +}var c=0,e=0;do{if(!this.noAssert&&a>this.limit)throw a=Error("Truncated"),a.truncated=!0,a;var k=this.view[a++];5>c&&(e|=(k&127)<<7*c);++c}while(0!==(k&128));e|=0;return b?(this.offset=a,e):{value:e,length:c}};d.readVarint32ZigZag=function(a){a=this.readVarint32(a);"object"===typeof a?a.value=g.zigZagDecode32(a.value):a=g.zigZagDecode32(a);return a};h&&(g.MAX_VARINT64_BYTES=10,g.calculateVarint64=function(a){"number"===typeof a?a=h.fromNumber(a):"string"===typeof a&&(a=h.fromString(a));var b=a.toInt()>>> +0,c=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;return 0==a?0==c?16384>b?128>b?1:2:2097152>b?3:4:16384>c?128>c?5:6:2097152>c?7:8:128>a?9:10},g.zigZagEncode64=function(a){"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());return a.shiftLeft(1).xor(a.shiftRight(63)).toUnsigned()},g.zigZagDecode64=function(a){"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&& +(a=a.toSigned());return a.shiftRightUnsigned(1).xor(a.and(h.ONE).toSigned().negate()).toSigned()},d.writeVarint64=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"===typeof a)a=h.fromNumber(a);else if("string"===typeof a)a=h.fromString(a);else if(!(a&&a instanceof h))throw TypeError("Illegal value: "+a+" (not an integer or Long)");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +b+" (+0) <= "+this.buffer.byteLength);}"number"===typeof a?a=h.fromNumber(a,!1):"string"===typeof a?a=h.fromString(a,!1):!1!==a.unsigned&&(a=a.toSigned());var e=g.calculateVarint64(a),k=a.toInt()>>>0,f=a.shiftRightUnsigned(28).toInt()>>>0;a=a.shiftRightUnsigned(56).toInt()>>>0;b+=e;var d=this.buffer.byteLength;b>d&&this.resize((d*=2)>b?d:b);b-=e;switch(e){case 10:this.view[b+9]=a>>>7&1;case 9:this.view[b+8]=9!==e?a|128:a&127;case 8:this.view[b+7]=8!==e?f>>>21|128:f>>>21&127;case 7:this.view[b+6]= +7!==e?f>>>14|128:f>>>14&127;case 6:this.view[b+5]=6!==e?f>>>7|128:f>>>7&127;case 5:this.view[b+4]=5!==e?f|128:f&127;case 4:this.view[b+3]=4!==e?k>>>21|128:k>>>21&127;case 3:this.view[b+2]=3!==e?k>>>14|128:k>>>14&127;case 2:this.view[b+1]=2!==e?k>>>7|128:k>>>7&127;case 1:this.view[b]=1!==e?k|128:k&127}return c?(this.offset+=e,this):e},d.writeVarint64ZigZag=function(a,b){return this.writeVarint64(g.zigZagEncode64(a),b)},d.readVarint64=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=0,k=0;var d=this.view[a++];var g=d&127;if(d&128&&(d=this.view[a++],g|=(d&127)<<7,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],g|=(d&127)<<14,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],g|=(d&127)<<21,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++], +e=d&127,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],e|=(d&127)<<7,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],e|=(d&127)<<14,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],e|=(d&127)<<21,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],k=d&127,d&128||this.noAssert&&"undefined"===typeof d)&&(d=this.view[a++],k|=(d&127)<<7,d&128||this.noAssert&&"undefined"===typeof d))throw Error("Buffer overrun");g=h.fromBits(g|e<<28,e>>>4| +k<<24,!1);return b?(this.offset=a,g):{value:g,length:a-c}},d.readVarint64ZigZag=function(a){(a=this.readVarint64(a))&&a.value instanceof h?a.value=g.zigZagDecode64(a.value):a=g.zigZagDecode64(a);return a});d.writeCString=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);var e,d=a.length;if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");for(e=0;e>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}d=m.calculateUTF16asUTF8(l(a))[1];b+=d+1;e=this.buffer.byteLength;b>e&&this.resize((e*=2)>b?e:b);b-=d+1;m.encodeUTF16toUTF8(l(a),function(a){this.view[b++]=a}.bind(this));this.view[b++]=0;return c?(this.offset=b,this):d};d.readCString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!== +typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e,d=-1;m.decodeUTF8toUTF16(function(){if(0===d)return null;if(a>=this.limit)throw RangeError("Illegal range: Truncated data, "+a+" < "+this.limit);d=this.view[a++];return 0===d?null:d}.bind(this),e=t(),!0);return b?(this.offset=a,e()):{string:e(),length:a-c}};d.writeIString=function(a,b){var c= +"undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b;var d=m.calculateUTF16asUTF8(l(a),this.noAssert)[1];b+=4+d;var f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=4+d;this.littleEndian?(this.view[b+ +3]=d>>>24&255,this.view[b+2]=d>>>16&255,this.view[b+1]=d>>>8&255,this.view[b]=d&255):(this.view[b]=d>>>24&255,this.view[b+1]=d>>>16&255,this.view[b+2]=d>>>8&255,this.view[b+3]=d&255);b+=4;m.encodeUTF16toUTF8(l(a),function(a){this.view[b++]=a}.bind(this));if(b!==e+4+d)throw RangeError("Illegal range: Truncated data, "+b+" == "+(b+4+d));return c?(this.offset=b,this):b-e};d.readIString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+ +a+" (not an integer)");a>>>=0;if(0>a||a+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+4) <= "+this.buffer.byteLength);}var c=a,e=this.readUint32(a);e=this.readUTF8String(e,g.METRICS_BYTES,a+=4);a+=e.length;return b?(this.offset=a,e.string):{string:e.string,length:a-c}};g.METRICS_CHARS="c";g.METRICS_BYTES="b";d.writeUTF8String=function(a,b){var c="undefined"===typeof b;c&&(b=this.offset);if(!this.noAssert){if("number"!==typeof b||0!==b%1)throw TypeError("Illegal offset: "+ +b+" (not an integer)");b>>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b;var d=m.calculateUTF16asUTF8(l(a))[1];b+=d;var f=this.buffer.byteLength;b>f&&this.resize((f*=2)>b?f:b);b-=d;m.encodeUTF16toUTF8(l(a),function(a){this.view[b++]=a}.bind(this));return c?(this.offset=b,this):b-e};d.writeString=d.writeUTF8String;g.calculateUTF8Chars=function(a){return m.calculateUTF16asUTF8(l(a))[0]};g.calculateUTF8Bytes=function(a){return m.calculateUTF16asUTF8(l(a))[1]}; +g.calculateString=g.calculateUTF8Bytes;d.readUTF8String=function(a,b,c){"number"===typeof b&&(c=b,b=void 0);var e="undefined"===typeof c;e&&(c=this.offset);"undefined"===typeof b&&(b=g.METRICS_CHARS);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+ +this.buffer.byteLength);}var d=0,f=c;if(b===g.METRICS_CHARS){var p=t();m.decodeUTF8(function(){return d>>=0;if(0>c||c+a>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+ +c+" (+"+a+") <= "+this.buffer.byteLength);}var h=c+a;m.decodeUTF8toUTF16(function(){return c>>=0;if(0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+0) <= "+this.buffer.byteLength);}var e=b;var d=m.calculateUTF16asUTF8(l(a),this.noAssert)[1];var f=g.calculateVarint32(d);b+=f+d;var p=this.buffer.byteLength;b>p&&this.resize((p*=2)>b?p:b);b-=f+d;b+=this.writeVarint32(d,b);m.encodeUTF16toUTF8(l(a),function(a){this.view[b++]=a}.bind(this));if(b!==e+d+f)throw RangeError("Illegal range: Truncated data, "+ +b+" == "+(b+d+f));return c?(this.offset=b,this):b-e};d.readVString=function(a){var b="undefined"===typeof a;b&&(a=this.offset);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal offset: "+a+" (not an integer)");a>>>=0;if(0>a||a+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+1) <= "+this.buffer.byteLength);}var c=a,e=this.readVarint32(a);e=this.readUTF8String(e.value,g.METRICS_BYTES,a+=e.length);a+=e.length;return b?(this.offset=a,e.string):{string:e.string, +length:a-c}};d.append=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof g||(a=g.wrap(a,b));b=a.limit-a.offset;if(0>=b)return this;c+=b;var d=this.buffer.byteLength;c>d&&this.resize((d*=2)> +c?d:c);c-=b;this.view.set(a.view.subarray(a.offset,a.limit),c);a.offset+=b;e&&(this.offset+=b);return this};d.appendTo=function(a,b){a.append(this,b);return this};d.writeBytes=d.append;d.assert=function(a){this.noAssert=!a;return this};d.capacity=function(){return this.buffer.byteLength};d.clear=function(){this.offset=0;this.limit=this.buffer.byteLength;this.markedOffset=-1;return this};d.clone=function(a){var b=new g(0,this.littleEndian,this.noAssert);a?(b.buffer=new ArrayBuffer(this.buffer.byteLength), +b.view=new Uint8Array(b.buffer)):(b.buffer=this.buffer,b.view=this.view);b.offset=this.offset;b.markedOffset=this.markedOffset;b.limit=this.limit;return b};d.compact=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ +a+" <= "+b+" <= "+this.buffer.byteLength);}if(0===a&&b===this.buffer.byteLength)return this;var c=b-a;if(0===c)return this.buffer=w,this.view=null,0<=this.markedOffset&&(this.markedOffset-=a),this.limit=this.offset=0,this;var e=new ArrayBuffer(c),d=new Uint8Array(e);d.set(this.view.subarray(a,b));this.buffer=e;this.view=d;0<=this.markedOffset&&(this.markedOffset-=a);this.offset=0;this.limit=c;return this};d.copy=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit); +if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return new g(0,this.littleEndian,this.noAssert);var c=b-a,e=new g(c,this.littleEndian,this.noAssert);e.offset=0;e.limit=c;0<=e.markedOffset&&(e.markedOffset-=a);this.copyTo(e,0,a, +b);return e};d.copyTo=function(a,b,c,e){var d,f;if(!this.noAssert&&!g.isByteBuffer(a))throw TypeError("Illegal target: Not a ByteBuffer");b=(f="undefined"===typeof b)?a.offset:b|0;c=(d="undefined"===typeof c)?this.offset:c|0;e="undefined"===typeof e?this.limit:e|0;if(0>b||b>a.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+b+" <= "+a.buffer.byteLength);if(0>c||e>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+c+" <= "+this.buffer.byteLength);var p=e-c;if(0=== +p)return a;a.ensureCapacity(b+p);a.view.set(this.view.subarray(c,e),b);d&&(this.offset+=p);f&&(a.offset+=p);return this};d.ensureCapacity=function(a){var b=this.buffer.byteLength;return ba?b:a):this};d.fill=function(a,b,c){var e="undefined"===typeof b;e&&(b=this.offset);"string"===typeof a&&0>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal end: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(b>=c)return this;for(;b>>=0;if(0>a||a+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+a+" (+0) <= "+this.buffer.byteLength);}this.markedOffset=a;return this};d.order=function(a){if(!this.noAssert&&"boolean"!==typeof a)throw TypeError("Illegal littleEndian: Not a boolean");this.littleEndian=!!a;return this};d.LE=function(a){this.littleEndian="undefined"!==typeof a?!!a:!0; +return this};d.BE=function(a){this.littleEndian="undefined"!==typeof a?!a:!1;return this};d.prepend=function(a,b,c){if("number"===typeof b||"string"!==typeof b)c=b,b=void 0;var e="undefined"===typeof c;e&&(c=this.offset);if(!this.noAssert){if("number"!==typeof c||0!==c%1)throw TypeError("Illegal offset: "+c+" (not an integer)");c>>>=0;if(0>c||c+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+c+" (+0) <= "+this.buffer.byteLength);}a instanceof g||(a=g.wrap(a,b));b=a.limit-a.offset; +if(0>=b)return this;var d=b-c;if(0a)throw RangeError("Illegal capacity: 0 <= "+ +a);}if(this.buffer.byteLength>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+ +a+" <= "+b+" <= "+this.buffer.byteLength);}if(a===b)return this;Array.prototype.reverse.call(this.view.subarray(a,b));return this};d.skip=function(a){if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal length: "+a+" (not an integer)");a|=0}var b=this.offset+a;if(!this.noAssert&&(0>b||b>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+a+" <= "+this.buffer.byteLength);this.offset=b;return this};d.slice=function(a,b){"undefined"===typeof a&&(a= +this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer");a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c=this.clone();c.offset=a;c.limit=b;return c};d.toBuffer=function(a){var b=this.offset,c=this.limit;if(!this.noAssert){if("number"!== +typeof b||0!==b%1)throw TypeError("Illegal offset: Not an integer");b>>>=0;if("number"!==typeof c||0!==c%1)throw TypeError("Illegal limit: Not an integer");c>>>=0;if(0>b||b>c||c>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+b+" <= "+c+" <= "+this.buffer.byteLength);}if(!a&&0===b&&c===this.buffer.byteLength)return this.buffer;if(b===c)return w;a=new ArrayBuffer(c-b);(new Uint8Array(a)).set((new Uint8Array(this.buffer)).subarray(b,c),0);return a};d.toArrayBuffer=d.toBuffer;d.toString= +function(a,b,c){if("undefined"===typeof a)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";"number"===typeof a&&(c=b=a="utf8");switch(a){case "utf8":return this.toUTF8(b,c);case "base64":return this.toBase64(b,c);case "hex":return this.toHex(b,c);case "binary":return this.toBinary(b,c);case "debug":return this.toDebug();case "columns":return this.toColumns();default:throw Error("Unsupported encoding: "+a);}};var z=function(){for(var a= +{},b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],c=[],e=0,d=b.length;e>2&63]),d=(e&3)<<4,null!==(e=a())?(d|=e>>4&15,c(b[(d|e>>4&15)&63]),d=(e&15)<<2,null!==(e=a())?(c(b[(d|e>>6&3)&63]),c(b[e&63])):(c(b[d&63]),c(61))):(c(b[d&63]),c(61),c(61))};a.decode=function(a, +b){function e(a){throw Error("Illegal character code: "+a);}for(var d,k,f;null!==(d=a());)if(k=c[d],"undefined"===typeof k&&e(d),null!==(d=a())&&(f=c[d],"undefined"===typeof f&&e(d),b(k<<2>>>0|(f&48)>>4),null!==(d=a()))){k=c[d];if("undefined"===typeof k)if(61===d)break;else e(d);b((f&15)<<4>>>0|(k&60)>>2);if(null!==(d=a())){f=c[d];if("undefined"===typeof f)if(61===d)break;else e(d);b((k&3)<<6>>>0|f)}}};a.test=function(a){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a)}; +return a}();d.toBase64=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);a|=0;b|=0;if(0>a||b>this.capacity||a>b)throw RangeError("begin, end");var c;z.encode(function(){return aa||b>this.capacity()||a>b)throw RangeError("begin, end");if(a===b)return"";for(var c=[],e=[];ae?d+("0"+e.toString(16).toUpperCase()):d+e.toString(16).toUpperCase(),a&&(f+=32e?String.fromCharCode(e):"."));++b;if(a&&0d.length;)d+=" ";g+=d+f+"\n";d=f=""}d=b===this.offset&&b===this.limit?d+(b===this.markedOffset?"!":"|"):b===this.offset? +d+(b===this.markedOffset?"[":"<"):b===this.limit?d+(b===this.markedOffset?"]":">"):d+(b===this.markedOffset?"'":a||0!==b&&b!==c?" ":"")}if(a&&" "!==d){for(;51>d.length;)d+=" ";g+=d+f+"\n"}return a?g:d};g.fromDebug=function(a,b,c){var e=a.length;b=new g((e+1)/3|0,b,c);for(var d=0,f=0,h,l=!1,n=!1,m=!1,q=!1,r=!1;d":if(!c){if(q){r=!0;break}q=!0}b.limit=f;l=!1;break;case "'":if(!c){if(m){r=!0;break}m=!0}b.markedOffset=f;l=!1;break;case " ":l=!1;break;default:if(!c&&l)r=!0;else{h=parseInt(h+a.charAt(d++),16);if(!c&&(isNaN(h)||0>h||255>>=0;if("number"!==typeof b|| +0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}for(var c=Array(b-a),e;ae?c.push("0",e.toString(16)):c.push(e.toString(16));return c.join("")};g.fromHex=function(a,b,c){if(!c){if("string"!==typeof a)throw TypeError("Illegal str: Not a string");if(0!==a.length%2)throw TypeError("Illegal str: Length not a multiple of 2");}var e=a.length;b=new g(e/ +2|0,b);for(var d,f=0,h=0;fd||255b?c(b&127):(2048>b?c(b>>6&31|192):65536>b?(c(b>>12&15|224),c(b>>6&63|128)):(c(b>>18&7|240),c(b>>12&63|128),c(b>>6&63|128)),c(b&63|128)), +b=null},decodeUTF8:function(a,c){for(var b,d,f,g,h=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(b=a());)if(0===(b&128))c(b);else if(192===(b&224))null===(d=a())&&h([b,d]),c((b&31)<<6|d&63);else if(224===(b&240))null!==(d=a())&&null!==(f=a())||h([b,d,f]),c((b&15)<<12|(d&63)<<6|f&63);else if(240===(b&248))null!==(d=a())&&null!==(f=a())&&null!==(g=a())||h([b,d,f,g]),c((b&7)<<18|(d&63)<<12|(f&63)<<6|g&63);else throw RangeError("Illegal starting byte: "+ +b);},UTF16toUTF8:function(a,c){for(var b,d=null;null!==(b=null!==d?d:a());)55296<=b&&57343>=b&&null!==(d=a())&&56320<=d&&57343>=d?(c(1024*(b-55296)+d-56320+65536),d=null):c(b);null!==d&&c(d)},UTF8toUTF16:function(a,c){var b=null;"number"===typeof a&&(b=a,a=function(){return null});for(;null!==b||null!==(b=a());)65535>=b?c(b):(b-=65536,c((b>>10)+55296),c(b%1024+56320)),b=null},encodeUTF16toUTF8:function(b,c){a.UTF16toUTF8(b,function(b){a.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(b,c){a.decodeUTF8(b, +function(b){a.UTF8toUTF16(b,c)})},calculateCodePoint:function(a){return 128>a?1:2048>a?2:65536>a?3:4},calculateUTF8:function(a){for(var b,d=0;null!==(b=a());)d+=128>b?1:2048>b?2:65536>b?3:4;return d},calculateUTF16asUTF8:function(b){var c=0,d=0;a.UTF16toUTF8(b,function(a){++c;d+=128>a?1:2048>a?2:65536>a?3:4});return[c,d]}};return a}();d.toUTF8=function(a,b){"undefined"===typeof a&&(a=this.offset);"undefined"===typeof b&&(b=this.limit);if(!this.noAssert){if("number"!==typeof a||0!==a%1)throw TypeError("Illegal begin: Not an integer"); +a>>>=0;if("number"!==typeof b||0!==b%1)throw TypeError("Illegal end: Not an integer");b>>>=0;if(0>a||a>b||b>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+a+" <= "+b+" <= "+this.buffer.byteLength);}var c;try{m.decodeUTF8toUTF16(function(){return aUYI6YWUF&z+xVHc9zk;yV&9Y)c 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 literal 8658 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 diff --git a/dist/bytebuffer.min.map b/dist/bytebuffer.min.map index 0720f48..f79c45e 100644 --- a/dist/bytebuffer.min.map +++ b/dist/bytebuffer.min.map @@ -1,8 +1,8 @@ { "version":3, "file":"", -"lineCount":93, -"mappings":"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", +"lineCount":94, +"mappings":"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", "sources":["dist/bytebuffer.js"], -"names":["global","factory","define","require","module","Long","e","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ieee754_read","buffer","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","ieee754_write","value","c","rt","abs","isNaN","floor","log","LN2","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","EMPTY_BUFFER","ArrayBuffer","view","Uint8Array","markedOffset","limit","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeBytes","append","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","readInt8","ByteBufferPrototype.readInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","writeShort","readInt16","ByteBufferPrototype.readInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","writeUInt16","readUint16","ByteBufferPrototype.readUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","writeInt","readInt32","ByteBufferPrototype.readInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","writeUInt32","readUint32","ByteBufferPrototype.readUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","lo","low","hi","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","b","capacity10","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","a","indexOf","name","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8"] +"names":["global","factory","define","require","module","Long","e","stringSource","s","i","length","charCodeAt","stringDestination","cs","ps","arguments","join","stringFromCharCode","apply","String","push","Array","prototype","ieee754_read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","m","NaN","Infinity","Math","pow","ieee754_write","value","c","rt","abs","isNaN","floor","log","LN2","ByteBuffer","capacity","littleEndian","noAssert","DEFAULT_CAPACITY","DEFAULT_ENDIAN","DEFAULT_NOASSERT","RangeError","EMPTY_BUFFER","ArrayBuffer","view","Uint8Array","markedOffset","limit","VERSION","LITTLE_ENDIAN","BIG_ENDIAN","ByteBufferPrototype","Object","defineProperty","enumerable","configurable","fromCharCode","accessor","ByteBuffer.accessor","allocate","ByteBuffer.allocate","concat","ByteBuffer.concat","buffers","encoding","undefined","k","isByteBuffer","wrap","bb","bi","set","subarray","ByteBuffer.isByteBuffer","type","ByteBuffer.type","ByteBuffer.wrap","fromBase64","fromHex","fromBinary","fromUTF8","fromDebug","Error","TypeError","clone","call","byteOffset","byteLength","toString","writeBitSet","ByteBufferPrototype.writeBitSet","relative","start","bits","bytes","bit","writeVarint32","writeByte","readBitSet","ByteBufferPrototype.readBitSet","ret","readVarint32","readByte","readBytes","ByteBufferPrototype.readBytes","slice","writeInt8","ByteBufferPrototype.writeInt8","capacity0","resize","readInt8","ByteBufferPrototype.readInt8","writeUint8","ByteBufferPrototype.writeUint8","capacity1","writeUInt8","readUint8","ByteBufferPrototype.readUint8","readUInt8","writeInt16","ByteBufferPrototype.writeInt16","capacity2","writeShort","readInt16","ByteBufferPrototype.readInt16","readShort","writeUint16","ByteBufferPrototype.writeUint16","capacity3","writeUInt16","readUint16","ByteBufferPrototype.readUint16","readUInt16","writeInt32","ByteBufferPrototype.writeInt32","capacity4","writeInt","readInt32","ByteBufferPrototype.readInt32","readInt","writeUint32","ByteBufferPrototype.writeUint32","capacity5","writeUInt32","readUint32","ByteBufferPrototype.readUint32","readUInt32","writeInt64","ByteBufferPrototype.writeInt64","fromNumber","fromString","capacity6","lo","low","hi","high","writeLong","readInt64","ByteBufferPrototype.readInt64","readLong","writeUint64","ByteBufferPrototype.writeUint64","capacity7","writeUInt64","readUint64","ByteBufferPrototype.readUint64","readUInt64","writeFloat32","ByteBufferPrototype.writeFloat32","capacity8","writeFloat","readFloat32","ByteBufferPrototype.readFloat32","readFloat","writeFloat64","ByteBufferPrototype.writeFloat64","capacity9","writeDouble","readFloat64","ByteBufferPrototype.readFloat64","readDouble","MAX_VARINT32_BYTES","calculateVarint32","ByteBuffer.calculateVarint32","zigZagEncode32","ByteBuffer.zigZagEncode32","n","zigZagDecode32","ByteBuffer.zigZagDecode32","ByteBufferPrototype.writeVarint32","size","capacity10","b","writeVarint32ZigZag","ByteBufferPrototype.writeVarint32ZigZag","ByteBufferPrototype.readVarint32","err","readVarint32ZigZag","ByteBufferPrototype.readVarint32ZigZag","val","MAX_VARINT64_BYTES","calculateVarint64","ByteBuffer.calculateVarint64","part0","toInt","part1","shiftRightUnsigned","part2","zigZagEncode64","ByteBuffer.zigZagEncode64","unsigned","toSigned","shiftLeft","xor","shiftRight","toUnsigned","zigZagDecode64","ByteBuffer.zigZagDecode64","and","ONE","negate","writeVarint64","ByteBufferPrototype.writeVarint64","capacity11","writeVarint64ZigZag","ByteBufferPrototype.writeVarint64ZigZag","readVarint64","ByteBufferPrototype.readVarint64","fromBits","readVarint64ZigZag","ByteBufferPrototype.readVarint64ZigZag","writeCString","ByteBufferPrototype.writeCString","str","utfx","calculateUTF16asUTF8","capacity12","encodeUTF16toUTF8","bind","readCString","ByteBufferPrototype.readCString","sd","decodeUTF8toUTF16","writeIString","ByteBufferPrototype.writeIString","capacity13","readIString","ByteBufferPrototype.readIString","len","readUTF8String","METRICS_BYTES","METRICS_CHARS","writeUTF8String","ByteBufferPrototype.writeUTF8String","capacity14","writeString","calculateUTF8Chars","ByteBuffer.calculateUTF8Chars","calculateUTF8Bytes","ByteBuffer.calculateUTF8Bytes","calculateString","ByteBufferPrototype.readUTF8String","metrics","decodeUTF8","cp","UTF8toUTF16","readString","writeVString","ByteBufferPrototype.writeVString","l","capacity15","readVString","ByteBufferPrototype.readVString","append","ByteBufferPrototype.append","source","capacity16","appendTo","ByteBufferPrototype.appendTo","target","writeBytes","assert","ByteBufferPrototype.assert","ByteBufferPrototype.capacity","clear","ByteBufferPrototype.clear","ByteBufferPrototype.clone","copy","compact","ByteBufferPrototype.compact","begin","end","ByteBufferPrototype.copy","copyTo","ByteBufferPrototype.copyTo","targetOffset","sourceOffset","sourceLimit","targetRelative","ensureCapacity","ByteBufferPrototype.ensureCapacity","current","fill","ByteBufferPrototype.fill","flip","ByteBufferPrototype.flip","mark","ByteBufferPrototype.mark","order","ByteBufferPrototype.order","LE","ByteBufferPrototype.LE","BE","ByteBufferPrototype.BE","bigEndian","prepend","ByteBufferPrototype.prepend","diff","prependTo","ByteBufferPrototype.prependTo","printDebug","ByteBufferPrototype.printDebug","out","console","toDebug","remaining","ByteBufferPrototype.remaining","reset","ByteBufferPrototype.reset","ByteBufferPrototype.resize","reverse","ByteBufferPrototype.reverse","skip","ByteBufferPrototype.skip","ByteBufferPrototype.slice","toBuffer","ByteBufferPrototype.toBuffer","forceCopy","toArrayBuffer","ByteBufferPrototype.toString","toUTF8","toBase64","toHex","toBinary","toColumns","lxiv","aout","ain","encode","lxiv.encode","src","dst","t","decode","lxiv.decode","fail","t1","t2","test","lxiv.test","ByteBufferPrototype.toBase64","ByteBuffer.fromBase64","btoa","ByteBuffer.btoa","atob","ByteBuffer.atob","b64","ByteBufferPrototype.toBinary","chars","parts","ByteBuffer.fromBinary","charCode","ByteBufferPrototype.toDebug","columns","hex","asc","toUpperCase","ByteBuffer.fromDebug","j","ch","rs","ho","hm","hl","charAt","parseInt","ByteBufferPrototype.toHex","ByteBuffer.fromHex","substring","isFinite","utfx.encodeUTF8","utfx.decodeUTF8","a","indexOf","name","utfx.UTF16toUTF8","c1","c2","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","utfx.calculateUTF16asUTF8","ByteBufferPrototype.toUTF8","ByteBuffer.fromUTF8"] } diff --git a/src/methods/append.js b/src/methods/append.js index c8fd87d..1dcefa7 100644 --- a/src/methods/append.js +++ b/src/methods/append.js @@ -56,3 +56,20 @@ ByteBufferPrototype.appendTo = function(target, offset) { return this; }; +/** + * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. + * @function + //? if (NODE) { + * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its + * offsets will be modified according to the performed read operation. + //? } else { + * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets + * will be modified according to the performed read operation. + //? } + * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") + * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes + * written if omitted. + * @returns {!ByteBuffer} this + * @expose + */ +ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; diff --git a/src/types/bytes/bytes.js b/src/types/bytes/bytes.js index df17180..18fc3d0 100644 --- a/src/types/bytes/bytes.js +++ b/src/types/bytes/bytes.js @@ -15,20 +15,3 @@ ByteBufferPrototype.readBytes = function(length, offset) { return slice; }; -/** - * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}. - * @function - //? if (NODE) { - * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its - * offsets will be modified according to the performed read operation. - //? } else { - * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets - * will be modified according to the performed read operation. - //? } - * @param {(string|number)=} encoding Encoding if `data` is a string ("base64", "hex", "binary", defaults to "utf8") - * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes - * written if omitted. - * @returns {!ByteBuffer} this - * @expose - */ -ByteBufferPrototype.writeBytes = ByteBufferPrototype.append; diff --git a/tests/suite.js b/tests/suite.js index 1e3829c..d8d7f4b 100644 --- a/tests/suite.js +++ b/tests/suite.js @@ -451,6 +451,20 @@ function makeSuite(ByteBuffer) { test.equal(bb2.toString("debug"), "56 78|"); test.done(); }; + + suite.methods.writeBytes = function(test) { + var bb = ByteBuffer.wrap("\x12\x34"); + var bb2 = ByteBuffer.wrap("\x56\x78"); + bb.offset = 2; + bb.writeBytes(bb2); // Modifies offsets of both + test.equal(bb.toString("debug"), "12 34>56 78<"); + test.equal(bb2.toString("debug"), "56 78|"); + bb2.reset(); + bb.writeBytes(bb2, 1); // Modifies offsets of bb2 only + test.equal(bb.toString("debug"), "12 56>78 78<"); + test.equal(bb2.toString("debug"), "56 78|"); + test.done(); + }; suite.methods.prepend = function(test) { var bb = ByteBuffer.wrap("\x12\x34"), From 4144951c7f583d9394d18487ff0b2b7474b1e775 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 10 Mar 2018 23:18:08 +0100 Subject: [PATCH 9/9] Remove `noAssert` (#89) * Remove `noAssert` argument The `noAssert` argument support dropped in the upcoming Node.js 10.x release. This removes it therefore. * Fix failing test Asserting buffers with strictEqual is not possible. Those are two different objects and can only be compared with deepStrictEqual instead. --- src/types/floats/float32.js | 4 ++-- src/types/floats/float64.js | 8 ++++---- tests/suite.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/types/floats/float32.js b/src/types/floats/float32.js index ab5f4a7..a9208ae 100644 --- a/src/types/floats/float32.js +++ b/src/types/floats/float32.js @@ -22,8 +22,8 @@ ByteBufferPrototype.writeFloat32 = function(value, offset) { //? ENSURE_CAPACITY(4); //? if (NODE) { // FIXME: Is there any way to inline the following in a sane way? this.littleEndian - ? this.buffer.writeFloatLE(value, offset, true) - : this.buffer.writeFloatBE(value, offset, true); + ? this.buffer.writeFloatLE(value, offset) + : this.buffer.writeFloatBE(value, offset); //? } else if (DATAVIEW) this.view.setFloat32(offset, value, this.littleEndian); //? else diff --git a/src/types/floats/float64.js b/src/types/floats/float64.js index 30b3041..5a2584c 100644 --- a/src/types/floats/float64.js +++ b/src/types/floats/float64.js @@ -18,8 +18,8 @@ ByteBufferPrototype.writeFloat64 = function(value, offset) { //? ENSURE_CAPACITY(8); //? if (NODE) { this.littleEndian - ? this.buffer.writeDoubleLE(value, offset, true) - : this.buffer.writeDoubleBE(value, offset, true); + ? this.buffer.writeDoubleLE(value, offset) + : this.buffer.writeDoubleBE(value, offset); //? } else if (DATAVIEW) this.view.setFloat64(offset, value, this.littleEndian); //? else @@ -53,8 +53,8 @@ ByteBufferPrototype.readFloat64 = function(offset) { } //? if (NODE) { var value = this.littleEndian - ? this.buffer.readDoubleLE(offset, true) - : this.buffer.readDoubleBE(offset, true); + ? this.buffer.readDoubleLE(offset) + : this.buffer.readDoubleBE(offset); //? } else if (DATAVIEW) var value = this.view.getFloat64(offset, this.littleEndian); //? else diff --git a/tests/suite.js b/tests/suite.js index d8d7f4b..6de8c55 100644 --- a/tests/suite.js +++ b/tests/suite.js @@ -130,7 +130,7 @@ function makeSuite(ByteBuffer) { buf[0] = 0x01; var bb = ByteBuffer.wrap(buf); test.strictEqual(bb.capacity(), 1); - test.strictEqual(bb.buffer, buf); + test.deepStrictEqual(bb.buffer, buf); test.strictEqual(bb.toDebug(), "<01>"); test.done(); };