<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.mimikkofans.club/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-libAsyncLock.js</id>
	<title>MediaWiki:Gadget-libAsyncLock.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mimikkofans.club/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-libAsyncLock.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;action=history"/>
	<updated>2026-04-08T03:31:58Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;diff=177&amp;oldid=prev</id>
		<title>2024年1月2日 (二) 15:26 一位史蒂夫</title>
		<link rel="alternate" type="text/html" href="https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;diff=177&amp;oldid=prev"/>
		<updated>2024-01-02T15:26:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024年1月2日 (二) 23:26的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/* &amp;lt;pre&gt; */&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/**&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; * -------------------------------------------------------------------------&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; * !!! DON&#039;T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; * -------------------------------------------------------------------------&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; */&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;var _addText = &#039;{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/libAsyncLock/MediaWiki:Gadget-libAsyncLock.js|user=[[U:AnnAngela]]|longId=3820b56ff2ac6eb2e6bb95dd82dd71db679b0c81|shortId=3820b56|message=auto: auto browserify - commit from GitHub Actions}}&#039;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;use strict&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;use strict&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(function () {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(function () {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l402&quot;&gt;第402行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第394行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }).call(this, typeof global !== &amp;quot;undefined&amp;quot; ? global : typeof self !== &amp;quot;undefined&amp;quot; ? self : typeof window !== &amp;quot;undefined&amp;quot; ? window : {});&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }).call(this, typeof global !== &amp;quot;undefined&amp;quot; ? global : typeof self !== &amp;quot;undefined&amp;quot; ? self : typeof window !== &amp;quot;undefined&amp;quot; ? window : {});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}());&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}());&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/* &amp;lt;/pre&gt; */&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_club:diff::1.12:old-150:rev-177 --&gt;
&lt;/table&gt;</summary>
		<author><name>一位史蒂夫</name></author>
	</entry>
	<entry>
		<id>https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;diff=150&amp;oldid=prev</id>
		<title>一位史蒂夫：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;diff=150&amp;oldid=prev"/>
		<updated>2024-01-02T15:18:33Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024年1月2日 (二) 23:18的版本&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key wiki_club:diff::1.12:old-149:rev-150 --&gt;
&lt;/table&gt;</summary>
		<author><name>一位史蒂夫</name></author>
	</entry>
	<entry>
		<id>https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;diff=149&amp;oldid=prev</id>
		<title>test&gt;Lih：​已保护“MediaWiki:Gadget-libAsyncLock.js”：​MW页面（[编辑=仅允许管理员]（无限期）[移动=仅允许管理员]（无限期））</title>
		<link rel="alternate" type="text/html" href="https://wiki.mimikkofans.club/index.php?title=MediaWiki:Gadget-libAsyncLock.js&amp;diff=149&amp;oldid=prev"/>
		<updated>2022-09-23T20:59:51Z</updated>

		<summary type="html">&lt;p&gt;已保护“&lt;a href=&quot;/MediaWiki:Gadget-libAsyncLock.js&quot; title=&quot;MediaWiki:Gadget-libAsyncLock.js&quot;&gt;MediaWiki:Gadget-libAsyncLock.js&lt;/a&gt;”：​MW页面（[编辑=仅允许管理员]（无限期）[移动=仅允许管理员]（无限期））&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* &amp;lt;pre&amp;gt; */&lt;br /&gt;
/**&lt;br /&gt;
 * -------------------------------------------------------------------------&lt;br /&gt;
 * !!! DON&amp;#039;T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!&lt;br /&gt;
 * -------------------------------------------------------------------------&lt;br /&gt;
 */&lt;br /&gt;
var _addText = &amp;#039;{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/libAsyncLock/MediaWiki:Gadget-libAsyncLock.js|user=[[U:AnnAngela]]|longId=3820b56ff2ac6eb2e6bb95dd82dd71db679b0c81|shortId=3820b56|message=auto: auto browserify - commit from GitHub Actions}}&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
(function () {&lt;br /&gt;
    var _$browser_3 = {};&lt;br /&gt;
    var process = _$browser_3 = {};&lt;br /&gt;
    var cachedSetTimeout;&lt;br /&gt;
    var cachedClearTimeout;&lt;br /&gt;
    function defaultSetTimout() {&lt;br /&gt;
        throw new Error(&amp;#039;setTimeout has not been defined&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
    function defaultClearTimeout() {&lt;br /&gt;
        throw new Error(&amp;#039;clearTimeout has not been defined&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
    (function () {&lt;br /&gt;
        try {&lt;br /&gt;
            if (typeof setTimeout === &amp;#039;function&amp;#039;) {&lt;br /&gt;
                cachedSetTimeout = setTimeout;&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                cachedSetTimeout = defaultSetTimout;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        catch (e) {&lt;br /&gt;
            cachedSetTimeout = defaultSetTimout;&lt;br /&gt;
        }&lt;br /&gt;
        try {&lt;br /&gt;
            if (typeof clearTimeout === &amp;#039;function&amp;#039;) {&lt;br /&gt;
                cachedClearTimeout = clearTimeout;&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                cachedClearTimeout = defaultClearTimeout;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        catch (e) {&lt;br /&gt;
            cachedClearTimeout = defaultClearTimeout;&lt;br /&gt;
        }&lt;br /&gt;
    }());&lt;br /&gt;
    function runTimeout(fun) {&lt;br /&gt;
        if (cachedSetTimeout === setTimeout) {&lt;br /&gt;
            return setTimeout(fun, 0);&lt;br /&gt;
        }&lt;br /&gt;
        if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) &amp;amp;&amp;amp; setTimeout) {&lt;br /&gt;
            cachedSetTimeout = setTimeout;&lt;br /&gt;
            return setTimeout(fun, 0);&lt;br /&gt;
        }&lt;br /&gt;
        try {&lt;br /&gt;
            return cachedSetTimeout(fun, 0);&lt;br /&gt;
        }&lt;br /&gt;
        catch (e) {&lt;br /&gt;
            try {&lt;br /&gt;
                return cachedSetTimeout.call(null, fun, 0);&lt;br /&gt;
            }&lt;br /&gt;
            catch (e) {&lt;br /&gt;
                return cachedSetTimeout.call(this, fun, 0);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function runClearTimeout(marker) {&lt;br /&gt;
        if (cachedClearTimeout === clearTimeout) {&lt;br /&gt;
            return clearTimeout(marker);&lt;br /&gt;
        }&lt;br /&gt;
        if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) &amp;amp;&amp;amp; clearTimeout) {&lt;br /&gt;
            cachedClearTimeout = clearTimeout;&lt;br /&gt;
            return clearTimeout(marker);&lt;br /&gt;
        }&lt;br /&gt;
        try {&lt;br /&gt;
            return cachedClearTimeout(marker);&lt;br /&gt;
        }&lt;br /&gt;
        catch (e) {&lt;br /&gt;
            try {&lt;br /&gt;
                return cachedClearTimeout.call(null, marker);&lt;br /&gt;
            }&lt;br /&gt;
            catch (e) {&lt;br /&gt;
                return cachedClearTimeout.call(this, marker);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    var queue = [];&lt;br /&gt;
    var draining = false;&lt;br /&gt;
    var currentQueue;&lt;br /&gt;
    var queueIndex = -1;&lt;br /&gt;
    function cleanUpNextTick() {&lt;br /&gt;
        if (!draining || !currentQueue) {&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        draining = false;&lt;br /&gt;
        if (currentQueue.length) {&lt;br /&gt;
            queue = currentQueue.concat(queue);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            queueIndex = -1;&lt;br /&gt;
        }&lt;br /&gt;
        if (queue.length) {&lt;br /&gt;
            drainQueue();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    function drainQueue() {&lt;br /&gt;
        if (draining) {&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        var timeout = runTimeout(cleanUpNextTick);&lt;br /&gt;
        draining = true;&lt;br /&gt;
        var len = queue.length;&lt;br /&gt;
        while (len) {&lt;br /&gt;
            currentQueue = queue;&lt;br /&gt;
            queue = [];&lt;br /&gt;
            while (++queueIndex &amp;lt; len) {&lt;br /&gt;
                if (currentQueue) {&lt;br /&gt;
                    currentQueue[queueIndex].run();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            queueIndex = -1;&lt;br /&gt;
            len = queue.length;&lt;br /&gt;
        }&lt;br /&gt;
        currentQueue = null;&lt;br /&gt;
        draining = false;&lt;br /&gt;
        runClearTimeout(timeout);&lt;br /&gt;
    }&lt;br /&gt;
    process.nextTick = function (fun) {&lt;br /&gt;
        var args = new Array(arguments.length - 1);&lt;br /&gt;
        if (arguments.length &amp;gt; 1) {&lt;br /&gt;
            for (var i = 1; i &amp;lt; arguments.length; i++) {&lt;br /&gt;
                args[i - 1] = arguments[i];&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        queue.push(new Item(fun, args));&lt;br /&gt;
        if (queue.length === 1 &amp;amp;&amp;amp; !draining) {&lt;br /&gt;
            runTimeout(drainQueue);&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
    function Item(fun, array) {&lt;br /&gt;
        this.fun = fun;&lt;br /&gt;
        this.array = array;&lt;br /&gt;
    }&lt;br /&gt;
    Item.prototype.run = function () {&lt;br /&gt;
        this.fun.apply(null, this.array);&lt;br /&gt;
    };&lt;br /&gt;
    process.title = &amp;#039;browser&amp;#039;;&lt;br /&gt;
    process.browser = true;&lt;br /&gt;
    process.env = {};&lt;br /&gt;
    process.argv = [];&lt;br /&gt;
    process.version = &amp;#039;&amp;#039;;&lt;br /&gt;
    process.versions = {};&lt;br /&gt;
    function noop() { }&lt;br /&gt;
    process.on = noop;&lt;br /&gt;
    process.addListener = noop;&lt;br /&gt;
    process.once = noop;&lt;br /&gt;
    process.off = noop;&lt;br /&gt;
    process.removeListener = noop;&lt;br /&gt;
    process.removeAllListeners = noop;&lt;br /&gt;
    process.emit = noop;&lt;br /&gt;
    process.prependListener = noop;&lt;br /&gt;
    process.prependOnceListener = noop;&lt;br /&gt;
    process.listeners = function (name) { return []; };&lt;br /&gt;
    process.binding = function (name) {&lt;br /&gt;
        throw new Error(&amp;#039;process.binding is not supported&amp;#039;);&lt;br /&gt;
    };&lt;br /&gt;
    process.cwd = function () { return &amp;#039;/&amp;#039;; };&lt;br /&gt;
    process.chdir = function (dir) {&lt;br /&gt;
        throw new Error(&amp;#039;process.chdir is not supported&amp;#039;);&lt;br /&gt;
    };&lt;br /&gt;
    process.umask = function () { return 0; };&lt;br /&gt;
    var _$AsyncLock_2 = {};&lt;br /&gt;
    (function (process) {&lt;br /&gt;
        (function () {&lt;br /&gt;
            &amp;#039;use strict&amp;#039;;&lt;br /&gt;
            var AsyncLock = function (opts) {&lt;br /&gt;
                opts = opts || {};&lt;br /&gt;
                this.Promise = opts.Promise || Promise;&lt;br /&gt;
                this.queues = Object.create(null);&lt;br /&gt;
                this.domainReentrant = opts.domainReentrant || false;&lt;br /&gt;
                if (this.domainReentrant) {&lt;br /&gt;
                    if (typeof process === &amp;#039;undefined&amp;#039; || typeof process.domain === &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
                        throw new Error(&amp;#039;Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, &amp;#039; +&lt;br /&gt;
                            &amp;#039;use a NodeJS version that still implements Domain, or install a browser polyfill.&amp;#039;);&lt;br /&gt;
                    }&lt;br /&gt;
                    this.domains = Object.create(null);&lt;br /&gt;
                }&lt;br /&gt;
                this.timeout = opts.timeout || AsyncLock.DEFAULT_TIMEOUT;&lt;br /&gt;
                this.maxOccupationTime = opts.maxOccupationTime || AsyncLock.DEFAULT_MAX_OCCUPATION_TIME;&lt;br /&gt;
                if (opts.maxPending === Infinity || (Number.isInteger(opts.maxPending) &amp;amp;&amp;amp; opts.maxPending &amp;gt;= 0)) {&lt;br /&gt;
                    this.maxPending = opts.maxPending;&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    this.maxPending = AsyncLock.DEFAULT_MAX_PENDING;&lt;br /&gt;
                }&lt;br /&gt;
            };&lt;br /&gt;
            AsyncLock.DEFAULT_TIMEOUT = 0;&lt;br /&gt;
            AsyncLock.DEFAULT_MAX_OCCUPATION_TIME = 0;&lt;br /&gt;
            AsyncLock.DEFAULT_MAX_PENDING = 1000;&lt;br /&gt;
            AsyncLock.prototype.acquire = function (key, fn, cb, opts) {&lt;br /&gt;
                if (Array.isArray(key)) {&lt;br /&gt;
                    return this._acquireBatch(key, fn, cb, opts);&lt;br /&gt;
                }&lt;br /&gt;
                if (typeof (fn) !== &amp;#039;function&amp;#039;) {&lt;br /&gt;
                    throw new Error(&amp;#039;You must pass a function to execute&amp;#039;);&lt;br /&gt;
                }&lt;br /&gt;
                var deferredResolve = null;&lt;br /&gt;
                var deferredReject = null;&lt;br /&gt;
                var deferred = null;&lt;br /&gt;
                if (typeof (cb) !== &amp;#039;function&amp;#039;) {&lt;br /&gt;
                    opts = cb;&lt;br /&gt;
                    cb = null;&lt;br /&gt;
                    deferred = new this.Promise(function (resolve, reject) {&lt;br /&gt;
                        deferredResolve = resolve;&lt;br /&gt;
                        deferredReject = reject;&lt;br /&gt;
                    });&lt;br /&gt;
                }&lt;br /&gt;
                opts = opts || {};&lt;br /&gt;
                var resolved = false;&lt;br /&gt;
                var timer = null;&lt;br /&gt;
                var occupationTimer = null;&lt;br /&gt;
                var self = this;&lt;br /&gt;
                var done = function (locked, err, ret) {&lt;br /&gt;
                    if (occupationTimer) {&lt;br /&gt;
                        clearTimeout(occupationTimer);&lt;br /&gt;
                        occupationTimer = null;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (locked) {&lt;br /&gt;
                        if (!!self.queues[key] &amp;amp;&amp;amp; self.queues[key].length === 0) {&lt;br /&gt;
                            delete self.queues[key];&lt;br /&gt;
                        }&lt;br /&gt;
                        if (self.domainReentrant) {&lt;br /&gt;
                            delete self.domains[key];&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    if (!resolved) {&lt;br /&gt;
                        if (!deferred) {&lt;br /&gt;
                            if (typeof (cb) === &amp;#039;function&amp;#039;) {&lt;br /&gt;
                                cb(err, ret);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                            if (err) {&lt;br /&gt;
                                deferredReject(err);&lt;br /&gt;
                            }&lt;br /&gt;
                            else {&lt;br /&gt;
                                deferredResolve(ret);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        resolved = true;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (locked) {&lt;br /&gt;
                        if (!!self.queues[key] &amp;amp;&amp;amp; self.queues[key].length &amp;gt; 0) {&lt;br /&gt;
                            self.queues[key].shift()();&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                };&lt;br /&gt;
                var exec = function (locked) {&lt;br /&gt;
                    if (resolved) {&lt;br /&gt;
                        return done(locked);&lt;br /&gt;
                    }&lt;br /&gt;
                    if (timer) {&lt;br /&gt;
                        clearTimeout(timer);&lt;br /&gt;
                        timer = null;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (self.domainReentrant &amp;amp;&amp;amp; locked) {&lt;br /&gt;
                        self.domains[key] = process.domain;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (fn.length === 1) {&lt;br /&gt;
                        var called = false;&lt;br /&gt;
                        try {&lt;br /&gt;
                            fn(function (err, ret) {&lt;br /&gt;
                                if (!called) {&lt;br /&gt;
                                    called = true;&lt;br /&gt;
                                    done(locked, err, ret);&lt;br /&gt;
                                }&lt;br /&gt;
                            });&lt;br /&gt;
                        }&lt;br /&gt;
                        catch (err) {&lt;br /&gt;
                            if (!called) {&lt;br /&gt;
                                called = true;&lt;br /&gt;
                                done(locked, err);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    else {&lt;br /&gt;
                        self._promiseTry(function () {&lt;br /&gt;
                            return fn();&lt;br /&gt;
                        })&lt;br /&gt;
                            .then(function (ret) {&lt;br /&gt;
                            done(locked, undefined, ret);&lt;br /&gt;
                        }, function (error) {&lt;br /&gt;
                            done(locked, error);&lt;br /&gt;
                        });&lt;br /&gt;
                    }&lt;br /&gt;
                };&lt;br /&gt;
                if (self.domainReentrant &amp;amp;&amp;amp; !!process.domain) {&lt;br /&gt;
                    exec = process.domain.bind(exec);&lt;br /&gt;
                }&lt;br /&gt;
                if (!self.queues[key]) {&lt;br /&gt;
                    self.queues[key] = [];&lt;br /&gt;
                    exec(true);&lt;br /&gt;
                }&lt;br /&gt;
                else if (self.domainReentrant &amp;amp;&amp;amp; !!process.domain &amp;amp;&amp;amp; process.domain === self.domains[key]) {&lt;br /&gt;
                    exec(false);&lt;br /&gt;
                }&lt;br /&gt;
                else if (self.queues[key].length &amp;gt;= self.maxPending) {&lt;br /&gt;
                    done(false, new Error(&amp;#039;Too many pending tasks in queue &amp;#039; + key));&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    var taskFn = function () {&lt;br /&gt;
                        exec(true);&lt;br /&gt;
                    };&lt;br /&gt;
                    if (opts.skipQueue) {&lt;br /&gt;
                        self.queues[key].unshift(taskFn);&lt;br /&gt;
                    }&lt;br /&gt;
                    else {&lt;br /&gt;
                        self.queues[key].push(taskFn);&lt;br /&gt;
                    }&lt;br /&gt;
                    var timeout = opts.timeout || self.timeout;&lt;br /&gt;
                    if (timeout) {&lt;br /&gt;
                        timer = setTimeout(function () {&lt;br /&gt;
                            timer = null;&lt;br /&gt;
                            done(false, new Error(&amp;#039;async-lock timed out in queue &amp;#039; + key));&lt;br /&gt;
                        }, timeout);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                var maxOccupationTime = opts.maxOccupationTime || self.maxOccupationTime;&lt;br /&gt;
                if (maxOccupationTime) {&lt;br /&gt;
                    occupationTimer = setTimeout(function () {&lt;br /&gt;
                        if (!!self.queues[key]) {&lt;br /&gt;
                            done(false, new Error(&amp;#039;Maximum occupation time is exceeded in queue &amp;#039; + key));&lt;br /&gt;
                        }&lt;br /&gt;
                    }, maxOccupationTime);&lt;br /&gt;
                }&lt;br /&gt;
                if (deferred) {&lt;br /&gt;
                    return deferred;&lt;br /&gt;
                }&lt;br /&gt;
            };&lt;br /&gt;
            AsyncLock.prototype._acquireBatch = function (keys, fn, cb, opts) {&lt;br /&gt;
                if (typeof (cb) !== &amp;#039;function&amp;#039;) {&lt;br /&gt;
                    opts = cb;&lt;br /&gt;
                    cb = null;&lt;br /&gt;
                }&lt;br /&gt;
                var self = this;&lt;br /&gt;
                var getFn = function (key, fn) {&lt;br /&gt;
                    return function (cb) {&lt;br /&gt;
                        self.acquire(key, fn, cb, opts);&lt;br /&gt;
                    };&lt;br /&gt;
                };&lt;br /&gt;
                var fnx = keys.reduceRight(function (prev, key) {&lt;br /&gt;
                    return getFn(key, prev);&lt;br /&gt;
                }, fn);&lt;br /&gt;
                if (typeof (cb) === &amp;#039;function&amp;#039;) {&lt;br /&gt;
                    fnx(cb);&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    return new this.Promise(function (resolve, reject) {&lt;br /&gt;
                        if (fnx.length === 1) {&lt;br /&gt;
                            fnx(function (err, ret) {&lt;br /&gt;
                                if (err) {&lt;br /&gt;
                                    reject(err);&lt;br /&gt;
                                }&lt;br /&gt;
                                else {&lt;br /&gt;
                                    resolve(ret);&lt;br /&gt;
                                }&lt;br /&gt;
                            });&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                            resolve(fnx());&lt;br /&gt;
                        }&lt;br /&gt;
                    });&lt;br /&gt;
                }&lt;br /&gt;
            };&lt;br /&gt;
            AsyncLock.prototype.isBusy = function (key) {&lt;br /&gt;
                if (!key) {&lt;br /&gt;
                    return Object.keys(this.queues).length &amp;gt; 0;&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    return !!this.queues[key];&lt;br /&gt;
                }&lt;br /&gt;
            };&lt;br /&gt;
            AsyncLock.prototype._promiseTry = function (fn) {&lt;br /&gt;
                try {&lt;br /&gt;
                    return this.Promise.resolve(fn());&lt;br /&gt;
                }&lt;br /&gt;
                catch (e) {&lt;br /&gt;
                    return this.Promise.reject(e);&lt;br /&gt;
                }&lt;br /&gt;
            };&lt;br /&gt;
            _$AsyncLock_2 = AsyncLock;&lt;br /&gt;
        }).call(this);&lt;br /&gt;
    }).call(this, _$browser_3);&lt;br /&gt;
    &amp;#039;use strict&amp;#039;;&lt;br /&gt;
    var _$asyncLock_1 = _$AsyncLock_2;&lt;br /&gt;
    var _$input_4 = {};&lt;br /&gt;
    (function (global) {&lt;br /&gt;
        (function () {&lt;br /&gt;
            &amp;quot;use strict&amp;quot;;&lt;br /&gt;
            var _asyncLock = _interopRequireDefault(_$asyncLock_1);&lt;br /&gt;
            function _interopRequireDefault(obj) { return obj &amp;amp;&amp;amp; obj.__esModule ? obj : { &amp;quot;default&amp;quot;: obj }; }&lt;br /&gt;
            global[&amp;quot;AsyncLock&amp;quot;] = _asyncLock[&amp;quot;default&amp;quot;];&lt;br /&gt;
        }).call(this);&lt;br /&gt;
    }).call(this, typeof global !== &amp;quot;undefined&amp;quot; ? global : typeof self !== &amp;quot;undefined&amp;quot; ? self : typeof window !== &amp;quot;undefined&amp;quot; ? window : {});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* &amp;lt;/pre&amp;gt; */&lt;/div&gt;</summary>
		<author><name>test&gt;Lih</name></author>
	</entry>
</feed>