-
Notifications
You must be signed in to change notification settings - Fork 4
/
glslminify.min.js
207 lines (206 loc) · 94.7 KB
/
glslminify.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
/* Copyright 2011-2015 Roy Williams, Tobias Schwinger and the Closure team.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function(){
var aa=this;function da(c){return void 0!==c}
function ea(c){var f=typeof c;if("object"==f)if(c){if(c instanceof Array)return"array";if(c instanceof Object)return f;var k=Object.prototype.toString.call(c);if("[object Window]"==k)return"object";if("[object Array]"==k||"number"==typeof c.length&&"undefined"!=typeof c.splice&&"undefined"!=typeof c.propertyIsEnumerable&&!c.propertyIsEnumerable("splice"))return"array";if("[object Function]"==k||"undefined"!=typeof c.call&&"undefined"!=typeof c.propertyIsEnumerable&&!c.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==f&&"undefined"==typeof c.call)return"object";return f}function fa(c,f,k){return c.call.apply(c.bind,arguments)}function ga(c,f,k){if(!c)throw Error();if(2<arguments.length){var n=Array.prototype.slice.call(arguments,2);return function(){var g=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(g,n);return c.apply(f,g)}}return function(){return c.apply(f,arguments)}}
function ia(c,f,k){ia=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?fa:ga;return ia.apply(null,arguments)}function ka(c,f){var k=c.split("."),n=aa;k[0]in n||!n.execScript||n.execScript("var "+k[0]);for(var g;k.length&&(g=k.shift());)!k.length&&da(f)?n[g]=f:n[g]?n=n[g]:n=n[g]={}}
function v(c,f){function k(){}k.prototype=f.prototype;c.Ma=f.prototype;c.prototype=new k;c.prototype.constructor=c;c.La=function(c,g,k){for(var B=Array(arguments.length-2),q=2;q<arguments.length;q++)B[q-2]=arguments[q];return f.prototype[g].apply(c,B)}};var la={};
function A(c,f){function k(b){var a=b.charCodeAt(0),e;255>=a?(b="x",e=2):(b="u",e=4);var d=a.toString(16).toUpperCase(),a=d;e-=d.length;for(d=0;d<e;d++)a="0"+a;return"\\"+b+a}function n(b){return'"'+b.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,k)+'"'}function g(c){b<ta||(b>ta&&(ta=b,ob=[]),ob.push(c))}function t(){var w="newLine@"+b,a=p[w];if(a)return b=
a.b,a.result;var e;e=b;/^[\n]/.test(c.charAt(b))?(a=c.charAt(b),b++):(a=null,0===l&&g("[\\n]"));null!==a&&(a="\n");null===a&&(b=e);p[w]={b:b,result:a};return a}function B(){var w="EOF@"+b,a=p[w];if(a)return b=a.b,a.result;var e;e=b;l++;c.length>b?(a=c.charAt(b),b++):(a=null,0===l&&g("any character"));l--;null===a?a="":(a=null,b=e);p[w]={b:b,result:a};return a}function q(){var w="_@"+b,a=p[w];if(a)return b=a.b,a.result;var e;l++;e=t();null===e&&(/^[\\\n]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,
0===l&&g("[\\\\\\n]")),null===e&&(/^[\r\t\f\x0B ]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[\\r\\t\\f\\x0B ]")),null===e&&(e=C())));if(null!==e)for(a=[];null!==e;)a.push(e),e=t(),null===e&&(/^[\\\n]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[\\\\\\n]")),null===e&&(/^[\r\t\f\x0B ]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[\\r\\t\\f\\x0B ]")),null===e&&(e=C())));else a=null;l--;0===l&&null===a&&g("whitespace");p[w]={b:b,result:a};return a}function x(){var w=
"noNewlineComment@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u;m=b;"/*"===c.substr(b,2)?(a="/*",b+=2):(a=null,0===l&&g('"/*"'));if(null!==a){e=[];h=u=b;l++;"*/"===c.substr(b,2)?(d="*/",b+=2):(d=null,0===l&&g('"*/"'));l--;null===d?d="":(d=null,b=h);null!==d?(c.length>b?(h=c.charAt(b),b++):(h=null,0===l&&g("any character")),null!==h?d=[d,h]:(d=null,b=u)):(d=null,b=u);for(;null!==d;)e.push(d),h=u=b,l++,"*/"===c.substr(b,2)?(d="*/",b+=2):(d=null,0===l&&g('"*/"')),l--,null===d?d="":(d=null,b=h),
null!==d?(c.length>b?(h=c.charAt(b),b++):(h=null,0===l&&g("any character")),null!==h?d=[d,h]:(d=null,b=u)):(d=null,b=u);null!==e?("*/"===c.substr(b,2)?(d="*/",b+=2):(d=null,0===l&&g('"*/"')),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)}else a=null,b=m;if(null===a)if(m=b,"//"===c.substr(b,2)?(a="//",b+=2):(a=null,0===l&&g('"//"')),null!==a){e=[];/^[^\n]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[^\\n]"));for(;null!==d;)e.push(d),/^[^\n]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,
0===l&&g("[^\\n]"));null!==e?a=[a,e]:(a=null,b=m)}else a=null,b=m;p[w]={b:b,result:a};return a}function ha(){var w="noNewlineWhitespace@"+b,a=p[w];if(a)return b=a.b,a.result;var e;/^[\r\t\f\x0B ]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[\\r\\t\\f\\x0B ]"));null===e&&(e=x());if(null!==e)for(a=[];null!==e;)a.push(e),/^[\r\t\f\x0B ]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[\\r\\t\\f\\x0B ]")),null===e&&(e=x());else a=null;p[w]={b:b,result:a};return a}function C(){var w=
"comment@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u;l++;m=b;"/*"===c.substr(b,2)?(a="/*",b+=2):(a=null,0===l&&g('"/*"'));if(null!==a){e=[];h=u=b;l++;"*/"===c.substr(b,2)?(d="*/",b+=2):(d=null,0===l&&g('"*/"'));l--;null===d?d="":(d=null,b=h);null!==d?(c.length>b?(h=c.charAt(b),b++):(h=null,0===l&&g("any character")),null!==h?d=[d,h]:(d=null,b=u)):(d=null,b=u);for(;null!==d;)e.push(d),h=u=b,l++,"*/"===c.substr(b,2)?(d="*/",b+=2):(d=null,0===l&&g('"*/"')),l--,null===d?d="":(d=null,b=h),null!==
d?(c.length>b?(h=c.charAt(b),b++):(h=null,0===l&&g("any character")),null!==h?d=[d,h]:(d=null,b=u)):(d=null,b=u);null!==e?("*/"===c.substr(b,2)?(d="*/",b+=2):(d=null,0===l&&g('"*/"')),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)}else a=null,b=m;if(null===a)if(m=b,"//"===c.substr(b,2)?(a="//",b+=2):(a=null,0===l&&g('"//"')),null!==a){e=[];/^[^\n]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[^\\n]"));for(;null!==d;)e.push(d),/^[^\n]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&
g("[^\\n]"));null!==e?(d=t(),null===d&&(d=B()),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)}else a=null,b=m;l--;0===l&&null===a&&g("comment");p[w]={b:b,result:a};return a}function z(){var w="semicolon@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(59===c.charCodeAt(b)?(e=";",b+=1):(e=null,0===l&&g('";"')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function H(){var w="comma@"+b,a=p[w];
if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(44===c.charCodeAt(b)?(e=",",b+=1):(e=null,0===l&&g('","')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function ua(){var w="left_bracket@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(91===c.charCodeAt(b)?(e="[",b+=1):(e=null,0===l&&g('"["')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,
b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function va(){var w="right_bracket@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(93===c.charCodeAt(b)?(e="]",b+=1):(e=null,0===l&&g('"]"')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function cc(){var w="equals@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(61===c.charCodeAt(b)?(e="=",b+=1):(e=null,
0===l&&g('"="')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function ba(){var w="left_paren@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(40===c.charCodeAt(b)?(e="(",b+=1):(e=null,0===l&&g('"("')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function ca(){var w="right_paren@"+b,a=p[w];if(a)return b=a.b,a.result;
var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(41===c.charCodeAt(b)?(e=")",b+=1):(e=null,0===l&&g('")"')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function pb(){var w="left_brace@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(123===c.charCodeAt(b)?(e="{",b+=1):(e=null,0===l&&g('"{"')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,
result:a};return a}function qb(){var w="right_brace@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h;h=b;a=q();a=null!==a?a:"";null!==a?(125===c.charCodeAt(b)?(e="}",b+=1):(e=null,0===l&&g('"}"')),null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=h)):(a=null,b=h)):(a=null,b=h);p[w]={b:b,result:a};return a}function ja(){var c="external_statement_list@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,a=b;e=[];for(d=rb();null!==d;)e.push(d),d=rb();if(null!==e){d=new y({type:"root",C:[]});for(var h=
0;h<e.length;h++)e[h]&&(d.C=d.C.concat(e[h]));e=d}null===e&&(b=a);p[c]={b:b,result:e};return e}function rb(){var c="external_statement@"+b,a=p[c];if(a)return b=a.b,a.result;var e;e=b;a=dc();null===a&&(a=ec());null===a&&(b=e);null===a&&(e=b,a=q(),null!==a&&(a=""),null===a&&(b=e));p[c]={b:b,result:a};return a}function ec(){var c="external_declaration@"+b,a=p[c];if(a)return b=a.b,a.result;a=fc();null===a&&(a=gc(),null===a&&(a=sb(),null===a&&(a=tb(),null===a&&(a=hc(),null===a&&(a=Oa())))));p[c]={b:b,
result:a};return a}function tb(){var w="preprocessor_operator@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f,k;f=u=b;35===c.charCodeAt(b)?(a="#",b+=1):(a=null,0===l&&g('"#"'));if(null!==a)if("undef"===c.substr(b,5)?(e="undef",b+=5):(e=null,0===l&&g('"undef"')),null===e&&("pragma"===c.substr(b,6)?(e="pragma",b+=6):(e=null,0===l&&g('"pragma"')),null===e&&("version"===c.substr(b,7)?(e="version",b+=7):(e=null,0===l&&g('"version"')),null===e&&("error"===c.substr(b,5)?(e="error",b+=5):(e=null,0===
l&&g('"error"')),null===e&&("extension"===c.substr(b,9)?(e="extension",b+=9):(e=null,0===l&&g('"extension"')),null===e&&("line"===c.substr(b,4)?(e="line",b+=4):(e=null,0===l&&g('"line"'))))))),null!==e)if(d=q(),null!==d){k=b;h=[];/^[^\n]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[^\\n]"));for(;null!==m;)h.push(m),/^[^\n]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[^\\n]"));null!==h&&(h=h.join(""));null===h&&(b=k);null!==h?(m=t(),null===m&&(m=B()),null!==m?a=[a,e,d,h,m]:
(a=null,b=f)):(a=null,b=f)}else a=null,b=f;else a=null,b=f;else a=null,b=f;null!==a&&(a=new y({type:"preprocessor",B:"#"+a[1],value:a[3]}));null===a&&(b=u);p[w]={b:b,result:a};return a}function na(){var w="macro_identifier@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;/^[A-Za-z_]/.test(c.charAt(b))?(a=c.charAt(b),b++):(a=null,0===l&&g("[A-Za-z_]"));if(null!==a){e=[];/^[A-Za-z_0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[A-Za-z_0-9]"));for(;null!==d;)e.push(d),/^[A-Za-z_0-9]/.test(c.charAt(b))?
(d=c.charAt(b),b++):(d=null,0===l&&g("[A-Za-z_0-9]"));null!==e?a=[a,e]:(a=null,b=m)}else a=null,b=m;null!==a&&(a=new y({type:"identifier",name:a[0]+a[1].join("")}));null===a&&(b=h);p[w]={b:b,result:a};return a}function ic(){var w="preprocessor_parameter_list@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f,k;f=u=b;40===c.charCodeAt(b)?(a="(",b+=1):(a=null,0===l&&g('"("'));if(null!==a)if(e=na(),e=null!==e?e:"",null!==e){d=[];k=b;h=H();null!==h?(m=na(),null!==m?h=[h,m]:(h=null,b=k)):(h=null,b=
k);for(;null!==h;)d.push(h),k=b,h=H(),null!==h?(m=na(),null!==m?h=[h,m]:(h=null,b=k)):(h=null,b=k);null!==d?(h=ca(),null!==h?a=[a,e,d,h]:(a=null,b=f)):(a=null,b=f)}else a=null,b=f;else a=null,b=f;null!==a&&(a=function(a,b){return a?[a].concat(b.map(function(a){return a[1]})):[]}(a[1],a[2]));null===a&&(b=u);p[w]={b:b,result:a};return a}function ub(){var w="macro_paren_parameter@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f,k,r;f=u=b;a=ba();if(null!==a){r=k=b;e=[];/^[^()]/.test(c.charAt(b))?
(d=c.charAt(b),b++):(d=null,0===l&&g("[^()]"));for(;null!==d;)e.push(d),/^[^()]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[^()]"));if(null!==e)if(d=ub(),d=null!==d?d:"",null!==d){h=[];/^[^()]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[^()]"));for(;null!==m;)h.push(m),/^[^()]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[^()]"));null!==h?e=[e,d,h]:(e=null,b=r)}else e=null,b=r;else e=null,b=r;null!==e&&(e=e[0].join("")+e[1]+e[2].join(""));null===e&&(b=k);null!==
e?(d=ca(),null!==d?a=[a,e,d]:(a=null,b=f)):(a=null,b=f)}else a=null,b=f;null!==a&&(a="("+a[1]+")");null===a&&(b=u);p[w]={b:b,result:a};return a}function Pa(){var w="macro_call_parameter@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,a=ub();if(null===a){d=b;a=[];/^[^,)]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[^,)]"));for(;null!==e;)a.push(e),/^[^,)]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[^,)]"));null!==a&&(a=a.join(""));null===a&&(b=d)}p[w]={b:b,result:a};return a}
function Oa(){var w="macro_call@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f;f=a=b;e=na();null!==e?(d=q(),d=null!==d?d:"",null!==d?(h=ba(),null!==h?(m=vb(),m=null!==m?m:"",null!==m?(41===c.charCodeAt(b)?(u=")",b+=1):(u=null,0===l&&g('")"')),null!==u?e=[e,d,h,m,u]:(e=null,b=f)):(e=null,b=f)):(e=null,b=f)):(e=null,b=f)):(e=null,b=f);null!==e&&(d=e[3],e=new y({type:"macro_call",na:e[0],l:d}),d||(e.l=[]));null===e&&(b=a);p[w]={b:b,result:e};return e}function sb(){var w="preprocessor_define@"+
b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f,k,r,n,x,z;x=n=b;35===c.charCodeAt(b)?(a="#",b+=1):(a=null,0===l&&g('"#"'));if(null!==a)if(e=q(),e=null!==e?e:"",null!==e)if("define"===c.substr(b,6)?(d="define",b+=6):(d=null,0===l&&g('"define"')),null!==d)if(h=q(),null!==h)if(m=na(),null!==m)if(u=ic(),u=null!==u?u:"",null!==u){f=[];/^[ \t]/.test(c.charAt(b))?(k=c.charAt(b),b++):(k=null,0===l&&g("[ \\t]"));for(;null!==k;)f.push(k),/^[ \t]/.test(c.charAt(b))?(k=c.charAt(b),b++):(k=null,0===l&&g("[ \\t]"));
if(null!==f){z=b;k=[];/^[^\n]/.test(c.charAt(b))?(r=c.charAt(b),b++):(r=null,0===l&&g("[^\\n]"));for(;null!==r;)k.push(r),/^[^\n]/.test(c.charAt(b))?(r=c.charAt(b),b++):(r=null,0===l&&g("[^\\n]"));null!==k&&(k=k.join(""));null===k&&(b=z);null!==k?(r=t(),null===r&&(r=B()),null!==r?a=[a,e,d,h,m,u,f,k,r]:(a=null,b=x)):(a=null,b=x)}else a=null,b=x}else a=null,b=x;else a=null,b=x;else a=null,b=x;else a=null,b=x;else a=null,b=x;else a=null,b=x;null!==a&&(a=new y({type:"preprocessor",B:"#define",identifier:a[4].name,
oa:a[7],l:a[5]||null}));null===a&&(b=n);p[w]={b:b,result:a};return a}function wb(){var w="preprocessor_if@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f,k,r;k=f=b;35===c.charCodeAt(b)?(a="#",b+=1):(a=null,0===l&&g('"#"'));if(null!==a)if(e=q(),e=null!==e?e:"",null!==e)if("ifdef"===c.substr(b,5)?(d="ifdef",b+=5):(d=null,0===l&&g('"ifdef"')),null===d&&("ifndef"===c.substr(b,6)?(d="ifndef",b+=6):(d=null,0===l&&g('"ifndef"')),null===d&&("if"===c.substr(b,2)?(d="if",b+=2):(d=null,0===l&&g('"if"')))),
null!==d)if(h=q(),null!==h){r=b;m=[];/^[^\n]/.test(c.charAt(b))?(u=c.charAt(b),b++):(u=null,0===l&&g("[^\\n]"));for(;null!==u;)m.push(u),/^[^\n]/.test(c.charAt(b))?(u=c.charAt(b),b++):(u=null,0===l&&g("[^\\n]"));null!==m&&(m=m.join(""));null===m&&(b=r);null!==m?(u=t(),null===u&&(u=B()),null!==u?a=[a,e,d,h,m,u]:(a=null,b=k)):(a=null,b=k)}else a=null,b=k;else a=null,b=k;else a=null,b=k;else a=null,b=k;null!==a&&(a=new y({type:"preprocessor",B:"#"+a[2],value:a[4]}));null===a&&(b=f);p[w]={b:b,result:a};
return a}function wa(){var w="preprocessor_else_if@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,u,f,k,r;k=f=b;35===c.charCodeAt(b)?(a="#",b+=1):(a=null,0===l&&g('"#"'));if(null!==a)if(e=q(),e=null!==e?e:"",null!==e)if("elif"===c.substr(b,4)?(d="elif",b+=4):(d=null,0===l&&g('"elif"')),null!==d)if(h=q(),null!==h){r=b;m=[];/^[^\n]/.test(c.charAt(b))?(u=c.charAt(b),b++):(u=null,0===l&&g("[^\\n]"));for(;null!==u;)m.push(u),/^[^\n]/.test(c.charAt(b))?(u=c.charAt(b),b++):(u=null,0===l&&g("[^\\n]"));
null!==m&&(m=m.join(""));null===m&&(b=r);null!==m?(u=t(),null===u&&(u=B()),null!==u?a=[a,e,d,h,m,u]:(a=null,b=k)):(a=null,b=k)}else a=null,b=k;else a=null,b=k;else a=null,b=k;else a=null,b=k;null!==a&&(a=new y({type:"preprocessor",B:"#elif",value:a[4]}));null===a&&(b=f);p[w]={b:b,result:a};return a}function xb(){var w="preprocessor_else@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,f,k;k=f=b;35===c.charCodeAt(b)?(a="#",b+=1):(a=null,0===l&&g('"#"'));null!==a?(e=q(),e=null!==e?e:"",null!==e?("else"===
c.substr(b,4)?(d="else",b+=4):(d=null,0===l&&g('"else"')),null!==d?(h=ha(),h=null!==h?h:"",null!==h?(m=t(),null!==m?a=[a,e,d,h,m]:(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k);null!==a&&(a=new y({type:"preprocessor",B:"#else"}));null===a&&(b=f);p[w]={b:b,result:a};return a}function yb(){var w="preprocessor_end@"+b,a=p[w];if(a)return b=a.b,a.result;var e,d,h,m,f,k;k=b;35===c.charCodeAt(b)?(a="#",b+=1):(a=null,0===l&&g('"#"'));null!==a?(e=q(),e=null!==e?e:"",null!==e?("endif"===
c.substr(b,5)?(d="endif",b+=5):(d=null,0===l&&g('"endif"')),null!==d?(h=ha(),h=null!==h?h:"",null!==h?(m=t(),null===m&&(m=B()),null!==m?(f=q(),f=null!==f?f:"",null!==f?a=[a,e,d,h,m,f]:(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k);p[w]={b:b,result:a};return a}function dc(){var c="preprocessor_external_branch@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,g,f;f=g=m=b;a=wb();null!==a?(e=ja(),null!==e?a=[a,e]:(a=null,b=f)):(a=null,b=f);if(null!==a){e=[];f=b;d=wa();
null!==d?(h=ja(),null!==h?d=[d,h]:(d=null,b=f)):(d=null,b=f);for(;null!==d;)e.push(d),f=b,d=wa(),null!==d?(h=ja(),null!==h?d=[d,h]:(d=null,b=f)):(d=null,b=f);null!==e?(f=b,d=xb(),null!==d?(h=ja(),null!==h?d=[d,h]:(d=null,b=f)):(d=null,b=f),d=null!==d?d:"",null!==d?(h=yb(),null!==h?a=[a,e,d,h]:(a=null,b=g)):(a=null,b=g)):(a=null,b=g)}else a=null,b=g;null!==a&&(a=jc(a[0],a[1],a[2]));null===a&&(b=m);p[c]={b:b,result:a};return a}function zb(){var c="preprocessor_statement_branch@"+b,a=p[c];if(a)return b=
a.b,a.result;var e,d,h,m,g,f;f=g=m=b;a=wb();null!==a?(e=oa(),null!==e?a=[a,e]:(a=null,b=f)):(a=null,b=f);if(null!==a){e=[];f=b;d=wa();null!==d?(h=oa(),null!==h?d=[d,h]:(d=null,b=f)):(d=null,b=f);for(;null!==d;)e.push(d),f=b,d=wa(),null!==d?(h=oa(),null!==h?d=[d,h]:(d=null,b=f)):(d=null,b=f);null!==e?(f=b,d=xb(),null!==d?(h=oa(),null!==h?d=[d,h]:(d=null,b=f)):(d=null,b=f),d=null!==d?d:"",null!==d?(h=yb(),null!==h?a=[a,e,d,h]:(a=null,b=g)):(a=null,b=g)):(a=null,b=g)}else a=null,b=g;null!==a&&(a=jc(a[0],
a[1],a[2]));null===a&&(b=m);p[c]={b:b,result:a};return a}function fc(){var c="function_definition@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h;h=d=b;a=Ab();null!==a?(e=Qa(),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(e=a[0],a=L=new y({type:"function_declaration",name:e.name,la:e.la,l:e.l,body:a[1]}));null===a&&(b=d);p[c]={b:b,result:a};return a}function Qa(){var c="compound_statement@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;m=a=b;e=pb();null!==e?(d=oa(),d=null!==d?d:"",null!==
d?(h=qb(),null!==h?e=[e,d,h]:(e=null,b=m)):(e=null,b=m)):(e=null,b=m);null!==e&&(e=e[1],L=new y({type:"scope",C:[]}),e&&e.C&&(L.C=e.C),e=L);null===e&&(b=a);p[c]={b:b,result:e};return e}function oa(){var c="statement_list@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;a=q();a=null!==a?a:"";if(null!==a){e=[];for(d=xa();null!==d;)e.push(d),d=xa();null!==e?(d=q(),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)}else a=null,b=m;null!==a&&(a={C:a[1]});null===a&&(b=h);p[c]={b:b,result:a};
return a}function xa(){var c="statement_no_new_scope@"+b,a=p[c];if(a)return b=a.b,a.result;a=Qa();null===a&&(a=Bb(),null===a&&(a=zb()));p[c]={b:b,result:a};return a}function Ra(){var c="statement_with_scope@"+b,a=p[c];if(a)return b=a.b,a.result;a=Qa();null===a&&(a=Bb(),null===a&&(a=zb()));p[c]={b:b,result:a};return a}function Bb(){var c="simple_statement@"+b,a=p[c];if(a)return b=a.b,a.result;var e;e=b;a=Sa();null===a&&(a=Cb(),null===a&&(a=kc(),null===a&&(a=lc(),null===a&&(a=mc(),null===a&&(a=sb(),
null===a&&(a=tb(),null===a&&(a=Oa())))))));null===a&&(b=e);p[c]={b:b,result:a};return a}function kc(){var f="selection_statement@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,u,k,n,r,t,x;t=r=b;"if"===c.substr(b,2)?(a="if",b+=2):(a=null,0===l&&g('"if"'));null!==a?(e=ba(),null!==e?(d=S(),null!==d?(h=ca(),null!==h?(m=Ra(),null!==m?(x=b,"else"===c.substr(b,4)?(u="else",b+=4):(u=null,0===l&&g('"else"')),null!==u?(k=q(),k=null!==k?k:"",null!==k?(n=Ra(),null!==n?u=[u,k,n]:(u=null,b=x)):(u=null,b=x)):
(u=null,b=x),u=null!==u?u:"",null!==u?a=[a,e,d,h,m,u]:(a=null,b=t)):(a=null,b=t)):(a=null,b=t)):(a=null,b=t)):(a=null,b=t)):(a=null,b=t);null!==a&&(e=a[5],L=new y({type:"if_statement",F:a[2],body:a[4]}),e&&(L.M=e[2]),a=L);null===a&&(b=r);p[f]={b:b,result:a};return a}function nc(){var f="for_loop@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,u,k,q,r,n;n=r=b;"for"===c.substr(b,3)?(a="for",b+=3):(a=null,0===l&&g('"for"'));null!==a?(e=ba(),null!==e?(d=Cb(),null===d&&(d=Sa()),null!==d?(h=Db(),h=null!==
h?h:"",null!==h?(m=z(),null!==m?(u=S(),u=null!==u?u:"",null!==u?(k=ca(),null!==k?(q=xa(),null!==q?a=[a,e,d,h,m,u,k,q]:(a=null,b=n)):(a=null,b=n)):(a=null,b=n)):(a=null,b=n)):(a=null,b=n)):(a=null,b=n)):(a=null,b=n)):(a=null,b=n);null!==a&&(a=new y({type:"for_statement",H:a[2],F:a[3],Fa:a[5],body:a[7]}));null===a&&(b=r);p[f]={b:b,result:a};return a}function Eb(){var f="while_statement@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,u;u=m=b;"while"===c.substr(b,5)?(a="while",b+=5):(a=null,0===l&&
g('"while"'));null!==a?(e=ba(),null!==e?(d=Db(),null!==d?(h=ca(),null!==h?a=[a,e,d,h]:(a=null,b=u)):(a=null,b=u)):(a=null,b=u)):(a=null,b=u);null!==a&&(a={F:a[2]});null===a&&(b=m);p[f]={b:b,result:a};return a}function oc(){var c="while_loop@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h;h=d=b;a=Eb();null!==a?(e=xa(),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"while_statement",F:a[0].F,body:a[1]}));null===a&&(b=d);p[c]={b:b,result:a};return a}function pc(){var f="do_while@"+
b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;"do"===c.substr(b,2)?(a="do",b+=2):(a=null,0===l&&g('"do"'));null!==a?(e=Ra(),null!==e?(d=Eb(),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(a=new y({type:"do_statement",F:a[2].F,body:a[1]}));null===a&&(b=h);p[f]={b:b,result:a};return a}function lc(){var c="iteration_statement@"+b,a=p[c];if(a)return b=a.b,a.result;a=oc();null===a&&(a=pc(),null===a&&(a=nc()));p[c]={b:b,result:a};return a}function mc(){var f="jump_statement@"+
b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,u;u=m=b;"return"===c.substr(b,6)?(a="return",b+=6):(a=null,0===l&&g('"return"'));null!==a?(e=q(),e=null!==e?e:"",null!==e?(d=S(),null!==d?(h=z(),null!==h?a=[a,e,d,h]:(a=null,b=u)):(a=null,b=u)):(a=null,b=u)):(a=null,b=u);null!==a&&(a=new y({type:"return",value:a[2]}));null===a&&(b=m);null===a&&(u=m=b,"continue"===c.substr(b,8)?(a="continue",b+=8):(a=null,0===l&&g('"continue"')),null!==a?(e=z(),null!==e?a=[a,e]:(a=null,b=u)):(a=null,b=u),null===a&&(u=
b,"break"===c.substr(b,5)?(a="break",b+=5):(a=null,0===l&&g('"break"')),null!==a?(e=z(),null!==e?a=[a,e]:(a=null,b=u)):(a=null,b=u),null===a&&(u=b,"return"===c.substr(b,6)?(a="return",b+=6):(a=null,0===l&&g('"return"')),null!==a?(e=z(),null!==e?a=[a,e]:(a=null,b=u)):(a=null,b=u),null===a&&(h=d=u=b,a="fs"==ya?"":null,null!==a?("discard"===c.substr(b,7)?(e="discard",b+=7):(e=null,0===l&&g('"discard"')),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h),null!==a&&(a="discard"),null===a&&(b=d),null!==a?(e=z(),
null!==e?a=[a,e]:(a=null,b=u)):(a=null,b=u)))),null!==a&&(a=new y({type:a[0]})),null===a&&(b=m));p[f]={b:b,result:a};return a}function Cb(){var c="expression_statement@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h;h=d=b;a=S();a=null!==a?a:"";null!==a?(e=z(),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"expression",N:a[0]}));null===a&&(b=d);p[c]={b:b,result:a};return a}function Sa(){var f="declaration@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,u,k,n,r,t;l++;r=n=b;a=
Ab();null!==a?(e=z(),null!==e?a=[a,e]:(a=null,b=r)):(a=null,b=r);null!==a&&(a=a[0]);null===a&&(b=n);if(null===a&&(r=n=b,a=za(),null!==a?(e=q(),null!==e?(d=Fb(),null!==d?(h=z(),null!==h?a=[a,e,d,h]:(a=null,b=r)):(a=null,b=r)):(a=null,b=r)):(a=null,b=r),null!==a&&(a=new y({type:"declarator",v:a[0],w:a[2]})),null===a&&(b=n),null===a)){r=n=b;a="vs"==ya?"":null;if(null!==a)if("invariant"===c.substr(b,9)?(e="invariant",b+=9):(e=null,0===l&&g('"invariant"')),null!==e)if(d=q(),null!==d)if(h=Q(),null!==h){m=
[];t=b;u=H();null!==u?(k=Q(),null!==k?u=[u,k]:(u=null,b=t)):(u=null,b=t);for(;null!==u;)m.push(u),t=b,u=H(),null!==u?(k=Q(),null!==k?u=[u,k]:(u=null,b=t)):(u=null,b=t);null!==m?(u=z(),null!==u?a=[a,e,d,h,m,u]:(a=null,b=r)):(a=null,b=r)}else a=null,b=r;else a=null,b=r;else a=null,b=r;else a=null,b=r;null!==a&&(a=function(a,b){var d=[a].concat(b.map(function(a){return a[1]}));return new y({type:"invariant",Ea:d})}(a[3],a[4]));null===a&&(b=n);null===a&&(r=n=b,"precision"===c.substr(b,9)?(a="precision",
b+=9):(a=null,0===l&&g('"precision"')),null!==a?(e=q(),null!==e?(d=Ta(),null!==d?(h=q(),null!==h?(m=Aa(),null!==m?(u=z(),null!==u?a=[a,e,d,h,m,u]:(a=null,b=r)):(a=null,b=r)):(a=null,b=r)):(a=null,b=r)):(a=null,b=r)):(a=null,b=r),null!==a&&(a=new y({type:"precision",precision:a[2],typeName:a[4]})),null===a&&(b=n))}l--;0===l&&null===a&&g("declaration");p[f]={b:b,result:a};return a}function gc(){var c="global_declaration@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,a=Sa();null===a&&(f=m=b,a=qc(),
null!==a?(e=q(),null!==e?(d=Fb(),null!==d?(h=z(),null!==h?a=[a,e,d,h]:(a=null,b=f)):(a=null,b=f)):(a=null,b=f)):(a=null,b=f),null!==a&&(a=new y({type:"declarator",v:a[0],w:a[2]})),null===a&&(b=m),null===a&&(f=m=b,a=rc(),null!==a?(e=q(),null!==e?(d=sc(),null!==d?(h=z(),null!==h?a=[a,e,d,h]:(a=null,b=f)):(a=null,b=f)):(a=null,b=f)):(a=null,b=f),null!==a&&(a=new y({type:"declarator",v:a[0],w:a[2]})),null===a&&(b=m)));p[c]={b:b,result:a};return a}function tc(){var f="function_prototype_parameter_list@"+
b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,u,k;"void"===c.substr(b,4)?(a="void",b+=4):(a=null,0===l&&g('"void"'));if(null===a){u=m=b;a=Ua();if(null!==a){e=[];k=b;d=H();null!==d?(h=Ua(),null!==h?d=[d,h]:(d=null,b=k)):(d=null,b=k);for(;null!==d;)e.push(d),k=b,d=H(),null!==d?(h=Ua(),null!==h?d=[d,h]:(d=null,b=k)):(d=null,b=k);null!==e?a=[a,e]:(a=null,b=u)}else a=null,b=u;null!==a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=m)}p[f]={b:b,result:a};
return a}function Ab(){var c="function_prototype@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g,k;k=g=b;a=uc();null===a&&(a=Ba());null!==a?(e=q(),null!==e?(d=Q(),null!==d?(h=ba(),null!==h?(m=tc(),m=null!==m?m:"",null!==m?(f=ca(),null!==f?a=[a,e,d,h,m,f]:(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k)):(a=null,b=k);null!==a&&(e=a[4],L=new y({type:"function_prototype",name:a[2].name,la:a[0],l:e}),"void"!=e&&e||(L.l=[]),a=L);null===a&&(b=g);p[c]={b:b,result:a};return a}function vc(){var f=
"parameter_qualifier@"+b,a=p[f];if(a)return b=a.b,a.result;"inout"===c.substr(b,5)?(a="inout",b+=5):(a=null,0===l&&g('"inout"'));null===a&&("in"===c.substr(b,2)?(a="in",b+=2):(a=null,0===l&&g('"in"')),null===a&&("out"===c.substr(b,3)?(a="out",b+=3):(a=null,0===l&&g('"out"'))));p[f]={b:b,result:a};return a}function Ua(){var c="parameter_declaration@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g,k,l,n,t,x;x=t=a=b;e=Va();null!==e?(d=q(),null!==d?e=[e,d]:(e=null,b=x)):(e=null,b=x);e=null!==e?e:
"";null!==e?(x=b,d=vc(),null!==d?(h=q(),null!==h?d=[d,h]:(d=null,b=x)):(d=null,b=x),d=null!==d?d:"",null!==d?(x=b,h=Ta(),null!==h?(m=q(),null!==m?h=[h,m]:(h=null,b=x)):(h=null,b=x),h=null!==h?h:"",null!==h?(m=Aa(),null!==m?(f=q(),null!==f?(g=Q(),null!==g?(x=b,k=ua(),null!==k?(l=pa(),null!==l?(n=va(),null!==n?k=[k,l,n]:(k=null,b=x)):(k=null,b=x)):(k=null,b=x),k=null!==k?k:"",null!==k?e=[e,d,h,m,f,g,k]:(e=null,b=t)):(e=null,b=t)):(e=null,b=t)):(e=null,b=t)):(e=null,b=t)):(e=null,b=t)):(e=null,b=t);
null!==e&&(d=e[0],h=e[1],m=e[2],f=e[6],e=new y({type:"parameter",Ka:e[3],name:e[5].name}),d&&(e.pa=d[0]),h&&(e.ka=h[0]),m&&(e.precision=m[0]),f&&(e.$=f[1]),e=e.pa&&e.ka&&"in"!=e.ka?null:e);null===e&&(b=a);p[c]={b:b,result:e};return e}function Fb(){var c="init_declarator_list@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g;f=m=b;a=Wa();if(null!==a){e=[];g=b;d=H();null!==d?(h=Wa(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);for(;null!==d;)e.push(d),g=b,d=H(),null!==d?(h=Wa(),null!==h?d=[d,h]:
(d=null,b=g)):(d=null,b=g);null!==e?a=[a,e]:(a=null,b=f)}else a=null,b=f;null!==a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=m);p[c]={b:b,result:a};return a}function wc(){var c="declarator_list@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g;f=m=b;a=Ca();if(null!==a){e=[];g=b;d=H();null!==d?(h=Ca(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);for(;null!==d;)e.push(d),g=b,d=H(),null!==d?(h=Ca(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);null!==
e?a=[a,e]:(a=null,b=f)}else a=null,b=f;null!==a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=m);p[c]={b:b,result:a};return a}function sc(){var c="declarator_list_no_array@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g;f=m=b;a=Da();if(null!==a){e=[];g=b;d=H();null!==d?(h=Da(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);for(;null!==d;)e.push(d),g=b,d=H(),null!==d?(h=Da(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);null!==e?a=[a,e]:(a=null,b=f)}else a=
null,b=f;null!==a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=m);p[c]={b:b,result:a};return a}function Gb(){var c="declarator_list_arrays_have_size@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g;f=m=b;a=Ea();if(null!==a){e=[];g=b;d=H();null!==d?(h=Ea(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);for(;null!==d;)e.push(d),g=b,d=H(),null!==d?(h=Ea(),null!==h?d=[d,h]:(d=null,b=g)):(d=null,b=g);null!==e?a=[a,e]:(a=null,b=f)}else a=null,b=f;null!==
a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=m);p[c]={b:b,result:a};return a}function Da(){var c="declarator_no_array@"+b,a=p[c];if(a)return b=a.b,a.result;var e;e=b;a=Q();null!==a&&(a=new y({type:"declarator_item",name:a}));null===a&&(b=e);p[c]={b:b,result:a};return a}function Ea(){var c="declarator_array_with_size@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f;f=m=b;a=Q();null!==a?(e=ua(),null!==e?(d=pa(),null!==d?(h=va(),null!==h?a=[a,e,d,
h]:(a=null,b=f)):(a=null,b=f)):(a=null,b=f)):(a=null,b=f);null!==a&&(a=new y({type:"declarator_item",name:a[0],$:a[2],isArray:!0}));null===a&&(b=m);null===a&&(a=Da());p[c]={b:b,result:a};return a}function Ca(){var c="declarator@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;a=Q();null!==a?(e=ua(),null!==e?(d=va(),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(a=new y({type:"declarator_item",name:a[0],isArray:!0}));null===a&&(b=h);null===a&&(a=Ea());p[c]={b:b,result:a};
return a}function Wa(){var c="init_declarator@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;a=Q();null!==a?(e=cc(),null!==e?(d=pa(),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(a=new y({type:"declarator_item",name:a[0],H:a[2]}));null===a&&(b=h);null===a&&(a=Ca());p[c]={b:b,result:a};return a}function xc(){var c="member_list@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m,f,g;g=f=b;e=za();null!==e?(d=q(),null!==d?(h=Gb(),null!==h?(m=z(),null!==m?e=[e,d,h,m]:(e=
null,b=g)):(e=null,b=g)):(e=null,b=g)):(e=null,b=g);if(null!==e)for(a=[];null!==e;)a.push(e),g=b,e=za(),null!==e?(d=q(),null!==d?(h=Gb(),null!==h?(m=z(),null!==m?e=[e,d,h,m]:(e=null,b=g)):(e=null,b=g)):(e=null,b=g)):(e=null,b=g);else a=null;null!==a&&(a=function(a){return a.map(function(a){return new y({type:"declarator",v:a[0],w:a[2]})})}(a));null===a&&(b=f);p[c]={b:b,result:a};return a}function hc(){var f="struct_definition@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k,n,t,r,x;k=x=a=b;e=Hb();
null===e&&(e=Ib());null!==e?(d=q(),null!==d?e=[e,d]:(e=null,b=k)):(e=null,b=k);e=null!==e?e:"";null!==e?("struct"===c.substr(b,6)?(d="struct",b+=6):(d=null,0===l&&g('"struct"')),null!==d?(k=b,h=q(),null!==h?(m=Q(),null!==m?h=[h,m]:(h=null,b=k)):(h=null,b=k),h=null!==h?h:"",null!==h?(m=pb(),null!==m?(k=xc(),null!==k?(n=qb(),null!==n?(t=wc(),t=null!==t?t:"",null!==t?(r=z(),null!==r?e=[e,d,h,m,k,n,t,r]:(e=null,b=x)):(e=null,b=x)):(e=null,b=x)):(e=null,b=x)):(e=null,b=x)):(e=null,b=x)):(e=null,b=x)):
(e=null,b=x);null!==e&&(d=e[0],h=e[2],m=e[6],e=new y({type:"struct_definition",Ia:e[4]}),d&&(e.qualifier=d[0]),h&&(e.name=h[1].name,yc[e.name]=e),m&&(e.w=m));null===e&&(b=a);p[f]={b:b,result:e};return e}function Ba(){var c="precision_type@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;m=h=a=b;e=Ta();null!==e?(d=q(),null!==d?e=[e,d]:(e=null,b=m)):(e=null,b=m);e=null!==e?e:"";null!==e?(d=Aa(),null!==d?e=[e,d]:(e=null,b=h)):(e=null,b=h);null!==e&&(d=e[0],e=new y({type:"type",name:e[1]}),d&&(e.precision=
d[0]));null===e&&(b=a);p[c]={b:b,result:e};return e}function za(){var c="locally_specified_type@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;l++;m=h=a=b;e=Va();null!==e?(d=q(),null!==d?e=[e,d]:(e=null,b=m)):(e=null,b=m);e=null!==e?e:"";null!==e?(d=Ba(),null!==d?e=[e,d]:(e=null,b=h)):(e=null,b=h);null!==e&&(d=e[0],e=e[1],d&&(e.qualifier=d[0]));null===e&&(b=a);l--;0===l&&null===e&&g("locally specified type");p[c]={b:b,result:e};return e}function Ib(){var f="attribute_qualifier@"+b,a=p[f];if(a)return b=
a.b,a.result;var e,d,h;h=d=b;a="vs"==ya?"":null;null!==a?("attribute"===c.substr(b,9)?(e="attribute",b+=9):(e=null,0===l&&g('"attribute"')),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a="attribute");null===a&&(b=d);p[f]={b:b,result:a};return a}function rc(){var c="attribute_type@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;l++;m=h=b;a=Ib();null!==a?(e=q(),null!==e?(d=Ba(),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(e=a[2],e.qualifier=a[0],a=e);null===a&&
(b=h);l--;0===l&&null===a&&g("locally specified type");p[c]={b:b,result:a};return a}function qc(){var c="fully_specified_type@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,m;l++;m=h=a=b;e=Hb();null!==e?(d=q(),null!==d?e=[e,d]:(e=null,b=m)):(e=null,b=m);e=null!==e?e:"";null!==e?(d=Ba(),null!==d?e=[e,d]:(e=null,b=h)):(e=null,b=h);null!==e&&(d=e[0],e=e[1],d&&(e.qualifier=d[0]));null===e&&(b=a);l--;0===l&&null===e&&g("fully specified type");p[c]={b:b,result:e};return e}function Ta(){var f="precision_qualifier@"+
b,a=p[f];if(a)return b=a.b,a.result;l++;"highp"===c.substr(b,5)?(a="highp",b+=5):(a=null,0===l&&g('"highp"'));null===a&&("mediump"===c.substr(b,7)?(a="mediump",b+=7):(a=null,0===l&&g('"mediump"')),null===a&&("lowp"===c.substr(b,4)?(a="lowp",b+=4):(a=null,0===l&&g('"lowp"'))));l--;0===l&&null===a&&g("precision qualifier");p[f]={b:b,result:a};return a}function Va(){var f="const_qualifier@"+b,a=p[f];if(a)return b=a.b,a.result;"const"===c.substr(b,5)?(a="const",b+=5):(a=null,0===l&&g('"const"'));p[f]=
{b:b,result:a};return a}function Hb(){var f="type_qualifier@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;l++;a=Va();null===a&&("varying"===c.substr(b,7)?(a="varying",b+=7):(a=null,0===l&&g('"varying"')),null===a&&(m=h=b,"invariant"===c.substr(b,9)?(a="invariant",b+=9):(a=null,0===l&&g('"invariant"')),null!==a?(e=q(),null!==e?("varying"===c.substr(b,7)?(d="varying",b+=7):(d=null,0===l&&g('"varying"')),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m),null!==a&&(a="invariant varying"),
null===a&&(b=h),null===a&&("uniform"===c.substr(b,7)?(a="uniform",b+=7):(a=null,0===l&&g('"uniform"')))));l--;0===l&&null===a&&g("type qualifier");p[f]={b:b,result:a};return a}function uc(){var f="void_type@"+b,a=p[f];if(a)return b=a.b,a.result;var e;l++;e=b;"void"===c.substr(b,4)?(a="void",b+=4):(a=null,0===l&&g('"void"'));null!==a&&(a=new y({type:"type",name:"void"}));null===a&&(b=e);l--;0===l&&null===a&&g("void");p[f]={b:b,result:a};return a}function Aa(){var f="type_name@"+b,a=p[f];if(a)return b=
a.b,a.result;var e;l++;"float"===c.substr(b,5)?(a="float",b+=5):(a=null,0===l&&g('"float"'));null===a&&("int"===c.substr(b,3)?(a="int",b+=3):(a=null,0===l&&g('"int"')),null===a&&("bool"===c.substr(b,4)?(a="bool",b+=4):(a=null,0===l&&g('"bool"')),null===a&&("sampler2D"===c.substr(b,9)?(a="sampler2D",b+=9):(a=null,0===l&&g('"sampler2D"')),null===a&&("samplerCube"===c.substr(b,11)?(a="samplerCube",b+=11):(a=null,0===l&&g('"samplerCube"')),null===a&&(a=Jb(),null===a&&(a=Kb(),null===a&&(e=b,a=Q(),null!==
a&&(a=a.name in yc?a.name:null),null===a&&(b=e))))))));l--;0===l&&null===a&&g("type name");p[f]={b:b,result:a};return a}function Q(){var f="identifier@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k;l++;d=k=m=b;l++;h=b;a=zc();null!==a?(/^[^A-Za-z_0-9]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[^A-Za-z_0-9]")),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);l--;null===a?a="":(a=null,b=d);if(null!==a)if(/^[A-Za-z_]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[A-Za-z_]")),
null!==e){d=[];/^[A-Za-z_0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[A-Za-z_0-9]"));for(;null!==h;)d.push(h),/^[A-Za-z_0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[A-Za-z_0-9]"));null!==d?a=[a,e,d]:(a=null,b=k)}else a=null,b=k;else a=null,b=k;null!==a&&(a=new y({type:"identifier",name:a[1]+a[2].join("")}));null===a&&(b=m);l--;0===l&&null===a&&g("identifier");p[f]={b:b,result:a};return a}function zc(){var f="keyword@"+b,a=p[f];if(a)return b=a.b,a.result;l++;"attribute"===
c.substr(b,9)?(a="attribute",b+=9):(a=null,0===l&&g('"attribute"'));null===a&&("const"===c.substr(b,5)?(a="const",b+=5):(a=null,0===l&&g('"const"')),null===a&&("bool"===c.substr(b,4)?(a="bool",b+=4):(a=null,0===l&&g('"bool"')),null===a&&("float"===c.substr(b,5)?(a="float",b+=5):(a=null,0===l&&g('"float"')),null===a&&("int"===c.substr(b,3)?(a="int",b+=3):(a=null,0===l&&g('"int"')),null===a&&("break"===c.substr(b,5)?(a="break",b+=5):(a=null,0===l&&g('"break"')),null===a&&("continue"===c.substr(b,8)?
(a="continue",b+=8):(a=null,0===l&&g('"continue"')),null===a&&("do"===c.substr(b,2)?(a="do",b+=2):(a=null,0===l&&g('"do"')),null===a&&("else"===c.substr(b,4)?(a="else",b+=4):(a=null,0===l&&g('"else"')),null===a&&("for"===c.substr(b,3)?(a="for",b+=3):(a=null,0===l&&g('"for"')),null===a&&("if"===c.substr(b,2)?(a="if",b+=2):(a=null,0===l&&g('"if"')),null===a&&("discard"===c.substr(b,7)?(a="discard",b+=7):(a=null,0===l&&g('"discard"')),null===a&&("return"===c.substr(b,6)?(a="return",b+=6):(a=null,0===
l&&g('"return"')),null===a&&(a=Jb(),null===a&&(a=Kb(),null===a&&("in"===c.substr(b,2)?(a="in",b+=2):(a=null,0===l&&g('"in"')),null===a&&("out"===c.substr(b,3)?(a="out",b+=3):(a=null,0===l&&g('"out"')),null===a&&("inout"===c.substr(b,5)?(a="inout",b+=5):(a=null,0===l&&g('"inout"')),null===a&&("uniform"===c.substr(b,7)?(a="uniform",b+=7):(a=null,0===l&&g('"uniform"')),null===a&&("varying"===c.substr(b,7)?(a="varying",b+=7):(a=null,0===l&&g('"varying"')),null===a&&("sampler2D"===c.substr(b,9)?(a="sampler2D",
b+=9):(a=null,0===l&&g('"sampler2D"')),null===a&&("samplerCube"===c.substr(b,11)?(a="samplerCube",b+=11):(a=null,0===l&&g('"samplerCube"')),null===a&&("struct"===c.substr(b,6)?(a="struct",b+=6):(a=null,0===l&&g('"struct"')),null===a&&("void"===c.substr(b,4)?(a="void",b+=4):(a=null,0===l&&g('"void"')),null===a&&("while"===c.substr(b,5)?(a="while",b+=5):(a=null,0===l&&g('"while"')),null===a&&("highp"===c.substr(b,5)?(a="highp",b+=5):(a=null,0===l&&g('"highp"')),null===a&&("mediump"===c.substr(b,7)?
(a="mediump",b+=7):(a=null,0===l&&g('"mediump"')),null===a&&("lowp"===c.substr(b,4)?(a="lowp",b+=4):(a=null,0===l&&g('"lowp"')),null===a&&("true"===c.substr(b,4)?(a="true",b+=4):(a=null,0===l&&g('"true"')),null===a&&("false"===c.substr(b,5)?(a="false",b+=5):(a=null,0===l&&g('"false"')))))))))))))))))))))))))))))));l--;0===l&&null===a&&g("keyword");p[f]={b:b,result:a};return a}function Jb(){var f="vector@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;/^[bi]/.test(c.charAt(b))?(a=c.charAt(b),
b++):(a=null,0===l&&g("[bi]"));a=null!==a?a:"";null!==a?("vec"===c.substr(b,3)?(e="vec",b+=3):(e=null,0===l&&g('"vec"')),null!==e?(/^[234]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[234]")),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(a=a.join(""));null===a&&(b=h);p[f]={b:b,result:a};return a}function Kb(){var f="matrix@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h;h=d=b;"mat"===c.substr(b,3)?(a="mat",b+=3):(a=null,0===l&&g('"mat"'));null!==a?(/^[234]/.test(c.charAt(b))?
(e=c.charAt(b),b++):(e=null,0===l&&g("[234]")),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=a.join(""));null===a&&(b=d);p[f]={b:b,result:a};return a}function Lb(){var f="single_underscore_identifier@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;m=b;a=[];/^[A-Za-z0-9]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[A-Za-z0-9]"));for(;null!==e;)a.push(e),/^[A-Za-z0-9]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[A-Za-z0-9]"));if(null!==a)if(95===c.charCodeAt(b)?
(e="_",b+=1):(e=null,0===l&&g('"_"')),null!==e){/^[A-Za-z0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[A-Za-z0-9]"));if(null!==h)for(d=[];null!==h;)d.push(h),/^[A-Za-z0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[A-Za-z0-9]"));else d=null;null!==d?a=[a,e,d]:(a=null,b=m)}else a=null,b=m;else a=null,b=m;p[f]={b:b,result:a};return a}function Ac(){var f="int_constant@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k;k=m=b;/^[1-9]/.test(c.charAt(b))?(a=c.charAt(b),b++):
(a=null,0===l&&g("[1-9]"));if(null!==a){e=[];/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));for(;null!==d;)e.push(d),/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));null!==e?a=[a,e]:(a=null,b=k)}else a=null,b=k;null!==a&&(a=new y({type:"int",value:parseInt([a[0]].concat(a[1]).join(""),10)}));null===a&&(b=m);if(null===a){k=m=b;48===c.charCodeAt(b)?(a="0",b+=1):(a=null,0===l&&g('"0"'));if(null!==a)if(/^[Xx]/.test(c.charAt(b))?(e=c.charAt(b),b++):
(e=null,0===l&&g("[Xx]")),null!==e){/^[0-9A-Fa-f]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[0-9A-Fa-f]"));if(null!==h)for(d=[];null!==h;)d.push(h),/^[0-9A-Fa-f]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[0-9A-Fa-f]"));else d=null;null!==d?a=[a,e,d]:(a=null,b=k)}else a=null,b=k;else a=null,b=k;null!==a&&(a=new y({type:"int",value:parseInt(a[2].join(""),16)}));null===a&&(b=m);if(null===a){k=m=b;48===c.charCodeAt(b)?(a="0",b+=1):(a=null,0===l&&g('"0"'));if(null!==a){/^[0-7]/.test(c.charAt(b))?
(d=c.charAt(b),b++):(d=null,0===l&&g("[0-7]"));if(null!==d)for(e=[];null!==d;)e.push(d),/^[0-7]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-7]"));else e=null;null!==e?a=[a,e]:(a=null,b=k)}else a=null,b=k;null!==a&&(a=new y({type:"int",value:parseInt(a[1].join(""),8)}));null===a&&(b=m);null===a&&(m=b,48===c.charCodeAt(b)?(a="0",b+=1):(a=null,0===l&&g('"0"')),null!==a&&(a=new y({type:"int",value:0})),null===a&&(b=m))}}p[f]={b:b,result:a};return a}function Bc(){var f="float_constant@"+
b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k;k=a=b;e=[];/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));for(;null!==d;)e.push(d),/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));if(null!==e)if(46===c.charCodeAt(b)?(d=".",b+=1):(d=null,0===l&&g('"."')),null!==d){/^[0-9]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[0-9]"));if(null!==m)for(h=[];null!==m;)h.push(m),/^[0-9]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[0-9]"));
else h=null;null!==h?(m=Xa(),m=null!==m?m:"",null!==m?e=[e,d,h,m]:(e=null,b=k)):(e=null,b=k)}else e=null,b=k;else e=null,b=k;if(null===e){k=b;/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));if(null!==d)for(e=[];null!==d;)e.push(d),/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));else e=null;if(null!==e)if(46===c.charCodeAt(b)?(d=".",b+=1):(d=null,0===l&&g('"."')),null!==d){h=[];/^[0-9]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[0-9]"));
for(;null!==m;)h.push(m),/^[0-9]/.test(c.charAt(b))?(m=c.charAt(b),b++):(m=null,0===l&&g("[0-9]"));null!==h?(m=Xa(),m=null!==m?m:"",null!==m?e=[e,d,h,m]:(e=null,b=k)):(e=null,b=k)}else e=null,b=k;else e=null,b=k}null!==e&&(e[0]=e[0].join(""),e[2]=e[2].join(""),e=new y({type:"float",value:parseFloat(e.join(""))}));null===e&&(b=a);if(null===e){k=a=b;/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[0-9]"));if(null!==d)for(e=[];null!==d;)e.push(d),/^[0-9]/.test(c.charAt(b))?(d=c.charAt(b),
b++):(d=null,0===l&&g("[0-9]"));else e=null;null!==e?(d=Xa(),null!==d?e=[e,d]:(e=null,b=k)):(e=null,b=k);null!==e&&(e=new y({type:"float",value:parseFloat(e[0].join("")+e[1])}));null===e&&(b=a)}p[f]={b:b,result:e};return e}function Xa(){var f="float_exponent@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k;k=m=b;/^[Ee]/.test(c.charAt(b))?(a=c.charAt(b),b++):(a=null,0===l&&g("[Ee]"));if(null!==a)if(/^[+\-]/.test(c.charAt(b))?(e=c.charAt(b),b++):(e=null,0===l&&g("[+\\-]")),e=null!==e?e:"",null!==
e){/^[0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[0-9]"));if(null!==h)for(d=[];null!==h;)d.push(h),/^[0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[0-9]"));else d=null;null!==d?a=[a,e,d]:(a=null,b=k)}else a=null,b=k;else a=null,b=k;null!==a&&(a=["e",a[1]].concat(a[2]).join(""));null===a&&(b=m);p[f]={b:b,result:a};return a}function Cc(){var c="paren_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f;f=h=b;a=ba();null!==a?(e=S(),null!==e?(d=ca(),null!==
d?a=[a,e,d]:(a=null,b=f)):(a=null,b=f)):(a=null,b=f);null!==a&&(a=a[1]);null===a&&(b=h);p[c]={b:b,result:a};return a}function Dc(){var f="bool_constant@"+b,a=p[f];if(a)return b=a.b,a.result;var e;e=b;"true"===c.substr(b,4)?(a="true",b+=4):(a=null,0===l&&g('"true"'));null===a&&("false"===c.substr(b,5)?(a="false",b+=5):(a=null,0===l&&g('"false"')));null!==a&&(a=new y({type:"bool",value:"true"==a}));null===a&&(b=e);p[f]={b:b,result:a};return a}function Ec(){var c="primary_expression@"+b,a=p[c];if(a)return b=
a.b,a.result;a=Fc();null===a&&(a=Q(),null===a&&(a=Bc(),null===a&&(a=Ac(),null===a&&(a=Dc(),null===a&&(a=Cc())))));p[c]={b:b,result:a};return a}function Fa(){var c="index_accessor@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f;f=h=b;a=ua();null!==a?(e=S(),null!==e?(d=va(),null!==d?a=[a,e,d]:(a=null,b=f)):(a=null,b=f)):(a=null,b=f);null!==a&&(a=new y({type:"accessor",index:a[1]}));null===a&&(b=h);p[c]={b:b,result:a};return a}function Ga(){var f="field_selector@"+b,a=p[f];if(a)return b=a.b,a.result;
var e,d,h;h=d=b;46===c.charCodeAt(b)?(a=".",b+=1):(a=null,0===l&&g('"."'));null!==a?(e=Q(),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"field_selector",selection:a[1].name}));null===a&&(b=d);p[f]={b:b,result:a};return a}function Gc(){var c="postfix_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f;f=a=b;e=Ec();if(null!==e){d=[];h=Ga();for(null===h&&(h=Fa());null!==h;)d.push(h),h=Ga(),null===h&&(h=Fa());null!==d?e=[e,d]:(e=null,b=f)}else e=null,b=f;if(null!==e)for(d=
e[1],e=e[0],h=0;h<d.length;h++)e=new y({type:"postfix",j:d[h],N:e});null===e&&(b=a);p[c]={b:b,result:e};return e}function Hc(){var f="postfix_expression_no_repeat@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k,n;n=a=b;e=Gc();if(null!==e)if(d=q(),d=null!==d?d:"",null!==d)if("++"===c.substr(b,2)?(h="++",b+=2):(h=null,0===l&&g('"++"')),null===h&&("--"===c.substr(b,2)?(h="--",b+=2):(h=null,0===l&&g('"--"'))),h=null!==h?h:"",null!==h){m=[];k=Ga();for(null===k&&(k=Fa());null!==k;)m.push(k),k=Ga(),
null===k&&(k=Fa());null!==m?e=[e,d,h,m]:(e=null,b=n)}else e=null,b=n;else e=null,b=n;else e=null,b=n;if(null!==e)for(h=e[2],d=e[3],e=e[0],h&&(e=new y({type:"postfix",j:new y({id:Ic++,type:"operator",j:h}),N:e})),h=0;h<d.length;h++)e=new y({type:"postfix",j:d[h],N:e});null===e&&(b=a);p[f]={b:b,result:e};return e}function vb(){var f="parameter_list@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m,k,n;m=b;"void"===c.substr(b,4)?(a="void",b+=4):(a=null,0===l&&g('"void"'));null!==a&&(a=[]);null===a&&
(b=m);if(null===a){k=m=b;a=S();if(null!==a){e=[];n=b;d=H();null!==d?(h=S(),null!==h?d=[d,h]:(d=null,b=n)):(d=null,b=n);for(;null!==d;)e.push(d),n=b,d=H(),null!==d?(h=S(),null!==h?d=[d,h]:(d=null,b=n)):(d=null,b=n);null!==e?a=[a,e]:(a=null,b=k)}else a=null,b=k;null!==a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=m)}p[f]={b:b,result:a};return a}function Fc(){var c="function_call@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f,g;g=a=b;e=Jc();null!==
e?(d=ba(),null!==d?(h=vb(),h=null!==h?h:"",null!==h?(f=ca(),null!==f?e=[e,d,h,f]:(e=null,b=g)):(e=null,b=g)):(e=null,b=g)):(e=null,b=g);null!==e&&(d=e[2],e=new y({type:"function_call",I:e[0],l:d}),d||(e.l=[]));null===e&&(b=a);p[c]={b:b,result:e};return e}function Jc(){var c="function_identifier@"+b,a=p[c];if(a)return b=a.b,a.result;var e;e=b;a=Q();null!==a&&(a=a.name);null===a&&(b=e);null===a&&(a=Aa());p[c]={b:b,result:a};return a}function Ya(){var f="unary_expression@"+b,a=p[f];if(a)return b=a.b,
a.result;var e,d,h,m;m=h=b;"++"===c.substr(b,2)?(a="++",b+=2):(a=null,0===l&&g('"++"'));null===a&&("--"===c.substr(b,2)?(a="--",b+=2):(a=null,0===l&&g('"--"')),null===a&&(33===c.charCodeAt(b)?(a="!",b+=1):(a=null,0===l&&g('"!"')),null===a&&(126===c.charCodeAt(b)?(a="~",b+=1):(a=null,0===l&&g('"~"')),null===a&&(43===c.charCodeAt(b)?(a="+",b+=1):(a=null,0===l&&g('"+"')),null===a&&(45===c.charCodeAt(b)?(a="-",b+=1):(a=null,0===l&&g('"-"')))))));a=null!==a?a:"";null!==a?(e=q(),e=null!==e?e:"",null!==
e?(d=Hc(),null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(e=a[0],L=a[2],e&&(L=new y({type:"unary",N:L,j:new y({type:"operator",j:e})})),a=L);null===a&&(b=h);p[f]={b:b,result:a};return a}function Mb(){var f="multiplicative_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;h=d=b;42===c.charCodeAt(b)?(a="*",b+=1):(a=null,0===l&&g('"*"'));null===a&&(47===c.charCodeAt(b)?(a="/",b+=1):(a=null,0===l&&g('"/"')),null===a&&(37===c.charCodeAt(b)?(a="%",b+=1):(a=null,0===l&&g('"%"'))));
null!==a?(m=b,l++,61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="')),l--,null===e?e="":(e=null,b=m),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"operator",j:a[0]}));null===a&&(b=d);p[f]={b:b,result:a};return a}function Za(){var c="multiplicative_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f,g,k,l,n;l=k=b;a=Ya();if(null!==a){e=[];n=b;d=q();d=null!==d?d:"";null!==d?(h=Mb(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=Ya(),null!==g?d=[d,h,f,g]:(d=null,b=
n)):(d=null,b=n)):(d=null,b=n)):(d=null,b=n);for(;null!==d;)e.push(d),n=b,d=q(),d=null!==d?d:"",null!==d?(h=Mb(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=Ya(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,b=n)):(d=null,b=n)):(d=null,b=n);null!==e?a=[a,e]:(a=null,b=l)}else a=null,b=l;null!==a&&(a=X(a[0],a[1]));null===a&&(b=k);p[c]={b:b,result:a};return a}function Nb(){var f="additive_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;h=d=b;43===c.charCodeAt(b)?(a="+",b+=1):(a=null,0===l&&g('"+"'));
null!==a?(m=b,l++,43===c.charCodeAt(b)?(e="+",b+=1):(e=null,0===l&&g('"+"')),null===e&&(61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="'))),l--,null===e?e="":(e=null,b=m),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"operator",j:"+"}));null===a&&(b=d);null===a&&(h=d=b,45===c.charCodeAt(b)?(a="-",b+=1):(a=null,0===l&&g('"-"')),null!==a?(m=b,l++,45===c.charCodeAt(b)?(e="-",b+=1):(e=null,0===l&&g('"-"')),null===e&&(61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="'))),
l--,null===e?e="":(e=null,b=m),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h),null!==a&&(a=new y({type:"operator",j:"-"})),null===a&&(b=d));p[f]={b:b,result:a};return a}function $a(){var c="additive_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f,g,k,l,n;l=k=b;a=Za();if(null!==a){e=[];n=b;d=q();d=null!==d?d:"";null!==d?(h=Nb(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=Za(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,b=n)):(d=null,b=n)):(d=null,b=n);for(;null!==d;)e.push(d),n=b,d=q(),d=
null!==d?d:"",null!==d?(h=Nb(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=Za(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,b=n)):(d=null,b=n)):(d=null,b=n);null!==e?a=[a,e]:(a=null,b=l)}else a=null,b=l;null!==a&&(a=X(a[0],a[1]));null===a&&(b=k);p[c]={b:b,result:a};return a}function Ob(){var f="shift_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;h=d=b;"<<"===c.substr(b,2)?(a="<<",b+=2):(a=null,0===l&&g('"<<"'));null===a&&(">>"===c.substr(b,2)?(a=">>",b+=2):(a=null,0===l&&g('">>"')));null!==
a?(m=b,l++,61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="')),l--,null===e?e="":(e=null,b=m),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"operator",j:a[0]}));null===a&&(b=d);p[f]={b:b,result:a};return a}function ab(){var c="shift_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f,g,k,l,n;l=k=b;a=$a();if(null!==a){e=[];n=b;d=q();d=null!==d?d:"";null!==d?(h=Ob(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=$a(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,b=n)):
(d=null,b=n)):(d=null,b=n);for(;null!==d;)e.push(d),n=b,d=q(),d=null!==d?d:"",null!==d?(h=Ob(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=$a(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,b=n)):(d=null,b=n)):(d=null,b=n);null!==e?a=[a,e]:(a=null,b=l)}else a=null,b=l;null!==a&&(a=X(a[0],a[1]));null===a&&(b=k);p[c]={b:b,result:a};return a}function Pb(){var f="relational_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;m=h=b;60===c.charCodeAt(b)?(a="<",b+=1):(a=null,0===l&&g('"<"'));null!==
a?(d=b,l++,60===c.charCodeAt(b)?(e="<",b+=1):(e=null,0===l&&g('"<"')),l--,null===e?e="":(e=null,b=d),null!==e?(61===c.charCodeAt(b)?(d="=",b+=1):(d=null,0===l&&g('"="')),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m);null!==a&&(a=new y({type:"operator",j:"<"+a[2]}));null===a&&(b=h);null===a&&(m=h=b,62===c.charCodeAt(b)?(a=">",b+=1):(a=null,0===l&&g('">"')),null!==a?(d=b,l++,62===c.charCodeAt(b)?(e=">",b+=1):(e=null,0===l&&g('">"')),l--,null===e?e="":(e=null,b=d),null!==
e?(61===c.charCodeAt(b)?(d="=",b+=1):(d=null,0===l&&g('"="')),d=null!==d?d:"",null!==d?a=[a,e,d]:(a=null,b=m)):(a=null,b=m)):(a=null,b=m),null!==a&&(a=new y({type:"operator",j:">"+a[2]})),null===a&&(b=h));p[f]={b:b,result:a};return a}function bb(){var c="relational_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,h,f,g,k,l,n;l=k=b;a=ab();if(null!==a){e=[];n=b;d=q();d=null!==d?d:"";null!==d?(h=Pb(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=ab(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,
b=n)):(d=null,b=n)):(d=null,b=n);for(;null!==d;)e.push(d),n=b,d=q(),d=null!==d?d:"",null!==d?(h=Pb(),null!==h?(f=q(),f=null!==f?f:"",null!==f?(g=ab(),null!==g?d=[d,h,f,g]:(d=null,b=n)):(d=null,b=n)):(d=null,b=n)):(d=null,b=n);null!==e?a=[a,e]:(a=null,b=l)}else a=null,b=l;null!==a&&(a=X(a[0],a[1]));null===a&&(b=k);p[c]={b:b,result:a};return a}function Qb(){var f="equality_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e;e=b;"=="===c.substr(b,2)?(a="==",b+=2):(a=null,0===l&&g('"=="'));null===a&&
("!="===c.substr(b,2)?(a="!=",b+=2):(a=null,0===l&&g('"!="')));null!==a&&(a=new y({type:"operator",j:a}));null===a&&(b=e);p[f]={b:b,result:a};return a}function cb(){var c="equality_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l,n,r;n=l=b;a=bb();if(null!==a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Qb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=bb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==
d?(f=Qb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=bb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};return a}function Rb(){var f="bitwise_and_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,m;h=d=b;38===c.charCodeAt(b)?(a="&",b+=1):(a=null,0===l&&g('"&"'));null!==a?(m=b,l++,61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="')),null===e&&(38===
c.charCodeAt(b)?(e="&",b+=1):(e=null,0===l&&g('"&"'))),l--,null===e?e="":(e=null,b=m),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"operator",j:"&"}));null===a&&(b=d);p[f]={b:b,result:a};return a}function db(){var c="bitwise_and_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l,n,r;n=l=b;a=cb();if(null!==a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Rb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=cb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,
b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==d?(f=Rb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=cb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};return a}function Sb(){var f="bitwise_xor_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,k;h=d=b;94===c.charCodeAt(b)?(a="^",b+=1):(a=null,0===l&&g('"^"'));null!==a?(k=b,
l++,61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="')),null===e&&(94===c.charCodeAt(b)?(e="^",b+=1):(e=null,0===l&&g('"^"'))),l--,null===e?e="":(e=null,b=k),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"operator",j:"^"}));null===a&&(b=d);p[f]={b:b,result:a};return a}function eb(){var c="bitwise_xor_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l,n,r;n=l=b;a=db();if(null!==a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Sb(),null!==f?(g=q(),g=null!==g?
g:"",null!==g?(k=db(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==d?(f=Sb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=db(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};return a}function Tb(){var f="bitwise_or_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,k;h=
d=b;124===c.charCodeAt(b)?(a="|",b+=1):(a=null,0===l&&g('"|"'));null!==a?(k=b,l++,61===c.charCodeAt(b)?(e="=",b+=1):(e=null,0===l&&g('"="')),null===e&&(124===c.charCodeAt(b)?(e="|",b+=1):(e=null,0===l&&g('"|"'))),l--,null===e?e="":(e=null,b=k),null!==e?a=[a,e]:(a=null,b=h)):(a=null,b=h);null!==a&&(a=new y({type:"operator",j:"|"}));null===a&&(b=d);p[f]={b:b,result:a};return a}function fb(){var c="bitwise_or_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l,n,r;n=l=b;a=eb();if(null!==
a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Tb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=eb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==d?(f=Tb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=eb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};return a}function Ub(){var f=
"logical_and_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e;e=b;"&&"===c.substr(b,2)?(a="&&",b+=2):(a=null,0===l&&g('"&&"'));null!==a&&(a=new y({type:"operator",j:"&&"}));null===a&&(b=e);p[f]={b:b,result:a};return a}function gb(){var c="logical_and_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l,n,r;n=l=b;a=fb();if(null!==a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Ub(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=fb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,
b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==d?(f=Ub(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=fb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};return a}function Vb(){var f="logical_xor_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e;e=b;"^^"===c.substr(b,2)?(a="^^",b+=2):(a=null,0===l&&g('"^^"'));null!==a&&(a=new y({type:"operator",
j:"^^"}));null===a&&(b=e);p[f]={b:b,result:a};return a}function hb(){var c="logical_xor_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l,n,r;n=l=b;a=gb();if(null!==a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Vb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=gb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==d?(f=Vb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=gb(),null!==k?d=[d,f,g,k]:(d=null,
b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};return a}function Wb(){var f="logical_or_operator@"+b,a=p[f];if(a)return b=a.b,a.result;var e;e=b;"||"===c.substr(b,2)?(a="||",b+=2):(a=null,0===l&&g('"||"'));null!==a&&(a=new y({type:"operator",j:"||"}));null===a&&(b=e);p[f]={b:b,result:a};return a}function Kc(){var c="logical_or_expression@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,
l,n,r;n=l=b;a=hb();if(null!==a){e=[];r=b;d=q();d=null!==d?d:"";null!==d?(f=Wb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=hb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);for(;null!==d;)e.push(d),r=b,d=q(),d=null!==d?d:"",null!==d?(f=Wb(),null!==f?(g=q(),g=null!==g?g:"",null!==g?(k=hb(),null!==k?d=[d,f,g,k]:(d=null,b=r)):(d=null,b=r)):(d=null,b=r)):(d=null,b=r);null!==e?a=[a,e]:(a=null,b=n)}else a=null,b=n;null!==a&&(a=X(a[0],a[1]));null===a&&(b=l);p[c]={b:b,result:a};
return a}function pa(){var f="conditional_expression@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,k,n,t,x,r,B,z,C;z=a=b;e=Kc();null!==e?(C=b,d=q(),d=null!==d?d:"",null!==d?(63===c.charCodeAt(b)?(h="?",b+=1):(h=null,0===l&&g('"?"')),null!==h?(k=q(),k=null!==k?k:"",null!==k?(n=S(),null!==n?(t=q(),t=null!==t?t:"",null!==t?(58===c.charCodeAt(b)?(x=":",b+=1):(x=null,0===l&&g('":"')),null!==x?(r=q(),r=null!==r?r:"",null!==r?(B=S(),null!==B?d=[d,h,k,n,t,x,r,B]:(d=null,b=C)):(d=null,b=C)):(d=null,b=C)):
(d=null,b=C)):(d=null,b=C)):(d=null,b=C)):(d=null,b=C)):(d=null,b=C),d=null!==d?d:"",null!==d?e=[e,d]:(e=null,b=z)):(e=null,b=z);null!==e&&(d=e[0],e=e[1],L=d,e&&(L=new y({type:"ternary",F:d,Ha:e[3],Ga:e[7]})),e=L);null===e&&(b=a);p[f]={b:b,result:e};return e}function S(){var f="assignment_expression@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,k,n,t;t=n=b;a=pa();null!==a?(e=q(),e=null!==e?e:"",null!==e?(61===c.charCodeAt(b)?(d="=",b+=1):(d=null,0===l&&g('"="')),null===d&&("*="===c.substr(b,2)?
(d="*=",b+=2):(d=null,0===l&&g('"*="')),null===d&&("/="===c.substr(b,2)?(d="/=",b+=2):(d=null,0===l&&g('"/="')),null===d&&("%="===c.substr(b,2)?(d="%=",b+=2):(d=null,0===l&&g('"%="')),null===d&&("+="===c.substr(b,2)?(d="+=",b+=2):(d=null,0===l&&g('"+="')),null===d&&("-="===c.substr(b,2)?(d="-=",b+=2):(d=null,0===l&&g('"-="')),null===d&&("<<="===c.substr(b,3)?(d="<<=",b+=3):(d=null,0===l&&g('"<<="')),null===d&&(">>="===c.substr(b,3)?(d=">>=",b+=3):(d=null,0===l&&g('">>="')),null===d&&("&="===c.substr(b,
2)?(d="&=",b+=2):(d=null,0===l&&g('"&="')),null===d&&("^="===c.substr(b,2)?(d="^=",b+=2):(d=null,0===l&&g('"^="')),null===d&&("|="===c.substr(b,2)?(d="|=",b+=2):(d=null,0===l&&g('"|="')))))))))))),null!==d?(h=q(),h=null!==h?h:"",null!==h?(k=S(),null!==k?a=[a,e,d,h,k]:(a=null,b=t)):(a=null,b=t)):(a=null,b=t)):(a=null,b=t)):(a=null,b=t);null!==a&&(e=a[0],d=a[4],a=new y({type:"binary",j:new y({type:"operator",j:a[2]}),left:e,right:d}));null===a&&(b=n);null===a&&(a=pa());p[f]={b:b,result:a};return a}
function Db(){var f="condition@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,k,n,t,x;x=b;a=za();null!==a?(e=q(),null!==e?(d=Q(),null!==d?(h=q(),h=null!==h?h:"",null!==h?(61===c.charCodeAt(b)?(k="=",b+=1):(k=null,0===l&&g('"="')),null!==k?(n=q(),n=null!==n?n:"",null!==n?(t=S(),null!==t?a=[a,e,d,h,k,n,t]:(a=null,b=x)):(a=null,b=x)):(a=null,b=x)):(a=null,b=x)):(a=null,b=x)):(a=null,b=x)):(a=null,b=x);null===a&&(a=S());p[f]={b:b,result:a};return a}function nd(){var f;a:{f=ob;f.sort();for(var a=null,
e=[],d=0;d<f.length;d++)f[d]!==a&&(e.push(f[d]),a=f[d]);switch(e.length){case 0:f="end of input";break a;case 1:f=e[0];break a;default:f=e.slice(0,e.length-1).join(", ")+" or "+e[e.length-1]}}a=Math.max(b,ta);a=a<c.length?n(c.charAt(a)):"end of input";return"Expected "+f+" but "+a+" found."}function Lc(){for(var f=1,a=1,e=!1,d=0;d<Math.max(b,ta);d++){var g=c.charAt(d);"\n"===g?(e||f++,a=1,e=!1):"\r"===g||"\u2028"===g||"\u2029"===g?(f++,a=1,e=!0):(a++,e=!1)}return{ja:f,Da:a}}function y(b){this.id=
Ic++;this.ja=Lc().ja;for(var a in b)b.hasOwnProperty(a)&&(this[a]=b[a])}function X(b,a){for(var c=b,d=0;d<a.length;d++)c=new y({type:"binary",j:a[d][1],left:c,right:a[d][3]});return c}function jc(b,a,c){c&&(a=a.concat([c]));c=b[0];c.ha=b[1].C;b=c;for(var d=0;d<a.length;d++)b.M=a[d][0],b.M.ha=a[d][1].C,b=b.M;return c}var Mc={EOF:B,_:q,additive_expression:$a,additive_operator:Nb,assignment_expression:S,attribute_qualifier:Ib,attribute_type:rc,bitwise_and_expression:db,bitwise_and_operator:Rb,bitwise_or_expression:fb,
bitwise_or_operator:Tb,bitwise_xor_expression:eb,bitwise_xor_operator:Sb,bool_constant:Dc,comma:H,comment:C,compound_statement:Qa,condition:Db,conditional_expression:pa,const_qualifier:Va,declaration:Sa,declarator:Ca,declarator_array_with_size:Ea,declarator_list:wc,declarator_list_arrays_have_size:Gb,declarator_list_no_array:sc,declarator_no_array:Da,do_while:pc,equality_expression:cb,equality_operator:Qb,equals:cc,expression_statement:Cb,external_declaration:ec,external_statement:rb,external_statement_list:ja,
field_selector:Ga,float_constant:Bc,float_exponent:Xa,for_loop:nc,fragment_start:function(){var c="fragment_start@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f;f=d=b;ya="fs";a="";null!==a?(e=ja(),null!==e?a=[a,e]:(a=null,b=f)):(a=null,b=f);null!==a&&(a=a[1]);null===a&&(b=d);p[c]={b:b,result:a};return a},fully_specified_type:qc,function_call:Fc,function_definition:fc,function_identifier:Jc,function_prototype:Ab,function_prototype_parameter_list:tc,global_declaration:gc,identifier:Q,index_accessor:Fa,
init_declarator:Wa,init_declarator_list:Fb,int_constant:Ac,iteration_statement:lc,jump_statement:mc,keyword:zc,left_brace:pb,left_bracket:ua,left_paren:ba,locally_specified_type:za,logical_and_expression:gb,logical_and_operator:Ub,logical_or_expression:Kc,logical_or_operator:Wb,logical_xor_expression:hb,logical_xor_operator:Vb,macro_call:Oa,macro_call_line:function(){var f="macro_call_line@"+b,a=p[f];if(a)return b=a.b,a.result;var e,d,h,k;k=h=b;a=Oa();a=null!==a?a:"";if(null!==a){e=[];/^[^\n]/.test(c.charAt(b))?
(d=c.charAt(b),b++):(d=null,0===l&&g("[^\\n]"));for(;null!==d;)e.push(d),/^[^\n]/.test(c.charAt(b))?(d=c.charAt(b),b++):(d=null,0===l&&g("[^\\n]"));null!==e?a=[a,e]:(a=null,b=k)}else a=null,b=k;null!==a&&(a={aa:a[0],Ja:a[1].join("")});null===a&&(b=h);p[f]={b:b,result:a};return a},macro_call_parameter:Pa,macro_call_parameter_list:function(){var c="macro_call_parameter_list@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f,g,k,l;k=g=b;a=Pa();if(null!==a){e=[];l=b;d=H();null!==d?(f=Pa(),null!==f?d=[d,
f]:(d=null,b=l)):(d=null,b=l);for(;null!==d;)e.push(d),l=b,d=H(),null!==d?(f=Pa(),null!==f?d=[d,f]:(d=null,b=l)):(d=null,b=l);null!==e?a=[a,e]:(a=null,b=k)}else a=null,b=k;null!==a&&(a=function(a,b){return[a].concat(b.map(function(a){return a[1]}))}(a[0],a[1]));null===a&&(b=g);p[c]={b:b,result:a};return a},macro_identifier:na,macro_paren_parameter:ub,matrix:Kb,member_list:xc,multiplicative_expression:Za,multiplicative_operator:Mb,newLine:t,noNewlineComment:x,noNewlineWhitespace:ha,parameter_declaration:Ua,
parameter_list:vb,parameter_qualifier:vc,paren_expression:Cc,postfix_expression:Gc,postfix_expression_no_repeat:Hc,precision_qualifier:Ta,precision_type:Ba,preprocessor_define:sb,preprocessor_else:xb,preprocessor_else_if:wa,preprocessor_end:yb,preprocessor_external_branch:dc,preprocessor_if:wb,preprocessor_operator:tb,preprocessor_parameter_list:ic,preprocessor_statement_branch:zb,primary_expression:Ec,relational_expression:bb,relational_operator:Pb,reserved:function(){var f="reserved@"+b,a=p[f];
if(a)return b=a.b,a.result;var e,d,h,k;l++;k=b;a=[];for(e=Lb();null!==e;)a.push(e),e=Lb();if(null!==a)if("__"===c.substr(b,2)?(e="__",b+=2):(e=null,0===l&&g('"__"')),null!==e){d=[];/^[A-Za-z_0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[A-Za-z_0-9]"));for(;null!==h;)d.push(h),/^[A-Za-z_0-9]/.test(c.charAt(b))?(h=c.charAt(b),b++):(h=null,0===l&&g("[A-Za-z_0-9]"));null!==d?a=[a,e,d]:(a=null,b=k)}else a=null,b=k;else a=null,b=k;l--;0===l&&null===a&&g("reserved name");p[f]={b:b,result:a};
return a},right_brace:qb,right_bracket:va,right_paren:ca,selection_statement:kc,semicolon:z,shift_expression:ab,shift_operator:Ob,simple_statement:Bb,single_underscore_identifier:Lb,statement_list:oa,statement_no_new_scope:xa,statement_with_scope:Ra,struct_definition:hc,type_name:Aa,type_qualifier:Hb,unary_expression:Ya,vector:Jb,vertex_start:function(){var c="vertex_start@"+b,a=p[c];if(a)return b=a.b,a.result;var e,d,f;f=d=b;ya="vs";a="";null!==a?(e=ja(),null!==e?a=[a,e]:(a=null,b=f)):(a=null,b=
f);null!==a&&(a=a[1]);null===a&&(b=d);p[c]={b:b,result:a};return a},void_type:uc,while_loop:oc,while_statement:Eb};if(void 0!==f){if(void 0===Mc[f])throw Error("Invalid rule name: "+n(f)+".");}else f="external_statement_list";var b=0,l=0,ta=0,ob=[],p={},yc={},Ic=0,ya="vs",L=Mc[f]();if(null===L||b!==c.length){var Nc=Lc();throw new la.SyntaxError(nd(),Nc.ja,Nc.Da);}return L}la.SyntaxError=function(c,f,k){this.name="SyntaxError";this.message=c;this.line=f;this.column=k};la.SyntaxError.prototype=Error.prototype;function ma(c){return c.split(/_/g).map(function(c){return c.slice(0,1).toUpperCase()+c.slice(1).toLowerCase()}).join("")}["varying mediump vec4 gl_FragCoord;","varying bool gl_FrontFacing;","varying mediump vec2 gl_PointCoord;"].map(function(c){return A(c,"global_declaration")});var qa=Array.prototype,D=qa.forEach?function(c,f,k){qa.forEach.call(c,f,k)}:function(c,f,k){for(var n=c.length,g="string"==typeof c?c.split(""):c,t=0;t<n;t++)t in g&&f.call(k,g[t],t,c)};function ra(c,f,k){for(var n="string"==typeof c?c.split(""):c,g=c.length-1;0<=g;--g)g in n&&f.call(k,n[g],g,c)}var sa=qa.every?function(c,f,k){return qa.every.call(c,f,k)}:function(c,f,k){for(var n=c.length,g="string"==typeof c?c.split(""):c,t=0;t<n;t++)if(t in g&&!f.call(k,g[t],t,c))return!1;return!0};
function Ha(c){var f=c.length;if(0<f){for(var k=Array(f),n=0;n<f;n++)k[n]=c[n];return k}return[]};function Ia(){}Ia.prototype.i=function(c){return this["beforeVisit"+ma(c.type)]};Ia.prototype.u=function(c){return this["afterVisit"+ma(c.type)]};Ia.prototype.m=function(c){return this["visit"+ma(c.type)]};function E(c,f){if(f&&f.type){var k=c.i(f);k&&k.apply(c,[f]);(k=c.m(f))?k.apply(c,[f]):Ja(c,f);(k=c.u(f))&&k.apply(c,[f])}}function Ka(c,f){D(f,function(c){E(this,c)},c)}
function Ja(c,f){for(var k in f){var n=f[k];if("array"==ea(n))Ka(c,n);else{var g=typeof n;("object"==g&&null!=n||"function"==g)&&n.type&&E(c,n)}}};function F(c,f){this.c=c||"\n";this.h=!!f;this.a="";this.f=0}v(F,Ia);ka("glslunit.Generator",F);function G(c,f,k){this.a=c;this.c=f||0;this.f=k||2}
var La={function_call:new G(0,2),identifier:new G(0,2),"float":new G(0,2),"int":new G(0,2),bool:new G(0,2),postfix:new G(1,0,1),unary:new G(2,1,1),"*":new G(3,0),"/":new G(3),"%":new G(3),"+":new G(4,0),"-":new G(4),"<<":new G(5),">>":new G(5),"<":new G(6),">":new G(6),"<=":new G(6),">=":new G(6),"==":new G(7),"!=":new G(7),"&":new G(8,0),"^":new G(9,0),"|":new G(10,0),"&&":new G(11,0),"^^":new G(12,0),"||":new G(13,0),ternary:new G(14,1,3),"=":new G(15),"-=":new G(15),"+=":new G(15),"*=":new G(15),
"/=":new G(15),"%=":new G(15),"<<=":new G(15),">>=":new G(15),"&=":new G(15),"^=":new G(15),"|=":new G(15)};function I(c,f,k){f=new F(f,k);E(f,c);return f.a}function Ma(c,f,k){return f?c+f+k:""}function Na(c,f,k){for(var n=0;n<f.length;n++)0!=n&&(c.a+=k),E(c,f[n])}function ib(c){c.h&&(c.a+=c.c+Array(c.f+1).join(" "))}function jb(c){c.h&&" "==c.a.slice(-2)&&(c.a=c.a.slice(0,-2))}
F.prototype.za=function(c){this.a+=Ma("",c.qualifier," ");this.a+="struct";this.a+=Ma(" ",c.name,"");this.a+="{";this.f++;Na(this,c.Ia,"");this.f--;jb(this);this.a+="}";c.w&&Na(this,c.w,",");this.a+=";";ib(this)};F.prototype.visitStructDefinition=F.prototype.za;F.prototype.ya=function(c){this.a+="{";this.f++;ib(this);Na(this,c.C,"");this.f--;jb(this);this.a+="}";ib(this)};F.prototype.visitScope=F.prototype.ya;F.prototype.va=function(c){this.a+="precision "+c.precision+" "+c.typeName+";";ib(this)};
F.prototype.visitPrecision=F.prototype.va;F.prototype.ra=function(c){this.a+="invariant ";Na(this,c.Ea,",");this.a+=";";ib(this)};F.prototype.visitInvariant=F.prototype.ra;F.prototype.ta=function(c){this.a+=Ma("",c.pa," ");this.a+=Ma("",c.ka," ");this.a+=Ma("",c.precision," ");this.a+=c.Ka+" "+c.name;c.$&&(this.a+="[",E(this,c.$),this.a+="]")};F.prototype.visitParameter=F.prototype.ta;function kb(c,f){E(c,f.la);c.a+=" "+f.name+"(";Na(c,f.l,",");c.a+=")"}
F.prototype.da=function(c){kb(this,c);this.a+=";";ib(this)};F.prototype.visitFunctionPrototype=F.prototype.da;F.prototype.ca=function(c){kb(this,c);E(this,c.body)};F.prototype.visitFunctionDeclaration=F.prototype.ca;
F.prototype.wa=function(c){var f=this.a.slice(-1*this.c.length);f&&f!=this.c&&(this.a+=this.c);this.a+=c.B;"#define"==c.B?(this.a+=" "+c.identifier,c.l&&(this.a+="(",Na(this,c.l,","),this.a+=")"),this.a+=Ma(" ",c.oa,"")):this.a+=Ma(" ",c.value,"");this.a+=this.c;c.ha&&(Na(this,c.ha,""),c.M&&E(this,c.M),"#if"==c.B.slice(0,3)&&(f=this.a.slice(-1*this.c.length),f!=this.c&&(this.a+=this.c),this.a+="#endif"+this.c))};F.prototype.visitPreprocessor=F.prototype.wa;
function lb(c,f){c.a+="while(";E(c,f.F);c.a+=")"}F.prototype.U=function(c){this.a+="do";"scope"!=c.body.type&&(this.a+=" ");E(this,c.body);lb(this,c)};F.prototype.visitDoStatement=F.prototype.U;F.prototype.Ca=function(c){lb(this,c);E(this,c.body)};F.prototype.visitWhileStatement=F.prototype.Ca;F.prototype.ba=function(c){this.a+="for(";E(this,c.H);E(this,c.F);this.a+=";";E(this,c.Fa);this.a+=")";E(this,c.body)};F.prototype.visitForStatement=F.prototype.ba;
F.prototype.fa=function(c){this.a+="if(";E(this,c.F);this.a+=")";E(this,c.body);c.M&&(this.a+="else","scope"!=c.M.type&&(this.a+=" "),E(this,c.M))};F.prototype.visitIfStatement=F.prototype.fa;F.prototype.S=function(c){E(this,c.name);c.isArray&&(this.a+="[",c.$&&E(this,c.$),this.a+="]");c.H&&(this.a+="=",E(this,c.H))};F.prototype.visitDeclaratorItem=F.prototype.S;F.prototype.K=function(c){E(this,c.v);this.a+=" ";Na(this,c.w,",");this.a+=";";ib(this)};F.prototype.visitDeclarator=F.prototype.K;
F.prototype.Ba=function(c){this.a+=Ma("",c.qualifier," ");this.a+=Ma("",c.precision," ");this.a+=c.name};F.prototype.visitType=F.prototype.Ba;F.prototype.X=function(c){E(this,c.N);this.a+=";";ib(this)};F.prototype.visitExpression=F.prototype.X;F.prototype.g=function(c){this.a+=c.type;c.value&&(this.a+=" ",E(this,c.value));this.a+=";";ib(this)};F.prototype.visitJump=F.prototype.g;F.prototype.xa=F.prototype.g;F.prototype.visitReturn=F.prototype.xa;F.prototype.W=F.prototype.g;
F.prototype.visitBreak=F.prototype.W;F.prototype.T=F.prototype.g;F.prototype.visitDiscard=F.prototype.T;F.prototype.J=F.prototype.g;F.prototype.visitContinue=F.prototype.J;F.prototype.qa=function(c){this.a.slice(-1)==c.j.j&&(this.a+=" ");E(this,c.j);mb(this,c.N,c,0)};F.prototype.visitUnary=F.prototype.qa;F.prototype.ua=function(c){mb(this,c.N,c,0);E(this,c.j)};F.prototype.visitPostfix=F.prototype.ua;F.prototype.sa=function(c){this.a+=c.j};F.prototype.visitOperator=F.prototype.sa;
F.prototype.Y=function(c){this.a+="."+c.selection};F.prototype.visitFieldSelector=F.prototype.Y;F.prototype.D=function(c){this.a+="[";E(this,c.index);this.a+="]"};F.prototype.visitAccessor=F.prototype.D;F.prototype.A=function(c){this.a+=c.I+"(";Na(this,c.l,",");this.a+=")"};F.prototype.visitFunctionCall=F.prototype.A;F.prototype.ea=function(c){this.a+=c.name};F.prototype.visitIdentifier=F.prototype.ea;
function nb(c){function f(c){return c.toLowerCase().replace(/^0*|\+/g,"").replace(/(?:(\.[1-9]+)|\.)0*e/g,"$1e")}if(0==c)return"0.";var k=f(""+c);c=f(c.toExponential());-1==k.indexOf(".")&&-1==k.indexOf("e")&&(k+=".");return k.length<=c.length?k:c}F.prototype.Z=function(c){this.a+=nb(c.value)};F.prototype.visitFloat=F.prototype.Z;F.prototype.o=function(c){this.a+=c.value};F.prototype.visitValue=F.prototype.o;
F.prototype.ga=function(c){var f=c.value;c=f.toString(10);f=(0>f?"-":"")+"0x"+Math.abs(f).toString(16).toLowerCase();this.a+=c.length<=f.length?c:f};F.prototype.visitInt=F.prototype.ga;F.prototype.P=F.prototype.o;F.prototype.visitBool=F.prototype.P;F.prototype.O=function(c){mb(this,c.left,c,0);E(this,c.j);mb(this,c.right,c,1)};F.prototype.visitBinary=F.prototype.O;F.prototype.Aa=function(c){mb(this,c.F,c,0);this.a+="?";mb(this,c.Ha,c,1);this.a+=":";mb(this,c.Ga,c,2)};F.prototype.visitTernary=F.prototype.Aa;
function mb(c,f,k,n){var g=La["binary"==f.type?f.j.j:f.type];k=La["binary"==k.type?k.j.j:k.type];var t=!1;if(t=g.a>k.a?!0:g.a==k.a?0==k.c&&0==n||1==k.c&&n==k.f-1?!1:!0:!1)c.a+="(";E(c,f);t&&(c.a+=")")};function J(c,f){this.U=c||null;this.o=!!f;this.D={};this.h=[];this.a=[];this.A={};this.c=[]}v(J,Ia);ka("glslunit.VariableScopeVisitor",J);function Xb(c){var f={};ra(c.h.concat([c.a]),function(c){D(c,function(c){"declarator"==c.type?D(c.w,function(g){da(f[g.name.name])||(f[g.name.name]=c)},this):"parameter"==c.type&&(f[c.name]=c)},this)},c);return f}J.prototype.g=function(){this.h.push(this.a);this.a=[];[].push.apply(this.a,this.c);this.c=[]};J.prototype.beforeVisitScope=J.prototype.g;
J.prototype.f=function(c){this.A[c.id]=this.a;c==this.U&&(this.D=Xb(this));this.a=this.h.pop()};J.prototype.afterVisitScope=J.prototype.f;J.prototype.K=J.prototype.g;J.prototype.beforeVisitRoot=J.prototype.K;J.prototype.O=function(c){this.o||this.f(c)};J.prototype.afterVisitPreprocessor=J.prototype.O;J.prototype.J=function(){this.o||this.g()};J.prototype.beforeVisitPreprocessor=J.prototype.J;J.prototype.P=J.prototype.f;J.prototype.afterVisitRoot=J.prototype.P;J.prototype.W=function(c){this.a.push(c)};
J.prototype.beforeVisitDeclarator=J.prototype.W;J.prototype.T=function(c){this.c=c.l};J.prototype.beforeVisitFunctionDeclaration=J.prototype.T;J.prototype.S=function(){this.c=[]};J.prototype.afterVisitFunctionDeclaration=J.prototype.S;function Yb(c){var f=new J;E(f,c);return f.A}J.getScopeToDeclarationMap=Yb;function Zb(c,f){var k=new J(f,!0);E(k,c);return k.D};function $b(c){this.c=[];this.a=[];this.f=c}v($b,Ia);$b.prototype.g=function(c){this.f(c,this.a.slice(0,-1))&&this.c.push(c);Ja(this,c)};$b.prototype.i=function(){return ia(Array.prototype.push,this.a)};$b.prototype.u=function(){return ia(Array.prototype.pop,this.a)};$b.prototype.m=function(){return this.g};function ac(c,f){var k=new $b(f);E(k,c);return k.c};function K(){this.a={};this.a[bc]=[];this.c=bc}v(K,Ia);var bc="#";K.prototype.g=function(c){c.name in this.a||(this.a[c.name]=[]);this.c=c.name};K.prototype.beforeVisitFunctionDeclaration=K.prototype.g;K.prototype.f=function(){this.c=bc};K.prototype.afterVisitFunctionDeclaration=K.prototype.f;K.prototype.h=function(c){this.a[this.c].push(c.I);Ja(this,c)};K.prototype.visitFunctionCall=K.prototype.h;function Oc(c){c=ac(c,function(c,f){return"declarator"==c.type&&"struct_definition"==f.slice(-1)[0].type});var f=[];D(c,function(c){f[c.id]=!0});return f};function M(c){var f={},k;for(k in c)f[k]=c[k];return f};function N(){this.c=[]}var Pc=-1;function O(c){c=M(c);c.id=Pc--;return c}N.prototype.W=function(c){return this["transform"+ma(c.type)]};function Qc(c,f,k,n){var g=c[k+ma(f.type)];return ia(function(c){D(this.c,function(f){var g=n(f).apply(f,[c]);g&&g.apply(f,[c])});g&&g.apply(this,[c])},c)}N.prototype.P=function(c){return Qc(this,c,"beforeTransform",function(c){return c.i})};N.prototype.O=function(c){return Qc(this,c,"afterTransform",function(c){return c.u})};
function P(c,f){var k=!1,n=c.P(f);n&&n.apply(c,[f]);var n=O(f),g;for(g in f){var t=f[g];if("array"==ea(t)){n[g]=[];for(var B=0;B<t.length;B++){var q=t[B],x=P(c,q);x!=q&&(k=!0);null!=x&&Array.prototype.push.apply(n[g],"array"==ea(x)?x:[x])}}else t&&t.type&&(x=P(c,t),x!=t&&(k=!0,null!=x?n[g]=x:delete n[g]))}g=c.W(f);n=k?n:f;g&&(n=g.apply(c,[n,f]));(k=c.O(f))&&k.apply(c,[f,n]);return n};function Rc(c,f,k,n,g){this.c=[];this.u=g;this.i=c;this.a=f;this.h=k;this.f=n}v(Rc,N);ka("glslunit.SpliceTransformer",Rc);Rc.prototype.g=function(c){if(c==this.i){c=O(c);if("array"==ea(c[this.a])){var f=this.u.map(O);c[this.a]=Ha(c[this.a]);[].splice.apply(c[this.a],[this.h,this.f].concat(f));return c}throw this.a+" wasn't an array.";}return c};Rc.prototype.W=function(){return this.g};function Sc(){this.s=this.a="";this.c=[]}Sc.prototype.clone=function(){var c=M(this);c.c=Ha(this.c);return c};function Tc(){this.f=this.s="";this.c=this.a=this.g=0}function Uc(){this.type=this.a=this.s=""}function R(){this.i=[];this.f=[];this.h={};this.L={};this.R={};this.g=[];this.a={};this.c={};this.u={}}
R.prototype.clone=function(){var c=M(this);c.L=M(this.L);c.R=M(this.R);c.h=M(this.h);c.i=Ha(this.i);c.u=M(this.u);c.f=this.f.map(function(c){return M(c)});c.g=this.g.map(function(c){return c.clone()});return c};R.prototype.P=function(c){return I(this.c,c||"\\n",!1)};R.prototype.getVertexSource=R.prototype.P;R.prototype.o=function(c){return I(this.a,c||"\\n",!1)};R.prototype.getFragmentSource=R.prototype.o;R.prototype.A=function(c){return"".replace(/\n/g,c||"\\n").replace(/'/g,"\\'")};
R.prototype.getOriginalFragmentSource=R.prototype.A;R.prototype.D=function(c){return"".replace(/\n/g,c||"\\n").replace(/'/g,"\\'")};R.prototype.getOriginalVertexSource=R.prototype.D;R.prototype.m=function(){var c=[],f;for(f in this.L)c.push(this.L[f]);0<c.length&&(c[c.length-1].last=!0);return c};R.prototype.getAttributes=R.prototype.m;R.prototype.O=function(){var c=[],f;for(f in this.R)c.push(this.R[f]);0<c.length&&(c[c.length-1].last=!0);return c};R.prototype.getUniforms=R.prototype.O;
function Vc(c){D(c.f,function(c){""==c.s&&(c.s=c.a)});var f={},k;for(k in c.L){var n=c.L[k];f[n.s]=n}k={};for(var g in c.R)n=c.R[g],k[n.s]=n;Wc(c,c.c,f,k);Wc(c,c.a,f,k)}
function Wc(c,f,k,n){f=ac(f,function(c){return"declarator"==c.type&&("attribute"==c.v.qualifier||"uniform"==c.v.qualifier)});D(f,function(c){D(c.w,function(f){f=f.name.name;var B=c.v.name;if("attribute"==c.v.qualifier){var q=k[f];if(!q){q=new Tc;q.s=f;q.f=f;var x=I(c),ha="".search(x),B=parseInt(B.slice(3,4),10);q.g=isNaN(B)?1:B;q.a=ha;q.c=x.length;this.L[f]=q}}else q=n[f],q||(q=new Uc,q.s=f,q.a=f,q.type=B,this.R[f]=q)},this)},c)};function T(){this.c=[];this.a=[]}v(T,N);var Xc={vec2:2,vec3:3,vec4:4,bvec2:2,bvec3:3,bvec4:4,ivec2:2,ivec3:3,ivec4:4,mat2:4,mat3:9,mat4:16,"float":1,"int":1,bool:1};T.prototype.P=function(){return ia(Array.prototype.push,this.a)};T.prototype.O=function(){return ia(Array.prototype.pop,this.a)};function Yc(c){c=c.a.slice(-2)[0];return"function_call"==c.type&&c.I in Xc}
T.prototype.i=function(c){if(Yc(this)&&65536>Math.abs(c.value)&&c.value==Math.round(c.value)){var f=O(c);f.type="int";f.value=Number(c.value);return f}return c};T.prototype.o=T.prototype.i;T.prototype.transformFloat=T.prototype.o;T.prototype.m=T.prototype.i;T.prototype.transformBool=T.prototype.m;
T.prototype.h=function(c){var f=Xc[c.I];if(f){if(Yc(this)&&c.l.length==f)return c.l;if(c.l&&1<c.l.length){var k=I(c.l[0]),n=!1;if("mat"==c.I.slice(0,3)){if(c.l.length==f){for(var f=!0,g=parseInt(c.I.slice(-1),10),t=0;t<g&&f;t++)for(var B=0;B<g&&f;B++)f=I(c.l[t*g+B])==(t==B?k:"0");f&&(n=!0)}}else sa(c.l,function(c){return I(c)==k})&&(n=!0);if(n)return n=O(c),n.l=[c.l[0]],n}}return c};T.prototype.transformFunctionCall=T.prototype.h;T.prototype.f=function(){return"ConstructorMinifier"};
T.prototype.g=function(){return[]};T.prototype.u=function(c,f){var k=new T;f.c=P(new T,f.c);f.a=P(k,f.a);return[]};function U(){this.c=[]}v(U,N);function Zc(c,f){var k=c[f],n=c;k&&"scope"==k.type&&1==k.C.length&&(n=O(c),n[f]=k.C[0]);return n}U.prototype.h=function(c){c=Zc(c,"body");return Zc(c,"elseBody")};U.prototype.transformIfStatement=U.prototype.h;U.prototype.m=function(c){return Zc(c,"body")};U.prototype.transformWhileStatement=U.prototype.m;U.prototype.a=function(c){return Zc(c,"body")};U.prototype.transformDoStatement=U.prototype.a;U.prototype.i=function(c){return Zc(c,"body")};
U.prototype.transformForStatement=U.prototype.i;U.prototype.f=function(){return"BraceReducer"};U.prototype.g=function(){return[]};U.prototype.u=function(c,f){var k=new U;f.c=P(new U,f.c);f.a=P(k,f.a);return[]};function V(){this.c=[];this.a={}}v(V,N);V.prototype.h=function(c){var f=new K;E(f,c);c=f.a;this.a={};for(var k in c)this.a[k]=!1;$c(this,"main",c);$c(this,bc,c)};V.prototype.beforeTransformRoot=V.prototype.h;function $c(c,f,k){f in c.a&&!c.a[f]&&(c.a[f]=!0,D(k[f],function(c){$c(this,c,k)},c))}V.prototype.i=function(c){return this.a[c.name]?c:null};V.prototype.transformFunctionDeclaration=V.prototype.i;V.prototype.m=V.prototype.i;V.prototype.transformFunctionPrototype=V.prototype.m;V.prototype.f=function(){return"DeadFunctionRemover"};
V.prototype.g=function(){return[]};V.prototype.u=function(c,f){var k=new V;f.c=P(new V,f.c);f.a=P(k,f.a);return[]};function W(c){this.c=[];this.J={};this.h=null;this.a=[];this.o=[];this.A=[];this.i=c}v(W,N);W.prototype.X=function(c){var f=ac(c,function(c){return"for_statement"==c.type});D(f,function(c){this.o[c.H.id]=!0},this);this.A=Oc(c);var f=Yb(c),k;for(k in f){var n={};D(f[+k],function(f){if("declarator"==f.type&&ad(this,f,k==c.id)){var t=I(f.v);n[t]||(n[t]=[]);D(f.w,function(c){var f=c;f.H&&(f=O(c),delete f.H);n[t].push(f)},this)}},this);this.J[+k]=n}this.m(c)};W.prototype.beforeTransformRoot=W.prototype.X;
W.prototype.U=function(c){this.h=c};W.prototype.beforeTransformDeclarator=W.prototype.U;W.prototype.T=function(){this.h=null};W.prototype.afterTransformDeclarator=W.prototype.T;W.prototype.m=function(c){this.a.push(this.J[c.id])};W.prototype.beforeTransformScope=W.prototype.m;W.prototype.S=W.prototype.m;W.prototype.beforeTransformPreprocessor=W.prototype.S;W.prototype.D=function(){this.a.pop()};W.prototype.afterTransformScope=W.prototype.D;W.prototype.K=W.prototype.D;
W.prototype.afterTransformPreprocessor=W.prototype.K;function ad(c,f,k){var n=I(f.v),g=null,t=f.v.qualifier;0<c.a.length&&(g=c.a.slice(-1)[0][n]);return null!=f&&(c.i||"attribute"!=t)&&(c.i||"uniform"!=t)&&"const"!=f.v.qualifier&&(!g||1<g.length)&&!(f.id in c.o)&&!(f.id in c.A)&&!(k&&!sa(f.w,function(c){return!da(c.H)}))}
W.prototype.Z=function(c){return ad(this,this.h,1==this.a.length)?c.H?{id:Pc--,type:"expression",N:{id:Pc--,type:"binary",j:{id:Pc--,type:"operator",j:"="},left:c.name,right:c.H}}:null:c};W.prototype.transformDeclaratorItem=W.prototype.Z;W.prototype.Y=function(c){if(!ad(this,c,1==this.a.length))return c;var f=[],k=I(c.v),n=this.a.slice(-1)[0],g=n[k];g&&(f=O(c),f.w=g,f=[f],delete n[k]);c.w&&0!=c.w.length&&Array.prototype.push.apply(f,c.w);return f};W.prototype.transformDeclarator=W.prototype.Y;
W.prototype.f=function(){return"DeclarationConsolidation"};W.prototype.g=function(){return[]};W.prototype.u=function(c,f){var k=new W(this.i);f.c=P(new W(this.i),f.c);f.a=P(k,f.a);return[]};function bd(c){this.a={};this.i=c;this.f={};this.c={};D(cd,function(c){this.a[c]=[]},this)}var cd=[0,1];function dd(c,f){c.c[f.f()]=f;c.a[1].push(f)}function ed(c){D(cd,function(c){D(this.a[c],function(c){fd(this,c,[])},this)},c);return c.i}function fd(c,f,k){var n=f.f(),g=k.concat(n);if(-1!=k.indexOf(n))throw"Circular dependcy in compiler steps. "+g.join("->");n in c.f||(D(f.g(),function(c){c in this.c&&fd(this,this.c[c],g)},c),c.f[n]=f.u(c.f,c.i))};function gd(){this.c={};this.g={};this.f=this.a=0}function hd(c){var f="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[c%52];for(c=Math.floor(c/52);0<c;)--c,f+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"[c%62],c=Math.floor(c/62);return f}function id(c){return"_"+hd(c)}function jd(c,f){if(c.c[f])return c.c[f];for(var k=null;!k||k in c.g;)k=hd(c.a++);c.g[k]=!0;return c.c[f]=k}function kd(c,f){return c.c[f]||f}
gd.prototype.clone=function(){var c=new gd;c.c=M(this.c);c.g=M(this.g);c.a=this.a;c.f=this.f;return c};function Y(c){this.c=[];this.K=[];this.a=new gd;this.h=null;this.m=0;this.o=c;this.J=[]}v(Y,N);function ld(c,f){if(!f)return!1;var k=f.v.qualifier;return(c.o||"uniform"!=k&&"attribute"!=k)&&!(f.id in c.J)}Y.prototype.da=function(c){this.J=Oc(c);var f=[];c=Zb(c,c);for(var k in c){var n=c[k];ld(this,n)&&(n=n.v.qualifier,"varying"==n||"uniform"==n?jd(this.a,k):f.push(k))}D(f,function(c){jd(this.a,c)},this)};Y.prototype.beforeTransformRoot=Y.prototype.da;Y.prototype.Z=function(c){this.h=c};
Y.prototype.beforeTransformDeclarator=Y.prototype.Z;Y.prototype.X=function(){this.h=null};Y.prototype.afterTransformDeclarator=Y.prototype.X;Y.prototype.ga=function(c){var f=O(c);f.name=jd(this.a,c.name);return f};Y.prototype.transformParameter=Y.prototype.ga;Y.prototype.D=function(){this.K.push(this.a);this.a=this.a.clone()};Y.prototype.A=function(){this.m=Math.max(this.m,this.a.a);this.a=this.K.pop()};Y.prototype.ea=Y.prototype.D;Y.prototype.beforeTransformScope=Y.prototype.ea;Y.prototype.Y=Y.prototype.A;
Y.prototype.afterTransformScope=Y.prototype.Y;Y.prototype.ba=Y.prototype.D;Y.prototype.beforeTransformFunctionDeclaration=Y.prototype.ba;Y.prototype.S=Y.prototype.A;Y.prototype.afterTransformFunctionDeclaration=Y.prototype.S;Y.prototype.ca=Y.prototype.D;Y.prototype.beforeTransformFunctionPrototype=Y.prototype.ca;Y.prototype.T=Y.prototype.A;Y.prototype.afterTransformFunctionPrototype=Y.prototype.T;
Y.prototype.U=function(c){var f=c.name.name,k;this.h&&(k=this.h.v.qualifier);ld(this,this.h)&&(f=jd(this.a,c.name.name));this.i&&this.h&&("attribute"==k?this.i.L[c.name.name].s=f:"uniform"==k&&(this.i.R[c.name.name].s=f));return c};Y.prototype.beforeTransformDeclaratorItem=Y.prototype.U;Y.prototype.fa=function(c){var f=kd(this.a,c.name);c.name!=f&&(c=O(c),c.name=f);return c};Y.prototype.transformIdentifier=Y.prototype.fa;Y.prototype.f=function(){return"VariableMinifier"};Y.prototype.g=function(){return[]};
Y.prototype.u=function(c,f){var k=new Y(this.o);k.i=f;f.c=P(k,f.c);var n=new Y(this.o);n.i=f;n.a=k.a;f.a=P(n,f.a);return{vertexMaxId:k.m,fragmentMaxId:n.m}};function Z(){this.c=[];this.a=new gd}v(Z,N);var md={main:!0};Z.prototype.i=function(c){c.name in md||jd(this.a,c.name)};Z.prototype.beforeTransformFunctionDeclaration=Z.prototype.i;Z.prototype.h=function(c){var f=kd(this.a,c.name);f!=c.name&&(c=O(c),c.name=f);return c};Z.prototype.transformFunctionDeclaration=Z.prototype.h;Z.prototype.o=function(c){var f=kd(this.a,c.I);f!=c.I&&(c=O(c),c.I=f);return c};Z.prototype.transformFunctionCall=Z.prototype.o;Z.prototype.m=Z.prototype.i;
Z.prototype.beforeTransformFunctionPrototype=Z.prototype.m;Z.prototype.A=Z.prototype.h;Z.prototype.transformFunctionPrototype=Z.prototype.A;Z.prototype.f=function(){return"Function Minifier"};Z.prototype.g=function(){return["VariableMinifier"]};Z.prototype.u=function(c,f){var k=0,n=0;"VariableMinifier"in c&&(k=c.VariableMinifier.vertexMaxId,n=c.VariableMinifier.fragmentMaxId);var g=new Z;g.a.a=k;k=new Z;f.c=P(g,f.c);k.a.a=n;f.a=P(k,f.a);return[]};function od(c,f,k,n){this.c=c;this.a=f;this.i=k;this.h=n}function pd(c){this.c=[];this.f=!1;this.g=c;this.a=!0}v(pd,N);function qd(c,f){c.a&&(c.a=0==ac(f,ia(function(c,f){if("function_call"==c.type||"operator"==c.type||"int"==c.type||"binary"==c.type||"unary"==c.type)return!1;if("identifier"==c.type){var g=this.g[c.name];if(g=da(g)&&g.a)this.f=!0;return!(g||0<f.length&&"function_call"==f.slice(-1)[0].type)}return!0},c)).length)}
function rd(c,f){var k=A(c,"condition"),n=new pd(f),k=P(n,k),g="";n.a&&(g=sd(I(k),f),k=A(g,"condition"),qd(n,k));g={ia:n.a,G:n.f,value:0,ma:g};if(n.a&&!n.f)try{g.value=Number(eval(I(k)))}catch(t){g.ia=!1}return g}var td=/([\.=;,\(\)\[\]{}\+\-:?!\|&<>\/\*]|[ \t\n]+)/g,ud=/[A-Za-z_][A-Za-z_0-9]*/g;function vd(c,f){this.name=c.identifier;this.arguments=c.l?c.l.map(function(c){return c.name}):null;this.c=c.oa.split(td).filter(function(c){return 0<c.length});this.a=f||null}
function wd(c,f,k){if(c in k)return c;var n=f[c],g=c;if(da(n))if(n.a)g=n.a.s||n.name;else if(!n.arguments){var t=M(k);t[c]=!0;g=n.c.map(function(c){return wd(c,f,t)}).join("")}return g}
function xd(c,f,k,n){for(var g in c){var t=f[c[g]];if(da(t)&&t.arguments){var B=c.slice(g).join(""),B=A(B,"macro_call_line");if(B.aa&&B.aa.l.length==t.arguments.length&&!(B.aa.na.name in n)){var q=B.aa,x=M(n);x[B.aa.na.name]=!0;var q=q.l.map(function(c){return sd(I(c),f,k,x)}),ha={},C;for(C in t.arguments)ha[t.arguments[C]]=q[C];t=sd(t.c.join(""),f,ha,x);B=sd(B.Ja,f,k,n);return sd(c.slice(0,g).join("")+t+B,f,k,n)}}}return c.join("")}
function sd(c,f,k,n){k=k||{};n=n||{};var g=M(f),t;for(t in k)g[t]=new vd(A("#define "+t+" "+k[t],"preprocessor_define"));c=c.split(td).filter(function(c){return 0<c.length}).map(function(c){return wd(c,g,{})});return xd(c,f,k,n)}function yd(c,f,k){this.status=c;this.V=f;this.G=k}
function zd(c,f,k){var n={};D(f,function(c){var f=A("#define "+c.a,"preprocessor_define");n[c.a]=new vd(f,c);c.s&&(f=A("#define "+c.s,"preprocessor_define"),n[c.s]=new vd(f,c))});c=I(c);var g=[new yd(1,!0,!1)],t=0,B=[];D(c.split(/\n/g),function(c){var f=g.slice(-1)[0],k=0==f.status;if(0!=c.search("#define")||k)if(0!=c.search("#undef")||k)if(0==c.search("#if")){f=c;c=A(f,"preprocessor_if");if(k)g.push(new yd(0,!1,!1)),f=!1;else{var C=!1,z=!1;if("#ifdef"==c.B||"#ifndef"==c.B){var H=c.value.match(ud)[0];
if(!da(H))throw"Invalid "+c.B+": "+f;H=n[H];da(H)&&H.a?(C=!0,f=c.B+" "+(H.a.s||H.name)):z=da(H)==("#ifndef"==c.B)}else{z=rd(c.value,n);if(!z.ia)throw"Invalid "+c.B+": "+f;f="#if "+z.ma;C=z.G;z=0==z.value}C?g.push(new yd(2,!1,!0)):g.push(new yd(z?0:1,!z,!1));C&&B.push(f);f=C}t+=f&&!k}else if(0==c.search("#else"))k=!1,0!=g.slice(-2,-1)[0].status&&(f.G&&!f.V?(k=!0,C=1,z=f.V,f=!0):0!=f.status||f.V?(C=0,z=!0,f=f.G):(C=1,z=!0,f=!1),g[g.length-1]=new yd(C,z,f)),k&&B.push(c);else if(0==c.search("#elif")){k=
c;c=!1;if(0!=g.slice(-2,-1)[0].status){z=A(k,"preprocessor_else_if");C=rd(z.value,n);if(!C.ia)throw"Invalid "+z.B+": "+k;k="#elif "+C.ma;z=0==C.value;f.G&&!f.V?(f=!0,C.G?(C=2,z=!1):z?(C=0,z=!1):(k="#else",C=1,z=!0)):f.V?(C=0,z=f.V,f=f.G):C.G?(k=k.replace(/^#elif/,"#if"),C=2,z=!1,c=f=!0):(C=z?0:1,z=!z,f=f.G);g[g.length-1]=new yd(C,z,f);f&&0!=C&&B.push(k)}t+=c}else 0==c.search("#endif")?(g.pop(),f.G&&(t--,B.push(c))):k||(f=sd(c,n),B.push(f));else{if(0<t)throw"Definitions can not be changed inside of Modes: "+
c;f=A(c,"preprocessor_operator");delete n[f.value]}else{if(0<t)throw"Definitions can not be changed inside of Modes: "+c;f=A(c,"preprocessor_define");f=new vd(f);n[f.name]=f}});return A(B.join("\n"),k)}od.prototype.f=function(){return"Preprocessor"};od.prototype.g=function(){return["VariableMinifier"]};function Ad(c,f){var k="statements";for(k in c)if(c[k]===c.C)break;return P(new Rc(c,k,0,0,f.C),c)}
od.prototype.u=function(c,f){var k=this.a,n=new gd;if(this.h)for(var g in f.g){var t=id(n.f++);f.g[g].s=t}if(this.i)for(g in f.f)t=id(n.f++),k.push(f.f[g].a+" "+t),f.f[g].s=t;n=this.c.map(function(c){var f=new Sc;f.a=c;return f}).concat(f.g);k=A(k.map(function(c){return"#define "+c}).join("\n"));f.c=zd(Ad(f.c,k),n,"vertex_start");f.a=zd(Ad(f.a,k),n,"fragment_start");return[]};var Bd={};ka("glslminify.SyntaxError",la.SyntaxError);ka("glslminify.Shader",Bd);Bd.VERTEX=0;Bd.FRAGMENT=1;ka("glslminify.parseGlsl",function(c,f){return A(c,0===f?"vertex_start":"fragment_start")});
ka("glslminify.minifyGlsl",function(c,f){var k=new R;k.c=A(c[0],"vertex_start");k.a=A(c[1],"fragment_start");Vc(k);k=new bd(k);if(null!=f){var n=["GL_ES 1"],g=[],t;for(t in f){var B=f[t];null!=B?n.push(t+" "+B):g.push(t)}dd(k,new od(g,n,!1,!1))}dd(k,new V);dd(k,new W(!0));dd(k,new Y(!1));dd(k,new Z);dd(k,new U);dd(k,new T);k=ed(k);c[0]=I(k.c);c[1]=I(k.a);return c});
if (typeof process === 'object' && typeof require === 'function')
module.exports = glslminify;
})();