├── .gitignore ├── src ├── format-support-samples │ ├── aac.aac │ ├── aac.m4a │ ├── mp3.mp3 │ ├── ogg.ogg │ ├── u8.wav │ ├── f32le.wav │ ├── flac.flac │ ├── s16le.wav │ └── s24le.wav ├── index.js └── deps │ └── AudioContextMonkeyPatch.js ├── package.json ├── LICENSE-MIT ├── README.md ├── gulpfile.js ├── demo.html ├── web-audio-boilerplate.js └── dist ├── web-audio-boilerplate-min.js └── web-audio-boilerplate.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /src/format-support-samples/aac.aac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/aac.aac -------------------------------------------------------------------------------- /src/format-support-samples/aac.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/aac.m4a -------------------------------------------------------------------------------- /src/format-support-samples/mp3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/mp3.mp3 -------------------------------------------------------------------------------- /src/format-support-samples/ogg.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/ogg.ogg -------------------------------------------------------------------------------- /src/format-support-samples/u8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/u8.wav -------------------------------------------------------------------------------- /src/format-support-samples/f32le.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/f32le.wav -------------------------------------------------------------------------------- /src/format-support-samples/flac.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/flac.flac -------------------------------------------------------------------------------- /src/format-support-samples/s16le.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/s16le.wav -------------------------------------------------------------------------------- /src/format-support-samples/s24le.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sebpiq/web-audio-boilerplate/HEAD/src/format-support-samples/s24le.wav -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web-audio-boilerplate", 3 | "version": "0.3.0", 4 | "description": "", 5 | "main": "web-audio-boilerplate.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/sebpiq/web-audio-boilerplate.git" 9 | }, 10 | "author": "", 11 | "license": "MIT", 12 | "bugs": { 13 | "url": "https://github.com/sebpiq/web-audio-boilerplate/issues" 14 | }, 15 | "homepage": "https://github.com/sebpiq/web-audio-boilerplate#readme", 16 | "devDependencies": { 17 | "gulp": "^3.9.1", 18 | "gulp-concat": "^2.6.1", 19 | "gulp-mustache": "^2.3.0", 20 | "gulp-rename": "^1.2.2", 21 | "gulp-uglify": "^2.0.1", 22 | "gulp-wrap": "^0.13.0", 23 | "run-sequence": "^1.2.2" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Sébastien Piquemal 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Web Audio boilerplate 2 | ======================== 3 | 4 | A couple of helpers necessary for cross-browser web audio projects. 5 | 6 | **note** : in addition of this library, I recommend using @cwilso's [AudioContext-MonkeyPatch](https://github.com/cwilso/AudioContext-MonkeyPatch) for normalizing Web Audio API across browsers (prefix and method names). For convenience, it is already bound with the built version of the library. 7 | 8 | 9 | Download 10 | ---------- 11 | 12 | - From npm : `npm install --save web-audio-boilerplate` 13 | - Built version (bundled with **AudioContext-MonkeyPatch**) : [here](https://github.com/sebpiq/web-audio-boilerplate/tree/master/dist/) 14 | 15 | 16 | API 17 | ---- 18 | 19 | ### webAudioBoilerplate.getSupportedFormats(audioContext, done) 20 | 21 | Test what audio formats are supported in the current browser. Calls `done(err, results)` where `result` is an object : 22 | 23 | ```javascript 24 | { 25 | wav: , // Equivalent to s16le 26 | ogg: , 27 | mp3: , 28 | aac: , 29 | flac: , 30 | s16le: , // wav PCM signed 16-bit little-endian 31 | s24le: , // wav PCM signed 24-bit little-endian 32 | f32le: , // wav PCM 32-bit floating-point little-endian 33 | u8: // wav PCM unsigned 8-bit 34 | } 35 | ``` 36 | 37 | ### webAudioBoilerplate.getAudioContextOnClick(elem, handler) 38 | 39 | [iOS](https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/PlayingandSynthesizingSounds/PlayingandSynthesizingSounds.html) requires a user action in order for your `AudioContext` to make any sound. When the HTML `elem` is clicked or tapped, `handler(err, audioContext)` is called with `audioContext` an unmuted instance of `AudioContext`. This function is only really necessary on iOS, but you can use it safely in all browsers. 40 | 41 | 42 | Demo 43 | ----- 44 | 45 | There is a simple demo [here](https://github.com/sebpiq/web-audio-boilerplate/tree/master/demo.html). You can see the demo in action [here](http://sebpiq.github.io/web-audio-boilerplate/demo.html). 46 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs') 2 | var path = require('path') 3 | var gulp = require('gulp') 4 | var mustache = require('gulp-mustache') 5 | var rename = require('gulp-rename') 6 | var concat = require('gulp-concat') 7 | var uglify = require('gulp-uglify') 8 | var wrap = require('gulp-wrap') 9 | var runSequence = require('run-sequence') 10 | 11 | var srcPath = './src/index.js' 12 | var builtFileName = 'web-audio-boilerplate.js' 13 | var builtPath = './dist/web-audio-boilerplate.js' 14 | var builtUglifiedPath = './dist/web-audio-boilerplate-min.js' 15 | 16 | 17 | gulp.task('loadFormatFiles', function() { 18 | return gulp.src(srcPath) 19 | .pipe(rename(builtFileName)) 20 | .pipe(mustache({ 21 | aacFile: JSON.stringify(fs.readFileSync('src/format-support-samples/aac.m4a').toJSON().data), 22 | flacFile: JSON.stringify(fs.readFileSync('src/format-support-samples/flac.flac').toJSON().data), 23 | mp3File: JSON.stringify(fs.readFileSync('src/format-support-samples/mp3.mp3').toJSON().data), 24 | oggFile: JSON.stringify(fs.readFileSync('src/format-support-samples/ogg.ogg').toJSON().data), 25 | s16leFile: JSON.stringify(fs.readFileSync('src/format-support-samples/s16le.wav').toJSON().data), 26 | s24leFile: JSON.stringify(fs.readFileSync('src/format-support-samples/s24le.wav').toJSON().data), 27 | f32leFile: JSON.stringify(fs.readFileSync('src/format-support-samples/f32le.wav').toJSON().data), 28 | u8File: JSON.stringify(fs.readFileSync('src/format-support-samples/u8.wav').toJSON().data) 29 | })) 30 | .pipe(gulp.dest('.')) 31 | }) 32 | 33 | gulp.task('browser', function() { 34 | return gulp.src(builtFileName) 35 | .pipe(wrap(';(function(exports){<%= contents %>})(window.webAudioBoilerplate = {})', {}, { parse: false })) 36 | .pipe(gulp.dest('./dist')) 37 | }) 38 | 39 | gulp.task('concatDeps', function() { 40 | return gulp.src([ './src/deps/*.js', builtPath ]) 41 | .pipe(concat(builtFileName)) 42 | .pipe(gulp.dest('./dist')) 43 | }) 44 | 45 | gulp.task('uglify', function() { 46 | return gulp.src(builtPath) 47 | .pipe(uglify()) 48 | .pipe(rename(builtUglifiedPath)) 49 | .pipe(gulp.dest('.')) 50 | }) 51 | 52 | gulp.task('default', function(callback) { 53 | runSequence('loadFormatFiles', 'browser', 'concatDeps', 'uglify', callback) 54 | }) -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | // Test for support of sound formats. Calls `done(err, results)` where result is an object : 2 | // `{wav: , ogg: , mp3: }` 3 | exports.getSupportedFormats = function(audioContext, done) { 4 | var results = {} 5 | var formatList = [ 6 | ['aac', new Uint8Array({{ aacFile }})], 7 | ['flac', new Uint8Array({{ flacFile }})], 8 | ['mp3', new Uint8Array({{ mp3File }})], 9 | ['ogg', new Uint8Array({{ oggFile }})], 10 | ['s16le', new Uint8Array({{ s16leFile }})], 11 | ['s24le', new Uint8Array({{ s24leFile }})], 12 | ['f32le', new Uint8Array({{ f32leFile }})], 13 | ['u8', new Uint8Array({{ u8File }})] 14 | ] 15 | var format 16 | 17 | var decodedCallback = function(fileType, err, buffer) { 18 | var supported = true 19 | 20 | // If no decoding error we consider the format is supported 21 | if (err) 22 | supported = false 23 | //else if (buffer.numberOfChannels !== 1 || Math.round(buffer.duration * 10000) / 100 !== 1) 24 | //supported = false 25 | 26 | // Add format to `results` if supported, then move on to next format 27 | results[fileType] = supported 28 | if (formatList.length > 0) 29 | nextFormat() 30 | else { 31 | results.wav = results.s16le 32 | done(null, results) 33 | } 34 | } 35 | 36 | var nextFormat = function() { 37 | format = formatList.pop() 38 | audioContext.decodeAudioData(format[1].buffer, function(buffer) { 39 | decodedCallback(format[0], null, buffer) 40 | }, function(err) { 41 | decodedCallback(format[0], err || new Error('decoding error'), null) 42 | }) 43 | } 44 | nextFormat() 45 | } 46 | 47 | // When `elem` is clicked, `handler(err, audioContext)` is called with an unmuted 48 | // instance of `AudioContext`. This is really necessary only on iOS. 49 | exports.getAudioContextOnClick = function(elem, handler) { 50 | // starting in iOS9, audio will only be unmuted if the context is created on "touchend". 51 | var is_iOS = /iPad|iPhone|iPod/.test(navigator.platform) 52 | var eventType = is_iOS ? 'touchend' : 'click' 53 | 54 | var _handler = function() { 55 | var audioContext 56 | elem.removeEventListener(eventType, _handler, false) 57 | try { 58 | audioContext = new AudioContext() 59 | } catch (err) { 60 | return handler(err, audioContext) 61 | } 62 | handler(null, audioContext) 63 | } 64 | 65 | elem.addEventListener(eventType, _handler, false) 66 | } -------------------------------------------------------------------------------- /demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | web audio boilerplate 7 | 8 | 43 | 44 | 45 | 46 |
47 |
48 | 49 | 50 | 51 | 90 | 91 | -------------------------------------------------------------------------------- /src/deps/AudioContextMonkeyPatch.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2013 Chris Wilson 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | /* 17 | 18 | This monkeypatch library is intended to be included in projects that are 19 | written to the proper AudioContext spec (instead of webkitAudioContext), 20 | and that use the new naming and proper bits of the Web Audio API (e.g. 21 | using BufferSourceNode.start() instead of BufferSourceNode.noteOn()), but may 22 | have to run on systems that only support the deprecated bits. 23 | 24 | This library should be harmless to include if the browser supports 25 | unprefixed "AudioContext", and/or if it supports the new names. 26 | 27 | The patches this library handles: 28 | if window.AudioContext is unsupported, it will be aliased to webkitAudioContext(). 29 | if AudioBufferSourceNode.start() is unimplemented, it will be routed to noteOn() or 30 | noteGrainOn(), depending on parameters. 31 | 32 | The following aliases only take effect if the new names are not already in place: 33 | 34 | AudioBufferSourceNode.stop() is aliased to noteOff() 35 | AudioContext.createGain() is aliased to createGainNode() 36 | AudioContext.createDelay() is aliased to createDelayNode() 37 | AudioContext.createScriptProcessor() is aliased to createJavaScriptNode() 38 | AudioContext.createPeriodicWave() is aliased to createWaveTable() 39 | OscillatorNode.start() is aliased to noteOn() 40 | OscillatorNode.stop() is aliased to noteOff() 41 | OscillatorNode.setPeriodicWave() is aliased to setWaveTable() 42 | AudioParam.setTargetAtTime() is aliased to setTargetValueAtTime() 43 | 44 | This library does NOT patch the enumerated type changes, as it is 45 | recommended in the specification that implementations support both integer 46 | and string types for AudioPannerNode.panningModel, AudioPannerNode.distanceModel 47 | BiquadFilterNode.type and OscillatorNode.type. 48 | 49 | */ 50 | (function (global, exports, perf) { 51 | 'use strict'; 52 | 53 | function fixSetTarget(param) { 54 | if (!param) // if NYI, just return 55 | return; 56 | if (!param.setTargetAtTime) 57 | param.setTargetAtTime = param.setTargetValueAtTime; 58 | } 59 | 60 | if (window.hasOwnProperty('webkitAudioContext') && 61 | !window.hasOwnProperty('AudioContext')) { 62 | window.AudioContext = webkitAudioContext; 63 | 64 | if (!AudioContext.prototype.hasOwnProperty('createGain')) 65 | AudioContext.prototype.createGain = AudioContext.prototype.createGainNode; 66 | if (!AudioContext.prototype.hasOwnProperty('createDelay')) 67 | AudioContext.prototype.createDelay = AudioContext.prototype.createDelayNode; 68 | if (!AudioContext.prototype.hasOwnProperty('createScriptProcessor')) 69 | AudioContext.prototype.createScriptProcessor = AudioContext.prototype.createJavaScriptNode; 70 | if (!AudioContext.prototype.hasOwnProperty('createPeriodicWave')) 71 | AudioContext.prototype.createPeriodicWave = AudioContext.prototype.createWaveTable; 72 | 73 | 74 | AudioContext.prototype.internal_createGain = AudioContext.prototype.createGain; 75 | AudioContext.prototype.createGain = function() { 76 | var node = this.internal_createGain(); 77 | fixSetTarget(node.gain); 78 | return node; 79 | }; 80 | 81 | AudioContext.prototype.internal_createDelay = AudioContext.prototype.createDelay; 82 | AudioContext.prototype.createDelay = function(maxDelayTime) { 83 | var node = maxDelayTime ? this.internal_createDelay(maxDelayTime) : this.internal_createDelay(); 84 | fixSetTarget(node.delayTime); 85 | return node; 86 | }; 87 | 88 | AudioContext.prototype.internal_createBufferSource = AudioContext.prototype.createBufferSource; 89 | AudioContext.prototype.createBufferSource = function() { 90 | var node = this.internal_createBufferSource(); 91 | if (!node.start) { 92 | node.start = function ( when, offset, duration ) { 93 | if ( offset || duration ) 94 | this.noteGrainOn( when || 0, offset, duration ); 95 | else 96 | this.noteOn( when || 0 ); 97 | }; 98 | } else { 99 | node.internal_start = node.start; 100 | node.start = function( when, offset, duration ) { 101 | if( typeof duration !== 'undefined' ) 102 | node.internal_start( when || 0, offset, duration ); 103 | else 104 | node.internal_start( when || 0, offset || 0 ); 105 | }; 106 | } 107 | if (!node.stop) { 108 | node.stop = function ( when ) { 109 | this.noteOff( when || 0 ); 110 | }; 111 | } else { 112 | node.internal_stop = node.stop; 113 | node.stop = function( when ) { 114 | node.internal_stop( when || 0 ); 115 | }; 116 | } 117 | fixSetTarget(node.playbackRate); 118 | return node; 119 | }; 120 | 121 | AudioContext.prototype.internal_createDynamicsCompressor = AudioContext.prototype.createDynamicsCompressor; 122 | AudioContext.prototype.createDynamicsCompressor = function() { 123 | var node = this.internal_createDynamicsCompressor(); 124 | fixSetTarget(node.threshold); 125 | fixSetTarget(node.knee); 126 | fixSetTarget(node.ratio); 127 | fixSetTarget(node.reduction); 128 | fixSetTarget(node.attack); 129 | fixSetTarget(node.release); 130 | return node; 131 | }; 132 | 133 | AudioContext.prototype.internal_createBiquadFilter = AudioContext.prototype.createBiquadFilter; 134 | AudioContext.prototype.createBiquadFilter = function() { 135 | var node = this.internal_createBiquadFilter(); 136 | fixSetTarget(node.frequency); 137 | fixSetTarget(node.detune); 138 | fixSetTarget(node.Q); 139 | fixSetTarget(node.gain); 140 | return node; 141 | }; 142 | 143 | if (AudioContext.prototype.hasOwnProperty( 'createOscillator' )) { 144 | AudioContext.prototype.internal_createOscillator = AudioContext.prototype.createOscillator; 145 | AudioContext.prototype.createOscillator = function() { 146 | var node = this.internal_createOscillator(); 147 | if (!node.start) { 148 | node.start = function ( when ) { 149 | this.noteOn( when || 0 ); 150 | }; 151 | } else { 152 | node.internal_start = node.start; 153 | node.start = function ( when ) { 154 | node.internal_start( when || 0); 155 | }; 156 | } 157 | if (!node.stop) { 158 | node.stop = function ( when ) { 159 | this.noteOff( when || 0 ); 160 | }; 161 | } else { 162 | node.internal_stop = node.stop; 163 | node.stop = function( when ) { 164 | node.internal_stop( when || 0 ); 165 | }; 166 | } 167 | if (!node.setPeriodicWave) 168 | node.setPeriodicWave = node.setWaveTable; 169 | fixSetTarget(node.frequency); 170 | fixSetTarget(node.detune); 171 | return node; 172 | }; 173 | } 174 | } 175 | 176 | if (window.hasOwnProperty('webkitOfflineAudioContext') && 177 | !window.hasOwnProperty('OfflineAudioContext')) { 178 | window.OfflineAudioContext = webkitOfflineAudioContext; 179 | } 180 | 181 | }(window)); 182 | 183 | -------------------------------------------------------------------------------- /web-audio-boilerplate.js: -------------------------------------------------------------------------------- 1 | // Test for support of sound formats. Calls `done(err, results)` where result is an object : 2 | // `{wav: , ogg: , mp3: }` 3 | exports.getSupportedFormats = function(audioContext, done) { 4 | var results = {} 5 | var formatList = [ 6 | ['aac', new Uint8Array([0,0,0,24,102,116,121,112,77,52,65,32,0,0,2,0,105,115,111,109,105,115,111,50,0,0,0,8,102,114,101,101,0,0,3,93,109,100,97,116,1,64,34,128,163,127,248,133,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,113,10,90,90,90,90,90,94,0,236,54,3,231,18,80,133,232,214,84,106,106,112,144,0,160,86,186,248,8,77,40,148,132,190,44,194,179,249,112,251,198,129,155,252,134,158,189,223,0,121,254,124,149,129,175,15,224,43,184,108,98,143,111,215,183,140,62,191,144,169,248,142,74,40,162,138,45,248,226,20,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,0,232,54,3,235,65,13,101,34,170,23,127,143,160,81,83,243,208,130,146,255,149,243,210,96,175,252,214,219,142,149,36,183,125,253,98,20,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,0,0,2,200,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,57,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,24,105,111,100,115,0,0,0,0,16,128,128,128,7,0,79,255,255,254,255,255,0,0,1,220,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,1,120,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,9,185,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,35,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,231,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,1,0,4,128,128,128,20,64,21,0,0,0,0,1,126,208,0,0,0,0,5,128,128,128,2,18,8,6,128,128,128,1,2,0,0,0,32,115,116,116,115,0,0,0,0,0,0,0,2,0,0,0,2,0,0,4,0,0,0,0,1,0,0,1,185,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,32,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,28,0,0,1,28,0,0,1,29,0,0,0,28,115,116,99,111,0,0,0,0,0,0,0,3,0,0,0,40,0,0,1,68,0,0,2,96,0,0,0,96,117,100,116,97,0,0,0,88,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,43,105,108,115,116,0,0,0,35,169,116,111,111,0,0,0,27,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,52,46,50,48,46,52])], 7 | ['flac', new Uint8Array([102,76,97,67,0,0,0,34,16,0,16,0,0,0,171,0,0,171,10,196,64,240,0,0,1,185,27,166,171,233,194,158,49,164,33,152,91,74,182,36,144,11,132,0,0,40,32,0,0,0,114,101,102,101,114,101,110,99,101,32,108,105,98,70,76,65,67,32,49,46,51,46,48,32,50,48,49,51,48,53,50,54,0,0,0,0,255,248,121,8,0,1,184,85,64,255,255,181,198,216,2,90,82,105,37,226,162,49,114,146,210,81,81,48,140,150,46,38,36,203,74,98,178,98,213,21,138,139,41,36,197,75,69,212,90,85,84,178,212,165,84,89,76,41,38,74,92,90,168,173,104,154,148,170,37,147,34,215,19,41,41,45,44,94,35,37,139,202,147,34,203,73,84,132,211,34,210,85,41,105,42,209,75,146,136,209,37,210,150,148,180,169,82,202,164,178,85,88,140,68,101,197,73,146,84,149,44,148,77,37,40,185,37,137,149,21,22,82,165,43,42,38,86,138,169,38,46,38,19,42,73,74,138,85,34,228,197,74,138,150,89,82,149,146,171,21,172,87,37,85,82,164,166,88,172,90,203])], 8 | ['mp3', new Uint8Array([255,251,144,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,105,110,103,0,0,0,15,0,0,0,2,0,0,4,123,0,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,100,76,65,77,69,51,46,57,57,114,4,221,0,0,0,0,0,0,0,0,53,32,36,5,7,65,0,1,244,0,0,4,123,43,126,142,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,251,176,196,0,3,7,114,55,16,64,0,81,201,111,72,35,140,1,15,172,0,14,15,232,222,141,253,8,223,243,255,255,255,255,255,255,255,250,50,228,33,62,254,191,158,69,59,231,122,19,32,24,183,66,100,38,167,66,16,144,128,4,32,66,43,206,119,66,0,19,228,33,25,78,0,0,0,32,120,128,0,205,34,12,161,89,10,86,161,149,218,180,219,43,178,219,68,50,145,65,62,109,202,71,179,33,145,216,174,85,33,217,202,65,234,149,234,99,127,186,127,254,139,255,236,254,135,204,86,118,161,84,138,229,229,97,249,153,17,225,99,235,205,186,209,14,53,134,214,93,7,35,32,226,157,43,9,176,139,102,143,74,254,104,12,150,157,194,140,100,226,21,76,65,77,69,51,46,57,57,46,53,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,76,65,77,69,51,46,57,57,46,53,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,255,251,16,196,214,3,192,0,1,254,0,0,0,32,0,0,52,128,0,0,4,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85])], 9 | ['ogg', new Uint8Array([79,103,103,83,0,2,0,0,0,0,0,0,0,0,97,78,37,84,0,0,0,0,250,96,23,155,1,30,1,118,111,114,98,105,115,0,0,0,0,1,68,172,0,0,0,0,0,0,128,56,1,0,0,0,0,0,184,1,79,103,103,83,0,0,0,0,0,0,0,0,0,0,97,78,37,84,1,0,0,0,252,115,240,255,14,64,255,255,255,255,255,255,255,255,255,255,255,255,129,3,118,111,114,98,105,115,13,0,0,0,76,97,118,102,53,55,46,54,51,46,49,48,48,1,0,0,0,31,0,0,0,101,110,99,111,100,101,114,61,76,97,118,99,53,55,46,55,53,46,49,48,48,32,108,105,98,118,111,114,98,105,115,1,5,118,111,114,98,105,115,34,66,67,86,1,0,64,0,0,36,115,24,42,70,165,115,22,132,16,26,66,80,25,227,28,66,206,107,236,25,66,76,17,130,28,50,76,91,203,37,115,144,33,164,160,66,136,91,40,129,208,144,85,0,0,64,0,0,135,65,120,20,132,138,65,8,33,132,37,61,88,146,131,39,61,8,33,132,136,57,120,20,132,105,65,8,33,132,16,66,8,33,132,16,66,8,33,132,69,57,104,146,131,39,65,8,29,132,227,48,56,12,131,229,56,248,28,132,69,57,88,16,131,39,65,232,32,132,15,66,184,154,131,172,57,8,33,132,36,53,72,80,131,6,57,232,28,132,194,44,40,138,130,196,48,184,22,132,4,53,40,140,130,228,48,200,212,131,11,66,136,154,131,73,53,248,26,132,103,65,120,22,132,105,65,8,33,132,36,65,72,144,131,6,65,200,24,132,70,65,88,146,131,6,57,184,20,132,203,65,168,26,132,42,57,8,31,132,32,52,100,21,0,144,0,0,160,162,40,138,162,40,10,16,26,178,10,0,200,0,0,16,64,81,20,199,113,28,201,145,28,201,177,28,11,8,13,89,5,0,0,1,0,8,0,0,160,72,138,164,72,142,228,72,146,36,89,146,37,89,146,37,89,146,230,137,170,44,203,178,44,203,178,44,203,50,16,26,178,10,0,72,0,0,80,81,12,69,113,20,7,8,13,89,5,0,100,0,0,8,160,56,138,165,88,138,165,104,138,231,136,142,8,132,134,172,2,0,128,0,0,4,0,0,16,52,67,83,60,71,148,68,207,84,85,215,182,109,219,182,109,219,182,109,219,182,109,219,182,109,91,150,101,25,8,13,89,5,0,64,0,0,16,210,105,102,169,6,136,48,3,25,6,66,67,86,1,0,8,0,0,128,17,138,48,196,128,208,144,85,0,0,64,0,0,128,24,74,14,162,9,173,57,223,156,227,160,89,14,154,74,177,57,29,156,72,181,121,146,155,138,185,57,231,156,115,206,201,230,156,49,206,57,231,156,162,156,89,12,154,9,173,57,231,156,196,160,89,10,154,9,173,57,231,156,39,177,121,208,154,42,173,57,231,156,113,206,233,96,156,17,198,57,231,156,38,173,121,144,154,141,181,57,231,156,5,173,105,142,154,75,177,57,231,156,72,185,121,82,155,75,181,57,231,156,115,206,57,231,156,115,206,57,231,156,234,197,233,28,156,19,206,57,231,156,168,189,185,150,155,208,197,57,231,156,79,198,233,222,156,16,206,57,231,156,115,206,57,231,156,115,206,57,231,156,32,52,100,21,0,0,4,0,64,16,134,141,97,220,41,8,210,231,104,32,70,17,98,26,50,233,65,247,232,48,9,26,131,156,66,234,209,232,104,164,148,58,8,37,149,113,82,74,39,8,13,89,5,0,0,2,0,64,8,33,133,20,82,72,33,133,20,82,72,33,133,20,98,136,33,134,24,114,202,41,167,160,130,74,42,169,168,162,140,50,203,44,179,204,50,203,44,179,204,58,236,172,179,14,59,12,49,196,16,67,43,173,196,82,83,109,53,214,88,107,238,57,231,154,131,180,86,90,107,173,181,82,74,41,165,148,82,10,66,67,86,1,0,32,0,0,4,66,6,25,100,144,81,72,33,133,20,98,136,41,167,156,114,10,42,168,128,208,144,85,0,0,32,0,128,0,0,0,0,79,242,28,209,17,29,209,17,29,209,17,29,209,17,29,209,241,28,207,17,37,81,18,37,81,18,45,211,50,53,211,83,69,85,117,101,215,150,117,89,183,125,91,216,133,93,247,125,221,247,125,221,248,117,97,88,150,101,89,150,101,89,150,101,89,150,101,89,150,101,89,150,32,52,100,21,0,0,2,0,0,32,132,16,66,72,33,133,20,82,72,41,198,24,115,204,57,232,36,148,16,8,13,89,5,0,0,2,0,8,0,0,0,112,20,71,113,28,201,145,28,73,178,36,75,210,36,205,210,44,79,243,52,79,19,61,81,20,69,211,52,85,209,21,93,81,55,109,81,54,101,211,53,93,83,54,93,85,86,109,87,150,109,91,182,117,219,151,101,219,247,125,223,247,125,223,247,125,223,247,125,223,247,125,93,7,66,67,86,1,0,18,0,0,58,146,35,41,146,34,41,146,227,56,142,36,73,64,104,200,42,0,64,6,0,64,0,0,138,226,40,142,227,56,146,36,73,146,37,105,146,103,121,150,168,153,154,233,153,158,42,170,64,104,200,42,0,0,16,0,64,0,0,0,0,0,0,138,166,120,138,169,120,138,168,120,142,232,136,146,104,153,150,168,169,154,43,202,166,236,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,11,132,134,172,2,0,36,0,0,116,36,71,114,36,71,82,36,69,82,36,71,114,128,208,144,85,0,128,12,0,128,0,0,28,195,49,36,69,114,44,203,210,52,79,243,52,79,19,61,209,19,61,211,83,69,87,116,129,208,144,85,0,0,32,0,128,0,0,0,0,0,0,12,201,176,20,203,209,28,77,18,37,213,82,45,85,83,45,213,82,69,213,83,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,77,211,52,77,19,8,13,89,9,0,0,1,0,208,90,115,204,173,151,142,65,232,172,151,200,40,164,160,215,78,57,230,164,215,204,40,130,156,231,16,49,99,152,199,82,49,67,12,198,150,65,132,148,5,66,67,86,4,0,81,0,0,128,49,200,49,196,28,114,206,73,234,36,69,206,57,42,29,165,198,57,71,169,163,212,81,74,177,166,90,59,74,165,182,84,107,227,156,163,212,81,202,40,165,90,75,171,29,165,84,107,170,177,0,0,128,0,7,0,128,0,11,161,208,144,21,1,64,20,0,0,129,12,82,10,41,133,148,98,206,41,231,144,82,202,57,230,28,98,138,57,167,156,99,206,57,40,157,148,202,57,39,157,147,18,41,165,156,99,206,41,231,156,148,206,73,230,156,147,210,73,40,0,0,32,192,1,0,32,192,66,40,52,100,69,0,16,39,0,224,112,28,77,147,52,77,20,37,77,19,69,79,20,93,215,19,69,213,149,52,205,52,53,81,84,85,77,20,77,213,84,85,89,22,77,85,150,37,77,51,77,77,20,85,83,19,69,85,21,85,83,150,77,85,181,101,207,52,109,217,84,85,221,22,85,213,182,101,91,246,125,87,150,117,221,51,77,217,22,85,213,182,77,85,181,117,87,150,117,93,182,109,221,151,52,205,52,53,81,84,85,77,20,85,215,84,85,219,54,85,213,182,53,81,116,93,81,85,101,89,84,85,89,118,93,89,215,85,87,214,125,77,20,85,213,83,77,217,21,85,85,150,85,217,213,101,85,150,117,95,116,85,221,86,93,217,215,85,89,214,125,219,214,133,95,214,125,194,168,170,186,110,202,174,174,171,178,172,251,178,46,251,186,237,235,148,73,211,76,83,19,69,85,213,68,81,85,77,87,181,109,83,117,109,91,19,69,215,21,85,213,150,69,83,117,101,85,150,125,95,117,101,217,215,68,209,117,69,85,149,101,81,85,101,89,149,101,93,119,101,87,183,69,85,213,109,85,118,125,223,116,93,93,151,117,93,88,102,91,247,133,211,117,117,93,149,101,223,87,101,89,247,101,93,199,214,117,223,247,76,211,182,77,215,213,117,211,85,117,223,214,117,229,153,109,219,248,69,85,213,117,85,150,133,95,149,101,223,215,133,225,121,110,221,23,158,81,85,117,221,148,93,95,87,101,89,23,110,95,55,218,190,110,60,175,109,99,219,62,178,175,35,12,71,190,176,44,93,219,54,186,190,77,152,117,221,232,27,67,225,55,134,52,211,180,109,211,85,117,221,116,93,95,151,117,221,104,235,186,80,84,85,93,87,101,217,247,85,87,246,125,91,247,133,225,246,125,223,24,85,215,247,85,89,22,134,213,150,157,97,247,125,165,238,11,149,85,182,133,223,214,117,231,152,109,93,88,126,227,232,252,190,50,116,117,91,104,235,186,177,204,190,174,60,187,113,116,134,62,2,0,0,6,28,0,0,2,76,40,3,133,134,172,8,0,226,4,0,24,132,156,67,76,65,136,20,131,16,66,72,41,132,144,82,196,24,132,204,57,41,25,115,82,66,41,169,133,82,82,139,24,131,144,57,38,37,115,78,74,40,161,165,80,74,75,161,132,214,66,41,177,133,82,90,108,173,213,154,90,139,53,132,210,90,40,165,181,80,74,139,169,165,26,91,107,53,70,140,65,200,156,147,146,57,39,165,148,210,90,40,165,181,204,57,42,157,131,148,58,8,41,165,148,90,44,41,197,88,57,39,37,131,142,74,7,33,165,146,74,76,37,165,24,67,42,177,149,148,98,44,41,197,216,90,108,185,197,152,115,40,165,197,146,74,108,37,165,88,91,76,57,182,24,115,142,24,131,144,57,39,37,115,78,74,40,165,181,82,82,107,149,115,82,58,8,41,101,14,74,42,41,197,88,74,74,49,115,78,74,7,33,165,14,66,74,37,165,24,83,74,177,133,82,98,43,41,213,88,74,106,177,197,152,115,75,49,214,80,82,139,37,165,24,75,74,49,182,24,115,110,177,229,214,65,104,45,164,18,99,40,37,198,22,99,174,173,181,26,67,41,177,149,148,98,44,41,213,22,99,173,189,197,152,115,40,37,198,146,74,141,37,165,88,91,141,185,198,24,115,78,177,229,154,90,172,185,197,216,107,109,185,245,154,115,208,169,181,90,83,76,185,182,24,115,142,185,5,89,115,238,189,131,208,90,40,165,197,80,74,140,173,181,90,91,140,57,135,82,98,43,41,213,88,74,138,181,197,152,115,107,177,246,80,74,140,37,165,88,75,74,53,182,24,107,142,53,246,154,90,171,181,197,152,107,106,177,230,154,115,239,49,230,216,83,107,53,183,24,107,78,177,229,90,115,238,189,230,214,99,1,0,0,3,14,0,0,1,38,148,129,66,67,86,2,0,81,0,0,4,33,74,49,6,161,65,136,49,231,164,52,8,49,230,156,148,138,49,231,32,164,82,49,230,28,132,82,50,231,32,148,146,82,230,28,132,82,82,10,165,164,146,82,107,161,148,82,82,106,173,0,0,128,2,7,0,128,0,27,52,37,22,7,40,52,100,37,0,144,10,0,96,112,28,203,242,60,81,52,85,217,118,44,201,243,68,209,52,85,213,182,29,203,242,60,81,52,77,85,181,109,203,243,68,209,52,85,213,117,117,221,242,60,81,52,85,85,117,93,93,247,68,81,53,85,213,117,101,89,247,61,81,52,85,85,117,93,89,246,125,211,84,85,213,117,101,89,182,133,95,52,85,87,117,93,89,150,101,223,88,93,213,117,101,89,182,117,91,24,86,213,117,93,89,150,109,91,55,134,91,215,117,221,247,133,97,57,58,183,110,235,186,239,251,194,241,59,199,0,0,240,4,7,0,160,2,27,86,71,56,41,26,11,44,52,100,37,0,144,1,0,64,24,131,144,65,72,33,131,16,82,72,33,165,16,82,74,9,0,0,24,112,0,0,8,48,161,12,20,26,178,18,0,136,2,0,0,8,145,82,74,41,141,148,82,74,41,165,145,82,74,41,165,148,18,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,5,0,248,79,56,0,248,63,216,160,41,177,56,64,161,33,43,1,128,112,0,0,192,24,165,152,114,12,58,9,41,53,140,57,6,161,148,148,82,106,173,97,140,49,8,165,164,212,90,75,149,115,16,74,73,169,181,216,98,172,156,131,80,82,74,173,197,26,99,7,33,165,214,90,172,177,214,154,59,8,41,165,22,107,172,57,216,28,74,105,45,198,88,115,206,189,247,144,82,107,49,214,90,115,239,189,151,214,98,172,53,231,220,131,16,194,180,20,99,174,185,246,224,123,239,41,182,90,107,205,61,248,32,132,80,177,213,90,115,240,65,8,33,132,139,49,247,220,131,240,61,8,33,92,140,57,231,30,132,240,193,7,97,0,0,119,131,3,0,68,130,141,51,172,36,157,21,142,6,23,26,178,18,0,8,9,0,32,16,98,138,49,231,156,131,16,66,8,145,82,140,57,231,28,132,16,66,40,37,82,138,49,231,156,131,14,66,8,37,100,140,57,231,28,132,16,66,40,165,148,140,49,231,156,131,16,66,9,165,148,146,57,231,28,132,16,66,40,165,148,82,50,231,160,131,16,66,9,165,148,82,74,231,28,132,16,66,8,165,148,82,74,233,160,131,16,66,9,165,148,82,74,41,33,132,16,66,9,165,148,82,74,41,37,132,16,66,9,165,148,82,74,41,165,132,16,74,40,165,148,82,74,41,165,148,16,66,41,165,148,82,74,41,165,148,18,66,40,165,148,82,74,41,165,148,146,66,41,165,148,82,74,41,165,148,82,82,40,165,148,82,74,41,165,148,82,74,9,165,148,82,74,41,165,148,148,82,73,5,0,0,28,56,0,0,4,24,65,39,25,85,22,97,163,9,23,30,128,66,67,86,2,0,64,0,0,20,196,86,83,137,157,65,204,49,103,169,33,8,49,168,169,66,74,41,134,49,67,202,32,166,41,83,10,33,133,33,115,138,33,2,161,197,86,75,197,0,0,0,16,4,0,8,8,9,0,48,64,80,48,3,0,12,14,16,62,7,65,39,64,112,180,1,0,8,66,100,134,72,52,44,4,135,7,149,0,17,49,21,0,36,38,40,228,2,64,133,197,69,218,197,5,116,25,224,130,46,238,58,16,66,16,130,16,196,226,0,10,72,192,193,9,55,60,241,134,39,220,224,4,157,162,82,7,1,0,0,0,0,112,0,0,15,0,0,199,5,16,17,209,28,70,134,198,6,71,135,199,7,72,72,0,0,0,0,0,200,0,192,7,0,192,33,2,68,68,52,135,145,161,177,193,209,225,241,1,18,18,0,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0,2,0,0,0,4,4,79,103,103,83,0,4,185,1,0,0,0,0,0,0,97,78,37,84,2,0,0,0,229,30,142,167,2,28,97,156,74,82,231,20,20,10,10,16,192,81,101,117,124,50,137,63,53,36,211,95,51,174,74,80,145,255,10,186,232,252,127,46,127,21,185,52,6,60,1,0,0,64,2,194,16,34,20,130,65,201,251,241,145,224,140,61,7,64,59,119,108,85,171,178,167,179,204,82,50,187,92,74,251,153,136,133,63,57,35,144,218,131,141,130,179,229,228,4,41,218,90,45,131,59,49,106,140,9,55,96,136,132,102,206,143,179,137,223,5,236,4,202,37,30,209,54,176,231,14,184,57,91,168,2])], 10 | ['s16le', new Uint8Array([82,73,70,70,150,3,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,100,97,116,97,114,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,4,0,253,255,2,0,254,255,0,0,2,0,254,255,2,0,253,255,3,0,254,255,0,0,1,0,254,255,2,0,254,255,2,0,253,255,4,0,252,255,3,0,254,255,2,0,254,255,2,0,254,255,2,0,0,0,253,255,4,0,252,255,3,0,255,255,1,0,254,255,2,0,253,255,5,0,251,255,4,0,252,255,4,0,253,255,3,0,252,255,3,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,2,0,253,255,4,0,252,255,4,0,251,255,6,0,251,255,4,0,253,255,2,0,253,255,5,0,252,255,2,0,0,0,253,255,5,0,251,255,5,0,252,255,1,0,2,0,254,255,1,0,0,0,254,255,2,0,0,0,254,255,3,0,254,255,0,0,1,0,254,255,2,0,254,255,1,0,2,0,252,255,4,0,252,255,2,0,255,255,1,0,255,255,1,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,254,255,3,0,252,255,4,0,253,255,2,0,255,255,0,0,1,0,253,255,4,0,253,255,1,0,1,0,253,255,3,0,254,255,2,0,252,255,4,0,252,255,4,0,253,255,2,0,254,255,1,0,0,0,255,255,1,0,1,0,252,255,5,0,251,255,5,0,253,255,0,0,0,0,0,0,3,0,252,255,3,0,254,255,255,255,5,0,249,255,6,0,252,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,2,0,252,255,6,0,249,255,5,0,255,255,253,255,3,0,0,0,254,255,3,0,253,255,1,0,1,0,255,255,1,0,0,0,254,255,3,0,253,255,3,0,254,255,0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,1,0,255,255,0,0,254,255,5,0,250,255,6,0,250,255,5,0,253,255,2,0,254,255,1,0,0,0,0,0,0,0,0,0,255,255,3,0,252,255,4,0,251,255,5,0,252,255,4,0,253,255,2,0,253,255,3,0,255,255,0,0,2,0,252,255,3,0,255,255,0,0,2,0,254,255,255,255,3,0,253,255,2,0,0,0,254,255,2,0,255,255,0,0,1,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,0,0,1,0,255,255,1,0,255,255,0,0,0,0,0,0,1,0,254,255,1,0,0,0,0,0,1,0,254,255,1,0,1,0,253,255,5,0,249,255,7,0,252,255,1,0,1,0,253,255,3,0,255,255,0,0,1,0,254,255,1,0,1,0,254,255,4,0,252,255,1,0,1,0,255,255,2,0,253,255,2,0,255,255,1,0,0,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,1,0,255,255,255,255,3,0,253,255,2,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,254,255,2,0,255,255,0,0,1,0,254,255,2,0,254,255,3,0,252,255,3,0,255,255,255,255,2,0,254,255,1,0,0,0,0,0,0,0,255,255,2,0,254,255,2,0,254,255,1,0,0,0,0,0,0,0,1,0,252,255,6,0,250,255,6,0,252,255,1,0,1,0,255,255,1,0,255,255,2,0,254,255,1,0,0,0,255,255,3,0,252,255,3,0,254,255,1,0,0,0,0,0,255,255,2,0,254,255,1,0,0,0,255,255,2,0,253,255,4,0,252,255,4,0,252,255,4,0,253,255,2,0,254,255,1,0,255,255,2,0,255,255,0,0,0,0,255,255,1,0,0,0,0,0,1,0,254,255,2,0,254,255,2,0,255,255,255,255,3,0,252,255,4,0,252,255,3,0,255,255,0,0,0,0,255,255,1,0,0,0,255,255,2,0,254,255,0,0,1,0,255,255,0,0,2,0,254,255,0,0,2,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,0,0])], 11 | ['s24le', new Uint8Array([82,73,70,70,79,5,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,204,4,2,0,3,0,24,0,100,97,116,97,43,5,0,0,0,255,255,0,2,0,0,253,255,0,3,0,0,254,255,0,1,0,0,255,255,0,1,0,0,254,255,0,3,0,0,254,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,2,0,0,253,255,0,4,0,0,252,255,0,4,0,0,252,255,0,4,0,0,253,255,0,2,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,251,255,0,4,0,0,253,255,0,3,0,0,253,255,0,3,0,0,252,255,0,5,0,0,251,255,0,4,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,254,255,0,3,0,0,253,255,0,3,0,0,253,255,0,3,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,1,0,0,254,255,0,2,0,0,253,255,0,3,0,0,255,255,0,255,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,3,0,0,253,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,1,0,0,254,255,0,2,0,0,254,255,0,1,0,0,1,0,0,254,255,0,1,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,253,255,0,3,0,0,254,255,0,2,0,0,254,255,0,1,0,0,255,255,0,1,0,0,1,0,0,253,255,0,3,0,0,254,255,0,0,0,0,2,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,2,0,0,253,255,0,2,0,0,0,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,255,255,0,3,0,0,253,255,0,2,0,0,255,255,0,255,255,0,3,0,0,253,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,255,255,0,3,0,0,253,255,0,2,0,0,254,255,0,2,0,0,255,255,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,255,255,0,2,0,0,254,255,0,3,0,0,254,255,0,255,255,0,2,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,253,255,0,4,0,0,251,255,0,5,0,0,253,255,0,1,0,0,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,255,255,0,255,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,3,0,0,253,255,0,3,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,252,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,251,255,0,4,0,0,254,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,2,0,0,253,255,0,3,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,2,0,0,253,255,0,4,0,0,252,255,0,3,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0])], 12 | ['f32le', new Uint8Array([82,73,70,70,44,7,0,0,87,65,86,69,102,109,116,32,16,0,0,0,3,0,1,0,68,172,0,0,16,177,2,0,4,0,32,0,102,97,99,116,4,0,0,0,185,1,0,0,80,69,65,75,16,0,0,0,1,0,0,0,172,63,179,88,0,0,96,57,163,0,0,0,100,97,116,97,228,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,184,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,192,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,0,0,0,0,192,184,0,0,0,57,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,32,57,0,0,32,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,0,57,0,0,32,185,0,0,64,57,0,0,32,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,192,184,0,0,32,57,0,0,0,185,0,0,128,56,0,0,0,0,0,0,192,184,0,0,32,57,0,0,32,185,0,0,32,57,0,0,0,185,0,0,0,56,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,128,184,0,0,128,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,128,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,192,184,0,0,0,57,0,0,192,184,0,0,0,56,0,0,0,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,128,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,56,0,0,0,185,0,0,32,57,0,0,32,185,0,0,32,57,0,0,192,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,184,0,0,32,57,0,0,96,185,0,0,64,57,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,0,185,0,0,64,57,0,0,96,185,0,0,32,57,0,0,0,184,0,0,192,184,0,0,192,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,192,184,0,0,0,56,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,128,184,0,0,32,57,0,0,64,185,0,0,64,57,0,0,64,185,0,0,32,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,32,185,0,0,32,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,192,184,0,0,192,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,0,184,0,0,192,56,0,0,192,184,0,0,128,56,0,0,0,0,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,56,0,0,192,184,0,0,32,57,0,0,96,185,0,0,96,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,192,184,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,56,0,0,128,184,0,0,0,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,0,184,0,0,128,56,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,192,56,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,185,0,0,64,57,0,0,64,185,0,0,64,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,0,0,0,0,128,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0])], 13 | ['u8', new Uint8Array([82,73,70,70,221,1,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116,97,185,1,0,0,128,128,127,128,128,128,127,128,127,128,127,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,128,127,128,128,127,128,127,128,128,128,127,128,128,128,128,128,128,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,127,128,128,127,128,127,128,128,128,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,128,128,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,127,128,128,128,128,127,128,128,128,128,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,127,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,127,128,127,128,128,127,128,128,128,128,128,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,128,127,128,128,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,128,127])] 14 | ] 15 | var format 16 | 17 | var decodedCallback = function(fileType, err, buffer) { 18 | var supported = true 19 | 20 | // If no decoding error we consider the format is supported 21 | if (err) 22 | supported = false 23 | //else if (buffer.numberOfChannels !== 1 || Math.round(buffer.duration * 10000) / 100 !== 1) 24 | //supported = false 25 | 26 | // Add format to `results` if supported, then move on to next format 27 | results[fileType] = supported 28 | if (formatList.length > 0) 29 | nextFormat() 30 | else { 31 | results.wav = results.s16le 32 | done(null, results) 33 | } 34 | } 35 | 36 | var nextFormat = function() { 37 | format = formatList.pop() 38 | audioContext.decodeAudioData(format[1].buffer, function(buffer) { 39 | decodedCallback(format[0], null, buffer) 40 | }, function(err) { 41 | decodedCallback(format[0], err || new Error('decoding error'), null) 42 | }) 43 | } 44 | nextFormat() 45 | } 46 | 47 | // When `elem` is clicked, `handler(err, audioContext)` is called with an unmuted 48 | // instance of `AudioContext`. This is really necessary only on iOS. 49 | exports.getAudioContextOnClick = function(elem, handler) { 50 | // starting in iOS9, audio will only be unmuted if the context is created on "touchend". 51 | var is_iOS = /iPad|iPhone|iPod/.test(navigator.platform) 52 | var eventType = is_iOS ? 'touchend' : 'click' 53 | 54 | var _handler = function() { 55 | var audioContext 56 | elem.removeEventListener(eventType, _handler, false) 57 | try { 58 | audioContext = new AudioContext() 59 | } catch (err) { 60 | return handler(err, audioContext) 61 | } 62 | handler(null, audioContext) 63 | } 64 | 65 | elem.addEventListener(eventType, _handler, false) 66 | } -------------------------------------------------------------------------------- /dist/web-audio-boilerplate-min.js: -------------------------------------------------------------------------------- 1 | !function(t,e,o){"use strict";function r(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return r(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return r(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,o,r){"undefined"!=typeof r?t.internal_start(e||0,o,r):t.internal_start(e||0,o||0)}):t.start=function(t,e,o){e||o?this.noteGrainOn(t||0,e,o):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},r(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return r(t.threshold),r(t.knee),r(t.ratio),r(t.reduction),r(t.attack),r(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return r(t.frequency),r(t.detune),r(t.Q),r(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),r(t.frequency),r(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext)}(window),function(t){t.getSupportedFormats=function(t,e){var o,r={},n=[["aac",new Uint8Array([0,0,0,24,102,116,121,112,77,52,65,32,0,0,2,0,105,115,111,109,105,115,111,50,0,0,0,8,102,114,101,101,0,0,3,93,109,100,97,116,1,64,34,128,163,127,248,133,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,113,10,90,90,90,90,90,94,0,236,54,3,231,18,80,133,232,214,84,106,106,112,144,0,160,86,186,248,8,77,40,148,132,190,44,194,179,249,112,251,198,129,155,252,134,158,189,223,0,121,254,124,149,129,175,15,224,43,184,108,98,143,111,215,183,140,62,191,144,169,248,142,74,40,162,138,45,248,226,20,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,0,232,54,3,235,65,13,101,34,170,23,127,143,160,81,83,243,208,130,146,255,149,243,210,96,175,252,214,219,142,149,36,183,125,253,98,20,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,0,0,2,200,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,57,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,24,105,111,100,115,0,0,0,0,16,128,128,128,7,0,79,255,255,254,255,255,0,0,1,220,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,1,120,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,9,185,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,35,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,231,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,1,0,4,128,128,128,20,64,21,0,0,0,0,1,126,208,0,0,0,0,5,128,128,128,2,18,8,6,128,128,128,1,2,0,0,0,32,115,116,116,115,0,0,0,0,0,0,0,2,0,0,0,2,0,0,4,0,0,0,0,1,0,0,1,185,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,32,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,28,0,0,1,28,0,0,1,29,0,0,0,28,115,116,99,111,0,0,0,0,0,0,0,3,0,0,0,40,0,0,1,68,0,0,2,96,0,0,0,96,117,100,116,97,0,0,0,88,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,43,105,108,115,116,0,0,0,35,169,116,111,111,0,0,0,27,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,52,46,50,48,46,52])],["flac",new Uint8Array([102,76,97,67,0,0,0,34,16,0,16,0,0,0,171,0,0,171,10,196,64,240,0,0,1,185,27,166,171,233,194,158,49,164,33,152,91,74,182,36,144,11,132,0,0,40,32,0,0,0,114,101,102,101,114,101,110,99,101,32,108,105,98,70,76,65,67,32,49,46,51,46,48,32,50,48,49,51,48,53,50,54,0,0,0,0,255,248,121,8,0,1,184,85,64,255,255,181,198,216,2,90,82,105,37,226,162,49,114,146,210,81,81,48,140,150,46,38,36,203,74,98,178,98,213,21,138,139,41,36,197,75,69,212,90,85,84,178,212,165,84,89,76,41,38,74,92,90,168,173,104,154,148,170,37,147,34,215,19,41,41,45,44,94,35,37,139,202,147,34,203,73,84,132,211,34,210,85,41,105,42,209,75,146,136,209,37,210,150,148,180,169,82,202,164,178,85,88,140,68,101,197,73,146,84,149,44,148,77,37,40,185,37,137,149,21,22,82,165,43,42,38,86,138,169,38,46,38,19,42,73,74,138,85,34,228,197,74,138,150,89,82,149,146,171,21,172,87,37,85,82,164,166,88,172,90,203])],["mp3",new Uint8Array([255,251,144,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,105,110,103,0,0,0,15,0,0,0,2,0,0,4,123,0,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,100,76,65,77,69,51,46,57,57,114,4,221,0,0,0,0,0,0,0,0,53,32,36,5,7,65,0,1,244,0,0,4,123,43,126,142,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,251,176,196,0,3,7,114,55,16,64,0,81,201,111,72,35,140,1,15,172,0,14,15,232,222,141,253,8,223,243,255,255,255,255,255,255,255,250,50,228,33,62,254,191,158,69,59,231,122,19,32,24,183,66,100,38,167,66,16,144,128,4,32,66,43,206,119,66,0,19,228,33,25,78,0,0,0,32,120,128,0,205,34,12,161,89,10,86,161,149,218,180,219,43,178,219,68,50,145,65,62,109,202,71,179,33,145,216,174,85,33,217,202,65,234,149,234,99,127,186,127,254,139,255,236,254,135,204,86,118,161,84,138,229,229,97,249,153,17,225,99,235,205,186,209,14,53,134,214,93,7,35,32,226,157,43,9,176,139,102,143,74,254,104,12,150,157,194,140,100,226,21,76,65,77,69,51,46,57,57,46,53,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,76,65,77,69,51,46,57,57,46,53,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,255,251,16,196,214,3,192,0,1,254,0,0,0,32,0,0,52,128,0,0,4,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85])],["ogg",new Uint8Array([79,103,103,83,0,2,0,0,0,0,0,0,0,0,97,78,37,84,0,0,0,0,250,96,23,155,1,30,1,118,111,114,98,105,115,0,0,0,0,1,68,172,0,0,0,0,0,0,128,56,1,0,0,0,0,0,184,1,79,103,103,83,0,0,0,0,0,0,0,0,0,0,97,78,37,84,1,0,0,0,252,115,240,255,14,64,255,255,255,255,255,255,255,255,255,255,255,255,129,3,118,111,114,98,105,115,13,0,0,0,76,97,118,102,53,55,46,54,51,46,49,48,48,1,0,0,0,31,0,0,0,101,110,99,111,100,101,114,61,76,97,118,99,53,55,46,55,53,46,49,48,48,32,108,105,98,118,111,114,98,105,115,1,5,118,111,114,98,105,115,34,66,67,86,1,0,64,0,0,36,115,24,42,70,165,115,22,132,16,26,66,80,25,227,28,66,206,107,236,25,66,76,17,130,28,50,76,91,203,37,115,144,33,164,160,66,136,91,40,129,208,144,85,0,0,64,0,0,135,65,120,20,132,138,65,8,33,132,37,61,88,146,131,39,61,8,33,132,136,57,120,20,132,105,65,8,33,132,16,66,8,33,132,16,66,8,33,132,69,57,104,146,131,39,65,8,29,132,227,48,56,12,131,229,56,248,28,132,69,57,88,16,131,39,65,232,32,132,15,66,184,154,131,172,57,8,33,132,36,53,72,80,131,6,57,232,28,132,194,44,40,138,130,196,48,184,22,132,4,53,40,140,130,228,48,200,212,131,11,66,136,154,131,73,53,248,26,132,103,65,120,22,132,105,65,8,33,132,36,65,72,144,131,6,65,200,24,132,70,65,88,146,131,6,57,184,20,132,203,65,168,26,132,42,57,8,31,132,32,52,100,21,0,144,0,0,160,162,40,138,162,40,10,16,26,178,10,0,200,0,0,16,64,81,20,199,113,28,201,145,28,201,177,28,11,8,13,89,5,0,0,1,0,8,0,0,160,72,138,164,72,142,228,72,146,36,89,146,37,89,146,37,89,146,230,137,170,44,203,178,44,203,178,44,203,50,16,26,178,10,0,72,0,0,80,81,12,69,113,20,7,8,13,89,5,0,100,0,0,8,160,56,138,165,88,138,165,104,138,231,136,142,8,132,134,172,2,0,128,0,0,4,0,0,16,52,67,83,60,71,148,68,207,84,85,215,182,109,219,182,109,219,182,109,219,182,109,219,182,109,91,150,101,25,8,13,89,5,0,64,0,0,16,210,105,102,169,6,136,48,3,25,6,66,67,86,1,0,8,0,0,128,17,138,48,196,128,208,144,85,0,0,64,0,0,128,24,74,14,162,9,173,57,223,156,227,160,89,14,154,74,177,57,29,156,72,181,121,146,155,138,185,57,231,156,115,206,201,230,156,49,206,57,231,156,162,156,89,12,154,9,173,57,231,156,196,160,89,10,154,9,173,57,231,156,39,177,121,208,154,42,173,57,231,156,113,206,233,96,156,17,198,57,231,156,38,173,121,144,154,141,181,57,231,156,5,173,105,142,154,75,177,57,231,156,72,185,121,82,155,75,181,57,231,156,115,206,57,231,156,115,206,57,231,156,234,197,233,28,156,19,206,57,231,156,168,189,185,150,155,208,197,57,231,156,79,198,233,222,156,16,206,57,231,156,115,206,57,231,156,115,206,57,231,156,32,52,100,21,0,0,4,0,64,16,134,141,97,220,41,8,210,231,104,32,70,17,98,26,50,233,65,247,232,48,9,26,131,156,66,234,209,232,104,164,148,58,8,37,149,113,82,74,39,8,13,89,5,0,0,2,0,64,8,33,133,20,82,72,33,133,20,82,72,33,133,20,98,136,33,134,24,114,202,41,167,160,130,74,42,169,168,162,140,50,203,44,179,204,50,203,44,179,204,58,236,172,179,14,59,12,49,196,16,67,43,173,196,82,83,109,53,214,88,107,238,57,231,154,131,180,86,90,107,173,181,82,74,41,165,148,82,10,66,67,86,1,0,32,0,0,4,66,6,25,100,144,81,72,33,133,20,98,136,41,167,156,114,10,42,168,128,208,144,85,0,0,32,0,128,0,0,0,0,79,242,28,209,17,29,209,17,29,209,17,29,209,17,29,209,241,28,207,17,37,81,18,37,81,18,45,211,50,53,211,83,69,85,117,101,215,150,117,89,183,125,91,216,133,93,247,125,221,247,125,221,248,117,97,88,150,101,89,150,101,89,150,101,89,150,101,89,150,101,89,150,32,52,100,21,0,0,2,0,0,32,132,16,66,72,33,133,20,82,72,41,198,24,115,204,57,232,36,148,16,8,13,89,5,0,0,2,0,8,0,0,0,112,20,71,113,28,201,145,28,73,178,36,75,210,36,205,210,44,79,243,52,79,19,61,81,20,69,211,52,85,209,21,93,81,55,109,81,54,101,211,53,93,83,54,93,85,86,109,87,150,109,91,182,117,219,151,101,219,247,125,223,247,125,223,247,125,223,247,125,223,247,125,93,7,66,67,86,1,0,18,0,0,58,146,35,41,146,34,41,146,227,56,142,36,73,64,104,200,42,0,64,6,0,64,0,0,138,226,40,142,227,56,146,36,73,146,37,105,146,103,121,150,168,153,154,233,153,158,42,170,64,104,200,42,0,0,16,0,64,0,0,0,0,0,0,138,166,120,138,169,120,138,168,120,142,232,136,146,104,153,150,168,169,154,43,202,166,236,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,11,132,134,172,2,0,36,0,0,116,36,71,114,36,71,82,36,69,82,36,71,114,128,208,144,85,0,128,12,0,128,0,0,28,195,49,36,69,114,44,203,210,52,79,243,52,79,19,61,209,19,61,211,83,69,87,116,129,208,144,85,0,0,32,0,128,0,0,0,0,0,0,12,201,176,20,203,209,28,77,18,37,213,82,45,85,83,45,213,82,69,213,83,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,77,211,52,77,19,8,13,89,9,0,0,1,0,208,90,115,204,173,151,142,65,232,172,151,200,40,164,160,215,78,57,230,164,215,204,40,130,156,231,16,49,99,152,199,82,49,67,12,198,150,65,132,148,5,66,67,86,4,0,81,0,0,128,49,200,49,196,28,114,206,73,234,36,69,206,57,42,29,165,198,57,71,169,163,212,81,74,177,166,90,59,74,165,182,84,107,227,156,163,212,81,202,40,165,90,75,171,29,165,84,107,170,177,0,0,128,0,7,0,128,0,11,161,208,144,21,1,64,20,0,0,129,12,82,10,41,133,148,98,206,41,231,144,82,202,57,230,28,98,138,57,167,156,99,206,57,40,157,148,202,57,39,157,147,18,41,165,156,99,206,41,231,156,148,206,73,230,156,147,210,73,40,0,0,32,192,1,0,32,192,66,40,52,100,69,0,16,39,0,224,112,28,77,147,52,77,20,37,77,19,69,79,20,93,215,19,69,213,149,52,205,52,53,81,84,85,77,20,77,213,84,85,89,22,77,85,150,37,77,51,77,77,20,85,83,19,69,85,21,85,83,150,77,85,181,101,207,52,109,217,84,85,221,22,85,213,182,101,91,246,125,87,150,117,221,51,77,217,22,85,213,182,77,85,181,117,87,150,117,93,182,109,221,151,52,205,52,53,81,84,85,77,20,85,215,84,85,219,54,85,213,182,53,81,116,93,81,85,101,89,84,85,89,118,93,89,215,85,87,214,125,77,20,85,213,83,77,217,21,85,85,150,85,217,213,101,85,150,117,95,116,85,221,86,93,217,215,85,89,214,125,219,214,133,95,214,125,194,168,170,186,110,202,174,174,171,178,172,251,178,46,251,186,237,235,148,73,211,76,83,19,69,85,213,68,81,85,77,87,181,109,83,117,109,91,19,69,215,21,85,213,150,69,83,117,101,85,150,125,95,117,101,217,215,68,209,117,69,85,149,101,81,85,101,89,149,101,93,119,101,87,183,69,85,213,109,85,118,125,223,116,93,93,151,117,93,88,102,91,247,133,211,117,117,93,149,101,223,87,101,89,247,101,93,199,214,117,223,247,76,211,182,77,215,213,117,211,85,117,223,214,117,229,153,109,219,248,69,85,213,117,85,150,133,95,149,101,223,215,133,225,121,110,221,23,158,81,85,117,221,148,93,95,87,101,89,23,110,95,55,218,190,110,60,175,109,99,219,62,178,175,35,12,71,190,176,44,93,219,54,186,190,77,152,117,221,232,27,67,225,55,134,52,211,180,109,211,85,117,221,116,93,95,151,117,221,104,235,186,80,84,85,93,87,101,217,247,85,87,246,125,91,247,133,225,246,125,223,24,85,215,247,85,89,22,134,213,150,157,97,247,125,165,238,11,149,85,182,133,223,214,117,231,152,109,93,88,126,227,232,252,190,50,116,117,91,104,235,186,177,204,190,174,60,187,113,116,134,62,2,0,0,6,28,0,0,2,76,40,3,133,134,172,8,0,226,4,0,24,132,156,67,76,65,136,20,131,16,66,72,41,132,144,82,196,24,132,204,57,41,25,115,82,66,41,169,133,82,82,139,24,131,144,57,38,37,115,78,74,40,161,165,80,74,75,161,132,214,66,41,177,133,82,90,108,173,213,154,90,139,53,132,210,90,40,165,181,80,74,139,169,165,26,91,107,53,70,140,65,200,156,147,146,57,39,165,148,210,90,40,165,181,204,57,42,157,131,148,58,8,41,165,148,90,44,41,197,88,57,39,37,131,142,74,7,33,165,146,74,76,37,165,24,67,42,177,149,148,98,44,41,197,216,90,108,185,197,152,115,40,165,197,146,74,108,37,165,88,91,76,57,182,24,115,142,24,131,144,57,39,37,115,78,74,40,165,181,82,82,107,149,115,82,58,8,41,101,14,74,42,41,197,88,74,74,49,115,78,74,7,33,165,14,66,74,37,165,24,83,74,177,133,82,98,43,41,213,88,74,106,177,197,152,115,75,49,214,80,82,139,37,165,24,75,74,49,182,24,115,110,177,229,214,65,104,45,164,18,99,40,37,198,22,99,174,173,181,26,67,41,177,149,148,98,44,41,213,22,99,173,189,197,152,115,40,37,198,146,74,141,37,165,88,91,141,185,198,24,115,78,177,229,154,90,172,185,197,216,107,109,185,245,154,115,208,169,181,90,83,76,185,182,24,115,142,185,5,89,115,238,189,131,208,90,40,165,197,80,74,140,173,181,90,91,140,57,135,82,98,43,41,213,88,74,138,181,197,152,115,107,177,246,80,74,140,37,165,88,75,74,53,182,24,107,142,53,246,154,90,171,181,197,152,107,106,177,230,154,115,239,49,230,216,83,107,53,183,24,107,78,177,229,90,115,238,189,230,214,99,1,0,0,3,14,0,0,1,38,148,129,66,67,86,2,0,81,0,0,4,33,74,49,6,161,65,136,49,231,164,52,8,49,230,156,148,138,49,231,32,164,82,49,230,28,132,82,50,231,32,148,146,82,230,28,132,82,82,10,165,164,146,82,107,161,148,82,82,106,173,0,0,128,2,7,0,128,0,27,52,37,22,7,40,52,100,37,0,144,10,0,96,112,28,203,242,60,81,52,85,217,118,44,201,243,68,209,52,85,213,182,29,203,242,60,81,52,77,85,181,109,203,243,68,209,52,85,213,117,117,221,242,60,81,52,85,85,117,93,93,247,68,81,53,85,213,117,101,89,247,61,81,52,85,85,117,93,89,246,125,211,84,85,213,117,101,89,182,133,95,52,85,87,117,93,89,150,101,223,88,93,213,117,101,89,182,117,91,24,86,213,117,93,89,150,109,91,55,134,91,215,117,221,247,133,97,57,58,183,110,235,186,239,251,194,241,59,199,0,0,240,4,7,0,160,2,27,86,71,56,41,26,11,44,52,100,37,0,144,1,0,64,24,131,144,65,72,33,131,16,82,72,33,165,16,82,74,9,0,0,24,112,0,0,8,48,161,12,20,26,178,18,0,136,2,0,0,8,145,82,74,41,141,148,82,74,41,165,145,82,74,41,165,148,18,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,5,0,248,79,56,0,248,63,216,160,41,177,56,64,161,33,43,1,128,112,0,0,192,24,165,152,114,12,58,9,41,53,140,57,6,161,148,148,82,106,173,97,140,49,8,165,164,212,90,75,149,115,16,74,73,169,181,216,98,172,156,131,80,82,74,173,197,26,99,7,33,165,214,90,172,177,214,154,59,8,41,165,22,107,172,57,216,28,74,105,45,198,88,115,206,189,247,144,82,107,49,214,90,115,239,189,151,214,98,172,53,231,220,131,16,194,180,20,99,174,185,246,224,123,239,41,182,90,107,205,61,248,32,132,80,177,213,90,115,240,65,8,33,132,139,49,247,220,131,240,61,8,33,92,140,57,231,30,132,240,193,7,97,0,0,119,131,3,0,68,130,141,51,172,36,157,21,142,6,23,26,178,18,0,8,9,0,32,16,98,138,49,231,156,131,16,66,8,145,82,140,57,231,28,132,16,66,40,37,82,138,49,231,156,131,14,66,8,37,100,140,57,231,28,132,16,66,40,165,148,140,49,231,156,131,16,66,9,165,148,146,57,231,28,132,16,66,40,165,148,82,50,231,160,131,16,66,9,165,148,82,74,231,28,132,16,66,8,165,148,82,74,233,160,131,16,66,9,165,148,82,74,41,33,132,16,66,9,165,148,82,74,41,37,132,16,66,9,165,148,82,74,41,165,132,16,74,40,165,148,82,74,41,165,148,16,66,41,165,148,82,74,41,165,148,18,66,40,165,148,82,74,41,165,148,146,66,41,165,148,82,74,41,165,148,82,82,40,165,148,82,74,41,165,148,82,74,9,165,148,82,74,41,165,148,148,82,73,5,0,0,28,56,0,0,4,24,65,39,25,85,22,97,163,9,23,30,128,66,67,86,2,0,64,0,0,20,196,86,83,137,157,65,204,49,103,169,33,8,49,168,169,66,74,41,134,49,67,202,32,166,41,83,10,33,133,33,115,138,33,2,161,197,86,75,197,0,0,0,16,4,0,8,8,9,0,48,64,80,48,3,0,12,14,16,62,7,65,39,64,112,180,1,0,8,66,100,134,72,52,44,4,135,7,149,0,17,49,21,0,36,38,40,228,2,64,133,197,69,218,197,5,116,25,224,130,46,238,58,16,66,16,130,16,196,226,0,10,72,192,193,9,55,60,241,134,39,220,224,4,157,162,82,7,1,0,0,0,0,112,0,0,15,0,0,199,5,16,17,209,28,70,134,198,6,71,135,199,7,72,72,0,0,0,0,0,200,0,192,7,0,192,33,2,68,68,52,135,145,161,177,193,209,225,241,1,18,18,0,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0,2,0,0,0,4,4,79,103,103,83,0,4,185,1,0,0,0,0,0,0,97,78,37,84,2,0,0,0,229,30,142,167,2,28,97,156,74,82,231,20,20,10,10,16,192,81,101,117,124,50,137,63,53,36,211,95,51,174,74,80,145,255,10,186,232,252,127,46,127,21,185,52,6,60,1,0,0,64,2,194,16,34,20,130,65,201,251,241,145,224,140,61,7,64,59,119,108,85,171,178,167,179,204,82,50,187,92,74,251,153,136,133,63,57,35,144,218,131,141,130,179,229,228,4,41,218,90,45,131,59,49,106,140,9,55,96,136,132,102,206,143,179,137,223,5,236,4,202,37,30,209,54,176,231,14,184,57,91,168,2])],["s16le",new Uint8Array([82,73,70,70,150,3,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,100,97,116,97,114,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,4,0,253,255,2,0,254,255,0,0,2,0,254,255,2,0,253,255,3,0,254,255,0,0,1,0,254,255,2,0,254,255,2,0,253,255,4,0,252,255,3,0,254,255,2,0,254,255,2,0,254,255,2,0,0,0,253,255,4,0,252,255,3,0,255,255,1,0,254,255,2,0,253,255,5,0,251,255,4,0,252,255,4,0,253,255,3,0,252,255,3,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,2,0,253,255,4,0,252,255,4,0,251,255,6,0,251,255,4,0,253,255,2,0,253,255,5,0,252,255,2,0,0,0,253,255,5,0,251,255,5,0,252,255,1,0,2,0,254,255,1,0,0,0,254,255,2,0,0,0,254,255,3,0,254,255,0,0,1,0,254,255,2,0,254,255,1,0,2,0,252,255,4,0,252,255,2,0,255,255,1,0,255,255,1,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,254,255,3,0,252,255,4,0,253,255,2,0,255,255,0,0,1,0,253,255,4,0,253,255,1,0,1,0,253,255,3,0,254,255,2,0,252,255,4,0,252,255,4,0,253,255,2,0,254,255,1,0,0,0,255,255,1,0,1,0,252,255,5,0,251,255,5,0,253,255,0,0,0,0,0,0,3,0,252,255,3,0,254,255,255,255,5,0,249,255,6,0,252,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,2,0,252,255,6,0,249,255,5,0,255,255,253,255,3,0,0,0,254,255,3,0,253,255,1,0,1,0,255,255,1,0,0,0,254,255,3,0,253,255,3,0,254,255,0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,1,0,255,255,0,0,254,255,5,0,250,255,6,0,250,255,5,0,253,255,2,0,254,255,1,0,0,0,0,0,0,0,0,0,255,255,3,0,252,255,4,0,251,255,5,0,252,255,4,0,253,255,2,0,253,255,3,0,255,255,0,0,2,0,252,255,3,0,255,255,0,0,2,0,254,255,255,255,3,0,253,255,2,0,0,0,254,255,2,0,255,255,0,0,1,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,0,0,1,0,255,255,1,0,255,255,0,0,0,0,0,0,1,0,254,255,1,0,0,0,0,0,1,0,254,255,1,0,1,0,253,255,5,0,249,255,7,0,252,255,1,0,1,0,253,255,3,0,255,255,0,0,1,0,254,255,1,0,1,0,254,255,4,0,252,255,1,0,1,0,255,255,2,0,253,255,2,0,255,255,1,0,0,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,1,0,255,255,255,255,3,0,253,255,2,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,254,255,2,0,255,255,0,0,1,0,254,255,2,0,254,255,3,0,252,255,3,0,255,255,255,255,2,0,254,255,1,0,0,0,0,0,0,0,255,255,2,0,254,255,2,0,254,255,1,0,0,0,0,0,0,0,1,0,252,255,6,0,250,255,6,0,252,255,1,0,1,0,255,255,1,0,255,255,2,0,254,255,1,0,0,0,255,255,3,0,252,255,3,0,254,255,1,0,0,0,0,0,255,255,2,0,254,255,1,0,0,0,255,255,2,0,253,255,4,0,252,255,4,0,252,255,4,0,253,255,2,0,254,255,1,0,255,255,2,0,255,255,0,0,0,0,255,255,1,0,0,0,0,0,1,0,254,255,2,0,254,255,2,0,255,255,255,255,3,0,252,255,4,0,252,255,3,0,255,255,0,0,0,0,255,255,1,0,0,0,255,255,2,0,254,255,0,0,1,0,255,255,0,0,2,0,254,255,0,0,2,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,0,0])],["s24le",new Uint8Array([82,73,70,70,79,5,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,204,4,2,0,3,0,24,0,100,97,116,97,43,5,0,0,0,255,255,0,2,0,0,253,255,0,3,0,0,254,255,0,1,0,0,255,255,0,1,0,0,254,255,0,3,0,0,254,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,2,0,0,253,255,0,4,0,0,252,255,0,4,0,0,252,255,0,4,0,0,253,255,0,2,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,251,255,0,4,0,0,253,255,0,3,0,0,253,255,0,3,0,0,252,255,0,5,0,0,251,255,0,4,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,254,255,0,3,0,0,253,255,0,3,0,0,253,255,0,3,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,1,0,0,254,255,0,2,0,0,253,255,0,3,0,0,255,255,0,255,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,3,0,0,253,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,1,0,0,254,255,0,2,0,0,254,255,0,1,0,0,1,0,0,254,255,0,1,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,253,255,0,3,0,0,254,255,0,2,0,0,254,255,0,1,0,0,255,255,0,1,0,0,1,0,0,253,255,0,3,0,0,254,255,0,0,0,0,2,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,2,0,0,253,255,0,2,0,0,0,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,255,255,0,3,0,0,253,255,0,2,0,0,255,255,0,255,255,0,3,0,0,253,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,255,255,0,3,0,0,253,255,0,2,0,0,254,255,0,2,0,0,255,255,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,255,255,0,2,0,0,254,255,0,3,0,0,254,255,0,255,255,0,2,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,253,255,0,4,0,0,251,255,0,5,0,0,253,255,0,1,0,0,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,255,255,0,255,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,3,0,0,253,255,0,3,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,252,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,251,255,0,4,0,0,254,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,2,0,0,253,255,0,3,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,2,0,0,253,255,0,4,0,0,252,255,0,3,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0])],["f32le",new Uint8Array([82,73,70,70,44,7,0,0,87,65,86,69,102,109,116,32,16,0,0,0,3,0,1,0,68,172,0,0,16,177,2,0,4,0,32,0,102,97,99,116,4,0,0,0,185,1,0,0,80,69,65,75,16,0,0,0,1,0,0,0,172,63,179,88,0,0,96,57,163,0,0,0,100,97,116,97,228,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,184,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,192,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,0,0,0,0,192,184,0,0,0,57,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,32,57,0,0,32,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,0,57,0,0,32,185,0,0,64,57,0,0,32,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,192,184,0,0,32,57,0,0,0,185,0,0,128,56,0,0,0,0,0,0,192,184,0,0,32,57,0,0,32,185,0,0,32,57,0,0,0,185,0,0,0,56,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,128,184,0,0,128,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,128,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,192,184,0,0,0,57,0,0,192,184,0,0,0,56,0,0,0,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,128,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,56,0,0,0,185,0,0,32,57,0,0,32,185,0,0,32,57,0,0,192,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,184,0,0,32,57,0,0,96,185,0,0,64,57,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,0,185,0,0,64,57,0,0,96,185,0,0,32,57,0,0,0,184,0,0,192,184,0,0,192,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,192,184,0,0,0,56,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,128,184,0,0,32,57,0,0,64,185,0,0,64,57,0,0,64,185,0,0,32,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,32,185,0,0,32,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,192,184,0,0,192,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,0,184,0,0,192,56,0,0,192,184,0,0,128,56,0,0,0,0,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,56,0,0,192,184,0,0,32,57,0,0,96,185,0,0,96,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,192,184,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,56,0,0,128,184,0,0,0,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,0,184,0,0,128,56,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,192,56,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,185,0,0,64,57,0,0,64,185,0,0,64,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,0,0,0,0,128,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0])],["u8",new Uint8Array([82,73,70,70,221,1,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116,97,185,1,0,0,128,128,127,128,128,128,127,128,127,128,127,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,128,127,128,128,127,128,127,128,128,128,127,128,128,128,128,128,128,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,127,128,128,127,128,127,128,128,128,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,128,128,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,127,128,128,128,128,127,128,128,128,128,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,127,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,127,128,127,128,128,127,128,128,128,128,128,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,128,127,128,128,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,128,127])]],i=function(t,o,i){ 2 | var u=!0;o&&(u=!1),r[t]=u,n.length>0?a():(r.wav=r.s16le,e(null,r))},a=function(){o=n.pop(),t.decodeAudioData(o[1].buffer,function(t){i(o[0],null,t)},function(t){i(o[0],t||new Error("decoding error"),null)})};a()},t.getAudioContextOnClick=function(t,e){var o=/iPad|iPhone|iPod/.test(navigator.platform),r=o?"touchend":"click",n=function(){var o;t.removeEventListener(r,n,!1);try{o=new AudioContext}catch(t){return e(t,o)}e(null,o)};t.addEventListener(r,n,!1)}}(window.webAudioBoilerplate={}); -------------------------------------------------------------------------------- /dist/web-audio-boilerplate.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2013 Chris Wilson 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | /* 17 | 18 | This monkeypatch library is intended to be included in projects that are 19 | written to the proper AudioContext spec (instead of webkitAudioContext), 20 | and that use the new naming and proper bits of the Web Audio API (e.g. 21 | using BufferSourceNode.start() instead of BufferSourceNode.noteOn()), but may 22 | have to run on systems that only support the deprecated bits. 23 | 24 | This library should be harmless to include if the browser supports 25 | unprefixed "AudioContext", and/or if it supports the new names. 26 | 27 | The patches this library handles: 28 | if window.AudioContext is unsupported, it will be aliased to webkitAudioContext(). 29 | if AudioBufferSourceNode.start() is unimplemented, it will be routed to noteOn() or 30 | noteGrainOn(), depending on parameters. 31 | 32 | The following aliases only take effect if the new names are not already in place: 33 | 34 | AudioBufferSourceNode.stop() is aliased to noteOff() 35 | AudioContext.createGain() is aliased to createGainNode() 36 | AudioContext.createDelay() is aliased to createDelayNode() 37 | AudioContext.createScriptProcessor() is aliased to createJavaScriptNode() 38 | AudioContext.createPeriodicWave() is aliased to createWaveTable() 39 | OscillatorNode.start() is aliased to noteOn() 40 | OscillatorNode.stop() is aliased to noteOff() 41 | OscillatorNode.setPeriodicWave() is aliased to setWaveTable() 42 | AudioParam.setTargetAtTime() is aliased to setTargetValueAtTime() 43 | 44 | This library does NOT patch the enumerated type changes, as it is 45 | recommended in the specification that implementations support both integer 46 | and string types for AudioPannerNode.panningModel, AudioPannerNode.distanceModel 47 | BiquadFilterNode.type and OscillatorNode.type. 48 | 49 | */ 50 | (function (global, exports, perf) { 51 | 'use strict'; 52 | 53 | function fixSetTarget(param) { 54 | if (!param) // if NYI, just return 55 | return; 56 | if (!param.setTargetAtTime) 57 | param.setTargetAtTime = param.setTargetValueAtTime; 58 | } 59 | 60 | if (window.hasOwnProperty('webkitAudioContext') && 61 | !window.hasOwnProperty('AudioContext')) { 62 | window.AudioContext = webkitAudioContext; 63 | 64 | if (!AudioContext.prototype.hasOwnProperty('createGain')) 65 | AudioContext.prototype.createGain = AudioContext.prototype.createGainNode; 66 | if (!AudioContext.prototype.hasOwnProperty('createDelay')) 67 | AudioContext.prototype.createDelay = AudioContext.prototype.createDelayNode; 68 | if (!AudioContext.prototype.hasOwnProperty('createScriptProcessor')) 69 | AudioContext.prototype.createScriptProcessor = AudioContext.prototype.createJavaScriptNode; 70 | if (!AudioContext.prototype.hasOwnProperty('createPeriodicWave')) 71 | AudioContext.prototype.createPeriodicWave = AudioContext.prototype.createWaveTable; 72 | 73 | 74 | AudioContext.prototype.internal_createGain = AudioContext.prototype.createGain; 75 | AudioContext.prototype.createGain = function() { 76 | var node = this.internal_createGain(); 77 | fixSetTarget(node.gain); 78 | return node; 79 | }; 80 | 81 | AudioContext.prototype.internal_createDelay = AudioContext.prototype.createDelay; 82 | AudioContext.prototype.createDelay = function(maxDelayTime) { 83 | var node = maxDelayTime ? this.internal_createDelay(maxDelayTime) : this.internal_createDelay(); 84 | fixSetTarget(node.delayTime); 85 | return node; 86 | }; 87 | 88 | AudioContext.prototype.internal_createBufferSource = AudioContext.prototype.createBufferSource; 89 | AudioContext.prototype.createBufferSource = function() { 90 | var node = this.internal_createBufferSource(); 91 | if (!node.start) { 92 | node.start = function ( when, offset, duration ) { 93 | if ( offset || duration ) 94 | this.noteGrainOn( when || 0, offset, duration ); 95 | else 96 | this.noteOn( when || 0 ); 97 | }; 98 | } else { 99 | node.internal_start = node.start; 100 | node.start = function( when, offset, duration ) { 101 | if( typeof duration !== 'undefined' ) 102 | node.internal_start( when || 0, offset, duration ); 103 | else 104 | node.internal_start( when || 0, offset || 0 ); 105 | }; 106 | } 107 | if (!node.stop) { 108 | node.stop = function ( when ) { 109 | this.noteOff( when || 0 ); 110 | }; 111 | } else { 112 | node.internal_stop = node.stop; 113 | node.stop = function( when ) { 114 | node.internal_stop( when || 0 ); 115 | }; 116 | } 117 | fixSetTarget(node.playbackRate); 118 | return node; 119 | }; 120 | 121 | AudioContext.prototype.internal_createDynamicsCompressor = AudioContext.prototype.createDynamicsCompressor; 122 | AudioContext.prototype.createDynamicsCompressor = function() { 123 | var node = this.internal_createDynamicsCompressor(); 124 | fixSetTarget(node.threshold); 125 | fixSetTarget(node.knee); 126 | fixSetTarget(node.ratio); 127 | fixSetTarget(node.reduction); 128 | fixSetTarget(node.attack); 129 | fixSetTarget(node.release); 130 | return node; 131 | }; 132 | 133 | AudioContext.prototype.internal_createBiquadFilter = AudioContext.prototype.createBiquadFilter; 134 | AudioContext.prototype.createBiquadFilter = function() { 135 | var node = this.internal_createBiquadFilter(); 136 | fixSetTarget(node.frequency); 137 | fixSetTarget(node.detune); 138 | fixSetTarget(node.Q); 139 | fixSetTarget(node.gain); 140 | return node; 141 | }; 142 | 143 | if (AudioContext.prototype.hasOwnProperty( 'createOscillator' )) { 144 | AudioContext.prototype.internal_createOscillator = AudioContext.prototype.createOscillator; 145 | AudioContext.prototype.createOscillator = function() { 146 | var node = this.internal_createOscillator(); 147 | if (!node.start) { 148 | node.start = function ( when ) { 149 | this.noteOn( when || 0 ); 150 | }; 151 | } else { 152 | node.internal_start = node.start; 153 | node.start = function ( when ) { 154 | node.internal_start( when || 0); 155 | }; 156 | } 157 | if (!node.stop) { 158 | node.stop = function ( when ) { 159 | this.noteOff( when || 0 ); 160 | }; 161 | } else { 162 | node.internal_stop = node.stop; 163 | node.stop = function( when ) { 164 | node.internal_stop( when || 0 ); 165 | }; 166 | } 167 | if (!node.setPeriodicWave) 168 | node.setPeriodicWave = node.setWaveTable; 169 | fixSetTarget(node.frequency); 170 | fixSetTarget(node.detune); 171 | return node; 172 | }; 173 | } 174 | } 175 | 176 | if (window.hasOwnProperty('webkitOfflineAudioContext') && 177 | !window.hasOwnProperty('OfflineAudioContext')) { 178 | window.OfflineAudioContext = webkitOfflineAudioContext; 179 | } 180 | 181 | }(window)); 182 | 183 | 184 | ;(function(exports){// Test for support of sound formats. Calls `done(err, results)` where result is an object : 185 | // `{wav: , ogg: , mp3: }` 186 | exports.getSupportedFormats = function(audioContext, done) { 187 | var results = {} 188 | var formatList = [ 189 | ['aac', new Uint8Array([0,0,0,24,102,116,121,112,77,52,65,32,0,0,2,0,105,115,111,109,105,115,111,50,0,0,0,8,102,114,101,101,0,0,3,93,109,100,97,116,1,64,34,128,163,127,248,133,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,113,10,90,90,90,90,90,94,0,236,54,3,231,18,80,133,232,214,84,106,106,112,144,0,160,86,186,248,8,77,40,148,132,190,44,194,179,249,112,251,198,129,155,252,134,158,189,223,0,121,254,124,149,129,175,15,224,43,184,108,98,143,111,215,183,140,62,191,144,169,248,142,74,40,162,138,45,248,226,20,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,0,232,54,3,235,65,13,101,34,170,23,127,143,160,81,83,243,208,130,146,255,149,243,210,96,175,252,214,219,142,149,36,183,125,253,98,20,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,0,0,2,200,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,57,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,24,105,111,100,115,0,0,0,0,16,128,128,128,7,0,79,255,255,254,255,255,0,0,1,220,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,1,120,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,9,185,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,35,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,231,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,1,0,4,128,128,128,20,64,21,0,0,0,0,1,126,208,0,0,0,0,5,128,128,128,2,18,8,6,128,128,128,1,2,0,0,0,32,115,116,116,115,0,0,0,0,0,0,0,2,0,0,0,2,0,0,4,0,0,0,0,1,0,0,1,185,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,32,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,28,0,0,1,28,0,0,1,29,0,0,0,28,115,116,99,111,0,0,0,0,0,0,0,3,0,0,0,40,0,0,1,68,0,0,2,96,0,0,0,96,117,100,116,97,0,0,0,88,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,43,105,108,115,116,0,0,0,35,169,116,111,111,0,0,0,27,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,52,46,50,48,46,52])], 190 | ['flac', new Uint8Array([102,76,97,67,0,0,0,34,16,0,16,0,0,0,171,0,0,171,10,196,64,240,0,0,1,185,27,166,171,233,194,158,49,164,33,152,91,74,182,36,144,11,132,0,0,40,32,0,0,0,114,101,102,101,114,101,110,99,101,32,108,105,98,70,76,65,67,32,49,46,51,46,48,32,50,48,49,51,48,53,50,54,0,0,0,0,255,248,121,8,0,1,184,85,64,255,255,181,198,216,2,90,82,105,37,226,162,49,114,146,210,81,81,48,140,150,46,38,36,203,74,98,178,98,213,21,138,139,41,36,197,75,69,212,90,85,84,178,212,165,84,89,76,41,38,74,92,90,168,173,104,154,148,170,37,147,34,215,19,41,41,45,44,94,35,37,139,202,147,34,203,73,84,132,211,34,210,85,41,105,42,209,75,146,136,209,37,210,150,148,180,169,82,202,164,178,85,88,140,68,101,197,73,146,84,149,44,148,77,37,40,185,37,137,149,21,22,82,165,43,42,38,86,138,169,38,46,38,19,42,73,74,138,85,34,228,197,74,138,150,89,82,149,146,171,21,172,87,37,85,82,164,166,88,172,90,203])], 191 | ['mp3', new Uint8Array([255,251,144,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,105,110,103,0,0,0,15,0,0,0,2,0,0,4,123,0,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,100,76,65,77,69,51,46,57,57,114,4,221,0,0,0,0,0,0,0,0,53,32,36,5,7,65,0,1,244,0,0,4,123,43,126,142,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,251,176,196,0,3,7,114,55,16,64,0,81,201,111,72,35,140,1,15,172,0,14,15,232,222,141,253,8,223,243,255,255,255,255,255,255,255,250,50,228,33,62,254,191,158,69,59,231,122,19,32,24,183,66,100,38,167,66,16,144,128,4,32,66,43,206,119,66,0,19,228,33,25,78,0,0,0,32,120,128,0,205,34,12,161,89,10,86,161,149,218,180,219,43,178,219,68,50,145,65,62,109,202,71,179,33,145,216,174,85,33,217,202,65,234,149,234,99,127,186,127,254,139,255,236,254,135,204,86,118,161,84,138,229,229,97,249,153,17,225,99,235,205,186,209,14,53,134,214,93,7,35,32,226,157,43,9,176,139,102,143,74,254,104,12,150,157,194,140,100,226,21,76,65,77,69,51,46,57,57,46,53,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,76,65,77,69,51,46,57,57,46,53,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,255,251,16,196,214,3,192,0,1,254,0,0,0,32,0,0,52,128,0,0,4,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85])], 192 | ['ogg', new Uint8Array([79,103,103,83,0,2,0,0,0,0,0,0,0,0,97,78,37,84,0,0,0,0,250,96,23,155,1,30,1,118,111,114,98,105,115,0,0,0,0,1,68,172,0,0,0,0,0,0,128,56,1,0,0,0,0,0,184,1,79,103,103,83,0,0,0,0,0,0,0,0,0,0,97,78,37,84,1,0,0,0,252,115,240,255,14,64,255,255,255,255,255,255,255,255,255,255,255,255,129,3,118,111,114,98,105,115,13,0,0,0,76,97,118,102,53,55,46,54,51,46,49,48,48,1,0,0,0,31,0,0,0,101,110,99,111,100,101,114,61,76,97,118,99,53,55,46,55,53,46,49,48,48,32,108,105,98,118,111,114,98,105,115,1,5,118,111,114,98,105,115,34,66,67,86,1,0,64,0,0,36,115,24,42,70,165,115,22,132,16,26,66,80,25,227,28,66,206,107,236,25,66,76,17,130,28,50,76,91,203,37,115,144,33,164,160,66,136,91,40,129,208,144,85,0,0,64,0,0,135,65,120,20,132,138,65,8,33,132,37,61,88,146,131,39,61,8,33,132,136,57,120,20,132,105,65,8,33,132,16,66,8,33,132,16,66,8,33,132,69,57,104,146,131,39,65,8,29,132,227,48,56,12,131,229,56,248,28,132,69,57,88,16,131,39,65,232,32,132,15,66,184,154,131,172,57,8,33,132,36,53,72,80,131,6,57,232,28,132,194,44,40,138,130,196,48,184,22,132,4,53,40,140,130,228,48,200,212,131,11,66,136,154,131,73,53,248,26,132,103,65,120,22,132,105,65,8,33,132,36,65,72,144,131,6,65,200,24,132,70,65,88,146,131,6,57,184,20,132,203,65,168,26,132,42,57,8,31,132,32,52,100,21,0,144,0,0,160,162,40,138,162,40,10,16,26,178,10,0,200,0,0,16,64,81,20,199,113,28,201,145,28,201,177,28,11,8,13,89,5,0,0,1,0,8,0,0,160,72,138,164,72,142,228,72,146,36,89,146,37,89,146,37,89,146,230,137,170,44,203,178,44,203,178,44,203,50,16,26,178,10,0,72,0,0,80,81,12,69,113,20,7,8,13,89,5,0,100,0,0,8,160,56,138,165,88,138,165,104,138,231,136,142,8,132,134,172,2,0,128,0,0,4,0,0,16,52,67,83,60,71,148,68,207,84,85,215,182,109,219,182,109,219,182,109,219,182,109,219,182,109,91,150,101,25,8,13,89,5,0,64,0,0,16,210,105,102,169,6,136,48,3,25,6,66,67,86,1,0,8,0,0,128,17,138,48,196,128,208,144,85,0,0,64,0,0,128,24,74,14,162,9,173,57,223,156,227,160,89,14,154,74,177,57,29,156,72,181,121,146,155,138,185,57,231,156,115,206,201,230,156,49,206,57,231,156,162,156,89,12,154,9,173,57,231,156,196,160,89,10,154,9,173,57,231,156,39,177,121,208,154,42,173,57,231,156,113,206,233,96,156,17,198,57,231,156,38,173,121,144,154,141,181,57,231,156,5,173,105,142,154,75,177,57,231,156,72,185,121,82,155,75,181,57,231,156,115,206,57,231,156,115,206,57,231,156,234,197,233,28,156,19,206,57,231,156,168,189,185,150,155,208,197,57,231,156,79,198,233,222,156,16,206,57,231,156,115,206,57,231,156,115,206,57,231,156,32,52,100,21,0,0,4,0,64,16,134,141,97,220,41,8,210,231,104,32,70,17,98,26,50,233,65,247,232,48,9,26,131,156,66,234,209,232,104,164,148,58,8,37,149,113,82,74,39,8,13,89,5,0,0,2,0,64,8,33,133,20,82,72,33,133,20,82,72,33,133,20,98,136,33,134,24,114,202,41,167,160,130,74,42,169,168,162,140,50,203,44,179,204,50,203,44,179,204,58,236,172,179,14,59,12,49,196,16,67,43,173,196,82,83,109,53,214,88,107,238,57,231,154,131,180,86,90,107,173,181,82,74,41,165,148,82,10,66,67,86,1,0,32,0,0,4,66,6,25,100,144,81,72,33,133,20,98,136,41,167,156,114,10,42,168,128,208,144,85,0,0,32,0,128,0,0,0,0,79,242,28,209,17,29,209,17,29,209,17,29,209,17,29,209,241,28,207,17,37,81,18,37,81,18,45,211,50,53,211,83,69,85,117,101,215,150,117,89,183,125,91,216,133,93,247,125,221,247,125,221,248,117,97,88,150,101,89,150,101,89,150,101,89,150,101,89,150,101,89,150,32,52,100,21,0,0,2,0,0,32,132,16,66,72,33,133,20,82,72,41,198,24,115,204,57,232,36,148,16,8,13,89,5,0,0,2,0,8,0,0,0,112,20,71,113,28,201,145,28,73,178,36,75,210,36,205,210,44,79,243,52,79,19,61,81,20,69,211,52,85,209,21,93,81,55,109,81,54,101,211,53,93,83,54,93,85,86,109,87,150,109,91,182,117,219,151,101,219,247,125,223,247,125,223,247,125,223,247,125,223,247,125,93,7,66,67,86,1,0,18,0,0,58,146,35,41,146,34,41,146,227,56,142,36,73,64,104,200,42,0,64,6,0,64,0,0,138,226,40,142,227,56,146,36,73,146,37,105,146,103,121,150,168,153,154,233,153,158,42,170,64,104,200,42,0,0,16,0,64,0,0,0,0,0,0,138,166,120,138,169,120,138,168,120,142,232,136,146,104,153,150,168,169,154,43,202,166,236,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,235,186,174,11,132,134,172,2,0,36,0,0,116,36,71,114,36,71,82,36,69,82,36,71,114,128,208,144,85,0,128,12,0,128,0,0,28,195,49,36,69,114,44,203,210,52,79,243,52,79,19,61,209,19,61,211,83,69,87,116,129,208,144,85,0,0,32,0,128,0,0,0,0,0,0,12,201,176,20,203,209,28,77,18,37,213,82,45,85,83,45,213,82,69,213,83,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,77,211,52,77,19,8,13,89,9,0,0,1,0,208,90,115,204,173,151,142,65,232,172,151,200,40,164,160,215,78,57,230,164,215,204,40,130,156,231,16,49,99,152,199,82,49,67,12,198,150,65,132,148,5,66,67,86,4,0,81,0,0,128,49,200,49,196,28,114,206,73,234,36,69,206,57,42,29,165,198,57,71,169,163,212,81,74,177,166,90,59,74,165,182,84,107,227,156,163,212,81,202,40,165,90,75,171,29,165,84,107,170,177,0,0,128,0,7,0,128,0,11,161,208,144,21,1,64,20,0,0,129,12,82,10,41,133,148,98,206,41,231,144,82,202,57,230,28,98,138,57,167,156,99,206,57,40,157,148,202,57,39,157,147,18,41,165,156,99,206,41,231,156,148,206,73,230,156,147,210,73,40,0,0,32,192,1,0,32,192,66,40,52,100,69,0,16,39,0,224,112,28,77,147,52,77,20,37,77,19,69,79,20,93,215,19,69,213,149,52,205,52,53,81,84,85,77,20,77,213,84,85,89,22,77,85,150,37,77,51,77,77,20,85,83,19,69,85,21,85,83,150,77,85,181,101,207,52,109,217,84,85,221,22,85,213,182,101,91,246,125,87,150,117,221,51,77,217,22,85,213,182,77,85,181,117,87,150,117,93,182,109,221,151,52,205,52,53,81,84,85,77,20,85,215,84,85,219,54,85,213,182,53,81,116,93,81,85,101,89,84,85,89,118,93,89,215,85,87,214,125,77,20,85,213,83,77,217,21,85,85,150,85,217,213,101,85,150,117,95,116,85,221,86,93,217,215,85,89,214,125,219,214,133,95,214,125,194,168,170,186,110,202,174,174,171,178,172,251,178,46,251,186,237,235,148,73,211,76,83,19,69,85,213,68,81,85,77,87,181,109,83,117,109,91,19,69,215,21,85,213,150,69,83,117,101,85,150,125,95,117,101,217,215,68,209,117,69,85,149,101,81,85,101,89,149,101,93,119,101,87,183,69,85,213,109,85,118,125,223,116,93,93,151,117,93,88,102,91,247,133,211,117,117,93,149,101,223,87,101,89,247,101,93,199,214,117,223,247,76,211,182,77,215,213,117,211,85,117,223,214,117,229,153,109,219,248,69,85,213,117,85,150,133,95,149,101,223,215,133,225,121,110,221,23,158,81,85,117,221,148,93,95,87,101,89,23,110,95,55,218,190,110,60,175,109,99,219,62,178,175,35,12,71,190,176,44,93,219,54,186,190,77,152,117,221,232,27,67,225,55,134,52,211,180,109,211,85,117,221,116,93,95,151,117,221,104,235,186,80,84,85,93,87,101,217,247,85,87,246,125,91,247,133,225,246,125,223,24,85,215,247,85,89,22,134,213,150,157,97,247,125,165,238,11,149,85,182,133,223,214,117,231,152,109,93,88,126,227,232,252,190,50,116,117,91,104,235,186,177,204,190,174,60,187,113,116,134,62,2,0,0,6,28,0,0,2,76,40,3,133,134,172,8,0,226,4,0,24,132,156,67,76,65,136,20,131,16,66,72,41,132,144,82,196,24,132,204,57,41,25,115,82,66,41,169,133,82,82,139,24,131,144,57,38,37,115,78,74,40,161,165,80,74,75,161,132,214,66,41,177,133,82,90,108,173,213,154,90,139,53,132,210,90,40,165,181,80,74,139,169,165,26,91,107,53,70,140,65,200,156,147,146,57,39,165,148,210,90,40,165,181,204,57,42,157,131,148,58,8,41,165,148,90,44,41,197,88,57,39,37,131,142,74,7,33,165,146,74,76,37,165,24,67,42,177,149,148,98,44,41,197,216,90,108,185,197,152,115,40,165,197,146,74,108,37,165,88,91,76,57,182,24,115,142,24,131,144,57,39,37,115,78,74,40,165,181,82,82,107,149,115,82,58,8,41,101,14,74,42,41,197,88,74,74,49,115,78,74,7,33,165,14,66,74,37,165,24,83,74,177,133,82,98,43,41,213,88,74,106,177,197,152,115,75,49,214,80,82,139,37,165,24,75,74,49,182,24,115,110,177,229,214,65,104,45,164,18,99,40,37,198,22,99,174,173,181,26,67,41,177,149,148,98,44,41,213,22,99,173,189,197,152,115,40,37,198,146,74,141,37,165,88,91,141,185,198,24,115,78,177,229,154,90,172,185,197,216,107,109,185,245,154,115,208,169,181,90,83,76,185,182,24,115,142,185,5,89,115,238,189,131,208,90,40,165,197,80,74,140,173,181,90,91,140,57,135,82,98,43,41,213,88,74,138,181,197,152,115,107,177,246,80,74,140,37,165,88,75,74,53,182,24,107,142,53,246,154,90,171,181,197,152,107,106,177,230,154,115,239,49,230,216,83,107,53,183,24,107,78,177,229,90,115,238,189,230,214,99,1,0,0,3,14,0,0,1,38,148,129,66,67,86,2,0,81,0,0,4,33,74,49,6,161,65,136,49,231,164,52,8,49,230,156,148,138,49,231,32,164,82,49,230,28,132,82,50,231,32,148,146,82,230,28,132,82,82,10,165,164,146,82,107,161,148,82,82,106,173,0,0,128,2,7,0,128,0,27,52,37,22,7,40,52,100,37,0,144,10,0,96,112,28,203,242,60,81,52,85,217,118,44,201,243,68,209,52,85,213,182,29,203,242,60,81,52,77,85,181,109,203,243,68,209,52,85,213,117,117,221,242,60,81,52,85,85,117,93,93,247,68,81,53,85,213,117,101,89,247,61,81,52,85,85,117,93,89,246,125,211,84,85,213,117,101,89,182,133,95,52,85,87,117,93,89,150,101,223,88,93,213,117,101,89,182,117,91,24,86,213,117,93,89,150,109,91,55,134,91,215,117,221,247,133,97,57,58,183,110,235,186,239,251,194,241,59,199,0,0,240,4,7,0,160,2,27,86,71,56,41,26,11,44,52,100,37,0,144,1,0,64,24,131,144,65,72,33,131,16,82,72,33,165,16,82,74,9,0,0,24,112,0,0,8,48,161,12,20,26,178,18,0,136,2,0,0,8,145,82,74,41,141,148,82,74,41,165,145,82,74,41,165,148,18,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,33,132,16,66,8,5,0,248,79,56,0,248,63,216,160,41,177,56,64,161,33,43,1,128,112,0,0,192,24,165,152,114,12,58,9,41,53,140,57,6,161,148,148,82,106,173,97,140,49,8,165,164,212,90,75,149,115,16,74,73,169,181,216,98,172,156,131,80,82,74,173,197,26,99,7,33,165,214,90,172,177,214,154,59,8,41,165,22,107,172,57,216,28,74,105,45,198,88,115,206,189,247,144,82,107,49,214,90,115,239,189,151,214,98,172,53,231,220,131,16,194,180,20,99,174,185,246,224,123,239,41,182,90,107,205,61,248,32,132,80,177,213,90,115,240,65,8,33,132,139,49,247,220,131,240,61,8,33,92,140,57,231,30,132,240,193,7,97,0,0,119,131,3,0,68,130,141,51,172,36,157,21,142,6,23,26,178,18,0,8,9,0,32,16,98,138,49,231,156,131,16,66,8,145,82,140,57,231,28,132,16,66,40,37,82,138,49,231,156,131,14,66,8,37,100,140,57,231,28,132,16,66,40,165,148,140,49,231,156,131,16,66,9,165,148,146,57,231,28,132,16,66,40,165,148,82,50,231,160,131,16,66,9,165,148,82,74,231,28,132,16,66,8,165,148,82,74,233,160,131,16,66,9,165,148,82,74,41,33,132,16,66,9,165,148,82,74,41,37,132,16,66,9,165,148,82,74,41,165,132,16,74,40,165,148,82,74,41,165,148,16,66,41,165,148,82,74,41,165,148,18,66,40,165,148,82,74,41,165,148,146,66,41,165,148,82,74,41,165,148,82,82,40,165,148,82,74,41,165,148,82,74,9,165,148,82,74,41,165,148,148,82,73,5,0,0,28,56,0,0,4,24,65,39,25,85,22,97,163,9,23,30,128,66,67,86,2,0,64,0,0,20,196,86,83,137,157,65,204,49,103,169,33,8,49,168,169,66,74,41,134,49,67,202,32,166,41,83,10,33,133,33,115,138,33,2,161,197,86,75,197,0,0,0,16,4,0,8,8,9,0,48,64,80,48,3,0,12,14,16,62,7,65,39,64,112,180,1,0,8,66,100,134,72,52,44,4,135,7,149,0,17,49,21,0,36,38,40,228,2,64,133,197,69,218,197,5,116,25,224,130,46,238,58,16,66,16,130,16,196,226,0,10,72,192,193,9,55,60,241,134,39,220,224,4,157,162,82,7,1,0,0,0,0,112,0,0,15,0,0,199,5,16,17,209,28,70,134,198,6,71,135,199,7,72,72,0,0,0,0,0,200,0,192,7,0,192,33,2,68,68,52,135,145,161,177,193,209,225,241,1,18,18,0,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0,2,0,0,0,4,4,79,103,103,83,0,4,185,1,0,0,0,0,0,0,97,78,37,84,2,0,0,0,229,30,142,167,2,28,97,156,74,82,231,20,20,10,10,16,192,81,101,117,124,50,137,63,53,36,211,95,51,174,74,80,145,255,10,186,232,252,127,46,127,21,185,52,6,60,1,0,0,64,2,194,16,34,20,130,65,201,251,241,145,224,140,61,7,64,59,119,108,85,171,178,167,179,204,82,50,187,92,74,251,153,136,133,63,57,35,144,218,131,141,130,179,229,228,4,41,218,90,45,131,59,49,106,140,9,55,96,136,132,102,206,143,179,137,223,5,236,4,202,37,30,209,54,176,231,14,184,57,91,168,2])], 193 | ['s16le', new Uint8Array([82,73,70,70,150,3,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,100,97,116,97,114,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,4,0,253,255,2,0,254,255,0,0,2,0,254,255,2,0,253,255,3,0,254,255,0,0,1,0,254,255,2,0,254,255,2,0,253,255,4,0,252,255,3,0,254,255,2,0,254,255,2,0,254,255,2,0,0,0,253,255,4,0,252,255,3,0,255,255,1,0,254,255,2,0,253,255,5,0,251,255,4,0,252,255,4,0,253,255,3,0,252,255,3,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,2,0,253,255,4,0,252,255,4,0,251,255,6,0,251,255,4,0,253,255,2,0,253,255,5,0,252,255,2,0,0,0,253,255,5,0,251,255,5,0,252,255,1,0,2,0,254,255,1,0,0,0,254,255,2,0,0,0,254,255,3,0,254,255,0,0,1,0,254,255,2,0,254,255,1,0,2,0,252,255,4,0,252,255,2,0,255,255,1,0,255,255,1,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,255,255,0,0,1,0,254,255,3,0,252,255,4,0,253,255,2,0,255,255,0,0,1,0,253,255,4,0,253,255,1,0,1,0,253,255,3,0,254,255,2,0,252,255,4,0,252,255,4,0,253,255,2,0,254,255,1,0,0,0,255,255,1,0,1,0,252,255,5,0,251,255,5,0,253,255,0,0,0,0,0,0,3,0,252,255,3,0,254,255,255,255,5,0,249,255,6,0,252,255,3,0,254,255,1,0,0,0,255,255,1,0,255,255,2,0,252,255,6,0,249,255,5,0,255,255,253,255,3,0,0,0,254,255,3,0,253,255,1,0,1,0,255,255,1,0,0,0,254,255,3,0,253,255,3,0,254,255,0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,1,0,255,255,0,0,254,255,5,0,250,255,6,0,250,255,5,0,253,255,2,0,254,255,1,0,0,0,0,0,0,0,0,0,255,255,3,0,252,255,4,0,251,255,5,0,252,255,4,0,253,255,2,0,253,255,3,0,255,255,0,0,2,0,252,255,3,0,255,255,0,0,2,0,254,255,255,255,3,0,253,255,2,0,0,0,254,255,2,0,255,255,0,0,1,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,0,0,1,0,255,255,1,0,255,255,0,0,0,0,0,0,1,0,254,255,1,0,0,0,0,0,1,0,254,255,1,0,1,0,253,255,5,0,249,255,7,0,252,255,1,0,1,0,253,255,3,0,255,255,0,0,1,0,254,255,1,0,1,0,254,255,4,0,252,255,1,0,1,0,255,255,2,0,253,255,2,0,255,255,1,0,0,0,255,255,0,0,0,0,1,0,255,255,1,0,255,255,255,255,2,0,255,255,1,0,255,255,255,255,3,0,253,255,2,0,255,255,0,0,1,0,255,255,0,0,0,0,0,0,0,0,1,0,254,255,2,0,255,255,0,0,1,0,254,255,2,0,254,255,3,0,252,255,3,0,255,255,255,255,2,0,254,255,1,0,0,0,0,0,0,0,255,255,2,0,254,255,2,0,254,255,1,0,0,0,0,0,0,0,1,0,252,255,6,0,250,255,6,0,252,255,1,0,1,0,255,255,1,0,255,255,2,0,254,255,1,0,0,0,255,255,3,0,252,255,3,0,254,255,1,0,0,0,0,0,255,255,2,0,254,255,1,0,0,0,255,255,2,0,253,255,4,0,252,255,4,0,252,255,4,0,253,255,2,0,254,255,1,0,255,255,2,0,255,255,0,0,0,0,255,255,1,0,0,0,0,0,1,0,254,255,2,0,254,255,2,0,255,255,255,255,3,0,252,255,4,0,252,255,3,0,255,255,0,0,0,0,255,255,1,0,0,0,255,255,2,0,254,255,0,0,1,0,255,255,0,0,2,0,254,255,0,0,2,0,253,255,3,0,254,255,1,0,0,0,255,255,1,0,0,0])], 194 | ['s24le', new Uint8Array([82,73,70,70,79,5,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,204,4,2,0,3,0,24,0,100,97,116,97,43,5,0,0,0,255,255,0,2,0,0,253,255,0,3,0,0,254,255,0,1,0,0,255,255,0,1,0,0,254,255,0,3,0,0,254,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,2,0,0,253,255,0,4,0,0,252,255,0,4,0,0,252,255,0,4,0,0,253,255,0,2,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,251,255,0,4,0,0,253,255,0,3,0,0,253,255,0,3,0,0,252,255,0,5,0,0,251,255,0,4,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,254,255,0,3,0,0,253,255,0,3,0,0,253,255,0,3,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,1,0,0,254,255,0,2,0,0,253,255,0,3,0,0,255,255,0,255,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,3,0,0,253,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,1,0,0,255,255,0,1,0,0,254,255,0,2,0,0,254,255,0,1,0,0,1,0,0,254,255,0,1,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,253,255,0,3,0,0,254,255,0,2,0,0,254,255,0,1,0,0,255,255,0,1,0,0,1,0,0,253,255,0,3,0,0,254,255,0,0,0,0,2,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,2,0,0,253,255,0,2,0,0,0,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,255,255,0,3,0,0,253,255,0,2,0,0,255,255,0,255,255,0,3,0,0,253,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,255,255,0,3,0,0,253,255,0,2,0,0,254,255,0,2,0,0,255,255,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,255,255,0,2,0,0,254,255,0,3,0,0,254,255,0,255,255,0,2,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,253,255,0,4,0,0,251,255,0,5,0,0,253,255,0,1,0,0,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,255,255,0,255,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,3,0,0,253,255,0,3,0,0,253,255,0,2,0,0,255,255,0,1,0,0,255,255,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,252,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,2,0,0,252,255,0,5,0,0,251,255,0,4,0,0,254,255,0,0,0,0,1,0,0,255,255,0,1,0,0,255,255,0,2,0,0,253,255,0,3,0,0,254,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,2,0,0,254,255,0,2,0,0,254,255,0,1,0,0,0,0,0,255,255,0,2,0,0,253,255,0,4,0,0,252,255,0,3,0,0,254,255,0,2,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,254,255,0,2,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,0,0,0,1,0,0,254,255,0,2,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0,0,255,255,0,1,0])], 195 | ['f32le', new Uint8Array([82,73,70,70,44,7,0,0,87,65,86,69,102,109,116,32,16,0,0,0,3,0,1,0,68,172,0,0,16,177,2,0,4,0,32,0,102,97,99,116,4,0,0,0,185,1,0,0,80,69,65,75,16,0,0,0,1,0,0,0,172,63,179,88,0,0,96,57,163,0,0,0,100,97,116,97,228,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,184,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,192,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,0,0,0,0,192,184,0,0,0,57,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,56,0,0,128,184,0,0,128,56,0,0,192,184,0,0,32,57,0,0,32,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,0,57,0,0,32,185,0,0,64,57,0,0,32,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,192,184,0,0,32,57,0,0,0,185,0,0,128,56,0,0,0,0,0,0,192,184,0,0,32,57,0,0,32,185,0,0,32,57,0,0,0,185,0,0,0,56,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,128,184,0,0,128,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,128,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,192,184,0,0,0,57,0,0,192,184,0,0,0,56,0,0,0,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,128,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,56,0,0,0,185,0,0,32,57,0,0,32,185,0,0,32,57,0,0,192,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,184,0,0,32,57,0,0,96,185,0,0,64,57,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,0,185,0,0,64,57,0,0,96,185,0,0,32,57,0,0,0,184,0,0,192,184,0,0,192,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,192,184,0,0,0,56,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,0,0,0,128,184,0,0,192,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,128,184,0,0,32,57,0,0,64,185,0,0,64,57,0,0,64,185,0,0,32,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,32,185,0,0,32,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,192,184,0,0,192,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,0,184,0,0,192,56,0,0,192,184,0,0,128,56,0,0,0,0,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,56,0,0,192,184,0,0,32,57,0,0,96,185,0,0,96,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,192,184,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,0,56,0,0,0,56,0,0,128,184,0,0,0,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,0,184,0,0,128,56,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,0,184,0,0,192,56,0,0,192,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,185,0,0,64,57,0,0,64,185,0,0,64,57,0,0,0,185,0,0,0,56,0,0,0,56,0,0,0,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,192,56,0,0,0,185,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,128,56,0,0,192,184,0,0,0,57,0,0,0,185,0,0,0,57,0,0,0,185,0,0,0,57,0,0,192,184,0,0,128,56,0,0,128,184,0,0,0,56,0,0,0,184,0,0,128,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,56,0,0,128,184,0,0,128,56,0,0,128,184,0,0,128,56,0,0,0,184,0,0,0,184,0,0,192,56,0,0,0,185,0,0,0,57,0,0,0,185,0,0,192,56,0,0,0,184,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,128,56,0,0,128,184,0,0,0,0,0,0,0,56,0,0,0,184,0,0,0,0,0,0,128,56,0,0,128,184,0,0,0,0,0,0,128,56,0,0,192,184,0,0,192,56,0,0,128,184,0,0,0,56,0,0,0,0,0,0,0,184,0,0,0,56,0,0,0,0])], 196 | ['u8', new Uint8Array([82,73,70,70,221,1,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116,97,185,1,0,0,128,128,127,128,128,128,127,128,127,128,127,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,128,127,128,128,127,128,127,128,128,128,127,128,128,128,128,128,128,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,128,127,127,128,127,128,127,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,127,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,127,128,128,127,128,127,128,128,128,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,128,128,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,127,128,128,128,128,127,128,128,128,128,128,128,127,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,127,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,128,127,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,127,128,127,128,128,127,128,128,128,128,128,128,127,128,127,128,128,127,128,128,127,128,127,128,128,127,128,128,127,128,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,128,127,128,128,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,127,128,127,128,128,127,128,127,128,127,128,128,128,127,128,127,128,127,128,127,128,128,128,127,128,127,128,128,127])] 197 | ] 198 | var format 199 | 200 | var decodedCallback = function(fileType, err, buffer) { 201 | var supported = true 202 | 203 | // If no decoding error we consider the format is supported 204 | if (err) 205 | supported = false 206 | //else if (buffer.numberOfChannels !== 1 || Math.round(buffer.duration * 10000) / 100 !== 1) 207 | //supported = false 208 | 209 | // Add format to `results` if supported, then move on to next format 210 | results[fileType] = supported 211 | if (formatList.length > 0) 212 | nextFormat() 213 | else { 214 | results.wav = results.s16le 215 | done(null, results) 216 | } 217 | } 218 | 219 | var nextFormat = function() { 220 | format = formatList.pop() 221 | audioContext.decodeAudioData(format[1].buffer, function(buffer) { 222 | decodedCallback(format[0], null, buffer) 223 | }, function(err) { 224 | decodedCallback(format[0], err || new Error('decoding error'), null) 225 | }) 226 | } 227 | nextFormat() 228 | } 229 | 230 | // When `elem` is clicked, `handler(err, audioContext)` is called with an unmuted 231 | // instance of `AudioContext`. This is really necessary only on iOS. 232 | exports.getAudioContextOnClick = function(elem, handler) { 233 | // starting in iOS9, audio will only be unmuted if the context is created on "touchend". 234 | var is_iOS = /iPad|iPhone|iPod/.test(navigator.platform) 235 | var eventType = is_iOS ? 'touchend' : 'click' 236 | 237 | var _handler = function() { 238 | var audioContext 239 | elem.removeEventListener(eventType, _handler, false) 240 | try { 241 | audioContext = new AudioContext() 242 | } catch (err) { 243 | return handler(err, audioContext) 244 | } 245 | handler(null, audioContext) 246 | } 247 | 248 | elem.addEventListener(eventType, _handler, false) 249 | }})(window.webAudioBoilerplate = {}) --------------------------------------------------------------------------------