/**
@license
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
import"./boot.js";let e=!1,t=[],u=[];function schedule(){e=!0,requestAnimationFrame((function(){e=!1,flushQueue(t),setTimeout((function(){!function runQueue(e){for(let t=0,u=e.length;t<u;t++)callMethod(e.shift())}(u)}))}))}function flushQueue(e){for(;e.length;)callMethod(e.shift())}function callMethod(e){const t=e[0],u=e[1],n=e[2];try{u.apply(t,n)}catch(e){setTimeout((()=>{throw e}))}}export function flush(){for(;t.length||u.length;)flushQueue(t),flushQueue(u);e=!1}export function beforeNextRender(u,n,o){e||schedule(),t.push([u,n,o])}export function afterNextRender(t,n,o){e||schedule(),u.push([t,n,o])}