(function(define) { define(function(require, ex$, module) {
var _CTM$;function $CCMM$(){if (_CTM$===undefined)_CTM$=require('ceylon/language/1.2.1/ceylon.language-1.2.1-model').$CCMM$;return _CTM$;}
ex$.$CCMM$=$CCMM$;var BasicID=1;//used by identityHash
function getT$name() {return this.constructor.T$name;}
function getT$all() {return this.constructor.T$all;}
function initType(type, typeName) {
var cons = function() {}
type.$$ = cons;
cons.T$name = typeName;
cons.T$all = {}
cons.T$all[typeName] = type;
for (var i=2; i<arguments.length; ++i) {
var superTypes = arguments[i].$$.T$all;
for (var $ in superTypes) {cons.T$all[$] = superTypes[$]}
}
cons.prototype.getT$name = getT$name;
cons.prototype.getT$all = getT$all;
}
function initTypeProto(type, typeName) {
initType.apply(this, arguments);
var args = [].slice.call(arguments, 2);
args.unshift(type);
inheritProto.apply(this, args);
}
function initTypeProtoI(type, typeName) {
initType.apply(this, arguments);
var args = [].slice.call(arguments, 2);
if (type.$$.T$all['ceylon.language::Object']===undefined) {
type.$$.T$all['ceylon.language::Object']=$_Object;
}
args.unshift(type);
inheritProto.apply(this, args);
}
function initExistingType(type, cons, typeName) {
type.$$ = cons;
cons.T$name = typeName;
cons.T$all = {}
cons.T$all[typeName] = type;
for (var i=3; i<arguments.length; ++i) {
var superTypes = arguments[i].$$.T$all;
for (var $ in superTypes) {cons.T$all[$] = superTypes[$]}
}
var proto = cons.prototype;
if (proto !== undefined) {
try {
proto.getT$name = getT$name;
proto.getT$all = getT$all;
} catch (exc) {
}
}
}
function initExistingTypeProto(type, cons, typeName) {
var args = [].slice.call(arguments, 0);
args.push($init$Basic());
initExistingType.apply(this, args);
var proto = cons.prototype;
if ((proto !== undefined) && (proto.getHash === undefined)) {
var origToString = proto.toString;
try {
inheritProto(type, Basic);
proto.toString = origToString;
} catch (exc) {
}
}
}
function inheritProto(type) {
var proto = type.$$.prototype;
for (var i=1; i<arguments.length; ++i) {
var superProto = arguments[i].$$.prototype;
var names = Object.getOwnPropertyNames(superProto);
for (var j=0; j<names.length; ++j) {
var name = names[j];
var desc = Object.getOwnPropertyDescriptor(superProto, name);
if (desc && desc.enumerable) {
if (desc.get) {
Object.defineProperty(proto, name, desc);
} else {
var ow=proto[name]===undefined || desc.value.$fml===undefined;
if (ow && proto[name]) {
var em = getrtmm$$(proto[name]);
em = em && em.$cont && em.$cont.$$ && em.$cont.$$.prototype;
if (em) {
var nm = getrtmm$$(desc.value);
nm = nm && nm.$cont && nm.$cont.$$ && nm.$cont.$$.prototype;
if (nm) {
ow=em.getT$all()[nm.getT$name()]===undefined;
}
}
}
if (ow) proto[name] = desc.value;
}
}
}
}
}
function atr$(obj, name, get, set, metamodel,settermm) {
Object.defineProperty(obj, name, {get: get, set: set, configurable: true, enumerable: true});
obj['$prop$get'+name[0].toUpperCase()+name.substring(1)] = {get:get, set:set, $crtmm$:metamodel};
if (settermm)set.$crtmm$=settermm;
}
function copySuperAttr(obj, name, suffix) {
var desc;
var o = obj;
do {
if ((desc = Object.getOwnPropertyDescriptor(o, name))) {break;}
o = o.__proto__;
} while (o);
if (desc) {
Object.defineProperty(obj, name+suffix, desc);
}
}
function attrGetter(type, name) {
return Object.getOwnPropertyDescriptor(type.$$.prototype, name).get;
}
function attrSetter(type, name, value) {
return Object.getOwnPropertyDescriptor(type.$$.prototype, name).set;
}
ex$.initType=initType;
ex$.initTypeProto=initTypeProto;
ex$.initTypeProtoI=initTypeProtoI;
ex$.initExistingType=initExistingType;
ex$.initExistingTypeProto=initExistingTypeProto;
ex$.inheritProto=inheritProto;
ex$.atr$=atr$;
ex$.copySuperAttr=copySuperAttr;
ex$.attrGetter=attrGetter;
ex$.attrSetter=attrSetter;
function removeSupertypes(list) {
for (var i=0; i < list.length; i++) {
for (var j=i; i < list.length; i++) {
if (i!==j) {
if (extendsType(list[i],list[j])) {
list[j]=list[i];
} else if (extendsType(list[j],list[i])) {
list[i]=list[j];
}
}
}
}
}
function find_type_in_list$(t,l) {
for (var i=0; i < l.length; i++) {
if (l.t==='u' || l.t==='i') {
var _t=find_type_in_list(t,l.l);
if (_t)return _t;
} else if (l.t===t.t) {
return t;
}
}
return undefined;
}
function ut$(a,b){
if (a.t==='u'){
var et=find_type_in_list$(b,a.l);
if (et) {
if (a.a&&b.a) {
} else {
return a;
}
} else {
var na=a.l.slice(0);
na.push(b);
return {t:'u',l:na};
}
} else if (b.t==='u') {
var et=find_type_in_list$(a,b.l);
if (et) {
if (a.a&&b.a) {
} else {
return b;
}
} else {
var na=b.l.slice(0);
na.push(a);
return {t:'u',l:na};
}
} else if (a.t==='i'||b.t==='i') {
} else if (a.t===b.t) {
if (a.a&&b.a) {
return {t:a.t,a:it$(a.a,b.a)};
}
return a;
}
return {t:'u',l:[a,b]};
}
function it$(a,b){
if (a.t==='i') {
var et=find_type_in_list$(b,a.l);
if (et) {
if (a.a&&b.a) {
} else {
return a;
}
} else {
var na=a.l.slice(0);
na.push(b);
return {t:'i',l:na};
}
} else if (b.t==='i') {
var et=find_type_in_list$(a,b.l);
if (et) {
if (a.a&&b.a) {
} else {
return b;
}
} else {
var na=b.l.slice(0);
na.push(a);
return {t:'i',l:na};
}
} else if (a.t==='u'||b.t==='u') {
} else if (a.t===b.t) {
if (a.a&&b.a) {
return {t:a.t,a:ut$(a.a,b.a)};
}
return a;
}
return {t:'i',l:[a,b]};
}
function set_type_args(obj,targs,t) {
if (obj===undefined)return;
if (obj.$$targs$$ === undefined) {
obj.$$targs$$={};
}
for (x in targs) {
var n=targs[x];
if (!n)continue;
var e=obj.$$targs$$[x];
if (e) {
var mm=getrtmm$$(t);
var iance=mm && mm.tp && mm.tp[x] && mm.tp[x].dv;
if (iance === 'out') {
n=it$(e,n);
} else if (iance === 'in') {
n=ut$(e,n);
}
}
obj.$$targs$$[x] = n;
}
}
function add_type_arg(obj, name, type) {
if (obj===undefined)return;
if (obj.$$targs$$ === undefined) {
obj.$$targs$$={};
}
obj.$$targs$$[name]=type;
}
function wrapexc(e,loc,file) {
if (loc !== undefined) e.$loc=loc;
if (file !== undefined) e.$file=file;
return e;
}
function throwexc(e,loc,file) {
if (loc !== undefined) e.$loc=loc;
if (file !== undefined) e.$file=file;
throw e;
}
function eorl$(comp) {
if (comp===equal())return function(a,b){return a.compare(b)===equal();}
return function(a,b){return a.compare(b)!==comp;}
}
function asrt$(cond,msg,loc,file) {
if (!cond)throw wrapexc(AssertionError(msg),loc,file);
}
ex$.set_type_args=set_type_args;
ex$.add_type_arg=add_type_arg;
ex$.throwexc=throwexc;
ex$.wrapexc=wrapexc;
ex$.eorl$=eorl$;
ex$.asrt$=asrt$;
var INIT$={a:1};
ex$.INIT$=INIT$;
function setObjectProperty(object, key, value) {
object[key]=value;
}
ex$.setObjectProperty=setObjectProperty;
function is$(obj,type,containers){
if(type && type.t){
if(type.t==='i'||type.t==='u'){
return isOfTypes(obj, type);
} else if (type.t===Finished) {
return obj===finished();
}
if(obj===null||obj===undefined){
return type.t===Null||type.t===Anything;
}
if(obj.getT$all===undefined || !obj.getT$all()){
if(obj.$crtmm$){
var _mm=getrtmm$$(obj);
if(_mm.d['mt']==='m'){
if(type.t===Callable){
if(type.a&&type.a.Return$Callable&&_mm['$t']){
if(extendsType(_mm['$t'],type.a.Return$Callable)){
if(type.a.Arguments$Callable&&_mm['ps']!==undefined){
var metaparams=_mm['ps'];
if(metaparams.length==0){
return type.a.Arguments$Callable.t === Empty;
}else{
var comptype=type.a.Arguments$Callable;
for(var i=0;i<metaparams.length;i++){
if(comptype.t!==Tuple||!extendsType(metaparams[i]['$t'],comptype.a.First$Tuple)){
return false;
}
comptype=comptype.a.Rest$Tuple;
}
}
}
return true;
}
}
}
}
}
return false;
}
if (obj.$$targs$$===undefined && Array.isArray(obj))return false;
if (type.t==='T') {
if (is$(obj,{t:Tuple})) {
var last_type = type.l[type.l.length-1];
if (type.l.length===obj.size || last_type.seq) {
var lim=type.l.length; if (last_type.seq)lim--;
for (var i=0;i<lim;i++) {
if (!is$(obj.$_get(i),type.l[i]))return false;
}
if (last_type.seq==2 && obj.size<type.l.length) {
return false;
} else if (last_type.seq) {
for (var i=lim;i<obj.size;i++) {
if(!is$(obj.$_get(i),last_type)) {
return false;
}
}
}
return true;
} else {
return false;
}
} else {
return false;
}
}
type=value2type$(type);
if(type.t.$$.T$name in obj.getT$all()){
if(type.t==Callable&&!(obj.$$targs$$ && obj.$$targs$$.Return$Callable && obj.$$targs$$.Arguments$Callable)
&& getrtmm$$(obj)&&obj.$crtmm$.$t && obj.$crtmm$.ps!==undefined){
add_type_arg(obj,'Return$Callable',obj.$crtmm$.$t);
add_type_arg(obj,'Arguments$Callable',{t:'T',l:[]});
for(var i=0;i<obj.$crtmm$.ps.length;i++){
obj.$$targs$$.Arguments$Callable.l.push(obj.$crtmm$.ps[i].$t);
}
if (obj.$$targs$$.Arguments$Callable.l.length===0)obj.$$targs$$.Arguments$Callable={t:Empty};
}
if(type.a && obj.$$targs$$) {
for(var i in type.a) {
var cmptype=type.a[i];
var tmpobj=obj;
var iance=cmptype.uv||null;
var _mm=getrtmm$$(type.t);
if(!iance&&_mm&&_mm.tp&&_mm.tp[i])iance=_mm.tp[i].dv;
if(iance===null) {
while(iance===null&&tmpobj.outer$!==undefined){
tmpobj=tmpobj.outer$;
var _tmpf = tmpobj.constructor.T$all[tmpobj.constructor.T$name];
var _mmf = getrtmm$$(_tmpf);
if(_mmf&&_mmf.tp&&_mmf.tp[i]){
iance=_mmf.tp[i].dv;
}
if(iance===null&&_mmf&&_mmf['super']){
var smm=getrtmm$$(_mmf['super'].t);
if(smm&&smm.tp&&smm.tp[i])iance=smm.tp[i].dv;
}
if(iance===null&&_mmf&&_mmf.sts){
var sats=_mmf.sts;
for(var s=0;iance===null&&s<sats.length;s++){
var smm=getrtmm$$(sats[s].t);
if (smm&&smm.tp&&smm.tp[i])iance=smm.tp[i].dv;
}
}
}
}
if(iance===null) {
var _omm=_mm;
while(iance===null&&_omm) {
if(_omm.tp&&_omm.tp[i]!==undefined){
iance=_omm.tp[i].dv;
tmpobj=obj;
}
if(iance===null)_omm=getrtmm$$(_omm.$cont);
}
}
if (iance === 'out') {
if (!extendsType(tmpobj.$$targs$$[i], cmptype,true)) {
return false;
}
} else if (iance === 'in') {
if (!extendsType(cmptype, tmpobj.$$targs$$[i],true)) {
return false;
}
} else if (iance === undefined) {
var _targ=tmpobj.$$targs$$[i];
if (!(_targ && _targ.t && (_targ.t.$$ || _targ.t==='i' || _targ.t==='u')))return false;
if (_targ.t.$$) {
if (cmptype && cmptype.t && cmptype.t.$$) {
if (!(cmptype.t.$$.T$name && _targ.t.$$.T$name === cmptype.t.$$.T$name))return false;
} else if (cmptype && cmptype.t && cmptype.t==='i') {
if (cmptype.t!==_targ.t || !cmptype.l || cmptype.l.length!==_targ.l.length)return false;
for (var i=0; i<_targ.l.length;i++) {
if (!extendsType(_targ.l[i],cmptype,true))return false;
}
} else if (cmptype && cmptype.t && cmptype.t==='u') {
if (cmptype.t!==_targ.t || !cmptype.l || cmptype.l.length!==_targ.l.length)return false;
for (var i=0; i<_targ.l.length;i++) {
if (!extendsType(_targ.l[i],cmptype,true))return false;
}
}
} else {
if (cmptype.t!==_targ.t || !cmptype.l || cmptype.l.length!==_targ.l.length)return false;
for (var i=0; i<_targ.l.length;i++) {
if (!extendsType(_targ.l[i],cmptype,true))return false;
}
}
} else if (iance === null) {
console.log("Possible missing metamodel for " + type.t.$$.T$name + "<" + i + ">");
} else {
console.log("Don't know what to do about variance '" + iance + "'");
}
}
}
if (containers) {
var cnt=obj.outer$;
if (cnt) {
for (var i=0; i<containers.length; i++) {
if (!is$(cnt,containers[i]))return false;
cnt=cnt.outer$;
}
} else if (obj.$$targs$$) {
for (var t in containers) {
if (obj.$$targs$$[t] && containers[t] && !extendsType(obj.$$targs$$[t], containers[t], true))return false;
}
}
}
return true;
}
}
return false;
}
function isOfTypes(obj, types) {
if (obj===null) {
for (var i=0; i < types.l.length; i++) {
if(types.l[i].t===Null || types.l[i].t===Anything) return true;
else if (types.l[i].t==='u') {
if (isOfTypes(null, types.l[i])) return true;
}
}
return false;
}
if (obj === undefined || obj.getT$all === undefined) { return false; }
var unions = false;
var inters = true;
var _ints=false;
var objTypes = obj.getT$all();
for (var i = 0; i < types.l.length; i++) {
var t = types.l[i];
var partial = is$(obj, t);
if (types.t==='u') {
unions = partial || unions;
} else {
inters = partial && inters;
_ints=true;
}
}
return _ints ? inters||unions : unions;
}
function extendsType(t1, t2,tparm) {
if (t1 === undefined || t1.t === undefined || t1.t === Nothing || t2 === undefined || t2.t === undefined) {
return true;//t2 === undefined;
} else if (t2 && t2.t === Anything) {
return true;
} else if (t1 === null) {
return t2.t === Null || t2.t === Anything;
}
if (t1.t === 'u' || t1.t === 'i') {
if (t1.t==='i')removeSupertypes(t1.l);
var unions = false;
var inters = true;
var _ints = false;
for (var i = 0; i < t1.l.length; i++) {
var partial = extendsType(t1.l[i],t2,tparm);
if (t1.t==='u'&&!tparm) {
unions = partial||unions;
} else {
inters = partial&&inters;
_ints=true;
}
}
return _ints ? inters||unions : unions;
}
if (t2.t === 'u' || t2.t === 'i') {
if (t2.t==='i')removeSupertypes(t2.l);
var unions = false;
var inters = true;
var _ints = false;
for (var i = 0; i < t2.l.length; i++) {
var partial = extendsType(t1, t2.l[i],tparm);
if (t2.t==='u') {
unions = partial||unions;
} else {
inters = partial&&inters;
_ints=true;
}
}
return _ints ? inters||unions : unions;
}
if (t1.t==='T') {
if (t2.t==='T') {
if (t1.l.length>=t2.l.length) {
for (var i=0; i < t2.l.length;i++) {
if (!extendsType(t1.l[i],t2.l[i],tparm))return false;
}
return true;
} else return false;
} else {
t1=retpl$(t1);
}
} else if (t2.t==='T') {
t2=retpl$(t2);
}
t1=value2type$(t1);
for (t in t1.t.$$.T$all) {
if (t === t2.t.$$.T$name || t === 'ceylon.language::Nothing') {
if (t1.a && t2.a) {
for (ta in t1.a) {
if (!extendsType(t1.a[ta], t2.a[ta],tparm)) return false;
}
}
return true;
}
}
return false;
}
ex$.is$=is$;
function ne$(value){
return value!==null&&value!==undefined&&(is$(value,{t:Sequence})||(is$(value,{t:List})&&value.size>0));
}
function nn$(e) {
return e!==null&&e!==undefined&&e!==$_null();
}
ex$.ne$=ne$;
ex$.nn$=nn$;
function flattentype$(l,iu){
var lt=l.slice(0);
for (var i=0;i<lt.length;i++) {
if (lt[i].t===iu) {
var nt=lt[i].l;
lt.splice(i,1);
i--;
for (var j=0;j<nt.length;j++) {
addtype$(nt[j],lt);
}
}
}
return lt;
}
function mut$(l) {
var l=flattentype$(l,'u');
return l.length===1?l[0]:{t:'u',l:l};
}
function mit$(l) {
var l=flattentype$(l,'i');
return l.length===1?l[0]:{t:'i',l:l};
}
function mtt$(l) {
return {t:'T',l:l};
}
function addtype$(t,l) {
for (var i=0;i<l.length;i++) {
if (extendsType(t,l[i]))return;
}
l.push(t);
}
ex$.mut$=mut$;
ex$.mit$=mit$;
ex$.mtt$=mtt$;
function Anything(anything$){
$init$Anything();
if(anything$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class"),'?','?')
return anything$;
}
Anything.$crtmm$=function(){return{mod:$CCMM$,ps:[],of:[{t:$_Object},{t:Null}],pa:257,an:function(){return[doc$($CCMM$,'$:Anything'),by($arr$(["Gavin"],{t:$_String}))];},d:['$','Anything']};};
ex$.Anything=Anything;
function $init$Anything(){
if(Anything.$$===undefined){initTypeProto(Anything,'ceylon.language::Anything');}
return Anything;
}
ex$.$init$Anything=$init$Anything;$init$Anything();
function Nothing(wat) {
throw "Nothing";
}
initType(Nothing, 'ceylon.language::Nothing');
Nothing.$crtmm$=function(){return{ps:[],pa:1,mod:$CCMM$,d:['$','Nothing']};}
ex$.Nothing=Nothing;
function $_Object(object$){$init$$_Object();
if(object$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Object"),'?','?')
Anything(object$);return object$;}
$_Object.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Anything},ps:[],pa:257,an:function(){return[doc$($CCMM$,'$:Object'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Basic),$init$openClass$jsint()(lmp$(ex$,'$'),Null)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Object']};};
ex$.$_Object=$_Object;function $init$$_Object(){if($_Object.$$===undefined){initTypeProto($_Object,'ceylon.language::Object',$init$Anything());
(function(object$){object$.equals={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_Object,pa:5,an:function(){return[doc$($CCMM$,'$:Object:$m:equals')];},d:['$','Object','$m','equals']};}};object$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Object,pa:5,an:function(){return[doc$($CCMM$,'$:Object:$at:hash')];},d:['$','Object','$at','hash']};}};atr$(object$,'string',function(){var object$=this;return className(object$).plus("@").plus(formatInteger(object$.hash,16));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_Object,pa:9,an:function(){return[doc$($CCMM$,'$:Object:$at:string')];},d:['$','Object','$at','string']};});})($_Object.$$.prototype);}
return $_Object;}
ex$.$init$$_Object=$init$$_Object;$init$$_Object();function Null(null$){$init$Null();
if(null$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Null"),'?','?')
Anything(null$);return null$;}
Null.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Anything},ps:[],of:[$prop$getNull],pa:257,an:function(){return[doc$($CCMM$,'$:Null'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getNull)].$sa$({t:ValueDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Null']};};
ex$.Null=Null;function $init$Null(){if(Null.$$===undefined){initTypeProto(Null,'ceylon.language::Null',$init$Anything());
}
return Null;}
ex$.$init$Null=$init$Null;$init$Null();function $1(){var null$=new $1.$$;Null(null$);return null$;};$1.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Null},d:['$','null']};};function $init$$_null(){if($1.$$===undefined){initTypeProto($1,'ceylon.language::null',$init$Null());
}
return $1;}
ex$.$init$$_null=$init$$_null;$init$$_null();var $3;function $_null(){if($3===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'null\' before it was set"),'49:0-52:35','Null.ceylon');if($3===undefined){$3=INIT$;$3=$init$$_null()();$3.$crtmm$=$_null.$crtmm$;}
return $3;}
ex$.$_null=$_null;$_null.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},pa:1,an:function(){return[doc$($CCMM$,'$:null'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','null']};};$prop$getNull=$_null;ex$.$prop$getNull=$prop$getNull;function Identifiable(identifiable$){}
Identifiable.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Identifiable'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Identifiable']};};
ex$.Identifiable=Identifiable;function $init$Identifiable(){if(Identifiable.$$===undefined){initTypeProtoI(Identifiable,'ceylon.language::Identifiable');
(function(identifiable$){identifiable$.equals=function($4){var identifiable$=this;return function(){var $5;if(is$(($5=$4),{t:Identifiable}))return (identifiable$===$5);else return false}();};identifiable$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Identifiable,pa:11,an:function(){return[doc$($CCMM$,'$:Identifiable:$m:equals')];},d:['$','Identifiable','$m','equals']};};atr$(identifiable$,'hash',function(){var identifiable$=this;return identityHash(identifiable$);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Identifiable,pa:11,an:function(){return[doc$($CCMM$,'$:Identifiable:$at:hash'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),identityHash)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Identifiable','$at','hash']};});})(Identifiable.$$.prototype);}
return Identifiable;}
ex$.$init$Identifiable=$init$Identifiable;$init$Identifiable();function Callable($$targs$$,callable$){set_type_args(callable$,$$targs$$,Callable);}
Callable.$crtmm$=function(){return{mod:$CCMM$,tp:{Return$Callable:{dv:'out'},Arguments$Callable:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:Callable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Tuple)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String})),$_native()];},d:['$','Callable']};};
ex$.Callable=Callable;function $init$Callable(){if(Callable.$$===undefined){initTypeProtoI(Callable,'ceylon.language::Callable');
}
return Callable;}
ex$.$init$Callable=$init$Callable;$init$Callable();function $JsCallable(f$,parms,targs) {
if (f$.jsc$)return f$;
if (f$.getT$all === undefined) {
f$.getT$all=Callable.getT$all;
}
var set_meta = getrtmm$$(f$) === undefined;
if (set_meta) {
f$.$crtmm$={ps:parms||[],mod:$CCMM$,d:['$','Callable']};
}
if (targs !== undefined && f$.$$targs$$ === undefined) {
f$.$$targs$$=targs;
if (set_meta) {
f$.$crtmm$.$t=targs.Return$Callable;
}
}
if (f$.$flattened$||f$.$unflattened$)return f$;
var f=function c1(){
return f$.apply(undefined,spread$(arguments,f$,targs,1));
}
f.$crtmm$=f$.$crtmm$;
f.getT$all=f$.getT$all;
f.jsc$=f$;
f.equals=function(o) {
return false;//o===f || o===f$;
}
return f;
}
initExistingTypeProto($JsCallable, Function, 'ceylon.language::JsCallable', $init$Callable());
function jsc$2(f$,parms,targs) {
if (f$.jsc$)return f$;
if (f$.getT$all === undefined) {
f$.getT$all=Callable.getT$all;
}
var set_meta = getrtmm$$(f$) === undefined;
if (set_meta) {
f$.$crtmm$={ps:parms||[],mod:$CCMM$,d:['$','Callable']};
}
if (targs !== undefined && f$.$$targs$$ === undefined) {
f$.$$targs$$=targs;
if (set_meta) {
f$.$crtmm$.$t=targs.Return$Callable;
}
}
if (f$.$flattened$||f$.$unflattened$)return f$;
var f=function c1(){
return f$.apply(undefined,arguments);
}
f.$crtmm$=f$.$crtmm$;
f.getT$all=f$.getT$all;
f.jsc$=f$;
f.equals=function(o) {
return false;//o===f || o===f$;
}
return f;
}
initExistingTypeProto(jsc$2, Function, 'ceylon.language::JsCallable', $init$Callable());
function nop$(){return null;}
function JsCallable(o,f,targs) {
if (o===null || o===undefined) return nop$;
if (f.jsc$)f=f.jsc$;
var f2=function c2() {
var arg=spread$(arguments,f,targs,1);
if (targs)arg.push(targs);
return f.apply(o, arg);
};
f2.c2$=f;
f2.$$targs$$=targs;
f2.equals=function(x){
return false;//f===x || f2===x;
}
f2.$crtmm$=f.$crtmm$||Callable.$crtmm$;
return f2;
}
JsCallable.$crtmm$=function(){return{sts:[{t:Callable,a:{Return$Callable:'Return$Callable',Arguments$Callable:'Arguments$Callable'}}],
tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};}
function jsc$3(o,f,targs) {
if (o===null || o===undefined) return nop$;
if (f.jsc$)f=f.jsc$;
var f2=function c2() {
return f.apply(o, arguments);
};
f2.c2$=f;
f2.$$targs$$=targs;
f2.equals=function(x){
return false;//f===x || f2===x;
}
f2.$crtmm$=f.$crtmm$||Callable.$crtmm$;
return f2;
}
jsc$3.$crtmm$=function(){return{sts:[{t:Callable,a:{Return$Callable:'Return$Callable',Arguments$Callable:'Arguments$Callable'}}],
tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};}
function spread$(a,f,targs,noInvoke) {
if (a.length===undefined||a.getT$all)console.log("NO ES ARREGLO!",a);
var arg=noInvoke?[].slice.call(a,0):a;
var spridx=arg.length-1;
if (arg.length>0 && is$(arg[spridx],{t:Tuple})) {
var tuple0=arg[spridx];
var mm=getrtmm$$(f);
var params = mm && mm.ps || [];
if (params.length===arg.length && params[spridx].seq>0) {
var tcheck=params[spridx].$t;
if ((tcheck.t===Sequential||tcheck.t===Sequence)&&is$(tuple0,tcheck)) {
return arg;
} else if (is$(tuple0,{t:Sequence,a:{Element$Sequence:tcheck}})){
return arg;
}
}
if (params.length===tuple0.size+spridx) {
var all=[];
for (var i=0; i<spridx;i++) {
all.push(arg[i]);
}
var j=0;
for (var i=spridx; i<params.length;i++){
var tet=params[i].$t;
if (typeof(tet)==='string'&&targs)tet=targs[tet];
if ((params[i].def && tuple0.getFromFirst(j)===undefined) || is$(tuple0.$_get(j),tet)) {
all.push(tuple0.getFromFirst(j));
}
j++
}
if (all.length===params.length) {
return all;
}
}
var a1t=params.length===1 && params[spridx].seq===undefined ? params[spridx].$t : undefined;
if (typeof(a1t)==='string')a1t=targs && targs[a1t];
if (!a1t || (is$(tuple0,a1t) && extendsType(a1t,{t:Iterable}))) {
return arg;
}
var typecheck;
if (a1t && targs && targs.Arguments$Callable) {
typecheck=targs.Arguments$Callable;
if (typecheck && typecheck.t && typecheck.t==='T' && typecheck.l
&& typecheck.l.length===1 && typecheck.l[0].seq) {
return arg;
}
} else if (a1t && tuple0.$$targs$$) {
if (tuple0.$$targs$$.First$Tuple) {
typecheck={t:Tuple,a:tuple0.$$targs$$};
} else if (tuple0.$$targs$$.t==='T') {
typecheck=tuple0.$$targs$$;
} else if (tuple0.$$targs$$.Element$Iterable) {
typecheck={t:Iterable,a:tuple0.$$targs$$.Element$Iterable};
}
}
if (params.length>1 || (params.length===1
&& (params[0].seq || !extendsType(a1t, typecheck)))) {
var a=tuple0.nativeArray ? tuple0.nativeArray():undefined;
if (a===undefined) {
a=[];
for (var i=0;i<tuple0.size;i++)a.push(tuple0.$_get(i));
}
arg=a;
}
}
if (noInvoke) {
return arg;
}
if (targs)arg.push(targs);
return f.apply(undefined,arg);
}
ex$.spread$=spread$;
function JsCallableList(list,fun,$mpt,$et) {
return function sprop() {
var len=list.size;
if (len===0)return empty();
var a=arguments;
if ($mpt) {
a=[].slice.call(arguments,0);
a.push($mpt);
}
var rval=Array(len);
var iter=list.iterator(),item,i=0;
while((item=iter.next())!==finished()){
rval[i++] = fun(item,a);
}
return rval.$sa$($et||{t:Anything});
};
}
JsCallableList.$crtmm$={tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};
function mkseq$(t,seq) {
if (seq)t.seq=seq;
return t;
}
ex$.JsCallableList=JsCallableList;
ex$.JsCallable=JsCallable;
ex$.$JsCallable=$JsCallable;
ex$.mkseq$=mkseq$;
ex$.jsc$2=jsc$2;
ex$.jsc$3=jsc$3;
function dre$$(object, type, loc) {
if (is$(object, type))return object;
if (object.$$ !== undefined && object.getT$all()[object.getT$name()].dynmem$===undefined) {
throw new TypeError("Cannot modify the type of an object to "+qname$(type)+" at runtime " + loc);
}
if (typeof(object)==='object' && Object.isFrozen(object)) {
throw new Error("Cannot add Ceylon type information to a frozen object");
}
function memberTypeIsDynamicInterface$(t) {
if (t.t && t.t.dynmem$) {
return t;
}
if (t.t==='u') {
var c=0,st;
for (var i=0; i<t.l.length;i++) {
if (t.l[i].t.dynmem$) {
c++;
st=t.l[i];
}
}
if (c===1) {
return st;
}
}
return undefined;
}
var actual = typeof(object)==='object'?Object.getOwnPropertyNames(object):[];
var sats = type.t.$$.prototype.getT$all();
object.$$=type.t.$$;
object.getT$name=function(){return type.t.$$.T$name};
object.getT$all=function(){return sats;}
if (type.a) {
object.$$targs$$=type.a;
}
for (var sat in sats) {
var expected = sats[sat].dynmem$;
if (expected) {
for (var i=0; i < expected.length; i++) {
var propname="$prop$get"+expected[i][0].uppercased+expected[i].substring(1);
var proptype=type.t.$$.prototype[propname];
if (proptype) {
proptype=getrtmm$$(proptype);
}
if (actual.indexOf(expected[i])<0 && object[expected[i]]===undefined) {
if (extendsType({t:Null},proptype.$t)) {
object[expected[i]]=null;
} else {
throw new Error("Native object is missing property '" + expected[i] + "' " + loc);
}
} else {
var val=object[expected[i]],dynmemberType;
if (val===object) {
if (!is$(val,proptype.$t)) {
var tname=object.getT$name()+"|"+proptype.$t.t.$$.T$name;
object.getT$name=function(){return tname;}
var _ts={};
for (var _tn in object.getT$all()) {
_ts[_tn]=object.getT$all()[_tn];
}
_ts[proptype.$t.t.$$.prototype.getT$name()]=proptype.$t.t;
object.getT$all=function(){return _ts;}
object.$$=$_Object.$$;
}
} else if (proptype && proptype.$t && !is$(val,proptype.$t)) {
if (proptype.$t.t===$_Array) {
object[expected[i]]=natc$(val,proptype.$t.a.Element$Array,loc);
} else if (proptype.$t.t===Integer) {
object[expected[i]]=ndnc$(val,'i',loc);
} else if (proptype.$t.t===Float) {
object[expected[i]]=ndnc$(val,'f',loc);
} else if ((dynmemberType=memberTypeIsDynamicInterface$(proptype.$t))!==undefined) {
dre$$(val,dynmemberType,loc);
} else {
var _t=proptype.$t;
if (typeof(_t)==='string') {
if (object.$$targs$$[_t]) {
_t=object.$$targs$$[_t];
} else {
var mm=getrtmm$$(type.t);
if (mm && mm.sts) {
for (var i=0;i<mm.sts.length;i++) {
if (mm.sts[i].a && mm.sts[i].a[_t]) {
object.$$targs$$[_t]=mm.sts[i].a[_t];
_t=mm.sts[i].a[_t]; break;
}
}
}
}
}
object[expected[i]]=ndtc$(val,_t,loc);
}
}
}
}
}
}
if (typeof(object)==='object') {
if (actual.indexOf('string')<0) {
atr$(object,'string',function(){return object.toString();},undefined,
$_Object.$$.prototype.$prop$getString.$crtmm$);
}
if (actual.indexOf('hash')<0) {
atr$(object,'hash',function(){return identityHash(object);},undefined,
$_Object.$$.prototype.$prop$getHash.$crtmm$);
}
}
return object;
}
ex$.dre$$=dre$$;
function pndo$(o) {
if (o === undefined)print("<undefined>");
else if (o === null)print("<null>");
else if (is$(o,{t:Anything}))print(o);
else if (o.string)print(o.string);
else {
print(o.toString());
}
}
ex$.pndo$=pndo$;
function ndnc$(n,t,loc) {
if (t==='f') {
if (typeof(n)==='number')return Float(n);
if (is$(n,{t:Float}))return n;
} else if (t==='i') {
if (typeof(n)==='number')return Math.floor(n);
if (is$(n,{t:Integer}))return n;
}
throw new TypeError('Expected ' + (t==='f'?'Float':'Integer') + ' (' + loc + ')');
}
ex$.ndnc$=ndnc$;
function ndtc$(o,t,loc) {
if (is$(o,t))return o;
throw new TypeError('Expected ' + qname$(t) + ' (' + loc + ')');
}
ex$.ndtc$=ndtc$;
function natc$(a,t,loc) {
if (a===empty())return $arr$([],t);
if (Array.isArray(a)) {
for (var i=0;i<a.length;i++) {
if (!is$(a[i],t) && (a[i] && a[i].$$)===undefined) {
a[i]=dre$$(a[i],t,loc);
}
}
return $arr$(a,t);
}
throw new TypeError('Expected ' + qname$(t) + ' (' + loc + ')');
}
ex$.natc$=natc$;
function Basic(basic$){$init$Basic();
if(basic$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Basic"),'?','?')
$_Object(basic$);Identifiable(basic$);return basic$;}
Basic.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],sts:[{t:Identifiable}],pa:257,an:function(){return[doc$($CCMM$,'$:Basic'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Basic']};};
ex$.Basic=Basic;function $init$Basic(){if(Basic.$$===undefined){initTypeProto(Basic,'ceylon.language::Basic',$init$$_Object(),$init$Identifiable());
}
return Basic;}
ex$.$init$Basic=$init$Basic;$init$Basic();function Throwable($6,cause,throwable$){$init$Throwable();
if(throwable$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Throwable"),'?','?')
if($6===undefined){$6=$init$Throwable().$defs$description(throwable$,cause);}
throwable$.$6_=$6;if(cause===undefined){cause=$init$Throwable().$defs$cause(throwable$,$6);}
throwable$.cause_=cause;(function(msg,cause,exc) {
exc.stack_trace=[];
exc.toString=function(){return this.string;}
try {
exc.stack_trace=new Error().stack.split('\n').slice(3);
return;
} catch(e){}
try {
var _caller=arguments.callee.caller.caller;
var ilc=0;
var ilf=null;
var noms=[];
while(_caller) {
exc.stack_trace.push(_caller);
noms.push(_caller.string);
try {
_caller = _caller.caller;
if (!_caller)return;
if (_caller.string===ilf) {
ilc++;
if (ilc>2) {
exc.stack_trace.push("CIRCULAR");
_caller = null;
}
} else if (ilc===0 && noms.contains(_caller.string)) {
ilc=1;
ilf=_caller.string;
}
} catch(e) { _caller = null; }
}
} catch(e) {}
}
)($6,cause,throwable$);return throwable$;}
Throwable.$defs$description=function(throwable$,cause){return null};Throwable.$defs$cause=function(throwable$,$6){return null};Throwable.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:$_String}]},an:function(){return[doc("A description of the problem.")];}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]},pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$at:cause')];}}],pa:273,an:function(){return[doc$($CCMM$,'$:Throwable'),by(["Gavin","Tom"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String})),$_native()];},d:['$','Throwable']};};
ex$.Throwable=Throwable;function $init$Throwable(){if(Throwable.$$===undefined){initTypeProto(Throwable,'ceylon.language::Throwable',Basic);
(function(throwable$){atr$(throwable$,'$6',function(){return this.$6_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},$cont:Throwable,an:function(){return[doc("A description of the problem.")];},d:['$','Throwable','$at','description$arbt90']};});atr$(throwable$,'cause',function(){return this.cause_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$at:cause')];},d:['$','Throwable','$at','cause']};});atr$(throwable$,'message',function(){var throwable$=this;return ($7=($8=throwable$.$6,nn$($8)?$8:($9=throwable$.cause,nn$($9)?$9.message:null)),nn$($7)?$7:"");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Throwable,pa:9,an:function(){return[doc$($CCMM$,'$:Throwable:$at:message'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Throwable().$$.prototype.$prop$getCause)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Throwable','$at','message']};});atr$(throwable$,'string',function(){var throwable$=this;return className(throwable$).plus(" \"".plus(throwable$.message).plus("\""));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Throwable,pa:11,d:['$','Throwable','$at','string']};});throwable$.printStackTrace=function(){var throwable$=this;return printStackTrace(throwable$);};throwable$.printStackTrace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$m:printStackTrace'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),printStackTrace)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Throwable','$m','printStackTrace']};};throwable$.addSuppressed=function addSuppressed(sup) {
if (this.$sups$===undefined) {
this.$sups$=[];
}
if (sup.getT$name === undefined) sup = NativeException(sup);
this.$sups$.push(sup);
}
throwable$.addSuppressed.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'suppressed',mt:'prm',$t:{t:Throwable}}],$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$m:addSuppressed'),$_native()];},d:['$','Throwable','$m','addSuppressed']};};atr$(throwable$,'suppressed',function(){return this.$sups$===undefined||this.$sups$.length===0?empty():this.$sups$.$sa$({t:Throwable});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Throwable}}},$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$at:suppressed'),$_native()];},d:['$','Throwable','$at','suppressed']};});})(Throwable.$$.prototype);}
return Throwable;}
ex$.$init$Throwable=$init$Throwable;$init$Throwable();var $7,$8,$9;function Exception($a,$b,exception$){$init$Exception();
if(exception$===undefined)exception$=new Exception.$$;
if($a===undefined){$a=$init$Exception().$defs$description(exception$,$b);}
exception$.$a_=$a;if($b===undefined){$b=$init$Exception().$defs$cause(exception$,$a);}
exception$.$b_=$b;Throwable($a,$b,exception$);return exception$;}
Exception.$defs$description=function(exception$,$b){return null};Exception.$defs$cause=function(exception$,$a){return null};Exception.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Throwable},ps:[{nm:'description',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:$_String}]},an:function(){return[doc("A description of the problem.")];}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]},an:function(){return[doc$($CCMM$,'$:Exception:$at:cause$tn7i4g')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:Exception'),by(["Gavin","Tom"].$sa$({t:$_String})),$_native()];},d:['$','Exception']};};
ex$.Exception=Exception;function $init$Exception(){if(Exception.$$===undefined){initTypeProto(Exception,'ceylon.language::Exception',$init$Throwable());
(function(exception$){atr$(exception$,'$a',function(){return this.$a_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},$cont:Exception,an:function(){return[doc("A description of the problem.")];},d:['$','Exception','$at','description$etadt1']};});atr$(exception$,'$b',function(){return this.$b_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:Exception,an:function(){return[doc$($CCMM$,'$:Exception:$at:cause$tn7i4g')];},d:['$','Exception','$at','cause$tn7i4g']};});})(Exception.$$.prototype);}
return Exception;}
ex$.$init$Exception=$init$Exception;$init$Exception();function Comparison(string,comparison$){$init$Comparison();
if(comparison$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Comparison"),'?','?')
comparison$.string_=string;return comparison$;}
Comparison.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'string',mt:'prm',$t:{t:$_String},pa:3}],of:[$prop$getLarger,$prop$getSmaller,$prop$getEqual],pa:257,an:function(){return[doc$($CCMM$,'$:Comparison'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','Comparison']};};
ex$.Comparison=Comparison;function $init$Comparison(){if(Comparison.$$===undefined){initTypeProto(Comparison,'ceylon.language::Comparison',Basic);
(function(comparison$){atr$(comparison$,'string',function(){return this.string_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Comparison,pa:3,d:['$','Comparison','$at','string']};});comparison$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:Comparison,pa:5,an:function(){return[doc$($CCMM$,'$:Comparison:$at:reversed')];},d:['$','Comparison','$at','reversed']};}};})(Comparison.$$.prototype);}
return Comparison;}
ex$.$init$Comparison=$init$Comparison;$init$Comparison();function $c(){var equal$=new $c.$$;Comparison("equal",equal$);return equal$;};$c.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},d:['$','equal']};};function $init$equal(){if($c.$$===undefined){initTypeProto($c,'ceylon.language::equal',$init$Comparison());
(function(equal$){atr$(equal$,'reversed',function(){var equal$=this;return equal$;},undefined,function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:$c,pa:3,d:['$','equal','$at','reversed']};});})($c.$$.prototype);}
return $c;}
ex$.$init$equal=$init$equal;$init$equal();var $e;function equal(){if($e===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'equal\' before it was set"),'12:0-16:0','Comparison.ceylon');if($e===undefined){$e=INIT$;$e=$init$equal()();$e.$crtmm$=equal.$crtmm$;}
return $e;}
ex$.equal=equal;equal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$equal()},pa:1,an:function(){return[doc$($CCMM$,'$:equal'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','equal']};};$prop$getEqual=equal;ex$.$prop$getEqual=$prop$getEqual;function $f(){var smaller$=new $f.$$;Comparison("smaller",smaller$);return smaller$;};$f.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},d:['$','smaller']};};function $init$smaller(){if($f.$$===undefined){initTypeProto($f,'ceylon.language::smaller',$init$Comparison());
(function(smaller$){atr$(smaller$,'reversed',function(){var smaller$=this;return larger();},undefined,function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:$f,pa:3,d:['$','smaller','$at','reversed']};});})($f.$$.prototype);}
return $f;}
ex$.$init$smaller=$init$smaller;$init$smaller();var $h;function smaller(){if($h===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'smaller\' before it was set"),'18:0-22:0','Comparison.ceylon');if($h===undefined){$h=INIT$;$h=$init$smaller()();$h.$crtmm$=smaller.$crtmm$;}
return $h;}
ex$.smaller=smaller;smaller.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$smaller()},pa:1,an:function(){return[doc$($CCMM$,'$:smaller'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','smaller']};};$prop$getSmaller=smaller;ex$.$prop$getSmaller=$prop$getSmaller;function $i(){var larger$=new $i.$$;Comparison("larger",larger$);return larger$;};$i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},d:['$','larger']};};function $init$larger(){if($i.$$===undefined){initTypeProto($i,'ceylon.language::larger',$init$Comparison());
(function(larger$){atr$(larger$,'reversed',function(){var larger$=this;return smaller();},undefined,function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:$i,pa:3,d:['$','larger','$at','reversed']};});})($i.$$.prototype);}
return $i;}
ex$.$init$larger=$init$larger;$init$larger();var $k;function larger(){if($k===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'larger\' before it was set"),'24:0-28:0','Comparison.ceylon');if($k===undefined){$k=INIT$;$k=$init$larger()();$k.$crtmm$=larger.$crtmm$;}
return $k;}
ex$.larger=larger;larger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$larger()},pa:1,an:function(){return[doc$($CCMM$,'$:larger'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','larger']};};$prop$getLarger=larger;ex$.$prop$getLarger=$prop$getLarger;function Iterable($$targs$$,iterable$){set_type_args(iterable$,$$targs$$,Iterable);Category({Element$Category:{t:$_Object}},iterable$);}
Iterable.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Iterable:{dv:'out',def:{t:Anything}},Absent$Iterable:{dv:'out',sts:[{t:Null}],def:{t:Null}}},sts:[{t:Category,a:{Element$Category:{t:$_Object}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Iterable'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Collection),$init$OpenFunction$jsint()(lmp$(ex$,'$'),corresponding)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','Iterable']};};
ex$.Iterable=Iterable;function $init$Iterable(){if(Iterable.$$===undefined){initTypeProtoI(Iterable,'ceylon.language::Iterable',$init$Category());
(function(iterable$){iterable$.iterator={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:Iterable,pa:5,an:function(){return[doc$($CCMM$,'$:Iterable:$m:iterator')];},d:['$','Iterable','$m','iterator']};}};iterable$.contains=function($l){var iterable$=this;return iterable$.any($JsCallable((function($m){return function(){var $n;if(nn$(($n=$m)))return $n.equals($l);else return false}();}),[{nm:'e',mt:'prm',$t:iterable$.Element$Iterable}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([iterable$.$$targs$$.Element$Iterable])}));};iterable$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Iterable,pa:11,an:function(){return[doc$($CCMM$,'$:Iterable:$m:contains')];},d:['$','Iterable','$m','contains']};};atr$(iterable$,'empty',function(){var iterable$=this;return is$(iterable$.iterator().next(),{t:Finished});},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:empty')];},d:['$','Iterable','$at','empty']};});atr$(iterable$,'size',function(){var iterable$=this;return iterable$.count($JsCallable((function($o){return true;}),[{nm:'e',mt:'prm',$t:iterable$.Element$Iterable}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([iterable$.$$targs$$.Element$Iterable])}));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:size')];},d:['$','Iterable','$at','size']};});iterable$.longerThan=function($p){var iterable$=this;if(($p<0)){return true;}
var $q=(0);var $s;for(var $r=iterable$.iterator();($s=$r.next())!==finished();){if(((($t=$q,$q=$t.successor,$t)).valueOf()==($p).valueOf())){return true;}
var $t;}return false;};iterable$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:longerThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','longerThan']};};iterable$.shorterThan=function($u){var iterable$=this;if(($u<=0)){return false;}
var $v=(0);var $x;for(var $w=iterable$.iterator();($x=$w.next())!==finished();){if(((($v=$v.successor)).valueOf()==($u).valueOf())){return false;}
}return true;};iterable$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:shorterThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','shorterThan']};};atr$(iterable$,'first',function(){var iterable$=this;var $y;if(!is$(($y=iterable$.iterator().next()),{t:Finished})){return $y;}
else{var $z;asrt$((is$(($z=null),iterable$.$$targs$$.Absent$Iterable)),"iterator for nonempty iterable must produce at \nleast one element: \'is Absent null\' at Iterable.ceylon (210:19-210:34)",'208:12-210:35','Iterable.ceylon');
return null;}
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable']},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:first')];},d:['$','Iterable','$at','first']};});atr$(iterable$,'last',function(){var iterable$=this;var $10=iterable$.first;var $12;for(var $11=iterable$.iterator();($12=$11.next())!==finished();){$10=$12;}return $10;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable']},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:last')];},d:['$','Iterable','$at','last']};});iterable$.getFromFirst=function($13){var iterable$=this;var $14=(0);var $16;for(var $15=iterable$.iterator();($16=$15.next())!==finished();){if(((($17=$14,$14=$17.successor,$17)).valueOf()==($13).valueOf())){return $16;}
var $17;}
if(finished()===$16){return null;}
};iterable$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:getFromFirst')];},d:['$','Iterable','$m','getFromFirst']};};iterable$.sequence=function(){var iterable$=this;return function(){var $18=$_Array(iterable$,{Element$Array:iterable$.$$targs$$.Element$Iterable});return ($18.empty?empty():ArraySequence($18,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable}));}();};iterable$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Iterable'}},ps:[],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:sequence')];},d:['$','Iterable','$m','sequence']};};iterable$.indexes=function(){var iterable$=this;return measure((0),iterable$.size,{Element$measure:{t:Integer}});};iterable$.indexes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Range,a:{Element$Range:{t:Integer}}},{t:Empty}]},ps:[],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:indexes')];},d:['$','Iterable','$m','indexes']};};atr$(iterable$,'rest',function(){var iterable$=this;return iterable$.skip(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:rest'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getFirst)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$at','rest']};});atr$(iterable$,'exceptLast',function(){var iterable$=this;return function(){function $19($$targs$$){var $19$=new $19.$$;$19$.outer$=iterable$;$19$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$19$);return $19$;};$19.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$19$.$prop$getExceptLast,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','exceptLast']};};function $init$$19(){if($19.$$===undefined){initTypeProto($19,'ceylon.language::Iterable.anonymous#2',Basic,$init$Iterable());
(function($19$){$19$.iterator=function(){var $19$=this;return function(){var $1a=iterable$.iterator();return function(){function $1b($$targs$$){var $1b$=new $1b.$$;$1b$.outer$=$19$;$1b$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$1b$);$1b$.$1c_=$1a.next();$1b$.$prop$get$1c={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$19$.$prop$getExceptLast,pa:1024,d:['$','Iterable','$at','exceptLast','$at','current$fkl9s3']};}};$1b$.$prop$get$1c.get=function(){return $1c};return $1b$;};$1b.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$19$.$prop$getExceptLast,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','exceptLast']};};function $init$$1b(){if($1b.$$===undefined){initTypeProto($1b,'ceylon.language::Iterable.anonymous#2.anonymous#3',Basic,$init$Iterator());
(function($1b$){atr$($1b$,'$1c',function(){return this.$1c_;},function($1d){return this.$1c_=$1d;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$19$.$prop$getExceptLast,pa:1024,d:['$','Iterable','$at','exceptLast','$at','current$fkl9s3']};});$1b$.next=function(){var $1b$=this;var $1e;if(!is$(($1e=$1a.next()),{t:Finished})){var $1f=$1b$.$1c;$1b$.$1c=$1e;return $1f;}
else{return finished();}
};$1b$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$19$.$prop$getExceptLast,pa:3,d:['$','Iterable','$at','exceptLast','$m','next']};};})($1b.$$.prototype);}
return $1b;}
$19$.$init$$1b=$init$$1b;$init$$1b();return $1b();}();}();};})($19.$$.prototype);}
return $19;}
iterable$.$init$$19=$init$$19;$init$$19();return $19();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:exceptLast')];},d:['$','Iterable','$at','exceptLast']};});iterable$.each=function($1i){var iterable$=this;var $1k;for(var $1j=iterable$.iterator();($1k=$1j.next())!==finished();){$1i($1k);}};iterable$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:each')];},d:['$','Iterable','$m','each']};};iterable$.$_map=function($1l,$c0dia6$){var iterable$=this;return for$(function(){var $1m=iterable$.iterator(),$1n=finished();var n$1n=function(){return $1n=$1m.next();}
return function(){if(n$1n()!==finished()){var $1o=$1n,$1p=$1l($1o);return $1p;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$c0dia6$.Result$map/*ORALE!Result inv pero Element var*/});};iterable$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Result$map'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$map',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Result$map',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$map:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:map'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.collect)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','map']};};iterable$.flatMap=function($1q,$21991j$){var iterable$=this;return expand(iterable$.$_map(JsCallable(iterable$,$1q),{Result$map:{t:Iterable,a:{Absent$Iterable:$21991j$.OtherAbsent$flatMap/*ORALE!OtherAbsent inv pero Absent var*/,Element$Iterable:$21991j$.Result$flatMap/*ORALE!Result inv pero Element var*/}}}),{InnerAbsent$expand:$21991j$.OtherAbsent$flatMap,Element$expand:$21991j$.Result$flatMap,OuterAbsent$expand:iterable$.$$targs$$.Absent$Iterable});};iterable$.flatMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['Absent$Iterable','OtherAbsent$flatMap']},Element$Iterable:'Result$flatMap'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$flatMap:{},OtherAbsent$flatMap:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:flatMap'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),expand)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','flatMap']};};iterable$.$_filter=function($1r){var iterable$=this;return for$(function(){var $1s=iterable$.iterator(),$1t=finished();var n$1t=function(){while(($1t=$1s.next())!==finished()){if($1r($1t)){return $1t;}
}
return finished();}
return function(){if(n$1t()!==finished()){var $1u=$1t,$1v=$1u;return $1v;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});};iterable$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:filter'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.select)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','filter']};};iterable$.narrow=function($jcmhx7$){var iterable$=this;return for$(function(){var $1y;var $1w=iterable$.iterator(),$1x=finished();var n$1x=function(){while(($1x=$1w.next())!==finished()){if(is$(($1y=$1x),$jcmhx7$.Type$narrow,$jcmhx7$)){return $1x;}
}
return finished();}
return function(){if(n$1x()!==finished()){var $1z=$1x,$20=$1y;return $20;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:mit$([iterable$.$$targs$$.Element$Iterable,$jcmhx7$.Type$narrow])});};iterable$.narrow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:['Element$Iterable','Type$narrow']}}},ps:[],$cont:Iterable,tp:{Type$narrow:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:narrow')];},d:['$','Iterable','$m','narrow']};};iterable$.fold=function($21,$h66nf9$){var iterable$=this;var $22=function($23){var $24=$21;var $26;for(var $25=iterable$.iterator();($26=$25.next())!==finished();){$24=$23($24,$26);}return $24;};$22.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$h66nf9$.Result$fold,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([iterable$.$$targs$$.Element$Iterable]),Element$Tuple:mut$([$h66nf9$.Result$fold,iterable$.$$targs$$.Element$Iterable]),First$Tuple:$h66nf9$.Result$fold/*ORALE!Result inv pero First var*/}}}},$rt:$h66nf9$.Result$fold,ps:[{nm:'partial',mt:'prm',$t:$h66nf9$.Result$fold},{nm:'element',mt:'prm',$t:iterable$.Element$Iterable}]}],$t:$h66nf9$.Result$fold};};return JsCallable(0,$22);};iterable$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:['Result$fold','Element$Iterable']}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Iterable,tp:{Result$fold:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:fold'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_reduce),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.scan)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','fold']};};iterable$.$_reduce=function($27,$hehpv4$){var iterable$=this;var $28=iterable$.iterator();var $29;if(!is$(($29=$28.next()),{t:Finished})){var $2a=$29;var $2b;while(!is$(($2b=$28.next()),{t:Finished})){$2a=$27($2a,$2b);}
return $2a;}
else{var $2c;asrt$((is$(($2c=null),iterable$.$$targs$$.Absent$Iterable)),"iterable must be empty: \'is Absent null\' at Iterable.ceylon (518:19-518:34)",'517:12-518:35','Iterable.ceylon');
return null;}
};iterable$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce','Element$Iterable','Absent$Iterable']},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$Iterable']},'Element$Iterable']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$Iterable']}},{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$reduce:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:reduce'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','reduce']};};iterable$.scan=function($2d,$h5ylqx$){var iterable$=this;iterable$.$2d_=$2d;var $2e=function($2f){{return function(){function $2g($$targs$$){var $2g$=new $2g.$$;$2g$.outer$=iterable$;$2g$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Nothing},Element$Iterable:$h5ylqx$.Result$scan/*ORALE!Result inv pero Element var*/},$2g$);return $2g$;};$2g.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$2g$.scan,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Result$scan'}}],d:['$','Iterable','$m','scan']};};function $init$$2g(){if($2g.$$===undefined){initTypeProto($2g,'ceylon.language::Iterable.anonymous#4',Basic,$init$Iterable());
(function($2g$){atr$($2g$,'empty',function(){var $2g$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2g$.scan,pa:3,d:['$','Iterable','$m','scan','$at','empty']};});atr$($2g$,'first',function(){var $2g$=this;return $2d;},undefined,function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2g$.scan,pa:3,d:['$','Iterable','$m','scan','$at','first']};});atr$($2g$,'size',function(){var $2g$=this;return (1).plus(iterable$.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$2g$.scan,pa:3,d:['$','Iterable','$m','scan','$at','size']};});$2g$.iterator=function(){var $2g$=this;return function(){var $2h=iterable$.iterator();return function(){function $2i($$targs$$){var $2i$=new $2i.$$;$2i$.outer$=$2g$;$2i$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$h5ylqx$.Result$scan/*ORALE!Result inv pero Element var*/},$2i$);$2i$.$2j_=true;$2i$.$prop$get$2j={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2g$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','returnInitial$l5dio2']};}};$2i$.$prop$get$2j.get=function(){return $2j};$2i$.$2k_=$2d;$2i$.$prop$get$2k={$crtmm$:function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2g$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','partial$s33589']};}};$2i$.$prop$get$2k.get=function(){return $2k};return $2i$;};$2i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$2g$.scan,sts:[{t:Iterator,a:{Element$Iterator:'Result$scan'}}],d:['$','Iterable','$m','scan']};};function $init$$2i(){if($2i.$$===undefined){initTypeProto($2i,'ceylon.language::Iterable.anonymous#4.anonymous#5',Basic,$init$Iterator());
(function($2i$){atr$($2i$,'$2j',function(){return this.$2j_;},function($2l){return this.$2j_=$2l;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2g$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','returnInitial$l5dio2']};});atr$($2i$,'$2k',function(){return this.$2k_;},function($2m){return this.$2k_=$2m;},function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2g$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','partial$s33589']};});$2i$.next=function(){var $2i$=this;if($2i$.$2j){$2i$.$2j=false;return $2d;}
else{var $2n;if(!is$(($2n=$2h.next()),{t:Finished})){$2i$.$2k=$2f($2i$.$2k,$2n);return $2i$.$2k;}
else{return finished();}
}
};$2i$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$scan',{t:Finished}]},ps:[],$cont:$2g$.scan,pa:3,d:['$','Iterable','$m','scan','$m','next']};};atr$($2i$,'string',function(){var $2i$=this;return $2g$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$2g$.scan,pa:3,d:['$','Iterable','$m','scan','$at','string']};});})($2i.$$.prototype);}
return $2i;}
$2g$.$init$$2i=$init$$2i;$init$$2i();return $2i();}();}();};})($2g.$$.prototype);}
return $2g;}
iterable$.$init$$2g=$init$$2g;$init$$2g();return $2g();}();}};$2e.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$h5ylqx$.Result$scan,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([iterable$.$$targs$$.Element$Iterable]),Element$Tuple:mut$([$h5ylqx$.Result$scan,iterable$.$$targs$$.Element$Iterable]),First$Tuple:$h5ylqx$.Result$scan/*ORALE!Result inv pero First var*/}}}},$rt:$h5ylqx$.Result$scan,ps:[{nm:'partial',mt:'prm',$t:$h5ylqx$.Result$scan},{nm:'element',mt:'prm',$t:iterable$.Element$Iterable}],an:function(){return[doc$($CCMM$,'$:Iterable:$m:scan:$m:accumulating$ll7ghb')];}}],$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:$h5ylqx$.Result$scan/*ORALE!Result inv pero Element var*/}}};};return JsCallable(0,$2e);};iterable$.scan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Element$Iterable:'Result$scan',Absent$Iterable:{t:Nothing}}},Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$scan',Arguments$Callable:{t:'T',l:['Result$scan','Element$Iterable']}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$scan'}],$cont:Iterable,tp:{Result$scan:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:scan'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','scan']};};iterable$.find=function($2q){var iterable$=this;var $2s;for(var $2r=iterable$.iterator();($2s=$2r.next())!==finished();){var $2t;if(nn$(($2t=$2s))&&$2q($2t)){return $2t;}
}return null;};iterable$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:find'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.findLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','find']};};iterable$.findLast=function($2u){var iterable$=this;var $2v=null;var $2x;for(var $2w=iterable$.iterator();($2x=$2w.next())!==finished();){var $2y;if(nn$(($2y=$2x))&&$2u($2y)){$2v=$2y;}
}return $2v;};iterable$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:findLast'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.find),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','findLast']};};iterable$.locate=function($2z){var iterable$=this;var $30=(0);var $32;for(var $31=iterable$.iterator();($32=$31.next())!==finished();){var $33;if(nn$(($33=$32))&&$2z($33)){return Entry($30,$33,{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});}
($34=$30,$30=$34.successor,$34);var $34;}return null;};iterable$.locate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:locate'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.find),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.firstIndexWhere)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','locate']};};iterable$.locateLast=function($35){var iterable$=this;var $36=null;var $37=(0);var $39;for(var $38=iterable$.iterator();($39=$38.next())!==finished();){var $3a;if(nn$(($3a=$39))&&$35($3a)){$36=Entry($37,$3a,{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});}
($3b=$37,$37=$3b.successor,$3b);var $3b;}return $36;};iterable$.locateLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:locateLast'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.findLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.lastIndexWhere)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','locateLast']};};iterable$.locations=function($3c){var iterable$=this;return function(){function $3d($$targs$$){var $3d$=new $3d.$$;$3d$.outer$=iterable$;$3d$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}}},$3d$);return $3d$;};$3d.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$3d$.locations,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}}}],d:['$','Iterable','$m','locations']};};function $init$$3d(){if($3d.$$===undefined){initTypeProto($3d,'ceylon.language::Iterable.anonymous#6',Basic,$init$Iterable());
(function($3d$){$3d$.iterator=function(){var $3d$=this;return function(){var $3e=iterable$.iterator();return function(){function $3f($$targs$$){var $3f$=new $3f.$$;$3f$.outer$=$3d$;$3f$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}}},$3f$);$3f$.$3g_=(0);$3f$.$prop$get$3g={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$3d$.locations,pa:1024,d:['$','Iterable','$m','locations','$at','i$hjr19g']};}};$3f$.$prop$get$3g.get=function(){return $3g};return $3f$;};$3f.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$3d$.locations,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}}}],d:['$','Iterable','$m','locations']};};function $init$$3f(){if($3f.$$===undefined){initTypeProto($3f,'ceylon.language::Iterable.anonymous#6.anonymous#7',Basic,$init$Iterator());
(function($3f$){atr$($3f$,'$3g',function(){return this.$3g_;},function($3h){return this.$3g_=$3h;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$3d$.locations,pa:1024,d:['$','Iterable','$m','locations','$at','i$hjr19g']};});$3f$.next=function(){var $3f$=this;var $3i;while(!is$(($3i=$3e.next()),{t:Finished})){var $3j;if(nn$(($3j=$3i))&&$3c($3j)){return Entry(($3k=$3f$.$3g,$3f$.$3g=$3k.successor,$3k),$3j,{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});var $3k;}
else{($3l=$3f$.$3g,$3f$.$3g=$3l.successor,$3l);var $3l;}
}
return finished();};$3f$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}},{t:Finished}]},ps:[],$cont:$3d$.locations,pa:3,d:['$','Iterable','$m','locations','$m','next']};};atr$($3f$,'string',function(){var $3f$=this;return $3d$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$3d$.locations,pa:3,d:['$','Iterable','$m','locations','$at','string']};});})($3f.$$.prototype);}
return $3f;}
$3d$.$init$$3f=$init$$3f;$init$$3f();return $3f();}();}();};})($3d.$$.prototype);}
return $3d;}
iterable$.$init$$3d=$init$$3d;$init$$3d();return $3d();}();};iterable$.locations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:locations'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.indexesWhere)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','locations']};};iterable$.max=function($3o){var iterable$=this;var $3p=iterable$.iterator();var $3q;if(!is$(($3q=$3p.next()),{t:Finished})){var $3r=$3q;var $3s;while(!is$(($3s=$3p.next()),{t:Finished})){if($3o($3s,$3r).equals(larger())){$3r=$3s;}
}
return $3r;}
else{var $3t;asrt$((is$(($3t=null),iterable$.$$targs$$.Absent$Iterable)),"iterable must be empty: \'is Absent null\' at Iterable.ceylon (768:19-768:34)",'767:12-768:35','Iterable.ceylon');
return null;}
};iterable$.max.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable','Absent$Iterable']},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Iterable','Element$Iterable']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Iterable'},{nm:'y',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:max'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),min)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','max']};};iterable$.spread=function($3u,$gr5r1f$){var iterable$=this;return flatten($JsCallable((function($3v){return for$(function(){var $3w=iterable$.iterator(),$3x=finished();var n$3x=function(){return $3x=$3w.next();}
return function(){if(n$3x()!==finished()){var $3y=$3x,$3z=$3u($3y)($3v.sequence());return $3z;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$gr5r1f$.Result$spread/*ORALE!Result inv pero Element var*/});}),[{nm:'args',mt:'prm',$t:$gr5r1f$.Args$spread}],{Return$Callable:{t:Iterable,a:{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:$gr5r1f$.Result$spread/*ORALE!Result inv pero Element var*/}},Arguments$Callable:mtt$([$gr5r1f$.Args$spread])}),{Args$flatten:$gr5r1f$.Args$spread,Return$flatten:{t:Iterable,a:{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:$gr5r1f$.Result$spread/*ORALE!Result inv pero Element var*/}}});};iterable$.spread.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Result$spread'}},Arguments$Callable:'Args$spread'}},ps:[{nm:'method',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$spread:{},Args$spread:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:spread')];},d:['$','Iterable','$m','spread']};};iterable$.$_sort=function($40){var iterable$=this;var $41=$_Array(iterable$,{Element$Array:iterable$.$$targs$$.Element$Iterable});if($41.empty){return empty();}
else{$41.sortInPlace(JsCallable(iterable$,$40));return ArraySequence($41,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}
};iterable$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Iterable'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Iterable','Element$Iterable']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Iterable'},{nm:'y',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:sort'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),increasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),decreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','sort']};};iterable$.collect=function($42,$qjpxxc$){var iterable$=this;return iterable$.$_map(JsCallable(iterable$,$42),{Result$map:$qjpxxc$.Result$collect}).sequence();};iterable$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$collect:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:collect'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_map)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','collect']};};iterable$.select=function($43){var iterable$=this;return iterable$.$_filter(JsCallable(iterable$,$43)).sequence();};iterable$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Iterable'}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:select'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_filter)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','select']};};iterable$.count=function($44){var iterable$=this;var $45=(0);var $47;for(var $46=iterable$.iterator();($47=$46.next())!==finished();){if($44($47)){($48=$45,$45=$48.successor,$48);var $48;}
}return $45;};iterable$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:count')];},d:['$','Iterable','$m','count']};};iterable$.any=function($49){var iterable$=this;var $4b;for(var $4a=iterable$.iterator();($4b=$4a.next())!==finished();){if($49($4b)){return true;}
}return false;};iterable$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:any'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_every)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','any']};};iterable$.$_every=function($4c){var iterable$=this;var $4e;for(var $4d=iterable$.iterator();($4e=$4d.next())!==finished();){if(!$4c($4e)){return false;}
}return true;};iterable$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:every'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.any)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','every']};};iterable$.skip=function($4f){var iterable$=this;if(($4f<=0)){return iterable$;}
else{return function(){function $4g($$targs$$){var $4g$=new $4g.$$;$4g$.outer$=iterable$;$4g$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4g$);return $4g$;};$4g.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4g$.skip,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','skip']};};function $init$$4g(){if($4g.$$===undefined){initTypeProto($4g,'ceylon.language::Iterable.anonymous#9',Basic,$init$Iterable());
(function($4g$){$4g$.iterator=function(){var $4g$=this;var $4h=iterable$.iterator();var $4i=(0);while(((($4j=$4i,$4i=$4j.successor,$4j)<$4f)&&!is$($4h.next(),{t:Finished}))){}
var $4j;return $4h;};$4g$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4g$.skip,pa:3,d:['$','Iterable','$m','skip','$m','iterator']};};atr$($4g$,'string',function(){var $4g$=this;return iterable$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4g$.skip,pa:3,d:['$','Iterable','$m','skip','$at','string']};});})($4g.$$.prototype);}
return $4g;}
iterable$.$init$$4g=$init$$4g;$init$$4g();return $4g();}();}
};iterable$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:skip'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistFrom),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skipWhile),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','skip']};};iterable$.take=function($4l){var iterable$=this;if(($4l<=0)){return empty();}
else{return function(){function $4m($$targs$$){var $4m$=new $4m.$$;$4m$.outer$=iterable$;$4m$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4m$);return $4m$;};$4m.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4m$.take,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','take']};};function $init$$4m(){if($4m.$$===undefined){initTypeProto($4m,'ceylon.language::Iterable.anonymous#10',Basic,$init$Iterable());
(function($4m$){$4m$.iterator=function(){var $4m$=this;var $4n=iterable$.iterator();return function(){function $4o($$targs$$){var $4o$=new $4o.$$;$4o$.outer$=$4m$;$4o$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$4o$);$4o$.$4p_=(0);$4o$.$prop$get$4p={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$4m$.iterator,pa:1024,d:['$','Iterable','$m','take','$m','iterator','$at','i$28cecw']};}};$4o$.$prop$get$4p.get=function(){return $4p};return $4o$;};$4o.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4m$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','take','$m','iterator']};};function $init$$4o(){if($4o.$$===undefined){initTypeProto($4o,'ceylon.language::Iterable.anonymous#10.anonymous#11',Basic,$init$Iterator());
(function($4o$){atr$($4o$,'$4p',function(){return this.$4p_;},function($4q){return this.$4p_=$4q;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$4m$.iterator,pa:1024,d:['$','Iterable','$m','take','$m','iterator','$at','i$28cecw']};});$4o$.next=function(){var $4o$=this;return ($4r=((($4o$.$4p=$4o$.$4p.successor)>$4l)?finished():null),nn$($4r)?$4r:$4n.next());};atr$($4o$,'string',function(){var $4o$=this;return $4m$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4m$.iterator,pa:3,d:['$','Iterable','$m','take','$m','iterator','$at','string']};});})($4o.$$.prototype);}
return $4o;}
$4m$.$init$$4o=$init$$4o;$init$$4o();return $4o();}();var $4r;};$4m$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4m$.take,pa:3,d:['$','Iterable','$m','take','$m','iterator']};};atr$($4m$,'first',function(){var $4m$=this;return iterable$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},$cont:$4m$.take,pa:3,d:['$','Iterable','$m','take','$at','first']};});})($4m.$$.prototype);}
return $4m;}
iterable$.$init$$4m=$init$$4m;$init$$4m();return $4m();}();}
};iterable$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:take'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistTo),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.initial),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.takeWhile),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','take']};};iterable$.skipWhile=function($4u){var iterable$=this;return function(){function $4v($$targs$$){var $4v$=new $4v.$$;$4v$.outer$=iterable$;$4v$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4v$);return $4v$;};$4v.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4v$.skipWhile,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','skipWhile']};};function $init$$4v(){if($4v.$$===undefined){initTypeProto($4v,'ceylon.language::Iterable.anonymous#12',Basic,$init$Iterable());
(function($4v$){$4v$.iterator=function(){var $4v$=this;var $4w=iterable$.iterator();var $4x;while(!is$(($4x=$4w.next()),{t:Finished})){var $4y=(function(){var $4z=$4x;if(!$4u($4z)){return function(){function $50($$targs$$){var $50$=new $50.$$;$50$.outer$=$4v$;$50$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$50$);$50$.$51_=true;$50$.$prop$get$51={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4v$.iterator,pa:1024,d:['$','Iterable','$m','skipWhile','$m','iterator','$at','first$1npvlj']};}};$50$.$prop$get$51.get=function(){return $51};return $50$;};$50.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4v$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','skipWhile','$m','iterator']};};function $init$$50(){if($50.$$===undefined){initTypeProto($50,'ceylon.language::Iterable.anonymous#12.anonymous#13',Basic,$init$Iterator());
(function($50$){atr$($50$,'$51',function(){return this.$51_;},function($52){return this.$51_=$52;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4v$.iterator,pa:1024,d:['$','Iterable','$m','skipWhile','$m','iterator','$at','first$1npvlj']};});$50$.next=function(){var $50$=this;if($50$.$51){$50$.$51=false;return $4z;}
else{return $4w.next();}
};$50$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$4v$.iterator,pa:3,d:['$','Iterable','$m','skipWhile','$m','iterator','$m','next']};};atr$($50$,'string',function(){var $50$=this;return $4v$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4v$.iterator,pa:3,d:['$','Iterable','$m','skipWhile','$m','iterator','$at','string']};});})($50.$$.prototype);}
return $50;}
$4v$.$init$$50=$init$$50;$init$$50();return $50();}();}
}());if($4y!==undefined){return $4y;}}
return emptyIterator();};$4v$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4v$.skipWhile,pa:3,d:['$','Iterable','$m','skipWhile','$m','iterator']};};})($4v.$$.prototype);}
return $4v;}
iterable$.$init$$4v=$init$$4v;$init$$4v();return $4v();}();};iterable$.skipWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'skipping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:skipWhile'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.takeWhile)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','skipWhile']};};iterable$.takeWhile=function($55){var iterable$=this;return function(){function $56($$targs$$){var $56$=new $56.$$;$56$.outer$=iterable$;$56$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$56$);return $56$;};$56.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$56$.takeWhile,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','takeWhile']};};function $init$$56(){if($56.$$===undefined){initTypeProto($56,'ceylon.language::Iterable.anonymous#14',Basic,$init$Iterable());
(function($56$){$56$.iterator=function(){var $56$=this;return function(){var $57=iterable$.iterator();return function(){function $58($$targs$$){var $58$=new $58.$$;$58$.outer$=$56$;$58$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$58$);$58$.$59_=true;$58$.$prop$get$59={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$56$.takeWhile,pa:1024,d:['$','Iterable','$m','takeWhile','$at','alive$876lxa']};}};$58$.$prop$get$59.get=function(){return $59};return $58$;};$58.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$56$.takeWhile,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','takeWhile']};};function $init$$58(){if($58.$$===undefined){initTypeProto($58,'ceylon.language::Iterable.anonymous#14.anonymous#15',Basic,$init$Iterator());
(function($58$){atr$($58$,'$59',function(){return this.$59_;},function($5a){return this.$59_=$5a;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$56$.takeWhile,pa:1024,d:['$','Iterable','$m','takeWhile','$at','alive$876lxa']};});$58$.next=function(){var $58$=this;var $5b;if($58$.$59&&!is$(($5b=$57.next()),{t:Finished})){if($55($5b)){return $5b;}
else{$58$.$59=false;}
}
return finished();};$58$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$56$.takeWhile,pa:3,d:['$','Iterable','$m','takeWhile','$m','next']};};atr$($58$,'string',function(){var $58$=this;return $56$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$56$.takeWhile,pa:3,d:['$','Iterable','$m','takeWhile','$at','string']};});})($58.$$.prototype);}
return $58;}
$56$.$init$$58=$init$$58;$init$$58();return $58();}();}();};})($56.$$.prototype);}
return $56;}
iterable$.$init$$56=$init$$56;$init$$56();return $56();}();};iterable$.takeWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'taking',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:takeWhile'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skipWhile)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','takeWhile']};};iterable$.repeat=function($5e){var iterable$=this;return function(){function $5f($$targs$$){var $5f$=new $5f.$$;$5f$.outer$=iterable$;$5f$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$5f$);return $5f$;};$5f.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5f$.repeat,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','repeat']};};function $init$$5f(){if($5f.$$===undefined){initTypeProto($5f,'ceylon.language::Iterable.anonymous#16',Basic,$init$Iterable());
(function($5f$){atr$($5f$,'size',function(){var $5f$=this;return $5e.times(iterable$.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5f$.repeat,pa:3,d:['$','Iterable','$m','repeat','$at','size']};});atr$($5f$,'string',function(){var $5f$=this;return "(".plus(iterable$.string).plus(").repeat(").plus($5e.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5f$.repeat,pa:3,d:['$','Iterable','$m','repeat','$at','string']};});$5f$.iterator=function(){var $5f$=this;return CycledIterator(iterable$,$5e,{Element$CycledIterator:iterable$.$$targs$$.Element$Iterable});};})($5f.$$.prototype);}
return $5f;}
iterable$.$init$$5f=$init$$5f;$init$$5f();return $5f();}();};iterable$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:repeat'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getCycled)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','repeat']};};iterable$.by=function($5h){var iterable$=this;asrt$((($5h>0)),"step size must be greater than zero: \'step > 0\' at Iterable.ceylon (1106:15-1106:24)",'1105:8-1106:25','Iterable.ceylon');
if((($5h).valueOf()==(1).valueOf())){return iterable$;}
else{return function(){function $5i($$targs$$){var $5i$=new $5i.$$;$5i$.outer$=iterable$;$5i$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$5i$);return $5i$;};$5i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5i$.by,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','by']};};function $init$$5i(){if($5i.$$===undefined){initTypeProto($5i,'ceylon.language::Iterable.anonymous#17',Basic,$init$Iterable());
(function($5i$){atr$($5i$,'string',function(){var $5i$=this;return "(".plus(iterable$.string).plus(").by(").plus($5h.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5i$.by,pa:3,d:['$','Iterable','$m','by','$at','string']};});$5i$.iterator=function(){var $5i$=this;return function(){var $5j=iterable$.iterator();return function(){function $5k($$targs$$){var $5k$=new $5k.$$;$5k$.outer$=$5i$;$5k$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$5k$);return $5k$;};$5k.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5i$.by,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','by']};};function $init$$5k(){if($5k.$$===undefined){initTypeProto($5k,'ceylon.language::Iterable.anonymous#17.anonymous#18',Basic,$init$Iterator());
(function($5k$){$5k$.next=function(){var $5k$=this;var $5l=$5j.next();var $5m=(0);while(((($5m=$5m.successor)<$5h)&&!is$($5j.next(),{t:Finished}))){}
return $5l;};$5k$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$5i$.by,pa:3,d:['$','Iterable','$m','by','$m','next']};};atr$($5k$,'string',function(){var $5k$=this;return $5i$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5i$.by,pa:3,d:['$','Iterable','$m','by','$at','string']};});})($5k.$$.prototype);}
return $5k;}
$5i$.$init$$5k=$init$$5k;$init$$5k();return $5k();}();}();};})($5i.$$.prototype);}
return $5i;}
iterable$.$init$$5i=$init$$5i;$init$$5i();return $5i();}();}
};iterable$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:by'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if the given step size is nonpositive, \ni.e. `step<1`")];},d:['$','Iterable','$m','by']};};iterable$.defaultNullElements=function($5p,$984cph$){var iterable$=this;return iterable$.$_map($JsCallable((function($5q){return ($5r=$5q,nn$($5r)?$5r:$5p);}),[{nm:'elem',mt:'prm',$t:iterable$.Element$Iterable}],{Return$Callable:mut$([$984cph$.Default$defaultNullElements,mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),Arguments$Callable:mtt$([iterable$.$$targs$$.Element$Iterable])}),{Result$map:mut$([$984cph$.Default$defaultNullElements,mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])])});};iterable$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]},'Default$defaultNullElements']}}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Iterable,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:defaultNullElements'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getCoalesced)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','defaultNullElements']};};atr$(iterable$,'coalesced',function(){var iterable$=this;return for$(function(){var $5u;var $5s=iterable$.iterator(),$5t=finished();var n$5t=function(){while(($5t=$5s.next())!==finished()){if(nn$(($5u=$5t))){return $5t;}
}
return finished();}
return function(){if(n$5t()!==finished()){var $5v=$5t,$5w=$5u;return $5w;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:['Element$Iterable',{t:$_Object}]}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:coalesced'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.defaultNullElements)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','coalesced']};});atr$(iterable$,'indexed',function(){var iterable$=this;return function(){function $5x($$targs$$){var $5x$=new $5x.$$;$5x$.outer$=iterable$;$5x$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}},$5x$);return $5x$;};$5x.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5x$.$prop$getIndexed,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}}],d:['$','Iterable','$at','indexed']};};function $init$$5x(){if($5x.$$===undefined){initTypeProto($5x,'ceylon.language::Iterable.anonymous#20',Basic,$init$Iterable());
(function($5x$){$5x$.iterator=function(){var $5x$=this;return function(){var $5y=iterable$.iterator();return function(){function $5z($$targs$$){var $5z$=new $5z.$$;$5z$.outer$=$5x$;$5z$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}},$5z$);$5z$.$60_=(0);$5z$.$prop$get$60={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5x$.$prop$getIndexed,pa:1024,d:['$','Iterable','$at','indexed','$at','i$wpz7ch']};}};$5z$.$prop$get$60.get=function(){return $60};return $5z$;};$5z.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5x$.$prop$getIndexed,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}}],d:['$','Iterable','$at','indexed']};};function $init$$5z(){if($5z.$$===undefined){initTypeProto($5z,'ceylon.language::Iterable.anonymous#20.anonymous#21',Basic,$init$Iterator());
(function($5z$){atr$($5z$,'$60',function(){return this.$60_;},function($61){return this.$60_=$61;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5x$.$prop$getIndexed,pa:1024,d:['$','Iterable','$at','indexed','$at','i$wpz7ch']};});$5z$.next=function(){var $5z$=this;return function($62){if($62===finished())return finished();else return Entry(($63=$5z$.$60,$5z$.$60=$63.successor,$63),$62,{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable})}($5y.next());};atr$($5z$,'string',function(){var $5z$=this;return $5x$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5x$.$prop$getIndexed,pa:3,d:['$','Iterable','$at','indexed','$at','string']};});})($5z.$$.prototype);}
return $5z;}
$5x$.$init$$5z=$init$$5z;$init$$5z();return $5z();}();}();};})($5x.$$.prototype);}
return $5x;}
iterable$.$init$$5x=$init$$5x;$init$$5x();return $5x();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:indexed'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','indexed']};});atr$(iterable$,'paired',function(){var iterable$=this;return function(){function $66($$targs$$){var $66$=new $66.$$;$66$.outer$=iterable$;$66$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:mtt$([iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable])},$66$);return $66$;};$66.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$66$.$prop$getPaired,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:['Element$Iterable','Element$Iterable']}}}],d:['$','Iterable','$at','paired']};};function $init$$66(){if($66.$$===undefined){initTypeProto($66,'ceylon.language::Iterable.anonymous#22',Basic,$init$Iterable());
(function($66$){atr$($66$,'size',function(){var $66$=this;return function(){var $67=iterable$.size.minus(1);return (($67<0)?(0):$67);}();},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$66$.$prop$getPaired,pa:3,d:['$','Iterable','$at','paired','$at','size']};});atr$($66$,'empty',function(){var $66$=this;return (iterable$.size<2);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$66$.$prop$getPaired,pa:3,d:['$','Iterable','$at','paired','$at','empty']};});$66$.iterator=function(){var $66$=this;return function(){var $68=iterable$.iterator();return function(){function $69($$targs$$){var $69$=new $69.$$;$69$.outer$=$66$;$69$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mtt$([iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable])},$69$);$69$.$6a_=$68.next();$69$.$prop$get$6a={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$66$.$prop$getPaired,pa:1024,d:['$','Iterable','$at','paired','$at','previous$bv77d3']};}};$69$.$prop$get$6a.get=function(){return $6a};return $69$;};$69.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$66$.$prop$getPaired,sts:[{t:Iterator,a:{Element$Iterator:{t:'T',l:['Element$Iterable','Element$Iterable']}}}],d:['$','Iterable','$at','paired']};};function $init$$69(){if($69.$$===undefined){initTypeProto($69,'ceylon.language::Iterable.anonymous#22.anonymous#23',Basic,$init$Iterator());
(function($69$){atr$($69$,'$6a',function(){return this.$6a_;},function($6b){return this.$6a_=$6b;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$66$.$prop$getPaired,pa:1024,d:['$','Iterable','$at','paired','$at','previous$bv77d3']};});$69$.next=function(){var $69$=this;var $6c,$6d;if(!is$(($6c=$69$.$6a),{t:Finished})&&!is$(($6d=$68.next()),{t:Finished})){$69$.$6a=$6d;return tpl$([$6c,$6d]);}
else{return finished();}
};$69$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:'T',l:['Element$Iterable','Element$Iterable']},{t:Finished}]},ps:[],$cont:$66$.$prop$getPaired,pa:3,d:['$','Iterable','$at','paired','$m','next']};};})($69.$$.prototype);}
return $69;}
$66$.$init$$69=$init$$69;$init$$69();return $69();}();}();};})($66.$$.prototype);}
return $66;}
iterable$.$init$$66=$init$$66;$init$$66();return $66();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:['Element$Iterable','Element$Iterable']}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:paired')];},d:['$','Iterable','$at','paired']};});iterable$.partition=function($6g){var iterable$=this;asrt$((($6g>0)),"length must be strictly positive: \'length>0\' at Iterable.ceylon (1257:15-1257:24)",'1256:8-1257:25','Iterable.ceylon');
return function(){function $6h($$targs$$){var $6h$=new $6h.$$;$6h$.outer$=iterable$;$6h$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}},$6h$);return $6h$;};$6h.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6h$.partition,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}}],d:['$','Iterable','$m','partition']};};function $init$$6h(){if($6h.$$===undefined){initTypeProto($6h,'ceylon.language::Iterable.anonymous#24',Basic,$init$Iterable());
(function($6h$){atr$($6h$,'size',function(){var $6h$=this;return function(){var $6i=iterable$.size,$6j=$6i.divided($6g);return ($6g.divides($6i)?$6j:$6j.plus(1));}();},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$6h$.partition,pa:3,d:['$','Iterable','$m','partition','$at','size']};});atr$($6h$,'empty',function(){var $6h$=this;return iterable$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$6h$.partition,pa:3,d:['$','Iterable','$m','partition','$at','empty']};});$6h$.iterator=function(){var $6h$=this;return function(){var $6k=iterable$.iterator();return function(){function $6l($$targs$$){var $6l$=new $6l.$$;$6l$.outer$=$6h$;$6l$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}},$6l$);return $6l$;};$6l.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6h$.partition,sts:[{t:Iterator,a:{Element$Iterator:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}}],d:['$','Iterable','$m','partition']};};function $init$$6l(){if($6l.$$===undefined){initTypeProto($6l,'ceylon.language::Iterable.anonymous#24.anonymous#25',Basic,$init$Iterator());
(function($6l$){$6l$.next=function(){var $6l$=this;var $6m;if(!is$(($6m=$6k.next()),{t:Finished})){var $6n=$_Array_ofSize($6g,$6m,{Element$Array:iterable$.$$targs$$.Element$Iterable});var $6o=(0);while((($6o=$6o.successor)<$6g)){var $6p;if(!is$(($6p=$6k.next()),{t:Finished})){$6n.set($6o,$6p);}
else{return ArraySequence($6n.spanTo($6o.minus(1)),{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}
}
return ArraySequence($6n,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}
else{return finished();}
};$6l$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$Iterable'}},{t:Finished}]},ps:[],$cont:$6h$.partition,pa:3,d:['$','Iterable','$m','partition','$m','next']};};})($6l.$$.prototype);}
return $6l;}
$6h$.$init$$6l=$init$$6l;$init$$6l();return $6l();}();}();};})($6h.$$.prototype);}
return $6h;}
iterable$.$init$$6h=$init$$6h;$init$$6h();return $6h();}();};iterable$.partition.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:partition'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `length<=0`")];},d:['$','Iterable','$m','partition']};};iterable$.follow=function($6s,$mxeb51$){var iterable$=this;return sarg$(function($6t){switch($6t){case 0:return $6s;}return finished();},function(){return iterable$;},{Element$Iterable:mut$([$mxeb51$.Other$follow,iterable$.$$targs$$.Element$Iterable]),Absent$Iterable:{t:Nothing}});};iterable$.follow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:['Element$Iterable','Other$follow']}}},ps:[{nm:'head',mt:'prm',$t:'Other$follow'}],$cont:Iterable,tp:{Other$follow:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:follow'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','follow']};};iterable$.chain=function($6u,$z5puy1$){var iterable$=this;return function(){function $6v($$targs$$){var $6v$=new $6v.$$;$6v$.outer$=iterable$;$6v$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:mit$([iterable$.$$targs$$.Absent$Iterable,$z5puy1$.OtherAbsent$chain]),Element$Iterable:mut$([iterable$.$$targs$$.Element$Iterable,$z5puy1$.Other$chain])},$6v$);return $6v$;};$6v.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6v$.chain,sts:[{t:Iterable,a:{Absent$Iterable:{t:'i',l:['Absent$Iterable','OtherAbsent$chain']},Element$Iterable:{t:'u',l:['Element$Iterable','Other$chain']}}}],d:['$','Iterable','$m','chain']};};function $init$$6v(){if($6v.$$===undefined){initTypeProto($6v,'ceylon.language::Iterable.anonymous#26',Basic,$init$Iterable());
(function($6v$){$6v$.iterator=function(){var $6v$=this;return ChainedIterator(iterable$,$6u,{Other$ChainedIterator:$z5puy1$.Other$chain/*ORALE!Other inv pero Other var*/,Element$ChainedIterator:iterable$.$$targs$$.Element$Iterable});};})($6v.$$.prototype);}
return $6v;}
iterable$.$init$$6v=$init$$6v;$init$$6v();return $6v();}();};iterable$.chain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'i',l:['Absent$Iterable','OtherAbsent$chain']},Element$Iterable:{t:'u',l:['Element$Iterable','Other$chain']}}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}}}],$cont:Iterable,tp:{Other$chain:{},OtherAbsent$chain:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:chain'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),expand)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','chain']};};iterable$.product=function($6x,$5q6xtx$){var iterable$=this;return for$(function(){var $6y=iterable$.iterator(),$6z=finished();var n$6z=function(){if(($6z=$6y.next())!==finished()){$70=$6x.iterator();return $6z;}
return finished();}
var $70=emptyIterator(),$71=finished();var n$71=function(){return $71=$70.next();}
return function(){do{if(n$71()!==finished()){var $72=$71,$73=tpl$([$6z,$72]);return $73;}
}while(n$6z()!==finished());return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Tuple,a:{Rest$Tuple:mtt$([$5q6xtx$.Other$product]),Element$Tuple:mut$([iterable$.$$targs$$.Element$Iterable,$5q6xtx$.Other$product]),First$Tuple:iterable$.$$targs$$.Element$Iterable}}});};iterable$.product.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['Absent$Iterable','OtherAbsent$product']},Element$Iterable:{t:'T',l:['Element$Iterable','Other$product']}}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$product',Element$Iterable:'Other$product'}}}],$cont:Iterable,tp:{Other$product:{},OtherAbsent$product:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:product')];},d:['$','Iterable','$m','product']};};atr$(iterable$,'cycled',function(){var iterable$=this;return function(){function $74($$targs$$){var $74$=new $74.$$;$74$.outer$=iterable$;$74$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$74$);$74$.$prop$get$75={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:$74$.$prop$getCycled,d:['$','Iterable','$at','cycled','$at','orig$u6r96']};}};$74$.$prop$get$75.get=function(){return $75};return $74$;};$74.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$74$.$prop$getCycled,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','cycled']};};function $init$$74(){if($74.$$===undefined){initTypeProto($74,'ceylon.language::Iterable.anonymous#27',Basic,$init$Iterable());
(function($74$){atr$($74$,'$75',function(){var $74$=this;return iterable$;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:$74$.$prop$getCycled,d:['$','Iterable','$at','cycled','$at','orig$u6r96']};});atr$($74$,'string',function(){var $74$=this;return "(".plus(iterable$.string).plus(").cycled");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$74$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$at','string']};});atr$($74$,'size',function(){var $74$=this;asrt$((false),"stream is infinite: \'false\' at Iterable.ceylon (1375:19-1375:25)",'1374:12-1375:26','Iterable.ceylon');
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$74$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$at','size']};});$74$.iterator=function(){var $74$=this;return function(){function $76($$targs$$){var $76$=new $76.$$;$76$.outer$=$74$;$76$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$76$);$76$.$77_=emptyIterator();$76$.$prop$get$77={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$74$.$prop$getCycled,pa:1024,d:['$','Iterable','$at','cycled','$at','iter$ugmja']};}};$76$.$prop$get$77.get=function(){return $77};return $76$;};$76.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$74$.$prop$getCycled,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','cycled']};};function $init$$76(){if($76.$$===undefined){initTypeProto($76,'ceylon.language::Iterable.anonymous#27.anonymous#28',Basic,$init$Iterator());
(function($76$){atr$($76$,'$77',function(){return this.$77_;},function($78){return this.$77_=$78;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$74$.$prop$getCycled,pa:1024,d:['$','Iterable','$at','cycled','$at','iter$ugmja']};});$76$.next=function(){var $76$=this;var $79;if(!is$(($79=$76$.$77.next()),{t:Finished})){return $79;}
else{$76$.$77=$74$.$75.iterator();return $76$.$77.next();}
};$76$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$74$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$m','next']};};atr$($76$,'string',function(){var $76$=this;return $74$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$74$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$at','string']};});})($76.$$.prototype);}
return $76;}
$74$.$init$$76=$init$$76;$init$$76();return $76();}();};})($74.$$.prototype);}
return $74;}
iterable$.$init$$74=$init$$74;$init$$74();return $74();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:cycled'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.repeat)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','cycled']};});iterable$.interpose$defs$step=function($7c,$7d,$ahv3gd$){return 1;};iterable$.interpose=function($7c,$7d,$ahv3gd$){var iterable$=this;if($7d===undefined){$7d=(1);}
asrt$((($7d>=1)),"step must be strictly positive: \'step>=1\' at Iterable.ceylon (1421:15-1421:23)",'1420:8-1421:24','Iterable.ceylon');
return function(){function $7e($$targs$$){var $7e$=new $7e.$$;$7e$.outer$=iterable$;$7e$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:mut$([iterable$.$$targs$$.Element$Iterable,$ahv3gd$.Other$interpose])},$7e$);return $7e$;};$7e.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7e$.interpose,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:['Element$Iterable','Other$interpose']}}}],d:['$','Iterable','$m','interpose']};};function $init$$7e(){if($7e.$$===undefined){initTypeProto($7e,'ceylon.language::Iterable.anonymous#29',Basic,$init$Iterable());
(function($7e$){atr$($7e$,'size',function(){var $7e$=this;var $7f=iterable$.size;return (($7f>0)?$7f.plus($7f.minus(1).divided($7d)):(0));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7e$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','size']};});atr$($7e$,'empty',function(){var $7e$=this;return iterable$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$7e$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','empty']};});atr$($7e$,'first',function(){var $7e$=this;return iterable$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable','Other$interpose']},$cont:$7e$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','first']};});atr$($7e$,'last',function(){var $7e$=this;return iterable$.last;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable','Other$interpose']},$cont:$7e$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','last']};});$7e$.iterator=function(){var $7e$=this;return function(){var $7g=iterable$.iterator();return function(){function $7h($$targs$$){var $7h$=new $7h.$$;$7h$.outer$=$7e$;$7h$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mut$([iterable$.$$targs$$.Element$Iterable,$ahv3gd$.Other$interpose])},$7h$);$7h$.$7i_=$7g.next();$7h$.$prop$get$7i={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$7e$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','current$9m13n7']};}};$7h$.$prop$get$7i.get=function(){return $7i};$7h$.$7j_=(0);$7h$.$prop$get$7j={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7e$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','count$7pnslp']};}};$7h$.$prop$get$7j.get=function(){return $7j};return $7h$;};$7h.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7e$.interpose,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$Iterable','Other$interpose']}}}],d:['$','Iterable','$m','interpose']};};function $init$$7h(){if($7h.$$===undefined){initTypeProto($7h,'ceylon.language::Iterable.anonymous#29.anonymous#30',Basic,$init$Iterator());
(function($7h$){atr$($7h$,'$7i',function(){return this.$7i_;},function($7k){return this.$7i_=$7k;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$7e$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','current$9m13n7']};});atr$($7h$,'$7j',function(){return this.$7j_;},function($7l){return this.$7j_=$7l;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7e$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','count$7pnslp']};});$7h$.next=function(){var $7h$=this;var $7m;if(!is$(($7m=$7h$.$7i),{t:Finished})){if($7d.plus(1).divides(($7h$.$7j=$7h$.$7j.successor))){return $7c;}
else{$7h$.$7i=$7g.next();return $7m;}
}
else{return finished();}
};$7h$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable','Other$interpose',{t:Finished}]},ps:[],$cont:$7e$.interpose,pa:3,d:['$','Iterable','$m','interpose','$m','next']};};atr$($7h$,'string',function(){var $7h$=this;return $7e$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$7e$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','string']};});})($7h.$$.prototype);}
return $7h;}
$7e$.$init$$7h=$init$$7h;$init$$7h();return $7h();}();}();};})($7e.$$.prototype);}
return $7e;}
iterable$.$init$$7e=$init$$7e;$init$$7e();return $7e();}();};iterable$.interpose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:['Element$Iterable','Other$interpose']}}},ps:[{nm:'element',mt:'prm',$t:'Other$interpose'},{nm:'step',mt:'prm',def:1,$t:{t:Integer}}],$cont:Iterable,tp:{Other$interpose:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:interpose'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `step<1`"),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),interleave)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','interpose']};};atr$(iterable$,'distinct',function(){var iterable$=this;return function(){function $7p($$targs$$){var $7p$=new $7p.$$;$7p$.outer$=iterable$;$7p$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$7p$);return $7p$;};$7p.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7p$.$prop$getDistinct,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','distinct']};};function $init$$7p(){if($7p.$$===undefined){initTypeProto($7p,'ceylon.language::Iterable.anonymous#31',Basic,$init$Iterable());
(function($7p$){$7p$.iterator=function(){var $7p$=this;return function(){var $7q=iterable$;return function(){function $7r($$targs$$){var $7r$=new $7r.$$;$7r$.outer$=$7p$;$7r$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$7r$);$7r$.$7s_=$7q.iterator();$7r$.$prop$get$7s={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$7p$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$at','it$y0vfb8']};}};$7r$.$prop$get$7s.get=function(){return $7s};$7r$.$7t_=(0);$7r$.$prop$get$7t={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7p$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','count$ki54zc']};}};$7r$.$prop$get$7t.get=function(){return $7t};$7r$.$7u_=($7v=(16),$7w=null,$_Array_ofSize($7v,$7w,{Element$Array:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}])}));$7r$.$prop$get$7u={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}},$cont:$7p$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','store$x5wtqi']};}};$7r$.$prop$get$7u.get=function(){return $7u};var $7v,$7w;return $7r$;};$7r.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7p$.$prop$getDistinct,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','distinct']};};function $init$$7r(){if($7r.$$===undefined){initTypeProto($7r,'ceylon.language::Iterable.anonymous#31.anonymous#32',Basic,$init$Iterator());
(function($7r$){atr$($7r$,'$7s',function(){return this.$7s_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$7p$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$at','it$y0vfb8']};});atr$($7r$,'$7t',function(){return this.$7t_;},function($7x){return this.$7t_=$7x;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7p$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','count$ki54zc']};});atr$($7r$,'$7u',function(){return this.$7u_;},function($7y){return this.$7u_=$7y;},function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}},$cont:$7p$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','store$x5wtqi']};});$7r$.$7z=function($80,$81){var $7r$=this;return function(){var $82;if(nn$(($82=$80)))return $82.hash.magnitude.remainder($81);else return (0)}();};$7r$.$7z.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'},{nm:'size',mt:'prm',$t:{t:Integer}}],$cont:$7p$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$m','hash$z99w6n']};};$7r$.$83=function($84){var $7r$=this;var $85=($86=$84.size.times(2),$87=null,$_Array_ofSize($86,$87,{Element$Array:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}])}));var $86,$87;var $89;for(var $88=$84.iterator();($89=$88.next())!==finished();){var $8a=$89;var $8b;while(nn$(($8b=$8a))){var $8c=$7r$.$7z($8b.element,$85.size);$85.set($8c,($8d=$85.$_get($8c),$8e=$8b.element,ElementEntry($8d,$8e,{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable})));var $8d,$8e;$8a=$8b.next;}
}return $85;};$7r$.$83.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}},ps:[{nm:'store',mt:'prm',$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}}}],$cont:$7p$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$m','rebuild$m1o5v8']};};$7r$.next=function(){var $7r$=this;while(true){var $8f=$7r$.$7s.next();if(is$($8f,{t:Finished})) {return $8f;}
else{var $8g=$7r$.$7z($8f,$7r$.$7u.size);var $8h=$7r$.$7u.$_get($8g);var $8i;if(nn$(($8i=$8h))&&$8i.has($8f)){}
else{$7r$.$7u.set($8g,($8j=$8h,$8k=$8f,ElementEntry($8j,$8k,{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable})));var $8j,$8k;($8l=$7r$.$7t,$7r$.$7t=$8l.successor,$8l);var $8l;if(($7r$.$7t>$7r$.$7u.size.times(2))){$7r$.$7u=$7r$.$83($7r$.$7u);}
return $8f;}
}}
};$7r$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$7p$.$prop$getDistinct,pa:3,d:['$','Iterable','$at','distinct','$m','next']};};})($7r.$$.prototype);}
return $7r;}
$7p$.$init$$7r=$init$$7r;$init$$7r();return $7r();}();}();};})($7p.$$.prototype);}
return $7p;}
iterable$.$init$$7p=$init$$7p;$init$$7p();return $7p();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:distinct'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),set)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','distinct']};});iterable$.frequencies=function(){var iterable$=this;return iterable$.coalesced.summarize(JsCallable(iterable$,identity,{Value$identity:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}),$JsCallable((function($8o,$8p){return function(){var $8q;if(nn$(($8q=$8o)))return $8q.plus(1);else return (1)}();}),[{nm:'count',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Integer}]}},{nm:'_',mt:'prm',$t:{t:'i',l:[iterable$.Element$Iterable,{t:$_Object}]}}],{Return$Callable:{t:Integer},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),Element$Tuple:mut$([{t:Null},{t:Integer},mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),First$Tuple:mut$([{t:Null},{t:Integer}])}}}),{Result$summarize:{t:Integer},Group$summarize:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});};iterable$.frequencies.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'i',l:['Element$Iterable',{t:$_Object}]},Item$Map:{t:Integer}}},ps:[],$cont:Iterable,pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:frequencies')];},d:['$','Iterable','$m','frequencies']};};iterable$.tabulate=function($8r,$xls834$){var iterable$=this;return iterable$.coalesced.summarize(JsCallable(iterable$,identity,{Value$identity:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}),$JsCallable((function($8s,$8t){return function(){var $8u;if(nn$(($8u=$8s)))return $8u;else return $8r($8t)}();}),[{nm:'item',mt:'prm',$t:{t:'u',l:[{t:Null},$xls834$.Result$tabulate]}},{nm:'key',mt:'prm',$t:{t:'i',l:[iterable$.Element$Iterable,{t:$_Object}]}}],{Return$Callable:$xls834$.Result$tabulate/*ORALE!Result inv pero Return var*/,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),Element$Tuple:mut$([{t:Null},$xls834$.Result$tabulate,mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),First$Tuple:mut$([{t:Null},$xls834$.Result$tabulate])}}}),{Result$summarize:$xls834$.Result$tabulate,Group$summarize:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});};iterable$.tabulate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'i',l:['Element$Iterable',{t:$_Object}]},Item$Map:'Result$tabulate'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$tabulate',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Result$tabulate',ps:[{nm:'key',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$tabulate:{}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:tabulate')];},d:['$','Iterable','$m','tabulate']};};iterable$.group=function($8v,$z3c017$){var iterable$=this;return iterable$.summarize(JsCallable(iterable$,$8v),function($8w$0,$8w$1){return ElementEntry($8w$0,$8w$1,{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable});},{Result$summarize:{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}},Group$summarize:$z3c017$.Group$group}).mapItems($JsCallable((function($8x,$8y){return $8y.reversed;}),[{nm:'_',mt:'prm',$t:$z3c017$.Group$group},{nm:'item',mt:'prm',$t:{t:ElementEntry,a:{Element$ElementEntry:iterable$.Element$Iterable}}}],{Return$Callable:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}]),Element$Tuple:mut$([$z3c017$.Group$group,{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}]),First$Tuple:$z3c017$.Group$group/*ORALE!Group inv pero First var*/}}}),{Result$mapItems:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}});};iterable$.group.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Group$group',Item$Map:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}},ps:[{nm:'grouping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Group$group',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Group$group',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Group$group:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:group'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.summarize)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','group']};};iterable$.summarize=function($8z,$90,$67zt7b$){var iterable$=this;return function(){function $91($$targs$$){var $91$=new $91.$$;$91$.outer$=iterable$;$91$.$$targs$$=$$targs$$;$_Object($91$);Map({Key$Map:$67zt7b$.Group$summarize/*ORALE!Group inv pero Key var*/,Item$Map:$67zt7b$.Result$summarize/*ORALE!Result inv pero Item var*/},$91$);$91$.$92_=($93=(16),$94=null,$_Array_ofSize($93,$94,{Element$Array:mut$([{t:Null},{t:GroupEntry,a:{Result$GroupEntry:$67zt7b$.Result$summarize,Group$GroupEntry:$67zt7b$.Group$summarize}}])}));$91$.$prop$get$92={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','store$qernvl']};}};$91$.$prop$get$92.get=function(){return $92};var $93,$94;$91$.$95_=(0);$91$.$prop$get$95={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','count$91pkmb']};}};$91$.$prop$get$95.get=function(){return $95};var $97;for(var $96=iterable$.iterator();($97=$96.next())!==finished();){var $98=$8z($97);$prop$get$98={$crtmm$:function(){return{mod:$CCMM$,$t:'Group$summarize',$cont:$91$.summarize,d:['$','Iterable','$m','summarize','$at','group$ajuo4p']};}};$prop$get$98.get=function(){return $98};var $99=$91$.$9a($98,$91$.$92.size);$prop$get$99={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$91$.summarize,d:['$','Iterable','$m','summarize','$at','index$llxrb0']};}};$prop$get$99.get=function(){return $99};var $9b=$91$.$92.$_get($99);$prop$get$9b={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},$cont:$91$.summarize,d:['$','Iterable','$m','summarize','$at','entries$sqrkb6']};}};$prop$get$9b.get=function(){return $9b};var $9c,$9d;if(nn$(($9c=$9b))&&nn$(($9d=$9c.$_get($98)))){($9d.elements=$90($9d.elements,$97));}
else{$91$.$92.set($99,($9e=$9b,$9f=$98,$9g=$90(null,$97),GroupEntry($9e,$9f,$9g,{Group$GroupEntry:$67zt7b$.Group$summarize,Result$GroupEntry:$67zt7b$.Result$summarize})));var $9e,$9f,$9g;($9h=$91$.$95,$91$.$95=$9h.successor,$9h);var $9h;if(($91$.$95>$91$.$92.size.times(2))){$91$.$92=$91$.$9i($91$.$92);}
}
}return $91$;};$91.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$91$.summarize,sts:[{t:Map,a:{Key$Map:'Group$summarize',Item$Map:'Result$summarize'}}],d:['$','Iterable','$m','summarize']};};function $init$$91(){if($91.$$===undefined){initTypeProto($91,'ceylon.language::Iterable.anonymous#36',$init$$_Object(),$init$Map());
(function($91$){atr$($91$,'$92',function(){return this.$92_;},function($9j){return this.$92_=$9j;},function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','store$qernvl']};});$91$.$9a=function($9k,$9l){var $91$=this;return $9k.hash.magnitude.remainder($9l);};$91$.$9a.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'group',mt:'prm',$t:{t:$_Object}},{nm:'size',mt:'prm',$t:{t:Integer}}],$cont:$91$.summarize,d:['$','Iterable','$m','summarize','$m','hash$obelfg']};};$91$.$9i=function($9m){var $91$=this;var $9n=($9o=$9m.size.times(2),$9p=null,$_Array_ofSize($9o,$9p,{Element$Array:mut$([{t:Null},{t:GroupEntry,a:{Result$GroupEntry:$67zt7b$.Result$summarize,Group$GroupEntry:$67zt7b$.Group$summarize}}])}));var $9o,$9p;var $9r;for(var $9q=$9m.iterator();($9r=$9q.next())!==finished();){var $9s=$9r;var $9t;while(nn$(($9t=$9s))){var $9u=$91$.$9a($9t.group,$9n.size);$9n.set($9u,($9v=$9n.$_get($9u),$9w=$9t.group,$9x=$9t.elements,GroupEntry($9v,$9w,$9x,{Group$GroupEntry:$67zt7b$.Group$summarize,Result$GroupEntry:$67zt7b$.Result$summarize})));var $9v,$9w,$9x;$9s=$9t.next;}
}return $9n;};$91$.$9i.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}},ps:[{nm:'store',mt:'prm',$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}}}],$cont:$91$.summarize,d:['$','Iterable','$m','summarize','$m','rebuild$xi3q89']};};atr$($91$,'$95',function(){return this.$95_;},function($9y){return this.$95_=$9y;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','count$91pkmb']};});atr$($91$,'size',function(){var $91$=this;return $91$.$95;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$91$.summarize,pa:3,d:['$','Iterable','$m','summarize','$at','size']};});$91$.iterator=function(){var $91$=this;return function(){function $9z($$targs$$){var $9z$=new $9z.$$;$9z$.outer$=$91$;$9z$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:$67zt7b$.Group$summarize/*ORALE!Group inv pero Key var*/,Item$Entry:$67zt7b$.Result$summarize/*ORALE!Result inv pero Item var*/}}},$9z$);$9z$.$a0_=(0);$9z$.$prop$get$a0={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','index$t4wmt5']};}};$9z$.$prop$get$a0.get=function(){return $a0};$9z$.$a1_=null;$9z$.$prop$get$a1={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','entry$tn94pz']};}};$9z$.$prop$get$a1.get=function(){return $a1};return $9z$;};$9z.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$91$.summarize,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:'Group$summarize',Item$Entry:'Result$summarize'}}}}],d:['$','Iterable','$m','summarize']};};function $init$$9z(){if($9z.$$===undefined){initTypeProto($9z,'ceylon.language::Iterable.anonymous#36.anonymous#37',Basic,$init$Iterator());
(function($9z$){atr$($9z$,'$a0',function(){return this.$a0_;},function($a2){return this.$a0_=$a2;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','index$t4wmt5']};});atr$($9z$,'$a1',function(){return this.$a1_;},function($a3){return this.$a1_=$a3;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},$cont:$91$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','entry$tn94pz']};});$9z$.next=function(){var $9z$=this;var $a4;var $a5;if(nn$(($a5=$9z$.$a1))){$9z$.$a1=$a5.next;$a4=$a5;}
else{while(true){if(($9z$.$a0>=$91$.$92.size)){return finished();}
else{$9z$.$a1=$91$.$92.$_get(($a6=$9z$.$a0,$9z$.$a0=$a6.successor,$a6));var $a6;var $a7;if(nn$(($a7=$9z$.$a1))){$9z$.$a1=$a7.next;$a4=$a7;break;}
}
}
}
return Entry($a4.group,$a4.elements,{Key$Entry:$67zt7b$.Group$summarize/*ORALE!Group inv pero Key var*/,Item$Entry:$67zt7b$.Result$summarize/*ORALE!Result inv pero Item var*/});};$9z$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:'Group$summarize',Item$Entry:'Result$summarize'}},{t:Finished}]},ps:[],$cont:$91$.summarize,pa:3,d:['$','Iterable','$m','summarize','$m','next']};};})($9z.$$.prototype);}
return $9z;}
$91$.$init$$9z=$init$$9z;$init$$9z();return $9z();}();};$91$.clone=function(){var $91$=this;return $91$;};$91$.$a9=function($aa){var $91$=this;return ($ab=$91$.$92.$_get($91$.$9a($aa,$91$.$92.size)),JsCallable($ab,nn$($ab)?$ab.$_get:null))($aa);};$91$.$a9.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$91$.summarize,d:['$','Iterable','$m','summarize','$m','group$5gf80d']};};$91$.defines=function($ac){var $91$=this;return nn$($91$.$a9($ac));};$91$.$_get=function($ad){var $91$=this;return ($ae=$91$.$a9($ad),nn$($ae)?$ae.elements:null);};$91$.getOrDefault=function($af,$ag,$os3hnq$){var $91$=this;return function(){var $ah;if(nn$(($ah=$91$.$a9($af))))return $ah.elements;else return $ag}();};$91$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$summarize','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$91$.summarize,tp:{Default$getOrDefault:{}},pa:3,d:['$','Iterable','$m','summarize','$m','getOrDefault']};};})($91.$$.prototype);}
return $91;}
iterable$.$init$$91=$init$$91;$init$$91();return $91();}();};iterable$.summarize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Group$summarize',Item$Map:'Result$summarize'}},ps:[{nm:'grouping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Group$summarize',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Group$summarize',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]},{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$summarize',Arguments$Callable:{t:'T',l:[{t:'u',l:[{t:Null},'Result$summarize']},'Element$Iterable']}}},$rt:'Result$summarize',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:[{t:Null},'Result$summarize']}},{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Group$summarize:{sts:[{t:$_Object}]},Result$summarize:{}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:summarize'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.group),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','summarize']};};atr$(iterable$,'string',function(){var iterable$=this;return function(){var $aj=iterable$.take(31).sequence();return ($aj.empty?"{}":((($aj.size).valueOf()==(31).valueOf())?"{ ".plus(commaList($aj.take(30))).plus(", ... }"):"{ ".plus(commaList($aj)).plus(" }")));}();},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Iterable,pa:11,an:function(){return[doc$($CCMM$,'$:Iterable:$at:string')];},d:['$','Iterable','$at','string']};});})(Iterable.$$.prototype);}
return Iterable;}
ex$.$init$Iterable=$init$Iterable;$init$Iterable();var $5r,$63,$ab,$ae;function commaList($ak){return ($al=for$(function(){var $am=$ak.iterator(),$an=finished();var n$an=function(){return $an=$am.next();}
return function(){if(n$an()!==finished()){var $ao=$an,$ap=stringify($ao);return $ap;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}).sequence(),($aq=", ",JsCallable($aq,$aq.$_join))($al));};commaList.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Anything}}}}],d:['$','commaList']};};var $al,$aq;function ElementEntry(next,element,$$targs$$,elementEntry$){$init$ElementEntry();
if(elementEntry$===undefined)elementEntry$=new ElementEntry.$$;
set_type_args(elementEntry$,$$targs$$);
elementEntry$.next_=next;elementEntry$.element_=element;$_Object(elementEntry$);Sequence({Element$Sequence:$$targs$$.Element$ElementEntry/*ORALE!Element inv pero Element var*/},elementEntry$);return elementEntry$;}
ElementEntry.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'next',mt:'prm',$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},pa:1},{nm:'element',mt:'prm',$t:'Element$ElementEntry',pa:1}],tp:{Element$ElementEntry:{}},sts:[{t:Sequence,a:{Element$Sequence:'Element$ElementEntry'}}],d:['$','ElementEntry']};};
ex$.ElementEntry=ElementEntry;function $init$ElementEntry(){if(ElementEntry.$$===undefined){initTypeProto(ElementEntry,'ceylon.language::ElementEntry',$init$$_Object(),$init$Sequence());
(function(elementEntry$){atr$(elementEntry$,'next',function(){return this.next_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},$cont:ElementEntry,pa:1,d:['$','ElementEntry','$at','next']};});atr$(elementEntry$,'element',function(){return this.element_;},undefined,function(){return{mod:$CCMM$,$t:'Element$ElementEntry',$cont:ElementEntry,pa:1,d:['$','ElementEntry','$at','element']};});atr$(elementEntry$,'first',function(){var elementEntry$=this;return elementEntry$.element;},undefined,function(){return{mod:$CCMM$,$t:'Element$ElementEntry',$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','first']};});elementEntry$.has=function($ar){var elementEntry$=this;var $as=elementEntry$;var $at;while(nn$(($at=$as))){var $au;if(nn$(($au=$ar))){var $av;if(nn$(($av=$at.element))&&$au.equals($av)){return true;}
}
else{if(!nn$($at.element)){return true;}
}
$as=$at.next;}
return false;};elementEntry$.has.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:ElementEntry,pa:1,d:['$','ElementEntry','$m','has']};};elementEntry$.getFromFirst=function($aw){var elementEntry$=this;if(($aw<0)){return null;}
else{var $ax=elementEntry$;var $az=(0),$b0=$aw;for(var $b1=0;$b1<$b0;$b1++,($az=$az.successor)){var $b2;if(nn$(($b2=$ax.next))){$ax=$b2;}
else{return null;}
}return $ax.element;}
};elementEntry$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$ElementEntry']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:ElementEntry,pa:3,d:['$','ElementEntry','$m','getFromFirst']};};atr$(elementEntry$,'rest',function(){var elementEntry$=this;return ($b3=elementEntry$.next,nn$($b3)?$b3:empty());},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ElementEntry'}},$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','rest']};});atr$(elementEntry$,'last',function(){var elementEntry$=this;var $b4=elementEntry$;var $b5;while(nn$(($b5=$b4.next))){$b4=$b5;}
return $b4.element;},undefined,function(){return{mod:$CCMM$,$t:'Element$ElementEntry',$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','last']};});atr$(elementEntry$,'size',function(){var elementEntry$=this;var $b6=(1);var $b7=elementEntry$;var $b8;while(nn$(($b8=$b7.next))){$b7=$b8;($b9=$b6,$b6=$b9.successor,$b9);var $b9;}
return $b6;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','size']};});elementEntry$.iterator=function(){var elementEntry$=this;return function(){function $ba($$targs$$){var $ba$=new $ba.$$;$ba$.outer$=elementEntry$;$ba$.$$targs$$=$$targs$$;Iterator({Element$Iterator:elementEntry$.$$targs$$.Element$ElementEntry/*ORALE!Element inv pero Element var*/},$ba$);$ba$.$bb_=elementEntry$;$ba$.$prop$get$bb={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},$cont:ElementEntry,pa:1024,d:['$','ElementEntry','$at','entry$eey3d5']};}};$ba$.$prop$get$bb.get=function(){return $bb};return $ba$;};$ba.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:ElementEntry,sts:[{t:Iterator,a:{Element$Iterator:'Element$ElementEntry'}}],d:['$','ElementEntry']};};function $init$$ba(){if($ba.$$===undefined){initTypeProto($ba,'ceylon.language::ElementEntry.anonymous#38',Basic,$init$Iterator());
(function($ba$){atr$($ba$,'$bb',function(){return this.$bb_;},function($bc){return this.$bb_=$bc;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},$cont:ElementEntry,pa:1024,d:['$','ElementEntry','$at','entry$eey3d5']};});$ba$.next=function(){var $ba$=this;var $bd;if(nn$(($bd=$ba$.$bb))){$ba$.$bb=$bd.next;return $bd.element;}
else{return finished();}
};$ba$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$ElementEntry',{t:Finished}]},ps:[],$cont:ElementEntry,pa:3,d:['$','ElementEntry','$m','next']};};})($ba.$$.prototype);}
return $ba;}
elementEntry$.$init$$ba=$init$$ba;$init$$ba();return $ba();}();};})(ElementEntry.$$.prototype);}
return ElementEntry;}
ex$.$init$ElementEntry=$init$ElementEntry;$init$ElementEntry();var $b3;function GroupEntry(next,group,elements,$$targs$$,groupEntry$){$init$GroupEntry();
if(groupEntry$===undefined)groupEntry$=new GroupEntry.$$;
set_type_args(groupEntry$,$$targs$$);
groupEntry$.next_=next;groupEntry$.group_=group;groupEntry$.elements_=elements;return groupEntry$;}
GroupEntry.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'next',mt:'prm',$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$GroupEntry',Group$GroupEntry:'Group$GroupEntry'}}]},pa:1},{nm:'group',mt:'prm',$t:'Group$GroupEntry',pa:1},{nm:'elements',mt:'prm',$t:'Result$GroupEntry',pa:1025}],tp:{Group$GroupEntry:{sts:[{t:$_Object}]},Result$GroupEntry:{}},d:['$','GroupEntry']};};
ex$.GroupEntry=GroupEntry;function $init$GroupEntry(){if(GroupEntry.$$===undefined){initTypeProto(GroupEntry,'ceylon.language::GroupEntry',Basic);
(function(groupEntry$){atr$(groupEntry$,'next',function(){return this.next_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$GroupEntry',Group$GroupEntry:'Group$GroupEntry'}}]},$cont:GroupEntry,pa:1,d:['$','GroupEntry','$at','next']};});atr$(groupEntry$,'group',function(){return this.group_;},undefined,function(){return{mod:$CCMM$,$t:'Group$GroupEntry',$cont:GroupEntry,pa:1,d:['$','GroupEntry','$at','group']};});atr$(groupEntry$,'elements',function(){return this.elements_;},function($bf){return this.elements_=$bf;},function(){return{mod:$CCMM$,$t:'Result$GroupEntry',$cont:GroupEntry,pa:1025,d:['$','GroupEntry','$at','elements']};});groupEntry$.$_get=function($bg){var groupEntry$=this;var $bh=groupEntry$;var $bi;while(nn$(($bi=$bh))){if($bg.equals($bi.group)){return $bi;}
$bh=$bi.next;}
return null;};groupEntry$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$GroupEntry',Group$GroupEntry:'Group$GroupEntry'}}]},ps:[{nm:'group',mt:'prm',$t:{t:$_Object}}],$cont:GroupEntry,pa:1,d:['$','GroupEntry','$m','get']};};})(GroupEntry.$$.prototype);}
return GroupEntry;}
ex$.$init$GroupEntry=$init$GroupEntry;$init$GroupEntry();function for$(makeNextFunc, $$targs$$, compr) {
$init$for$();
if (compr===undefined) {compr = new for$.$$;}
Basic(compr);
Iterable($$targs$$,compr);
compr.makeNextFunc = makeNextFunc;
return compr;
}
for$.$crtmm$={nm:'Comprehension',pa:1,mod:$CCMM$,d:['$','Iterable']};
function $init$for$() {
if (for$.$$===undefined) {
initTypeProto(for$, 'ceylon.language::Comprehension', $init$Basic(), $init$Iterable());
}
return for$;
}
$init$for$();
var for$$proto = for$.$$.prototype;
for$$proto.iterator = function() {
return for$iter(this.makeNextFunc(), this.$$targs$$);
}
for$$proto.sequence = function() {
return Iterable.$$.prototype.sequence.call(this);
}
for$$proto.sequence.$crtmm$={pa:3,mod:$CCMM$,d:['$','Iterable','$m','sequence']}
ex$.for$=for$;
function for$iter(nextFunc, $$targs$$, it) {
$init$for$iter();
if (it===undefined) {it = new for$iter.$$;}
Basic(it);
Iterator($$targs$$,it);
it.next = nextFunc;
return it;
}
for$iter.$crtmm$={nm:'ComprehensionIterator',pa:1,mod:$CCMM$,d:['$','Iterator']};
function $init$for$iter() {
if (for$iter.$$===undefined) {
initTypeProto(for$iter, 'ceylon.language::ComprehensionIterator',
$init$Basic(), $init$Iterator());
}
return for$iter;
}
$init$for$iter();
function $_Boolean(value) {return Boolean(value)}
initExistingTypeProto($_Boolean, Boolean, 'ceylon.language::Boolean');
$_Boolean.$crtmm$=function(){
return{ps:[],pa:257,of:[getTrue,getFalse],
mod:$CCMM$,d:['$','Boolean']};
};
ex$.$_Boolean=$_Boolean;
function $_true() {return true;}
initType($_true, "ceylon.language::true", $_Boolean);
$_true.$crtmm$=function(){return{'super':{t:$_Boolean},mod:$CCMM$,pa:65,d:['$','true']}};
function $_false() {return false;}
initType($_false, "ceylon.language::false", $_Boolean);
$_false.$crtmm$=function(){return{'super':{t:$_Boolean},mod:$CCMM$,pa:65,d:['$','false']}};
Boolean.prototype.getT$name = function() {
return 'ceylon.language::Boolean';
}
Boolean.prototype.getT$all = function() {
return (this.valueOf()?$_true:$_false).$$.T$all;
}
Boolean.prototype.equals = function(other) {return other.constructor===Boolean && other==this;}
atr$(Boolean.prototype, 'hash', function(){ return this.valueOf()?1:0; },
undefined,{$t:{t:Integer},pa:3,mod:$CCMM$,d:['$','Object','$at','hash']});
atr$(Boolean.prototype, 'string', function(){ return this.valueOf()?"true":"false"; },
undefined,{$t:{t:$_String},pa:3,mod:$CCMM$,d:['$','Object','$at','string']});
function getTrue() {return true;}
getTrue.$crtmm$=function(){return{mod:$CCMM$,pa:65,d:['$','true'],$t:{t:$_true}};};
function getFalse() {return false;}
getFalse.$crtmm$=function(){return{mod:$CCMM$,pa:65,d:['$','false'],$t:{t:$_false}};};
ex$.$prop$getTrue=$_true;
ex$.$prop$getFalse=$_false;
ex$.getTrue=getTrue;
ex$.getFalse=getFalse;
function $init$$_true(){return $_true;}
function $init$$_false(){return $_false;}
ex$.$init$$_true=$init$$_true;
ex$.$init$$_false=$init$$_false;
function Tuple(first,rest,$$targs$$,tuple$){$init$Tuple();
if(tuple$===undefined)tuple$=new Tuple.$$;
set_type_args(tuple$,$$targs$$);
tuple$.first_=first;tuple$.rest_=rest;$_Object(tuple$);Sequence({Element$Sequence:$$targs$$.Element$Tuple},tuple$);return tuple$;}
Tuple.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'first',mt:'prm',$t:'First$Tuple',pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:first')];}},{nm:'rest',mt:'prm',$t:'Rest$Tuple',pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:rest')];}}],tp:{Element$Tuple:{dv:'out'},First$Tuple:{dv:'out',sts:['Element$Tuple']},Rest$Tuple:{dv:'out',sts:[{t:Sequential,a:{Element$Sequential:'Element$Tuple'}}],def:{t:Empty}}},sts:[{t:Sequence,a:{Element$Sequence:'Element$Tuple'}}],pa:2081,an:function(){return[doc$($CCMM$,'$:Tuple'),by(["Gavin"].$sa$({t:$_String})),tagged(["Sequences","Basic types","Collections"].$sa$({t:$_String})),$_native()];},d:['$','Tuple']};};
ex$.Tuple=Tuple;function $init$Tuple(){if(Tuple.$$===undefined){initTypeProto(Tuple,'ceylon.language::Tuple',$init$$_Object(),$init$Sequence());
(function(tuple$){atr$(tuple$,'first',function(){return this.first_;},undefined,function(){return{mod:$CCMM$,$t:'First$Tuple',$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:first')];},d:['$','Tuple','$at','first']};});atr$(tuple$,'rest',function(){return this.rest_;},undefined,function(){return{mod:$CCMM$,$t:'Rest$Tuple',$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:rest')];},d:['$','Tuple','$at','rest']};});atr$(tuple$,'lastIndex',function(){var tuple$=this;return tuple$.rest.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$at','lastIndex']};});atr$(tuple$,'size',function(){var tuple$=this;return (1).plus(tuple$.rest.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$at','size']};});tuple$.getFromFirst=function($bj){var tuple$=this;return function($bk){if($bk===smaller())return null;else if($bk===equal())return tuple$.first;else if($bk===larger())return tuple$.rest.getFromFirst($bj.minus(1));}($bj.compare(0));};tuple$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Tuple']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','getFromFirst']};};atr$(tuple$,'last',function(){var tuple$=this;return function(){var $bl;if(ne$(($bl=tuple$.rest)))return $bl.last;else return tuple$.first}();},undefined,function(){return{mod:$CCMM$,$t:'Element$Tuple',$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:last'),$_native()];},d:['$','Tuple','$at','last']};});tuple$.measure=function($bm,$bn){var tuple$=this;if(($bn<=0)){return empty();}
var $bo=($bp=(($bm<0)?0:null),nn$($bp)?$bp:$bm);var $bp;if((($bo).valueOf()==(0).valueOf())){return ($bq=((($bn).valueOf()==(1).valueOf())?tpl$([tuple$.first]):null),nn$($bq)?$bq:tuple$.rest.measure(0,$bn.plus($bo).minus(1)).withLeading(tuple$.first,{Other$withLeading:tuple$.$$targs$$.First$Tuple}));var $bq;}
return tuple$.rest.measure($bo.minus(1),$bn);};tuple$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','measure']};};tuple$.span=function($br,$bs){var tuple$=this;if((($br<0)&&($bs<0))){return empty();}
var $bt=($bu=(($br<0)?0:null),nn$($bu)?$bu:$br);var $bu;var $bv=($bw=(($bs<0)?0:null),nn$($bw)?$bw:$bs);var $bw;return ($bx=(($bt<=$bv)?tuple$.measure($br,$bv.minus($bt).plus(1)):null),nn$($bx)?$bx:tuple$.measure($bv,$bt.minus($bv).plus(1)).reversed.sequence());var $bx;};tuple$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'end',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','span']};};tuple$.spanTo=function($by){var tuple$=this;return ($bz=(($by<0)?empty():null),nn$($bz)?$bz:tuple$.span(0,$by));};tuple$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','spanTo']};};tuple$.spanFrom=function($c0){var tuple$=this;return tuple$.span($c0,tuple$.size);};tuple$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','spanFrom']};};tuple$.clone=function(){var tuple$=this;return tuple$;};tuple$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['First$Tuple']},ps:[],$cont:Tuple,pa:3,an:function(){return[doc("This tuple."),$_native()];},d:['$','Tuple','$m','clone']};};tuple$.iterator=function(){var tuple$=this;return function(){function $c1($$targs$$){var $c1$=new $c1.$$;$c1$.outer$=tuple$;$c1$.$$targs$$=$$targs$$;Iterator({Element$Iterator:tuple$.$$targs$$.Element$Tuple},$c1$);$c1$.$c2_=tuple$;$c1$.$prop$get$c2={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},$cont:tuple$.iterator,pa:1024,d:['$','Tuple','$m','iterator','$at','current$5go163']};}};$c1$.$prop$get$c2.get=function(){return $c2};return $c1$;};$c1.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:tuple$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Tuple'}}],d:['$','Tuple','$m','iterator']};};function $init$$c1(){if($c1.$$===undefined){initTypeProto($c1,'ceylon.language::Tuple.anonymous#0',Basic,$init$Iterator());
(function($c1$){atr$($c1$,'$c2',function(){return this.$c2_;},function($c3){return this.$c2_=$c3;},function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},$cont:tuple$.iterator,pa:1024,d:['$','Tuple','$m','iterator','$at','current$5go163']};});$c1$.next=function(){var $c1$=this;var $c4;if(ne$(($c4=$c1$.$c2))){$c1$.$c2=$c4.rest;return $c4.first;}
else{return finished();}
};$c1$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Tuple',{t:Finished}]},ps:[],$cont:tuple$.iterator,pa:3,d:['$','Tuple','$m','iterator','$m','next']};};atr$($c1$,'string',function(){var $c1$=this;return tuple$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:tuple$.iterator,pa:3,d:['$','Tuple','$m','iterator','$at','string']};});})($c1.$$.prototype);}
return $c1;}
tuple$.$init$$c1=$init$$c1;$init$$c1();return $c1();}();};tuple$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Tuple'}},ps:[],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','iterator']};};tuple$.contains=function($c6){var tuple$=this;return function(){var $c7;if(nn$(($c7=tuple$.first))&&$c7.equals($c6))return true;else return tuple$.rest.contains($c6)}();};tuple$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:contains'),$_native()];},d:['$','Tuple','$m','contains']};};tuple$.withLeading=function($c8,$bzh8o8$){var tuple$=this;return Tuple($c8,tuple$,{First$Tuple:$bzh8o8$.Other$withLeading/*ORALE!Other inv pero First var*/,Rest$Tuple:{t:Tuple,a:{Rest$Tuple:tuple$.$$targs$$.Rest$Tuple,Element$Tuple:tuple$.$$targs$$.Element$Tuple,First$Tuple:tuple$.$$targs$$.First$Tuple}},Element$Tuple:mut$([$bzh8o8$.Other$withLeading,tuple$.$$targs$$.Element$Tuple])});};tuple$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading','First$Tuple']},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Tuple,tp:{Other$withLeading:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:withLeading'),$_native()];},d:['$','Tuple','$m','withLeading']};};tuple$.withTrailing=function($c9,$bok4ze$){var tuple$=this;return Tuple(tuple$.first,tuple$.rest.withTrailing($c9,{Other$withTrailing:$bok4ze$.Other$withTrailing}),{First$Tuple:tuple$.$$targs$$.First$Tuple,Rest$Tuple:{t:Sequence,a:{Element$Sequence:mut$([tuple$.$$targs$$.Element$Tuple,$bok4ze$.Other$withTrailing])}},Element$Tuple:mut$([tuple$.$$targs$$.Element$Tuple,$bok4ze$.Other$withTrailing])});};tuple$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['First$Tuple',mkseq$({t:'u',l:['Element$Tuple','Other$withTrailing']},2)]},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Tuple,tp:{Other$withTrailing:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:withTrailing'),$_native()];},d:['$','Tuple','$m','withTrailing']};};tuple$.append=function($ca,$udsx4e$){var tuple$=this;return Tuple(tuple$.first,tuple$.rest.append($ca,{Other$append:$udsx4e$.Other$append}),{First$Tuple:tuple$.$$targs$$.First$Tuple,Rest$Tuple:{t:Sequential,a:{Element$Sequential:mut$([tuple$.$$targs$$.Element$Tuple,$udsx4e$.Other$append])}},Element$Tuple:mut$([tuple$.$$targs$$.Element$Tuple,$udsx4e$.Other$append])});};tuple$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['First$Tuple',mkseq$({t:'u',l:['Element$Tuple','Other$append']},1)]},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Tuple,tp:{Other$append:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:append'),$_native()];},d:['$','Tuple','$m','append']};};})(Tuple.$$.prototype);}
return Tuple;}
ex$.$init$Tuple=$init$Tuple;$init$Tuple();Tuple.inst$$=function($cb){var tuple$=new Tuple.$$;
set_type_args(tuple$,{Element$Tuple:$cb.$$targs$$.Type$Class.a.Element$Tuple,First$Tuple:$cb.$$targs$$.Type$Class.a.First$Tuple,Rest$Tuple:$cb.$$targs$$.Type$Class.a.Rest$Tuple});
set_type_args(tuple$,{Element$Sequence:tuple$.$$targs$$.Element$Tuple,Element$Sequential:tuple$.$$targs$$.Element$Tuple,Element$List:tuple$.$$targs$$.Element$Tuple,Element$Collection:tuple$.$$targs$$.Element$Tuple,Element$Iterable:tuple$.$$targs$$.Element$Tuple,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:tuple$.$$targs$$.Element$Tuple,Element$Ranged:tuple$.$$targs$$.Element$Tuple,Subrange$Ranged:{t:List,a:{Element$List:tuple$.$$targs$$.Element$Tuple}},Index$Ranged:{t:Integer}});
return tuple$;};Tuple.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Tuple.first')return o.first_;else if(n==='ceylon.language::Tuple.rest')return o.rest_;else throw new TypeError('unknown attribute');};Tuple.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Tuple.first')o.first_=i;
else if(n==='ceylon.language::Tuple.rest')o.rest_=i;
else throw new TypeError('unknown attribute');};Tuple.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getFirst)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getRest))];};var $bz;function tpl$(elems,spread){
if (spread!==undefined) {
if (is$(spread,{t:Sequential})) {
if (spread.size===0)spread=undefined;
} else {
var e;
for (var iter=spread.iterator();(e=iter.next())!==finished();) {
elems.push(e);
}
spread=undefined;
}
}
if (elems.length===0&&(spread===undefined||spread.size===0))return empty();
var types=[];
for (var i=0; i < elems.length; i++){
var e=elems[i];
if (e===null) {
types.push({t:Null});
} else if (e===undefined) {
types.push({t:Anything});
} else if (e.getT$all && e.getT$name) {
var _et={t:e.getT$all()[e.getT$name()]};
if (e.$$targs$$)_et.a=e.$$targs$$;
types.push(_et);
} else {
console.log("Tuple: WTF do I use for the type of " + e);
types.push({t:Anything});
}
}
types={t:'T',l:types};
$init$tpl$();
var that=new tpl$.$$;
that.$$targs$$=types;
$_Object(that);
var _t=types.l.length===1?types.l[0]:{t:'u',l:types.l};
Sequence({Element$Sequence:_t},that);
elems.$$targs$$={Element$Tuple:_t,First$Tuple:types.l[0],Element$Iterable:_t,
Element$Sequential:_t,Element$List:_t,Element$Array:_t,Element$Sequence:_t,Absent$Iterable:{t:Nothing},
Element$Collection:_t,Key$Correspondence:{t:Integer},Item$Correspondence:_t};
set_type_args(that,elems.$$targs$$,Tuple);
that.$$targs$$.Element$Tuple=_t;
that.$$targs$$.First$Tuple=types.l[0];
if (spread!==undefined) {
that.$$targs$$.Rest$Tuple={t:Sequence,a:_t};
} else if (types.l.length===1) {
that.$$targs$$.Rest$Tuple={t:Empty};
} else {
that.$$targs$$.Rest$Tuple={t:'T',l:_t.l.slice(1)};
}
that.first_=elems[0];
that.elem$=elems;
if (spread!==undefined) {
that.sp$=spread;
}
that.t$=_t;
that.tps$=types;
return that;
}
function $init$tpl$(){
if (tpl$.$$===undefined) {
initTypeProto(tpl$,'ceylon.language::Tuple',$init$Tuple());
(function(tuple) {
tuple.getFromFirst=function(i){
if (this.sp$ && i>=this.elem$.length) {
return this.sp$.getFromFirst(i-this.elem$.length);
}
return this.elem$[i];
};
tuple.getFromFirst.$crtmm$=Tuple.$$.prototype.getFromFirst.$crtmm$;
tuple.iterator=function(){
if (this.sp$) {
return ChainedIterator($arr$(this.elem$,this.t$),this.sp$,{Element$ChainedIterator:this.tps$,Other$ChainedIterator:this.sp$.$$targs$$.Element$Sequential});
}
var i=0,e=this.elem$;
return for$iter(function(){
if (i===e.length)return finished();
var r=e[i++];
return r===undefined?null:r;
},{Element$Iterator:this.t$});
}
tuple.iterator.$crtmm$=Tuple.$$.prototype.iterator.$crtmm$;
tuple.contains=function(i) { return this.elem$.contains(i) || (this.sp$&&this.sp$.contains(i)) || false; }
tuple.contains.$crtmm$=Tuple.$$.prototype.contains.$crtmm$;
tuple.count=function(f){
var c=0;
for (var i=0;i<this.elem$.length;i++) {
if (f(this.elem$[i])) {
c++;
}
}
if (this.sp$)c+=this.sp$.count(f);
return c;
};
tuple.count.$crtmm$=Tuple.$$.prototype.count.$crtmm$;
tuple.select=function(f){
var a=[];
for (var i=0;i<this.elem$.length;i++) {
if (f(this.elem$[i])) {
a.push(this.elem$[i]);
}
}
if (this.sp$)for (i=0;i<this.sp$.size;i++) {
if (f(this.sp$.getFromFirst(i)))a.push(this.sp$.getFromFirst(i));
}
return a.$sa$(this.t$);
};
tuple.select.$crtmm$=Tuple.$$.prototype.select.$crtmm$;
tuple.$_filter=function(f){
var elems=this.elem$;
var spr=this.sp$;
return for$(function(){
var i=0;
return function(){
while (i<elems.length) {
var e=elems[i];
i++;
if (f(e))return e;
}
if (spr) {
while(i<elems.length+spr.size) {
var e=spr.getFromFirst(i-elems.length-1);
i++;
if (f(e))return e;
}
}
return finished();
};
},{Element$Iterable:this.t$,Absent$Iterable:{t:Null}});
};
tuple.$_filter.$crtmm$=Tuple.$$.prototype.$_filter.$crtmm$;
tuple.collect=function(f,$m){
var a=new Array(this.elem$.length+(this.sp$?this.sp$.size:0));
var j=0;
for (var i=0;i<this.elem$.length;i++) {
a[j++]=f(this.elem$[i]);
}
if (this.sp$)for (i=0;i<this.sp$.size;i++) {
a[j++]=f(this.sp$.getFromFirst(i));
}
return a.$sa$($m.Result$collect);
};
tuple.collect.$crtmm$=Tuple.$$.prototype.collect.$crtmm$;
tuple.$_map=function(f,$m){
var elems=this.elem$;
var spr=this.sp$;
return for$(function(){
var i=0;
return function(){
if (i<elems.length) {
i++;
return f(elems[i-1]);
}
if (spr && elems.length+spr.size>i) {
i++;
return f(spr.getFromFirst(i-elems.length-1));
}
return finished();
};
},{Element$Iterable:$m.Result$map,Absent$Iterable:{t:Null}});
for (var i=0;i<this.elem$.length;i++) {
a[j++]=f(this.elem$[i]);
}
if (this.sp$)for (i=0;i<this.sp$.size;i++) {
a[j++]=f(this.sp$.getFromFirst(i));
}
};
tuple.$_map.$crtmm$=Tuple.$$.prototype.$_map.$crtmm$;
tuple.withLeading=function(a,b){
var e2 = this.elem$.slice(0); e2.unshift(a);
var t2 = this.tps$.l.slice(0); t2.unshift(b.Other$withLeading);
return tpl$(e2,this.sp$);
}
tuple.withLeading.$crtmm$=Tuple.$$.prototype.withLeading.$crtmm$;
tuple.span=function(a,b){//from,to
if (this.sp$) {
if (a>=this.elem$.length&&b>=this.elem$.length){
return this.sp$.span(a-this.elem$.length,b-this.elem$.length);
}
if (b>=this.elem$.length) {
var s1=this.elem$.slice(a);
var s2=this.sp$.spanTo(b-this.elem$.length);
return $arr$(s1,this.t$).chain(s2,
{Other$chain:this.sp$.$$targs$$.Element$Sequence,OtherAbsent$chain:{t:Nothing}}).sequence();
}
if (a>=this.elem$.length) {
var s1=this.sp$.span(a-this.elem$.length,0);
var s2=$arr$(this.elem$,this.t$).span(this.elem$.length-1,b)
return s1.chain(s2,{Other$chain:this.tps$,OtherAbsent$chain:{t:Nothing}}).sequence();
}
}
return $arr$(this.elem$,this.t$).span(a,b);
}
tuple.span.$crtmm$=Tuple.$$.prototype.span.$crtmm$;
tuple.spanTo=function(x){
if (this.sp$) {
if (x<0)return empty();
return this.span(0,x);
}
return $arr$(this.elem$,this.t$).spanTo(x);
}
tuple.spanTo.$crtmm$=Tuple.$$.prototype.spanTo.$crtmm$;
tuple.spanFrom=function(x){
if (x<=0)return this;
if (this.sp$) {
if (x>=this.elem$.length) {
return this.sp$.spanFrom(x-this.elem$.length);
} else if (x<0) {
return this;
}
return $arr$(this.elem$.slice(x),this.t$).chain(this.sp$,{Other$chain:this.sp$.$$targs$$.Element$Sequence,OtherAbsent$chain:{t:Nothing}}).sequence();
}
var r=this.elem$.slice(x);
return r.size===0?empty():tpl$(r);
}
tuple.spanFrom.$crtmm$=Tuple.$$.prototype.spanFrom.$crtmm$;
tuple.measure=function(a,b){//from,length
if(b===0)return empty();
if (this.sp$) {
if (a>=this.elem$.length) {
var m1=this.sp$.measure(a-this.elem$.length,b);
if (b>0) {
return m1;
} else {
console.log("missing tpl.measure with negative length");
}
}
if (b>0 && a+b-1>=this.elem$.length) {
var m1=$arr$(this.elem$,this.t$).measure(a,this.elem$.length-a);
var m2=this.sp$.measure(0,b-m1.size);
return m1.chain(m2,{Other$chain:this.sp$.$$targs$$.Element$Sequence,OtherAbsent$chain:{t:Nothing}}).sequence();
}
}
return $arr$(this.elem$,this.t$).measure(a,b);
}
tuple.measure.$crtmm$=Tuple.$$.prototype.measure.$crtmm$;
tuple.equals=function(o){
if (this.sp$) {
if (!is$(o,{t:Sequential}))return false;
if (!o.size===this.size)return false;
var oi=o.iterator();
var ot=this.iterator();
var ni=oi.next();
var nt=ot.next();
while (ni!==finished()) {
if (!ni.equals(nt))return false;
ni=oi.next();
nt=ot.next();
}
return true;
}
return $arr$(this.elem$,this.t$).equals(o);
}
tuple.equals.$crtmm$=List.$$.prototype.equals.$crtmm$;
tuple.withTrailing=function(a,b){
if (this.sp$) {
return tpl$(this.elem$,this.sp$.withTrailing(a,b));
}
var e2=this.elem$.slice(0);e2.push(a);
var t2=this.tps$.l.slice(0);t2.push(b.Other$withTrailing);
return tpl$(e2);
}
tuple.withTrailing.$crtmm$=Sequential.$$.prototype.withTrailing.$crtmm$;
tuple.longerThan=function(i){return this.elem$.length>i;}
tuple.longerThan.$crtmm$=Iterable.$$.prototype.longerThan.$crtmm$;
tuple.shorterThan=function(i){return this.elem$.length<i;}
tuple.shorterThan.$crtmm$=Iterable.$$.prototype.shorterThan.$crtmm$;
atr$(tuple,'hash',function(){
return $arr$(this.elem$,this.t$).hash+(this.sp$?this.sp$.hash:0);
},undefined,List.$$.prototype.$prop$getHash.$crtmm$);
atr$(tuple,'rest',function(){
return this.elem$.length===1?this.sp$||empty():tpl$(this.elem$.slice(1),this.sp$);
},undefined,Tuple.$$.prototype.$prop$getRest.$crtmm$);
atr$(tuple,'size',function(){
return this.elem$.length+(this.sp$?this.sp$.size:0);
},undefined,Tuple.$$.prototype.$prop$getSize.$crtmm$);
atr$(tuple,'lastIndex',function(){
return this.elem$.length-1+(this.sp$?this.sp$.size:0);
},undefined,Tuple.$$.prototype.$prop$getLastIndex.$crtmm$);
atr$(tuple,'last',function(){
return this.sp$?this.sp$.last:this.elem$[this.elem$.length-1];
},undefined,Tuple.$$.prototype.$prop$getLast.$crtmm$);
atr$(tuple,'string',function(){
return '['+commaList($arr$(this.elem$,this.t$))+(this.sp$?', '+commaList(this.sp$):'')+']';
},undefined,Tuple.$$.prototype.$prop$getString.$crtmm$);
tuple.nativeArray=function(){
if (this.sp$) {
var e=new Array(this.elem$.length+this.sp$.size);
for (var i=0;i<this.elem$.length;i++) {
e[i]=this.elem$[i];
}
var elem;for(var iter=this.sp$.iterator();(elem=iter.next())!==finished();) {
e[i++]=elem;
}
return e;
}
return this.elem$.slice(0);
};
tuple.append=function(e){
var na=this.nativeArray();
for (var i=0;i<e.size;i++) {
na.push(e.$_get(i));
}
return tpl$(na);
};
})(tpl$.$$.prototype);
}
}
$init$tpl$();
ex$.tpl$=tpl$;
function retpl$(t) { //receives {t:'T',l:[...]}
if (t.t!=='T')return t;
var e;
var r={t:Empty};
for (var i=t.l.length-1;i>=0;i--){
var f=retpl$(t.l[i]);
var e=(r.a&&r.a.Element$Tuple)||f;
if (r.a&&r.a.Element$Tuple){
if (e.l) {
var l2=[];for(var j=0;j<e.l.length;j++)l2.push(e.l[j]);
l2.unshift(f);
e={t:'u',l:l2};
} else {
e = {t:'u',l:[f,e]};
}
}
r={t:Tuple,a:{First$Tuple:f,Element$Tuple:e,Rest$Tuple:r}};
}
return r;
}
function detpl$(t) {
if (t.t==='T')return t;
if (t.t===Empty)return t;
if (t.t==='u') {
for (var i=0;i<t.l.length;i++) {
if (t.l[i].t==='T')return t.l[i];
}
}
function stet(args,count) {
if (t.t==='u') {
if (t.l.length!==2)return null;
var caseA=t.l[0];
var caseB=t.l[1];
if (caseA.t===Empty && caseB.t===Tuple)return stet(caseB,count);
if (caseB.t===Empty && caseA.t===Tuple)return stet(caseA,count);
return null;
}
if (args.t===Tuple) {
var first=args.a.First$Tuple;
var rest=args.a.Rest$Tuple;
var ret=stet(rest,count+1);
if (ret===null)return null;
ret[count]=first;
return ret;
}
if (args.t===Empty) {
var ret=Array(count);
for(var i=0;i<count;i++)ret[i]=null;
return ret;
}
if (args.t===Sequential || args.t===Sequence || args.t===Range) {
var ret=Array(count+1);
for (var i=0;i<count;i++)ret[i]=null;
ret[count]=args;
return ret;
}
return null;
}
var simpleResult=stet(t,0);
if (simpleResult)return {t:'T',l:simpleResult};
if (t.a && t.a.First$Tuple && t.a.Element$Tuple && t.a.Rest$Tuple) {
var result = detpl$(t.a.Rest$Tuple);
if (result.l===undefined)return result;
var arg=t.a.First$Tuple || {t:Anything};
result.l.unshift(arg);
return result;
} else if (t.a && (t.a.Element$Sequential || t.a.Element$Sequence)) {
return t.a.Element$Sequential || t.a.Element$Sequence;
}
throw new TypeError("detpl$ requires a proper Tuple {t:Tuple,a:{First$Tuple:F,Element$Tuple:E,Rest$Tuple:R}}");
}
function ElementImpl$impl(index,elementImpl$){$init$ElementImpl$impl();
if(elementImpl$===undefined)elementImpl$=new ElementImpl$impl.$$;
elementImpl$.index_=index;Element$serialization(elementImpl$);return elementImpl$;}
ElementImpl$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'index',mt:'prm',$t:{t:Integer},pa:3}],sts:[{t:Element$serialization}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:ElementImpl')];},d:['ceylon.language.impl','ElementImpl']};};
ex$.ElementImpl$impl=ElementImpl$impl;function $init$ElementImpl$impl(){if(ElementImpl$impl.$$===undefined){initTypeProto(ElementImpl$impl,'ceylon.language.impl::ElementImpl',Basic,$init$Element$serialization());
(function(elementImpl$){atr$(elementImpl$,'index',function(){return this.index_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$at','index']};});elementImpl$.referred=function($cc){var elementImpl$=this;return reach$impl().getAnything($cc,elementImpl$);};elementImpl$.referred.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$m','referred']};};atr$(elementImpl$,'string',function(){var elementImpl$=this;return "Element [index=".plus(elementImpl$.index.string).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$at','string']};});atr$(elementImpl$,'hash',function(){var elementImpl$=this;return elementImpl$.index;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$at','hash']};});elementImpl$.equals=function($cd){var elementImpl$=this;var $ce;if(is$(($ce=$cd),{t:ElementImpl$impl})){return ((elementImpl$===$ce)||((elementImpl$.index).valueOf()==($ce.index).valueOf()));}
else{return false;}
};elementImpl$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$m','equals']};};})(ElementImpl$impl.$$.prototype);}
return ElementImpl$impl;}
ex$.$init$ElementImpl$impl=$init$ElementImpl$impl;$init$ElementImpl$impl();function MemberImpl$impl$$c(memberImpl$){Member$serialization(memberImpl$);}
function MemberImpl$impl(){return MemberImpl$impl_$c$.apply(undefined,arguments);}
function MemberImpl$impl_$c$$$a($cf,memberImpl$){var $cg;asrt$((is$(($cg=$cf),{t:ValueDeclaration$meta$declaration})),"Classes with specified methods cannot be serialized: \'is ValueDeclaration attribute\' at MemberImpl.ceylon (15:14-15:44)",'14:8-15:45','MemberImpl.ceylon');
memberImpl$.attribute_=$cg;atr$(memberImpl$,'attribute',function(){return this.attribute_;},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','attribute']};});return memberImpl$;};function MemberImpl$impl_$c$($cf,memberImpl$){$init$MemberImpl$impl();
if(memberImpl$===undefined)memberImpl$=new MemberImpl$impl.$$;
MemberImpl$impl$$c(memberImpl$);
MemberImpl$impl_$c$$$a($cf,memberImpl$);return memberImpl$;};MemberImpl$impl_$c$.$crtmm$=function(){return{mod:$CCMM$,ps:[{nm:'attribute',mt:'prm',$t:{t:FunctionOrValueDeclaration$meta$declaration}}],$cont:MemberImpl$impl,pa:1,d:['ceylon.language.impl','MemberImpl','$cn','$def']};};MemberImpl$impl.MemberImpl$impl_$c$=MemberImpl$impl_$c$;ex$.MemberImpl$impl_$c$=MemberImpl$impl_$c$;MemberImpl$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'attribute',mt:'prm',$t:{t:FunctionOrValueDeclaration$meta$declaration}}],sts:[{t:Member$serialization}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:MemberImpl')];},d:['ceylon.language.impl','MemberImpl']};};
ex$.MemberImpl$impl=MemberImpl$impl;function $init$MemberImpl$impl(){if(MemberImpl$impl.$$===undefined){initTypeProto(MemberImpl$impl,'ceylon.language.impl::MemberImpl',Basic,$init$Member$serialization());
(function(memberImpl$){atr$(memberImpl$,'attribute',function(){return this.attribute_;},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','attribute']};});memberImpl$.referred=function($ch){var memberImpl$=this;return reach$impl().getAnything($ch,memberImpl$);};memberImpl$.referred.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Anything},{t:UninitializedLateValue$serialization}]},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$m','referred']};};atr$(memberImpl$,'string',function(){var memberImpl$=this;return "Member [attribute=".plus(memberImpl$.attribute.string).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','string']};});atr$(memberImpl$,'hash',function(){var memberImpl$=this;return memberImpl$.attribute.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','hash']};});memberImpl$.equals=function($ci){var memberImpl$=this;var $cj;if(is$(($cj=$ci),{t:MemberImpl$impl})){return ((memberImpl$===$cj)||memberImpl$.attribute.equals($cj.attribute));}
else{return false;}
};memberImpl$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$m','equals']};};})(MemberImpl$impl.$$.prototype);}
return MemberImpl$impl;}
ex$.$init$MemberImpl$impl=$init$MemberImpl$impl;$init$MemberImpl$impl();function BaseIterable$impl($$targs$$,baseIterable$){$init$BaseIterable$impl();
if(baseIterable$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseIterable"),'?','?')
set_type_args(baseIterable$,$$targs$$);
$_Object(baseIterable$);Iterable({Absent$Iterable:$$targs$$.Absent$BaseIterable/*ORALE!Absent inv pero Absent var*/,Element$Iterable:$$targs$$.Element$BaseIterable/*ORALE!Element inv pero Element var*/},baseIterable$);return baseIterable$;}
BaseIterable$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseIterable:{},Absent$BaseIterable:{sts:[{t:Null}]}},sts:[{t:Iterable,a:{Absent$Iterable:'Absent$BaseIterable',Element$Iterable:'Element$BaseIterable'}}],pa:257,d:['ceylon.language.impl','BaseIterable']};};
ex$.BaseIterable$impl=BaseIterable$impl;function $init$BaseIterable$impl(){if(BaseIterable$impl.$$===undefined){initTypeProto(BaseIterable$impl,'ceylon.language.impl::BaseIterable',$init$$_Object(),$init$Iterable());
}
return BaseIterable$impl;}
ex$.$init$BaseIterable$impl=$init$BaseIterable$impl;$init$BaseIterable$impl();function BaseIterator$impl($$targs$$,baseIterator$){$init$BaseIterator$impl();
if(baseIterator$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseIterator"),'?','?')
set_type_args(baseIterator$,$$targs$$);
$_Object(baseIterator$);Iterator({Element$Iterator:$$targs$$.Element$BaseIterator/*ORALE!Element inv pero Element var*/},baseIterator$);return baseIterator$;}
BaseIterator$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseIterator:{}},sts:[{t:Iterator,a:{Element$Iterator:'Element$BaseIterator'}}],pa:257,d:['ceylon.language.impl','BaseIterator']};};
ex$.BaseIterator$impl=BaseIterator$impl;function $init$BaseIterator$impl(){if(BaseIterator$impl.$$===undefined){initTypeProto(BaseIterator$impl,'ceylon.language.impl::BaseIterator',$init$$_Object(),$init$Iterator());
}
return BaseIterator$impl;}
ex$.$init$BaseIterator$impl=$init$BaseIterator$impl;$init$BaseIterator$impl();function BaseMap$impl($$targs$$,baseMap$){$init$BaseMap$impl();
if(baseMap$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseMap"),'?','?')
set_type_args(baseMap$,$$targs$$);
$_Object(baseMap$);Map({Key$Map:$$targs$$.Key$BaseMap/*ORALE!Key inv pero Key var*/,Item$Map:$$targs$$.Item$BaseMap/*ORALE!Item inv pero Item var*/},baseMap$);return baseMap$;}
BaseMap$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Key$BaseMap:{sts:[{t:$_Object}]},Item$BaseMap:{}},sts:[{t:Map,a:{Key$Map:'Key$BaseMap',Item$Map:'Item$BaseMap'}}],pa:257,d:['ceylon.language.impl','BaseMap']};};
ex$.BaseMap$impl=BaseMap$impl;function $init$BaseMap$impl(){if(BaseMap$impl.$$===undefined){initTypeProto(BaseMap$impl,'ceylon.language.impl::BaseMap',$init$$_Object(),$init$Map());
}
return BaseMap$impl;}
ex$.$init$BaseMap$impl=$init$BaseMap$impl;$init$BaseMap$impl();function BaseList$impl($$targs$$,baseList$){$init$BaseList$impl();
if(baseList$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseList"),'?','?')
set_type_args(baseList$,$$targs$$);
$_Object(baseList$);SearchableList({Element$SearchableList:$$targs$$.Element$BaseList},baseList$);return baseList$;}
BaseList$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseList:{}},sts:[{t:SearchableList,a:{Element$SearchableList:'Element$BaseList'}}],pa:2305,d:['ceylon.language.impl','BaseList']};};
ex$.BaseList$impl=BaseList$impl;function $init$BaseList$impl(){if(BaseList$impl.$$===undefined){initTypeProto(BaseList$impl,'ceylon.language.impl::BaseList',$init$$_Object(),$init$SearchableList());
(function(baseList$){})(BaseList$impl.$$.prototype);}
return BaseList$impl;}
ex$.$init$BaseList$impl=$init$BaseList$impl;$init$BaseList$impl();BaseList$impl.inst$$=function($ck){var baseList$=new BaseList$impl.$$;
set_type_args(baseList$,{Element$BaseList:$ck.$$targs$$.Type$Class.a.Element$BaseList});
set_type_args(baseList$,{Element$SearchableList:baseList$.$$targs$$.Element$BaseList,Element$List:baseList$.$$targs$$.Element$BaseList,Element$Collection:baseList$.$$targs$$.Element$BaseList,Element$Iterable:baseList$.$$targs$$.Element$BaseList,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:baseList$.$$targs$$.Element$BaseList,Element$Ranged:baseList$.$$targs$$.Element$BaseList,Subrange$Ranged:{t:List,a:{Element$List:baseList$.$$targs$$.Element$BaseList/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return baseList$;};BaseList$impl.ser$get$=function(ref,o){throw new TypeError('unknown attribute');};BaseList$impl.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');
throw new TypeError('unknown attribute');};BaseList$impl.ser$refs$=function(o){return [];};function BaseCharacterList$impl(baseCharacterList$){$init$BaseCharacterList$impl();
if(baseCharacterList$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseCharacterList"),'?','?')
baseCharacterList$.$$targs$$={Element$SearchableList:{t:Character}};$_Object(baseCharacterList$);SearchableList({Element$SearchableList:{t:Character}},baseCharacterList$);return baseCharacterList$;}
BaseCharacterList$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],sts:[{t:SearchableList,a:{Element$SearchableList:{t:Character}}}],pa:257,d:['ceylon.language.impl','BaseCharacterList']};};
ex$.BaseCharacterList$impl=BaseCharacterList$impl;function $init$BaseCharacterList$impl(){if(BaseCharacterList$impl.$$===undefined){initTypeProto(BaseCharacterList$impl,'ceylon.language.impl::BaseCharacterList',$init$$_Object(),$init$SearchableList());
}
return BaseCharacterList$impl;}
ex$.$init$BaseCharacterList$impl=$init$BaseCharacterList$impl;$init$BaseCharacterList$impl();function BaseSequence$impl($$targs$$,baseSequence$){$init$BaseSequence$impl();
if(baseSequence$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseSequence"),'?','?')
set_type_args(baseSequence$,$$targs$$);
$_Object(baseSequence$);Sequence({Element$Sequence:$$targs$$.Element$BaseSequence/*ORALE!Element inv pero Element var*/},baseSequence$);return baseSequence$;}
BaseSequence$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseSequence:{}},sts:[{t:Sequence,a:{Element$Sequence:'Element$BaseSequence'}}],pa:2305,d:['ceylon.language.impl','BaseSequence']};};
ex$.BaseSequence$impl=BaseSequence$impl;function $init$BaseSequence$impl(){if(BaseSequence$impl.$$===undefined){initTypeProto(BaseSequence$impl,'ceylon.language.impl::BaseSequence',$init$$_Object(),$init$Sequence());
(function(baseSequence$){})(BaseSequence$impl.$$.prototype);}
return BaseSequence$impl;}
ex$.$init$BaseSequence$impl=$init$BaseSequence$impl;$init$BaseSequence$impl();BaseSequence$impl.inst$$=function($cl){var baseSequence$=new BaseSequence$impl.$$;
set_type_args(baseSequence$,{Element$BaseSequence:$cl.$$targs$$.Type$Class.a.Element$BaseSequence});
set_type_args(baseSequence$,{Element$Sequence:baseSequence$.$$targs$$.Element$BaseSequence,Element$Sequential:baseSequence$.$$targs$$.Element$BaseSequence,Element$List:baseSequence$.$$targs$$.Element$BaseSequence,Element$Collection:baseSequence$.$$targs$$.Element$BaseSequence,Element$Iterable:baseSequence$.$$targs$$.Element$BaseSequence,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:baseSequence$.$$targs$$.Element$BaseSequence,Element$Ranged:baseSequence$.$$targs$$.Element$BaseSequence,Subrange$Ranged:{t:List,a:{Element$List:baseSequence$.$$targs$$.Element$BaseSequence/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return baseSequence$;};BaseSequence$impl.ser$get$=function(ref,o){throw new TypeError('unknown attribute');};BaseSequence$impl.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');
throw new TypeError('unknown attribute');};BaseSequence$impl.ser$refs$=function(o){return [];};function $cm$impl(){var outerImpl$=new $cm$impl.$$;Outer$serialization(outerImpl$);outerImpl$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$cm$impl,pa:3,d:['ceylon.language.impl','outerImpl','$at','string']};}};outerImpl$.$prop$getString.get=function(){return string};return outerImpl$;};$cm$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Outer$serialization}],d:['ceylon.language.impl','outerImpl']};};function $init$outerImpl$impl(){if($cm$impl.$$===undefined){initTypeProto($cm$impl,'ceylon.language.impl::outerImpl',Basic,$init$Outer$serialization());
(function(outerImpl$){outerImpl$.referred=function($co){var outerImpl$=this;return reach$impl().getObject($co,outerImpl$);};outerImpl$.referred.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:$cm$impl,pa:3,an:function(){return[doc$($CCMM$,'ceylon.language.impl:outerImpl:$m:referred')];},d:['ceylon.language.impl','outerImpl','$m','referred']};};atr$(outerImpl$,'string',function(){return "Outer";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$cm$impl,pa:3,d:['ceylon.language.impl','outerImpl','$at','string']};});})($cm$impl.$$.prototype);}
return $cm$impl;}
ex$.$init$outerImpl$impl=$init$outerImpl$impl;$init$outerImpl$impl();var $cp;function outerImpl$impl(){if($cp===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'outerImpl\' before it was set"),'5:0-14:0','outerImpl.ceylon');if($cp===undefined){$cp=INIT$;$cp=$init$outerImpl$impl()();$cp.$crtmm$=outerImpl$impl.$crtmm$;}
return $cp;}
ex$.outerImpl$impl=outerImpl$impl;outerImpl$impl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$outerImpl$impl()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:outerImpl')];},d:['ceylon.language.impl','outerImpl']};};$prop$getOuterImpl$impl=outerImpl$impl;ex$.$prop$getOuterImpl$impl=$prop$getOuterImpl$impl;ex$.$pkg$ans$ceylon$language$impl=function(){return[doc$($CCMM$,'ceylon.language.impl','$pkg-anns'),by(["Stephane Epardaud"].$sa$({t:$_String}))];};function $cq$impl(){var reach$=new $cq$impl.$$;return reach$;};$cq$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['ceylon.language.impl','reach']};};function $init$reach$impl(){if($cq$impl.$$===undefined){initTypeProto($cq$impl,'ceylon.language.impl::reach',Basic);
(function(reach$){reach$.references=function references(o) {
var isarr=is$(o,{t:$_Array});
var idx1=-1,idx2=0;
var refs = o.getT$all()[o.getT$name()].ser$refs$(o);
return for$iter(function(){
idx1++;
if (refs.length>idx1) {
return refs[idx1];
} else if (isarr && idx2<o.size) {
var r=ElementImpl$impl(idx2);
idx2++;
return r;
}
return finished();
},{Element$Iterator:{t:ReachableReference$serialization}});
}
reach$.references.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:$cq$impl,pa:1,an:function(){return[$_native()];},d:['ceylon.language.impl','reach','$m','references']};};reach$.getAnything=function getAnything(o,ref) {
return o.getT$all()[o.getT$name()].ser$get$(ref,o);
}
reach$.getAnything.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}},{nm:'ref',mt:'prm',$t:{t:ReachableReference$serialization}}],$cont:$cq$impl,pa:1,an:function(){return[$_native()];},d:['ceylon.language.impl','reach','$m','getAnything']};};reach$.getObject=function getObject(o,ref) {
return o.getT$all()[o.getT$name()].ser$get$(ref,o);
}
reach$.getObject.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}},{nm:'ref',mt:'prm',$t:{t:ReachableReference$serialization}}],$cont:$cq$impl,pa:1,an:function(){return[$_native()];},d:['ceylon.language.impl','reach','$m','getObject']};};atr$(reach$,'string',function(){var reach$=this;return "reach";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$cq$impl,pa:3,d:['ceylon.language.impl','reach','$at','string']};});})($cq$impl.$$.prototype);}
return $cq$impl;}
ex$.$init$reach$impl=$init$reach$impl;$init$reach$impl();var $cs;function reach$impl(){if($cs===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'reach\' before it was set"),'3:0-10:0','reach.ceylon');if($cs===undefined){$cs=INIT$;$cs=$init$reach$impl()();$cs.$crtmm$=reach$impl.$crtmm$;}
return $cs;}
ex$.reach$impl=reach$impl;reach$impl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$reach$impl()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:reach'),$_native()];},d:['ceylon.language.impl','reach']};};$prop$getReach$impl=reach$impl;ex$.$prop$getReach$impl=$prop$getReach$impl;function rethrow$impl($ct){throw wrapexc($ct,'5:4-5:11','ceylon/language/impl/rethrow.ceylon');}
ex$.rethrow$impl=rethrow$impl;rethrow$impl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'x',mt:'prm',$t:{t:Throwable}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:rethrow'),by(["Stephane Epardaud"].$sa$({t:$_String}))];},d:['ceylon.language.impl','rethrow']};};
function Numeric($$targs$$,numeric$){set_type_args(numeric$,$$targs$$,Numeric);Invertible({Other$Invertible:$$targs$$.Other$Numeric},numeric$);}
Numeric.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Numeric:{sts:[{t:Numeric,a:{Other$Numeric:'Other$Numeric'}}]}},sts:[{t:Invertible,a:{Other$Invertible:'Other$Numeric'}}],of:['Other$Numeric'],pa:1,an:function(){return[doc$($CCMM$,'$:Numeric'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),$_Number)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Numeric']};};
ex$.Numeric=Numeric;function $init$Numeric(){if(Numeric.$$===undefined){initTypeProtoI(Numeric,'ceylon.language::Numeric',$init$Invertible());
(function(numeric$){numeric$.times={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Numeric',ps:[{nm:'other',mt:'prm',$t:'Other$Numeric'}],$cont:Numeric,pa:5,an:function(){return[doc$($CCMM$,'$:Numeric:$m:times')];},d:['$','Numeric','$m','times']};}};numeric$.divided={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Numeric',ps:[{nm:'other',mt:'prm',$t:'Other$Numeric'}],$cont:Numeric,pa:5,an:function(){return[doc$($CCMM$,'$:Numeric:$m:divided'),see("Integral.remainder","infinity")];},d:['$','Numeric','$m','divided']};}};})(Numeric.$$.prototype);}
return Numeric;}
ex$.$init$Numeric=$init$Numeric;$init$Numeric();function Integral($$targs$$,integral$){set_type_args(integral$,$$targs$$,Integral);$_Number({Other$Number:$$targs$$.Other$Integral},integral$);Enumerable({Other$Enumerable:$$targs$$.Other$Integral},integral$);}
Integral.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Integral:{sts:[{t:Integral,a:{Other$Integral:'Other$Integral'}}]}},sts:[{t:$_Number,a:{Other$Number:'Other$Integral'}},{t:Enumerable,a:{Other$Enumerable:'Other$Integral'}}],of:['Other$Integral'],pa:1,an:function(){return[doc$($CCMM$,'$:Integral'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Integral']};};
ex$.Integral=Integral;function $init$Integral(){if(Integral.$$===undefined){initTypeProtoI(Integral,'ceylon.language::Integral',$init$$_Number(),$init$Enumerable());
(function(integral$){integral$.remainder={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Integral',ps:[{nm:'other',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:5,an:function(){return[doc$($CCMM$,'$:Integral:$m:remainder'),see("Numeric.divided","modulo")];},d:['$','Integral','$m','remainder']};}};integral$.modulo=function($cu){var integral$=this;if(!$cu.positive){throw wrapexc(AssertionError("modulus must be positive: ".plus($cu.string)),'54:12-54:73','ceylon/language/Integral.ceylon');}
var $cv=integral$.remainder($cu);if($cv.negative){return $cv.plus($cu);}
return $cv;};integral$.modulo.$crtmm$=function(){return{mod:$CCMM$,$t:'Other$Integral',ps:[{nm:'modulus',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:9,an:function(){return[doc$($CCMM$,'$:Integral:$m:modulo'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Numeric().$$.prototype.divided),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Integral().$$.prototype.remainder)].$sa$({t:FunctionDeclaration$meta$declaration})),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"If the modulus is not strictly positive")];},d:['$','Integral','$m','modulo']};};integral$.$prop$getZero={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Integral,pa:5,an:function(){return[doc$($CCMM$,'$:Integral:$at:zero')];},d:['$','Integral','$at','zero']};}};integral$.$prop$getUnit={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Integral,pa:5,an:function(){return[doc$($CCMM$,'$:Integral:$at:unit')];},d:['$','Integral','$at','unit']};}};integral$.divides=function($cw){var integral$=this;return $cw.remainder(integral$).zero;};integral$.divides.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:9,an:function(){return[doc$($CCMM$,'$:Integral:$m:divides')];},d:['$','Integral','$m','divides']};};})(Integral.$$.prototype);}
return Integral;}
ex$.$init$Integral=$init$Integral;$init$Integral();function Scalable($$targs$$,scalable$){set_type_args(scalable$,$$targs$$,Scalable);}
Scalable.$crtmm$=function(){return{mod:$CCMM$,tp:{Scale$Scalable:{dv:'in',sts:[{t:Numeric,a:{Other$Numeric:'Scale$Scalable'}}]},Value$Scalable:{dv:'out',sts:[{t:Scalable,a:{Scale$Scalable:'Scale$Scalable',Value$Scalable:'Value$Scalable'}}]}},of:['Value$Scalable'],pa:1,an:function(){return[doc$($CCMM$,'$:Scalable'),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Scalable']};};
ex$.Scalable=Scalable;function $init$Scalable(){if(Scalable.$$===undefined){initTypeProtoI(Scalable,'ceylon.language::Scalable');
(function(scalable$){scalable$.scale={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Value$Scalable',ps:[{nm:'scalar',mt:'prm',$t:'Scale$Scalable'}],$cont:Scalable,pa:5,an:function(){return[doc$($CCMM$,'$:Scalable:$m:scale')];},d:['$','Scalable','$m','scale']};}};})(Scalable.$$.prototype);}
return Scalable;}
ex$.$init$Scalable=$init$Scalable;$init$Scalable();function $_Number($$targs$$,number$){set_type_args(number$,$$targs$$,$_Number);Numeric({Other$Numeric:$$targs$$.Other$Number},number$);Comparable({Other$Comparable:$$targs$$.Other$Number/*ORALE!Other inv pero Other var*/},number$);}
$_Number.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Number:{sts:[{t:$_Number,a:{Other$Number:'Other$Number'}}]}},sts:[{t:Numeric,a:{Other$Numeric:'Other$Number'}},{t:Comparable,a:{Other$Comparable:'Other$Number'}}],of:['Other$Number'],pa:1,an:function(){return[doc$($CCMM$,'$:Number'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$openClass$jsint()(lmp$(ex$,'$'),Float)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Number']};};
ex$.$_Number=$_Number;function $init$$_Number(){if($_Number.$$===undefined){initTypeProtoI($_Number,'ceylon.language::Number',$init$Numeric(),$init$Comparable());
(function(number$){atr$(number$,'magnitude',function(){var number$=this;return ($cx=(number$.negative?number$.negated:null),nn$($cx)?$cx:number$);},undefined,function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:9,an:function(){return[doc$($CCMM$,'$:Number:$at:magnitude'),aliased(["absolute"].$sa$({t:$_String}))];},d:['$','Number','$at','magnitude']};});atr$(number$,'sign',function(){var number$=this;if(number$.positive){return 1;}
else{if(number$.negative){return (-1);}
else{return 0;}
}
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Number,pa:9,an:function(){return[doc$($CCMM$,'$:Number:$at:sign')];},d:['$','Number','$at','sign']};});number$.$prop$getPositive={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:positive')];},d:['$','Number','$at','positive']};}};number$.$prop$getNegative={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:negative')];},d:['$','Number','$at','negative']};}};number$.$prop$getFractionalPart={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:fractionalPart')];},d:['$','Number','$at','fractionalPart']};}};number$.$prop$getWholePart={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:wholePart')];},d:['$','Number','$at','wholePart']};}};number$.timesInteger={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',ps:[{nm:'integer',mt:'prm',$t:{t:Integer}}],$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$m:timesInteger')];},d:['$','Number','$m','timesInteger']};}};number$.plusInteger={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',ps:[{nm:'integer',mt:'prm',$t:{t:Integer}}],$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$m:plusInteger')];},d:['$','Number','$m','plusInteger']};}};number$.powerOfInteger={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',ps:[{nm:'integer',mt:'prm',$t:{t:Integer}}],$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$m:powerOfInteger'),$_throws("AssertionError","if the exponent is a negative power and this is \nan integral numeric type")];},d:['$','Number','$m','powerOfInteger']};}};})($_Number.$$.prototype);}
return $_Number;}
ex$.$init$$_Number=$init$$_Number;$init$$_Number();var $cx;function toInt(f) {
return (f >= 0) ? Math.floor(f) : Math.ceil(f);
}
function nflt$(n) {
if (n.float$)return true;
return Math.round(n)!=n;
}
function JSNumber(value) {
if (value===parseInt(value)) {
return Integer(value);
}
return Float(value);
}
initExistingType(JSNumber, Number, 'ceylon.language::JSNumber');
JSNumber.$crtmm$=function(){return{nm:'JSNumber',mt:'c',pa:1,
mod:$CCMM$,d:['$','Number']};}
ex$.JSNumber=JSNumber;
var origNumToString = Number.prototype.toString;
inheritProto(JSNumber, $_Object, $_Number, $init$Integral(), $init$Exponentiable());
function Integer(value) {
if (value && value.getT$name && value.getT$name() === 'ceylon.language::Integer') {
return value;
}
var that=Number(value);
that.float$=false;
return that;
}
initTypeProto(Integer, 'ceylon.language::Integer', $_Object,$_Number, JSNumber,
$init$Integral(), $init$Exponentiable(), $init$Binary());
Integer.$crtmm$=function(){return{an:function(){return[shared(),$_native(),$_final()];},mod:$CCMM$,d:['$','Integer']};}
atr$(Integer.$$.prototype,'integer',function(){ return this; },undefined,
function(){return {mod:$CCMM$,$t:{t:Integer},pa:0,$cont:Integer,d:['$','Integer','$at','integer$woput0']};});
function Float(value) {
if (value!==null && value!==undefined && value.getT$name && value.getT$name() === 'ceylon.language::Float') {
return value;
}
var that = new Number(value);
that.float$ = true;
return that;
}
initTypeProto(Float, 'ceylon.language::Float', $_Object,$_Number,$init$Exponentiable(), JSNumber);
Float.$crtmm$=function(){return{pa:97,mod:$CCMM$,d:['$','Float']};}
atr$(Float.$$.prototype,'integer',function(){ return Integer(Math.floor(this)); },undefined,
function(){return {mod:$CCMM$,$t:{t:Integer},pa:65,$cont:Float,d:['$','Float','$at','integer']};});
var JSNum$proto = Number.prototype;
JSNum$proto.getT$all = function() {
return (nflt$(this) ? Float : Integer).$$.T$all;
}
JSNum$proto.getT$name = function() {
return (nflt$(this) ? Float : Integer).$$.T$name;
}
function $specialiseForNumber$(tipo,name,rtmm){
var propname = '$prop$get'+name[0].toUpperCase()+name.substring(1);
if(JSNum$proto[propname]){
var prop = JSNum$proto[propname];
Object.defineProperty(tipo.$$.prototype, name, {get: prop.get, set: prop.set, configurable: true, enumerable: true});
tipo.$$.prototype[propname] = {get: prop.get, set: prop.set, $crtmm$:rtmm};
tipo.$$.prototype[propname].$crtmm$ = rtmm;
}else{
tipo.$$.prototype[name] = function(){ return JSNum$proto[name].call(this, arguments); };
tipo.$$.prototype[name].$crtmm$ = rtmm;
}
}
var mock$flt={},mock$int={};
$_Number({Other$Number:{t:Float}},mock$flt);
$_Number({Other$Number:{t:Integer}},mock$int);
atr$(JSNum$proto,'$$targs$$',function(){
if (!this.$targs$)this.$targs$=(nflt$(this)?mock$flt:mock$int).$$targs$$;
return this.$targs$;
});
JSNum$proto.toString = origNumToString;
atr$(JSNum$proto, 'string', function(){
if (this.fmz$)return "-0.0";
var s=this.toString();
if (s.indexOf('.')<0 && nflt$(this)
&& this != Infinity
&& this != -Infinity
&& !isNaN(this))
s+='.0';
return s;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Object,d:['$','Object','$at','string']};});
$specialiseForNumber$(Integer, 'string', function(){return {mod:$CCMM$,$t:{t:$_String},pa:67,$cont:Integer,d:['$','Integer','$m','string']};})
$specialiseForNumber$(Float, 'string', function(){return {mod:$CCMM$,$t:{t:$_String},pa:67,$cont:Float,d:['$','Float','$m','string']};})
function $addnm$(nm,s) {
var t={t:JSNumber};
if (s===undefined)s=$_Number.$$.prototype[nm];
var d=JSNum$proto[nm];
d.$crtmm$=getrtmm$$(s);
d=d.$crtmm$;
if (typeof(d.$t)==='string')d.$t=t;
if (d.ps) for (var i=0; i < d.ps.length; i++) {
if (typeof(d.ps[i].$t)==='string')d.ps[i].$t=t;
}
}
JSNum$proto.plus = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
return (nflt$(this)||nflt$(other)) ? Float(this+other) : (this+other);
}
$addnm$('plus');
$specialiseForNumber$(Integer, 'plus', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','plus']};})
$specialiseForNumber$(Float, 'plus', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','plus']};})
JSNum$proto.plusInteger = function(other) {
return nflt$(this) ? Float(this+other) : (this+other);
}
$addnm$('plusInteger');
$specialiseForNumber$(Integer, 'plusInteger', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Integer','$m','plusInteger']};})
$specialiseForNumber$(Float, 'plusInteger', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Float','$m','plusInteger']};})
JSNum$proto.minus = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
return (nflt$(this)||nflt$(other)) ? Float(this-other) : (this-other);
}
$addnm$('minus');
$specialiseForNumber$(Integer, 'minus', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','minus']};})
$specialiseForNumber$(Float, 'minus', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','minus']};})
JSNum$proto.times = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
if (this.fmz$)return other.negative?Float(0.0):this;
var fls=nflt$(this)||nflt$(other);
if (fls && this.valueOf()==0 && other.negative) {
var f=Float(0.0);f.fmz$=true;
return f;
}
return fls ? Float(this*other) : (this*other);
}
$addnm$('times');
$specialiseForNumber$(Integer, 'times', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','times']};})
$specialiseForNumber$(Float, 'times', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','times']};})
JSNum$proto.timesInteger = function(other) {
return nflt$(this) ? Float(this*other) : (this*other);
}
$addnm$('timesInteger');
$specialiseForNumber$(Integer, 'timesInteger', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Integer','$m','timesInteger']};})
$specialiseForNumber$(Float, 'timesInteger', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Float','$m','timesInteger']};})
JSNum$proto.divided = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
if (this.fmz$) {
if (other == 0 || other.$_undefined) {
return NaN;
}
return this;
}
var otherFloat=nflt$(other);
if (nflt$(this)||otherFloat) {
var ret = Float(this/other);
if((!this.negative && other.fmz$ && !ret.negative)||(!otherFloat&&ret==-Infinity)){ ret = ret.negated; }
return ret;
}
if (other == 0) {
throw Exception("Division by Zero");
}
return toInt(this/other);
}
$addnm$('divided');
$specialiseForNumber$(Integer, 'divided', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','divided']};})
$specialiseForNumber$(Float, 'divided', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','divided']};})
JSNum$proto.remainder = function(other) {
if (other == 0) {
throw Exception("Division by Zero");
}
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
return this%other;
}
$addnm$('remainder',Integral.$$.prototype.remainder);
$specialiseForNumber$(Integer, 'remainder', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','remainder']};})
JSNum$proto.modulo = function(modulus) {
if (typeof(modulus)!=='number'&&modulus.constructor!==Number)throw new TypeError("Number expected");
if (modulus < 0) {
throw AssertionError("modulus must be positive: "+modulus);
}
var ret = this.remainder(modulus);
if(ret < 0){
return ret + modulus;
}
return ret;
}
$addnm$('modulo',Integral.$$.prototype.modulo);
$specialiseForNumber$(Integer, 'modulo', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','modulo']};})
JSNum$proto.divides=function(o){return o%this===0;}
$specialiseForNumber$(Integer, 'divides', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','divides']};})
JSNum$proto.power = function(exp) {
if (typeof(exp)!=='number'&&exp.constructor!==Number)throw new TypeError("Number expected");
if (nflt$(this)||nflt$(exp)) {
if(this == 1.0)
return this;
if(this == -1.0 && (exp == Infinity || exp == -Infinity))
return Float(1.0);
var ret = Float(Math.pow(this, exp));
if(this == 0.0 && this.fmz$ && exp.fractionalPart == 0 && !exp.wholePart.even)
ret = ret.negated;
return ret;
}
if (exp<0 && this!=1 && this!=-1) {
throw AssertionError("Negative exponent");
}
return toInt(Math.pow(this, exp));
}
$addnm$('power',Exponentiable.$$.prototype.power);
$specialiseForNumber$(Integer, 'power', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','power']};})
$specialiseForNumber$(Float, 'power', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','power']};})
JSNum$proto.powerOfInteger = function(exp) {
if (nflt$(this)) {
if(this == 1.0)
return this;
var ret = Float(Math.pow(this, exp));
if(this == 0.0 && this.fmz$ && exp.fractionalPart == 0 && !exp.wholePart.even)
ret = ret.negated;
return ret;
}
if (exp<0 && this!=1 && this!=-1) {
throw AssertionError("Negative exponent");
}
return toInt(Math.pow(this, exp));
}
$addnm$('powerOfInteger');
$specialiseForNumber$(Integer, 'powerOfInteger', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Integer','$m','powerOfInteger']};})
$specialiseForNumber$(Float, 'powerOfInteger', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Float','$m','powerOfInteger']};})
atr$(JSNum$proto, 'negated', function() {
if (this.valueOf()==0 && this.float$) {
var f=Float(0.0);
if (!this.fmz$)f.fmz$=true;
return f;
}
return nflt$(this) ? Float(-this) : -this;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Invertible,d:['$','Invertible','$at','negated']};});
$specialiseForNumber$(Integer, 'negated', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','negated']};})
$specialiseForNumber$(Float, 'negated', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,d:['$','Float','$at','negated']};})
atr$(JSNum$proto, 'negative', function(){
return nflt$(this) ? this < 0.0 || this == -Infinity : this.valueOf() < 0;
},undefined,function(){return{$t:{t:$_Boolean},an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','negative']};});
$specialiseForNumber$(Integer, 'negative', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','negative']};})
$specialiseForNumber$(Float, 'negative', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','negative']};})
atr$(JSNum$proto, 'positive', function(){
return nflt$(this) ? this > 0.0 : this.valueOf() > 0;
},undefined,function(){return{$t:{t:$_Boolean},an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','positive']};});
$specialiseForNumber$(Integer, 'positive', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','positive']};})
$specialiseForNumber$(Float, 'positive', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','positive']};})
JSNum$proto.equals=function(other){
if(typeof(other)==='number' || other.constructor===Number){
if (this>runtime().maxIntegerValue||this<runtime().minIntegerValue
||other>runtime().maxIntegerValue||other<runtime.minIntegerValue) {
return other==this.valueOf() && other.float$===this.float$;
}
return other==this.valueOf();
}
return false;
}
$addnm$('equals',$_Object.$$.prototype.equals);
$specialiseForNumber$(Integer, 'equals', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:$_Object},nm:'that'}],d:['$','Integer','$m','equals']};})
$specialiseForNumber$(Float, 'equals', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:$_Object},nm:'that'}],d:['$','Float','$m','equals']};})
JSNum$proto.compare = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
var value = this.valueOf();
return value==other ? equal() : (value<other ? smaller():larger());
}
$addnm$('compare',Comparable.$$.prototype.compare);
$specialiseForNumber$(Integer, 'compare', function(){return {mod:$CCMM$,$t:{t:Comparison},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','compare']};})
$specialiseForNumber$(Float, 'compare', function(){return {mod:$CCMM$,$t:{t:Comparison},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','compare']};})
JSNum$proto.smallerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.smallerThan.call(this,o);
}
$addnm$('smallerThan',Comparable.$$.prototype.smallerThan);
$specialiseForNumber$(Integer, 'smallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','smallerThan']};})
$specialiseForNumber$(Float, 'smallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','smallerThan']};})
JSNum$proto.largerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.largerThan.call(this,o);
}
$addnm$('largerThan',Comparable.$$.prototype.largerThan);
$specialiseForNumber$(Integer, 'largerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','largerThan']};})
$specialiseForNumber$(Float, 'largerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','largerThan']};})
JSNum$proto.notSmallerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.notSmallerThan.call(this,o);
}
$addnm$('notSmallerThan',Comparable.$$.prototype.notSmallerThan);
$specialiseForNumber$(Integer, 'notSmallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','notSmallerThan']};})
$specialiseForNumber$(Float, 'notSmallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','notSmallerThan']};})
JSNum$proto.notLargerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.notLargerThan.call(this,o);
}
$addnm$('notLargerThan',Comparable.$$.prototype.notLargerThan);
$specialiseForNumber$(Integer, 'notSmallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','notSmallerThan']};})
$specialiseForNumber$(Float, 'notLargerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','notLargerThan']};})
atr$(JSNum$proto, '$_float', function(){
if (this.magnitude>runtime().maxExactIntegralFloat) {
throw OverflowException(this+' cannot be coerced into a 64 bit floating point value');
}
return Float(this.valueOf());
},undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Float},$cont:Integer,d:['$','Integer','$at','float']};});
$specialiseForNumber$(Integer, '$_float', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Integer,d:['$','Integer','$at','float']};})
$specialiseForNumber$(Float, '$_float', function(){return {mod:$CCMM$,$t:{t:Float},pa:0,$cont:Float,d:['$','Float','$at','float$oirx2o']};})
atr$(JSNum$proto, 'integer', function(){ return toInt(this); },
undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Integer},$cont:$_Number,d:['$','Float','$at','integer']};});
atr$(JSNum$proto, '$_byte', function(){ return Byte(this); },
undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Byte},$cont:Integer,d:['$','Integer','$at','byte']};});
$specialiseForNumber$(Integer, '$_byte', function(){return {mod:$CCMM$,$t:{t:Byte},pa:67,$cont:Integer,d:['$','Integer','$at','byte']};})
atr$(JSNum$proto, 'character', function(){
var c=this.valueOf();
if (c < 0 || c > 1114111) {
throw OverflowException(c + ' is not a possible Unicode code point');
}
return Character(c);
},undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Character},$cont:Integer,d:['$','Integer','$at','character']};});
$specialiseForNumber$(Integer, 'character', function(){return {mod:$CCMM$,$t:{t:Character},pa:67,$cont:Integer,d:['$','Integer','$at','character']};})
atr$(JSNum$proto, 'successor', function(){ return this+1; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:Integer},$cont:Integer,d:['$','Integer','$at','successor']};});
$specialiseForNumber$(Integer, 'successor', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','successor']};})
atr$(JSNum$proto, 'predecessor', function(){ return this-1; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:Integer},$cont:Integer,d:['$','Integer','$at','predecessor']};});
$specialiseForNumber$(Integer, 'predecessor', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','predecessor']};})
atr$(JSNum$proto, 'unit', function(){ return this == 1; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:$_Boolean},$cont:Integer,d:['$','Integer','$at','unit']};});
$specialiseForNumber$(Integer, 'unit', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','unit']};})
atr$(JSNum$proto, 'zero', function(){ return this == 0; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:$_Boolean},$cont:Integer,d:['$','Integer','$at','zero']};});
$specialiseForNumber$(Integer, 'zero', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','zero']};})
atr$(JSNum$proto, 'even', function(){ return this%2 == 0; },
undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:$_Boolean},$cont:Integer,d:['$','Integer','$at','even']};});
$specialiseForNumber$(Integer, 'even', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:65,$cont:Integer,d:['$','Integer','$at','even']};})
atr$(JSNum$proto, 'fractionalPart', function() {
if (!nflt$(this)) { return 0; }
return Float(this - toInt(this));
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','fractionalPart']};});
$specialiseForNumber$(Integer, 'fractionalPart', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','fractionalPart']};})
$specialiseForNumber$(Float, 'fractionalPart', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,d:['$','Float','$at','fractionalPart']};})
atr$(JSNum$proto, 'wholePart', function() {
if (!nflt$(this)) { return this.valueOf(); }
var ret = this >= 0 ? Math.floor(this) : Math.ceil(this);
var wret = Float(ret);
if(ret == 0 && (this < 0 || this.fmz$)){ wret.fmz$ = true; }
return wret;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','wholePart']};});
$specialiseForNumber$(Integer, 'wholePart', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','wholePart']};})
$specialiseForNumber$(Float, 'wholePart', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,d:['$','Float','$at','wholePart']};})
atr$(JSNum$proto, 'sign', function(){ return this > 0 ? 1 : this < 0 ? -1 : 0; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','sign']};});
$specialiseForNumber$(Integer, 'sign', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','sign']};})
$specialiseForNumber$(Float, 'sign', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Float,d:['$','Float','$at','sign']};})
atr$(JSNum$proto, 'hash', function() {
return nflt$(this) ? $_String(this.toPrecision()).hash : this.valueOf();
},undefined,function(){return{mod:$CCMM$,pa:64,$cont:Integer,d:['$','Number','$at','hash']};});
$specialiseForNumber$(Integer, 'hash', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','hash']};})
$specialiseForNumber$(Float, 'hash', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Float,d:['$','Float','$at','hash']};})
JSNum$proto.distanceFrom = function(other) {
return (nflt$(this) ? this.wholePart : this) - other;
}
atr$(JSNum$proto, 'not', function(){ return ~this; },
undefined,function(){return{pa:64,mod:$CCMM$,$cont:Binary,d:['$','Integer','$at','not']};});
$specialiseForNumber$(Integer, 'not', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','not']};})
JSNum$proto.leftLogicalShift = function(i) { return this << i; }
$addnm$('leftLogicalShift',Binary.$$.prototype.leftLogicalShift);
$specialiseForNumber$(Integer, 'leftLogicalShift', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'shift'}],d:['$','Integer','$m','leftLogicalShift']};})
JSNum$proto.rightLogicalShift = function(i) { return this >>> i; }
$addnm$('rightLogicalShift',Binary.$$.prototype.rightLogicalShift);
$specialiseForNumber$(Integer, 'rightLogicalShift', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'shift'}],d:['$','Integer','$m','rightLogicalShift']};})
JSNum$proto.rightArithmeticShift = function(i) { return this >> i; }
$addnm$('rightArithmeticShift',Binary.$$.prototype.rightArithmeticShift);
$specialiseForNumber$(Integer, 'rightArithmeticShift', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'shift'}],d:['$','Integer','$m','rightArithmeticShift']};})
JSNum$proto.and = function(x) { return this & x; }
$addnm$('and',Binary.$$.prototype.and);
$specialiseForNumber$(Integer, 'and', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','and']};})
JSNum$proto.or = function(x) { return this | x; }
$addnm$('or',Binary.$$.prototype.or);
$specialiseForNumber$(Integer, 'or', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','or']};})
JSNum$proto.xor = function(x) { return this ^ x; }
$addnm$('xor',Binary.$$.prototype.xor);
$specialiseForNumber$(Integer, 'xor', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','xor']};})
JSNum$proto.$_get = function(idx) {
if (idx < 0 || idx >31) {
return false;
}
var mask = 1 << idx;
return (this & mask) != 0 ? true : false;
}
$addnm$('$_get',Binary.$$.prototype.$_get);
$specialiseForNumber$(Integer, 'get', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','get']};})
JSNum$proto.set=function(idx,bit) {
if (idx<0 || idx>31) {
return this;
}
if (bit === undefined) { bit = true; }
var mask = 1 << idx;
return (bit === true) ? this|mask : this & ~mask;
}
$addnm$('set',Binary.$$.prototype.set);
$specialiseForNumber$(Integer, 'set', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'},{$t:{t:$_Boolean},nm:'bit'}],d:['$','Integer','$m','set']};})
JSNum$proto.flip = function(idx) {
if (idx < 0 || idx >31) {
return this;
}
var mask = 1 << idx;
return this ^ mask;
}
$addnm$('flip',Binary.$$.prototype.flip);
$specialiseForNumber$(Integer, 'flip', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','flip']};})
JSNum$proto.clear = function(index) {
return this.set(index, false);
}
$addnm$('clear',Binary.$$.prototype.clear);
$specialiseForNumber$(Integer, 'clear', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','clear']};})
function checkintoverflow$(a){
if(a>runtime().maxIntegerValue || a<runtime().minIntegerValue)throw OverflowException();
return a;
}
JSNum$proto.neighbour=function(offset) {
return checkintoverflow$(this+offset);
}
$addnm$('neighbour',Enumerable.$$.prototype.neighbour);
$specialiseForNumber$(Integer, 'neighbour', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'offset'}],d:['$','Integer','$m','neighbour']};})
JSNum$proto.offset=function(other) {
return checkintoverflow$(this-other);
}
$addnm$('offset',Enumerable.$$.prototype.offset);
$specialiseForNumber$(Integer, 'offset', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'offset'}],d:['$','Integer','$m','offset']};})
JSNum$proto.offsetSign=function(other) {
var v = this.valueOf();
var o = other.valueOf();
if (v>o)return 1;
if (v<o)return -1;
return 0;
}
$addnm$('offsetSign',Enumerable.$$.prototype.offsetSign);
$specialiseForNumber$(Integer, 'offsetSign', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'offset'}],d:['$','Integer','$m','offsetSign']};})
atr$(JSNum$proto,'magnitude',function(){
var m=Math.abs(this);
if (nflt$(this))m=Float(m);
return m;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','magnitude']};});
$specialiseForNumber$(Integer, 'magnitude', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','magnitude']};})
atr$(JSNum$proto, '$_undefined', function(){ return isNaN(this); },
undefined,function(){return{pa:1,mod:$CCMM$,$cont:Float,d:['$','Float','$at','undefined']};});
$specialiseForNumber$(Float, '$_undefined', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','undefined']};})
atr$(JSNum$proto, 'finite', function(){ return this!=Infinity && this!=-Infinity && !isNaN(this); },
undefined,function(){return{pa:1,mod:$CCMM$,$t:{t:$_Boolean},$cont:Float,d:['$','Float','$at','finite']};});
$specialiseForNumber$(Float, 'finite', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','finite']};})
atr$(JSNum$proto, 'infinite', function(){ return this==Infinity || this==-Infinity; },
undefined,function(){return{pa:67,mod:$CCMM$,$cont:Float,d:['$','Float','$at','infinite']};});
$specialiseForNumber$(Float, 'infinite', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','infinite']};})
atr$(JSNum$proto, 'strictlyPositive', function(){ return this>0 || (this==0 && !this.fmz$ && (1/this==Infinity)); },
undefined,function(){return{pa:65,mod:$CCMM$,$cont:Float,d:['$','Float','$at','strictlyPositive']};});
$specialiseForNumber$(Float, 'strictlyPositive', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:65,$cont:Float,d:['$','Float','$at','strictlyPositive']};})
atr$(JSNum$proto, 'strictlyNegative', function() { return this<0 || this.fmz$ || (this==0 && (1/this==-Infinity)); },
undefined,function(){return{pa:65,mod:$CCMM$,$cont:Float,d:['$','Float','$at','strictlyNegative']};});
$specialiseForNumber$(Float, 'strictlyNegative', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:65,$cont:Float,d:['$','Float','$at','strictlyNegative']};})
atr$(JSNum$proto, 'nearestFloat', function(){ return Float(this.valueOf()); },
undefined,function(){return{pa:65,mod:$CCMM$,$cont:Integer,d:['$','Integer','$at','nearestFloat']};});
$specialiseForNumber$(Integer, 'nearestFloat', function(){return {mod:$CCMM$,$t:{t:Float},pa:65,$cont:Integer,d:['$','Integer','$at','nearestFloat']};})
ex$.Integer=Integer;
ex$.Float=Float;
function $_Array$$c(a$,t$){
var a=new $_Array.$$;
SearchableList({Element$SearchableList:t$.Element$Array}, a);
set_type_args(a,t$,$_Array);
a.arr$=a$;
return a;
}
function $_Array(e$,t$){return $_Array_$c$(e$,t$);}
$_Array.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}}}],tp:{Element$Array:{}},sts:[{t:SearchableList,a:{Element$SearchableList:'Element$Array'}},{t:Ranged,a:{Subrange$Ranged:{t:$_Array,a:{Element$Array:'Element$Array'}},Element$Ranged:'Element$Array',Index$Ranged:{t:Integer}}}],pa:2081,an:function(){return[doc$($CCMM$,'$:Array'),tagged(["Collections"].$sa$({t:$_String})),$_native()];},d:['$','Array']};};
ex$.$_Array=$_Array;function $init$$_Array(){if($_Array.$$===undefined){initTypeProto($_Array,'ceylon.language::Array',Basic,$init$SearchableList(),$init$Ranged());
(function(array$){array$.getFromLast=function getFromLast(i){
var e=this.arr$[this.arr$.length-1-i];
if (e===undefined)
return null;
return e;
}
array$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:getFromLast'),$_native()];},d:['$','Array','$m','getFromLast']};};array$.getFromFirst=function getFromFirst(i){
var e=this.arr$[i];
if (e===undefined)
return null;
return e;
}
array$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:getFromFirst'),$_native()];},d:['$','Array','$m','getFromFirst']};};atr$(array$,'lastIndex',function(){return this.arr$.length>0 ? (this.arr$.length-1) : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','lastIndex']};});atr$(array$,'first',function(){return this.arr$.length>0 ? this.arr$[0] : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','first']};});atr$(array$,'last',function(){return this.arr$.length>0 ? this.arr$[this.arr$.length-1] : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','last']};});atr$(array$,'empty',function(){return this.arr$.length==0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','empty']};});atr$(array$,'size',function(){return this.arr$.length;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','size']};});array$.defines=function(i){return List.$$.prototype.defines.call(this,i);}
array$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','defines']};};array$.iterator=function() {
var $idx$=0;
var $arr$=this.arr$;
return for$iter(function() {
return ($idx$===$arr$.length) ? finished() : $arr$[$idx$++];
},{Element$Iterable:this.$$targs$$.Element$Array,Absent$Iterable:{t:Null}});
}
array$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Array'}},ps:[],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','iterator']};};array$.contains=function(elem) {
if (!nn$(elem))return false;
for (var i=0; i<this.arr$.length; i++) {
if (nn$(this.arr$[i]) && elem.equals(this.arr$[i])) {
return true;
}
}
return false;
}
array$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','contains']};};array$.sequence=function() {
if(this.arr$.length===0)return empty();
return ArraySequence(this,{Element$ArraySequence:this.$$targs$$.Element$Array});
}
array$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Array'}},ps:[],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','sequence']};};atr$(array$,'coalesced',function(){var a=[];
for (var i=0;i<this.arr$.length;i++){
if (nn$(this.arr$[i]))a.push(this.arr$[i]);
}
return $arr$(a,this.$$targs$$.Element$Array);
},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:['Element$Array',{t:$_Object}]}}},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','coalesced']};});array$.clone=function(){
return $arr$(this.arr$.slice(0),this.$$targs$$.Element$Array);
}
array$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:clone'),$_native()];},d:['$','Array','$m','clone']};};array$.set=function(idx,elem) {
if (idx >= 0 && idx < this.arr$.length) {
this.arr$[idx] = elem;
}
}
array$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'index',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:set:$at:index$zhv6vc')];}},{nm:'element',mt:'prm',$t:'Element$Array',an:function(){return[doc("The new element.")];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:set'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if the given index is out of bounds, that is, if \n`index<0` or if `index>lastIndex`"),$_native()];},d:['$','Array','$m','set']};};array$.copyTo=function(other,srcpos,dstpos,length){
if(srcpos===undefined)srcpos=0;
if(dstpos===undefined)dstpos=0;
if(length===undefined)length=Math.min(this.size-srcpos,other.size-dstpos);
if (length<=0)return;
var endpos=srcpos+length-1;
if (srcpos<0||srcpos>=this.size||length<1||dstpos+length>other.size||endpos>=this.size)throw Exception("Array index out of bounds");
if (other===this && dstpos>srcpos) {
dstpos+=length-1;
for (var i=endpos; i>=srcpos; i--) {
other.arr$[dstpos--]=this.arr$[i];
}
} else {
for (var i=srcpos;i<=endpos;i++) {
other.arr$[dstpos++]=this.arr$[i];
}
}
}
array$.copyTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'destination',mt:'prm',$t:{t:$_Array,a:{Element$Array:'Element$Array'}},an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo:$at:destination$2u1dc2')];}},{nm:'sourcePosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo:$at:sourcePosition$wdwbbs')];}},{nm:'destinationPosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo:$at:destinationPosition$rctixv')];}},{nm:'length',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc("The number of elements to copy.")];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo'),$_native()];},d:['$','Array','$m','copyTo']};};array$.span=function(from, to) {
if (from > to) {
var arr = this.measure(to, from-to+1);
arr.reverseInPlace();
return arr;
}
return this.measure(from, to-from+1);
}
array$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','span']};};array$.spanFrom=function(from) {
return this.span(from, 0x7fffffff);
}
array$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','spanFrom']};};array$.spanTo=function(to) {
return to < 0 ? empty() : this.span(0, to);
}
array$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','spanTo']};};array$.measure=function(from, len) {
if (len <= 0) { return empty(); }
var stop = from + len;
var seq = this.arr$.slice((from>=0)?from:0, (stop>=0)?stop:0);
return $arr$(seq,this.$$targs$$.Element$Array);
}
array$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','measure']};};array$.skip=function(c){
if (c<=0)return this;
var r=this.arr$.slice(c);
return $arr$(r,this.$$targs$$.Element$Array);
}
array$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','skip']};};array$.take=function(c) {
if (c<=0)return $arr$([],this.$$targs$$.Element$Array);
var r=this.arr$.slice(0,c);
return $arr$(r,this.$$targs$$.Element$Array);
}
array$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','take']};};array$.by=function(c){
if (c<=0)throw AssertionError("Step must be > 0");
if (c===1)return this;
var r=[],idx=0;
while (idx<this.arr$.length) {
r.push(this.arr$[idx]);
idx+=c;
}
return $arr$(r,this.$$targs$$.Element$Array);
}
array$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','by']};};array$.count=function(){return List.$$.prototype.count.apply(this,arguments);}
array$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','count']};};array$.each=function(f){
for (var i=0;i<this.arr$.length;i++){
f(this.arr$[i]);
}
}
array$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','each']};};array$.any=function(f) {
for (var i=0;i<this.arr$.length;i++) {
if (f(this.arr$[i]))return true;
}
return false;
}
array$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','any']};};array$.$_every=function(f) {
for (var i=0;i<this.arr$.length;i++){
if (!f(this.arr$[i]))return false;
}
return true;
}
array$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','every']};};array$.$_filter=function(f){
var a=this.arr$;
return for$(function(){
var i=0,l=a.length;
return function() {
var r=i<l?a[i++]:finished();
while (r!==finished() && !f(r)) {
r=i<l?a[i++]:finished();
}
return r;
};
},{Element$Iterable:this.$$targs$$.Element$Array,Absent$Iterable:{t:Null}});
}
array$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','filter']};};array$.find=function(f){
for (var i=0;i<this.arr$.length;i++){
if (f(this.arr$[i]))return this.arr$[i];
}
return null;
}
array$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','find']};};array$.findLast=function(f){
for (var i=this.arr$.length-1;i>=0;i--){
if (f(this.arr$[i]))return this.arr$[i];
}
return null;
}
array$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','findLast']};};array$.firstIndexWhere=function(f){
for(var i=0;i<this.arr$.length;i++){
var e=this.arr$[i];
if (nn$(e)&&f(e))return i;
}
return null;
}
array$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','firstIndexWhere']};};array$.lastIndexWhere=function(f){
for(var i=this.arr$.length-1;i>=0;i--){
var e=this.arr$[i];
if (nn$(e)&&f(e))return i;
}
return null;
}
array$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','lastIndexWhere']};};array$.indexesWhere=function(f){
var r=[];
for(var i=0;i<this.arr$.length;i++){
var e=this.arr$[i];
if (nn$(e)&&f(e))r.push(i);
}
return r.length?$arr$(r,{t:Integer}):empty();
}
array$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','indexesWhere']};};array$.locate=function(f){
for (var i=0;i<this.arr$.length;i++){
if (this.arr$[i]!==null && f(this.arr$[i]))return Entry(i,this.arr$[i],{Key$Entry:{t:Integer},Item$Entry:this.$$targs$$.Element$Array});
}
return null;
}
array$.locate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Array',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','locate']};};array$.locateLast=function(f){
for (var i=this.arr$.length-1;i>=0;i--){
if (this.arr$[i]!==null && f(this.arr$[i]))return Entry(i,this.arr$[i],{Key$Entry:{t:Integer},Item$Entry:this.$$targs$$.Element$Array});
}
return null;
}
array$.locateLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Array',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','locateLast']};};array$.locations=function(f){
var r=[];
var _t={t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:[this.$$targs$$.Element$Array, {t:$_Object}]}}};
for (var i=0;i<this.arr$.length;i++) {
var c=this.$_get(i);
if (nn$(c)&&f(c))r.push(Entry(i,c,_t.a));
}
return r.length>0?$arr$(r,_t):empty();
}
array$.locations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Array',{t:$_Object}]}}}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','locations']};};array$.$_reduce=function(f){
if (this.arr$.length===0)return null;
var r=this.arr$[0];
for (var i=1;i<this.arr$.length;i++) {
r=f(r,this.arr$[i]);
}
return r;
}
array$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce','Element$Array',{t:Null}]},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$Array']},'Element$Array']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$Array']}},{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,tp:{Result$reduce:{}},pa:3,an:function(){return[$_native()];},d:['$','Array','$m','reduce']};};array$.occursAt=function(i,e){
if (i<0||i>=this.arr$.length)return false;
if (e===null)return this.arr$[i]===null;
return this.arr$[i]!==null && this.arr$[i].equals(e);
}
array$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:'Element$Array'}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','occursAt']};};array$.firstOccurrence=function(e,from,len){
if (from===undefined || from<0)from=0;
else if (from>=this.arr$.length)return null;
if (len===undefined)len=this.arr$.length-from;
var lim=len+from;
if(lim>this.arr$.length)lim=this.arr$.length;
if (e===null) {
for (var i=from;i<lim;i++) {
if (this.arr$[i]===null)return i;
}
} else {
for (var i=from;i<lim;i++) {
if (this.arr$[i]!==null && e.equals(this.arr$[i]))return i;
}
}
return null;
}
array$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','firstOccurrence']};};array$.lastOccurrence=function(e,from,len){
if (from===undefined||from<0)from=0;
else if (from>this.arr$.length)return null;
if (len===undefined)len=this.arr$.length-from;
var end=this.arr$.length-len-from;
var start=this.arr$.length-from-1;
if (e===null) {
for (var i=start;i>=end;i--) {
if (this.arr$[i]===null)return i;
}
} else {
for (var i=start;i>=end;i--) {
if (this.arr$[i]!==null && e.equals(this.arr$[i]))return i;
}
}
return null;
}
array$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','lastOccurrence']};};array$.occurs=function(e,from,len){
if (from===undefined||from<0)from=0;
else if (from>this.arr$.length)return false;
if (len===undefined)len=this.arr$.length-from;
var lim=len+from;
if (lim>this.arr$.length)lim=this.arr$.length;
if (e===null) {
for (var i=from;i<lim;i++) {
if (this.arr$[i]===null)return true;
}
} else {
for (var i=from;i<lim;i++) {
if (this.arr$[i]!==null && e.equals(this.arr$[i]))return true;
}
}
return false;
}
array$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','occurs']};};array$.occurrences=function(e,from,len){
if (from===undefined||from<0)from=0;
if (len===undefined)len=this.arr$.length;
var r=[];
if (e===null) {
for (var i=from;i<len;i++) {
if (this.arr$[i]===null)r.push(i);
}
} else {
for (var i=from;i<len;i++) {
if (this.arr$[i]!==null && this.arr$[i].equals(e))r.push(i);
}
}
return r.length>0?$arr$(r,{t:Integer}):empty();
}
array$.occurrences.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','occurrences']};};array$.swap=function(a,b){
asrt$(a>=0&&b>=0,'array index may not be negative','0:0','Array.ceylon');
asrt$(a<this.arr$.length&&b<this.arr$.length,'array index must be less than size of array ' + this.arr$.length,'0:0','Array.ceylon');
var c=this.arr$[a];
this.arr$[a]=this.arr$[b];
this.arr$[b]=c;
}
array$.swap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'i',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:swap:$at:i$ugyp34')];}},{nm:'j',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:swap:$at:j$ugyq55')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:swap'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if either of the given indices is out of bounds"),$_native()];},d:['$','Array','$m','swap']};};array$.move=function(f,t){
asrt$(f>=0&&t>=0,"array index may not be negative",'Array.move','Array.ceylon');
asrt$(f<this.arr$.length&&t<this.arr$.length,"array index must be less than size of array " + this.arr$.length,'Array.move','Array.ceylon');
if (f===t)return;
var x=this.arr$[f];
if (f>t) {
for (var i=f;i>t;i--) {
this.arr$[i]=this.arr$[i-1];
}
} else {
for (var i=f;i<t;i++) {
this.arr$[i]=this.arr$[i+1];
}
}
this.arr$[t] = x;
}
array$.move.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'from',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:move:$at:from$9obs55')];}},{nm:'to',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:move:$at:to$9x3zio')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:move'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if either of the given indices is out of bounds"),$_native()];},d:['$','Array','$m','move']};};array$.reverseInPlace=function() {
var len = this.arr$.length;
for (i=0; i<Math.floor(len/2); i++) {
var swap = this.arr$[i];
this.arr$[i]=this.arr$[len-i-1];
this.arr$[len-i-1]=swap;
}
}
array$.reverseInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:reverseInPlace'),$_native()];},d:['$','Array','$m','reverseInPlace']};};array$.sortInPlace=function(f) {
this.arr$.sort(function(a,b) {
var r = f(a,b);
return r===larger()?1:r===smaller()?-1:0;
});
}
array$.sortInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Array','Element$Array']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Array'},{nm:'y',mt:'prm',$t:'Element$Array'}],an:function(){return[doc$($CCMM$,'$:Array:$m:sortInPlace:$m:comparing$awkb12')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:sortInPlace'),$_native()];},d:['$','Array','$m','sortInPlace']};};array$.$_sort=function(f) {
var clone = this.clone();
clone.sortInPlace(f);
return ArraySequence(clone,{Element$ArraySequence:{t:this.$$targs$$.Element$Array}});
}
array$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Array'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Array','Element$Array']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Array'},{nm:'y',mt:'prm',$t:'Element$Array'}],an:function(){return[doc$($CCMM$,'$:Array:$m:sort:$m:comparing$m978ss')];}}],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:sort'),$_native()];},d:['$','Array','$m','sort']};};array$.equals=function($cy){var array$=this;return array$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(array$,$cy);};array$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_Array,pa:3,d:['$','Array','$m','equals']};};atr$(array$,'hash',function(){var array$=this;return attrGetter(array$.getT$all()['ceylon.language::List'],'hash').call(this);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Array,pa:3,d:['$','Array','$at','hash']};});atr$(array$,'string',function(){var array$=this;return attrGetter(array$.getT$all()['ceylon.language::Collection'],'string').call(this);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_Array,pa:3,d:['$','Array','$at','string']};});})($_Array.$$.prototype);}
return $_Array;}
ex$.$init$$_Array=$init$$_Array;$init$$_Array();function $_Array_$c$(elems,$$targs$$) {
$init$$_Array();
var e=[];
if (!(elems === null || elems === undefined)) {
var item;for(var iter=elems.iterator();(item=iter.next())!==finished();) {
e.push(item);
}
}
return $_Array$$c(e,$$targs$$);
}
$_Array.inst$$=function(cm){
return $_Array(undefined,cm.$$targs$$.Type$Class.a);
}
$_Array.ser$set$=function(ref,o,i){
if (typeof(ref)==='number') {
o.arr$[ref]=i;
}
}
$_Array.ser$get$=function(ref,o){
if (is$(ref,{t:Element$serialization})) {
return o.$_get(ref.index);
}
return o.size;
}
$_Array.ser$refs$=function(o){
return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getSize))];
}
$_Array_$c$.$crtmm$=function(){return{mod:$CCMM$,ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$cn:$def'),$_native()];},d:['$','Array','$cn','$def']};};$_Array.$_Array_$c$=$_Array_$c$;ex$.$_Array_$c$=$_Array_$c$;function $_Array_ofSize(s,e,t$) {
asrt$(s<=runtime().maxArraySize,
"Invalid array size","0:0","Array.ceylon");
$init$$_Array();
if (s>0) {
var a=new Array(s);
for (var i=0;i<s;i++) {
a[i]=e;
}
} else {
var a=[];
}
return $_Array$$c(a,t$);
}
$_Array_ofSize.$crtmm$=function(){return{mod:$CCMM$,ps:[{nm:'size',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$cn:ofSize:$at:size$xs793g')];}},{nm:'element',mt:'prm',$t:'Element$Array',an:function(){return[doc$($CCMM$,'$:Array:$cn:ofSize:$at:element$qtxp4n')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$cn:ofSize'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `size>runtime.maxArraySize`"),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),runtime$$N().$prop$getMaxArraySize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','Array','$cn','ofSize']};};$_Array.$_Array_ofSize=$_Array_ofSize;ex$.$_Array_ofSize=$_Array_ofSize;function Empty(empty$){Sequential({Element$Sequential:{t:Nothing}},empty$);Ranged({Subrange$Ranged:{t:Empty},Element$Ranged:{t:Nothing},Index$Ranged:{t:Integer}},empty$);}
Empty.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Sequential,a:{Element$Sequential:{t:Nothing}}},{t:Ranged,a:{Subrange$Ranged:{t:Empty},Element$Ranged:{t:Nothing},Index$Ranged:{t:Integer}}}],of:[$prop$getEmpty],pa:1,an:function(){return[doc$($CCMM$,'$:Empty'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Sequence)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Empty']};};
ex$.Empty=Empty;function $init$Empty(){if(Empty.$$===undefined){initTypeProtoI(Empty,'ceylon.language::Empty',$init$Sequential(),$init$Ranged());
(function(empty$){empty$.getFromLast=function($cz){var empty$=this;return null;};empty$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:getFromLast')];},d:['$','Empty','$m','getFromLast']};};empty$.getFromFirst=function($d0){var empty$=this;return null;};empty$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:getFromFirst')];},d:['$','Empty','$m','getFromFirst']};};empty$.contains=function($d1){var empty$=this;return false;};empty$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:contains')];},d:['$','Empty','$m','contains']};};empty$.defines=function($d2){var empty$=this;return false;};empty$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:defines')];},d:['$','Empty','$m','defines']};};atr$(empty$,'keys',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','keys']};});empty$.indexes=function(){var empty$=this;return empty$;};empty$.indexes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','indexes']};};atr$(empty$,'empty',function(){var empty$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Empty,pa:3,an:function(){return[doc("Returns `true`.")];},d:['$','Empty','$at','empty']};});atr$(empty$,'size',function(){var empty$=this;return 0},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Empty,pa:3,an:function(){return[doc("Returns 0.")];},d:['$','Empty','$at','size']};});atr$(empty$,'reversed',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','reversed']};});empty$.sequence=function(){var empty$=this;return empty$;};empty$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','sequence']};};atr$(empty$,'string',function(){var empty$=this;return "[]";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$at:string')];},d:['$','Empty','$at','string']};});atr$(empty$,'lastIndex',function(){var empty$=this;return null;},undefined,function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','lastIndex']};});atr$(empty$,'first',function(){var empty$=this;return null;},undefined,function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','first']};});atr$(empty$,'last',function(){var empty$=this;return null;},undefined,function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','last']};});atr$(empty$,'rest',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','rest']};});empty$.clone=function(){var empty$=this;return empty$;};empty$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','clone']};};atr$(empty$,'coalesced',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','coalesced']};});atr$(empty$,'indexed',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','indexed']};});empty$.repeat=function($d3){var empty$=this;return empty$;};empty$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','repeat']};};atr$(empty$,'cycled',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','cycled']};});atr$(empty$,'paired',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','paired']};});empty$.iterator=function(){var empty$=this;return emptyIterator();};empty$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Nothing}}},ps:[],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:iterator')];},d:['$','Empty','$m','iterator']};};empty$.measure=function($d4,$d5){var empty$=this;return empty$;};empty$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:measure')];},d:['$','Empty','$m','measure']};};empty$.span=function($d6,$d7){var empty$=this;return empty$;};empty$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:span')];},d:['$','Empty','$m','span']};};empty$.spanTo=function($d8){var empty$=this;return empty$;};empty$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:spanTo')];},d:['$','Empty','$m','spanTo']};};empty$.spanFrom=function($d9){var empty$=this;return empty$;};empty$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:spanFrom')];},d:['$','Empty','$m','spanFrom']};};empty$.chain=function($da,$2tdhse$){var empty$=this;return $da;};empty$.chain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}}}],$cont:Empty,tp:{Other$chain:{},OtherAbsent$chain:{sts:[{t:Null}]}},pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:chain')];},d:['$','Empty','$m','chain']};};empty$.defaultNullElements=function($db,$1kzr90$){var empty$=this;return empty$;};empty$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Empty,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:3,d:['$','Empty','$m','defaultNullElements']};};empty$.count=function($dc){return 0;};empty$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:count')];},d:['$','Empty','$m','count']};};empty$.$_map=function($dd,$c4hvl5$){var empty$=this;return empty$;};empty$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$map',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$map',ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$map:{}},pa:3,d:['$','Empty','$m','map']};};empty$.flatMap=function($de,$i4mj68$){var empty$=this;return empty$;};empty$.flatMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$flatMap:{},OtherAbsent$flatMap:{sts:[{t:Null}]}},pa:3,d:['$','Empty','$m','flatMap']};};empty$.spread=function($df,$nyxc3q$){var empty$=this;return flatten($JsCallable((function($dg){return empty$;}),[{nm:'args',mt:'prm',$t:$nyxc3q$.Args$spread}],{Return$Callable:{t:Empty},Arguments$Callable:mtt$([$nyxc3q$.Args$spread])}),{Args$flatten:$nyxc3q$.Args$spread,Return$flatten:{t:Empty}});};empty$.spread.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Empty},Arguments$Callable:'Args$spread'}},ps:[{nm:'method',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$spread:{},Args$spread:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,d:['$','Empty','$m','spread']};};empty$.$_filter=function($dh){var empty$=this;return empty$;};empty$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','filter']};};empty$.fold=function($di,$kppqs4$){var empty$=this;empty$.$di_=$di;var $dj=function($dk){{return $di;}};$dj.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$kppqs4$.Result$fold,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Nothing}]),Element$Tuple:$kppqs4$.Result$fold/*ORALE!Result inv pero Element var*/,First$Tuple:$kppqs4$.Result$fold/*ORALE!Result inv pero First var*/}}}},$rt:$kppqs4$.Result$fold,ps:[{nm:'partial',mt:'prm',$t:$kppqs4$.Result$fold},{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$t:$kppqs4$.Result$fold};};return JsCallable(0,$dj);};empty$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[]}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Empty,tp:{Result$fold:{}},pa:3,d:['$','Empty','$m','fold']};};empty$.$_reduce=function($dl,$nblda1$){var empty$=this;return null;};empty$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:'Result$reduce'},{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$reduce:{}},pa:3,d:['$','Empty','$m','reduce']};};empty$.find=function($dm){var empty$=this;return null;};empty$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','find']};};empty$.$_sort=function($dn){var empty$=this;return empty$;};empty$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Comparison},ps:[{nm:'a',mt:'prm',$t:{t:Nothing}},{nm:'b',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','sort']};};empty$.collect=function($do,$agcnsn$){var empty$=this;return empty$;};empty$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$collect:{}},pa:3,d:['$','Empty','$m','collect']};};empty$.select=function($dp){var empty$=this;return empty$;};empty$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','select']};};empty$.any=function($dq){var empty$=this;return false;};empty$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','any']};};empty$.$_every=function($dr){var empty$=this;return true;};empty$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','every']};};empty$.skip=function($ds){var empty$=this;return empty$;};empty$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','skip']};};empty$.take=function($dt){var empty$=this;return empty$;};empty$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','take']};};empty$.skipWhile=function($du){var empty$=this;return empty$;};empty$.skipWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'skipping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','skipWhile']};};empty$.takeWhile=function($dv){var empty$=this;return empty$;};empty$.takeWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'taking',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','takeWhile']};};empty$.by=function($dw){var empty$=this;return empty$;};empty$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','by']};};empty$.withLeading=function($dx,$629yy5$){var empty$=this;return tpl$([$dx]);};empty$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading']},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Empty,tp:{Other$withLeading:{}},pa:3,d:['$','Empty','$m','withLeading']};};empty$.withTrailing=function($dy,$tuh4iz$){var empty$=this;return tpl$([$dy]);};empty$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withTrailing']},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Empty,tp:{Other$withTrailing:{}},pa:3,d:['$','Empty','$m','withTrailing']};};empty$.append=function($dz,$fg2vcd$){var empty$=this;return $dz;};empty$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Other$append'}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Empty,tp:{Other$append:{}},pa:3,d:['$','Empty','$m','append']};};empty$.prepend=function($e0,$aigy05$){var empty$=this;return $e0;};empty$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}}}],$cont:Empty,tp:{Other$prepend:{}},pa:3,d:['$','Empty','$m','prepend']};};empty$.follow=function($e1,$hsos04$){var empty$=this;return sarg$(function($e2){switch($e2){case 0:return $e1;}return finished();},undefined,{Element$Iterable:$hsos04$.Other$follow/*ORALE!Other inv pero Element var*/,Absent$Iterable:{t:Nothing}});};empty$.follow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Other$follow'}},ps:[{nm:'head',mt:'prm',$t:'Other$follow'}],$cont:Empty,tp:{Other$follow:{}},pa:3,d:['$','Empty','$m','follow']};};empty$.sublist=function($e3,$e4){var empty$=this;return empty$;};empty$.sublist.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','sublist']};};empty$.sublistFrom=function($e5){var empty$=this;return empty$;};empty$.sublistFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','sublistFrom']};};empty$.sublistTo=function($e6){var empty$=this;return empty$;};empty$.sublistTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','sublistTo']};};empty$.initial=function($e7){var empty$=this;return empty$;};empty$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','initial']};};empty$.terminal=function($e8){var empty$=this;return empty$;};empty$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','terminal']};};empty$.indexesWhere=function($e9){var empty$=this;return empty$;};empty$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','indexesWhere']};};empty$.firstIndexWhere=function($ea){var empty$=this;return null;};empty$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','firstIndexWhere']};};empty$.lastIndexWhere=function($eb){var empty$=this;return null;};empty$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','lastIndexWhere']};};empty$.$_trim=function($ec){var empty$=this;return empty$;};empty$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','trim']};};empty$.trimLeading=function($ed){var empty$=this;return empty$;};empty$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','trimLeading']};};empty$.trimTrailing=function($ee){var empty$=this;return empty$;};empty$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','trimTrailing']};};empty$.$_slice=function($ef){var empty$=this;return tpl$([empty$,empty$]);};empty$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Empty},{t:Empty}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','slice']};};empty$.each=function($eg){var empty$=this;};empty$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','each']};};})(Empty.$$.prototype);}
return Empty;}
ex$.$init$Empty=$init$Empty;$init$Empty();function $eh(){var empty$=new $eh.$$;$_Object(empty$);Empty(empty$);return empty$;};$eh.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Empty}],d:['$','empty']};};function $init$empty(){if($eh.$$===undefined){initTypeProto($eh,'ceylon.language::empty',$init$$_Object(),$init$Empty());
}
return $eh;}
ex$.$init$empty=$init$empty;$init$empty();var $ej;function empty(){if($ej===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'empty\' before it was set"),'254:0-260:16','Empty.ceylon');if($ej===undefined){$ej=INIT$;$ej=$init$empty()();$ej.$crtmm$=empty.$crtmm$;}
return $ej;}
ex$.empty=empty;empty.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$empty()},pa:1,an:function(){return[doc$($CCMM$,'$:empty'),by(["Tako Schotanus"].$sa$({t:$_String})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','empty']};};$prop$getEmpty=empty;ex$.$prop$getEmpty=$prop$getEmpty;function $ek($$targs$$){var emptyIterator$=new $ek.$$;emptyIterator$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Nothing}},emptyIterator$);return emptyIterator$;};$ek.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Iterator,a:{Element$Iterator:{t:Nothing}}}],d:['$','emptyIterator']};};function $init$emptyIterator(){if($ek.$$===undefined){initTypeProto($ek,'ceylon.language::emptyIterator',Basic,$init$Iterator());
(function(emptyIterator$){emptyIterator$.next=function(){var emptyIterator$=this;return finished();};atr$(emptyIterator$,'string',function(){var emptyIterator$=this;return "empty.iterator()";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$ek,pa:3,d:['$','emptyIterator','$at','string']};});})($ek.$$.prototype);}
return $ek;}
ex$.$init$emptyIterator=$init$emptyIterator;$init$emptyIterator();var $em;function emptyIterator(){if($em===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptyIterator\' before it was set"),'262:0-268:0','Empty.ceylon');if($em===undefined){$em=INIT$;$em=$init$emptyIterator()({Element$Iterator:{t:Nothing}});$em.$crtmm$=emptyIterator.$crtmm$;}
return $em;}
ex$.emptyIterator=emptyIterator;emptyIterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$emptyIterator()},pa:1,an:function(){return[doc$($CCMM$,'$:emptyIterator'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','emptyIterator']};};$prop$getEmptyIterator=emptyIterator;ex$.$prop$getEmptyIterator=$prop$getEmptyIterator;var arrprot$=$_Array.$$.prototype;
function $arr$(a,t,seq) {
if (t===null || t===undefined)t={t:Anything};
var a=$_Array$$c(a,{Element$Array:t});
if (seq)a.$$targs$$.Absent$Iterable={t:Nothing};
return a;
}
ex$.$arr$=$arr$;
Array.prototype.$sa$=function $sa$(t,ne) {
if (this.length===0)return empty();
if (t===null || t===undefined)t={t:Anything};
return ArraySequence($arr$(this,t),{Element$ArraySequence:t});
}
Array.prototype.equals=function arrayEquals(o) {
if (o===undefined||o===null||typeof(o.length)!='number')return false;
if (o.length===this.length) {
for (var i=0;i<this.length;i++) {
if (this[i]===undefined) {
if (o[i]!==undefined)return false;
} else if (this[i]===null) {
if (o[i]!==null)return false;
} else if (!this[i].equals(o[i]))return false;
}
}
return false;
}
function $ci2na$(ci){
if (ci===undefined||ci===empty())return [];
var a=Array(ci.size),i=0,iter=ci.iterator(),next;
while ((next=iter.next())!==finished()) {
a[i++]=next;
}
return a;
}
Array.prototype.contains=function arrayContains(o){
for (var i=0;i<this.length;i++) {
if (o===null) {
if (this[i]===null)return true;
} else if (o===undefined) {
if (this[i]===undefined)return true;
} else if (this[i].equals(o)) return true;
}
return false;
}
empty().nativeArray=function(){return [];}
atr$(arrprot$,'string', function() {
if (this.size===0)return '{}';
var s="{ ";
for (var i=0; i<this.size;i++) {
var e=this.arr$[i];
if (i>0)s+=", ";
if (e===null)s+="<null>";
else if (e===undefined)s+="<undefined>";
else s+= e===this?"<CIRCULAR>":e.string;
}
s+=" }";
return s;
},undefined,$_Object.$$.prototype.$prop$getString.$crtmm$);
atr$(arrprot$,'reversed', function() {
return this.Reversed$List();
},undefined,List.$$.prototype.$prop$getReversed.$crtmm$);
atr$(arrprot$,'rest', function() {
return this.Rest$List(1);
},undefined,List.$$.prototype.$prop$getRest.$crtmm$);
function sarg$(elems,spread,$$targs$$){
$init$sarg();
var that=new sarg$.$$;
Iterable($$targs$$,that);
that.e=elems;
that.s=spread;
return that;
}
sarg$.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{T$LazyIterable:{dv:'out'}},sts:[{t:Iterable,a:{Element$Iterable:'T$LazyIterable',Absent$Iterable:{t:Null}}}],pa:1,d:['$','LazyIterable']};};
ex$.sarg$=sarg$;
function $init$sarg(){if(sarg$.$$===undefined){
initTypeProto(sarg$,'ceylon.language::LazyIterable',Basic,Iterable);
(function(that){
function iter(sarg){
var $$4=new iter.$$;
$$4.outer$=sarg;
$$4.$$targs$$={Element$Iterator:sarg.$$targs$$.Element$Iterable};
Iterator($$4.$$targs$$,$$4);
$$4.i=0;
return $$4;
};
iter.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:iterator,sts:[{t:Iterator,a:{Element$Iterator:'T$LazyIterable'}}],d:['$','LazyIterable','$m','iterator','$o','it']};};
if(iter.$$===undefined){
initTypeProto(iter,'LazyIterable.iterator',Basic,Iterator);
iter.$$.prototype.next=function(){
if (this.sp)return this.sp.next();
var e=this.outer$.e(this.i);
if (e===finished() && this.outer$.s) {
var a=this.outer$.s();
this.sp=(Array.isArray(a)?$arr$(a,{t:Anything}):a).iterator();
e=this.sp.next();
} else {
this.i++;
}
return e;
};
iter.$$.prototype.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['T$LazyIterable',{t:Finished}]},ps:[],$cont:iter,an:function(){return[shared(),actual()];},d:['$','LazyIterable','$m','iterator','$o','it','$m','next']};};
}
that.iterator=function(){
return iter(this);
};
that.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'T$LazyIterable'}},ps:[],$cont:$sarg,an:function(){return[shared(),actual()];},d:['$','LazyIterable','$m','iterator']};};
})(sarg$.$$.prototype);
}
return sarg$;
}
$init$sarg();
ex$.$init$sarg=$init$sarg;
$init$sarg();
function nfor$(c) {
var a = [];
var item;
for (var iter = c.iterator();(item=iter.next())!==finished();){
a.push(item);
}
return a;
}
ex$.nfor$=nfor$;
function variadicness(t) {
if (extendsType(t,{t:Tuple})) {
if (t.t==='T' && t.l.length>0) {
return t.l[t.l.length-1].seq || 0;
}
} else if (extendsType(t,{t:Sequence})) {
return 2;
} else if (extendsType(t,{t:Sequential})) {
return 1;
}
return 0;
}
function $_String(/*{Character*}*/value) {
if (value && value.getT$name && value.getT$name() == 'ceylon.language::String') {
//if it's already a String just return it
return value;
}
else if (typeof(value) === 'string') {
return new String(value);
}
var that = '';
var _iter = value.iterator();
var _c; while ((_c = _iter.next()) !== finished()) {
that += _c.string;
}
return that;
}
$_String.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'characters',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Character}}},an:function(){return[doc$($CCMM$,'$:String:$at:characters$s4g2uj')];}}],sts:[{t:SearchableList,a:{Element$SearchableList:{t:Character}}},{t:Comparable,a:{Other$Comparable:{t:$_String}}},{t:Summable,a:{Other$Summable:{t:$_String}}},{t:Ranged,a:{Subrange$Ranged:{t:$_String},Element$Ranged:{t:Character},Index$Ranged:{t:Integer}}}],pa:33,an:function(){return[doc$($CCMM$,'$:String'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types","Strings"].$sa$({t:$_String})),$_native()];},d:['$','String']};};
ex$.$_String=$_String;function $init$$_String(){if($_String.$$===undefined){initExistingType($_String, String, 'ceylon.language::String', $_Object, $init$SearchableList(), $init$Comparable(),
$init$Ranged(), $init$Summable());
inheritProto($_String, $_Object, SearchableList, Comparable, Ranged, Summable);
var origStrToString = String.prototype.toString;
var str$proto = $_String.$$.prototype;
str$proto.$$targs$$={Element$Iterable:{t:Character}, Absent$Iterable:{t:Null},
Element$List:{t:Character}, Other$Summable:{t:$_String}, Other$Comparable:{t:$_String},
Index$Ranged:{t:Integer}, Element$Ranged:{t:Character}, Subrange$Ranged:{t:$_String},
Element$Collection:{t:Character}, Key$Correspondence:{t:Integer}, Item$Correspondence:{t:Character}};
str$proto.getT$name = function() {
return $_String.$$.T$name;
}
str$proto.getT$all = function() {
return $_String.$$.T$all;
}
str$proto.toString = origStrToString;
(function(string$){atr$(string$,'$en',function(){return this.$en_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Character}}},$cont:$_String,an:function(){return[doc$($CCMM$,'$:String:$at:characters$s4g2uj')];},d:['$','String','$at','characters$s4g2uj']};});atr$(string$,'lowercased',function(){return this.toLowerCase();
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:lowercased'),$_native()];},d:['$','String','$at','lowercased']};});atr$(string$,'uppercased',function(){return this.toUpperCase();
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:uppercased'),$_native()];},d:['$','String','$at','uppercased']};});string$.$_split=function(sep, discard, group) {
//TODO: return a stream
var tokens = [];
// shortcut for empty input
if (this.length === 0) {
tokens.push(this);
return $arr$(tokens,{t:$_String});
}
if (sep === undefined) {sep = function(c){return c.value in Character.WS$;}}
if (discard === undefined) {discard = true}
if (group === undefined) {group = true}
var tokenBegin = 0;
var tokenBeginCount = 0;
var count = 0;
var value = this;
var separator = true;
function pushToken(tokenEnd) {
tokens.push($_String(value.substring(tokenBegin, tokenEnd)));
}
for (var i=0; i<this.length; ++count) {
var j = i;
var cp = this.charCodeAt(i++);
if ((cp&0xfc00)===0xd800 && i<this.length) {
cp = (cp<<10) + this.charCodeAt(i++) - 0x35fdc00;
}
if (sep(Character(cp))) {
if (!group) {
// ungrouped separator: store preceding token
pushToken(j);
if (!discard) {
// store separator as token
tokens.push($_String(this.substring(j, i)));
}
// next token begins after this character
tokenBegin = i;
tokenBeginCount = count + 1;
} else if (!separator || (j == 0)) {
// begin of grouped separator: store preceding token
pushToken(j);
// separator token begins at this character
tokenBegin = j;
tokenBeginCount = count;
}
separator = true;
} else if (separator) {
// first non-separator after separators or at beginning
if (!discard && (tokenBegin != j)) {
// store preceding grouped separator (if group=false then tokenBegin=j)
pushToken(j);
}
// non-separator token begins at this character
tokenBegin = j;
tokenBeginCount = count;
separator = false;
}
}
if ((tokenBegin != i) && !(separator && discard)) {
// store preceding token (may be a grouped separator)
pushToken(i);
}
if (separator) {
// if last character was a separator then there's another empty token
tokens.push("");
}
return $arr$(tokens,{t:$_String});
}
string$.$_split.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:$_String}}},ps:[{nm:'splitting',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'ch',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:split:$m:splitting$5m47i6')];}},{nm:'discardSeparators',mt:'prm',def:1,$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:split:$at:discardSeparators$2xsqte')];}},{nm:'groupSeparators',mt:'prm',def:1,$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:split:$at:groupSeparators$5fnjcr')];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:split'),$_native()];},d:['$','String','$m','split']};};atr$(string$,'first',function(){return this.$_get(0);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:first'),$_native()];},d:['$','String','$at','first']};});atr$(string$,'last',function(){return this.$_get(this.size-1);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:last'),$_native()];},d:['$','String','$at','last']};});atr$(string$,'rest',function(){return $_String(this.Rest$List(1));
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:rest'),$_native()];},d:['$','String','$at','rest']};});string$.getFromLast=function getFromLast(i){
return this.getFromFirst(this.size-1-i);
}
string$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:getFromLast'),$_native()];},d:['$','String','$m','getFromLast']};};atr$(string$,'keys',function(){var string$=this;return measure((0),string$.size,{Element$measure:{t:Integer}});},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Integer}}},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:keys'),$_native()];},d:['$','String','$at','keys']};});string$.$_join=function(objects) {
var it = objects.iterator();
var obj = it.next();
if (obj === finished()) {return "";}
var str = obj.string;
var result = str;
while ((obj = it.next()) !== finished()) {
result += this;
str = obj.string;
result += str;
}
return $_String(result);
}
string$.$_join.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'objects',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Object}}}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:join'),$_native()];},d:['$','String','$m','join']};};atr$(string$,'lines',function(){var string$=this;return string$.$_split($JsCallable(($eo=Character(10,true),JsCallable($eo,$eo.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),true,false).spread($JsCallable(function(x){return JsCallable(x,x.trimTrailing);},[{nm:'_0',mt:'prm',$t:{t:$_String}}],{Return$Callable:{t:Callable,a:{Return$Callable:{t:$_String},Arguments$Callable:mtt$([{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}}])}},Arguments$Callable:mtt$([{t:$_String}])}),{Result$spread:{t:$_String},Args$spread:mtt$([{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}}])})($JsCallable(($ep=Character(13,true),JsCallable($ep,$ep.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}));},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:lines'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLinesWithBreaks)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','lines']};});atr$(string$,'linesWithBreaks',function(){var string$=this;return string$.$_split($JsCallable(($eq=Character(10,true),JsCallable($eq,$eq.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),false,false).partition(2).$_map($JsCallable((function($er){return function(){var $es=$er.$_get(0),$et=$er.$_get(1);return function(){var $eu;if(nn$(($eu=$et)))return $es.plus($eu);else return $es}();}();}),[{nm:'lineWithBreak',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:$_String}}}}],{Return$Callable:{t:$_String},Arguments$Callable:mtt$([{t:'u',l:[{t:Sequence,a:{Element$Sequence:{t:$_String}}},{t:$_String}],seq:2}])}),{Result$map:{t:$_String}});},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:linesWithBreaks'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLines)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','linesWithBreaks']};});atr$(string$,'trimmed',function(){var string$=this;return string$.$_trim($JsCallable(function($O$){return $O$.whitespace;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:trimmed'),$_native()];},d:['$','String','$at','trimmed']};});string$.$_trim=function(/*Category*/chars) {
var from = 0;
var size=this.size;
while (from<size && chars(this.$_get(from))) {++from}
var to = size;
if (from < to) {
do {--to} while (from<to && chars(this.$_get(to)));
++to;
}
if (from===0 && to===size) {return this;}
var result = this.substring(from, to);
return result;
}
string$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:trim:$m:trimming$kmx737')];}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:trim'),$_native()];},d:['$','String','$m','trim']};};string$.trimLeading=function(/*Category*/chars) {
var from = 0;
while (from<this.length && chars(this.$_get(from))) {++from}
if (from===0) {return this;}
var result = this.substring(from, this.length);
return result;
}
string$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:trimLeading:$m:trimming$9a2hu7')];}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:trimLeading'),$_native()];},d:['$','String','$m','trimLeading']};};string$.trimTrailing=function(/*Boolean(Character)*/chars) {
var to = this.size;
if (to > 0) {
do {--to} while (to>=0 && chars(this.$_get(to)));
++to;
}
if (to===this.size) {return this;}
else if (to===0) { return ""; }
var result = this.substring(0, to);
return result;
}
string$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing:$m:trimming$dvg0e1')];}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing'),$_native()];},d:['$','String','$m','trimTrailing']};};atr$(string$,'normalized',function(){// make use of the fact that all WS characters are single UTF-16 code units
var result = "";
var len = 0;
var first = true;
var i1 = 0;
while (i1 < this.length) {
while (this.charCodeAt(i1) in Character.WS$) {
if (++i1 >= this.length) {return result;}
}
var i2 = i1;
var cc = this.charCodeAt(i2);
do {
++i2;
if ((cc&0xfc00) === 0xd800) {++i2}
++len;
cc = this.charCodeAt(i2);
} while (i2<this.length && !(cc in Character.WS$));
if (!first) {
result += " ";
++len;
}
first = false;
result += this.substring(i1, i2);
i1 = i2+1;
}
return $_String(result, len);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:normalized'),$_native()];},d:['$','String','$at','normalized']};});atr$(string$,'reversed',function(){var result = "";
for (var i=this.length; i>0;) {
var cc = this.charCodeAt(--i);
if ((cc&0xfc00)!==0xdc00 || i===0) {
result += this.charAt(i);
} else {
result += this.substr(--i, 2);
}
}
return result;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:reversed'),$_native()];},d:['$','String','$at','reversed']};});string$.defines=function(i) {
return i>=0 && i<this.size;
}
string$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:defines'),$_native()];},d:['$','String','$m','defines']};};string$.span=function(from, to) {
if (from > to) {
return this.measure(to, from-to+1).reversed;
}
return this.measure(from, to-from+1);
}
string$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:span'),$_native()];},d:['$','String','$m','span']};};string$.spanFrom=function($ev){var string$=this;return ($ew=(($ev<string$.size)?string$.span($ev,string$.size):null),nn$($ew)?$ew:"");};string$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:spanFrom'),$_native()];},d:['$','String','$m','spanFrom']};};string$.spanTo=function($ex){var string$=this;return ($ey=(($ex>=0)?string$.span(0,$ex):null),nn$($ey)?$ey:"");};string$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:spanTo'),$_native()];},d:['$','String','$m','spanTo']};};string$.measure=function(from, len) {
var fromIndex = from;
var maxCount = len + fromIndex;
if (fromIndex < 0) {fromIndex = 0;}
var i1 = 0;
var count = 0;
for (; i1<this.length && count<fromIndex; ++i1, ++count) {
if ((this.charCodeAt(i1)&0xfc00) === 0xd800) {++i1}
}
var i2 = i1;
for (; i2<this.length && count<maxCount; ++i2, ++count) {
if ((this.charCodeAt(i2)&0xfc00) === 0xd800) {++i2}
}
if (i2 >= this.length) {
if (fromIndex === 0) {return this;}
}
return $_String(this.substring(i1, i2));
}
string$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:measure'),$_native()];},d:['$','String','$m','measure']};};string$.initial=function(length) {
if (length >= this.size) {return this}
var count = 0;
var i = 0;
for (; i<this.length && count<length; ++i, ++count) {
if ((this.charCodeAt(i)&0xfc00) === 0xd800) {++i}
}
if (i >= this.length) {
return this;
}
return $_String(this.substr(0, i));
}
string$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:initial'),$_native()];},d:['$','String','$m','initial']};};string$.terminal=function(length) {
if (length >= this.size) {return this}
var count = 0;
var i = this.length;
for (; i>0 && count<length; ++count) {
if ((this.charCodeAt(--i)&0xfc00) === 0xdc00) {--i}
}
if (i <= 0) {
return this;
}
return $_String(this.substr(i));
}
string$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:terminal'),$_native()];},d:['$','String','$m','terminal']};};string$.$_slice=function(idx) {
var s1 = idx>0 ? this.measure(0,idx) : '';
if (idx<0)idx=0;
var s2 = idx<this.size ? this.measure(idx,this.size) : '';
return tpl$([s1,s2]);
}
string$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:$_String},{t:$_String}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:slice'),$_native()];},d:['$','String','$m','slice']};};atr$(string$,'size',function(){if (this.$codept$===undefined) {
this.$codept$=countCodepoints(this);
}
return this.$codept$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:size'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.longerThan),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.shorterThan)].$sa$({t:FunctionDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','size']};});atr$(string$,'lastIndex',function(){var string$=this;return (((string$.size).valueOf()==(0).valueOf())?null:string$.size.minus(1));},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:lastIndex')];},d:['$','String','$at','lastIndex']};});string$.iterator=function(){
return this.length === 0 ? emptyIterator() : StringIterator(this);
}
string$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Character}}},ps:[],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:iterator'),$_native()];},d:['$','String','$m','iterator']};};string$.getFromFirst=function(index){
if (index<0 || index>=this.length)
return null;
if (this._bumps===undefined)
this._bumps=[];
var cnt=0;
var mb=0;
for (var i=0;i<this._bumps.length;i++) {
mb=this._bumps[i];
if (mb<index)cnt++;
}
if (index<=this._maxidx) {
index+=cnt;
return Character(codepointFromString(this, index));
}
if (this._maxidx>mb)
mb=this._maxidx;
for (cnt=mb; cnt<index; cnt++) {
if ((this.charCodeAt(mb)&0xfc00) === 0xd800) {
this._bumps.push(mb);
++mb;
}
if (++mb >= this.length)
return null;
}
if (this._maxidx===undefined || mb>this._maxidx)
this._maxidx=mb;
return Character(codepointFromString(this, mb));
}
string$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:getFromFirst'),$_native()];},d:['$','String','$m','getFromFirst']};};string$.contains=function(sub) {
var str;
if (sub.constructor === String) {str = sub}
else if (sub.constructor !== Character.$$) {return false}
else {str = codepointToString(sub.value)}
return this.indexOf(str) >= 0;
}
string$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:contains'),$_native()];},d:['$','String','$m','contains']};};string$.startsWith=function(str) {
if (str.size > this.size) {return false}
return cmpSubString(this, str, 0);
}
string$.startsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'substring',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','startsWith']};};string$.endsWith=function(str) {
var start = this.length - str.length
if (start < 0) {return false}
return cmpSubString(this, str, start);
}
string$.endsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'substring',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','endsWith']};};string$.plus=function(other) {
if (!is$(other,{t:$_String}))throw new TypeError("Expected String");
return $_String(this+other);
}
string$.plus.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:plus'),$_native()];},d:['$','String','$m','plus']};};string$.repeat=function(times) {
var x = this;
var s = "";
while (true) {
if (times & 1) { s += x; }
times >>= 1;
if (times) { x += x; }
else { break; }
}
return s;
}
string$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:repeat'),$_native()];},d:['$','String','$m','repeat']};};string$.$_replace=function(sub, repl) {
var result = this;
var index = -1;
var from = 0;
while ((index = result.indexOf(sub,from)) >= 0) {
result = result.substring(0, index) + repl +
result.substring(index + sub.length);
from = index + repl.length;
}
return result;
}
string$.$_replace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'substring',mt:'prm',$t:{t:$_String}},{nm:'replacement',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:replace'),$_native()];},d:['$','String','$m','replace']};};string$.replaceFirst=function(sub, repl) {
var index = this.indexOf(sub);
if (index >= 0) {
return this.substring(0, index) + repl +
this.substring(index + sub.length);
}
return this;
}
string$.replaceFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'substring',mt:'prm',$t:{t:$_String}},{nm:'replacement',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:replaceFirst'),$_native()];},d:['$','String','$m','replaceFirst']};};string$.replaceLast=function(sub, repl) {
var index = this.lastIndexOf(sub);
if (index >= 0) {
return this.substring(0, index) + repl +
this.substring(index + sub.length);
}
return this;
}
string$.replaceLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'substring',mt:'prm',$t:{t:$_String}},{nm:'replacement',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:replaceLast'),$_native()];},d:['$','String','$m','replaceLast']};};string$.compare=function(other) {
if (!is$(other,{t:$_String}))throw new TypeError("String expected");
return this==other ?
equal() :
(this<other ? smaller():larger());
}
string$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:compare'),$_native()];},d:['$','String','$m','compare']};};string$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:compare'),$_native()];},d:['$','String','$m','compare']};};string$.compareIgnoringCase=function($ez){var string$=this;var $f0=smallest(string$.size,$ez.size,{Element$smallest:{t:Integer}});var $f2=(0),$f3=$f0;for(var $f4=0;$f4<$f3;$f4++,($f2=$f2.successor)){var $f5,$f6;asrt$((nn$(($f5=string$.getFromFirst($f2)))&&nn$(($f6=$ez.getFromFirst($f2)))),"Assertion failed: \'exists thisChar = this.getFromFirst(i),\n                    exists thatChar = other.getFromFirst(i)\' at String.ceylon (408:19-409:59)",'408:12-409:60','String.ceylon');
if((((!$f5.equals($f6))&&(!$f5.uppercased.equals($f6.uppercased)))&&(!$f5.lowercased.equals($f6.lowercased)))){return $f5.lowercased.compare($f6.lowercased);}
}return string$.size.compare($ez.size);};string$.compareIgnoringCase.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:compareIgnoringCase'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getLowercased),$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getUppercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','compareIgnoringCase']};};string$.longerThan=function(length) {
//TODO: OPTIMIZE THIS!
if (this.size <= length) {return false}
if (this.size<<1 > length) {return true}
return this.size>length;
}
string$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:longerThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','longerThan']};};string$.shorterThan=function(length) {
//TODO: OPTIMIZE THIS!
if (this.size < length) {return true}
if (this.size<<1 >= length) {return false}
return this.size<length;
}
string$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:shorterThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','shorterThan']};};string$.equals=function(other) {
if (other.constructor===String) {
return other.valueOf()===this.valueOf();
} else if (is$(other, {t:$_String})) {
if (other.size===this.size) {
var oi=other.iterator();
var ti=this.iterator();
var oc=oi.next(); var tc;
while((tc=ti.next())!=finished()){
if (!tc.equals(oc))return false;
oc=oi.next();
}
return true;
}
}
return false;
}
string$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:equals'),$_native()];},d:['$','String','$m','equals']};};string$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:equals'),$_native()];},d:['$','String','$m','equals']};};string$.equalsIgnoringCase=function($f7){var string$=this;if(!(string$.size==$f7.size)){return false;}
var $f8=smallest(string$.size,$f7.size,{Element$smallest:{t:Integer}});var $fa=(0),$fb=$f8;for(var $fc=0;$fc<$fb;$fc++,($fa=$fa.successor)){var $fd,$fe;asrt$((nn$(($fd=string$.getFromFirst($fa)))&&nn$(($fe=$f7.getFromFirst($fa)))),"Assertion failed: \'exists thisChar = this.getFromFirst(i),\n                    exists thatChar = that.getFromFirst(i)\' at String.ceylon (470:19-471:58)",'470:12-471:59','String.ceylon');
if((((!$fd.equals($fe))&&(!$fd.uppercased.equals($fe.uppercased)))&&(!$fd.lowercased.equals($fe.lowercased)))){return false;}
}return true;};string$.equalsIgnoringCase.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:equalsIgnoringCase'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getLowercased),$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getUppercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','equalsIgnoringCase']};};atr$(string$,'hash',function(){if (this._hash === undefined) {
var h=0;
for (var i = 0; i < this.length; i++) {
var c = this.charCodeAt(i);
h=(31*h+c)&0xffffffff;
}
this._hash=h;
}
return this._hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$at','hash']};});atr$(string$,'string',function(){var string$=this;return string$;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc("This string.")];},d:['$','String','$at','string']};});atr$(string$,'empty',function(){return this.length===0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:empty'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','empty']};});atr$(string$,'coalesced',function(){var string$=this;return string$;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc("This string.")];},d:['$','String','$at','coalesced']};});string$.clone=function(){var string$=this;return string$;};string$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[],$cont:$_String,pa:3,an:function(){return[doc("This string.")];},d:['$','String','$m','clone']};};string$.pad=function(size, character) {
var total = size - this.size;
if (total<=0) return this;
var right = Math.ceil(total / 2);
var left = total - right;
var c = (character || ' ').string;
return Array(left+1).join(c) + this +
Array(right+1).join(c);
}
string$.pad.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',def:1,$t:{t:Character},an:function(){return[doc("The padding character")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:pad'),$_native()];},d:['$','String','$m','pad']};};string$.padLeading=function(size, character) {
var total = size - this.size;
if (total<=0) return this;
var c = (character || ' ').string;
return Array(total+1).join(c) + this;
}
string$.padLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',def:1,$t:{t:Character},an:function(){return[doc("The padding character")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:padLeading'),$_native()];},d:['$','String','$m','padLeading']};};string$.padTrailing=function(size, character) {
var total = size - this.size;
if (total<=0) return this;
var c = (character || ' ').string;
return this + Array(total+1).join(c);
}
string$.padTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',def:1,$t:{t:Character},an:function(){return[doc("The padding character")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:padTrailing'),$_native()];},d:['$','String','$m','padTrailing']};};string$.copyTo=function(d,sp,dp,l){
if (sp===undefined)sp=0;
if (dp===undefined)dp=0;
if (l===undefined)l=Math.min(this.size-sp,d.size-dp);
if (l===0)return;
for (var i=sp;i<sp+l;i++){
d.set(dp++,this.$_get(i));
}
}
string$.copyTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'destination',mt:'prm',$t:{t:$_Array,a:{Element$Array:{t:Character}}},an:function(){return[doc("The array into which to copy the elements.")];}},{nm:'sourcePosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:String:$m:copyTo:$at:sourcePosition$t0pcyo')];}},{nm:'destinationPosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:String:$m:copyTo:$at:destinationPosition$hqb597')];}},{nm:'length',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc("The number of elements to copy.")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:copyTo'),$_native()];},d:['$','String','$m','copyTo']};};string$.sublistFrom=function(from){
return this.spanFrom(from);
}
string$.sublistFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Character}}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','sublistFrom']};};string$.sublistTo=function(to){
return this.spanTo(to);
}
string$.sublistTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Character}}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','sublistTo']};};string$.indexesWhere=function(f){
var r=[];
for (var i=0;i<this.size;i++) {
if (f(this.$_get(i)))r.push(i);
}
return r.length>0?$arr$(r,{t:Integer}):empty();
}
string$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','indexesWhere']};};string$.firstIndexWhere=function(f){
for (var i=0;i<this.size;i++) {
if (f(this.$_get(i)))return i;
}
return null
}
string$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','firstIndexWhere']};};string$.lastIndexWhere=function(f){
for (var i=this.size-1; i>=0;i--) {
var c = this.$_get(i);
if (f(c))return i;
}
return null;
}
string$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','lastIndexWhere']};};string$.occurrences=function(e,from,len){
if (from===undefined||from<0)from=0;
if (len===undefined)len=this.size;
var r=[];
for (var i=from;i<len;i++) {
if (this.$_get(i).equals(e))r.push(i);
}
return r.length>0?$arr$(r,{t:Integer}):empty();
}
string$.occurrences.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','occurrences']};};string$.inclusions=function (e,from) {
if (e.size===0) return span(0,this.size,{t:Integer});
if (from===undefined||from<0)from=0;
else if (from>=this.size)return empty();
if (is$(e, {t:$_String})) {
var indexes = [];
for (var i=from; i < this.size-e.size + 1; i++) {
if (cmpSubString(this, e, i))indexes.push(i);
}
return $arr$(indexes,{t:Integer});
}
else {
return SearchableList.$$.prototype.inclusions.call(this,e,from);
}
}
string$.inclusions.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','inclusions']};};string$.occurs=function (e,from,len) {
var fo=this.firstOccurrence(e,from,len);
return fo!==null && fo>=0;
}
string$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','occurs']};};string$.occursAt=function (i,e) {
return e.equals(this.getFromFirst(i));
}
string$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:{t:Character}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','occursAt']};};string$.includes=function (e,from) {
if (e.size===0)return true;
if (from===undefined||from<0)from=0;
else if (from>=this.size)return false;
if (is$(e, {t:$_String})) {
var fi=this.firstInclusion(e,from);
return fi!==null && fi>=0;
}
else {
return SearchableList.$$.prototype.includes.call(this,e,from);
}
}
string$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','includes']};};string$.includesAt=function (i,e) {
if (e.size===0)return true;
if (is$(e, {t:$_String})) {
if (i<0 || i>this.size-e.size)return false;
return cmpSubString(this,e,i);
}
else {
return SearchableList.$$.prototype.includesAt.call(this,i,e);
}
}
string$.includesAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','includesAt']};};string$.firstOccurrence=function(subc,from,len) {
if (!is$(subc, {t:Character})) return null;
if (from===undefined || from<0)from=0;
else if (from>=this.size)return null;
if (len===undefined)len=this.size-from;
var lim=len+from;
if (lim>this.size)lim=this.size;
for (var i=from, count=0; i<lim; count++) {
var cp = this.charCodeAt(i++);
if (((cp&0xfc00) === 0xd800) && i<this.length) {
cp = (cp<<10) + this.charCodeAt(i++) - 0x35fdc00;
}
if (cp === subc.value) {return count+from;}
}
return null;
}
string$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','firstOccurrence']};};string$.lastOccurrence=function(subc,from,len) {
if (from===undefined||from<0)from=0;
else if (from>this.size)return null;
if (len===undefined)len=this.size-from;
var end=this.size-len-from;
for (var i=this.size-from-1, count=0; i>=end; count++) {
var cp = this.charCodeAt(i--);
if (((cp%0xfc00) === 0xdc00) && i>=0) {
cp = (this.charCodeAt(i--)<<10) + cp - 0x35fdc00;
}
if (cp === subc.value) {
return this.size-from-count-1;
}
}
return null;
}
string$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','lastOccurrence']};};string$.firstInclusion=function (e,from) {
if (from===undefined || from<0)from=0;
else if (from>this.size)return null;
if (e.size===0)return from;
if (is$(e, {t:$_String})) {
for (var i=from; i < this.size-e.size+1; i++) {
if (cmpSubString(this,e,i))return i;
}
return null;
}
else {
return SearchableList.$$.prototype.firstInclusion.call(this,e,from);
}
}
string$.firstInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','firstInclusion']};};string$.lastInclusion=function (e,from) {
if (from===undefined)from=0;
if (e.size===0) return this.size-from;
if (is$(e, {t:$_String})) {
for (var i=this.size-from-e.size; i>=0; i--) {
if (cmpSubString(this,e,i))return i;
}
return null;
}
else {
return SearchableList.$$.prototype.lastInclusion.call(this,e,from);
}
}
string$.lastInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','lastInclusion']};};string$.largerThan=function(o){
return Comparable.$$.prototype.largerThan.call(this,o);
}
string$.largerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','largerThan']};};string$.smallerThan=function(o){
return Comparable.$$.prototype.smallerThan.call(this,o);
}
string$.smallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','smallerThan']};};string$.notSmallerThan=function(o){
return Comparable.$$.prototype.notSmallerThan.call(this,o);
}
string$.notSmallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','notSmallerThan']};};string$.notLargerThan=function(o){
return Comparable.$$.prototype.notLargerThan.call(this,o);
}
string$.notLargerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','notLargerThan']};};string$.each=function(f){
for (var i=0;i<this.size;i++) {
f(this.$_get(i));
}
}
string$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','each']};};string$.count=function(f){
var c=0;
for (var i=0;i<this.size;i++){
if (f(this.$_get(i)))c++;
}
return c;
}
string$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','count']};};string$.$_every=function(f) {
for (var i=0;i<this.size;i++){
if (!f(this.$_get(i)))return false;
}
return true;
}
string$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','every']};};string$.any=function(f) {
for (var i=0;i<this.size;i++) {
if (f(this.$_get(i)))return true;
}
return false;
}
string$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','any']};};string$.$_reduce=function(f){
if (this.length===0)return null;
var r=this.$_get(0);
for (var i=1;i<this.size;i++) {
r=f(r,this.$_get(i));
}
return r;
}
string$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce',{t:Character},{t:Null}]},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce',{t:Character}]},{t:Character}]}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce',{t:Character}]}},{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,tp:{Result$reduce:{}},pa:3,an:function(){return[$_native()];},d:['$','String','$m','reduce']};};string$.find=function(f){
for (var i=0;i<this.size;i++){
if (f(this.$_get(i)))return this.$_get(i);
}
return null;
}
string$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','find']};};string$.findLast=function(f){
for (var i=this.size-1;i>=0;i--){
if (f(this.$_get(i)))return this.$_get(i);
}
return null;
}
string$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','findLast']};};string$.locate=function(f){
for (var i=0;i<this.size;i++){
if (f(this.$_get(i)))return Entry(i,this.$_get(i),{Key$Entry:{t:Integer},Item$Entry:{t:Character}});
}
return null;
}
string$.locate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','locate']};};string$.locateLast=function(f){
for (var i=this.size-1;i>=0;i--){
if (f(this.$_get(i)))return Entry(i,this.$_get(i),{Key$Entry:{t:Integer},Item$Entry:{t:Character}});
}
return null;
}
string$.locateLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','locateLast']};};string$.locations=function(f){
var r=[];
var _t={t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}};
for (var i=0;i<this.size;i++) {
var c=this.$_get(i);
if (f(c))r.push(Entry(i,c,_t.a));
}
return r.length>0?$arr$(r,_t):empty();
}
string$.locations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','locations']};};})($_String.$$.prototype);}
return $_String;}
ex$.$init$$_String=$init$$_String;$init$$_String();var $eo,$ep,$eq,$ew,$ey;function cmpSubString(str, subStr, offset) {
for (var i=0; i<subStr.length; ++i) {
if (str.charCodeAt(offset+i)!==subStr.charCodeAt(i)) {return false}
}
return true;
}
function StringIterator(string) {
var that = new StringIterator.$$;
that.str = string;
that.index = 0;
return that;
}
StringIterator.$crtmm$=function(){return{nm:'StringIterator',mt:'c',ps:[{nm:'string',$t:{t:$_String}}],pa:1,mod:$CCMM$,d:['$','Iterator']}};
initTypeProto(StringIterator, 'ceylon.language::StringIterator', $init$Basic(), Iterator);
var StringIterator$proto = StringIterator.$$.prototype;
StringIterator$proto.$$targs$$={Element$Iterator:{t:Character}, Absent$Iterator:{t:Null}};
StringIterator$proto.next = function() {
if (this.index >= this.str.length) { return finished(); }
var first = this.str.charCodeAt(this.index++);
if ((first&0xfc00) !== 0xd800 || this.index >= this.str.length) {
return Character(first);
}
return Character((first<<10) + this.str.charCodeAt(this.index++) - 0x35fdc00);
}
function countCodepoints(str) {
var count = 0;
for (var i=0; i<str.length; ++i) {
++count;
if ((str.charCodeAt(i)&0xfc00) === 0xd800) {++i}
}
return count;
}
function codepointToString(cp) {
if (cp <= 0xffff) {
return String.fromCharCode(cp);
}
return String.fromCharCode((cp>>10)+0xd7c0, (cp&0x3ff)+0xdc00);
}
function codepointFromString(str, index) {
var first = str.charCodeAt(index);
if ((first&0xfc00) !== 0xd800) {return first}
var second = str.charCodeAt(index+1);
return isNaN(second) ? first : ((first<<10) + second - 0x35fdc00);
}
ex$.codepointFromString=codepointFromString;
var properties = {};
if (typeof navigator !== "undefined") {
if (navigator.language !== undefined) {
properties["user.language"] = $_String(navigator.language);
}
if (navigator.platform !== undefined) {
properties["os.name"] = $_String(navigator.platform);
}
if (navigator.languages||navigator.userLanguage||navigator.browserLanguage||navigator.language) {
properties["user.locale"]=$_String((navigator.languages || [navigator.userLanguage||navigator.browserLanguage||navigator.language])[0]);
}
if (navigator.appVersion !== undefined) {
properties["browser.version"] = $_String(navigator.appVersion);
}
}
if (typeof process !== "undefined") {
if (process.platform !== undefined) {
properties["os.name"] = $_String(process.platform);
}
if (process.arch !== undefined) {
properties["os.arch"] = $_String(process.arch);
}
if (process.versions !== undefined && process.versions.node != undefined) {
properties["node.version"] = $_String(process.versions.node);
}
}
if (typeof document !== "undefined") {
if (document.defaultCharset !== undefined) {
properties["file.encoding"] = $_String(document.defaultCharset);
}
}
var linesep = '\n';
var filesep = '/';
var pathsep = ':';
var osname = properties["os.name"];
if ((osname !== undefined) && (osname.search(/win/i) >= 0 && osname.search(/darwin/i)<0)) {
linesep = "\r\n";
filesep = '\\';
pathsep = ';';
}
properties["line.separator"] = linesep;
properties["file.separator"] = filesep;
properties["path.separator"] = pathsep;
function _process_pick_writeLine() {
if ((typeof process !== "undefined") && (process.stdout !== undefined)) {
return function(line) {
if(line)this.write(line.valueOf());
this.write(linesep.valueOf());
}
} else if ((typeof console !== "undefined") && (console.log !== undefined)) {
return function(line) {
console.log(line?line.valueOf():'');
}
}
return function(){};
}
function _process_pick_writeErrorLine() {
if ((typeof process !== "undefined") && (process.stderr !== undefined)) {
return function(line) {
if(line)this.writeError(line.valueOf());
this.writeError(linesep.valueOf());
}
} else if ((typeof console !== "undefined") && (console.error !== undefined)) {
return function(line) {
console.error(line?line.valueOf():'');
}
}
return function(x){this.writeLine(x);}
}
function Annotated(annotated$){}
Annotated.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Annotated'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','Annotated']};};
ex$.Annotated=Annotated;function $init$Annotated(){if(Annotated.$$===undefined){initTypeProtoI(Annotated,'ceylon.language::Annotated');
(function(annotated$){annotated$.annotated={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Annotated,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'$:Annotated:$m:annotated')];},d:['$','Annotated','$m','annotated']};}};})(Annotated.$$.prototype);}
return Annotated;}
ex$.$init$Annotated=$init$Annotated;$init$Annotated();function Annotation(annotation$){}
Annotation.$crtmm$=function(){return{mod:$CCMM$,of:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:Anything},ProgramElement$ConstrainedAnnotation:{t:Nothing},Value$ConstrainedAnnotation:{t:Annotation},Type$ConstrainedAnnotation:{t:Anything}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Annotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),OptionalAnnotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),SequencedAnnotation),$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),annotations$meta),$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),optionalAnnotation$meta),$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),sequencedAnnotations$meta)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])))];},d:['$','Annotation']};};
ex$.Annotation=Annotation;function $init$Annotation(){if(Annotation.$$===undefined){initTypeProtoI(Annotation,'ceylon.language::Annotation');
}
return Annotation;}
ex$.$init$Annotation=$init$Annotation;$init$Annotation();function ArraySequence($ff,$$targs$$,arraySequence$){$init$ArraySequence();
if(arraySequence$===undefined)arraySequence$=new ArraySequence.$$;
set_type_args(arraySequence$,$$targs$$);
arraySequence$.$ff_=$ff;$_Object(arraySequence$);Sequence({Element$Sequence:$$targs$$.Element$ArraySequence},arraySequence$);asrt$((!arraySequence$.$ff.empty),"Assertion failed: \'!array.empty\' at ArraySequence.ceylon (20:11-20:24)",'20:4-20:25','ArraySequence.ceylon');
arraySequence$.getFromFirst=function($fg){return arraySequence$.$ff.getFromFirst($fg);};arraySequence$.contains=function($fh){return arraySequence$.$ff.contains($fh);};atr$(arraySequence$,'size',function(){return arraySequence$.$ff.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','size']};});arraySequence$.iterator=function(){return arraySequence$.$ff.iterator();};atr$(arraySequence$,'rest',function(){return ($fi=(((arraySequence$.size).valueOf()==(1).valueOf())?empty():null),nn$($fi)?$fi:ArraySequence(arraySequence$.$ff.spanFrom(1),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','rest']};});var $fi;arraySequence$.clone=function(){return ArraySequence(arraySequence$.$ff.clone(),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});};arraySequence$.each=function($fj){return arraySequence$.$ff.each(JsCallable(arraySequence$,$fj));};arraySequence$.count=function($fk){return arraySequence$.$ff.count(JsCallable(arraySequence$,$fk));};arraySequence$.$_every=function($fl){return arraySequence$.$ff.$_every(JsCallable(arraySequence$,$fl));};arraySequence$.any=function($fm){return arraySequence$.$ff.any(JsCallable(arraySequence$,$fm));};arraySequence$.find=function($fn){return arraySequence$.$ff.find(JsCallable(arraySequence$,$fn));};arraySequence$.findLast=function($fo){return arraySequence$.$ff.findLast(JsCallable(arraySequence$,$fo));};return arraySequence$;}
ArraySequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'array',mt:'prm',$t:{t:$_Array,a:{Element$Array:'Element$ArraySequence'}}}],tp:{Element$ArraySequence:{dv:'out'}},sts:[{t:Sequence,a:{Element$Sequence:'Element$ArraySequence'}}],pa:2097,an:function(){return[doc$($CCMM$,'$:ArraySequence'),by(["Tom"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),sequence)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Collections","Sequences"].$sa$({t:$_String}))];},d:['$','ArraySequence']};};
ex$.ArraySequence=ArraySequence;function $init$ArraySequence(){if(ArraySequence.$$===undefined){initTypeProto(ArraySequence,'ceylon.language::ArraySequence',$init$$_Object(),$init$Sequence());
(function(arraySequence$){atr$(arraySequence$,'$ff',function(){return this.$ff_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$ArraySequence'}},$cont:ArraySequence,d:['$','ArraySequence','$at','array$sfdy8d']};});arraySequence$.getFromFirst=function($fg){var arraySequence$=this;return arraySequence$.$ff.getFromFirst($fg);};arraySequence$.contains=function($fh){var arraySequence$=this;return arraySequence$.$ff.contains($fh);};atr$(arraySequence$,'size',function(){var arraySequence$=this;return arraySequence$.$ff.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','size']};});arraySequence$.iterator=function(){var arraySequence$=this;return arraySequence$.$ff.iterator();};atr$(arraySequence$,'first',function(){var arraySequence$=this;var $fp;if(nn$(($fp=arraySequence$.$ff.first))){return $fp;}
else{var $fq;asrt$((is$(($fq=null),arraySequence$.$$targs$$.Element$ArraySequence)),"Assertion failed: \'is Element null\' at ArraySequence.ceylon (37:19-37:35)",'37:12-37:36','ArraySequence.ceylon');
return null;}
},undefined,function(){return{mod:$CCMM$,$t:'Element$ArraySequence',$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','first']};});atr$(arraySequence$,'last',function(){var arraySequence$=this;var $fr;if(nn$(($fr=arraySequence$.$ff.last))){return $fr;}
else{var $fs;asrt$((is$(($fs=null),arraySequence$.$$targs$$.Element$ArraySequence)),"Assertion failed: \'is Element null\' at ArraySequence.ceylon (47:19-47:35)",'47:12-47:36','ArraySequence.ceylon');
return null;}
},undefined,function(){return{mod:$CCMM$,$t:'Element$ArraySequence',$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','last']};});atr$(arraySequence$,'rest',function(){var arraySequence$=this;return ($ft=(((arraySequence$.size).valueOf()==(1).valueOf())?empty():null),nn$($ft)?$ft:ArraySequence(arraySequence$.$ff.spanFrom(1),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','rest']};});arraySequence$.clone=function(){var arraySequence$=this;return ArraySequence(arraySequence$.$ff.clone(),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});};arraySequence$.each=function($fj){var arraySequence$=this;return arraySequence$.$ff.each(JsCallable(arraySequence$,$fj));};arraySequence$.count=function($fk){var arraySequence$=this;return arraySequence$.$ff.count(JsCallable(arraySequence$,$fk));};arraySequence$.$_every=function($fl){var arraySequence$=this;return arraySequence$.$ff.$_every(JsCallable(arraySequence$,$fl));};arraySequence$.any=function($fm){var arraySequence$=this;return arraySequence$.$ff.any(JsCallable(arraySequence$,$fm));};arraySequence$.find=function($fn){var arraySequence$=this;return arraySequence$.$ff.find(JsCallable(arraySequence$,$fn));};arraySequence$.findLast=function($fo){var arraySequence$=this;return arraySequence$.$ff.findLast(JsCallable(arraySequence$,$fo));};arraySequence$.$_reduce=function($fu,$tr81lg$){var arraySequence$=this;var $fv;asrt$((nn$(($fv=arraySequence$.$ff.$_reduce(JsCallable(arraySequence$,$fu),{Result$reduce:$tr81lg$.Result$reduce})))),"Assertion failed: \'exists result \n            = array.reduce(accumulating)\' at ArraySequence.ceylon (79:15-80:40)",'79:8-80:41','ArraySequence.ceylon');
return $fv;};arraySequence$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce','Element$ArraySequence']},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$ArraySequence']},'Element$ArraySequence']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$ArraySequence']}},{nm:'element',mt:'prm',$t:'Element$ArraySequence'}]}],$cont:ArraySequence,tp:{Result$reduce:{}},pa:3,d:['$','ArraySequence','$m','reduce']};};arraySequence$.collect=function($fw,$19dvvg$){var arraySequence$=this;var $fx;asrt$((ne$(($fx=arraySequence$.$ff.collect(JsCallable(arraySequence$,$fw),{Result$collect:$19dvvg$.Result$collect})))),"Assertion failed: \'nonempty sequence \n            = array.collect(collecting)\' at ArraySequence.ceylon (87:15-88:39)",'87:8-88:40','ArraySequence.ceylon');
return $fx;};arraySequence$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$ArraySequence']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$ArraySequence'}]}],$cont:ArraySequence,tp:{Result$collect:{}},pa:3,d:['$','ArraySequence','$m','collect']};};arraySequence$.$_sort=function($fy){var arraySequence$=this;var $fz;asrt$((ne$(($fz=arraySequence$.$ff.$_sort(JsCallable(arraySequence$,$fy))))),"Assertion failed: \'nonempty sequence \n            = array.sort(comparing)\' at ArraySequence.ceylon (95:15-96:35)",'95:8-96:36','ArraySequence.ceylon');
return $fz;};arraySequence$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$ArraySequence'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$ArraySequence','Element$ArraySequence']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$ArraySequence'},{nm:'y',mt:'prm',$t:'Element$ArraySequence'}]}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','sort']};};arraySequence$.measure=function($g0,$g1){var arraySequence$=this;if(((($g0>arraySequence$.lastIndex)||($g1<=0))||($g0.plus($g1)<=0))){return empty();}
else{return ArraySequence(arraySequence$.$ff.measure($g0,$g1),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}
};arraySequence$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','measure']};};arraySequence$.span=function($g2,$g3){var arraySequence$=this;if(($g2<=$g3)){return ((($g3<0)||($g2>arraySequence$.lastIndex))?empty():ArraySequence(arraySequence$.$ff.span($g2,$g3),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));}
else{return ((($g2<0)||($g3>arraySequence$.lastIndex))?empty():ArraySequence(arraySequence$.$ff.span($g2,$g3),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));}
};arraySequence$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','span']};};arraySequence$.spanFrom=function($g4){var arraySequence$=this;if(($g4<=0)){return arraySequence$;}
else{if(($g4<arraySequence$.size)){return ArraySequence(arraySequence$.$ff.spanFrom($g4),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}
else{return empty();}
}
};arraySequence$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:ArraySequence,a:{Element$ArraySequence:'Element$ArraySequence'}},{t:Empty}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','spanFrom']};};arraySequence$.spanTo=function($g5){var arraySequence$=this;if(($g5>=arraySequence$.lastIndex)){return arraySequence$;}
else{if(($g5>=0)){return ArraySequence(arraySequence$.$ff.spanTo($g5),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}
else{return empty();}
}
};arraySequence$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:ArraySequence,a:{Element$ArraySequence:'Element$ArraySequence'}},{t:Empty}]},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','spanTo']};};})(ArraySequence.$$.prototype);}
return ArraySequence;}
ex$.$init$ArraySequence=$init$ArraySequence;$init$ArraySequence();ArraySequence.inst$$=function($g6){var arraySequence$=new ArraySequence.$$;
set_type_args(arraySequence$,{Element$ArraySequence:$g6.$$targs$$.Type$Class.a.Element$ArraySequence});
set_type_args(arraySequence$,{Element$Sequence:arraySequence$.$$targs$$.Element$ArraySequence,Element$Sequential:arraySequence$.$$targs$$.Element$ArraySequence,Element$List:arraySequence$.$$targs$$.Element$ArraySequence,Element$Collection:arraySequence$.$$targs$$.Element$ArraySequence,Element$Iterable:arraySequence$.$$targs$$.Element$ArraySequence,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:arraySequence$.$$targs$$.Element$ArraySequence,Element$Ranged:arraySequence$.$$targs$$.Element$ArraySequence,Subrange$Ranged:{t:List,a:{Element$List:arraySequence$.$$targs$$.Element$ArraySequence}},Index$Ranged:{t:Integer}});
return arraySequence$;};ArraySequence.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::ArraySequence.array')return o.$ff_;else throw new TypeError('unknown attribute');};ArraySequence.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::ArraySequence.array')o.$ff_=i;
else throw new TypeError('unknown attribute');};ArraySequence.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$get$ff))];};var $ft;function AssertionError(msg,that){
$init$AssertionError();
if(that===undefined) {
that=new Error(msg);
that.getT$name=function(){return AssertionError.$$.prototype.constructor.T$name; };
that.getT$all=function(){return AssertionError.$$.prototype.constructor.T$all; };
that.equals=function(o){return this===o;};
that.description=msg;
that.message=msg;
that.string='ceylon.language::AssertionError "'+msg+'"';
that.printStackTrace=function(){printStackTrace(that);}
that.addSuppressed=Throwable.$$.prototype.addSuppressed;
that.suppressed=$arr$([],{t:Throwable});
}
that.$sm_=msg;
Throwable(msg,undefined,that);
return that;
}
AssertionError.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Throwable},ps:[{nm:'message',mt:'prm',$t:{t:$_String},an:function(){return[doc$($CCMM$,'$:AssertionError:$at:message$9g6fel')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:AssertionError'),$_native()];},d:['$','AssertionError']};};
ex$.AssertionError=AssertionError;function $init$AssertionError(){if(AssertionError.$$===undefined){initTypeProto(AssertionError,'ceylon.language::AssertionError',$init$Throwable());
(function(assertionError$){atr$(assertionError$,'$g7',function(){return this.$g7_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AssertionError,an:function(){return[doc$($CCMM$,'$:AssertionError:$at:message$9g6fel')];},d:['$','AssertionError','$at','message$9g6fel']};});})(AssertionError.$$.prototype);}
return AssertionError;}
ex$.$init$AssertionError=$init$AssertionError;$init$AssertionError();function Binary($$targs$$,binary$){set_type_args(binary$,$$targs$$,Binary);binary$.set$defs$bit=function($g8,$g9){return true;};}
Binary.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Binary:{sts:[{t:Binary,a:{Other$Binary:'Other$Binary'}}]}},of:['Other$Binary'],pa:1,an:function(){return[doc$($CCMM$,'$:Binary'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Stef"].$sa$({t:$_String}))];},d:['$','Binary']};};
ex$.Binary=Binary;function $init$Binary(){if(Binary.$$===undefined){initTypeProtoI(Binary,'ceylon.language::Binary');
(function(binary$){binary$.$prop$getNot={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$at:not')];},d:['$','Binary','$at','not']};}};binary$.leftLogicalShift={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:leftLogicalShift')];},d:['$','Binary','$m','leftLogicalShift']};}};binary$.rightLogicalShift={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:rightLogicalShift')];},d:['$','Binary','$m','rightLogicalShift']};}};binary$.rightArithmeticShift={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:rightArithmeticShift')];},d:['$','Binary','$m','rightArithmeticShift']};}};binary$.and={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'other',mt:'prm',$t:'Other$Binary'}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:and')];},d:['$','Binary','$m','and']};}};binary$.or={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'other',mt:'prm',$t:'Other$Binary'}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:or')];},d:['$','Binary','$m','or']};}};binary$.xor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'other',mt:'prm',$t:'Other$Binary'}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:xor')];},d:['$','Binary','$m','xor']};}};binary$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:get')];},d:['$','Binary','$m','get']};}};binary$.set={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'bit',mt:'prm',def:1,$t:{t:$_Boolean}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:set')];},d:['$','Binary','$m','set']};}};binary$.clear=function($ga){var binary$=this;return binary$.set($ga,false);};binary$.clear.$crtmm$=function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:9,an:function(){return[doc$($CCMM$,'$:Binary:$m:clear')];},d:['$','Binary','$m','clear']};};binary$.flip={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:flip')];},d:['$','Binary','$m','flip']};}};})(Binary.$$.prototype);}
return Binary;}
ex$.$init$Binary=$init$Binary;$init$Binary();function Byte(bits,that) {
$init$Byte();
if (that===undefined)that=new Byte.$$;
$_Object(that);
Binary({Other$Binary:{t:Byte}},that);
Invertible({Other$Invertible:{t:Byte}},that);
Enumerable({Other$Enumerable:{t:Byte}},that);
var remainder = bits%256;
that.val$ = remainder>=0 ? remainder : 256+remainder;
return that;
}
Byte.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'congruent',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Byte:$at:congruent$4ssbsl')];}}],sts:[{t:Binary,a:{Other$Binary:{t:Byte}}},{t:Invertible,a:{Other$Invertible:{t:Byte}}},{t:Enumerable,a:{Other$Enumerable:{t:Byte}}}],pa:33,an:function(){return[doc$($CCMM$,'$:Byte'),tagged(["Basic types"].$sa$({t:$_String})),$_native()];},d:['$','Byte']};};
ex$.Byte=Byte;function $init$Byte(){if(Byte.$$===undefined){initTypeProto(Byte,'ceylon.language::Byte',$init$$_Object(),$init$Binary(),$init$Invertible(),$init$Enumerable());
(function(byte$){atr$(byte$,'$gb',function(){return this.$gb_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,an:function(){return[doc$($CCMM$,'$:Byte:$at:congruent$4ssbsl')];},d:['$','Byte','$at','congruent$4ssbsl']};});atr$(byte$,'even',function(){return (this.val$ & 1) == 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:even'),$_native()];},d:['$','Byte','$at','even']};});atr$(byte$,'zero',function(){return this.val$ == 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:zero'),$_native()];},d:['$','Byte','$at','zero']};});atr$(byte$,'unit',function(){return this.val$ == 1;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:unit'),$_native()];},d:['$','Byte','$at','unit']};});atr$(byte$,'unsigned',function(){return this.val$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:unsigned'),$_native()];},d:['$','Byte','$at','unsigned']};});atr$(byte$,'signed',function(){return this.val$<=127 ? this.val$ : this.val$-256;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:signed'),$_native()];},d:['$','Byte','$at','signed']};});atr$(byte$,'negated',function(){return this.val$==0 ? this : Byte(256-this.val$);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[doc$($CCMM$,'$:Byte:$at:negated'),$_native()];},d:['$','Byte','$at','negated']};});byte$.plus=function(b) {
return Byte(this.val$+b.val$);
}
byte$.plus.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[doc$($CCMM$,'$:Byte:$m:plus'),$_native()];},d:['$','Byte','$m','plus']};};byte$.and=function(b) {
return Byte(this.val$ & b.val$);
}
byte$.and.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','and']};};byte$.flip=function(i) {
if (i<0||i>7)return this;
var bit = this.val$&(1<<i);
if (bit>0) {
return Byte(this.val$&(0xff^(1<<i)));
} else {
return Byte(this.val$|(1<<i));
}
return this;
}
byte$.flip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','flip']};};byte$.$_get=function(idx) {
if (idx>0 && idx<8) {
return (this.val$&(1<<idx))>0;
}
return false;
}
byte$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','get']};};byte$.leftLogicalShift=function(bits) {
return Byte(this.val$<<bits);
}
byte$.leftLogicalShift.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','leftLogicalShift']};};atr$(byte$,'not',function(){return Byte(this.val$^0xff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','not']};});byte$.or=function(b) {
return Byte(this.val$|b.val$);
}
byte$.or.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','or']};};byte$.rightArithmeticShift=function(bits) {
return Byte(this.signed>>bits);
}
byte$.rightArithmeticShift.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','rightArithmeticShift']};};byte$.rightLogicalShift=function(bits) {
return Byte(this.val$>>>bits);
}
byte$.rightLogicalShift.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','rightLogicalShift']};};byte$.set=function(i,b) {
if (i<0 || i>7)return this;
if (b)return Byte(this.val$|(1<<i));
return Byte(this.val$&(0xff^(1<<i)));
}
byte$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'bit',mt:'prm',def:1,$t:{t:$_Boolean}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','set']};};byte$.xor=function(b) {
return Byte(this.val$^b.val$);
}
byte$.xor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','xor']};};atr$(byte$,'predecessor',function(){return Byte(this.val$-1);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','predecessor']};});atr$(byte$,'successor',function(){return Byte(this.val$+1);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','successor']};});byte$.neighbour=function(offset) {
return offset==0 ? this : Byte(this.val$+offset);
}
byte$.neighbour.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','neighbour']};};byte$.offset=function(other) {
return Byte(this.val$-other.val$).val$;
}
byte$.offset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','offset']};};byte$.offsetSign=function(other) {
return this.val$==other.val$ ? 0 : 1;
}
byte$.offsetSign.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','offsetSign']};};byte$.equals=function(o) {
if (is$(o,{t:Byte})) {
return o.val$===this.val$;
}
return false;
}
byte$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','equals']};};atr$(byte$,'hash',function(){if (this.val$<128)return this.val$;
return -1-(this.val$^0xff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','hash']};});atr$(byte$,'string',function(){return this.val$.string;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Byte,pa:3,an:function(){return[doc$($CCMM$,'$:Byte:$at:string'),$_native()];},d:['$','Byte','$at','string']};});})(Byte.$$.prototype);}
return Byte;}
ex$.$init$Byte=$init$Byte;$init$Byte();function Category($$targs$$,category$){set_type_args(category$,$$targs$$,Category);}
Category.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Category:{dv:'in',sts:[{t:$_Object}],def:{t:$_Object}}},pa:1,an:function(){return[doc$($CCMM$,'$:Category'),by(["Gavin"].$sa$({t:$_String})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Category']};};
ex$.Category=Category;function $init$Category(){if(Category.$$===undefined){initTypeProtoI(Category,'ceylon.language::Category');
(function(category$){category$.contains={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Category'}],$cont:Category,pa:5,an:function(){return[doc$($CCMM$,'$:Category:$m:contains'),see("containsEvery","containsAny")];},d:['$','Category','$m','contains']};}};category$.containsEvery=function($gc){var category$=this;var $ge;for(var $gd=$gc.iterator();($ge=$gd.next())!==finished();){if(!category$.contains($ge)){return false;}
}
if(finished()===$ge){return true;}
};category$.containsEvery.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Category'}}}],$cont:Category,pa:9,an:function(){return[doc$($CCMM$,'$:Category:$m:containsEvery'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.contains),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.containsAny)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Category','$m','containsEvery']};};category$.containsAny=function($gf){var category$=this;var $gh;for(var $gg=$gf.iterator();($gh=$gg.next())!==finished();){if(category$.contains($gh)){return true;}
}
if(finished()===$gh){return false;}
};category$.containsAny.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Category'}}}],$cont:Category,pa:9,an:function(){return[doc$($CCMM$,'$:Category:$m:containsAny'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.contains),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.containsEvery)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Category','$m','containsAny']};};})(Category.$$.prototype);}
return Category;}
ex$.$init$Category=$init$Category;$init$Category();function ChainedIterator($gi,$gj,$$targs$$,chainedIterator$){$init$ChainedIterator();
if(chainedIterator$===undefined)chainedIterator$=new ChainedIterator.$$;
set_type_args(chainedIterator$,$$targs$$);
chainedIterator$.$gi_=$gi;chainedIterator$.$gj_=$gj;Iterator({Element$Iterator:mut$([$$targs$$.Element$ChainedIterator,$$targs$$.Other$ChainedIterator])},chainedIterator$);chainedIterator$.$gk_=chainedIterator$.$gi.iterator();chainedIterator$.$gl_=true;return chainedIterator$;}
ChainedIterator.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'first',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$ChainedIterator'}}},{nm:'second',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Other$ChainedIterator'}}}],tp:{Element$ChainedIterator:{dv:'out'},Other$ChainedIterator:{dv:'out'}},sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$ChainedIterator','Other$ChainedIterator']}}}],an:function(){return[doc$($CCMM$,'$:ChainedIterator'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].$sa$({t:FunctionDeclaration$meta$declaration})),by(["Enrique Zamudio"].$sa$({t:$_String})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','ChainedIterator']};};
ex$.ChainedIterator=ChainedIterator;function $init$ChainedIterator(){if(ChainedIterator.$$===undefined){initTypeProto(ChainedIterator,'ceylon.language::ChainedIterator',Basic,$init$Iterator());
(function(chainedIterator$){atr$(chainedIterator$,'$gi',function(){return this.$gi_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$ChainedIterator'}},$cont:ChainedIterator,d:['$','ChainedIterator','$at','first$4h62ti']};});atr$(chainedIterator$,'$gj',function(){return this.$gj_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Other$ChainedIterator'}},$cont:ChainedIterator,d:['$','ChainedIterator','$at','second$9dpb6y']};});atr$(chainedIterator$,'$gk',function(){return this.$gk_;},function($gm){return this.$gk_=$gm;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$ChainedIterator','Other$ChainedIterator']}}},$cont:ChainedIterator,pa:1027,d:['$','ChainedIterator','$at','iter$2p4fla']};});atr$(chainedIterator$,'$gl',function(){return this.$gl_;},function($gn){return this.$gl_=$gn;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ChainedIterator,pa:1027,d:['$','ChainedIterator','$at','more$5ang2r']};});chainedIterator$.next=function(){var chainedIterator$=this;var $go=chainedIterator$.$gk.next();if((chainedIterator$.$gl&&is$($go,{t:Finished}))){chainedIterator$.$gk=chainedIterator$.$gj.iterator();chainedIterator$.$gl=false;return chainedIterator$.$gk.next();}
else{return $go;}
};chainedIterator$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$ChainedIterator','Other$ChainedIterator',{t:Finished}]},ps:[],$cont:ChainedIterator,pa:3,d:['$','ChainedIterator','$m','next']};};atr$(chainedIterator$,'string',function(){var chainedIterator$=this;return chainedIterator$.$gi.string.plus(".chain(").plus(chainedIterator$.$gj.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ChainedIterator,pa:3,d:['$','ChainedIterator','$at','string']};});})(ChainedIterator.$$.prototype);}
return ChainedIterator;}
ex$.$init$ChainedIterator=$init$ChainedIterator;$init$ChainedIterator();var _cacheChr={};
function Character(value,cache) {
if (cache) {
var that = _cacheChr[value];
if (that === undefined) {
that = new Character.$$;
that.value = value;
_cacheChr[value] = that;
}
return that;
}
if (value && value.getT$name && value.getT$name() === 'ceylon.language::Character') {
return value;
}
var that = new Character.$$;
Comparable({Other$Comparable:{t:Character}},that);
Enumerable({Other$Enumerable:{t:Character}},that);
that.value = value;
return that;
}
Character.WS$={0x9:true, 0xa:true, 0xb:true, 0xc:true, 0xd:true, 0x20:true, 0x85:true,
0x1680:true, 0x180e:true, 0x2028:true, 0x2029:true, 0x205f:true, 0x3000:true,
0x1c:true, 0x1d:true, 0x1e:true, 0x1f:true};
for (var i=0x2000; i<0x2007; i++) { Character.WS$[i]=true; }
for (var i=0x2008; i<=0x200a; i++) { Character.WS$[i]=true; }
Character.dig$={0x30:true, 0x660:true, 0x6f0:true, 0x7c0:true, 0x966:true, 0x9e6:true, 0xa66:true,
0xae6:true, 0xb66:true, 0xbe6:true, 0xc66:true, 0xce6:true, 0xd66:true, 0xe50:true,
0xed0:true, 0xf20:true, 0x1040:true, 0x1090:true, 0x17e0:true, 0x1810:true, 0x1946:true,
0x19d0:true, 0x1a80:true, 0x1a90:true, 0x1b50:true, 0x1bb0:true, 0x1c40:true, 0x1c50:true,
0xa620:true, 0xa8d0:true, 0xa900:true, 0xa9d0:true, 0xaa50:true, 0xabf0:true, 0xff10:true,
0x104a0:true, 0x11066:true, 0x110f0:true, 0x11136:true, 0x111d0:true, 0x116c0:true}
Character.titlecase$={
0x1c5: [0x1c4, 0x1c6], 0x1c8: [0x1c7, 0x1c9], 0x1cb: [0x1ca, 0x1cc], 0x1f2: [0x1f1, 0x1f3],
0x1f88: [undefined, 0x1f80], 0x1f89: [undefined, 0x1f81], 0x1f8a: [undefined, 0x1f82],
0x1f8b: [undefined, 0x1f83], 0x1f8c: [undefined, 0x1f84], 0x1f8d: [undefined, 0x1f85],
0x1f8e: [undefined, 0x1f86], 0x1f8f: [undefined, 0x1f87], 0x1f98: [undefined, 0x1f90],
0x1f99: [undefined, 0x1f91], 0x1f9a: [undefined, 0x1f92], 0x1f9b: [undefined, 0x1f93],
0x1f9c: [undefined, 0x1f94], 0x1f9d: [undefined, 0x1f95], 0x1f9e: [undefined, 0x1f96],
0x1f9f: [undefined, 0x1f97], 0x1fa8: [undefined, 0x1fa0], 0x1fa9: [undefined, 0x1fa1],
0x1faa: [undefined, 0x1fa2], 0x1fab: [undefined, 0x1fa3], 0x1fac: [undefined, 0x1fa4],
0x1fad: [undefined, 0x1fa5], 0x1fae: [undefined, 0x1fa6], 0x1faf: [undefined, 0x1fa7],
0x1fbc: [undefined, 0x1fb3], 0x1fcc: [undefined, 0x1fc3], 0x1ffc: [undefined, 0x1ff3]
}
Character.toTitlecase$={
0x1c6:0x1c5, 0x1c7:0x1c8, 0x1ca:0x1cb, 0x1f1:0x1f2,
0x1c4:0x1c5, 0x1c9:0x1c8, 0x1cc:0x1cb, 0x1f3:0x1f2, 0x1f80:0x1f88, 0x1f81:0x1f89, 0x1f82:0x1f8a,
0x1f83:0x1f8b, 0x1f84:0x1f8c, 0x1f85:0x1f8d, 0x1f86:0x1f8e, 0x1f87:0x1f8f, 0x1f90:0x1f98,
0x1f91:0x1f99, 0x1f92:0x1f9a, 0x1f93:0x1f9b, 0x1f94:0x1f9c, 0x1f95:0x1f9d, 0x1f96:0x1f9e,
0x1f97:0x1f9f, 0x1fa0:0x1fa8, 0x1fa1:0x1fa9, 0x1fa2:0x1faa, 0x1fa3:0x1fab, 0x1fa4:0x1fac,
0x1fa5:0x1fad, 0x1fa6:0x1fae, 0x1fa7:0x1faf, 0x1fb3:0x1fbc, 0x1fc3:0x1fcc, 0x1ff3:0x1ffc
}
Character.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],sts:[{t:Comparable,a:{Other$Comparable:{t:Character}}},{t:Enumerable,a:{Other$Enumerable:{t:Character}}}],pa:33,an:function(){return[doc$($CCMM$,'$:Character'),see([$init$openClass$jsint()(lmp$(ex$,'$'),$_String)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types","Strings"].$sa$({t:$_String})),$_native()];},d:['$','Character']};};
ex$.Character=Character;function $init$Character(){if(Character.$$===undefined){initTypeProto(Character,'ceylon.language::Character',$init$$_Object(),$init$Comparable(),$init$Enumerable());
(function(character$){atr$(character$,'$gp',function(){return this.$gp_;},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,d:['$','Character','$at','character$f3csq2']};});atr$(character$,'string',function(){return codepointToString(this.value);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:string'),$_native()];},d:['$','Character','$at','string']};});atr$(character$,'lowercased',function(){if (this.value==304) return Character(105); //lowercase dotted I to i
var lcstr = codepointToString(this.value).toLowerCase();
return countCodepoints(lcstr)==1 ? Character(codepointFromString(lcstr, 0)) : this;
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:lowercased'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLowercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','Character','$at','lowercased']};});atr$(character$,'uppercased',function(){var ucstr = codepointToString(this.value).toUpperCase();
return countCodepoints(ucstr)==1 ? Character(codepointFromString(ucstr, 0)) : this;
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:uppercased'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getUppercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','Character','$at','uppercased']};});atr$(character$,'titlecased',function(){var tc = Character.toTitlecase$[this.value];
return tc===undefined ? this.uppercased : Character(tc);
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:titlecased'),$_native()];},d:['$','Character','$at','titlecased']};});atr$(character$,'lowercase',function(){if (Character.unicat$===undefined) {
this.letter;
}
return Character.unicat$.Ll.test(this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:lowercase'),$_native()];},d:['$','Character','$at','lowercase']};});atr$(character$,'uppercase',function(){if (Character.unicat$===undefined) {
this.letter;
}
return Character.unicat$.Lu.test(this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:uppercase'),$_native()];},d:['$','Character','$at','uppercase']};});atr$(character$,'titlecase',function(){if (Character.unicat$===undefined) {
this.letter;
}
return Character.unicat$.Lt.test(this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:titlecase'),$_native()];},d:['$','Character','$at','titlecase']};});atr$(character$,'digit',function(){var check = this.value & 0xfffffff0;
if (check in Character.dig$) {
return (this.value&0xf) <= 9;
}
if ((check|6) in Character.dig$) {
return (this.value&0xf) >= 6;
}
return this.value>=0x1d7ce && this.value<=0x1d7ff;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:digit'),$_native()];},d:['$','Character','$at','digit']};});atr$(character$,'letter',function(){if (Character.unicat$===undefined) {
var unicode = {};
// Upper case.
unicode.Lu = /\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005A\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A/;
// Lower case.
unicode.Ll = /\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u00AA\u00B5\u00BA\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A/;
// Title case.
unicode.Lt = /\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC/;
// Modifier letter.
unicode.Lm = /\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F/;
// Other letter.
unicode.Lo = /\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF/;
// Number letter.
unicode.Nl = /\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A/;
// Non-spacing mark.
unicode.Mn = /\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u135F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26/;
// Combining space mark.
unicode.Mc = /\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D/;
// Decimal number.
unicode.Nd = /\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19/;
// Punctuation connector.
unicode.Pc = /\u005F\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F/;
function getSource(regExp) {
return regExp.source;
};
var ECMA={};
var startArray = [
/$_/, unicode.Lu,
unicode.Ll, unicode.Lt,
unicode.Lm, unicode.Lo, unicode.Nl
];
var partArray = startArray.concat([
unicode.Nd, unicode.Mc, unicode.Mn, unicode.Pc
]);
var start = '[' + startArray.map(getSource).join('') + ']';
var part = '[' + partArray.map(getSource).join('') + ']';
ECMA.start = new RegExp(start);
ECMA.part = new RegExp(part);
ECMA.identifier = new RegExp('^' + start + part + '*');
var categories = ['Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Mc', 'Nl', 'Nd', 'Pc'];
Character.unicat$={};
for (var categoryName in unicode) {
var source = unicode[categoryName].source
Character.unicat$[categoryName] = new RegExp('[' + source + ']');
}
Character.unicat$.ECMA=ECMA;
}
var str = this.string;
return Character.unicat$.Lu.test(str) || Character.unicat$.Ll.test(str) || Character.unicat$.Lt.test(str)
|| Character.unicat$.Lm.test(str) || Character.unicat$.Lo.test(str);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:letter'),$_native()];},d:['$','Character','$at','letter']};});atr$(character$,'whitespace',function(){return this.value in Character.WS$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:whitespace'),$_native()];},d:['$','Character','$at','whitespace']};});atr$(character$,'control',function(){return this.value<32 || this.value===127;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:control'),$_native()];},d:['$','Character','$at','control']};});atr$(character$,'integer',function(){return this.value;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:integer'),aliased(["codePoint"].$sa$({t:$_String})),$_native()];},d:['$','Character','$at','integer']};});character$.compare=function(other) {
return this.value===other.value ?
equal() :
(this.value<other.value ? smaller():larger());
}
character$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$m:compare'),$_native()];},d:['$','Character','$m','compare']};};character$.equals=function(other) {
return other.constructor===Character.$$ && other.value===this.value;
}
character$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$m:equals'),$_native()];},d:['$','Character','$m','equals']};};atr$(character$,'hash',function(){return this.value;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:hash'),$_native()];},d:['$','Character','$at','hash']};});atr$(character$,'predecessor',function(){var succ = this.value-1;
if ((succ&0xf800) === 0xd800) {return Character(0xd7ff)}
return Character((succ>=0) ? succ:0x10ffff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:predecessor'),$_native()];},d:['$','Character','$at','predecessor']};});atr$(character$,'successor',function(){var succ = this.value+1;
if ((succ&0xf800) === 0xd800) {return Character(0xe000)}
return Character((succ<=0x10ffff) ? succ:0);
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:successor'),$_native()];},d:['$','Character','$at','successor']};});character$.neighbour=function(offset) {
return Character(this.value+offset);
}
character$.neighbour.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Character},ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','neighbour']};};character$.offset=function offset(other) {
return this.value - other.value;
}
character$.offset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','offset']};};character$.offsetSign=function offset(other) {
return this.value - other.value;
}
character$.offsetSign.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','offsetSign']};};character$.largerThan=function largerThan(other) {
return this.value>other.value;
}
character$.largerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','largerThan']};};character$.smallerThan=function smallerThan(other) {
return other.value>this.value;
}
character$.smallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','smallerThan']};};character$.notSmallerThan=function notSmallerThan(other) {
return !this.smallerThan(other);
}
character$.notSmallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','notSmallerThan']};};character$.notLargerThan=function notLargerThan(other) {
return !this.largerThan(other);
}
character$.notLargerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','notLargerThan']};};})(Character.$$.prototype);}
return Character;}
ex$.$init$Character=$init$Character;$init$Character();function Collection($$targs$$,collection$){set_type_args(collection$,$$targs$$,Collection);Iterable({Absent$Iterable:{t:Null},Element$Iterable:$$targs$$.Element$Collection},collection$);}
Collection.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Collection:{dv:'out',def:{t:Anything}}},sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Collection'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Collection'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),List),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Map),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Set)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Collection']};};
ex$.Collection=Collection;function $init$Collection(){if(Collection.$$===undefined){initTypeProtoI(Collection,'ceylon.language::Collection',$init$Iterable());
(function(collection$){collection$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:'Element$Collection'}},ps:[],$cont:Collection,pa:5,an:function(){return[doc$($CCMM$,'$:Collection:$m:clone')];},d:['$','Collection','$m','clone']};}};atr$(collection$,'empty',function(){var collection$=this;return ((collection$.size).valueOf()==(0).valueOf());},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$at:empty')];},d:['$','Collection','$at','empty']};});collection$.contains=function($gq){var collection$=this;var $gs;for(var $gr=collection$.iterator();($gs=$gr.next())!==finished();){var $gt;if(nn$(($gt=$gs))&&$gt.equals($gq)){return true;}
}
if(finished()===$gs){return false;}
};collection$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$m:contains')];},d:['$','Collection','$m','contains']};};atr$(collection$,'string',function(){var collection$=this;return ($gu=(collection$.empty?"{}":null),nn$($gu)?$gu:"{ ".plus(commaList(collection$)).plus(" }"));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$at:string')];},d:['$','Collection','$at','string']};});atr$(collection$,'permutations',function(){var collection$=this;return function(){function $gv($$targs$$){var $gv$=new $gv.$$;$gv$.outer$=collection$;$gv$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Sequence,a:{Element$Sequence:collection$.$$targs$$.Element$Collection}}},$gv$);$gv$.$gw_=collection$.indexed.group($JsCallable((function($gx){return ($gy=$gx.item,nn$($gy)?$gy:nullElement());}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}],{Return$Callable:mut$([{t:Basic},mit$([collection$.$$targs$$.Element$Collection,{t:$_Object}])]),Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])}),{Group$group:mut$([{t:Basic},mit$([collection$.$$targs$$.Element$Collection,{t:$_Object}])])}).items.$_sort($JsCallable((function($gz,$h0){return $gz.first.key.compare($h0.first.key);}),[{nm:'x',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}}},{nm:'y',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}}}],{Return$Callable:{t:Comparison},Arguments$Callable:mtt$([{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}},{t:'u',l:[{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}],seq:2}])})).indexed.flatMap($JsCallable((function($h1){return function(){var $h2=$h1,$h3=$h2.key,$h4=$h2.item;return $h4.$_map($JsCallable((function($h5){return Entry($h3,$h5.item,{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection});}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}],{Return$Callable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])}),{Result$map:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}});}();}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}}}}}],{Return$Callable:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}}}}])}),{OtherAbsent$flatMap:{t:Nothing},Result$flatMap:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}});$gv$.$prop$get$gw={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','multiset$e71tjc']};}};$gv$.$prop$get$gw.get=function(){return $gw};var $gy;return $gv$;};$gv.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:collection$.$prop$getPermutations,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Collection'}}}}],d:['$','Collection','$at','permutations']};};function $init$$gv(){if($gv.$$===undefined){initTypeProto($gv,'ceylon.language::Collection.anonymous#0',Basic,$init$Iterable());
(function($gv$){atr$($gv$,'$gw',function(){return this.$gw_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','multiset$e71tjc']};});atr$($gv$,'empty',function(){var $gv$=this;return $gv$.$gw.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:collection$.$prop$getPermutations,pa:3,d:['$','Collection','$at','permutations','$at','empty']};});$gv$.iterator=function(){var $gv$=this;return function(){function $h6($$targs$$){var $h6$=new $h6.$$;$h6$.outer$=$gv$;$h6$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Sequence,a:{Element$Sequence:collection$.$$targs$$.Element$Collection}}},$h6$);$h6$.$h7_=$_Array($gv$.$gw,{Element$Array:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}});$h6$.$prop$get$h7={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','elements$oti03l']};}};$h6$.$prop$get$h7.get=function(){return $h7};$h6$.$h8_=$h6$.$h7.size;$h6$.$prop$get$h8={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','size$utz989']};}};$h6$.$prop$get$h8.get=function(){return $h8};$h6$.$h9_=true;$h6$.$prop$get$h9={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:collection$.$prop$getPermutations,pa:1024,d:['$','Collection','$at','permutations','$at','initial$no6bic']};}};$h6$.$prop$get$h9.get=function(){return $h9};return $h6$;};$h6.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:collection$.$prop$getPermutations,sts:[{t:Iterator,a:{Element$Iterator:{t:Sequence,a:{Element$Sequence:'Element$Collection'}}}}],d:['$','Collection','$at','permutations']};};function $init$$h6(){if($h6.$$===undefined){initTypeProto($h6,'ceylon.language::Collection.anonymous#0.anonymous#5',Basic,$init$Iterator());
(function($h6$){atr$($h6$,'$h7',function(){return this.$h7_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','elements$oti03l']};});atr$($h6$,'$h8',function(){return this.$h8_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','size$utz989']};});atr$($h6$,'$h9',function(){return this.$h9_;},function($ha){return this.$h9_=$ha;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:collection$.$prop$getPermutations,pa:1024,d:['$','Collection','$at','permutations','$at','initial$no6bic']};});$h6$.next=function(){var $h6$=this;if($h6$.$h9){$h6$.$h9=false;}
else{var $hb,$hc,$hd,$he;if(function($hf){if(!nn$($hf))return false;return($hb=$hf.key,$hd=$hf.item.$_get(0).key,$he=$hf.item.$_get(0).item,$hc=$hf.item.$_get(1),true);}($h6$.$h7.paired.locateLast($JsCallable((function($hg){return ($hg.$_get(0).key<$hg.$_get(1).key);}),[{nm:'pair',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}]),Element$Tuple:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}},First$Tuple:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])])})))){var $hh=(function(){var $hi;asrt$((nn$(($hi=$h6$.$h7.lastIndexWhere($JsCallable((function($hj){return ($hj.key>$hd);}),[{nm:'elem',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])}))))),"Assertion failed: \'exists j\n                            = elements.lastIndexWhere((elem) \n                                => elem.key > key)\' at Collection.ceylon (126:27-128:50)",'126:20-128:51','Collection.ceylon');
$h6$.$h7.swap($hb,$hi);var $hl=(0),$hm=$h6$.$h8.minus($hb).minus(1).divided(2);for(var $hn=0;$hn<$hm;$hn++,($hl=$hl.successor)){$h6$.$h7.swap($hb.plus(1).plus($hl),$h6$.$h8.minus(1).minus($hl));}}());if($hh!==undefined){return $hh;}}
else{return finished();}
}
return function(){var $ho;if(ne$(($ho=$h6$.$h7.collect(function(e){return e.item;},{Result$collect:collection$.$$targs$$.Element$Collection}))))return $ho;else return finished()}();};$h6$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$Collection'}},{t:Finished}]},ps:[],$cont:collection$.$prop$getPermutations,pa:3,d:['$','Collection','$at','permutations','$m','next']};};})($h6.$$.prototype);}
return $h6;}
$gv$.$init$$h6=$init$$h6;$init$$h6();return $h6();}();};})($gv.$$.prototype);}
return $gv;}
collection$.$init$$gv=$init$$gv;$init$$gv();return $gv();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Collection'}}}},$cont:Collection,pa:1,an:function(){return[doc$($CCMM$,'$:Collection:$at:permutations')];},d:['$','Collection','$at','permutations']};});})(Collection.$$.prototype);}
return Collection;}
ex$.$init$Collection=$init$Collection;$init$Collection();var $gu;function $hr(){var nullElement$=new $hr.$$;return nullElement$;};$hr.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','nullElement']};};function $init$nullElement(){if($hr.$$===undefined){initTypeProto($hr,'ceylon.language::nullElement',Basic);
}
return $hr;}
ex$.$init$nullElement=$init$nullElement;$init$nullElement();var $ht;function nullElement(){if($ht===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nullElement\' before it was set"),'148:0-149:20','Collection.ceylon');if($ht===undefined){$ht=INIT$;$ht=$init$nullElement()();$ht.$crtmm$=nullElement.$crtmm$;}
return $ht;}
nullElement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$nullElement()},an:function(){return[doc$($CCMM$,'$:nullElement')];},d:['$','nullElement']};};$prop$getNullElement=nullElement;ex$.$prop$getNullElement=$prop$getNullElement;function Comparable($$targs$$,comparable$){set_type_args(comparable$,$$targs$$,Comparable);}
Comparable.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Comparable:{dv:'in',sts:[{t:Comparable,a:{Other$Comparable:'Other$Comparable'}}]}},of:['Other$Comparable'],pa:1,an:function(){return[doc$($CCMM$,'$:Comparable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Comparison),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_sort),$init$OpenFunction$jsint()(lmp$(ex$,'$'),max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),min),$init$OpenFunction$jsint()(lmp$(ex$,'$'),largest),$init$OpenFunction$jsint()(lmp$(ex$,'$'),smallest)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','Comparable']};};
ex$.Comparable=Comparable;function $init$Comparable(){if(Comparable.$$===undefined){initTypeProtoI(Comparable,'ceylon.language::Comparable');
(function(comparable$){comparable$.compare={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:5,an:function(){return[doc$($CCMM$,'$:Comparable:$m:compare'),see("equals")];},d:['$','Comparable','$m','compare']};}};comparable$.largerThan=function($hu){var comparable$=this;return (comparable$.compare($hu)===larger());};comparable$.largerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:largerThan')];},d:['$','Comparable','$m','largerThan']};};comparable$.smallerThan=function($hv){var comparable$=this;return (comparable$.compare($hv)===smaller());};comparable$.smallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:smallerThan')];},d:['$','Comparable','$m','smallerThan']};};comparable$.notSmallerThan=function($hw){var comparable$=this;return !(comparable$.compare($hw)===smaller());};comparable$.notSmallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:notSmallerThan')];},d:['$','Comparable','$m','notSmallerThan']};};comparable$.notLargerThan=function($hx){var comparable$=this;return !(comparable$.compare($hx)===larger());};comparable$.notLargerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:notLargerThan')];},d:['$','Comparable','$m','notLargerThan']};};})(Comparable.$$.prototype);}
return Comparable;}
ex$.$init$Comparable=$init$Comparable;$init$Comparable();function ConstrainedAnnotation($$targs$$,constrainedAnnotation$){set_type_args(constrainedAnnotation$,$$targs$$,ConstrainedAnnotation);Annotation(constrainedAnnotation$);}
ConstrainedAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$ConstrainedAnnotation:{dv:'out',sts:[{t:Annotation}],def:{t:Annotation}},Values$ConstrainedAnnotation:{dv:'out',def:{t:Anything}},ProgramElement$ConstrainedAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Nothing}},Type$ConstrainedAnnotation:{dv:'out',def:{t:Anything}}},sts:[{t:Annotation}],of:['Value$ConstrainedAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:ConstrainedAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),OptionalAnnotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),SequencedAnnotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','ConstrainedAnnotation']};};
ex$.ConstrainedAnnotation=ConstrainedAnnotation;function $init$ConstrainedAnnotation(){if(ConstrainedAnnotation.$$===undefined){initTypeProtoI(ConstrainedAnnotation,'ceylon.language::ConstrainedAnnotation',$init$Annotation());
}
return ConstrainedAnnotation;}
ex$.$init$ConstrainedAnnotation=$init$ConstrainedAnnotation;$init$ConstrainedAnnotation();function Contextual($$targs$$,contextual$){$init$Contextual();
if(contextual$===undefined)contextual$=new Contextual.$$;
set_type_args(contextual$,$$targs$$);
contextual$.$hy_=null;return contextual$;}
Contextual.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Element$Contextual:{}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual']};};
ex$.Contextual=Contextual;function $init$Contextual(){if(Contextual.$$===undefined){initTypeProto(Contextual,'ceylon.language::Contextual',Basic);
(function(contextual$){atr$(contextual$,'$hy',function(){return this.$hy_;},function($hz){return this.$hy_=$hz;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Contextual']},$cont:Contextual,pa:1024,d:['$','Contextual','$at','val$vz9pvu']};});contextual$.$_get=function(){var contextual$=this;var $i0;asrt$((nn$(($i0=contextual$.$hy))),"Assertion failed: \'exists result = val\' at Contextual.ceylon (97:15-97:35)",'97:8-97:36','Contextual.ceylon');
return $i0;};contextual$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Contextual',ps:[],$cont:Contextual,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$m','get']};};function Using$Contextual($i1,using$Contextual$){$init$Using$Contextual();
if(using$Contextual$===undefined)using$Contextual$=new this.Using$Contextual.$$;
using$Contextual$.outer$=this;using$Contextual$.$i1_=$i1;Obtainable(using$Contextual$);using$Contextual$.$i2_=null;return using$Contextual$;}
Using$Contextual.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'newValue',mt:'prm',$t:{t:'u',l:['Element$Contextual',{t:Callable,a:{Return$Callable:'Element$Contextual',Arguments$Callable:{t:Empty}}}]}}],$cont:Contextual,sts:[{t:Obtainable}],pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$c','Using']};};function $init$Using$Contextual(){if(Using$Contextual.$$===undefined){initTypeProto(Using$Contextual,'ceylon.language::Contextual.Using',Basic,$init$Obtainable());
Contextual.Using$Contextual=Using$Contextual;
(function(using$Contextual$){atr$(using$Contextual$,'$i1',function(){return this.$i1_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Contextual',{t:Callable,a:{Return$Callable:'Element$Contextual',Arguments$Callable:{t:Empty}}}]},$cont:contextual$.Using$Contextual,d:['$','Contextual','$c','Using','$at','newValue$n3vsh3']};});atr$(using$Contextual$,'$i2',function(){return this.$i2_;},function($i3){return this.$i2_=$i3;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Contextual']},$cont:contextual$.Using$Contextual,pa:1024,d:['$','Contextual','$c','Using','$at','previous$xtplyn']};});using$Contextual$.obtain=function(){var using$Contextual$=this;using$Contextual$.$i2=using$Contextual$.outer$.$hy;var $i4;if(is$(($i4=using$Contextual$.$i1),{t:Callable,a:{Return$Callable:using$Contextual$.outer$.$$targs$$.Element$Contextual/*ORALE!Element inv pero Return var*/,Arguments$Callable:{t:Empty}}})){using$Contextual$.outer$.$hy=$i4();}
else{using$Contextual$.outer$.$hy=$i4;}
};using$Contextual$.obtain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:contextual$.Using$Contextual,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$c','Using','$m','obtain']};};using$Contextual$.release=function($i5){var using$Contextual$=this;var $i6;if(nn$(($i6=using$Contextual$.$i2))){using$Contextual$.outer$.$hy=$i6;}
else{using$Contextual$.outer$.$hy=null;}
};using$Contextual$.release.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'error',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],$cont:contextual$.Using$Contextual,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$c','Using','$m','release']};};})(Using$Contextual.$$.prototype);}
return Using$Contextual;}
contextual$.$init$Using$Contextual=$init$Using$Contextual;contextual$.Using$Contextual=Using$Contextual;$init$Using$Contextual();
})(Contextual.$$.prototype);}
return Contextual;}
ex$.$init$Contextual=$init$Contextual;$init$Contextual();function Correspondence($$targs$$,correspondence$){set_type_args(correspondence$,$$targs$$,Correspondence);}
Correspondence.$crtmm$=function(){return{mod:$CCMM$,tp:{Key$Correspondence:{dv:'in',sts:[{t:$_Object}]},Item$Correspondence:{dv:'out',def:{t:Anything}}},pa:1,an:function(){return[doc$($CCMM$,'$:Correspondence'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Map),$init$OpenInterface$jsint()(lmp$(ex$,'$'),List),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Category)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Correspondence']};};
ex$.Correspondence=Correspondence;function $init$Correspondence(){if(Correspondence.$$===undefined){initTypeProtoI(Correspondence,'ceylon.language::Correspondence');
(function(correspondence$){correspondence$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Item$Correspondence']},ps:[{nm:'key',mt:'prm',$t:'Key$Correspondence'}],$cont:Correspondence,pa:5,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:get'),see("Correspondence.getAll")];},d:['$','Correspondence','$m','get']};}};correspondence$.defines={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:'Key$Correspondence'}],$cont:Correspondence,pa:5,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:defines'),see("Correspondence.definesAny","Correspondence.definesEvery","Correspondence.keys")];},d:['$','Correspondence','$m','defines']};}};atr$(correspondence$,'keys',function(){var correspondence$=this;return function(){function $i7($$targs$$){var $i7$=new $i7.$$;$i7$.outer$=correspondence$;$i7$.$$targs$$=$$targs$$;Category({Element$Category:correspondence$.$$targs$$.Key$Correspondence},$i7$);return $i7$;};$i7.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:correspondence$.$prop$getKeys,sts:[{t:Category,a:{Element$Category:'Key$Correspondence'}}],d:['$','Correspondence','$at','keys']};};function $init$$i7(){if($i7.$$===undefined){initTypeProto($i7,'ceylon.language::Correspondence.anonymous#0',Basic,$init$Category());
(function($i7$){$i7$.contains=function($i8){var $i7$=this;return correspondence$.defines($i8);};})($i7.$$.prototype);}
return $i7;}
correspondence$.$init$$i7=$init$$i7;$init$$i7();return $i7();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Category,a:{Element$Category:'Key$Correspondence'}},$cont:Correspondence,pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$at:keys'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$at','keys']};});correspondence$.definesEvery=function($ia){var correspondence$=this;var $ic;for(var $ib=$ia.iterator();($ic=$ib.next())!==finished();){if(!correspondence$.defines($ic)){return false;}
}
if(finished()===$ic){return true;}
};correspondence$.definesEvery.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Key$Correspondence'}}}],$cont:Correspondence,pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:definesEvery'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','definesEvery']};};correspondence$.definesAny=function($id){var correspondence$=this;var $if;for(var $ie=$id.iterator();($if=$ie.next())!==finished();){if(correspondence$.defines($if)){return true;}
}
if(finished()===$if){return false;}
};correspondence$.definesAny.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Key$Correspondence'}}}],$cont:Correspondence,pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:definesAny'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','definesAny']};};correspondence$.getAll=function($ig,$jg4ox9$){var correspondence$=this;return for$(function(){var $ih=$ig.iterator(),$ii=finished();var n$ii=function(){return $ii=$ih.next();}
return function(){if(n$ii()!==finished()){var $ij=$ii,$ik=correspondence$.$_get($ij);return $ik;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:mut$([{t:Null},correspondence$.$$targs$$.Item$Correspondence])});};correspondence$.getAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$getAll',Element$Iterable:{t:'u',l:[{t:Null},'Item$Correspondence']}}},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$getAll',Element$Iterable:'Key$Correspondence'}}}],$cont:Correspondence,tp:{Absent$getAll:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:getAll'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.$_get)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','getAll']};};})(Correspondence.$$.prototype);}
return Correspondence;}
ex$.$init$Correspondence=$init$Correspondence;$init$Correspondence();function CycledIterator($il,$im,$$targs$$,cycledIterator$){$init$CycledIterator();
if(cycledIterator$===undefined)cycledIterator$=new CycledIterator.$$;
set_type_args(cycledIterator$,$$targs$$);
cycledIterator$.$il_=$il;cycledIterator$.$im_=$im;Iterator({Element$Iterator:$$targs$$.Element$CycledIterator/*ORALE!Element inv pero Element var*/},cycledIterator$);cycledIterator$.$in_=emptyIterator();cycledIterator$.$io_=(0);return cycledIterator$;}
CycledIterator.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'iterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$CycledIterator'}}},{nm:'times',mt:'prm',$t:{t:Integer}}],tp:{Element$CycledIterator:{}},sts:[{t:Iterator,a:{Element$Iterator:'Element$CycledIterator'}}],d:['$','CycledIterator']};};
ex$.CycledIterator=CycledIterator;function $init$CycledIterator(){if(CycledIterator.$$===undefined){initTypeProto(CycledIterator,'ceylon.language::CycledIterator',Basic,$init$Iterator());
(function(cycledIterator$){atr$(cycledIterator$,'$il',function(){return this.$il_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$CycledIterator'}},$cont:CycledIterator,d:['$','CycledIterator','$at','iterable$oksliy']};});atr$(cycledIterator$,'$im',function(){return this.$im_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,d:['$','CycledIterator','$at','times$6c4zeu']};});atr$(cycledIterator$,'$in',function(){return this.$in_;},function($ip){return this.$in_=$ip;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$CycledIterator'}},$cont:CycledIterator,pa:1027,d:['$','CycledIterator','$at','iter$glpg04']};});atr$(cycledIterator$,'$io',function(){return this.$io_;},function($iq){return this.$io_=$iq;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,pa:1024,d:['$','CycledIterator','$at','count$2etvtx']};});cycledIterator$.next=function(){var cycledIterator$=this;var $ir;if(!is$(($ir=cycledIterator$.$in.next()),{t:Finished})){return $ir;}
else{if((cycledIterator$.$io<cycledIterator$.$im)){($is=cycledIterator$.$io,cycledIterator$.$io=$is.successor,$is);var $is;cycledIterator$.$in=cycledIterator$.$il.iterator();}
else{cycledIterator$.$in=emptyIterator();}
return cycledIterator$.$in.next();}
};cycledIterator$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$CycledIterator',{t:Finished}]},ps:[],$cont:CycledIterator,pa:3,d:['$','CycledIterator','$m','next']};};atr$(cycledIterator$,'string',function(){var cycledIterator$=this;return cycledIterator$.$il.string.plus(".repeat(").plus(cycledIterator$.$im.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:CycledIterator,pa:3,d:['$','CycledIterator','$at','string']};});})(CycledIterator.$$.prototype);}
return CycledIterator;}
ex$.$init$CycledIterator=$init$CycledIterator;$init$CycledIterator();function Destroyable(destroyable$){Usable(destroyable$);}
Destroyable.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Usable}],pa:1,an:function(){return[doc$($CCMM$,'$:Destroyable'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Obtainable)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Destroyable']};};
ex$.Destroyable=Destroyable;function $init$Destroyable(){if(Destroyable.$$===undefined){initTypeProtoI(Destroyable,'ceylon.language::Destroyable',$init$Usable());
(function(destroyable$){destroyable$.destroy={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'error',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],$cont:Destroyable,pa:5,an:function(){return[doc$($CCMM$,'$:Destroyable:$m:destroy')];},d:['$','Destroyable','$m','destroy']};}};})(Destroyable.$$.prototype);}
return Destroyable;}
ex$.$init$Destroyable=$init$Destroyable;$init$Destroyable();function Entry(key,item,$$targs$$,entry$){$init$Entry();
if(entry$===undefined)entry$=new Entry.$$;
set_type_args(entry$,$$targs$$);
entry$.key_=key;entry$.item_=item;$_Object(entry$);return entry$;}
Entry.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'key',mt:'prm',$t:'Key$Entry',pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:key')];}},{nm:'item',mt:'prm',$t:'Item$Entry',pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:item')];}}],tp:{Key$Entry:{dv:'out',sts:[{t:$_Object}]},Item$Entry:{dv:'out'}},pa:2081,an:function(){return[doc$($CCMM$,'$:Entry'),by(["Gavin"].$sa$({t:$_String})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Entry']};};
ex$.Entry=Entry;function $init$Entry(){if(Entry.$$===undefined){initTypeProto(Entry,'ceylon.language::Entry',$init$$_Object());
(function(entry$){atr$(entry$,'key',function(){return this.key_;},undefined,function(){return{mod:$CCMM$,$t:'Key$Entry',$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:key')];},d:['$','Entry','$at','key']};});atr$(entry$,'item',function(){return this.item_;},undefined,function(){return{mod:$CCMM$,$t:'Item$Entry',$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:item')];},d:['$','Entry','$at','item']};});atr$(entry$,'pair',function(){var entry$=this;return tpl$([entry$.key,entry$.item]);},undefined,function(){return{mod:$CCMM$,$t:{t:'T',l:['Key$Entry','Item$Entry']},$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:pair')];},d:['$','Entry','$at','pair']};});atr$(entry$,'coalesced',function(){var entry$=this;return function(){var $it;if(nn$(($it=entry$.item)))return Entry(entry$.key,$it,{Key$Entry:entry$.$$targs$$.Key$Entry,Item$Entry:mit$([entry$.$$targs$$.Item$Entry,{t:$_Object}])});else return null}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:'Key$Entry',Item$Entry:{t:'i',l:['Item$Entry',{t:$_Object}]}}}]},$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:coalesced')];},d:['$','Entry','$at','coalesced']};});entry$.equals=function($iu){var entry$=this;var $iv;if(is$(($iv=$iu),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}})){if((!entry$.key.equals($iv.key))){return false;}
var $iw,$ix;if(nn$(($iw=entry$.item))&&nn$(($ix=$iv.item))){return $iw.equals($ix);}
else{return (!nn$(entry$.item)&&!nn$($iv.item));}
}
else{return false;}
};entry$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Entry,pa:3,an:function(){return[doc$($CCMM$,'$:Entry:$m:equals')];},d:['$','Entry','$m','equals']};};atr$(entry$,'hash',function(){var entry$=this;return (31).plus(entry$.key.hash).times(31).plus(($iy=($iz=entry$.item,nn$($iz)?$iz.hash:null),nn$($iy)?$iy:(0)));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Entry,pa:3,d:['$','Entry','$at','hash']};});atr$(entry$,'string',function(){var entry$=this;return entry$.key.string.plus("->").plus(stringify(entry$.item));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Entry,pa:3,an:function(){return[doc$($CCMM$,'$:Entry:$at:string')];},d:['$','Entry','$at','string']};});})(Entry.$$.prototype);}
return Entry;}
ex$.$init$Entry=$init$Entry;$init$Entry();Entry.inst$$=function($j0){var entry$=new Entry.$$;
set_type_args(entry$,{Key$Entry:$j0.$$targs$$.Type$Class.a.Key$Entry,Item$Entry:$j0.$$targs$$.Type$Class.a.Item$Entry});
return entry$;};Entry.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Entry.key')return o.key_;else if(n==='ceylon.language::Entry.item')return o.item_;else throw new TypeError('unknown attribute');};Entry.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Entry.key')o.key_=i;
else if(n==='ceylon.language::Entry.item')o.item_=i;
else throw new TypeError('unknown attribute');};Entry.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getKey)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getItem))];};var $iy,$iz;function Enumerable($$targs$$,enumerable$){set_type_args(enumerable$,$$targs$$,Enumerable);Ordinal({Other$Ordinal:$$targs$$.Other$Enumerable/*ORALE!Other inv pero Other var*/},enumerable$);}
Enumerable.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Enumerable:{sts:[{t:Enumerable,a:{Other$Enumerable:'Other$Enumerable'}}]}},sts:[{t:Ordinal,a:{Other$Ordinal:'Other$Enumerable'}}],of:['Other$Enumerable'],pa:1,an:function(){return[doc$($CCMM$,'$:Enumerable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Range),$init$OpenFunction$jsint()(lmp$(ex$,'$'),span),$init$OpenFunction$jsint()(lmp$(ex$,'$'),measure)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])))];},d:['$','Enumerable']};};
ex$.Enumerable=Enumerable;function $init$Enumerable(){if(Enumerable.$$===undefined){initTypeProtoI(Enumerable,'ceylon.language::Enumerable',$init$Ordinal());
(function(enumerable$){enumerable$.neighbour={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Enumerable',ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Enumerable,pa:5,an:function(){return[doc$($CCMM$,'$:Enumerable:$m:neighbour'),$_throws("OverflowException","if the neighbour cannot be represented as an \ninstance of the type")];},d:['$','Enumerable','$m','neighbour']};}};atr$(enumerable$,'successor',function(){var enumerable$=this;return enumerable$.neighbour(1);},undefined,function(){return{mod:$CCMM$,$t:'Other$Enumerable',$cont:Enumerable,pa:11,d:['$','Enumerable','$at','successor']};});atr$(enumerable$,'predecessor',function(){var enumerable$=this;return enumerable$.neighbour((-1));},undefined,function(){return{mod:$CCMM$,$t:'Other$Enumerable',$cont:Enumerable,pa:11,d:['$','Enumerable','$at','predecessor']};});enumerable$.offset={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:'Other$Enumerable'}],$cont:Enumerable,pa:5,an:function(){return[doc$($CCMM$,'$:Enumerable:$m:offset'),$_throws("OverflowException","if the offset cannot be represented as an \ninteger")];},d:['$','Enumerable','$m','offset']};}};enumerable$.offsetSign=function($j1){var enumerable$=this;return enumerable$.offset($j1).sign;};enumerable$.offsetSign.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:'Other$Enumerable'}],$cont:Enumerable,pa:9,an:function(){return[doc$($CCMM$,'$:Enumerable:$m:offsetSign')];},d:['$','Enumerable','$m','offsetSign']};};})(Enumerable.$$.prototype);}
return Enumerable;}
ex$.$init$Enumerable=$init$Enumerable;$init$Enumerable();function Exponentiable($$targs$$,exponentiable$){set_type_args(exponentiable$,$$targs$$,Exponentiable);Numeric({Other$Numeric:$$targs$$.This$Exponentiable},exponentiable$);}
Exponentiable.$crtmm$=function(){return{mod:$CCMM$,tp:{This$Exponentiable:{sts:[{t:Exponentiable,a:{Other$Exponentiable:'Other$Exponentiable',This$Exponentiable:'This$Exponentiable'}}]},Other$Exponentiable:{sts:[{t:Numeric,a:{Other$Numeric:'Other$Exponentiable'}}]}},sts:[{t:Numeric,a:{Other$Numeric:'This$Exponentiable'}}],of:['This$Exponentiable'],pa:1,an:function(){return[doc$($CCMM$,'$:Exponentiable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$openClass$jsint()(lmp$(ex$,'$'),Float)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Exponentiable']};};
ex$.Exponentiable=Exponentiable;function $init$Exponentiable(){if(Exponentiable.$$===undefined){initTypeProtoI(Exponentiable,'ceylon.language::Exponentiable',$init$Numeric());
(function(exponentiable$){exponentiable$.power={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'This$Exponentiable',ps:[{nm:'other',mt:'prm',$t:'Other$Exponentiable'}],$cont:Exponentiable,pa:5,an:function(){return[doc$($CCMM$,'$:Exponentiable:$m:power')];},d:['$','Exponentiable','$m','power']};}};})(Exponentiable.$$.prototype);}
return Exponentiable;}
ex$.$init$Exponentiable=$init$Exponentiable;$init$Exponentiable();function Finished(finished$){$init$Finished();
if(finished$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Finished"),'?','?')
return finished$;}
Finished.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],of:[$prop$getFinished],pa:257,an:function(){return[doc$($CCMM$,'$:Finished'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterator)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','Finished']};};
ex$.Finished=Finished;function $init$Finished(){if(Finished.$$===undefined){initTypeProto(Finished,'ceylon.language::Finished',Basic);
}
return Finished;}
ex$.$init$Finished=$init$Finished;$init$Finished();function $j2(){var finished$=new $j2.$$;Finished(finished$);return finished$;};$j2.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Finished},d:['$','finished']};};function $init$finished(){if($j2.$$===undefined){initTypeProto($j2,'ceylon.language::finished',$init$Finished());
(function(finished$){atr$(finished$,'string',function(){var finished$=this;return "finished";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$j2,pa:3,d:['$','finished','$at','string']};});})($j2.$$.prototype);}
return $j2;}
ex$.$init$finished=$init$finished;$init$finished();var $j4;function finished(){if($j4===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'finished\' before it was set"),'7:0-13:0','Finished.ceylon');if($j4===undefined){$j4=INIT$;$j4=$init$finished()();$j4.$crtmm$=finished.$crtmm$;}
return $j4;}
ex$.finished=finished;finished.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$finished()},pa:1,an:function(){return[doc$($CCMM$,'$:finished'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterator)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','finished']};};$prop$getFinished=finished;ex$.$prop$getFinished=$prop$getFinished;function InitializationError($j5,initializationError$){$init$InitializationError();
if(initializationError$===undefined)initializationError$=new InitializationError.$$;
initializationError$.$j5_=$j5;AssertionError($j5,initializationError$);return initializationError$;}
InitializationError.$crtmm$=function(){return{mod:$CCMM$,'super':{t:AssertionError},ps:[{nm:'description',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:InitializationError'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),late)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','InitializationError']};};
ex$.InitializationError=InitializationError;function $init$InitializationError(){if(InitializationError.$$===undefined){initTypeProto(InitializationError,'ceylon.language::InitializationError',$init$AssertionError());
(function(initializationError$){atr$(initializationError$,'$j5',function(){return this.$j5_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:InitializationError,d:['$','InitializationError','$at','description$lsghss']};});})(InitializationError.$$.prototype);}
return InitializationError;}
ex$.$init$InitializationError=$init$InitializationError;$init$InitializationError();function Invertible($$targs$$,invertible$){set_type_args(invertible$,$$targs$$,Invertible);Summable({Other$Summable:$$targs$$.Other$Invertible},invertible$);}
Invertible.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Invertible:{sts:[{t:Invertible,a:{Other$Invertible:'Other$Invertible'}}]}},sts:[{t:Summable,a:{Other$Summable:'Other$Invertible'}}],of:['Other$Invertible'],pa:1,an:function(){return[doc$($CCMM$,'$:Invertible'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$openClass$jsint()(lmp$(ex$,'$'),Float)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Invertible']};};
ex$.Invertible=Invertible;function $init$Invertible(){if(Invertible.$$===undefined){initTypeProtoI(Invertible,'ceylon.language::Invertible',$init$Summable());
(function(invertible$){invertible$.$prop$getNegated={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Invertible',$cont:Invertible,pa:5,an:function(){return[doc$($CCMM$,'$:Invertible:$at:negated')];},d:['$','Invertible','$at','negated']};}};invertible$.minus=function($j6){var invertible$=this;return invertible$.plus($j6.negated);};invertible$.minus.$crtmm$=function(){return{mod:$CCMM$,$t:'Other$Invertible',ps:[{nm:'other',mt:'prm',$t:'Other$Invertible'}],$cont:Invertible,pa:9,an:function(){return[doc$($CCMM$,'$:Invertible:$m:minus')];},d:['$','Invertible','$m','minus']};};})(Invertible.$$.prototype);}
return Invertible;}
ex$.$init$Invertible=$init$Invertible;$init$Invertible();function Iterator($$targs$$,iterator$){set_type_args(iterator$,$$targs$$,Iterator);}
Iterator.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Iterator:{dv:'out'}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterator'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterable)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','Iterator']};};
ex$.Iterator=Iterator;function $init$Iterator(){if(Iterator.$$===undefined){initTypeProtoI(Iterator,'ceylon.language::Iterator');
(function(iterator$){iterator$.next={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterator',{t:Finished}]},ps:[],$cont:Iterator,pa:5,an:function(){return[doc$($CCMM$,'$:Iterator:$m:next')];},d:['$','Iterator','$m','next']};}};})(Iterator.$$.prototype);}
return Iterator;}
ex$.$init$Iterator=$init$Iterator;$init$Iterator();function List($$targs$$,list$){set_type_args(list$,$$targs$$,List);Correspondence({Item$Correspondence:$$targs$$.Element$List,Key$Correspondence:{t:Integer}},list$);Ranged({Subrange$Ranged:{t:List,a:{Element$List:$$targs$$.Element$List}},Element$Ranged:$$targs$$.Element$List,Index$Ranged:{t:Integer}},list$);Collection({Element$Collection:$$targs$$.Element$List},list$);}
List.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$List:{dv:'out',def:{t:Anything}}},sts:[{t:Collection,a:{Element$Collection:'Element$List'}},{t:Correspondence,a:{Item$Correspondence:'Element$List',Key$Correspondence:{t:Integer}}},{t:Ranged,a:{Subrange$Ranged:{t:List,a:{Element$List:'Element$List'}},Element$Ranged:'Element$List',Index$Ranged:{t:Integer}}}],pa:1,an:function(){return[doc$($CCMM$,'$:List'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Sequence),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Empty),$init$openClass$jsint()(lmp$(ex$,'$'),$_Array)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}]))),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','List']};};
ex$.List=List;function $init$List(){if(List.$$===undefined){initTypeProtoI(List,'ceylon.language::List',$init$Correspondence(),$init$Ranged(),$init$Collection());
(function(list$){atr$(list$,'first',function(){var list$=this;return list$.getFromFirst(0);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:first')];},d:['$','List','$at','first']};});atr$(list$,'last',function(){var list$=this;return list$.getFromLast(0);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:last')];},d:['$','List','$at','last']};});list$.$_get=function($j7){var list$=this;return list$.getFromFirst($j7);};list$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:3,an:function(){return[doc$($CCMM$,'$:List:$m:get')];},d:['$','List','$m','get']};};list$.getFromFirst={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:7,an:function(){return[doc$($CCMM$,'$:List:$m:getFromFirst'),see("getFromLast")];},d:['$','List','$m','getFromFirst']};}};list$.getFromLast=function($j8){var list$=this;return list$.getFromFirst(list$.size.minus(1).minus($j8));};list$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:getFromLast')];},d:['$','List','$m','getFromLast']};};list$.$j9=function($ja){var list$=this;var $jb;if(nn$(($jb=list$.getFromFirst($ja)))){return $jb;}
else{var $jc;asrt$((is$(($jc=null),list$.$$targs$$.Element$List)),"Assertion failed: \'is Element null\' at List.ceylon (97:19-97:35)",'97:12-97:36','List.ceylon');
return null;}
};list$.$j9.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$List',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,d:['$','List','$m','getElement$v2oaho']};};list$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:List,pa:5,an:function(){return[doc$($CCMM$,'$:List:$at:lastIndex'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','lastIndex']};}};atr$(list$,'size',function(){var list$=this;return (1).plus(($jd=list$.lastIndex,nn$($jd)?$jd:(-1)));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:size'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.$prop$getLastIndex)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','size']};});list$.defines=function($je){var list$=this;return ($jf=$je,$jf.compare((0))!==smaller()&&$jf.compare(list$.size)===smaller());};list$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:defines')];},d:['$','List','$m','defines']};};list$.contains=function($jg){var list$=this;var $ji;for(var $jh=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($ji=$jh.next())!==finished();){var $jj;if(nn$(($jj=list$.getFromFirst($ji)))&&$jj.equals($jg)){return true;}
}
if(finished()===$ji){return false;}
};list$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:contains')];},d:['$','List','$m','contains']};};atr$(list$,'rest',function(){var list$=this;return list$.Rest$List(1);},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:rest')];},d:['$','List','$at','rest']};});atr$(list$,'keys',function(){var list$=this;return list$.Indexes$List();},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Integer}}},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:keys'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.indexes)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$at','keys']};});atr$(list$,'reversed',function(){var list$=this;return list$.Reversed$List();},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$at:reversed')];},d:['$','List','$at','reversed']};});list$.clone=function(){var list$=this;return list$.sequence();};list$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:clone')];},d:['$','List','$m','clone']};};list$.iterator=function(){var list$=this;if((list$.size>0)){return function(){function $jk($$targs$$){var $jk$=new $jk.$$;$jk$.outer$=list$;$jk$.$$targs$$=$$targs$$;Iterator({Element$Iterator:list$.$$targs$$.Element$List},$jk$);$jk$.$jl_=(0);$jk$.$prop$get$jl={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,pa:1024,d:['$','List','$m','iterator','$at','index$dvr23n']};}};$jk$.$prop$get$jl.get=function(){return $jl};$jk$.$jm_=list$.size;$jk$.$prop$get$jm={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,d:['$','List','$m','iterator','$at','size$nv92nu']};}};$jk$.$prop$get$jm.get=function(){return $jm};return $jk$;};$jk.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:list$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$m','iterator']};};function $init$$jk(){if($jk.$$===undefined){initTypeProto($jk,'ceylon.language::List.anonymous#0',Basic,$init$Iterator());
(function($jk$){atr$($jk$,'$jl',function(){return this.$jl_;},function($jn){return this.$jl_=$jn;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,pa:1024,d:['$','List','$m','iterator','$at','index$dvr23n']};});atr$($jk$,'$jm',function(){return this.$jm_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,d:['$','List','$m','iterator','$at','size$nv92nu']};});$jk$.next=function(){var $jk$=this;return ($jo=(($jk$.$jl>=$jk$.$jm)?finished():null),nn$($jo)?$jo:list$.$j9(($jp=$jk$.$jl,$jk$.$jl=$jp.successor,$jp)));};atr$($jk$,'string',function(){var $jk$=this;return list$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:list$.iterator,pa:3,d:['$','List','$m','iterator','$at','string']};});})($jk.$$.prototype);}
return $jk;}
list$.$init$$jk=$init$$jk;$init$$jk();return $jk();}();var $jo,$jp;}
else{return emptyIterator();}
};list$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$List'}},ps:[],$cont:List,pa:11,d:['$','List','$m','iterator']};};list$.equals=function($jr){var list$=this;var $js;if(is$(($js=$jr),{t:$_String})){return false;}
function $jt(){return $jr;}
var $ju;if(is$(($ju=$jt()),{t:List,a:{Element$List:{t:Anything}}})){if((($ju.size).valueOf()==(list$.size).valueOf())){var $jw;for(var $jv=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($jw=$jv.next())!==finished();){var $jx=list$.getFromFirst($jw);var $jy=$ju.getFromFirst($jw);var $jz;if(nn$(($jz=$jx))){var $k0;if(nn$(($k0=$jy))){if((!$jz.equals($k0))){return false;}
}
else{return false;}
}
else{var $k1;if(nn$(($k1=$jy))){return false;}
}
}
if(finished()===$jw){return true;}
}
else{return false;}
}
else{return false;}
};list$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:equals')];},d:['$','List','$m','equals']};};atr$(list$,'hash',function(){var list$=this;var $k2=(1);var $k4;for(var $k3=list$.iterator();($k4=$k3.next())!==finished();){($k2=$k2.times(31));var $k5;if(nn$(($k5=$k4))){($k2=$k2.plus($k5.hash));}
}return $k2;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:List,pa:11,d:['$','List','$at','hash']};});list$.shorterThan=function($k6){var list$=this;return (list$.size<$k6);};list$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','shorterThan']};};list$.longerThan=function($k7){var list$=this;return (list$.size>$k7);};list$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','longerThan']};};list$.repeat=function($k8){var list$=this;return list$.Repeat$List($k8);};list$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:repeat')];},d:['$','List','$m','repeat']};};list$.find=function($k9){var list$=this;var $ka=(0);while(($ka<list$.size)){var $kb;if(nn$(($kb=list$.getFromFirst(($kc=$ka,$ka=$kc.successor,$kc))))){if($k9($kb)){return $kb;}
}
var $kc;}
return null;};list$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:11,d:['$','List','$m','find']};};list$.findLast=function($kd){var list$=this;var $ke=list$.size.minus(1);while(($ke>=0)){var $kf;if(nn$(($kf=list$.getFromFirst(($kg=$ke,$ke=$kg.predecessor,$kg))))&&$kd($kf)){return $kf;}
var $kg;}
return null;};list$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:11,d:['$','List','$m','findLast']};};list$.sublistFrom=function($kh){var list$=this;return ($ki=(($kh<=0)?list$:null),nn$($ki)?$ki:list$.Rest$List($kh));};list$.sublistFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:sublistFrom'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','sublistFrom']};};list$.sublistTo=function($kj){var list$=this;return ($kk=(($kj<0)?empty():null),nn$($kk)?$kk:list$.Sublist$List($kj));};list$.sublistTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:sublistTo'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.initial)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','sublistTo']};};list$.sublist=function($kl,$km){var list$=this;return list$.sublistTo($km).sublistFrom($kl);};list$.sublist.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:sublist')];},d:['$','List','$m','sublist']};};list$.patch$defs$from=function($kn,$ko,$kp,$rfn1sa$){var list$=this;return list$.size;};list$.patch$defs$length=function($kn,$ko,$kp,$rfn1sa$){return 0;};list$.patch=function($kn,$ko,$kp,$rfn1sa$){var list$=this;if($ko===undefined){$ko=list$.size;}
if($kp===undefined){$kp=(0);}
return ($kq=((($kp>=0)&&($kr=$ko,$kr.compare((0))!==smaller()&&$kr.compare(list$.size)!==larger()))?list$.Patch$List($kn,$ko,$kp,{Other$Patch:$rfn1sa$.Other$patch}):null),nn$($kq)?$kq:list$);};list$.patch.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:'u',l:['Element$List','Other$patch']}}},ps:[{nm:'list',mt:'prm',$t:{t:List,a:{Element$List:'Other$patch'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:List,tp:{Other$patch:{}},pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:patch')];},d:['$','List','$m','patch']};};list$.startsWith=function($ks){var list$=this;if(($ks.size>list$.size)){return false;}
return everyPair($JsCallable((function($kt,$ku){return function(){var $kv,$kw;if(nn$(($kv=$kt))&&nn$(($kw=$ku)))return $kv.equals($kw);else return ((nn$($kt)).valueOf()==(nn$($ku)).valueOf())}();}),[{nm:'first',mt:'prm',$t:list$.Element$List},{nm:'second',mt:'prm',$t:{t:Anything}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Anything}]),Element$Tuple:{t:Anything},First$Tuple:list$.$$targs$$.Element$List}}}),list$,$ks,{First$everyPair:list$.$$targs$$.Element$List,Second$everyPair:{t:Anything}});};list$.startsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:startsWith'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.endsWith)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','startsWith']};};list$.endsWith=function($kx){var list$=this;if(($kx.size>list$.size)){return false;}
return everyPair($JsCallable((function($ky,$kz){return function(){var $l0,$l1;if(nn$(($l0=$ky))&&nn$(($l1=$kz)))return $l0.equals($l1);else return ((nn$($ky)).valueOf()==(nn$($kz)).valueOf())}();}),[{nm:'first',mt:'prm',$t:list$.Element$List},{nm:'second',mt:'prm',$t:{t:Anything}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Anything}]),Element$Tuple:{t:Anything},First$Tuple:list$.$$targs$$.Element$List}}}),list$.skip(list$.size.minus($kx.size)),$kx,{First$everyPair:list$.$$targs$$.Element$List,Second$everyPair:{t:Anything}});};list$.endsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:endsWith'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.startsWith)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','endsWith']};};list$.indexesWhere=function($l2){var list$=this;return for$(function(){var $l5;var $l3=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator(),$l4=finished();var n$l4=function(){while(($l4=$l3.next())!==finished()){if(nn$(($l5=list$.getFromFirst($l4)))&&$l2($l5)){return $l4;}
}
return finished();}
return function(){if(n$l4()!==finished()){var $l6=$l4,$l7=$l6;return $l7;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}});};list$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:indexesWhere'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','indexesWhere']};};list$.firstIndexWhere=function($l8){var list$=this;var $l9=(0);while(($l9<list$.size)){var $la;if(nn$(($la=list$.getFromFirst($l9)))&&$l8($la)){return $l9;}
($lb=$l9,$l9=$lb.successor,$lb);var $lb;}
return null;};list$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:firstIndexWhere'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','firstIndexWhere']};};list$.lastIndexWhere=function($lc){var list$=this;var $ld=list$.size;while(($ld>0)){($le=$ld,$ld=$le.predecessor,$le);var $le;var $lf;if(nn$(($lf=list$.getFromFirst($ld)))&&$lc($lf)){return $ld;}
}
return null;};list$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:lastIndexWhere'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','lastIndexWhere']};};list$.$_trim=function($lg){var list$=this;if((list$.size>0)){var $lh=list$.size.minus(1);var $li=(-1);var $lj=(-1);var $ll;for(var $lk=span((0),$lh,{Element$span:{t:Integer}}).iterator();($ll=$lk.next())!==finished();){var $lm;if(nn$(($lm=list$.getFromFirst($ll)))&&!$lg($lm)){$li=$ll;break;}
}
if(finished()===$ll){return empty();}
var $lo;for(var $ln=span($lh,(0),{Element$span:{t:Integer}}).iterator();($lo=$ln.next())!==finished();){var $lp;if(nn$(($lp=list$.getFromFirst($lo)))&&!$lg($lp)){$lj=$lo;break;}
}
if(finished()===$lo){return empty();}
return list$.span($li,$lj);}
else{return empty();}
};list$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trim')];},d:['$','List','$m','trim']};};list$.trimLeading=function($lq){var list$=this;if((list$.size>0)){var $lr=list$.size.minus(1);var $lt=(0),$ls=$lr,$lu=$lt.compare($ls),$lv=$lu===smaller()?'successor':'predecessor';for(var $lw=eorl$($lu);$lw($ls,$lt);$lt=$lt[$lv]){var $lx;if(nn$(($lx=list$.getFromFirst($lt)))&&!$lq($lx)){return list$.span($lt,$lr);}
}}
return empty();};list$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trimLeading')];},d:['$','List','$m','trimLeading']};};list$.trimTrailing=function($ly){var list$=this;if((list$.size>0)){var $lz=list$.size.minus(1);var $m1=$lz,$m0=(0),$m2=$m1.compare($m0),$m3=$m2===smaller()?'successor':'predecessor';for(var $m4=eorl$($m2);$m4($m0,$m1);$m1=$m1[$m3]){var $m5;if(nn$(($m5=list$.getFromFirst($m1)))&&!$ly($m5)){return list$.span(0,$m1);}
}}
return empty();};list$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trimTrailing')];},d:['$','List','$m','trimTrailing']};};list$.$_slice=function($m6){var list$=this;return tpl$([list$.spanTo($m6.minus(1)),list$.spanFrom($m6)]);};list$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:List,a:{Element$List:'Element$List'}},{t:List,a:{Element$List:'Element$List'}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:slice')];},d:['$','List','$m','slice']};};list$.initial=function($m7){var list$=this;return list$.spanTo($m7.minus(1));};list$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:initial'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.terminal),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistTo),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','initial']};};list$.terminal=function($m8){var list$=this;return list$.spanFrom(list$.size.minus($m8));};list$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:terminal'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.initial)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','terminal']};};list$.span=function($m9,$ma){var list$=this;if((list$.size>0)){var $mb=list$.size.minus(1);if(($m9<=$ma)){return ((($ma>=0)&&($m9<=$mb))?ArraySequence($_Array(list$.sublist($m9,$ma),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List}):empty());}
else{return ((($m9>=0)&&($ma<=$mb))?ArraySequence($_Array(list$.sublist($ma,$m9).reversed,{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List}):empty());}
}
else{return empty();}
};list$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','span']};};list$.spanFrom=function($mc){var list$=this;if(($mc<=0)){return list$.clone();}
else{if(($mc<list$.size)){return ArraySequence($_Array(list$.sublistFrom($mc),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}
else{return empty();}
}
};list$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','spanFrom']};};list$.spanTo=function($md){var list$=this;if(($md>=list$.size.minus(1))){return list$.clone();}
else{if(($md>=0)){return ArraySequence($_Array(list$.sublistTo($md),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}
else{return empty();}
}
};list$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','spanTo']};};list$.measure=function($me,$mf){var list$=this;return (($mf>0)?list$.span($me,$me.plus($mf).minus(1)):empty());};list$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','measure']};};list$.collect=function($mg,$u7161g$){var list$=this;if(list$.empty){return empty();}
else{var $mh=(function(){function $mi($$targs$$){var $mi$=new $mi.$$;$mi$.outer$=list$;$mi$.$$targs$$=$$targs$$;$_Object($mi$);List.call(list$,{Element$List:$u7161g$.Result$collect/*ORALE!Result inv pero Element var*/},$mi$);$mi$.size_=list$.size;return $mi$;};$mi.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$mi$.collect,sts:[{t:List,a:{Element$List:'Result$collect'}}],d:['$','List','$m','collect','$o','list$98kifc']};};function $init$$mi(){if($mi.$$===undefined){initTypeProto($mi,'ceylon.language::List.list',$init$$_Object(),$init$List());
(function($mi$){atr$($mi$,'lastIndex',function(){var $mi$=this;return list$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$mi,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$at','lastIndex']};});atr$($mi$,'size',function(){return this.size_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$mi,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$at','size']};});$mi$.getFromFirst=function($mk){var $mi$=this;return (($ml=$mk,$ml.compare((0))!==smaller()&&$ml.compare($mi$.size)===smaller())?$mg(list$.$j9($mk)):null);};})($mi.$$.prototype);}
return $mi;}
list$.$init$$mi=$init$$mi;$init$$mi();var $mm;function $mj(){if($mm===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'list\' before it was set"),'639:12-648:12','List.ceylon');if($mm===undefined){$mm=INIT$;$mm=$init$$mi()({Element$List:$u7161g$.Result$collect/*ORALE!Result inv pero Element var*/});$mm.$crtmm$=$mj.$crtmm$;}
return $mm;}
$mj.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$mi()},$cont:$mi$.collect,d:['$','List','$m','collect','$o','list$98kifd']};};$prop$get$mi=$mj;$mj();return ArraySequence($_Array($mj(),{Element$Array:$u7161g$.Result$collect}),{Element$ArraySequence:$u7161g$.Result$collect/*ORALE!Result inv pero Element var*/});}());if($mh!==undefined){return $mh;}}
};list$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$List']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$List'}]}],$cont:List,tp:{Result$collect:{}},pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:collect')];},d:['$','List','$m','collect']};};function Indexes$List($mn$){$init$Indexes$List();
if($mn$===undefined)$mn$=new this.Indexes$List.$$;
$mn$.outer$=this;$mn$.$$targs$$={Element$List:{t:Integer}};$_Object($mn$);List({Element$List:{t:Integer}},$mn$);return $mn$;}
Indexes$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:List,sts:[{t:List,a:{Element$List:{t:Integer}}}],d:['$','List','$c','Indexes$1g59zu']};};function $init$Indexes$List(){if(Indexes$List.$$===undefined){initTypeProto(Indexes$List,'ceylon.language::List.Indexes',$init$$_Object(),$init$List());
List.Indexes$List=Indexes$List;
(function($mn$){atr$($mn$,'lastIndex',function(){var $mn$=this;return $mn$.outer$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$mn$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','lastIndex']};});$mn$.getFromFirst=function($mo){var $mn$=this;return ($mn$.defines($mo)?$mo:null);};$mn$.clone=function(){var $mn$=this;return measure((0),$mn$.size,{Element$measure:{t:Integer}});};$mn$.measure=function($mp,$mq){var $mn$=this;return $mn$.clone().measure($mp,$mq);};$mn$.span=function($mr,$ms){var $mn$=this;return $mn$.clone().span($mr,$ms);};$mn$.spanFrom=function($mt){var $mn$=this;return $mn$.clone().spanFrom($mt);};$mn$.spanTo=function($mu){var $mn$=this;return $mn$.clone().spanTo($mu);};atr$($mn$,'string',function(){var $mn$=this;return function(){var $mv;if(nn$(($mv=$mn$.lastIndex)))return "{ 0, ... , ".plus($mv.string).plus(" }");else return "{}"}();},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$mn$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','string']};});$mn$.iterator=function(){var $mn$=this;return function(){function $mw($$targs$$){var $mw$=new $mw.$$;$mw$.outer$=$mn$;$mw$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$mw$);$mw$.$mx_=(0);$mw$.$prop$get$mx={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$mn$.Indexes$List,pa:1024,d:['$','List','$c','Indexes$1g59zu','$at','i$unshle']};}};$mw$.$prop$get$mx.get=function(){return $mx};return $mw$;};$mw.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$mn$.Indexes$List,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','List','$c','Indexes$1g59zu']};};function $init$$mw(){if($mw.$$===undefined){initTypeProto($mw,'ceylon.language::List.Indexes.anonymous#3',Basic,$init$Iterator());
(function($mw$){atr$($mw$,'$mx',function(){return this.$mx_;},function($my){return this.$mx_=$my;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$mn$.Indexes$List,pa:1024,d:['$','List','$c','Indexes$1g59zu','$at','i$unshle']};});$mw$.next=function(){var $mw$=this;return ($mz=(($mw$.$mx<$mn$.size)?($n0=$mw$.$mx,$mw$.$mx=$n0.successor,$n0):null),nn$($mz)?$mz:finished());};atr$($mw$,'string',function(){var $mw$=this;return $mn$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$mn$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','string']};});})($mw.$$.prototype);}
return $mw;}
$mn$.$init$$mw=$init$$mw;$init$$mw();return $mw();}();};$mn$.Indexes$List=Indexes$List;})(Indexes$List.$$.prototype);}
return Indexes$List;}
list$.$init$Indexes$List=$init$Indexes$List;list$.Indexes$List=Indexes$List;function Rest$List($n2,$n3$){$init$Rest$List();
if($n3$===undefined)$n3$=new this.Rest$List.$$;
$n3$.outer$=this;$n3$.$$targs$$={Element$List:$n3$.outer$.$$targs$$.Element$List};$n3$.$n2_=$n2;$_Object($n3$);List({Element$List:$n3$.outer$.$$targs$$.Element$List},$n3$);asrt$((($n3$.$n2>=0)),"Assertion failed: \'from>=0\' at List.ceylon (693:15-693:23)",'693:8-693:24','List.ceylon');
$n3$.sublistFrom=function($n4){var list$=this;return (($n4>0)?$n3$.outer$.Rest$List($n4.plus($n3$.$n2)):$n3$);};$n3$.getFromFirst=function($n5){var list$=this;return (($n5<0)?null:$n3$.outer$.getFromFirst($n5.plus($n3$.$n2)));};atr$($n3$,'lastIndex',function(){return function(){var $n6=$n3$.outer$.size.minus($n3$.$n2);return (($n6>0)?$n6.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$n3$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','lastIndex']};});$n3$.measure=function($n7,$n8){var list$=this;return $n3$.outer$.measure($n7.plus($n3$.$n2),$n8);};$n3$.span=function($n9,$na){var list$=this;return $n3$.outer$.span($n9.plus($n3$.$n2),$na.plus($n3$.$n2));};$n3$.spanFrom=function($nb){var list$=this;return $n3$.outer$.spanFrom($nb.plus($n3$.$n2));};$n3$.spanTo=function($nc){var list$=this;return $n3$.outer$.span($n3$.$n2,$nc.plus($n3$.$n2));};$n3$.clone=function(){var list$=this;return $n3$.outer$.clone().Rest$List($n3$.$n2);};$n3$.iterator=function(){var list$=this;return function(){var $nd=$n3$.outer$;return function(){function $ne($$targs$$){var $ne$=new $ne.$$;$ne$.outer$=$n3$;$ne$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$n3$.outer$.$$targs$$.Element$List},$ne$);$ne$.$nf_=(0);$ne$.$prop$get$nf={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$n3$.Rest$List,pa:1024,d:['$','List','$c','Rest$fyp886','$at','i$bkngyv']};}};$ne$.$prop$get$nf.get=function(){return $nf};return $ne$;};$ne.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$n3$.Rest$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Rest$fyp886']};};function $init$$ne(){if($ne.$$===undefined){initTypeProto($ne,'ceylon.language::List.Rest.anonymous#4',Basic,$init$Iterator());
(function($ne$){atr$($ne$,'$nf',function(){return this.$nf_;},function($ng){return this.$nf_=$ng;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$n3$.Rest$List,pa:1024,d:['$','List','$c','Rest$fyp886','$at','i$bkngyv']};});$ne$.next=function(){var $ne$=this;return (($ne$.$nf<$n3$.size)?$nd.$j9($n3$.$n2.plus(($nh=$ne$.$nf,$ne$.$nf=$nh.successor,$nh))):finished());};atr$($ne$,'string',function(){var $ne$=this;return $n3$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$n3$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','string']};});})($ne.$$.prototype);}
return $ne;}
$n3$.$init$$ne=$init$$ne;$init$$ne();return $ne();}();}();};var $nh;return $n3$;}
Rest$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Rest$fyp886']};};function $init$Rest$List(){if(Rest$List.$$===undefined){initTypeProto(Rest$List,'ceylon.language::List.Rest',$init$$_Object(),$init$List());
List.Rest$List=Rest$List;
(function($n3$){atr$($n3$,'$n2',function(){return this.$n2_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$n3$.Rest$List,d:['$','List','$c','Rest$fyp886','$at','from$8r4afz']};});$n3$.sublistFrom=function($n4){var $n3$=this;return (($n4>0)?$n3$.outer$.Rest$List($n4.plus($n3$.$n2)):$n3$);};$n3$.getFromFirst=function($n5){var $n3$=this;return (($n5<0)?null:$n3$.outer$.getFromFirst($n5.plus($n3$.$n2)));};atr$($n3$,'lastIndex',function(){var $n3$=this;return function(){var $n6=$n3$.outer$.size.minus($n3$.$n2);return (($n6>0)?$n6.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$n3$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','lastIndex']};});$n3$.measure=function($n7,$n8){var $n3$=this;return $n3$.outer$.measure($n7.plus($n3$.$n2),$n8);};$n3$.span=function($n9,$na){var $n3$=this;return $n3$.outer$.span($n9.plus($n3$.$n2),$na.plus($n3$.$n2));};$n3$.spanFrom=function($nb){var $n3$=this;return $n3$.outer$.spanFrom($nb.plus($n3$.$n2));};$n3$.spanTo=function($nc){var $n3$=this;return $n3$.outer$.span($n3$.$n2,$nc.plus($n3$.$n2));};$n3$.clone=function(){var $n3$=this;return $n3$.outer$.clone().Rest$List($n3$.$n2);};$n3$.iterator=function(){var $n3$=this;return function(){var $nd=$n3$.outer$;return function(){function $ne($$targs$$){var $ne$=new $ne.$$;$ne$.outer$=$n3$;$ne$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$n3$.outer$.$$targs$$.Element$List},$ne$);$ne$.$nf_=(0);$ne$.$prop$get$nf.get=function(){return $nf};return $ne$;};$ne.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$n3$.Rest$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Rest$fyp886']};};function $init$$ne(){if($ne.$$===undefined){initTypeProto($ne,'ceylon.language::List.Rest.anonymous#4',Basic,$init$Iterator());
(function($ne$){atr$($ne$,'$nf',function(){return this.$nf_;},function($nj){return this.$nf_=$nj;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$n3$.Rest$List,pa:1024,d:['$','List','$c','Rest$fyp886','$at','i$bkngyv']};});$ne$.next=function(){var $ne$=this;return (($ne$.$nf<$n3$.size)?$nd.$j9($n3$.$n2.plus(($nk=$ne$.$nf,$ne$.$nf=$nk.successor,$nk))):finished());};atr$($ne$,'string',function(){var $ne$=this;return $n3$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$n3$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','string']};});})($ne.$$.prototype);}
return $ne;}
$n3$.$init$$ne=$init$$ne;$init$$ne();return $ne();}();}();};$n3$.Rest$List=Rest$List;})(Rest$List.$$.prototype);}
return Rest$List;}
list$.$init$Rest$List=$init$Rest$List;list$.Rest$List=Rest$List;function Sublist$List($nm,$nn$){$init$Sublist$List();
if($nn$===undefined)$nn$=new this.Sublist$List.$$;
$nn$.outer$=this;$nn$.$$targs$$={Element$List:$nn$.outer$.$$targs$$.Element$List};$nn$.$nm_=$nm;$_Object($nn$);List({Element$List:$nn$.outer$.$$targs$$.Element$List},$nn$);asrt$((($nn$.$nm>=0)),"Assertion failed: \'to>=0\' at List.ceylon (739:15-739:21)",'739:8-739:22','List.ceylon');
$nn$.sublistTo=function($no){var list$=this;return (($no<0)?empty():(($no<$nn$.$nm)?$nn$.outer$.Sublist$List($no):$nn$));};$nn$.getFromFirst=function($np){var list$=this;return (($nq=$np,$nq.compare((0))!==smaller()&&$nq.compare($nn$.$nm)!==larger())?$nn$.outer$.getFromFirst($np):null);};atr$($nn$,'lastIndex',function(){return function(){var $nr=$nn$.outer$.size.minus(1);return (($nr>=0)?($ns=(($nr<$nn$.$nm)?$nr:null),nn$($ns)?$ns:$nn$.$nm):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$nn$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','lastIndex']};});var $ns;$nn$.measure=function($nt,$nu){var list$=this;return ($nv=(($nt.plus($nu).minus(1)>$nn$.$nm)?$nn$.outer$.measure($nt,$nn$.$nm):null),nn$($nv)?$nv:$nn$.outer$.measure($nt,$nu));};var $nv;$nn$.span=function($nw,$nx){var list$=this;return ($ny=(($nx>$nn$.$nm)?$nn$.outer$.span($nw,$nn$.$nm):null),nn$($ny)?$ny:$nn$.outer$.span($nw,$nx));};var $ny;$nn$.spanFrom=function($nz){var list$=this;return $nn$.outer$.span($nz,$nn$.$nm);};$nn$.spanTo=function($o0){var list$=this;return ($o1=(($o0>$nn$.$nm)?$nn$.outer$.spanTo($nn$.$nm):null),nn$($o1)?$o1:$nn$.outer$.spanTo($o0));};var $o1;$nn$.clone=function(){var list$=this;return $nn$.outer$.clone().Sublist$List($nn$.$nm);};$nn$.iterator=function(){var list$=this;return function(){var $o2=$nn$.outer$.iterator();return function(){function $o3($$targs$$){var $o3$=new $o3.$$;$o3$.outer$=$nn$;$o3$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$nn$.outer$.$$targs$$.Element$List},$o3$);$o3$.$o4_=(0);$o3$.$prop$get$o4={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$nn$.Sublist$List,pa:1024,d:['$','List','$c','Sublist$elvxw4','$at','i$p2o0ug']};}};$o3$.$prop$get$o4.get=function(){return $o4};return $o3$;};$o3.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$nn$.Sublist$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4']};};function $init$$o3(){if($o3.$$===undefined){initTypeProto($o3,'ceylon.language::List.Sublist.anonymous#5',Basic,$init$Iterator());
(function($o3$){atr$($o3$,'$o4',function(){return this.$o4_;},function($o5){return this.$o4_=$o5;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$nn$.Sublist$List,pa:1024,d:['$','List','$c','Sublist$elvxw4','$at','i$p2o0ug']};});$o3$.next=function(){var $o3$=this;return ($o6=((($o7=$o3$.$o4,$o3$.$o4=$o7.successor,$o7)>$nn$.$nm)?finished():null),nn$($o6)?$o6:$o2.next());};atr$($o3$,'string',function(){var $o3$=this;return $nn$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$nn$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','string']};});})($o3.$$.prototype);}
return $o3;}
$nn$.$init$$o3=$init$$o3;$init$$o3();return $o3();}();}();};var $o6,$o7;return $nn$;}
Sublist$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4']};};function $init$Sublist$List(){if(Sublist$List.$$===undefined){initTypeProto(Sublist$List,'ceylon.language::List.Sublist',$init$$_Object(),$init$List());
List.Sublist$List=Sublist$List;
(function($nn$){atr$($nn$,'$nm',function(){return this.$nm_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$nn$.Sublist$List,d:['$','List','$c','Sublist$elvxw4','$at','to$1d4wke']};});$nn$.sublistTo=function($no){var $nn$=this;return (($no<0)?empty():(($no<$nn$.$nm)?$nn$.outer$.Sublist$List($no):$nn$));};$nn$.getFromFirst=function($np){var $nn$=this;return (($o9=$np,$o9.compare((0))!==smaller()&&$o9.compare($nn$.$nm)!==larger())?$nn$.outer$.getFromFirst($np):null);};atr$($nn$,'lastIndex',function(){var $nn$=this;return function(){var $nr=$nn$.outer$.size.minus(1);return (($nr>=0)?($oa=(($nr<$nn$.$nm)?$nr:null),nn$($oa)?$oa:$nn$.$nm):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$nn$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','lastIndex']};});$nn$.measure=function($nt,$nu){var $nn$=this;return ($ob=(($nt.plus($nu).minus(1)>$nn$.$nm)?$nn$.outer$.measure($nt,$nn$.$nm):null),nn$($ob)?$ob:$nn$.outer$.measure($nt,$nu));};$nn$.span=function($nw,$nx){var $nn$=this;return ($oc=(($nx>$nn$.$nm)?$nn$.outer$.span($nw,$nn$.$nm):null),nn$($oc)?$oc:$nn$.outer$.span($nw,$nx));};$nn$.spanFrom=function($nz){var $nn$=this;return $nn$.outer$.span($nz,$nn$.$nm);};$nn$.spanTo=function($o0){var $nn$=this;return ($od=(($o0>$nn$.$nm)?$nn$.outer$.spanTo($nn$.$nm):null),nn$($od)?$od:$nn$.outer$.spanTo($o0));};$nn$.clone=function(){var $nn$=this;return $nn$.outer$.clone().Sublist$List($nn$.$nm);};$nn$.iterator=function(){var $nn$=this;return function(){var $o2=$nn$.outer$.iterator();return function(){function $o3($$targs$$){var $o3$=new $o3.$$;$o3$.outer$=$nn$;$o3$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$nn$.outer$.$$targs$$.Element$List},$o3$);$o3$.$o4_=(0);$o3$.$prop$get$o4.get=function(){return $o4};return $o3$;};$o3.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$nn$.Sublist$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4']};};function $init$$o3(){if($o3.$$===undefined){initTypeProto($o3,'ceylon.language::List.Sublist.anonymous#5',Basic,$init$Iterator());
(function($o3$){atr$($o3$,'$o4',function(){return this.$o4_;},function($oe){return this.$o4_=$oe;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$nn$.Sublist$List,pa:1024,d:['$','List','$c','Sublist$elvxw4','$at','i$p2o0ug']};});$o3$.next=function(){var $o3$=this;return ($of=((($og=$o3$.$o4,$o3$.$o4=$og.successor,$og)>$nn$.$nm)?finished():null),nn$($of)?$of:$o2.next());};atr$($o3$,'string',function(){var $o3$=this;return $nn$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$nn$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','string']};});})($o3.$$.prototype);}
return $o3;}
$nn$.$init$$o3=$init$$o3;$init$$o3();return $o3();}();}();};$nn$.Sublist$List=Sublist$List;})(Sublist$List.$$.prototype);}
return Sublist$List;}
list$.$init$Sublist$List=$init$Sublist$List;list$.Sublist$List=Sublist$List;function Repeat$List($oi,$oj$){$init$Repeat$List();
if($oj$===undefined)$oj$=new this.Repeat$List.$$;
$oj$.outer$=this;$oj$.$$targs$$={Element$List:$oj$.outer$.$$targs$$.Element$List};$oj$.$oi_=$oi;$_Object($oj$);List({Element$List:$oj$.outer$.$$targs$$.Element$List},$oj$);return $oj$;}
Repeat$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Repeat$59m2x5']};};function $init$Repeat$List(){if(Repeat$List.$$===undefined){initTypeProto(Repeat$List,'ceylon.language::List.Repeat',$init$$_Object(),$init$List());
List.Repeat$List=Repeat$List;
(function($oj$){atr$($oj$,'$oi',function(){return this.$oi_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oj$.Repeat$List,d:['$','List','$c','Repeat$59m2x5','$at','times$219c9m']};});atr$($oj$,'size',function(){var $oj$=this;return $oj$.outer$.size.times($oj$.$oi);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oj$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','size']};});atr$($oj$,'lastIndex',function(){var $oj$=this;return function(){var $ok=$oj$.size;return (($ok>0)?$ok.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$oj$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','lastIndex']};});$oj$.getFromFirst=function($ol){var $oj$=this;return function(){var $om=$oj$.outer$.size;return (($ol<$om.times($oj$.$oi))?$oj$.outer$.getFromFirst($ol.remainder($om)):null);}();};$oj$.clone=function(){var $oj$=this;return $oj$.outer$.clone().Repeat$List($oj$.$oi);};$oj$.iterator=function(){var $oj$=this;return CycledIterator($oj$.outer$,$oj$.$oi,{Element$CycledIterator:$oj$.outer$.$$targs$$.Element$List});};atr$($oj$,'string',function(){var $oj$=this;return "(".plus($oj$.outer$.string).plus(").repeat(").plus($oj$.$oi.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$oj$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','string']};});$oj$.Repeat$List=Repeat$List;})(Repeat$List.$$.prototype);}
return Repeat$List;}
list$.$init$Repeat$List=$init$Repeat$List;list$.Repeat$List=Repeat$List;function Patch$List($on,$oo,$op,$$targs$$,$oq$){$init$Patch$List();
if($oq$===undefined)$oq$=new this.Patch$List.$$;
$oq$.outer$=this;set_type_args($oq$,$$targs$$);
$oq$.$on_=$on;$oq$.$oo_=$oo;$oq$.$op_=$op;$_Object($oq$);List({Element$List:mut$([$oq$.outer$.$$targs$$.Element$List,$oq$.$$targs$$.Other$Patch])},$oq$);asrt$((($oq$.$op>=0)),"Assertion failed: \'length>=0\' at List.ceylon (817:15-817:25)",'817:8-817:26','List.ceylon');
asrt$((($or=$oq$.$oo,$or.compare((0))!==smaller()&&$or.compare($oq$.outer$.size)!==larger())),"Assertion failed: \'0<=from<=outer.size\' at List.ceylon (818:15-818:35)",'818:8-818:36','List.ceylon');
atr$($oq$,'size',function(){return $oq$.outer$.size.plus($oq$.$on.size).minus($oq$.$op);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','size']};});atr$($oq$,'lastIndex',function(){return function(){var $os=$oq$.size;return (($os>0)?$os.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','lastIndex']};});$oq$.getFromFirst=function($ot){var list$=this;return (($ot<$oq$.$oo)?$oq$.outer$.getFromFirst($ot):(($ot.minus($oq$.$oo)<$oq$.$on.size)?$oq$.$on.getFromFirst($ot.minus($oq$.$oo)):$oq$.outer$.getFromFirst($ot.minus($oq$.$on.size).plus($oq$.$op))));};$oq$.clone=function(){var list$=this;return $oq$.outer$.clone().Patch$List($oq$.$on.clone(),$oq$.$oo,$oq$.$op,{Other$Patch:$oq$.$$targs$$.Other$Patch});};$oq$.iterator=function(){var list$=this;return function(){var $ou=$oq$.outer$.iterator(),$ov=$oq$.$on.iterator();return function(){function $ow($$targs$$){var $ow$=new $ow.$$;$ow$.outer$=$oq$;$ow$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mut$([$oq$.outer$.$$targs$$.Element$List,$oq$.$$targs$$.Other$Patch])},$ow$);$ow$.$ox_=(-1);$ow$.$prop$get$ox={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,pa:1024,d:['$','List','$c','Patch$xht1ke','$at','index$ada7l0']};}};$ow$.$prop$get$ox.get=function(){return $ox};return $ow$;};$ow.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$oq$.Patch$List,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke']};};function $init$$ow(){if($ow.$$===undefined){initTypeProto($ow,'ceylon.language::List.Patch.anonymous#6',Basic,$init$Iterator());
(function($ow$){atr$($ow$,'$ox',function(){return this.$ox_;},function($oy){return this.$ox_=$oy;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,pa:1024,d:['$','List','$c','Patch$xht1ke','$at','index$ada7l0']};});$ow$.next=function(){var $ow$=this;if(((($ow$.$ox=$ow$.$ox.successor)).valueOf()==($oq$.$oo).valueOf())){var $p0=(0),$p1=$oq$.$op;for(var $p2=0;$p2<$p1;$p2++,($p0=$p0.successor)){$ou.next();}}
return (($p3=$ow$.$ox.minus($oq$.$oo),$p3.compare((0))!==smaller()&&$p3.compare($oq$.$on.size)===smaller())?$ov.next():$ou.next());};$ow$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$List','Other$Patch',{t:Finished}]},ps:[],$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$m','next']};};atr$($ow$,'string',function(){var $ow$=this;return $oq$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','string']};});})($ow.$$.prototype);}
return $ow;}
$oq$.$init$$ow=$init$$ow;$init$$ow();return $ow();}();}();};return $oq$;}
Patch$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'list',mt:'prm',$t:{t:List,a:{Element$List:'Other$Patch'}}},{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,tp:{Other$Patch:{}},sts:[{t:List,a:{Element$List:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke']};};function $init$Patch$List(){if(Patch$List.$$===undefined){initTypeProto(Patch$List,'ceylon.language::List.Patch',$init$$_Object(),$init$List());
List.Patch$List=Patch$List;
(function($oq$){atr$($oq$,'$on',function(){return this.$on_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Other$Patch'}},$cont:$oq$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','list$cbomfb']};});atr$($oq$,'$oo',function(){return this.$oo_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','from$8gxpyr']};});atr$($oq$,'$op',function(){return this.$op_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','length$x539u7']};});atr$($oq$,'size',function(){var $oq$=this;return $oq$.outer$.size.plus($oq$.$on.size).minus($oq$.$op);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','size']};});atr$($oq$,'lastIndex',function(){var $oq$=this;return function(){var $os=$oq$.size;return (($os>0)?$os.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','lastIndex']};});$oq$.getFromFirst=function($ot){var $oq$=this;return (($ot<$oq$.$oo)?$oq$.outer$.getFromFirst($ot):(($ot.minus($oq$.$oo)<$oq$.$on.size)?$oq$.$on.getFromFirst($ot.minus($oq$.$oo)):$oq$.outer$.getFromFirst($ot.minus($oq$.$on.size).plus($oq$.$op))));};$oq$.clone=function(){var $oq$=this;return $oq$.outer$.clone().Patch$List($oq$.$on.clone(),$oq$.$oo,$oq$.$op,{Other$Patch:$oq$.$$targs$$.Other$Patch});};$oq$.iterator=function(){var $oq$=this;return function(){var $ou=$oq$.outer$.iterator(),$ov=$oq$.$on.iterator();return function(){function $ow($$targs$$){var $ow$=new $ow.$$;$ow$.outer$=$oq$;$ow$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mut$([$oq$.outer$.$$targs$$.Element$List,$oq$.$$targs$$.Other$Patch])},$ow$);$ow$.$ox_=(-1);$ow$.$prop$get$ox.get=function(){return $ox};return $ow$;};$ow.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$oq$.Patch$List,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke']};};function $init$$ow(){if($ow.$$===undefined){initTypeProto($ow,'ceylon.language::List.Patch.anonymous#6',Basic,$init$Iterator());
(function($ow$){atr$($ow$,'$ox',function(){return this.$ox_;},function($p5){return this.$ox_=$p5;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oq$.Patch$List,pa:1024,d:['$','List','$c','Patch$xht1ke','$at','index$ada7l0']};});$ow$.next=function(){var $ow$=this;if(((($ow$.$ox=$ow$.$ox.successor)).valueOf()==($oq$.$oo).valueOf())){var $p0=(0),$p7=$oq$.$op;for(var $p8=0;$p8<$p7;$p8++,($p0=$p0.successor)){$ou.next();}}
return (($p9=$ow$.$ox.minus($oq$.$oo),$p9.compare((0))!==smaller()&&$p9.compare($oq$.$on.size)===smaller())?$ov.next():$ou.next());};$ow$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$List','Other$Patch',{t:Finished}]},ps:[],$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$m','next']};};atr$($ow$,'string',function(){var $ow$=this;return $oq$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$oq$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','string']};});})($ow.$$.prototype);}
return $ow;}
$oq$.$init$$ow=$init$$ow;$init$$ow();return $ow();}();}();};$oq$.Patch$List=Patch$List;})(Patch$List.$$.prototype);}
return Patch$List;}
list$.$init$Patch$List=$init$Patch$List;list$.Patch$List=Patch$List;function Reversed$List($pb$){$init$Reversed$List();
if($pb$===undefined)$pb$=new this.Reversed$List.$$;
$pb$.outer$=this;$pb$.$$targs$$={Element$List:$pb$.outer$.$$targs$$.Element$List};$_Object($pb$);List({Element$List:$pb$.outer$.$$targs$$.Element$List},$pb$);return $pb$;}
Reversed$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Reversed$ijs9g8']};};function $init$Reversed$List(){if(Reversed$List.$$===undefined){initTypeProto(Reversed$List,'ceylon.language::List.Reversed',$init$$_Object(),$init$List());
List.Reversed$List=Reversed$List;
(function($pb$){atr$($pb$,'lastIndex',function(){var $pb$=this;return $pb$.outer$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$pb$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','lastIndex']};});atr$($pb$,'size',function(){var $pb$=this;return $pb$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$pb$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','size']};});atr$($pb$,'first',function(){var $pb$=this;return $pb$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:$pb$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','first']};});atr$($pb$,'last',function(){var $pb$=this;return $pb$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:$pb$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','last']};});atr$($pb$,'reversed',function(){var $pb$=this;return $pb$.outer$;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:$pb$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','reversed']};});$pb$.getFromFirst=function($pc){var $pb$=this;return (($pb$.size>0)?$pb$.outer$.getFromFirst($pb$.size.minus(1).minus($pc)):null);};$pb$.measure=function($pd,$pe){var $pb$=this;return ((($pb$.size>0)&&($pe>0))?function(){var $pf=$pb$.size.minus(1).minus($pd);return $pb$.outer$.span($pf,$pf.minus($pe).plus(1));}():empty());};$pb$.span=function($pg,$ph){var $pb$=this;return $pb$.outer$.span($ph,$pg);};$pb$.spanFrom=function($pi){var $pb$=this;return function(){var $pj=$pb$.size.minus(1);return (($pj>=0)&&($pi<=$pj)?$pb$.outer$.span($pj.minus($pi),0):empty());}();};$pb$.spanTo=function($pk){var $pb$=this;return function(){var $pl=$pb$.size.minus(1);return ((($pl>=0)&&($pk>=0))?$pb$.outer$.span($pl,$pl.minus($pk)):empty());}();};$pb$.clone=function(){var $pb$=this;return $pb$.outer$.clone().reversed;};$pb$.iterator=function(){var $pb$=this;return function(){var $pm=$pb$.outer$;return function(){function $pn($$targs$$){var $pn$=new $pn.$$;$pn$.outer$=$pb$;$pn$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$pb$.outer$.$$targs$$.Element$List},$pn$);$pn$.$po_=$pm.size.minus(1);$pn$.$prop$get$po={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$pb$.Reversed$List,pa:1024,d:['$','List','$c','Reversed$ijs9g8','$at','index$3vxcly']};}};$pn$.$prop$get$po.get=function(){return $po};return $pn$;};$pn.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$pb$.Reversed$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Reversed$ijs9g8']};};function $init$$pn(){if($pn.$$===undefined){initTypeProto($pn,'ceylon.language::List.Reversed.anonymous#7',Basic,$init$Iterator());
(function($pn$){atr$($pn$,'$po',function(){return this.$po_;},function($pp){return this.$po_=$pp;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$pb$.Reversed$List,pa:1024,d:['$','List','$c','Reversed$ijs9g8','$at','index$3vxcly']};});$pn$.next=function(){var $pn$=this;return ($pq=(($pn$.$po<0)?finished():null),nn$($pq)?$pq:$pm.$j9(($pr=$pn$.$po,$pn$.$po=$pr.predecessor,$pr)));};atr$($pn$,'string',function(){var $pn$=this;return $pb$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$pb$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','string']};});})($pn.$$.prototype);}
return $pn;}
$pb$.$init$$pn=$init$$pn;$init$$pn();return $pn();}();}();};$pb$.Reversed$List=Reversed$List;})(Reversed$List.$$.prototype);}
return Reversed$List;}
list$.$init$Reversed$List=$init$Reversed$List;list$.Reversed$List=Reversed$List;$init$Indexes$List();
$init$Rest$List();
$init$Sublist$List();
$init$Repeat$List();
$init$Patch$List();
$init$Reversed$List();
})(List.$$.prototype);}
return List;}
ex$.$init$List=$init$List;$init$List();var $jd,$ki,$kk,$kq,$mz,$n0,$nk,$oa,$ob,$oc,$od,$of,$og,$pq,$pr;function Map($$targs$$,map$){set_type_args(map$,$$targs$$,Map);Correspondence({Item$Correspondence:$$targs$$.Item$Map,Key$Correspondence:{t:$_Object}},map$);Collection({Element$Collection:{t:Entry,a:{Key$Entry:$$targs$$.Key$Map,Item$Entry:$$targs$$.Item$Map}}},map$);}
Map.$crtmm$=function(){return{mod:$CCMM$,tp:{Key$Map:{dv:'out',sts:[{t:$_Object}],def:{t:$_Object}},Item$Map:{dv:'out',def:{t:Anything}}},sts:[{t:Collection,a:{Element$Collection:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}},{t:Correspondence,a:{Item$Correspondence:'Item$Map',Key$Correspondence:{t:$_Object}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Map'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Entry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_map),$init$OpenFunction$jsint()(lmp$(ex$,'$'),forKey),$init$OpenFunction$jsint()(lmp$(ex$,'$'),forItem),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byItem),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byKey)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Map']};};
ex$.Map=Map;function $init$Map(){if(Map.$$===undefined){initTypeProtoI(Map,'ceylon.language::Map',$init$Correspondence(),$init$Collection());
(function(map$){map$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Item$Map']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:7,an:function(){return[doc$($CCMM$,'$:Map:$m:get'),see("getOrDefault")];},d:['$','Map','$m','get']};}};map$.defines={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:7,an:function(){return[doc$($CCMM$,'$:Map:$m:defines'),see("contains")];},d:['$','Map','$m','defines']};}};map$.getOrDefault=function($pt,$pu,$yctp9w$){var map$=this;if(map$.defines($pt)){var $pv;if(nn$(($pv=map$.$_get($pt)))){return $pv;}
else{var $pw;asrt$((is$(($pw=null),map$.$$targs$$.Item$Map)),"Assertion failed: \'is Item null\' at Map.ceylon (78:23-78:36)",'78:16-78:37','Map.ceylon');
return null;}
}
else{return $pu;}
};map$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Item$Map','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:Map,tp:{Default$getOrDefault:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:getOrDefault'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.$_get)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$m','getOrDefault']};};map$.$px=function($py){var map$=this;return map$.getOrDefault($py,Missing_instance(),{Default$getOrDefault:{t:Missing}});};map$.$px.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Item$Map',{t:Missing}]},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:Map,d:['$','Map','$m','lookup$h6x2fy']};};map$.contains=function($pz){var map$=this;var $q0;if(is$(($q0=$pz),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}})&&map$.defines($q0.key)){var $q1=map$.$_get($q0.key);var $q2=$q0.item;return function(){var $q3,$q4;if(nn$(($q3=$q1))&&nn$(($q4=$q2)))return $q3.equals($q4);else return ((nn$($q2)).valueOf()==(nn$($q1)).valueOf())}();}
else{return false;}
};map$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'entry',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:11,an:function(){return[doc$($CCMM$,'$:Map:$m:contains'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$m','contains']};};atr$(map$,'distinct',function(){var map$=this;return map$;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Element$Iterable:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}},Absent$Iterable:{t:Null}}},$cont:Map,pa:3,d:['$','Map','$at','distinct']};});map$.defaultNullElements=function($q5,$9z3fq3$){var map$=this;return map$;};map$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Map,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:3,d:['$','Map','$m','defaultNullElements']};};map$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}},ps:[],$cont:Map,pa:7,an:function(){return[doc$($CCMM$,'$:Map:$m:clone')];},d:['$','Map','$m','clone']};}};atr$(map$,'keys',function(){var map$=this;return function(){function $q6($$targs$$){var $q6$=new $q6.$$;$q6$.outer$=map$;$q6$.$$targs$$=$$targs$$;Collection({Element$Collection:map$.$$targs$$.Key$Map},$q6$);return $q6$;};$q6.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:map$.$prop$getKeys,sts:[{t:Collection,a:{Element$Collection:'Key$Map'}}],d:['$','Map','$at','keys']};};function $init$$q6(){if($q6.$$===undefined){initTypeProto($q6,'ceylon.language::Map.anonymous#0',Basic,$init$Collection());
(function($q6$){$q6$.contains=function($q7){var $q6$=this;return map$.defines($q7);};$q6$.iterator=function(){var $q6$=this;return map$.$_map($JsCallable(function($O$){return $O$.key;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:map$.$$targs$$.Key$Map,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}])}),{Result$map:map$.$$targs$$.Key$Map}).iterator();};$q6$.clone=function(){var $q6$=this;return tpl$([],$q6$);};atr$($q6$,'size',function(){var $q6$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:map$.$prop$getKeys,pa:3,d:['$','Map','$at','keys','$at','size']};});})($q6.$$.prototype);}
return $q6;}
map$.$init$$q6=$init$$q6;$init$$q6();return $q6();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:'Key$Map'}},$cont:Map,pa:11,an:function(){return[doc$($CCMM$,'$:Map:$at:keys')];},d:['$','Map','$at','keys']};});atr$(map$,'items',function(){var map$=this;return function(){function $q9($$targs$$){var $q9$=new $q9.$$;$q9$.outer$=map$;$q9$.$$targs$$=$$targs$$;Collection({Element$Collection:map$.$$targs$$.Item$Map},$q9$);return $q9$;};$q9.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:map$.$prop$getItems,sts:[{t:Collection,a:{Element$Collection:'Item$Map'}}],d:['$','Map','$at','items']};};function $init$$q9(){if($q9.$$===undefined){initTypeProto($q9,'ceylon.language::Map.anonymous#1',Basic,$init$Collection());
(function($q9$){$q9$.contains=function($qa){var $q9$=this;var $qc;for(var $qb=map$.iterator();($qc=$qb.next())!==finished();){var $qd=$qc.key,$qe=$qc.item;var $qf;if(nn$(($qf=$qe))&&$qf.equals($qa)){return true;}
}
if(finished()===$qc){return false;}
};$q9$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'item',mt:'prm',$t:{t:$_Object}}],$cont:map$.$prop$getItems,pa:3,d:['$','Map','$at','items','$m','contains']};};$q9$.iterator=function(){var $q9$=this;return map$.$_map($JsCallable(function($O$){return $O$.item;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:map$.$$targs$$.Item$Map,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}])}),{Result$map:map$.$$targs$$.Item$Map}).iterator();};$q9$.clone=function(){var $q9$=this;return tpl$([],$q9$);};atr$($q9$,'size',function(){var $q9$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:map$.$prop$getItems,pa:3,d:['$','Map','$at','items','$at','size']};});})($q9.$$.prototype);}
return $q9;}
map$.$init$$q9=$init$$q9;$init$$q9();return $q9();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:'Item$Map'}},$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$at:items')];},d:['$','Map','$at','items']};});map$.inverse=function(){var map$=this;return map$.coalescedMap.summarize($JsCallable(function($O$){return $O$.item;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:{t:'i',l:[map$.Item$Map,{t:$_Object}]}}}}],{Return$Callable:mit$([map$.$$targs$$.Item$Map,{t:$_Object}]),Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])}}])}),$JsCallable((function($qh,$qi){return ElementEntry($qh,$qi.key,{Element$ElementEntry:map$.$$targs$$.Key$Map});}),[{nm:'keys',mt:'prm',$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:map$.Key$Map}}]}},{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}]),Element$Tuple:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}},{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}]),First$Tuple:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}}])}}}),{Result$summarize:{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}},Group$summarize:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])});};map$.inverse.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'i',l:['Item$Map',{t:$_Object}]},Item$Map:{t:Sequence,a:{Element$Sequence:'Key$Map'}}}},ps:[],$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:inverse')];},d:['$','Map','$m','inverse']};};map$.equals=function($qj){var map$=this;var $qk;if(is$(($qk=$qj),{t:Map,a:{Key$Map:{t:$_Object},Item$Map:{t:Anything}}})&&(($qk.size).valueOf()==(map$.size).valueOf())){var $qm;for(var $ql=map$.iterator();($qm=$ql.next())!==finished();){var $qn=$qk.$_get($qm.key);var $qo;if(nn$(($qo=$qm.item))){var $qp;if(nn$(($qp=$qn))){if((!$qp.equals($qo))){return false;}
}
else{return false;}
}
else{if(nn$($qn)){return false;}
}
}
if(finished()===$qm){return true;}
}
else{return false;}
};map$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:11,an:function(){return[doc$($CCMM$,'$:Map:$m:equals')];},d:['$','Map','$m','equals']};};atr$(map$,'hash',function(){var map$=this;var $qq=(0);var $qs;for(var $qr=map$.iterator();($qs=$qr.next())!==finished();){($qq=$qq.plus($qs.hash));}return $qq;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Map,pa:11,d:['$','Map','$at','hash']};});map$.mapItems=function($qt,$lhjrmg$){var map$=this;return function(){function $qu($$targs$$){var $qu$=new $qu.$$;$qu$.outer$=map$;$qu$.$$targs$$=$$targs$$;$_Object($qu$);Map.call(map$,{Key$Map:map$.$$targs$$.Key$Map,Item$Map:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/},$qu$);return $qu$;};$qu.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$qu$.mapItems,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Result$mapItems'}}],d:['$','Map','$m','mapItems']};};function $init$$qu(){if($qu.$$===undefined){initTypeProto($qu,'ceylon.language::Map.anonymous#3',$init$$_Object(),$init$Map());
(function($qu$){$qu$.defines=function($qv){var $qu$=this;return map$.defines($qv);};$qu$.$_get=function($qw){var $qu$=this;var $qx;if(is$(($qx=$qw),map$.$$targs$$.Key$Map)){return function($qy){if($qy===Missing_instance())return null;else return $qt($qx,$qy)}(map$.$px($qx));}
else{return null;}
};$qu$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Result$mapItems']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$qu$.mapItems,pa:3,d:['$','Map','$m','mapItems','$m','get']};};$qu$.getOrDefault=function($qz,$r0,$2c9t9d$){var $qu$=this;var $r1;if(is$(($r1=$qz),map$.$$targs$$.Key$Map)){return function($r2){if($r2===Missing_instance())return $r0;else return $qt($r1,$r2)}(map$.$px($r1));}
else{return $r0;}
};$qu$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$mapItems','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$qu$.mapItems,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$m','mapItems','$m','getOrDefault']};};$qu$.$r3=function($r4){var $qu$=this;return Entry($r4.key,$qt($r4.key,$r4.item),{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/});};$qu$.$r3.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Result$mapItems'}},ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}],$cont:$qu$.mapItems,d:['$','Map','$m','mapItems','$m','mapEntry$4qdslx']};};$qu$.iterator=function(){var $qu$=this;return map$.$_map($JsCallable(JsCallable($qu$,$qu$.$r3),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/}},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}])}),{Result$map:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/}}}).iterator();};atr$($qu$,'size',function(){var $qu$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qu$.mapItems,pa:3,d:['$','Map','$m','mapItems','$at','size']};});$qu$.clone=function(){var $qu$=this;return map$.clone().mapItems(JsCallable($qu$,$qt),{Result$mapItems:$lhjrmg$.Result$mapItems});};})($qu.$$.prototype);}
return $qu;}
map$.$init$$qu=$init$$qu;$init$$qu();return $qu();}();};map$.mapItems.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Result$mapItems'}},ps:[{nm:'mapping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$mapItems',Arguments$Callable:{t:'T',l:['Key$Map','Item$Map']}}},$rt:'Result$mapItems',ps:[{nm:'key',mt:'prm',$t:'Key$Map'},{nm:'item',mt:'prm',$t:'Item$Map'}]}],$cont:Map,tp:{Result$mapItems:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:mapItems')];},d:['$','Map','$m','mapItems']};};map$.defaultNullItems=function($r6,$a3ay3o$){var map$=this;return map$.mapItems($JsCallable((function($r7,$r8){return ($r9=$r8,nn$($r9)?$r9:$r6);}),[{nm:'key',mt:'prm',$t:map$.Key$Map},{nm:'elem',mt:'prm',$t:map$.Item$Map}],{Return$Callable:mut$([$a3ay3o$.Default$defaultNullItems,mit$([map$.$$targs$$.Item$Map,{t:$_Object}])]),Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([map$.$$targs$$.Item$Map]),Element$Tuple:mut$([map$.$$targs$$.Key$Map,map$.$$targs$$.Item$Map]),First$Tuple:map$.$$targs$$.Key$Map}}}),{Result$mapItems:mut$([$a3ay3o$.Default$defaultNullItems,mit$([map$.$$targs$$.Item$Map,{t:$_Object}])])});};map$.defaultNullItems.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:{t:'u',l:[{t:'i',l:['Item$Map',{t:$_Object}]},'Default$defaultNullItems']}}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullItems'}],$cont:Map,tp:{Default$defaultNullItems:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:defaultNullItems'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.$prop$getCoalescedMap)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Map','$m','defaultNullItems']};};map$.filterKeys=function($ra){var map$=this;return function(){function $rb($$targs$$){var $rb$=new $rb.$$;$rb$.outer$=map$;$rb$.$$targs$$=$$targs$$;$_Object($rb$);Map.call(map$,{Key$Map:map$.$$targs$$.Key$Map,Item$Map:map$.$$targs$$.Item$Map},$rb$);return $rb$;};$rb.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$rb$.filterKeys,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}}],d:['$','Map','$m','filterKeys']};};function $init$$rb(){if($rb.$$===undefined){initTypeProto($rb,'ceylon.language::Map.anonymous#5',$init$$_Object(),$init$Map());
(function($rb$){$rb$.$_get=function($rc){var $rb$=this;return function(){var $rd;if(is$(($rd=$rc),map$.$$targs$$.Key$Map)&&$ra($rd))return map$.$_get($rd);else return null}();};$rb$.defines=function($re){var $rb$=this;return function(){var $rf;if(is$(($rf=$re),map$.$$targs$$.Key$Map)&&$ra($rf))return map$.defines($rf);else return false}();};$rb$.getOrDefault=function($rg,$rh,$7gy4tn$){var $rb$=this;return function(){var $ri;if(is$(($ri=$rg),map$.$$targs$$.Key$Map)&&$ra($ri))return map$.getOrDefault($ri,$rh,{Default$getOrDefault:$7gy4tn$.Default$getOrDefault});else return $rh}();};$rb$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Item$Map','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$rb$.filterKeys,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$m','filterKeys','$m','getOrDefault']};};$rb$.iterator=function(){var $rb$=this;return map$.$_filter(forKey(JsCallable($rb$,$ra),{Key$forKey:map$.$$targs$$.Key$Map,Result$forKey:{t:$_Boolean}})).iterator();};$rb$.clone=function(){var $rb$=this;return map$.clone().filterKeys(JsCallable($rb$,$ra));};})($rb.$$.prototype);}
return $rb;}
map$.$init$$rb=$init$$rb;$init$$rb();return $rb();}();};map$.filterKeys.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}},ps:[{nm:'filtering',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Key$Map']}}},$rt:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:'Key$Map'}]}],$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:filterKeys')];},d:['$','Map','$m','filterKeys']};};map$.patch=function($rk,$x4xixw$){var map$=this;return function(){function $rl($$targs$$){var $rl$=new $rl.$$;$rl$.outer$=map$;$rl$.$$targs$$=$$targs$$;$_Object($rl$);Map.call(map$,{Key$Map:mut$([map$.$$targs$$.Key$Map,$x4xixw$.OtherKey$patch]),Item$Map:mut$([map$.$$targs$$.Item$Map,$x4xixw$.OtherItem$patch])},$rl$);return $rl$;};$rl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$rl$.patch,sts:[{t:Map,a:{Key$Map:{t:'u',l:['Key$Map','OtherKey$patch']},Item$Map:{t:'u',l:['Item$Map','OtherItem$patch']}}}],d:['$','Map','$m','patch']};};function $init$$rl(){if($rl.$$===undefined){initTypeProto($rl,'ceylon.language::Map.anonymous#6',$init$$_Object(),$init$Map());
(function($rl$){$rl$.defines=function($rm){var $rl$=this;return ($rk.defines($rm)||map$.defines($rm));};$rl$.$_get=function($rn){var $rl$=this;return function($ro){if($ro===Missing_instance())return map$.$_get($rn);else return $ro}($rk.$px($rn));};$rl$.getOrDefault=function($rp,$rq,$gnf48w$){var $rl$=this;return function($rr){if($rr===Missing_instance())return map$.getOrDefault($rp,$rq,{Default$getOrDefault:$gnf48w$.Default$getOrDefault});else return $rr}($rk.$px($rp));};$rl$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['OtherItem$patch','Item$Map','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$rl$.patch,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$m','patch','$m','getOrDefault']};};$rl$.clone=function(){var $rl$=this;return map$.clone().patch($rk.clone(),{OtherKey$patch:$x4xixw$.OtherKey$patch,OtherItem$patch:$x4xixw$.OtherItem$patch});};$rl$.contains=function($rs){var $rl$=this;return function(){var $rt;if(is$(($rt=$rs),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}}))return ($rk.contains($rt)||(!$rk.defines($rt.key)&&map$.contains($rt)));else return false}();};atr$($rl$,'size',function(){var $rl$=this;return map$.size.plus($rk.keys.count(not($JsCallable(($ru=map$,JsCallable($ru,$ru.defines)),[{nm:'key',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),{Value$not:{t:$_Object}})));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$rl$.patch,pa:3,d:['$','Map','$m','patch','$at','size']};});$rl$.iterator=function(){var $rl$=this;return ChainedIterator($rk,map$.$_filter(not($JsCallable(($rv=$rk,JsCallable($rv,$rv.contains)),[{nm:'entry',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),{Value$not:{t:$_Object}})),{Other$ChainedIterator:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}},Element$ChainedIterator:{t:Entry,a:{Key$Entry:$x4xixw$.OtherKey$patch/*ORALE!OtherKey inv pero Key var*/,Item$Entry:$x4xixw$.OtherItem$patch/*ORALE!OtherItem inv pero Item var*/}}});};})($rl.$$.prototype);}
return $rl;}
map$.$init$$rl=$init$$rl;$init$$rl();return $rl();}();};map$.patch.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'u',l:['Key$Map','OtherKey$patch']},Item$Map:{t:'u',l:['Item$Map','OtherItem$patch']}}},ps:[{nm:'other',mt:'prm',$t:{t:Map,a:{Key$Map:'OtherKey$patch',Item$Map:'OtherItem$patch'}}}],$cont:Map,tp:{OtherKey$patch:{sts:[{t:$_Object}]},OtherItem$patch:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:patch')];},d:['$','Map','$m','patch']};};atr$(map$,'coalescedMap',function(){var map$=this;return function(){function $rx($$targs$$){var $rx$=new $rx.$$;$rx$.outer$=map$;$rx$.$$targs$$=$$targs$$;$_Object($rx$);Map.call(map$,{Key$Map:map$.$$targs$$.Key$Map,Item$Map:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])},$rx$);return $rx$;};$rx.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$rx$.$prop$getCoalescedMap,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:{t:'i',l:['Item$Map',{t:$_Object}]}}}],d:['$','Map','$at','coalescedMap']};};function $init$$rx(){if($rx.$$===undefined){initTypeProto($rx,'ceylon.language::Map.anonymous#7',$init$$_Object(),$init$Map());
(function($rx$){$rx$.defines=function($ry){var $rx$=this;return nn$(map$.$_get($ry));};$rx$.$_get=function($rz){var $rx$=this;return map$.$_get($rz);};$rx$.getOrDefault=function($s0,$s1,$wprzk0$){var $rx$=this;return ($s2=map$.getOrDefault($s0,$s1,{Default$getOrDefault:$wprzk0$.Default$getOrDefault}),nn$($s2)?$s2:$s1);};$rx$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Default$getOrDefault',{t:'i',l:['Item$Map',{t:$_Object}]}]},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$rx$.$prop$getCoalescedMap,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$at','coalescedMap','$m','getOrDefault']};};$rx$.iterator=function(){var $rx$=this;return for$(function(){var $s5;var $s3=map$.iterator(),$s4=finished();var n$s4=function(){while(($s4=$s3.next())!==finished()){if(nn$(($s5=$s4.item))){return $s4;}
}
return finished();}
return function(){if(n$s4()!==finished()){var $s6=$s4,$s7=Entry($s6.key,$s5,{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])});return $s7;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])}}}).iterator();};$rx$.clone=function(){var $rx$=this;return map$.clone().coalescedMap;};})($rx.$$.prototype);}
return $rx;}
map$.$init$$rx=$init$$rx;$init$$rx();return $rx();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:{t:'i',l:['Item$Map',{t:$_Object}]}}},$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$at:coalescedMap'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.defaultNullItems)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$at','coalescedMap']};});})(Map.$$.prototype);}
return Map;}
ex$.$init$Map=$init$Map;$init$Map();var $r9,$ru,$rv,$s2;function $_map$defs$choosing($s9,$sa,$vlujh2$){return function($sb,$sc){return $sb;};};function $_map($s9,$sa,$vlujh2$){if($sa===undefined){$sa=function($sb,$sc){return $sb;};}
return $s9.summarize($JsCallable(function($O$){return $O$.key;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:$vlujh2$.Key$map,Item$Entry:$vlujh2$.Item$map}}}],{Return$Callable:$vlujh2$.Key$map/*ORALE!Key inv pero Return var*/,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$vlujh2$.Key$map/*ORALE!Key inv pero Key var*/,Item$Entry:$vlujh2$.Item$map/*ORALE!Item inv pero Item var*/}}])}),$JsCallable((function($sd,$se){return function(){var $sf;if(nn$(($sf=$sd)))return $sa($sf,$se.item);else return $se.item}();}),[{nm:'item',mt:'prm',$t:{t:'u',l:[{t:Null},$vlujh2$.Item$map]}},{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:$vlujh2$.Key$map,Item$Entry:$vlujh2$.Item$map}}}],{Return$Callable:$vlujh2$.Item$map/*ORALE!Item inv pero Return var*/,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Entry,a:{Key$Entry:$vlujh2$.Key$map/*ORALE!Key inv pero Key var*/,Item$Entry:$vlujh2$.Item$map/*ORALE!Item inv pero Item var*/}}]),Element$Tuple:mut$([{t:Null},$vlujh2$.Item$map,{t:Entry,a:{Key$Entry:$vlujh2$.Key$map/*ORALE!Key inv pero Key var*/,Item$Entry:$vlujh2$.Item$map/*ORALE!Item inv pero Item var*/}}]),First$Tuple:mut$([{t:Null},$vlujh2$.Item$map])}}}),{Result$summarize:$vlujh2$.Item$map,Group$summarize:$vlujh2$.Key$map});};$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$map',Item$Map:'Item$map'}},ps:[{nm:'stream',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:'Key$map',Item$Entry:'Item$map'}}}}},{nm:'choosing',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:'Item$map',Arguments$Callable:{t:'T',l:['Item$map','Item$map']}}},$rt:'Item$map',ps:[{nm:'earlier',mt:'prm',$t:'Item$map'},{nm:'later',mt:'prm',$t:'Item$map'}]}],tp:{Key$map:{sts:[{t:$_Object}]},Item$map:{}},pa:1,an:function(){return[doc$($CCMM$,'$:map')];},d:['$','map']};};
ex$.$_map=$_map;function $sg($$targs$$){var emptyMap$=new $sg.$$;emptyMap$.$$targs$$=$$targs$$;$_Object(emptyMap$);Map({Key$Map:{t:Nothing},Item$Map:{t:Nothing}},emptyMap$);return emptyMap$;};$sg.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Map,a:{Key$Map:{t:Nothing},Item$Map:{t:Nothing}}}],d:['$','emptyMap']};};function $init$emptyMap(){if($sg.$$===undefined){initTypeProto($sg,'ceylon.language::emptyMap',$init$$_Object(),$init$Map());
(function(emptyMap$){emptyMap$.$_get=function($si){var emptyMap$=this;return null;};emptyMap$.getOrDefault=function($sj,$sk,$62msqz$){var emptyMap$=this;return $sk;};emptyMap$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:'Default$getOrDefault',ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$sg,tp:{Default$getOrDefault:{}},pa:3,d:['$','emptyMap','$m','getOrDefault']};};atr$(emptyMap$,'keys',function(){var emptyMap$=this;return emptySet();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$sg,pa:3,d:['$','emptyMap','$at','keys']};});atr$(emptyMap$,'items',function(){var emptyMap$=this;return emptySet();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$sg,pa:3,d:['$','emptyMap','$at','items']};});emptyMap$.clone=function(){var emptyMap$=this;return emptyMap$;};emptyMap$.iterator=function(){var emptyMap$=this;return emptyIterator();};atr$(emptyMap$,'size',function(){var emptyMap$=this;return 0;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$sg,pa:3,d:['$','emptyMap','$at','size']};});atr$(emptyMap$,'empty',function(){var emptyMap$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$sg,pa:3,d:['$','emptyMap','$at','empty']};});emptyMap$.defines=function($sl){var emptyMap$=this;return false;};emptyMap$.contains=function($sm){var emptyMap$=this;return false;};emptyMap$.containsAny=function($sn){var emptyMap$=this;return false;};emptyMap$.containsEvery=function($so){var emptyMap$=this;return false;};emptyMap$.mapItems=function($sp,$8lmu3z$){var emptyMap$=this;return emptyMap();};emptyMap$.mapItems.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:Nothing},Item$Map:{t:Nothing}}},ps:[{nm:'mapping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$mapItems',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$mapItems',ps:[{nm:'key',mt:'prm',$t:{t:Nothing}},{nm:'item',mt:'prm',$t:{t:Nothing}}]}],$cont:$sg,tp:{Result$mapItems:{sts:[{t:$_Object}]}},pa:3,d:['$','emptyMap','$m','mapItems']};};emptyMap$.count=function($sq){return 0;};emptyMap$.any=function($sr){var emptyMap$=this;return false;};emptyMap$.$_every=function($ss){var emptyMap$=this;return true;};emptyMap$.find=function($st){var emptyMap$=this;return null;};emptyMap$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}}]}],$cont:$sg,pa:3,d:['$','emptyMap','$m','find']};};emptyMap$.findLast=function($su){var emptyMap$=this;return null;};emptyMap$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}}]}],$cont:$sg,pa:3,d:['$','emptyMap','$m','findLast']};};emptyMap$.skip=function($sv){var emptyMap$=this;return emptyMap$;};emptyMap$.take=function($sw){var emptyMap$=this;return emptyMap$;};emptyMap$.by=function($sx){var emptyMap$=this;return emptyMap$;};emptyMap$.each=function($sy){var emptyMap$=this;};emptyMap$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}}]}],$cont:$sg,pa:3,d:['$','emptyMap','$m','each']};};})($sg.$$.prototype);}
return $sg;}
ex$.$init$emptyMap=$init$emptyMap;$init$emptyMap();var $sz;function emptyMap(){if($sz===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptyMap\' before it was set"),'442:0-492:0','Map.ceylon');if($sz===undefined){$sz=INIT$;$sz=$init$emptyMap()({Item$Map:{t:Nothing},Key$Map:{t:Nothing}});$sz.$crtmm$=emptyMap.$crtmm$;}
return $sz;}
ex$.emptyMap=emptyMap;emptyMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$emptyMap()},pa:1,an:function(){return[doc$($CCMM$,'$:emptyMap'),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','emptyMap']};};$prop$getEmptyMap=emptyMap;ex$.$prop$getEmptyMap=$prop$getEmptyMap;function Missing(){throwexc(Exception("ceylon.language::Missing has no default constructor."),'494:0-496:0','Map.ceylon');}
function Missing$$c(missing$){$init$Missing();
if(missing$===undefined)missing$=new Missing.$$;
return missing$;}
var $t0=undefined;function Missing_instance(){if($t0===undefined){$init$Missing();$t0=new Missing.$$;var missing$=$t0;}return $t0;};Missing_instance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Missing},$cont:Missing,pa:1,d:['$','Missing','$cn','instance']};};Missing.Missing_instance=Missing_instance;Missing.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},of:[Missing.Missing_instance],d:['$','Missing']};};
ex$.Missing=Missing;function $init$Missing(){if(Missing.$$===undefined){initTypeProto(Missing,'ceylon.language::Missing',Basic);
(function(missing$){atr$(missing$,'instance',function(){return Missing_instance();},undefined,function(){return{mod:$CCMM$,$t:{t:Missing},$cont:Missing,pa:1,d:['$','Missing','$cn','instance']};});})(Missing.$$.prototype);}
return Missing;}
ex$.$init$Missing=$init$Missing;$init$Missing();function Measure(first,size,$$targs$$,measure$){$init$Measure();
if(measure$===undefined)measure$=new Measure.$$;
set_type_args(measure$,$$targs$$);
measure$.first_=first;measure$.size_=size;Range({Element$Range:measure$.$$targs$$.Element$Measure},measure$);asrt$(((measure$.size>0)),"must be nonempty: \'size > 0\' at Measure.ceylon (19:11-19:20)",'18:4-19:21','Measure.ceylon');
atr$(measure$,'string',function(){return measure$.first.string.plus(":").plus(measure$.size.string);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});atr$(measure$,'last',function(){return measure$.first.neighbour(measure$.size.minus(1));},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,d:['$','Measure','$at','last']};});measure$.longerThan=function($t1){return (measure$.size>$t1);};measure$.shorterThan=function($t2){return (measure$.size<$t2);};atr$(measure$,'lastIndex',function(){return measure$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,d:['$','Measure','$at','lastIndex']};});atr$(measure$,'rest',function(){return ($t3=((measure$.size>1)?Measure(measure$.first.successor,measure$.size.minus(1),{Element$Measure:measure$.$$targs$$.Element$Measure}):null),nn$($t3)?$t3:empty());},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},$cont:Measure,pa:3,d:['$','Measure','$at','rest']};});var $t3;measure$.getFromFirst=function($t4){return ($t5=((($t4>=0)&&($t4<measure$.size))?measure$.first.neighbour($t4):null),nn$($t5)?$t5:null);};var $t5;atr$(measure$,'increasing',function(){return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','increasing']};});atr$(measure$,'decreasing',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','decreasing']};});measure$.iterator=function(){return function(){function $t6($$targs$$){var $t6$=new $t6.$$;$t6$.outer$=measure$;$t6$.$$targs$$=$$targs$$;Iterator({Element$Iterator:measure$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$t6$);$t6$.$t7_=(0);$t6$.$prop$get$t7={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:1024,d:['$','Measure','$at','count$qsn720']};}};$t6$.$prop$get$t7.get=function(){return $t7};$t6$.$t8_=measure$.first;$t6$.$prop$get$t8={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:1024,d:['$','Measure','$at','current$sp0i3i']};}};$t6$.$prop$get$t8.get=function(){return $t8};return $t6$;};$t6.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:Measure,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure']};};function $init$$t6(){if($t6.$$===undefined){initTypeProto($t6,'ceylon.language::Measure.anonymous#0',Basic,$init$Iterator());
(function($t6$){atr$($t6$,'$t7',function(){return this.$t7_;},function($t9){return this.$t7_=$t9;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:1024,d:['$','Measure','$at','count$qsn720']};});atr$($t6$,'$t8',function(){return this.$t8_;},function($ta){return this.$t8_=$ta;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:1024,d:['$','Measure','$at','current$sp0i3i']};});$t6$.next=function(){var $t6$=this;if(($t6$.$t7>=measure$.size)){return finished();}
else{if(((($tb=$t6$.$t7,$t6$.$t7=$tb.successor,$tb)).valueOf()==(0).valueOf())){return $t6$.$t8;}
else{return ($t6$.$t8=$t6$.$t8.successor);}
var $tb;}
};$t6$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:Measure,pa:3,d:['$','Measure','$m','next']};};atr$($t6$,'string',function(){var $t6$=this;return "(".plus(measure$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});})($t6.$$.prototype);}
return $t6;}
measure$.$init$$t6=$init$$t6;$init$$t6();return $t6();}();};measure$.shifted=function($td){return ($te=((($td).valueOf()==(0).valueOf())?measure$:null),nn$($te)?$te:Measure(measure$.first.neighbour($td),measure$.size,{Element$Measure:measure$.$$targs$$.Element$Measure}));};var $te;measure$.containsElement=function($tf){return ($tg=$tf.offset(measure$.first),$tg.compare((0))!==smaller()&&$tg.compare(measure$.size)===smaller());};return measure$;}
Measure.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Range,a:{Element$Range:'Element$Measure'}},ps:[{nm:'first',mt:'prm',$t:'Element$Measure',pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:first')];}},{nm:'size',mt:'prm',$t:{t:Integer},pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:size')];}}],tp:{Element$Measure:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$Measure'}}]}},pa:2080,an:function(){return[doc$($CCMM$,'$:Measure'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Span),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}])))];},d:['$','Measure']};};
ex$.Measure=Measure;function $init$Measure(){if(Measure.$$===undefined){initTypeProto(Measure,'ceylon.language::Measure',$init$Range());
(function(measure$){atr$(measure$,'first',function(){return this.first_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:first')];},d:['$','Measure','$at','first']};});atr$(measure$,'size',function(){return this.size_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:size')];},d:['$','Measure','$at','size']};});atr$(measure$,'string',function(){var measure$=this;return measure$.first.string.plus(":").plus(measure$.size.string);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});atr$(measure$,'last',function(){var measure$=this;return measure$.first.neighbour(measure$.size.minus(1));},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,d:['$','Measure','$at','last']};});measure$.longerThan=function($t1){var measure$=this;return (measure$.size>$t1);};measure$.shorterThan=function($t2){var measure$=this;return (measure$.size<$t2);};atr$(measure$,'lastIndex',function(){var measure$=this;return measure$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,d:['$','Measure','$at','lastIndex']};});atr$(measure$,'rest',function(){var measure$=this;return ($th=((measure$.size>1)?Measure(measure$.first.successor,measure$.size.minus(1),{Element$Measure:measure$.$$targs$$.Element$Measure}):null),nn$($th)?$th:empty());},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},$cont:Measure,pa:3,d:['$','Measure','$at','rest']};});measure$.getFromFirst=function($t4){var measure$=this;return ($ti=((($t4>=0)&&($t4<measure$.size))?measure$.first.neighbour($t4):null),nn$($ti)?$ti:null);};atr$(measure$,'increasing',function(){var measure$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','increasing']};});atr$(measure$,'decreasing',function(){var measure$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','decreasing']};});measure$.iterator=function(){var measure$=this;return function(){function $t6($$targs$$){var $t6$=new $t6.$$;$t6$.outer$=measure$;$t6$.$$targs$$=$$targs$$;Iterator({Element$Iterator:measure$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$t6$);$t6$.$t7_=(0);$t6$.$prop$get$t7.get=function(){return $t7};$t6$.$t8_=measure$.first;$t6$.$prop$get$t8.get=function(){return $t8};return $t6$;};$t6.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:Measure,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure']};};function $init$$t6(){if($t6.$$===undefined){initTypeProto($t6,'ceylon.language::Measure.anonymous#0',Basic,$init$Iterator());
(function($t6$){atr$($t6$,'$t7',function(){return this.$t7_;},function($tj){return this.$t7_=$tj;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:1024,d:['$','Measure','$at','count$qsn720']};});atr$($t6$,'$t8',function(){return this.$t8_;},function($tk){return this.$t8_=$tk;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:1024,d:['$','Measure','$at','current$sp0i3i']};});$t6$.next=function(){var $t6$=this;if(($t6$.$t7>=measure$.size)){return finished();}
else{if(((($tl=$t6$.$t7,$t6$.$t7=$tl.successor,$tl)).valueOf()==(0).valueOf())){return $t6$.$t8;}
else{return ($t6$.$t8=$t6$.$t8.successor);}
var $tl;}
};$t6$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:Measure,pa:3,d:['$','Measure','$m','next']};};atr$($t6$,'string',function(){var $t6$=this;return "(".plus(measure$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});})($t6.$$.prototype);}
return $t6;}
measure$.$init$$t6=$init$$t6;$init$$t6();return $t6();}();};measure$.by=function($tn){var measure$=this;asrt$((($tn>0)),"step size must be greater than zero: \'step > 0\' at Measure.ceylon (64:15-64:24)",'63:8-64:25','Measure.ceylon');
return ($to=((($tn).valueOf()==(1).valueOf())?measure$:null),nn$($to)?$to:measure$.By$Measure($tn));var $to;};measure$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Measure'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','by']};};measure$.shifted=function($td){var measure$=this;return ($tp=((($td).valueOf()==(0).valueOf())?measure$:null),nn$($tp)?$tp:Measure(measure$.first.neighbour($td),measure$.size,{Element$Measure:measure$.$$targs$$.Element$Measure}));};measure$.containsElement=function($tf){var measure$=this;return ($tq=$tf.offset(measure$.first),$tq.compare((0))!==smaller()&&$tq.compare(measure$.size)===smaller());};measure$.includesRange=function($tr){var measure$=this;var $ts=$tr;if(is$($ts,{t:Measure,a:{Element$Measure:measure$.$$targs$$.Element$Measure}})) {var $tt=$ts.first.offset(measure$.first);return ($tu=$tt,$tu.compare((0))!==smaller()&&$tu.compare(measure$.size.minus($ts.size))!==larger());}
else if(is$($ts,{t:Span,a:{Element$Span:measure$.$$targs$$.Element$Measure}})) {if($ts.decreasing){return false;}
else{var $tv=$ts.first.offset(measure$.first);return ($tw=$tv,$tw.compare((0))!==smaller()&&$tw.compare(measure$.size.minus($ts.size))!==larger());}
}
};measure$.includesRange.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'range',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Measure'}}}],$cont:Measure,pa:3,d:['$','Measure','$m','includesRange']};};measure$.equals=function($tx){var measure$=this;var $ty;if(is$(($ty=$tx),{t:Measure,a:{Element$Measure:{t:$_Object,uv:'out'}}})){return ((($ty.size).valueOf()==(measure$.size).valueOf())&&$ty.first.equals(measure$.first));}
else{var $tz;if(is$(($tz=$ty),{t:Span,a:{Element$Span:{t:$_Object,uv:'out'}}})){return (($tz.increasing&&$tz.first.equals(measure$.first))&&(($tz.size).valueOf()==(measure$.size).valueOf()));}
else{return measure$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(measure$,$tz);}
}
};measure$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Measure,pa:3,d:['$','Measure','$m','equals']};};measure$.measure=function($u0,$u1){var measure$=this;if(($u1<=0)){return empty();}
else{var $u2=($u3=(($u0.plus($u1)<measure$.size)?$u1:null),nn$($u3)?$u3:measure$.size.minus($u0));var $u3;return Measure(measure$.first.neighbour($u0),$u2,{Element$Measure:measure$.$$targs$$.Element$Measure});}
};measure$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','measure']};};measure$.span=function($u4,$u5){var measure$=this;if(($u4<=$u5)){if((($u5<0)||($u4>=measure$.size))){return empty();}
else{var $u6=($u7=(($u5<measure$.size)?$u5.minus($u4).plus(1):null),nn$($u7)?$u7:measure$.size.minus($u4));var $u7;return Measure(measure$.first.neighbour($u4),$u6,{Element$Measure:measure$.$$targs$$.Element$Measure});}
}
else{if((($u4<0)||($u5>=measure$.size))){return empty();}
else{var $u8=($u9=(($u4<measure$.size)?$u4.minus($u5).plus(1):null),nn$($u9)?$u9:measure$.size.minus($u5));var $u9;return Measure(measure$.first.neighbour($u5),$u8,{Element$Measure:measure$.$$targs$$.Element$Measure}).reversed;}
}
};measure$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','span']};};measure$.spanFrom=function($ua){var measure$=this;if(($ua<=0)){return measure$;}
else{if(($ua<measure$.size)){return Measure(measure$.first.neighbour($ua),measure$.size.minus($ua),{Element$Measure:measure$.$$targs$$.Element$Measure});}
else{return empty();}
}
};measure$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','spanFrom']};};measure$.spanTo=function($ub){var measure$=this;if(($ub<0)){return empty();}
else{if(($ub<measure$.size.minus(1))){return Measure(measure$.first,$ub,{Element$Measure:measure$.$$targs$$.Element$Measure});}
else{return measure$;}
}
};measure$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','spanTo']};};measure$.each=function($uc){var measure$=this;var $ud=measure$.first;var $ue=(0);while((($uf=$ue,$ue=$uf.successor,$uf)<measure$.size)){$uc(($ug=$ud,$ud=$ug.successor,$ug));var $ug;}
var $uf;};measure$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Measure']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Measure'}]}],$cont:Measure,pa:3,d:['$','Measure','$m','each']};};function By$Measure($uh,$ui$){$init$By$Measure();
if($ui$===undefined)$ui$=new this.By$Measure.$$;
$ui$.outer$=this;$ui$.$$targs$$={Absent$Iterable:{t:Nothing},Element$Iterable:$ui$.outer$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/};$ui$.$uh_=$uh;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$ui$.outer$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$ui$);return $ui$;}
By$Measure.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Measure,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Measure'}}],d:['$','Measure','$c','By$d85sth']};};function $init$By$Measure(){if(By$Measure.$$===undefined){initTypeProto(By$Measure,'ceylon.language::Measure.By',Basic,$init$Iterable());
Measure.By$Measure=By$Measure;
(function($ui$){atr$($ui$,'$uh',function(){return this.$uh_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,d:['$','Measure','$c','By$d85sth','$at','step$ezo16c']};});atr$($ui$,'size',function(){var $ui$=this;return (1).plus($ui$.outer$.size.minus(1).divided($ui$.$uh));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','size']};});atr$($ui$,'first',function(){var $ui$=this;return $ui$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','first']};});atr$($ui$,'string',function(){var $ui$=this;return "(".plus($ui$.outer$.string).plus(").by(").plus($ui$.$uh.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','string']};});$ui$.iterator=function(){var $ui$=this;return function(){function $uj($$targs$$){var $uj$=new $uj.$$;$uj$.outer$=$ui$;$uj$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$ui$.outer$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$uj$);$uj$.$uk_=(0);$uj$.$prop$get$uk={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','count$rebtit']};}};$uj$.$prop$get$uk.get=function(){return $uk};$uj$.$ul_=$ui$.first;$uj$.$prop$get$ul={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','current$tap4kb']};}};$uj$.$prop$get$ul.get=function(){return $ul};return $uj$;};$uj.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:measure$.By$Measure,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure','$c','By$d85sth']};};function $init$$uj(){if($uj.$$===undefined){initTypeProto($uj,'ceylon.language::Measure.By.anonymous#1',Basic,$init$Iterator());
(function($uj$){atr$($uj$,'$uk',function(){return this.$uk_;},function($um){return this.$uk_=$um;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','count$rebtit']};});atr$($uj$,'$ul',function(){return this.$ul_;},function($un){return this.$ul_=$un;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','current$tap4kb']};});$uj$.next=function(){var $uj$=this;if(($uj$.$uk>=$ui$.size)){return finished();}
else{if(((($uo=$uj$.$uk,$uj$.$uk=$uo.successor,$uo)).valueOf()==(0).valueOf())){return $uj$.$ul;}
else{$uj$.$ul=$uj$.$ul.neighbour($ui$.$uh);return $uj$.$ul;}
var $uo;}
};$uj$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$m','next']};};atr$($uj$,'string',function(){var $uj$=this;return $ui$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','string']};});})($uj.$$.prototype);}
return $uj;}
$ui$.$init$$uj=$init$$uj;$init$$uj();return $uj();}();};})(By$Measure.$$.prototype);}
return By$Measure;}
measure$.$init$By$Measure=$init$By$Measure;measure$.By$Measure=By$Measure;$init$By$Measure();
})(Measure.$$.prototype);}
return Measure;}
ex$.$init$Measure=$init$Measure;$init$Measure();Measure.inst$$=function($uq){var measure$=new Measure.$$;
set_type_args(measure$,{Element$Measure:$uq.$$targs$$.Type$Class.a.Element$Measure});
set_type_args(measure$,{Element$Range:measure$.$$targs$$.Element$Measure,Element$Sequence:measure$.$$targs$$.Element$Measure,Element$Sequential:measure$.$$targs$$.Element$Measure,Element$List:measure$.$$targs$$.Element$Measure,Element$Collection:measure$.$$targs$$.Element$Measure,Element$Iterable:measure$.$$targs$$.Element$Measure,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:measure$.$$targs$$.Element$Measure,Element$Ranged:measure$.$$targs$$.Element$Measure,Subrange$Ranged:{t:List,a:{Element$List:measure$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return measure$;};Measure.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Measure.first')return o.first_;else if(n==='ceylon.language::Measure.size')return o.size_;else return Range.ser$get$(ref,o);};Measure.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Measure.first')o.first_=i;
else if(n==='ceylon.language::Measure.size')o.size_=i;
else Range.ser$get$(ref,o,i);};Measure.ser$refs$=function(o){var a=Range.ser$refs$(o);a.push(MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getFirst)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getSize)));return a;};var $th,$ti,$tp;function measure($ur,$us,$kp09nw$){return ($ut=(($us<=0)?empty():null),nn$($ut)?$ut:Measure($ur,$us,{Element$Measure:$kp09nw$.Element$measure}));};measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Range,a:{Element$Range:'Element$measure'}},{t:Empty}]},ps:[{nm:'first',mt:'prm',$t:'Element$measure'},{nm:'size',mt:'prm',$t:{t:Integer}}],tp:{Element$measure:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$measure'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:measure')];},d:['$','measure']};};
ex$.measure=measure;var $ut;function Obtainable(obtainable$){Usable(obtainable$);}
Obtainable.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Usable}],pa:1,an:function(){return[doc$($CCMM$,'$:Obtainable'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Destroyable)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Obtainable']};};
ex$.Obtainable=Obtainable;function $init$Obtainable(){if(Obtainable.$$===undefined){initTypeProtoI(Obtainable,'ceylon.language::Obtainable',$init$Usable());
(function(obtainable$){obtainable$.obtain={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Obtainable,pa:5,an:function(){return[doc$($CCMM$,'$:Obtainable:$m:obtain'),$_throws("AssertionError","if an illegal state is detected")];},d:['$','Obtainable','$m','obtain']};}};obtainable$.release={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'error',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],$cont:Obtainable,pa:5,an:function(){return[doc$($CCMM$,'$:Obtainable:$m:release'),$_throws("AssertionError","if an illegal state is detected")];},d:['$','Obtainable','$m','release']};}};})(Obtainable.$$.prototype);}
return Obtainable;}
ex$.$init$Obtainable=$init$Obtainable;$init$Obtainable();function OptionalAnnotation($$targs$$,optionalAnnotation$){set_type_args(optionalAnnotation$,$$targs$$,OptionalAnnotation);ConstrainedAnnotation({Values$ConstrainedAnnotation:mut$([{t:Null},$$targs$$.Value$OptionalAnnotation]),ProgramElement$ConstrainedAnnotation:$$targs$$.ProgramElement$OptionalAnnotation,Value$ConstrainedAnnotation:$$targs$$.Value$OptionalAnnotation,Type$ConstrainedAnnotation:$$targs$$.Type$OptionalAnnotation},optionalAnnotation$);}
OptionalAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$OptionalAnnotation:{dv:'out',sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:'Type$OptionalAnnotation',Value$OptionalAnnotation:'Value$OptionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$OptionalAnnotation'}}]},ProgramElement$OptionalAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Annotated}},Type$OptionalAnnotation:{dv:'out',def:{t:Anything}}},sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:'u',l:[{t:Null},'Value$OptionalAnnotation']},ProgramElement$ConstrainedAnnotation:'ProgramElement$OptionalAnnotation',Value$ConstrainedAnnotation:'Value$OptionalAnnotation',Type$ConstrainedAnnotation:'Type$OptionalAnnotation'}}],of:['Value$OptionalAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:OptionalAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','OptionalAnnotation']};};
ex$.OptionalAnnotation=OptionalAnnotation;function $init$OptionalAnnotation(){if(OptionalAnnotation.$$===undefined){initTypeProtoI(OptionalAnnotation,'ceylon.language::OptionalAnnotation',$init$ConstrainedAnnotation());
}
return OptionalAnnotation;}
ex$.$init$OptionalAnnotation=$init$OptionalAnnotation;$init$OptionalAnnotation();function Ordinal($$targs$$,ordinal$){set_type_args(ordinal$,$$targs$$,Ordinal);}
Ordinal.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Ordinal:{dv:'out',sts:[{t:Ordinal,a:{Other$Ordinal:'Other$Ordinal'}}]}},of:['Other$Ordinal'],pa:1,an:function(){return[doc$($CCMM$,'$:Ordinal'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Character),$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Integral),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Ordinal']};};
ex$.Ordinal=Ordinal;function $init$Ordinal(){if(Ordinal.$$===undefined){initTypeProtoI(Ordinal,'ceylon.language::Ordinal');
(function(ordinal$){ordinal$.$prop$getSuccessor={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Ordinal',$cont:Ordinal,pa:5,an:function(){return[doc$($CCMM$,'$:Ordinal:$at:successor')];},d:['$','Ordinal','$at','successor']};}};ordinal$.$prop$getPredecessor={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Ordinal',$cont:Ordinal,pa:5,an:function(){return[doc$($CCMM$,'$:Ordinal:$at:predecessor')];},d:['$','Ordinal','$at','predecessor']};}};})(Ordinal.$$.prototype);}
return Ordinal;}
ex$.$init$Ordinal=$init$Ordinal;$init$Ordinal();function OverflowException($uu,overflowException$){$init$OverflowException();
if(overflowException$===undefined)overflowException$=new OverflowException.$$;
if($uu===undefined){$uu=$init$OverflowException().$defs$message(overflowException$);}
overflowException$.$uu_=$uu;Exception($uu,undefined,overflowException$);return overflowException$;}
OverflowException.$defs$message=function(overflowException$){return "Numeric overflow"};OverflowException.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',def:1,$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:OverflowException')];},d:['$','OverflowException']};};
ex$.OverflowException=OverflowException;function $init$OverflowException(){if(OverflowException.$$===undefined){initTypeProto(OverflowException,'ceylon.language::OverflowException',$init$Exception());
(function(overflowException$){atr$(overflowException$,'$uu',function(){return this.$uu_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OverflowException,d:['$','OverflowException','$at','message$zh6xok']};});})(OverflowException.$$.prototype);}
return OverflowException;}
ex$.$init$OverflowException=$init$OverflowException;$init$OverflowException();function Range($$targs$$,range$){$init$Range();
if(range$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Range"),'?','?')
set_type_args(range$,$$targs$$);
$_Object(range$);Sequence({Element$Sequence:$$targs$$.Element$Range/*ORALE!Element inv pero Element var*/},range$);return range$;}
Range.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$Range:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$Range'}}]}},sts:[{t:Sequence,a:{Element$Sequence:'Element$Range'}}],of:[{t:Span,a:{Element$Span:'Element$Range'}},{t:Measure,a:{Element$Measure:'Element$Range'}}],pa:2321,an:function(){return[doc$($CCMM$,'$:Range'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),span),$init$OpenFunction$jsint()(lmp$(ex$,'$'),measure)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Range']};};
ex$.Range=Range;function $init$Range(){if(Range.$$===undefined){initTypeProto(Range,'ceylon.language::Range',$init$$_Object(),$init$Sequence());
(function(range$){range$.containsElement={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Range'}],$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$m:containsElement')];},d:['$','Range','$m','containsElement']};}};range$.includesRange={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'range',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Range'}}}],$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$m:includesRange')];},d:['$','Range','$m','includesRange']};}};range$.contains=function($uv){var range$=this;return function(){var $uw;if(is$(($uw=$uv),range$.$$targs$$.Element$Range))return range$.containsElement($uw);else return false}();};range$.shifted={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:'Element$Range'}},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$m:shifted')];},d:['$','Range','$m','shifted']};}};range$.$prop$getIncreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$at:increasing')];},d:['$','Range','$at','increasing']};}};range$.$prop$getDecreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$at:decreasing')];},d:['$','Range','$at','decreasing']};}};atr$(range$,'coalesced',function(){var range$=this;return range$;},undefined,function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:'Element$Range'}},$cont:Range,pa:3,an:function(){return[doc$($CCMM$,'$:Range:$at:coalesced')];},d:['$','Range','$at','coalesced']};});})(Range.$$.prototype);}
return Range;}
ex$.$init$Range=$init$Range;$init$Range();Range.inst$$=function($ux){var range$=new Range.$$;
set_type_args(range$,{Element$Range:$ux.$$targs$$.Type$Class.a.Element$Range});
set_type_args(range$,{Element$Sequence:range$.$$targs$$.Element$Range,Element$Sequential:range$.$$targs$$.Element$Range,Element$List:range$.$$targs$$.Element$Range,Element$Collection:range$.$$targs$$.Element$Range,Element$Iterable:range$.$$targs$$.Element$Range,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:range$.$$targs$$.Element$Range,Element$Ranged:range$.$$targs$$.Element$Range,Subrange$Ranged:{t:List,a:{Element$List:range$.$$targs$$.Element$Range/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return range$;};Range.ser$get$=function(ref,o){throw new TypeError('unknown attribute');};Range.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');
throw new TypeError('unknown attribute');};Range.ser$refs$=function(o){return [];};function Ranged($$targs$$,ranged$){set_type_args(ranged$,$$targs$$,Ranged);Iterable({Absent$Iterable:{t:Null},Element$Iterable:$$targs$$.Element$Ranged},ranged$);}
Ranged.$crtmm$=function(){return{mod:$CCMM$,tp:{Index$Ranged:{dv:'in'},Element$Ranged:{dv:'out'},Subrange$Ranged:{dv:'out',sts:[{t:Ranged,a:{Subrange$Ranged:'Subrange$Ranged',Element$Ranged:'Element$Ranged',Index$Ranged:'Index$Ranged'}}]}},sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Ranged'}}],of:['Subrange$Ranged'],pa:1,an:function(){return[doc$($CCMM$,'$:Ranged'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),List),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Sequence),$init$openClass$jsint()(lmp$(ex$,'$'),$_String)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:ClassWithInitializerDeclaration$meta$declaration}])))];},d:['$','Ranged']};};
ex$.Ranged=Ranged;function $init$Ranged(){if(Ranged.$$===undefined){initTypeProtoI(Ranged,'ceylon.language::Ranged',$init$Iterable());
(function(ranged$){ranged$.span={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'from',mt:'prm',$t:'Index$Ranged'},{nm:'to',mt:'prm',$t:'Index$Ranged'}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:span')];},d:['$','Ranged','$m','span']};}};ranged$.spanFrom={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'from',mt:'prm',$t:'Index$Ranged'}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:spanFrom')];},d:['$','Ranged','$m','spanFrom']};}};ranged$.spanTo={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'to',mt:'prm',$t:'Index$Ranged'}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:spanTo')];},d:['$','Ranged','$m','spanTo']};}};ranged$.measure={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'from',mt:'prm',$t:'Index$Ranged'},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:measure')];},d:['$','Ranged','$m','measure']};}};})(Ranged.$$.prototype);}
return Ranged;}
ex$.$init$Ranged=$init$Ranged;$init$Ranged();function Resource(resource$){resource$.textContent$defs$encoding=function($uy){return "UTF-8";};}
Resource.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Resource'),by(["Enrique Zamudio"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),$init$Module$meta$declaration().$$.prototype.resourceByPath)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Environment"].$sa$({t:$_String}))];},d:['$','Resource']};};
ex$.Resource=Resource;function $init$Resource(){if(Resource.$$===undefined){initTypeProtoI(Resource,'ceylon.language::Resource');
(function(resource$){atr$(resource$,'name',function(){var resource$=this;var $uz=resource$.uri.lastOccurrence(Character(47,true));var $v0;if(nn$(($v0=$uz))){return resource$.uri.spanFrom($v0.plus(1));}
function $v1(){return $uz;}
return resource$.uri;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Resource,pa:9,an:function(){return[doc$($CCMM$,'$:Resource:$at:name')];},d:['$','Resource','$at','name']};});resource$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Resource,pa:5,an:function(){return[doc$($CCMM$,'$:Resource:$at:size')];},d:['$','Resource','$at','size']};}};resource$.$prop$getUri={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Resource,pa:5,an:function(){return[doc$($CCMM$,'$:Resource:$at:uri')];},d:['$','Resource','$at','uri']};}};resource$.textContent={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'encoding',mt:'prm',def:1,$t:{t:$_String}}],$cont:Resource,pa:5,an:function(){return[doc$($CCMM$,'$:Resource:$m:textContent')];},d:['$','Resource','$m','textContent']};}};atr$(resource$,'string',function(){var resource$=this;return className(resource$).plus("[").plus(resource$.uri).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Resource,pa:3,d:['$','Resource','$at','string']};});})(Resource.$$.prototype);}
return Resource;}
ex$.$init$Resource=$init$Resource;$init$Resource();function SearchableList($$targs$$,searchableList$){set_type_args(searchableList$,$$targs$$,SearchableList);List({Element$List:$$targs$$.Element$SearchableList/*ORALE!Element inv pero Element var*/},searchableList$);}
SearchableList.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$SearchableList:{}},sts:[{t:List,a:{Element$List:'Element$SearchableList'}}],pa:1,an:function(){return[doc$($CCMM$,'$:SearchableList'),see([$init$openClass$jsint()(lmp$(ex$,'$'),$_String),$init$openClass$jsint()(lmp$(ex$,'$'),$_Array)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}])))];},d:['$','SearchableList']};};
ex$.SearchableList=SearchableList;function $init$SearchableList(){if(SearchableList.$$===undefined){initTypeProtoI(SearchableList,'ceylon.language::SearchableList',$init$List());
(function(searchableList$){searchableList$.occursAt=function($v2,$v3){var searchableList$=this;return function(){var $v4=searchableList$.getFromFirst($v2);return function(){var $v5,$v6;if(nn$(($v5=$v3))&&nn$(($v6=$v4)))return $v6.equals($v5);else return ((nn$($v3)).valueOf()==(nn$($v4)).valueOf())}();}();};searchableList$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:'Element$SearchableList'}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:occursAt')];},d:['$','SearchableList','$m','occursAt']};};searchableList$.occurrences$defs$from=function($v7,$v8,$v9){return 0;};searchableList$.occurrences$defs$length=function($v7,$v8,$v9){var searchableList$=this;return searchableList$.size.minus($v8);};searchableList$.occurrences=function($v7,$v8,$v9){var searchableList$=this;if($v8===undefined){$v8=(0);}
if($v9===undefined){$v9=searchableList$.size.minus($v8);}
return function(){function $va($$targs$$){var $va$=new $va.$$;$va$.outer$=searchableList$;$va$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}},$va$);$va$.$vb_=searchableList$.size;$va$.$prop$get$vb={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','len$wigr3h']};}};$va$.$prop$get$vb.get=function(){return $vb};$va$.$vc_=($vd=(($v8.plus($v9)>$va$.$vb)?$va$.$vb:null),nn$($vd)?$vd:$v8.plus($v9));$va$.$prop$get$vc={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','max$whrwdy']};}};$va$.$prop$get$vc.get=function(){return $vc};var $vd;return $va$;};$va.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.occurrences,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}}],d:['$','SearchableList','$m','occurrences']};};function $init$$va(){if($va.$$===undefined){initTypeProto($va,'ceylon.language::SearchableList.anonymous#0',Basic,$init$Iterable());
(function($va$){atr$($va$,'$vb',function(){return this.$vb_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','len$wigr3h']};});atr$($va$,'$vc',function(){return this.$vc_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','max$whrwdy']};});$va$.iterator=function(){var $va$=this;return function(){function $ve($$targs$$){var $ve$=new $ve.$$;$ve$.outer$=$va$;$ve$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$ve$);$ve$.$vf_=$v8;$ve$.$prop$get$vf={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,pa:1024,d:['$','SearchableList','$m','occurrences','$at','index$1r6deb']};}};$ve$.$prop$get$vf.get=function(){return $vf};return $ve$;};$ve.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.occurrences,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','SearchableList','$m','occurrences']};};function $init$$ve(){if($ve.$$===undefined){initTypeProto($ve,'ceylon.language::SearchableList.anonymous#0.anonymous#1',Basic,$init$Iterator());
(function($ve$){atr$($ve$,'$vf',function(){return this.$vf_;},function($vg){return this.$vf_=$vg;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,pa:1024,d:['$','SearchableList','$m','occurrences','$at','index$1r6deb']};});$ve$.next=function(){var $ve$=this;while(($ve$.$vf<$va$.$vc)){if(searchableList$.occursAt($ve$.$vf,$v7)){return ($vh=$ve$.$vf,$ve$.$vf=$vh.successor,$vh);var $vh;}
else{($vi=$ve$.$vf,$ve$.$vf=$vi.successor,$vi);var $vi;}
}
return finished();};$ve$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Integer},{t:Finished}]},ps:[],$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$m','next']};};})($ve.$$.prototype);}
return $ve;}
$va$.$init$$ve=$init$$ve;$init$$ve();return $ve();}();};atr$($va$,'size',function(){var $va$=this;var $vk=(0);var $vm=$v8,$vn=$va$.$vc.minus($v8);for(var $vo=0;$vo<$vn;$vo++,($vm=$vm.successor)){if(searchableList$.occursAt($vm,$v7)){($vp=$vk,$vk=$vp.successor,$vp);var $vp;}
}return $vk;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','size']};});atr$($va$,'empty',function(){var $va$=this;return searchableList$.occurs($v7,$v8,$v9);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','empty']};});atr$($va$,'first',function(){var $va$=this;return searchableList$.firstOccurrence($v7,$v8,$v9);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','first']};});atr$($va$,'last',function(){var $va$=this;return searchableList$.lastOccurrence($v7,$v8,$v9);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','last']};});})($va.$$.prototype);}
return $va;}
searchableList$.$init$$va=$init$$va;$init$$va();return $va();}();};searchableList$.occurrences.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:occurrences')];},d:['$','SearchableList','$m','occurrences']};};searchableList$.occurs$defs$from=function($vr,$vs,$vt){return 0;};searchableList$.occurs$defs$length=function($vr,$vs,$vt){var searchableList$=this;return searchableList$.size.minus($vs);};searchableList$.occurs=function($vr,$vs,$vt){var searchableList$=this;if($vs===undefined){$vs=(0);}
if($vt===undefined){$vt=searchableList$.size.minus($vs);}
return nn$(searchableList$.firstOccurrence($vr,$vs,$vt));};searchableList$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:occurs')];},d:['$','SearchableList','$m','occurs']};};searchableList$.firstOccurrence$defs$from=function($vu,$vv,$vw){return 0;};searchableList$.firstOccurrence$defs$length=function($vu,$vv,$vw){var searchableList$=this;return searchableList$.size.minus($vv);};searchableList$.firstOccurrence=function($vu,$vv,$vw){var searchableList$=this;if($vv===undefined){$vv=(0);}
if($vw===undefined){$vw=searchableList$.size.minus($vv);}
var $vy;for(var $vx=measure($vv,$vw,{Element$measure:{t:Integer}}).iterator();($vy=$vx.next())!==finished();){if(searchableList$.occursAt($vy,$vu)){return $vy;}
}
if(finished()===$vy){return null;}
};searchableList$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:firstOccurrence')];},d:['$','SearchableList','$m','firstOccurrence']};};searchableList$.lastOccurrence$defs$from=function($vz,$w0,$w1){return 0;};searchableList$.lastOccurrence$defs$length=function($vz,$w0,$w1){var searchableList$=this;return searchableList$.size.minus($w0);};searchableList$.lastOccurrence=function($vz,$w0,$w1){var searchableList$=this;if($w0===undefined){$w0=(0);}
if($w1===undefined){$w1=searchableList$.size.minus($w0);}
var $w3;for(var $w2=measure(searchableList$.size.minus($w1).minus($w0),$w1,{Element$measure:{t:Integer}}).reversed.iterator();($w3=$w2.next())!==finished();){if(searchableList$.occursAt($w3,$vz)){return $w3;}
}
if(finished()===$w3){return null;}
};searchableList$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:lastOccurrence')];},d:['$','SearchableList','$m','lastOccurrence']};};searchableList$.includesAt=function($w4,$w5){var searchableList$=this;if(($w6=$w4,$w6.compare((0))!==smaller()&&$w6.compare(searchableList$.size.minus($w5.size))!==larger())){var $w7=$w4;var $w9;for(var $w8=$w5.iterator();($w9=$w8.next())!==finished();){var $wa;if(nn$(($wa=$w9))){if(!searchableList$.occursAt($w7,$wa)){return false;}
}
else{var $wb;asrt$((is$(($wb=null),searchableList$.$$targs$$.Element$SearchableList)),"Assertion failed: \'is Element null\' at SearchableList.ceylon (183:27-183:43)",'183:20-183:44','SearchableList.ceylon');
if(!searchableList$.occursAt($w7,null)){return false;}
}
($wc=$w7,$w7=$wc.successor,$wc);var $wc;}
if(finished()===$w9){return true;}
}
else{return false;}
};searchableList$.includesAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:includesAt')];},d:['$','SearchableList','$m','includesAt']};};searchableList$.inclusions$defs$from=function($wd,$we){return 0;};searchableList$.inclusions=function($wd,$we){var searchableList$=this;if($we===undefined){$we=(0);}
return function(){function $wf($$targs$$){var $wf$=new $wf.$$;$wf$.outer$=searchableList$;$wf$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}},$wf$);$wf$.$wg_=searchableList$.size;$wf$.$prop$get$wg={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','len$cmsvse']};}};$wf$.$prop$get$wg.get=function(){return $wg};return $wf$;};$wf.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.inclusions,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}}],d:['$','SearchableList','$m','inclusions']};};function $init$$wf(){if($wf.$$===undefined){initTypeProto($wf,'ceylon.language::SearchableList.anonymous#2',Basic,$init$Iterable());
(function($wf$){atr$($wf$,'$wg',function(){return this.$wg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','len$cmsvse']};});$wf$.iterator=function(){var $wf$=this;return function(){function $wh($$targs$$){var $wh$=new $wh.$$;$wh$.outer$=$wf$;$wh$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$wh$);$wh$.$wi_=$wf$.$wg.plus(1).minus($wd.size);$wh$.$prop$get$wi={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','max$dhhm6q']};}};$wh$.$prop$get$wi.get=function(){return $wi};$wh$.$wj_=$we;$wh$.$prop$get$wj={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,pa:1024,d:['$','SearchableList','$m','inclusions','$at','index$9yr1lc']};}};$wh$.$prop$get$wj.get=function(){return $wj};return $wh$;};$wh.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.inclusions,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','SearchableList','$m','inclusions']};};function $init$$wh(){if($wh.$$===undefined){initTypeProto($wh,'ceylon.language::SearchableList.anonymous#2.anonymous#3',Basic,$init$Iterator());
(function($wh$){atr$($wh$,'$wi',function(){return this.$wi_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','max$dhhm6q']};});atr$($wh$,'$wj',function(){return this.$wj_;},function($wk){return this.$wj_=$wk;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,pa:1024,d:['$','SearchableList','$m','inclusions','$at','index$9yr1lc']};});$wh$.next=function(){var $wh$=this;while(($wh$.$wj<$wh$.$wi)){if(searchableList$.includesAt($wh$.$wj,$wd)){return ($wl=$wh$.$wj,$wh$.$wj=$wl.successor,$wl);var $wl;}
else{($wm=$wh$.$wj,$wh$.$wj=$wm.successor,$wm);var $wm;}
}
return finished();};$wh$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Integer},{t:Finished}]},ps:[],$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$m','next']};};})($wh.$$.prototype);}
return $wh;}
$wf$.$init$$wh=$init$$wh;$init$$wh();return $wh();}();};atr$($wf$,'size',function(){var $wf$=this;var $wo=(0);var $wq=$we,$wr=$wf$.$wg.minus($we).plus(1).minus($wd.size);for(var $ws=0;$ws<$wr;$ws++,($wq=$wq.successor)){if(searchableList$.includesAt($wq,$wd)){($wt=$wo,$wo=$wt.successor,$wt);var $wt;}
}return $wo;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','size']};});atr$($wf$,'empty',function(){var $wf$=this;return searchableList$.includes($wd,$we);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','empty']};});atr$($wf$,'first',function(){var $wf$=this;return searchableList$.firstInclusion($wd,$we);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','first']};});atr$($wf$,'last',function(){var $wf$=this;return searchableList$.lastInclusion($wd,$we);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','last']};});})($wf.$$.prototype);}
return $wf;}
searchableList$.$init$$wf=$init$$wf;$init$$wf();return $wf();}();};searchableList$.inclusions.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:inclusions')];},d:['$','SearchableList','$m','inclusions']};};searchableList$.includes$defs$from=function($wv,$ww){return 0;};searchableList$.includes=function($wv,$ww){var searchableList$=this;if($ww===undefined){$ww=(0);}
return nn$(searchableList$.firstInclusion($wv,$ww));};searchableList$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:includes')];},d:['$','SearchableList','$m','includes']};};searchableList$.firstInclusion$defs$from=function($wx,$wy){return 0;};searchableList$.firstInclusion=function($wx,$wy){var searchableList$=this;if($wy===undefined){$wy=(0);}
var $x0;for(var $wz=measure($wy,searchableList$.size.minus($wy).plus(1).minus($wx.size),{Element$measure:{t:Integer}}).iterator();($x0=$wz.next())!==finished();){if(searchableList$.includesAt($x0,$wx)){return $x0;}
}
if(finished()===$x0){return null;}
};searchableList$.firstInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:firstInclusion')];},d:['$','SearchableList','$m','firstInclusion']};};searchableList$.lastInclusion$defs$from=function($x1,$x2){return 0;};searchableList$.lastInclusion=function($x1,$x2){var searchableList$=this;if($x2===undefined){$x2=(0);}
var $x4;for(var $x3=measure((0),searchableList$.size.minus($x2).plus(1).minus($x1.size),{Element$measure:{t:Integer}}).reversed.iterator();($x4=$x3.next())!==finished();){if(searchableList$.includesAt($x4,$x1)){return $x4;}
}
if(finished()===$x4){return null;}
};searchableList$.lastInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:lastInclusion')];},d:['$','SearchableList','$m','lastInclusion']};};})(SearchableList.$$.prototype);}
return SearchableList;}
ex$.$init$SearchableList=$init$SearchableList;$init$SearchableList();function Sequence($$targs$$,sequence$){set_type_args(sequence$,$$targs$$,Sequence);Sequential({Element$Sequential:$$targs$$.Element$Sequence},sequence$);Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$$targs$$.Element$Sequence},sequence$);}
Sequence.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Sequence:{dv:'out',def:{t:Anything}}},sts:[{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Sequence'}}],pa:17,an:function(){return[doc$($CCMM$,'$:Sequence'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Empty),$init$openClass$jsint()(lmp$(ex$,'$'),ArraySequence),$init$openClass$jsint()(lmp$(ex$,'$'),Range),$init$openClass$jsint()(lmp$(ex$,'$'),Tuple),$init$openClass$jsint()(lmp$(ex$,'$'),Singleton)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:ClassWithInitializerDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Sequence']};};
ex$.Sequence=Sequence;function $init$Sequence(){if(Sequence.$$===undefined){initTypeProtoI(Sequence,'ceylon.language::Sequence',$init$Sequential(),$init$Iterable());
(function(sequence$){sequence$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:first')];},d:['$','Sequence','$at','first']};}};sequence$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:last')];},d:['$','Sequence','$at','last']};}};atr$(sequence$,'empty',function(){var sequence$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Sequence,pa:3,an:function(){return[doc$($CCMM$,'$:Sequence:$at:empty')];},d:['$','Sequence','$at','empty']};});sequence$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:size')];},d:['$','Sequence','$at','size']};}};atr$(sequence$,'lastIndex',function(){var sequence$=this;return sequence$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:lastIndex'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Sequence().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Sequence','$at','lastIndex']};});atr$(sequence$,'keys',function(){var sequence$=this;return sequence$.indexes();},undefined,function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:{t:Integer}}},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:keys')];},d:['$','Sequence','$at','keys']};});sequence$.indexes=function(){var sequence$=this;return span((0),sequence$.lastIndex,{Element$span:{t:Integer}});};sequence$.indexes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:{t:Integer}}},ps:[],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:indexes')];},d:['$','Sequence','$m','indexes']};};sequence$.sequence=function(){var sequence$=this;return sequence$;};sequence$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},ps:[],$cont:Sequence,pa:11,an:function(){return[doc("This nonempty sequence.")];},d:['$','Sequence','$m','sequence']};};sequence$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:rest')];},d:['$','Sequence','$at','rest']};}};atr$(sequence$,'reversed',function(){var sequence$=this;return sequence$.Reverse$Sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:reversed')];},d:['$','Sequence','$at','reversed']};});sequence$.repeat=function($x5){var sequence$=this;return ($x6=(($x5>0)?sequence$.Repeat$Sequence($x5):null),nn$($x6)?$x6:empty());};sequence$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:repeat')];},d:['$','Sequence','$m','repeat']};};sequence$.clone=function(){var sequence$=this;return sequence$;};sequence$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},ps:[],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:clone')];},d:['$','Sequence','$m','clone']};};sequence$.$_sort=function($x7){var sequence$=this;var $x8=$_Array(sequence$,{Element$Array:sequence$.$$targs$$.Element$Sequence});$x8.sortInPlace(JsCallable(sequence$,$x7));return ArraySequence($x8,{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence});};sequence$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Sequence','Element$Sequence']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Sequence'},{nm:'y',mt:'prm',$t:'Element$Sequence'}]}],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:sort')];},d:['$','Sequence','$m','sort']};};sequence$.collect=function($x9,$d7sfjl$){var sequence$=this;function $xa($$targs$$){var $xa$=new $xa.$$;$xa$.outer$=sequence$;$xa$.$$targs$$=$$targs$$;$_Object($xa$);List({Element$List:$d7sfjl$.Result$collect/*ORALE!Result inv pero Element var*/},$xa$);$xa$.size_=sequence$.size;return $xa$;};$xa.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:sequence$.collect,sts:[{t:List,a:{Element$List:'Result$collect'}}],d:['$','Sequence','$m','collect','$o','list$ap4q1c']};};function $init$$xa(){if($xa.$$===undefined){initTypeProto($xa,'ceylon.language::Sequence.list',$init$$_Object(),$init$List());
(function($xa$){atr$($xa$,'lastIndex',function(){var $xa$=this;return sequence$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$xa,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$at','lastIndex']};});atr$($xa$,'size',function(){return this.size_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$xa,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$at','size']};});$xa$.getFromFirst=function($xc){var $xa$=this;return (($xd=$xc,$xd.compare((0))!==smaller()&&$xd.compare($xa$.size)===smaller())?$x9(sequence$.$xe($xc)):null);};})($xa.$$.prototype);}
return $xa;}
sequence$.$init$$xa=$init$$xa;$init$$xa();var $xf;function $xb(){if($xf===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'list\' before it was set"),'117:8-126:8','Sequence.ceylon');if($xf===undefined){$xf=INIT$;$xf=$init$$xa()({Element$List:$d7sfjl$.Result$collect/*ORALE!Result inv pero Element var*/});$xf.$crtmm$=$xb.$crtmm$;}
return $xf;}
$xb.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$xa()},$cont:sequence$.collect,d:['$','Sequence','$m','collect','$o','list$ap4q1b']};};$prop$get$xa=$xb;$xb();return ArraySequence($_Array($xb(),{Element$Array:$d7sfjl$.Result$collect}),{Element$ArraySequence:$d7sfjl$.Result$collect/*ORALE!Result inv pero Element var*/});};sequence$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$Sequence']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$Sequence'}]}],$cont:Sequence,tp:{Result$collect:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:collect')];},d:['$','Sequence','$m','collect']};};sequence$.withLeading=function($xg,$ryy22j$){var sequence$=this;return tpl$([$xg],sequence$);};sequence$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading',mkseq$('Element$Sequence',2)]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Sequence,tp:{Other$withLeading:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:withLeading')];},d:['$','Sequence','$m','withLeading']};};sequence$.withTrailing=function($xh,$jfp6gz$){var sequence$=this;return JoinedSequence(sequence$,Singleton($xh,{Element$Singleton:$jfp6gz$.Other$withTrailing/*ORALE!Other inv pero Element var*/}),{Element$JoinedSequence:mut$([sequence$.$$targs$$.Element$Sequence,$jfp6gz$.Other$withTrailing])});};sequence$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequence','Other$withTrailing']}}},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Sequence,tp:{Other$withTrailing:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:withTrailing')];},d:['$','Sequence','$m','withTrailing']};};sequence$.append=function($xi,$he8ey3$){var sequence$=this;return function(){var $xj;if(ne$(($xj=$xi)))return JoinedSequence(sequence$,$xj,{Element$JoinedSequence:mut$([sequence$.$$targs$$.Element$Sequence,$he8ey3$.Other$append])});else return sequence$}();};sequence$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequence','Other$append']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Sequence,tp:{Other$append:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:append')];},d:['$','Sequence','$m','append']};};sequence$.prepend=function($xk,$y6m1cd$){var sequence$=this;return function(){var $xl;if(ne$(($xl=$xk)))return JoinedSequence($xl,sequence$,{Element$JoinedSequence:mut$([$y6m1cd$.Other$prepend,sequence$.$$targs$$.Element$Sequence])});else return sequence$}();};sequence$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequence','Other$prepend']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}}}],$cont:Sequence,tp:{Other$prepend:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:prepend')];},d:['$','Sequence','$m','prepend']};};sequence$.contains=function($xm){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.contains.call(sequence$,$xm);};sequence$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','contains']};};sequence$.shorterThan=function($xn){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.shorterThan.call(sequence$,$xn);};sequence$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','shorterThan']};};sequence$.longerThan=function($xo){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.longerThan.call(sequence$,$xo);};sequence$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','longerThan']};};sequence$.find=function($xp){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.find.call(sequence$,JsCallable(sequence$,$xp));};sequence$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequence',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$Sequence',{t:$_Object}]}}]}],$cont:Sequence,pa:11,d:['$','Sequence','$m','find']};};sequence$.findLast=function($xq){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.findLast.call(sequence$,JsCallable(sequence$,$xq));};sequence$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequence',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$Sequence',{t:$_Object}]}}]}],$cont:Sequence,pa:11,d:['$','Sequence','$m','findLast']};};sequence$.$_slice=function($xr){var sequence$=this;return tpl$([sequence$.spanTo($xr.minus(1)),sequence$.spanFrom($xr)]);};sequence$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},{t:Sequential,a:{Element$Sequential:'Element$Sequence'}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','slice']};};sequence$.measure=function($xs,$xt){var sequence$=this;return (($xt>0)?sequence$.span($xs,$xs.plus($xt).minus(1)):empty());};sequence$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','measure']};};sequence$.span=function($xu,$xv){var sequence$=this;if(($xu<=$xv)){return ((($xv>=0)&&($xu<=sequence$.lastIndex))?ArraySequence($_Array(sequence$.sublist($xu,$xv),{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence}):empty());}
else{return ((($xu>=0)&&($xv<=sequence$.lastIndex))?ArraySequence($_Array(sequence$.sublist($xv,$xu).reversed,{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence}):empty());}
};sequence$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','span']};};sequence$.spanFrom=function($xw){var sequence$=this;if(($xw<=0)){return sequence$;}
else{if(($xw<sequence$.size)){return ArraySequence($_Array(sequence$.sublistFrom($xw),{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence});}
else{return empty();}
}
};sequence$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','spanFrom']};};sequence$.spanTo=function($xx){var sequence$=this;if(($xx>=sequence$.lastIndex)){return sequence$;}
else{if(($xx>=0)){return ArraySequence($_Array(sequence$.sublistTo($xx),{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence});}
else{return empty();}
}
};sequence$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','spanTo']};};atr$(sequence$,'string',function(){var sequence$=this;return attrGetter(sequence$.getT$all()['ceylon.language::Sequential'],'string').call(this);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Sequence,pa:11,d:['$','Sequence','$at','string']};});sequence$.$xe=function($xy){var sequence$=this;var $xz;if(nn$(($xz=sequence$.getFromFirst($xy)))){return $xz;}
else{var $y0;asrt$((is$(($y0=null),sequence$.$$targs$$.Element$Sequence)),"Assertion failed: \'is Element null\' at Sequence.ceylon (240:19-240:35)",'240:12-240:36','Sequence.ceylon');
return null;}
};sequence$.$xe.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Sequence',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Sequence,d:['$','Sequence','$m','getElement$kis5ex']};};function Reverse$Sequence($y1$){$init$Reverse$Sequence();
if($y1$===undefined)$y1$=new this.Reverse$Sequence.$$;
$y1$.outer$=this;$y1$.$$targs$$={Element$Sequence:$y1$.outer$.$$targs$$.Element$Sequence};$_Object($y1$);Sequence({Element$Sequence:$y1$.outer$.$$targs$$.Element$Sequence},$y1$);return $y1$;}
Reverse$Sequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:Sequence,sts:[{t:Sequence,a:{Element$Sequence:'Element$Sequence'}}],d:['$','Sequence','$c','Reverse$t1rj1v']};};function $init$Reverse$Sequence(){if(Reverse$Sequence.$$===undefined){initTypeProto(Reverse$Sequence,'ceylon.language::Sequence.Reverse',$init$$_Object(),$init$Sequence());
Sequence.Reverse$Sequence=Reverse$Sequence;
(function($y1$){atr$($y1$,'size',function(){var $y1$=this;return $y1$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$y1$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','size']};});atr$($y1$,'first',function(){var $y1$=this;return $y1$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$y1$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','first']};});atr$($y1$,'last',function(){var $y1$=this;return $y1$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$y1$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','last']};});atr$($y1$,'rest',function(){var $y1$=this;return ($y2=((($y1$.size).valueOf()==(1).valueOf())?empty():null),nn$($y2)?$y2:$y1$.outer$.span($y1$.size.minus(2),0));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$y1$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','rest']};});atr$($y1$,'reversed',function(){var $y1$=this;return $y1$.outer$;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},$cont:$y1$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','reversed']};});$y1$.getFromFirst=function($y3){var $y1$=this;return $y1$.outer$.getFromFirst($y1$.size.minus(1).minus($y3));};$y1$.measure=function($y4,$y5){var $y1$=this;return (($y5>0)?function(){var $y6=$y1$.size.minus(1).minus($y4);return $y1$.outer$.span($y6,$y6.minus($y5).plus(1));}():empty());};$y1$.span=function($y7,$y8){var $y1$=this;return $y1$.outer$.span($y8,$y7);};$y1$.spanFrom=function($y9){var $y1$=this;return function(){var $ya=$y1$.size.minus(1);return (($y9<=$ya)?$y1$.outer$.span($ya.minus($y9),0):empty());}();};$y1$.spanTo=function($yb){var $y1$=this;return (($yb>=0)?function(){var $yc=$y1$.size.minus(1);return $y1$.outer$.span($yc,$yc.minus($yb));}():empty());};$y1$.iterator=function(){var $y1$=this;return function(){var $yd=$y1$.outer$;return function(){function $ye($$targs$$){var $ye$=new $ye.$$;$ye$.outer$=$y1$;$ye$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$y1$.outer$.$$targs$$.Element$Sequence},$ye$);$ye$.$yf_=$yd.size.minus(1);$ye$.$prop$get$yf={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$y1$.Reverse$Sequence,pa:1024,d:['$','Sequence','$c','Reverse$t1rj1v','$at','index$ad7j66']};}};$ye$.$prop$get$yf.get=function(){return $yf};return $ye$;};$ye.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$y1$.Reverse$Sequence,sts:[{t:Iterator,a:{Element$Iterator:'Element$Sequence'}}],d:['$','Sequence','$c','Reverse$t1rj1v']};};function $init$$ye(){if($ye.$$===undefined){initTypeProto($ye,'ceylon.language::Sequence.Reverse.anonymous#0',Basic,$init$Iterator());
(function($ye$){atr$($ye$,'$yf',function(){return this.$yf_;},function($yg){return this.$yf_=$yg;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$y1$.Reverse$Sequence,pa:1024,d:['$','Sequence','$c','Reverse$t1rj1v','$at','index$ad7j66']};});$ye$.next=function(){var $ye$=this;return ($yh=(($ye$.$yf<0)?finished():null),nn$($yh)?$yh:$yd.$xe(($yi=$ye$.$yf,$ye$.$yf=$yi.predecessor,$yi)));};atr$($ye$,'string',function(){var $ye$=this;return $y1$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$y1$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','string']};});})($ye.$$.prototype);}
return $ye;}
$y1$.$init$$ye=$init$$ye;$init$$ye();return $ye();}();}();};$y1$.Reverse$Sequence=Reverse$Sequence;})(Reverse$Sequence.$$.prototype);}
return Reverse$Sequence;}
sequence$.$init$Reverse$Sequence=$init$Reverse$Sequence;sequence$.Reverse$Sequence=Reverse$Sequence;function Repeat$Sequence($yk,$yl$){$init$Repeat$Sequence();
if($yl$===undefined)$yl$=new this.Repeat$Sequence.$$;
$yl$.outer$=this;$yl$.$$targs$$={Element$Sequence:$yl$.outer$.$$targs$$.Element$Sequence};$yl$.$yk_=$yk;$_Object($yl$);Sequence({Element$Sequence:$yl$.outer$.$$targs$$.Element$Sequence},$yl$);asrt$((($yl$.$yk>0)),"Assertion failed: \'times>0\' at Sequence.ceylon (296:15-296:23)",'296:8-296:24','Sequence.ceylon');
atr$($yl$,'last',function(){return $yl$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','last']};});atr$($yl$,'first',function(){return $yl$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','first']};});atr$($yl$,'size',function(){return $yl$.outer$.size.times($yl$.$yk);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','size']};});atr$($yl$,'rest',function(){return $yl$.sublistFrom(1).sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','rest']};});$yl$.getFromFirst=function($ym){var sequence$=this;return function(){var $yn=$yl$.outer$.size;return (($ym<$yn.times($yl$.$yk))?$yl$.outer$.getFromFirst($ym.remainder($yn)):null);}();};$yl$.iterator=function(){var sequence$=this;return CycledIterator($yl$.outer$,$yl$.$yk,{Element$CycledIterator:$yl$.outer$.$$targs$$.Element$Sequence});};return $yl$;}
Repeat$Sequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Sequence,sts:[{t:Sequence,a:{Element$Sequence:'Element$Sequence'}}],d:['$','Sequence','$c','Repeat$op9ozo']};};function $init$Repeat$Sequence(){if(Repeat$Sequence.$$===undefined){initTypeProto(Repeat$Sequence,'ceylon.language::Sequence.Repeat',$init$$_Object(),$init$Sequence());
Sequence.Repeat$Sequence=Repeat$Sequence;
(function($yl$){atr$($yl$,'$yk',function(){return this.$yk_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$yl$.Repeat$Sequence,d:['$','Sequence','$c','Repeat$op9ozo','$at','times$ryfnz9']};});atr$($yl$,'last',function(){var $yl$=this;return $yl$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','last']};});atr$($yl$,'first',function(){var $yl$=this;return $yl$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','first']};});atr$($yl$,'size',function(){var $yl$=this;return $yl$.outer$.size.times($yl$.$yk);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','size']};});atr$($yl$,'rest',function(){var $yl$=this;return $yl$.sublistFrom(1).sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$yl$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','rest']};});$yl$.getFromFirst=function($ym){var $yl$=this;return function(){var $yn=$yl$.outer$.size;return (($ym<$yn.times($yl$.$yk))?$yl$.outer$.getFromFirst($ym.remainder($yn)):null);}();};$yl$.iterator=function(){var $yl$=this;return CycledIterator($yl$.outer$,$yl$.$yk,{Element$CycledIterator:$yl$.outer$.$$targs$$.Element$Sequence});};$yl$.Repeat$Sequence=Repeat$Sequence;})(Repeat$Sequence.$$.prototype);}
return Repeat$Sequence;}
sequence$.$init$Repeat$Sequence=$init$Repeat$Sequence;sequence$.Repeat$Sequence=Repeat$Sequence;$init$Reverse$Sequence();
$init$Repeat$Sequence();
})(Sequence.$$.prototype);}
return Sequence;}
ex$.$init$Sequence=$init$Sequence;$init$Sequence();var $x6,$y2,$yh,$yi;function sequence($yo,$uau8zx$){var $yp;if(ne$(($yp=$yo.sequence()))){return $yp;}
else{var $yq;asrt$((is$(($yq=null),$uau8zx$.Absent$sequence,$uau8zx$)),"Assertion failed: \'is Absent null\' at Sequence.ceylon (332:15-332:30)",'332:8-332:31','Sequence.ceylon');
return null;}
}
ex$.sequence=sequence;sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$sequence'}},'Absent$sequence']},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$sequence',Element$Iterable:'Element$sequence'}}}],tp:{Element$sequence:{},Absent$sequence:{sts:[{t:Null}],def:{t:Null}}},pa:1,an:function(){return[doc$($CCMM$,'$:sequence'),by(["Gavin"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.sequence)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','sequence']};};function JoinedSequence($yr,$ys,$$targs$$,joinedSequence$){$init$JoinedSequence();
if(joinedSequence$===undefined)joinedSequence$=new JoinedSequence.$$;
set_type_args(joinedSequence$,$$targs$$);
joinedSequence$.$yr_=$yr;joinedSequence$.$ys_=$ys;$_Object(joinedSequence$);Sequence({Element$Sequence:$$targs$$.Element$JoinedSequence/*ORALE!Element inv pero Element var*/},joinedSequence$);return joinedSequence$;}
JoinedSequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'firstSeq',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}}},{nm:'secondSeq',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}}}],tp:{Element$JoinedSequence:{}},sts:[{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}}],d:['$','JoinedSequence']};};
ex$.JoinedSequence=JoinedSequence;function $init$JoinedSequence(){if(JoinedSequence.$$===undefined){initTypeProto(JoinedSequence,'ceylon.language::JoinedSequence',$init$$_Object(),$init$Sequence());
(function(joinedSequence$){atr$(joinedSequence$,'$yr',function(){return this.$yr_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}},$cont:JoinedSequence,d:['$','JoinedSequence','$at','firstSeq$vc5yc7']};});atr$(joinedSequence$,'$ys',function(){return this.$ys_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}},$cont:JoinedSequence,d:['$','JoinedSequence','$at','secondSeq$g3ri2t']};});atr$(joinedSequence$,'size',function(){var joinedSequence$=this;return joinedSequence$.$yr.size.plus(joinedSequence$.$ys.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','size']};});atr$(joinedSequence$,'first',function(){var joinedSequence$=this;return joinedSequence$.$yr.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$JoinedSequence',$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','first']};});atr$(joinedSequence$,'last',function(){var joinedSequence$=this;return joinedSequence$.$ys.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$JoinedSequence',$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','last']};});atr$(joinedSequence$,'rest',function(){var joinedSequence$=this;return joinedSequence$.$yr.rest.append(joinedSequence$.$ys,{Other$append:joinedSequence$.$$targs$$.Element$JoinedSequence});},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','rest']};});joinedSequence$.getFromFirst=function($yt){var joinedSequence$=this;return function(){var $yu=joinedSequence$.$yr.size;return (($yt<$yu)?joinedSequence$.$yr.getFromFirst($yt):joinedSequence$.$ys.getFromFirst($yt.minus($yu)));}();};joinedSequence$.$_slice=function($yv){var joinedSequence$=this;return ((($yv).valueOf()==(joinedSequence$.$yr.size).valueOf())?tpl$([joinedSequence$.$yr,joinedSequence$.$ys]):joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.$_slice.call(joinedSequence$,$yv));};joinedSequence$.spanTo=function($yw){var joinedSequence$=this;return ((($yw).valueOf()==(joinedSequence$.$yr.size.minus(1)).valueOf())?joinedSequence$.$yr:joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.spanTo.call(joinedSequence$,$yw));};joinedSequence$.spanFrom=function($yx){var joinedSequence$=this;return ((($yx).valueOf()==(joinedSequence$.$yr.size).valueOf())?joinedSequence$.$ys:joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.spanFrom.call(joinedSequence$,$yx));};joinedSequence$.measure=function($yy,$yz){var joinedSequence$=this;if(((($yy).valueOf()==(0).valueOf())&&(($yz).valueOf()==(joinedSequence$.$yr.size).valueOf()))){return joinedSequence$.$yr;}
else{if(((($yy).valueOf()==(joinedSequence$.$yr.size).valueOf())&&($yz>=joinedSequence$.$ys.size))){return joinedSequence$.$ys;}
else{return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.measure.call(joinedSequence$,$yy,$yz);}
}
};joinedSequence$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','measure']};};joinedSequence$.span=function($z0,$z1){var joinedSequence$=this;if((($z0<=0)&&(($z1).valueOf()==(joinedSequence$.$yr.size.minus(1)).valueOf()))){return joinedSequence$.$yr;}
else{if(((($z0).valueOf()==(joinedSequence$.$yr.size).valueOf())&&($z1>=joinedSequence$.size.minus(1)))){return joinedSequence$.$ys;}
else{return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.span.call(joinedSequence$,$z0,$z1);}
}
};joinedSequence$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','span']};};joinedSequence$.iterator=function(){var joinedSequence$=this;return ChainedIterator(joinedSequence$.$yr,joinedSequence$.$ys,{Other$ChainedIterator:joinedSequence$.$$targs$$.Element$JoinedSequence/*ORALE!Element inv pero Other var*/,Element$ChainedIterator:joinedSequence$.$$targs$$.Element$JoinedSequence/*ORALE!Element inv pero Element var*/});};})(JoinedSequence.$$.prototype);}
return JoinedSequence;}
ex$.$init$JoinedSequence=$init$JoinedSequence;$init$JoinedSequence();function SequencedAnnotation($$targs$$,sequencedAnnotation$){set_type_args(sequencedAnnotation$,$$targs$$,SequencedAnnotation);ConstrainedAnnotation({Values$ConstrainedAnnotation:{t:Sequential,a:{Element$Sequential:$$targs$$.Value$SequencedAnnotation}},ProgramElement$ConstrainedAnnotation:$$targs$$.ProgramElement$SequencedAnnotation,Value$ConstrainedAnnotation:$$targs$$.Value$SequencedAnnotation,Type$ConstrainedAnnotation:$$targs$$.Type$SequencedAnnotation},sequencedAnnotation$);}
SequencedAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$SequencedAnnotation:{dv:'out',sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$SequencedAnnotation',Type$SequencedAnnotation:'Type$SequencedAnnotation',ProgramElement$SequencedAnnotation:'ProgramElement$SequencedAnnotation'}}]},ProgramElement$SequencedAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Annotated}},Type$SequencedAnnotation:{dv:'out',def:{t:Anything}}},sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:Sequential,a:{Element$Sequential:'Value$SequencedAnnotation'}},ProgramElement$ConstrainedAnnotation:'ProgramElement$SequencedAnnotation',Value$ConstrainedAnnotation:'Value$SequencedAnnotation',Type$ConstrainedAnnotation:'Type$SequencedAnnotation'}}],of:['Value$SequencedAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:SequencedAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','SequencedAnnotation']};};
ex$.SequencedAnnotation=SequencedAnnotation;function $init$SequencedAnnotation(){if(SequencedAnnotation.$$===undefined){initTypeProtoI(SequencedAnnotation,'ceylon.language::SequencedAnnotation',$init$ConstrainedAnnotation());
}
return SequencedAnnotation;}
ex$.$init$SequencedAnnotation=$init$SequencedAnnotation;$init$SequencedAnnotation();function Sequential($$targs$$,sequential$){set_type_args(sequential$,$$targs$$,Sequential);Ranged({Subrange$Ranged:{t:Sequential,a:{Element$Sequential:$$targs$$.Element$Sequential}},Element$Ranged:$$targs$$.Element$Sequential,Index$Ranged:{t:Integer}},sequential$);List({Element$List:$$targs$$.Element$Sequential},sequential$);}
Sequential.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Sequential:{dv:'out',def:{t:Anything}}},sts:[{t:List,a:{Element$List:'Element$Sequential'}},{t:Ranged,a:{Subrange$Ranged:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},Element$Ranged:'Element$Sequential',Index$Ranged:{t:Integer}}}],of:[{t:Empty},{t:Sequence,a:{Element$Sequence:'Element$Sequential'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Sequential'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Tuple)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Sequential']};};
ex$.Sequential=Sequential;function $init$Sequential(){if(Sequential.$$===undefined){initTypeProtoI(Sequential,'ceylon.language::Sequential',$init$Ranged(),$init$List());
(function(sequential$){sequential$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$at:size')];},d:['$','Sequential','$at','size']};}};atr$(sequential$,'keys',function(){var sequential$=this;return measure((0),sequential$.size,{Element$measure:{t:Integer}});},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Integer}}},$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$at:keys')];},d:['$','Sequential','$at','keys']};});sequential$.sequence=function(){var sequential$=this;return sequential$;};sequential$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[],$cont:Sequential,pa:11,an:function(){return[doc("This sequence.")];},d:['$','Sequential','$m','sequence']};};sequential$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$at:rest')];},d:['$','Sequential','$at','rest']};}};sequential$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$at:reversed')];},d:['$','Sequential','$at','reversed']};}};sequential$.repeat={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$m:repeat')];},d:['$','Sequential','$m','repeat']};}};sequential$.initial=function($z2){var sequential$=this;return sequential$.spanTo($z2.minus(1));};sequential$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:initial')];},d:['$','Sequential','$m','initial']};};sequential$.terminal=function($z3){var sequential$=this;return sequential$.spanFrom(sequential$.size.minus($z3));};sequential$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:terminal')];},d:['$','Sequential','$m','terminal']};};sequential$.clone=function(){var sequential$=this;return sequential$;};sequential$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[],$cont:Sequential,pa:11,an:function(){return[doc("This sequence.")];},d:['$','Sequential','$m','clone']};};sequential$.$_trim=function($z4){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.$_trim.call(sequential$,JsCallable(sequential$,$z4)).sequence();};sequential$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequential',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Sequential',{t:$_Object}]}}]}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trim')];},d:['$','Sequential','$m','trim']};};sequential$.trimLeading=function($z5){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.trimLeading.call(sequential$,JsCallable(sequential$,$z5)).sequence();};sequential$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequential',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Sequential',{t:$_Object}]}}]}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trimLeading')];},d:['$','Sequential','$m','trimLeading']};};sequential$.trimTrailing=function($z6){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.trimTrailing.call(sequential$,JsCallable(sequential$,$z6)).sequence();};sequential$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequential',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Sequential',{t:$_Object}]}}]}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trimTrailing')];},d:['$','Sequential','$m','trimTrailing']};};sequential$.$_slice=function($z7){var sequential$=this;return tpl$([sequential$.spanTo($z7.minus(1)),sequential$.spanFrom($z7)]);};sequential$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},{t:Sequential,a:{Element$Sequential:'Element$Sequential'}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:slice')];},d:['$','Sequential','$m','slice']};};sequential$.withLeading={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading',mkseq$('Element$Sequential',1)]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Sequential,tp:{Other$withLeading:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:withLeading'),see("prepend","withTrailing","follow")];},d:['$','Sequential','$m','withLeading']};}};sequential$.withTrailing={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequential','Other$withTrailing']}}},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Sequential,tp:{Other$withTrailing:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:withTrailing'),see("append","withLeading")];},d:['$','Sequential','$m','withTrailing']};}};sequential$.append={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:'u',l:['Element$Sequential','Other$append']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Sequential,tp:{Other$append:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:append'),see("prepend","withTrailing","concatenate","chain")];},d:['$','Sequential','$m','append']};}};sequential$.prepend={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:'u',l:['Element$Sequential','Other$prepend']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}}}],$cont:Sequential,tp:{Other$prepend:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:prepend'),see("append","withLeading","concatenate")];},d:['$','Sequential','$m','prepend']};}};atr$(sequential$,'string',function(){var sequential$=this;return ($z8=(sequential$.empty?"[]":null),nn$($z8)?$z8:"[".plus(commaList(sequential$)).plus("]"));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$at:string')];},d:['$','Sequential','$at','string']};});})(Sequential.$$.prototype);}
return Sequential;}
ex$.$init$Sequential=$init$Sequential;$init$Sequential();var $z8;function Set($$targs$$,set$){set_type_args(set$,$$targs$$,Set);Collection({Element$Collection:$$targs$$.Element$Set},set$);}
Set.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Set:{dv:'out',sts:[{t:$_Object}],def:{t:$_Object}}},sts:[{t:Collection,a:{Element$Collection:'Element$Set'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Set'),tagged(["Collections"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),set)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Set']};};
ex$.Set=Set;function $init$Set(){if(Set.$$===undefined){initTypeProtoI(Set,'ceylon.language::Set',$init$Collection());
(function(set$){set$.contains=function($z9){var set$=this;return set$.getT$all()['ceylon.language::Collection'].$$.prototype.contains.call(set$,$z9);};set$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Set,pa:11,an:function(){return[doc$($CCMM$,'$:Set:$m:contains')];},d:['$','Set','$m','contains']};};set$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$Set'}},ps:[],$cont:Set,pa:7,an:function(){return[doc$($CCMM$,'$:Set:$m:clone')];},d:['$','Set','$m','clone']};}};set$.superset=function($za){var set$=this;var $zc;for(var $zb=$za.iterator();($zc=$zb.next())!==finished();){if(!set$.contains($zc)){return false;}
}
if(finished()===$zc){return true;}
};set$.superset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:{t:$_Object}}}}],$cont:Set,pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:superset')];},d:['$','Set','$m','superset']};};set$.subset=function($zd){var set$=this;var $zf;for(var $ze=set$.iterator();($zf=$ze.next())!==finished();){if(!$zd.contains($zf)){return false;}
}
if(finished()===$zf){return true;}
};set$.subset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:{t:$_Object}}}}],$cont:Set,pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:subset')];},d:['$','Set','$m','subset']};};atr$(set$,'distinct',function(){var set$=this;return set$;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Element$Iterable:'Element$Set',Absent$Iterable:{t:Null}}},$cont:Set,pa:3,d:['$','Set','$at','distinct']};});set$.defaultNullElements=function($zg,$cnemox$){var set$=this;return set$;};set$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Set'}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Set,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:3,d:['$','Set','$m','defaultNullElements']};};set$.union=function($zh,$rvbh9t$){var set$=this;return set(set$.chain($zh,{OtherAbsent$chain:{t:Null},Other$chain:$rvbh9t$.Other$union}),undefined,{Element$set:mut$([set$.$$targs$$.Element$Set,$rvbh9t$.Other$union])});};set$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:'u',l:['Element$Set','Other$union']}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$union'}}}],$cont:Set,tp:{Other$union:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:union')];},d:['$','Set','$m','union']};};set$.intersection=function($zi,$ydys4n$){var set$=this;return set(set$.$_filter($JsCallable((function($zj){return $zi.contains($zj);}),[{nm:'e',mt:'prm',$t:set$.Element$Set}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([set$.$$targs$$.Element$Set])})).narrow({Type$narrow:$ydys4n$.Other$intersection}),undefined,{Element$set:mit$([set$.$$targs$$.Element$Set,$ydys4n$.Other$intersection])});};set$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:'i',l:['Element$Set','Other$intersection']}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$intersection'}}}],$cont:Set,tp:{Other$intersection:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:intersection')];},d:['$','Set','$m','intersection']};};set$.complement=function($zk,$fcnqbg$){var set$=this;return set(set$.$_filter($JsCallable((function($zl){return !$zk.contains($zl);}),[{nm:'e',mt:'prm',$t:set$.Element$Set}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([set$.$$targs$$.Element$Set])})),undefined,{Element$set:set$.$$targs$$.Element$Set});};set$.complement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$Set'}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$complement'}}}],$cont:Set,tp:{Other$complement:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:complement')];},d:['$','Set','$m','complement']};};set$.exclusiveUnion=function($zm,$7058pd$){var set$=this;return set(set$.$_filter($JsCallable((function($zn){return !$zm.contains($zn);}),[{nm:'e',mt:'prm',$t:set$.Element$Set}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([set$.$$targs$$.Element$Set])})).chain($zm.$_filter($JsCallable((function($zo){return !set$.contains($zo);}),[{nm:'e',mt:'prm',$t:$7058pd$.Other$exclusiveUnion}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([$7058pd$.Other$exclusiveUnion])})),{OtherAbsent$chain:{t:Null},Other$chain:$7058pd$.Other$exclusiveUnion}),undefined,{Element$set:mut$([set$.$$targs$$.Element$Set,$7058pd$.Other$exclusiveUnion])});};set$.exclusiveUnion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:'u',l:['Element$Set','Other$exclusiveUnion']}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$exclusiveUnion'}}}],$cont:Set,tp:{Other$exclusiveUnion:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:exclusiveUnion')];},d:['$','Set','$m','exclusiveUnion']};};set$.equals=function($zp){var set$=this;var $zq;if(is$(($zq=$zp),{t:Set,a:{Element$Set:{t:$_Object}}})&&(($zq.size).valueOf()==(set$.size).valueOf())){var $zs;for(var $zr=set$.iterator();($zs=$zr.next())!==finished();){if(!$zq.contains($zs)){return false;}
}
if(finished()===$zs){return true;}
}
return false;};set$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Set,pa:11,an:function(){return[doc$($CCMM$,'$:Set:$m:equals')];},d:['$','Set','$m','equals']};};atr$(set$,'hash',function(){var set$=this;var $zt=(0);var $zv;for(var $zu=set$.iterator();($zv=$zu.next())!==finished();){($zt=$zt.plus($zv.hash));}return $zt;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Set,pa:11,d:['$','Set','$at','hash']};});})(Set.$$.prototype);}
return Set;}
ex$.$init$Set=$init$Set;$init$Set();function set$defs$choosing($zw,$zx,$vluexc$){return function($zy,$zz){return $zy;};};function set($zw,$zx,$vluexc$){if($zx===undefined){$zx=function($zy,$zz){return $zy;};}
return function(){var $100;if(is$(($100=$zw),{t:Set,a:{Element$Set:$vluexc$.Element$set/*ORALE!Element inv pero Element var*/}}))return $100;else return function(){function $101($$targs$$){var $101$=new $101.$$;$101$.$$targs$$=$$targs$$;$_Object($101$);Set({Element$Set:$vluexc$.Element$set/*ORALE!Element inv pero Element var*/},$101$);$101$.$102_=$100.summarize(JsCallable($101$,identity,{Value$identity:$vluexc$.Element$set}),$JsCallable((function($103,$104){return function(){var $105;if(nn$(($105=$103)))return $zx($105,$104);else return $104}();}),[{nm:'current',mt:'prm',$t:{t:'u',l:[{t:Null},$vluexc$.Element$set]}},{nm:'element',mt:'prm',$t:$vluexc$.Element$set}],{Return$Callable:$vluexc$.Element$set/*ORALE!Element inv pero Return var*/,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([$vluexc$.Element$set]),Element$Tuple:mut$([{t:Null},$vluexc$.Element$set]),First$Tuple:mut$([{t:Null},$vluexc$.Element$set])}}}),{Result$summarize:$vluexc$.Element$set,Group$summarize:$vluexc$.Element$set});$101$.$prop$get$102={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Element$set',Item$Map:'Element$set'}},$cont:set,d:['$','set','$at','elements$saqsir']};}};$101$.$prop$get$102.get=function(){return $102};return $101$;};$101.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:set,sts:[{t:Set,a:{Element$Set:{t:'i',l:['Element$set',{t:$_Object}]}}}],d:['$','set']};};function $init$$101(){if($101.$$===undefined){initTypeProto($101,'ceylon.language::anonymous#4',$init$$_Object(),$init$Set());
(function($101$){atr$($101$,'$102',function(){return this.$102_;},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Element$set',Item$Map:'Element$set'}},$cont:set,d:['$','set','$at','elements$saqsir']};});$101$.contains=function($106){var $101$=this;return $101$.$102.defines($106);};$101$.iterator=function(){var $101$=this;return $101$.$102.keys.iterator();};atr$($101$,'size',function(){var $101$=this;return $101$.$102.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:set,pa:3,d:['$','set','$at','size']};});atr$($101$,'empty',function(){var $101$=this;return $101$.$102.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:set,pa:3,d:['$','set','$at','empty']};});$101$.clone=function(){var $101$=this;return $101$;};})($101.$$.prototype);}
return $101;}
$init$$101();return $101();}()}();};set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$set'}},ps:[{nm:'stream',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$set'}}},{nm:'choosing',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:'Element$set',Arguments$Callable:{t:'T',l:['Element$set','Element$set']}}},$rt:'Element$set',ps:[{nm:'earlier',mt:'prm',$t:'Element$set'},{nm:'later',mt:'prm',$t:'Element$set'}]}],tp:{Element$set:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:set'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getDistinct)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','set']};};
ex$.set=set;function $108($$targs$$){var emptySet$=new $108.$$;emptySet$.$$targs$$=$$targs$$;$_Object(emptySet$);Set({Element$Set:{t:Nothing}},emptySet$);return emptySet$;};$108.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Set,a:{Element$Set:{t:Nothing}}}],d:['$','emptySet']};};function $init$emptySet(){if($108.$$===undefined){initTypeProto($108,'ceylon.language::emptySet',$init$$_Object(),$init$Set());
(function(emptySet$){emptySet$.union=function($10a,$o93tg8$){var emptySet$=this;return $10a;};emptySet$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Other$union'}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$union'}}}],$cont:$108,tp:{Other$union:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','union']};};emptySet$.intersection=function($10b,$8cydbk$){var emptySet$=this;return emptySet$;};emptySet$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:Nothing}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$intersection'}}}],$cont:$108,tp:{Other$intersection:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','intersection']};};emptySet$.exclusiveUnion=function($10c,$vs00a0$){var emptySet$=this;return $10c;};emptySet$.exclusiveUnion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Other$exclusiveUnion'}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$exclusiveUnion'}}}],$cont:$108,tp:{Other$exclusiveUnion:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','exclusiveUnion']};};emptySet$.complement=function($10d,$97tc31$){var emptySet$=this;return emptySet$;};emptySet$.complement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:Nothing}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$complement'}}}],$cont:$108,tp:{Other$complement:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','complement']};};emptySet$.subset=function($10e){var emptySet$=this;return true;};emptySet$.superset=function($10f){var emptySet$=this;return $10f.empty;};emptySet$.clone=function(){var emptySet$=this;return emptySet$;};emptySet$.iterator=function(){var emptySet$=this;return emptyIterator();};atr$(emptySet$,'size',function(){var emptySet$=this;return 0;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$108,pa:3,d:['$','emptySet','$at','size']};});atr$(emptySet$,'empty',function(){var emptySet$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$108,pa:3,d:['$','emptySet','$at','empty']};});emptySet$.contains=function($10g){var emptySet$=this;return false;};emptySet$.containsAny=function($10h){var emptySet$=this;return false;};emptySet$.containsEvery=function($10i){var emptySet$=this;return false;};emptySet$.count=function($10j){return 0;};emptySet$.any=function($10k){var emptySet$=this;return false;};emptySet$.$_every=function($10l){var emptySet$=this;return true;};emptySet$.find=function($10m){var emptySet$=this;return null;};emptySet$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:$108,pa:3,d:['$','emptySet','$m','find']};};emptySet$.findLast=function($10n){var emptySet$=this;return null;};emptySet$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:$108,pa:3,d:['$','emptySet','$m','findLast']};};emptySet$.skip=function($10o){var emptySet$=this;return emptySet$;};emptySet$.take=function($10p){var emptySet$=this;return emptySet$;};emptySet$.by=function($10q){var emptySet$=this;return emptySet$;};emptySet$.each=function($10r){var emptySet$=this;};emptySet$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:$108,pa:3,d:['$','emptySet','$m','each']};};})($108.$$.prototype);}
return $108;}
ex$.$init$emptySet=$init$emptySet;$init$emptySet();var $10s;function emptySet(){if($10s===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptySet\' before it was set"),'221:0-278:0','Set.ceylon');if($10s===undefined){$10s=INIT$;$10s=$init$emptySet()({Element$Set:{t:Nothing}});$10s.$crtmm$=emptySet.$crtmm$;}
return $10s;}
ex$.emptySet=emptySet;emptySet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$emptySet()},pa:1,an:function(){return[doc$($CCMM$,'$:emptySet'),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','emptySet']};};$prop$getEmptySet=emptySet;ex$.$prop$getEmptySet=$prop$getEmptySet;function Singleton($10t,$$targs$$,singleton$){$init$Singleton();
if(singleton$===undefined)singleton$=new Singleton.$$;
set_type_args(singleton$,$$targs$$);
singleton$.$10t_=$10t;$_Object(singleton$);Sequence({Element$Sequence:$$targs$$.Element$Singleton},singleton$);return singleton$;}
Singleton.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}],tp:{Element$Singleton:{dv:'out'}},sts:[{t:Sequence,a:{Element$Sequence:'Element$Singleton'}}],pa:2081,an:function(){return[doc$($CCMM$,'$:Singleton'),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Singleton']};};
ex$.Singleton=Singleton;function $init$Singleton(){if(Singleton.$$===undefined){initTypeProto(Singleton,'ceylon.language::Singleton',$init$$_Object(),$init$Sequence());
(function(singleton$){atr$(singleton$,'$10t',function(){return this.$10t_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,d:['$','Singleton','$at','element$kjdnp3']};});atr$(singleton$,'first',function(){var singleton$=this;return singleton$.$10t;},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:first')];},d:['$','Singleton','$at','first']};});atr$(singleton$,'last',function(){var singleton$=this;return singleton$.$10t;},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:last')];},d:['$','Singleton','$at','last']};});atr$(singleton$,'lastIndex',function(){var singleton$=this;return 0},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,an:function(){return[doc("Returns `0`.")];},d:['$','Singleton','$at','lastIndex']};});atr$(singleton$,'size',function(){var singleton$=this;return 1},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,an:function(){return[doc("Returns `1`.")];},d:['$','Singleton','$at','size']};});atr$(singleton$,'rest',function(){var singleton$=this;return empty();},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Singleton,pa:3,an:function(){return[doc("Returns `Empty`.")];},d:['$','Singleton','$at','rest']};});singleton$.getFromFirst=function($10u){var singleton$=this;return ((($10u).valueOf()==(0).valueOf())?singleton$.$10t:null);};singleton$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:getFromFirst')];},d:['$','Singleton','$m','getFromFirst']};};atr$(singleton$,'reversed',function(){var singleton$=this;return singleton$;},undefined,function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},$cont:Singleton,pa:3,an:function(){return[doc("Return this singleton.")];},d:['$','Singleton','$at','reversed']};});singleton$.clone=function(){var singleton$=this;return singleton$;};singleton$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},ps:[],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:clone')];},d:['$','Singleton','$m','clone']};};singleton$.contains=function($10v){var singleton$=this;return function(){var $10w;if(nn$(($10w=singleton$.$10t)))return $10w.equals($10v);else return false}();};singleton$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:contains')];},d:['$','Singleton','$m','contains']};};atr$(singleton$,'string',function(){var singleton$=this;return "[".plus(stringify(singleton$.$10t)).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Singleton,pa:3,d:['$','Singleton','$at','string']};});singleton$.iterator=function(){var singleton$=this;return function(){function $10x($$targs$$){var $10x$=new $10x.$$;$10x$.outer$=singleton$;$10x$.$$targs$$=$$targs$$;Iterator({Element$Iterator:singleton$.$$targs$$.Element$Singleton},$10x$);$10x$.$10y_=false;$10x$.$prop$get$10y={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:singleton$.iterator,pa:1024,d:['$','Singleton','$m','iterator','$at','done$ie2n5l']};}};$10x$.$prop$get$10y.get=function(){return $10y};return $10x$;};$10x.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Singleton'}}],d:['$','Singleton','$m','iterator']};};function $init$$10x(){if($10x.$$===undefined){initTypeProto($10x,'ceylon.language::Singleton.anonymous#0',Basic,$init$Iterator());
(function($10x$){atr$($10x$,'$10y',function(){return this.$10y_;},function($10z){return this.$10y_=$10z;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:singleton$.iterator,pa:1024,d:['$','Singleton','$m','iterator','$at','done$ie2n5l']};});$10x$.next=function(){var $10x$=this;if($10x$.$10y){return finished();}
else{$10x$.$10y=true;return singleton$.$10t;}
};$10x$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Singleton',{t:Finished}]},ps:[],$cont:singleton$.iterator,pa:3,d:['$','Singleton','$m','iterator','$m','next']};};atr$($10x$,'string',function(){var $10x$=this;return singleton$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:singleton$.iterator,pa:3,d:['$','Singleton','$m','iterator','$at','string']};});})($10x.$$.prototype);}
return $10x;}
singleton$.$init$$10x=$init$$10x;$init$$10x();return $10x();}();};singleton$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Singleton'}},ps:[],$cont:Singleton,pa:3,d:['$','Singleton','$m','iterator']};};singleton$.equals=function($111){var singleton$=this;var $112;if(is$(($112=$111),{t:List,a:{Element$List:{t:Anything}}})&&(($112.size).valueOf()==(1).valueOf())){var $113=$112.first;return function(){var $114,$115;if(nn$(($114=singleton$.$10t))&&nn$(($115=$113)))return $115.equals($114);else return (!nn$(singleton$.$10t)&&!nn$($113))}();}
else{return false;}
};singleton$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:equals')];},d:['$','Singleton','$m','equals']};};atr$(singleton$,'hash',function(){var singleton$=this;return (31).plus(($116=($117=singleton$.$10t,nn$($117)?$117.hash:null),nn$($116)?$116:(0)));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,d:['$','Singleton','$at','hash']};});singleton$.measure=function($118,$119){var singleton$=this;return ($11a=((($118<=0)&&($118.plus($119)>0))?singleton$:null),nn$($11a)?$11a:empty());};singleton$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:measure')];},d:['$','Singleton','$m','measure']};};singleton$.span=function($11b,$11c){var singleton$=this;return ($11d=(((($11b<=0)&&($11c>=0))||(($11b>=0)&&($11c<=0)))?singleton$:null),nn$($11d)?$11d:empty());};singleton$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:span')];},d:['$','Singleton','$m','span']};};singleton$.spanTo=function($11e){var singleton$=this;return ($11f=(($11e<0)?empty():null),nn$($11f)?$11f:singleton$);};singleton$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','spanTo']};};singleton$.spanFrom=function($11g){var singleton$=this;return ($11h=(($11g>0)?empty():null),nn$($11h)?$11h:singleton$);};singleton$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','spanFrom']};};singleton$.count=function($11i){var singleton$=this;return ($11j=($11i(singleton$.$10t)?1:null),nn$($11j)?$11j:(0));};singleton$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:count')];},d:['$','Singleton','$m','count']};};singleton$.$_map=function($11k,$dy0655$){var singleton$=this;return Singleton($11k(singleton$.$10t),{Element$Singleton:$dy0655$.Result$map/*ORALE!Result inv pero Element var*/});};singleton$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Result$map'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$map',Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:'Result$map',ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,tp:{Result$map:{}},pa:3,d:['$','Singleton','$m','map']};};singleton$.$_filter=function($11l){var singleton$=this;return ($11m=($11l(singleton$.$10t)?singleton$:null),nn$($11m)?$11m:empty());};singleton$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','filter']};};singleton$.fold=function($11n,$63l54a$){var singleton$=this;singleton$.$11n_=$11n;var $11o=function($11p){{return $11p($11n,singleton$.$10t);}};$11o.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$63l54a$.Result$fold,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([singleton$.$$targs$$.Element$Singleton]),Element$Tuple:mut$([$63l54a$.Result$fold,singleton$.$$targs$$.Element$Singleton]),First$Tuple:$63l54a$.Result$fold/*ORALE!Result inv pero First var*/}}}},$rt:$63l54a$.Result$fold,ps:[{nm:'partial',mt:'prm',$t:$63l54a$.Result$fold},{nm:'e',mt:'prm',$t:singleton$.Element$Singleton}]}],$t:$63l54a$.Result$fold};};return JsCallable(0,$11o);};singleton$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:['Result$fold','Element$Singleton']}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Singleton,tp:{Result$fold:{}},pa:3,d:['$','Singleton','$m','fold']};};singleton$.$_reduce=function($11q,$vp8b9h$){var singleton$=this;return singleton$.$10t;};singleton$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Singleton',ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$Singleton']},'Element$Singleton']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$Singleton']}},{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,tp:{Result$reduce:{}},pa:3,d:['$','Singleton','$m','reduce']};};singleton$.collect=function($11r,$9hhuet$){var singleton$=this;return Singleton($11r(singleton$.$10t),{Element$Singleton:$9hhuet$.Result$collect/*ORALE!Result inv pero Element var*/});};singleton$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,tp:{Result$collect:{}},pa:3,d:['$','Singleton','$m','collect']};};singleton$.select=function($11s){var singleton$=this;return ($11t=($11s(singleton$.$10t)?singleton$:null),nn$($11t)?$11t:empty());};singleton$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','select']};};singleton$.find=function($11u){var singleton$=this;return function(){var $11v;if(nn$(($11v=singleton$.$10t))&&$11u($11v))return $11v;else return null}();};singleton$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Singleton',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:{t:'i',l:['Element$Singleton',{t:$_Object}]}}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','find']};};singleton$.findLast=function($11w){var singleton$=this;return singleton$.find(JsCallable(singleton$,$11w));};singleton$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Singleton',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:{t:'i',l:['Element$Singleton',{t:$_Object}]}}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','findLast']};};singleton$.$_sort=function($11x){var singleton$=this;return singleton$;};singleton$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Singleton','Element$Singleton']}}},$rt:{t:Comparison},ps:[{nm:'a',mt:'prm',$t:'Element$Singleton'},{nm:'b',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','sort']};};singleton$.any=function($11y){var singleton$=this;return $11y(singleton$.$10t);};singleton$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','any']};};singleton$.$_every=function($11z){var singleton$=this;return $11z(singleton$.$10t);};singleton$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','every']};};singleton$.skip=function($120){var singleton$=this;return ($121=(($120<1)?singleton$:null),nn$($121)?$121:empty());};singleton$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','skip']};};singleton$.take=function($122){var singleton$=this;return ($123=(($122>0)?singleton$:null),nn$($123)?$123:empty());};singleton$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','take']};};atr$(singleton$,'coalesced',function(){var singleton$=this;return function(){var $124;if(nn$(($124=singleton$.$10t)))return Singleton($124,{Element$Singleton:mit$([singleton$.$$targs$$.Element$Singleton,{t:$_Object}])});else return empty()}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:{t:'i',l:['Element$Singleton',{t:$_Object}]}}},{t:Empty}]},$cont:Singleton,pa:3,d:['$','Singleton','$at','coalesced']};});singleton$.chain=function($125,$nycolo$){var singleton$=this;return $125.follow(singleton$.$10t,{Other$follow:singleton$.$$targs$$.Element$Singleton});};singleton$.chain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:['Element$Singleton','Other$chain']}}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}}}],$cont:Singleton,tp:{Other$chain:{},OtherAbsent$chain:{sts:[{t:Null}]}},pa:3,d:['$','Singleton','$m','chain']};};singleton$.each=function($126){var singleton$=this;return $126(singleton$.$10t);};atr$(singleton$,'indexed',function(){var singleton$=this;return sarg$(function($127){switch($127){case 0:return Entry(0,singleton$.$10t,{Key$Entry:{t:Integer},Item$Entry:singleton$.$$targs$$.Element$Singleton});}return finished();},undefined,{Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:singleton$.$$targs$$.Element$Singleton}},Absent$Iterable:{t:Nothing}});},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Singleton'}},Absent$Iterable:{t:Nothing}}},$cont:Singleton,pa:3,d:['$','Singleton','$at','indexed']};});singleton$.follow=function($128,$xsz5fq$){var singleton$=this;return sarg$(function($129){switch($129){case 0:return $128;case 1:return singleton$.$10t;}return finished();},undefined,{Element$Iterable:mut$([$xsz5fq$.Other$follow,singleton$.$$targs$$.Element$Singleton]),Absent$Iterable:{t:Nothing}});};singleton$.follow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:['Other$follow','Element$Singleton']}}},ps:[{nm:'head',mt:'prm',$t:'Other$follow'}],$cont:Singleton,tp:{Other$follow:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:follow')];},d:['$','Singleton','$m','follow']};};atr$(singleton$,'cycled',function(){var singleton$=this;return function(){function $12a($$targs$$){var $12a$=new $12a.$$;$12a$.outer$=singleton$;$12a$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:singleton$.$$targs$$.Element$Singleton},$12a$);return $12a$;};$12a.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.$prop$getCycled,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Singleton'}}],d:['$','Singleton','$at','cycled']};};function $init$$12a(){if($12a.$$===undefined){initTypeProto($12a,'ceylon.language::Singleton.anonymous#1',Basic,$init$Iterable());
(function($12a$){atr$($12a$,'string',function(){var $12a$=this;return singleton$.string.plus(".cycled");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:singleton$.$prop$getCycled,pa:3,d:['$','Singleton','$at','cycled','$at','string']};});atr$($12a$,'size',function(){var $12a$=this;asrt$((false),"stream is infinite: \'false\' at Singleton.ceylon (214:19-214:25)",'213:12-214:26','Singleton.ceylon');
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:singleton$.$prop$getCycled,pa:3,d:['$','Singleton','$at','cycled','$at','size']};});$12a$.iterator=function(){var $12a$=this;return function(){function $12b($$targs$$){var $12b$=new $12b.$$;$12b$.outer$=$12a$;$12b$.$$targs$$=$$targs$$;Iterator({Element$Iterator:singleton$.$$targs$$.Element$Singleton},$12b$);return $12b$;};$12b.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.$prop$getCycled,sts:[{t:Iterator,a:{Element$Iterator:'Element$Singleton'}}],d:['$','Singleton','$at','cycled']};};function $init$$12b(){if($12b.$$===undefined){initTypeProto($12b,'ceylon.language::Singleton.anonymous#1.anonymous#2',Basic,$init$Iterator());
(function($12b$){$12b$.next=function(){var $12b$=this;return singleton$.$10t;};atr$($12b$,'string',function(){var $12b$=this;return $12a$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:singleton$.$prop$getCycled,pa:3,d:['$','Singleton','$at','cycled','$at','string']};});})($12b.$$.prototype);}
return $12b;}
$12a$.$init$$12b=$init$$12b;$init$$12b();return $12b();}();};})($12a.$$.prototype);}
return $12a;}
singleton$.$init$$12a=$init$$12a;$init$$12a();return $12a();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Singleton'}},$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:cycled'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Sequence().$$.prototype.repeat)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Singleton','$at','cycled']};});singleton$.interpose=function($12e,$12f,$18zr94$){var singleton$=this;if($12f===undefined){$12f=singleton$.interpose$defs$step($12e,$12f);}
asrt$((($12f>=1)),"step must be strictly positive: \'step>=1\' at Singleton.ceylon (229:15-229:23)",'228:8-229:24','Singleton.ceylon');
return singleton$;};singleton$.interpose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},ps:[{nm:'element',mt:'prm',$t:'Other$interpose'},{nm:'step',mt:'prm',def:1,$t:{t:Integer}}],$cont:Singleton,tp:{Other$interpose:{}},pa:3,an:function(){return[doc("This singleton.")];},d:['$','Singleton','$m','interpose']};};atr$(singleton$,'distinct',function(){var singleton$=this;return singleton$;},undefined,function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},$cont:Singleton,pa:3,an:function(){return[doc("This singleton.")];},d:['$','Singleton','$at','distinct']};});atr$(singleton$,'paired',function(){var singleton$=this;return empty();},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Singleton,pa:3,an:function(){return[doc("An empty stream.")];},d:['$','Singleton','$at','paired']};});})(Singleton.$$.prototype);}
return Singleton;}
ex$.$init$Singleton=$init$Singleton;$init$Singleton();Singleton.inst$$=function($12g){var singleton$=new Singleton.$$;
set_type_args(singleton$,{Element$Singleton:$12g.$$targs$$.Type$Class.a.Element$Singleton});
set_type_args(singleton$,{Element$Sequence:singleton$.$$targs$$.Element$Singleton,Element$Sequential:singleton$.$$targs$$.Element$Singleton,Element$List:singleton$.$$targs$$.Element$Singleton,Element$Collection:singleton$.$$targs$$.Element$Singleton,Element$Iterable:singleton$.$$targs$$.Element$Singleton,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:singleton$.$$targs$$.Element$Singleton,Element$Ranged:singleton$.$$targs$$.Element$Singleton,Subrange$Ranged:{t:List,a:{Element$List:singleton$.$$targs$$.Element$Singleton}},Index$Ranged:{t:Integer}});
return singleton$;};Singleton.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Singleton.element')return o.$10t_;else throw new TypeError('unknown attribute');};Singleton.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Singleton.element')o.$10t_=i;
else throw new TypeError('unknown attribute');};Singleton.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$get$10t))];};var $116,$117,$11a,$11d,$11f,$11h,$11j,$11m,$11t,$121,$123;function Span(first,last,$$targs$$,span$){$init$Span();
if(span$===undefined)span$=new Span.$$;
set_type_args(span$,$$targs$$);
span$.first_=first;span$.last_=last;Range({Element$Range:span$.$$targs$$.Element$Span},span$);span$.increasing_=(span$.last.offsetSign(span$.first)>=0);span$.$12h_=((span$.first.offsetSign(span$.first.successor)>0)&&(span$.last.predecessor.offsetSign(span$.last)>0));return span$;}
Span.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Range,a:{Element$Range:'Element$Span'}},ps:[{nm:'first',mt:'prm',$t:'Element$Span',pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:first')];}},{nm:'last',mt:'prm',$t:'Element$Span',pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:last')];}}],tp:{Element$Span:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$Span'}}]}},pa:2080,an:function(){return[doc$($CCMM$,'$:Span'),by(["Gavin"].$sa$({t:$_String})),see([$init$openClass$jsint()(lmp$(ex$,'$'),Measure),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}])))];},d:['$','Span']};};
ex$.Span=Span;function $init$Span(){if(Span.$$===undefined){initTypeProto(Span,'ceylon.language::Span',$init$Range());
(function(span$){atr$(span$,'first',function(){return this.first_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:first')];},d:['$','Span','$at','first']};});atr$(span$,'last',function(){return this.last_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:last')];},d:['$','Span','$at','last']};});atr$(span$,'string',function(){var span$=this;return span$.first.string.plus("..").plus(span$.last.string);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Span,pa:3,d:['$','Span','$at','string']};});atr$(span$,'increasing',function(){return this.increasing_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,pa:3,d:['$','Span','$at','increasing']};});atr$(span$,'decreasing',function(){var span$=this;return !span$.increasing;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,pa:3,d:['$','Span','$at','decreasing']};});atr$(span$,'$12h',function(){return this.$12h_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,an:function(){return[doc$($CCMM$,'$:Span:$at:recursive$1gdd1o')];},d:['$','Span','$at','recursive$1gdd1o']};});span$.$12i=function($12j){var span$=this;return ($12k=(span$.increasing?$12j.successor:null),nn$($12k)?$12k:$12j.predecessor);};span$.$12i.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','next$xciqj1']};};span$.$12l=function($12m,$12n){var span$=this;return ($12o=(span$.increasing?$12m.neighbour($12n):null),nn$($12o)?$12o:$12m.neighbour((-$12n)));};span$.$12l.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'x',mt:'prm',$t:'Element$Span'},{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Span,d:['$','Span','$m','nextStep$sxlqah']};};span$.$12p=function($12q){var span$=this;return ($12r=(span$.increasing?span$.first.neighbour($12q):null),nn$($12r)?$12r:span$.first.neighbour((-$12q)));};span$.$12p.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Span,d:['$','Span','$m','fromFirst$otuqgo']};};span$.$12s=function($12t){var span$=this;return ($12u=(span$.increasing?($12t.offsetSign(span$.last)>0):null),nn$($12u)?$12u:($12t.offsetSign(span$.last)<0));};span$.$12s.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','afterLast$dudvro']};};span$.$12v=function($12w){var span$=this;return ($12x=(span$.increasing?($12w.offsetSign(span$.last)<0):null),nn$($12x)?$12x:($12w.offsetSign(span$.last)>0));};span$.$12v.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','beforeLast$sti0n5']};};span$.$12y=function($12z){var span$=this;return ($130=(span$.increasing?($12z.offsetSign(span$.first)<0):null),nn$($130)?$130:($12z.offsetSign(span$.first)>0));};span$.$12y.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','beforeFirst$3osfad']};};span$.$131=function($132){var span$=this;return ($133=(span$.increasing?($132.offsetSign(span$.first)>0):null),nn$($133)?$133:($132.offsetSign(span$.first)<0));};span$.$131.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','afterFirst$upgk2i']};};atr$(span$,'size',function(){var span$=this;var $134=span$.last.offset(span$.first).magnitude;if(($134<runtime().maxIntegerValue)){return $134.plus(1);}
else{throw wrapexc(OverflowException("size of range"),'73:12-73:52','ceylon/language/Span.ceylon');}
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,d:['$','Span','$at','size']};});span$.longerThan=function($135){var span$=this;return (($135<1)?true:(span$.$12h?(span$.size>$135):span$.$12v(span$.$12p($135.minus(1)))));};span$.shorterThan=function($136){var span$=this;return (($136<1)?true:(span$.$12h?(span$.size<$136):span$.$12s(span$.$12p($136.minus(1)))));};atr$(span$,'lastIndex',function(){var span$=this;return span$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,d:['$','Span','$at','lastIndex']};});atr$(span$,'rest',function(){var span$=this;return ($137=(span$.first.equals(span$.last)?empty():null),nn$($137)?$137:span(span$.$12i(span$.first),span$.last,{Element$span:span$.$$targs$$.Element$Span}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},$cont:Span,pa:3,d:['$','Span','$at','rest']};});atr$(span$,'reversed',function(){var span$=this;return ($138=(span$.$12h?attrGetter(span$.getT$all()['ceylon.language::Sequence'],'reversed').call(this):null),nn$($138)?$138:span(span$.last,span$.first,{Element$span:span$.$$targs$$.Element$Span}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Span'}},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:reversed')];},d:['$','Span','$at','reversed']};});span$.getFromFirst=function($139){var span$=this;if(($139<0)){return null;}
else{if(span$.$12h){return (($139<span$.size)?span$.$12p($139):null);}
else{var $13a=span$.$12p($139);return (!span$.$12s($13a)?$13a:null);}
}
};span$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Span']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:getFromFirst')];},d:['$','Span','$m','getFromFirst']};};span$.iterator=function(){var span$=this;return function(){function $13b($$targs$$){var $13b$=new $13b.$$;$13b$.outer$=span$;$13b$.$$targs$$=$$targs$$;Iterator({Element$Iterator:span$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$13b$);$13b$.$13c_=true;$13b$.$prop$get$13c={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','firstTime$p8bgch']};}};$13b$.$prop$get$13c.get=function(){return $13c};$13b$.$13d_=span$.first;$13b$.$prop$get$13d={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','element$4p7at4']};}};$13b$.$prop$get$13d.get=function(){return $13d};return $13b$;};$13b.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:span$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$m','iterator']};};function $init$$13b(){if($13b.$$===undefined){initTypeProto($13b,'ceylon.language::Span.anonymous#0',Basic,$init$Iterator());
(function($13b$){atr$($13b$,'$13c',function(){return this.$13c_;},function($13e){return this.$13c_=$13e;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','firstTime$p8bgch']};});atr$($13b$,'$13d',function(){return this.$13d_;},function($13f){return this.$13d_=$13f;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','element$4p7at4']};});$13b$.next=function(){var $13b$=this;var $13g;if(!is$(($13g=$13b$.$13d),{t:Finished})){var $13h;if($13b$.$13c){$13b$.$13c=false;$13h=$13g;}
else{$13h=span$.$12i($13g);}
if((($13h.offset(span$.last)).valueOf()==(0).valueOf())){$13b$.$13d=finished();}
else{$13b$.$13d=$13h;}
return $13h;}
else{return $13b$.$13d;}
};$13b$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:span$.iterator,pa:3,d:['$','Span','$m','iterator','$m','next']};};atr$($13b$,'string',function(){var $13b$=this;return "(".plus(span$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:span$.iterator,pa:3,d:['$','Span','$m','iterator','$at','string']};});})($13b.$$.prototype);}
return $13b;}
span$.$init$$13b=$init$$13b;$init$$13b();return $13b();}();};span$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Span'}},ps:[],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:iterator')];},d:['$','Span','$m','iterator']};};span$.by=function($13j){var span$=this;asrt$((($13j>0)),"step size must be greater than zero: \'step > 0\' at Span.ceylon (157:15-157:24)",'156:8-157:25','Span.ceylon');
return ($13k=((($13j).valueOf()==(1).valueOf())?span$:null),nn$($13k)?$13k:span$.By$Span($13j));var $13k;};span$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Span'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','by']};};span$.shifted=function($13l){var span$=this;return ($13m=((($13l).valueOf()==(0).valueOf())?span$:null),nn$($13m)?$13m:Span(span$.first.neighbour($13l),span$.last.neighbour($13l),{Element$Span:span$.$$targs$$.Element$Span}));};span$.containsElement=function($13n){var span$=this;return ($13o=(span$.$12h?($13n.offset(span$.first)<=span$.last.offset(span$.first)):null),nn$($13o)?$13o:(!span$.$12s($13n)&&!span$.$12y($13n)));};span$.count=function($13p){var span$=this;var $13q=span$.first;var $13r=(0);while(span$.containsElement($13q)){if($13p($13q)){($13s=$13r,$13r=$13s.successor,$13s);var $13s;}
$13q=span$.$12i($13q);}
return $13r;};span$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Span']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Span'}]}],$cont:Span,pa:3,d:['$','Span','$m','count']};};span$.includesRange=function($13t){var span$=this;var $13u=$13t;if(is$($13u,{t:Span,a:{Element$Span:span$.$$targs$$.Element$Span}})) {if(span$.$12h){return (($13u.first.offset(span$.first)<span$.size)&&($13u.last.offset(span$.first)<span$.size));}
else{return ((((span$.increasing).valueOf()==($13u.increasing).valueOf())&&!$13u.$131(span$.first))&&!$13u.$12v(span$.last));}
}
else if(is$($13u,{t:Measure,a:{Element$Measure:span$.$$targs$$.Element$Span}})) {if(span$.decreasing){return false;}
else{var $13v=$13u.first.offset(span$.first);return ($13w=$13v,$13w.compare((0))!==smaller()&&$13w.compare(span$.size.minus($13u.size))!==larger());}
}
};span$.includesRange.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'range',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Span'}}}],$cont:Span,pa:3,d:['$','Span','$m','includesRange']};};span$.equals=function($13x){var span$=this;var $13y;if(is$(($13y=$13x),{t:Span,a:{Element$Span:{t:$_Object,uv:'out'}}})){return ($13y.first.equals(span$.first)&&$13y.last.equals(span$.last));}
else{var $13z;if(is$(($13z=$13y),{t:Measure,a:{Element$Measure:{t:$_Object,uv:'out'}}})){return ((span$.increasing&&$13z.first.equals(span$.first))&&(($13z.size).valueOf()==(span$.size).valueOf()));}
else{return span$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(span$,$13z);}
}
};span$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Span,pa:3,d:['$','Span','$m','equals']};};span$.measure=function($140,$141){var span$=this;return ($142=(($141<=0)?empty():null),nn$($142)?$142:span$.span($140,$140.plus($141).minus(1)));};span$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','measure']};};span$.span=function($143,$144){var span$=this;if(($143<=$144)){if((($144<0)||!span$.longerThan($143))){return empty();}
else{return span(($145=span$.$_get($143),nn$($145)?$145:span$.first),($146=span$.$_get($144),nn$($146)?$146:span$.last),{Element$span:span$.$$targs$$.Element$Span});var $145,$146;}
}
else{if((($143<0)||!span$.longerThan($144))){return empty();}
else{var $147=span(($148=span$.$_get($144),nn$($148)?$148:span$.first),($149=span$.$_get($143),nn$($149)?$149:span$.last),{Element$span:span$.$$targs$$.Element$Span});var $148,$149;return $147.reversed;}
}
};span$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','span']};};span$.spanFrom=function($14a){var span$=this;if(($14a<=0)){return span$;}
else{if(span$.longerThan($14a)){var $14b;asrt$((nn$(($14b=span$.$_get($14a)))),"Assertion failed: \'exists first = this[from]\' at Span.ceylon (305:19-305:45)",'305:12-305:46','Span.ceylon');
return span($14b,span$.last,{Element$span:span$.$$targs$$.Element$Span});}
else{return empty();}
}
};span$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','spanFrom']};};span$.spanTo=function($14c){var span$=this;if(($14c<0)){return empty();}
else{if(span$.longerThan($14c.plus(1))){var $14d;asrt$((nn$(($14d=span$.$_get($14c)))),"Assertion failed: \'exists last = this[to]\' at Span.ceylon (317:19-317:42)",'317:12-317:43','Span.ceylon');
return span(span$.first,$14d,{Element$span:span$.$$targs$$.Element$Span});}
else{return span$;}
}
};span$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','spanTo']};};span$.each=function($14e){var span$=this;var $14f=span$.first;while(true){$14e($14f);if((($14f.offset(span$.last)).valueOf()==(0).valueOf())){break;}
else{$14f=span$.$12i($14f);}
}
};span$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Span']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Span'}]}],$cont:Span,pa:3,d:['$','Span','$m','each']};};function By$Span($14g,$14h$){$init$By$Span();
if($14h$===undefined)$14h$=new this.By$Span.$$;
$14h$.outer$=this;$14h$.$$targs$$={Absent$Iterable:{t:Nothing},Element$Iterable:$14h$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/};$14h$.$14g_=$14g;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$14h$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$14h$);return $14h$;}
By$Span.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Span,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Span'}}],d:['$','Span','$c','By$ry6enl']};};function $init$By$Span(){if(By$Span.$$===undefined){initTypeProto(By$Span,'ceylon.language::Span.By',Basic,$init$Iterable());
Span.By$Span=By$Span;
(function($14h$){atr$($14h$,'$14g',function(){return this.$14g_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:span$.By$Span,d:['$','Span','$c','By$ry6enl','$at','step$axxwpk']};});atr$($14h$,'size',function(){var $14h$=this;return (1).plus($14h$.outer$.size.minus(1).divided($14h$.$14g));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','size']};});atr$($14h$,'first',function(){var $14h$=this;return $14h$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','first']};});atr$($14h$,'string',function(){var $14h$=this;return "(".plus($14h$.outer$.string).plus(").by(").plus($14h$.$14g.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','string']};});$14h$.iterator=function(){var $14h$=this;if($14h$.outer$.$12h){return function(){function $14i($$targs$$){var $14i$=new $14i.$$;$14i$.outer$=$14h$;$14i$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$14h$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$14i$);$14i$.$14j_=(0);$14i$.$prop$get$14j={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$14h$.iterator,pa:1024,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','count$zhc9mv']};}};$14i$.$prop$get$14j.get=function(){return $14j};$14i$.$14k_=$14h$.first;$14i$.$prop$get$14k={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$14h$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$xkyyld']};}};$14i$.$prop$get$14k.get=function(){return $14k};return $14i$;};$14i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$14h$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$c','By$ry6enl','$m','iterator']};};function $init$$14i(){if($14i.$$===undefined){initTypeProto($14i,'ceylon.language::Span.By.anonymous#1',Basic,$init$Iterator());
(function($14i$){atr$($14i$,'$14j',function(){return this.$14j_;},function($14l){return this.$14j_=$14l;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$14h$.iterator,pa:1024,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','count$zhc9mv']};});atr$($14i$,'$14k',function(){return this.$14k_;},function($14m){return this.$14k_=$14m;},function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$14h$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$xkyyld']};});$14i$.next=function(){var $14i$=this;if((($14i$.$14j=$14i$.$14j.successor)>$14h$.size)){return finished();}
else{var $14n=$14i$.$14k;$14i$.$14k=$14i$.$14k.neighbour($14h$.$14g);return $14n;}
};$14i$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$14h$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$m','next']};};atr$($14i$,'string',function(){var $14i$=this;return $14h$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$14h$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','string']};});})($14i.$$.prototype);}
return $14i;}
$14h$.$init$$14i=$init$$14i;$init$$14i();return $14i();}();}
else{return function(){function $14p($$targs$$){var $14p$=new $14p.$$;$14p$.outer$=$14h$;$14p$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$14h$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$14p$);$14p$.$14q_=$14h$.first;$14p$.$prop$get$14q={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:$14h$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$nxhyw']};}};$14p$.$prop$get$14q.get=function(){return $14q};$14p$.$14r_=true;$14p$.$prop$get$14r={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$14h$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','firstTime$d2tu8c']};}};$14p$.$prop$get$14r.get=function(){return $14r};return $14p$;};$14p.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$14h$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$c','By$ry6enl','$m','iterator']};};function $init$$14p(){if($14p.$$===undefined){initTypeProto($14p,'ceylon.language::Span.By.anonymous#2',Basic,$init$Iterator());
(function($14p$){atr$($14p$,'$14q',function(){return this.$14q_;},function($14s){return this.$14q_=$14s;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:$14h$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$nxhyw']};});atr$($14p$,'$14r',function(){return this.$14r_;},function($14t){return this.$14r_=$14t;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$14h$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','firstTime$d2tu8c']};});$14p$.next=function(){var $14p$=this;if($14p$.$14r){$14p$.$14r=false;return $14p$.$14q;}
else{var $14u;if(is$(($14u=$14p$.$14q),$14h$.outer$.$$targs$$.Element$Span)){var $14v=$14h$.outer$.$12l($14u,$14h$.$14g);if(!$14h$.outer$.containsElement($14v)){$14p$.$14q=finished();}
else{$14p$.$14q=$14v;}
}
return $14p$.$14q;}
};$14p$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$14h$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$m','next']};};atr$($14p$,'string',function(){var $14p$=this;return $14h$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$14h$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','string']};});})($14p.$$.prototype);}
return $14p;}
$14h$.$init$$14p=$init$$14p;$init$$14p();return $14p();}();}
};$14h$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Span'}},ps:[],$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator']};};})(By$Span.$$.prototype);}
return By$Span;}
span$.$init$By$Span=$init$By$Span;span$.By$Span=By$Span;$init$By$Span();
})(Span.$$.prototype);}
return Span;}
ex$.$init$Span=$init$Span;$init$Span();Span.inst$$=function($14x){var span$=new Span.$$;
set_type_args(span$,{Element$Span:$14x.$$targs$$.Type$Class.a.Element$Span});
set_type_args(span$,{Element$Range:span$.$$targs$$.Element$Span,Element$Sequence:span$.$$targs$$.Element$Span,Element$Sequential:span$.$$targs$$.Element$Span,Element$List:span$.$$targs$$.Element$Span,Element$Collection:span$.$$targs$$.Element$Span,Element$Iterable:span$.$$targs$$.Element$Span,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:span$.$$targs$$.Element$Span,Element$Ranged:span$.$$targs$$.Element$Span,Subrange$Ranged:{t:List,a:{Element$List:span$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return span$;};Span.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Span.first')return o.first_;else if(n==='ceylon.language::Span.last')return o.last_;else if(n==='ceylon.language::Span.recursive')return o.$12h_;else if(n==='ceylon.language::Span.increasing')return o.increasing_;else return Range.ser$get$(ref,o);};Span.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Span.first')o.first_=i;
else if(n==='ceylon.language::Span.last')o.last_=i;
else if(n==='ceylon.language::Span.recursive')o.$12h_=i;
else if(n==='ceylon.language::Span.increasing')o.increasing_=i;
else Range.ser$get$(ref,o,i);};Span.ser$refs$=function(o){var a=Range.ser$refs$(o);a.push(MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getFirst)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getLast)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$get$12h)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getIncreasing)));return a;};var $12k,$12o,$12r,$12u,$12x,$130,$133,$137,$138,$13m,$13o,$142;function span($14y,$14z,$eme4qk$){return Span($14y,$14z,{Element$Span:$eme4qk$.Element$span});};span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:'Element$span'}},ps:[{nm:'first',mt:'prm',$t:'Element$span'},{nm:'last',mt:'prm',$t:'Element$span'}],tp:{Element$span:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$span'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:span')];},d:['$','span']};};
ex$.span=span;function StringBuilder(stringBuilder$){$init$StringBuilder();
if(stringBuilder$===undefined)stringBuilder$=new StringBuilder.$$;
stringBuilder$.$$targs$$={Element$List:{t:Character}};List({Element$List:{t:Character}},stringBuilder$);stringBuilder$.$150_="";return stringBuilder$;}
StringBuilder.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:List,a:{Element$List:{t:Character}}}],pa:33,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder']};};
ex$.StringBuilder=StringBuilder;function $init$StringBuilder(){if(StringBuilder.$$===undefined){initTypeProto(StringBuilder,'ceylon.language::StringBuilder',Basic,$init$List());
(function(stringBuilder$){atr$(stringBuilder$,'$150',function(){return this.$150_;},function($151){return this.$150_=$151;},function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StringBuilder,pa:1024,d:['$','StringBuilder','$at','str$xxmaxx']};});atr$(stringBuilder$,'size',function(){var stringBuilder$=this;return stringBuilder$.$150.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','size']};});atr$(stringBuilder$,'lastIndex',function(){var stringBuilder$=this;return (((stringBuilder$.$150.size).valueOf()==(0).valueOf())?null:stringBuilder$.$150.size.minus(1));},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','lastIndex']};});atr$(stringBuilder$,'string',function(){var stringBuilder$=this;return stringBuilder$.$150;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','string']};});stringBuilder$.iterator=function(){var stringBuilder$=this;return stringBuilder$.$150.iterator();};stringBuilder$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Character}}},ps:[],$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','iterator']};};stringBuilder$.$_substring=function($152,$153){var stringBuilder$=this;asrt$((($152>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (339:15-339:24)",'338:8-339:25','StringBuilder.ceylon');
asrt$((($152<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (341:14-341:26)",'340:8-341:27','StringBuilder.ceylon');
asrt$((($152.plus($153)<=stringBuilder$.size)),"index+length must not be greater than size: \'index+length<=size\' at StringBuilder.ceylon (343:15-343:34)",'342:8-343:35','StringBuilder.ceylon');
return (($153>0)?stringBuilder$.$150.span($152,$153):"");};stringBuilder$.$_substring.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','substring']};};stringBuilder$.getFromFirst=function($154){var stringBuilder$=this;return ((($154<0)||($154>stringBuilder$.size))?null:stringBuilder$.$150.getFromFirst($154));};stringBuilder$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','getFromFirst']};};stringBuilder$.append=function($155){var stringBuilder$=this;stringBuilder$.$150=stringBuilder$.$150.plus($155);return stringBuilder$;};stringBuilder$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','append']};};stringBuilder$.prepend=function($156){var stringBuilder$=this;stringBuilder$.$150=$156.plus(stringBuilder$.$150);return stringBuilder$;};stringBuilder$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','prepend']};};stringBuilder$.appendCharacter=function($157){var stringBuilder$=this;stringBuilder$.$150=stringBuilder$.$150.plus($157.string);return stringBuilder$;};stringBuilder$.appendCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','appendCharacter']};};stringBuilder$.prependCharacter=function($158){var stringBuilder$=this;stringBuilder$.$150=$158.string.plus(stringBuilder$.$150);return stringBuilder$;};stringBuilder$.prependCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','prependCharacter']};};stringBuilder$.clear=function(){var stringBuilder$=this;stringBuilder$.$150="";return stringBuilder$;};stringBuilder$.clear.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','clear']};};stringBuilder$.insert=function($159,$15a){var stringBuilder$=this;asrt$((($159>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (386:15-386:24)",'385:8-386:25','StringBuilder.ceylon');
asrt$((($159<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (388:14-388:26)",'387:8-388:27','StringBuilder.ceylon');
stringBuilder$.$150=stringBuilder$.$150.measure(0,$159).plus($15a).plus(stringBuilder$.$150.spanFrom($159));return stringBuilder$;};stringBuilder$.insert.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','insert']};};stringBuilder$.insertCharacter=function($15b,$15c){var stringBuilder$=this;return stringBuilder$.insert($15b,$15c.string);};stringBuilder$.insertCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','insertCharacter']};};stringBuilder$.$_replace=function($15d,$15e,$15f){var stringBuilder$=this;asrt$((($15d>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (402:15-402:24)",'401:8-402:25','StringBuilder.ceylon');
asrt$((($15d<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (404:14-404:26)",'403:8-404:27','StringBuilder.ceylon');
asrt$((($15d.plus($15e)<=stringBuilder$.size)),"index+length must not be greater than size: \'index+length<=size\' at StringBuilder.ceylon (406:15-406:34)",'405:8-406:35','StringBuilder.ceylon');
if(!$15f.empty){stringBuilder$.$150=stringBuilder$.$150.measure(0,$15d).plus($15f).plus(stringBuilder$.$150.spanFrom($15d.plus($15e)));}
return stringBuilder$;};stringBuilder$.$_replace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}},{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','replace']};};stringBuilder$.$_delete=function($15g,$15h){var stringBuilder$=this;asrt$((($15g>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (416:15-416:24)",'415:8-416:25','StringBuilder.ceylon');
asrt$((($15g<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (418:14-418:26)",'417:8-418:27','StringBuilder.ceylon');
asrt$((($15g.plus($15h)<=stringBuilder$.size)),"index+length must not be greater than size: \'index+length<=size\' at StringBuilder.ceylon (420:15-420:34)",'419:8-420:35','StringBuilder.ceylon');
if(($15h>0)){stringBuilder$.$150=stringBuilder$.$150.measure(0,$15g).plus(stringBuilder$.$150.spanFrom($15g.plus($15h)));}
return stringBuilder$;};stringBuilder$.$_delete.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','delete']};};stringBuilder$.deleteInitial=function($15i){var stringBuilder$=this;asrt$((($15i<=stringBuilder$.size)),"length must not be greater than size: \'length<=size\' at StringBuilder.ceylon (430:15-430:28)",'429:8-430:29','StringBuilder.ceylon');
if(($15i>0)){stringBuilder$.$150=stringBuilder$.$150.spanFrom($15i);}
return stringBuilder$;};stringBuilder$.deleteInitial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','deleteInitial']};};stringBuilder$.deleteTerminal=function($15j){var stringBuilder$=this;asrt$((($15j<=stringBuilder$.size)),"length must not be greater than size: \'length<=size\' at StringBuilder.ceylon (440:15-440:28)",'439:8-440:29','StringBuilder.ceylon');
if(($15j>0)){stringBuilder$.$150=stringBuilder$.$150.measure(0,stringBuilder$.size.minus($15j));}
return stringBuilder$;};stringBuilder$.deleteTerminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','deleteTerminal']};};stringBuilder$.reverseInPlace=function(){var stringBuilder$=this;stringBuilder$.$150=stringBuilder$.$150.reversed;return stringBuilder$;};stringBuilder$.reverseInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','reverseInPlace']};};stringBuilder$.equals=function($15k){var stringBuilder$=this;return stringBuilder$.$150.equals($15k);};stringBuilder$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','equals']};};atr$(stringBuilder$,'hash',function(){var stringBuilder$=this;return stringBuilder$.$150.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','hash']};});stringBuilder$.appendAll=function($15l){var stringBuilder$=this;var $15n;for(var $15m=$15l.iterator();($15n=$15m.next())!==finished();){stringBuilder$.append($15n);}return stringBuilder$;};stringBuilder$.appendAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'strings',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}}}],$cont:StringBuilder$$N,pa:1,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:appendAll'),$_native()];},d:['$','StringBuilder','$m','appendAll']};};stringBuilder$.prependAll=function($15o){var stringBuilder$=this;var $15q;for(var $15p=$15o.iterator();($15q=$15p.next())!==finished();){stringBuilder$.prepend($15q);}return stringBuilder$;};stringBuilder$.prependAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'strings',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}}}],$cont:StringBuilder$$N,pa:1,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:prependAll'),$_native()];},d:['$','StringBuilder','$m','prependAll']};};stringBuilder$.appendNewline=function(){var stringBuilder$=this;return stringBuilder$.appendCharacter(Character(10,true));};stringBuilder$.appendNewline.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder$$N,pa:1,an:function(){return[doc("Append a newline character."),$_native()];},d:['$','StringBuilder','$m','appendNewline']};};stringBuilder$.appendSpace=function(){var stringBuilder$=this;return stringBuilder$.appendCharacter(Character(32,true));};stringBuilder$.appendSpace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder$$N,pa:1,an:function(){return[doc("Append a space character."),$_native()];},d:['$','StringBuilder','$m','appendSpace']};};})(StringBuilder.$$.prototype);}
return StringBuilder;}
ex$.$init$StringBuilder=$init$StringBuilder;$init$StringBuilder();function Summable($$targs$$,summable$){set_type_args(summable$,$$targs$$,Summable);}
Summable.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Summable:{sts:[{t:Summable,a:{Other$Summable:'Other$Summable'}}]}},of:['Other$Summable'],pa:1,an:function(){return[doc$($CCMM$,'$:Summable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),$_String),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Numeric)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers","Strings"].$sa$({t:$_String}))];},d:['$','Summable']};};
ex$.Summable=Summable;function $init$Summable(){if(Summable.$$===undefined){initTypeProtoI(Summable,'ceylon.language::Summable');
(function(summable$){summable$.plus={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Summable',ps:[{nm:'other',mt:'prm',$t:'Other$Summable'}],$cont:Summable,pa:5,an:function(){return[doc$($CCMM$,'$:Summable:$m:plus')];},d:['$','Summable','$m','plus']};}};})(Summable.$$.prototype);}
return Summable;}
ex$.$init$Summable=$init$Summable;$init$Summable();function Usable(usable$){}
Usable.$crtmm$=function(){return{mod:$CCMM$,of:[{t:Destroyable},{t:Obtainable}],pa:1,an:function(){return[doc$($CCMM$,'$:Usable'),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Usable']};};
ex$.Usable=Usable;function $init$Usable(){if(Usable.$$===undefined){initTypeProtoI(Usable,'ceylon.language::Usable');
}
return Usable;}
ex$.$init$Usable=$init$Usable;$init$Usable();function and($15r,$15s,$vlus2j$){var $15t=function($15u){{return ($15r($15u)&&$15s($15u));}};$15t.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:$vlus2j$.Value$and}],$t:{t:$_Boolean}};};return JsCallable(0,$15t);};and.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$and']}}},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$and']}}}},{nm:'q',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$and']}}}}],tp:{Value$and:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:and'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','and']};};
ex$.and=and;function AnnotationAnnotation(annotationAnnotation$){$init$AnnotationAnnotation();
if(annotationAnnotation$===undefined)annotationAnnotation$=new AnnotationAnnotation.$$;
annotationAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])},annotationAnnotation$);return annotationAnnotation$;}
AnnotationAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AnnotationAnnotation')];},d:['$','AnnotationAnnotation']};};
ex$.AnnotationAnnotation=AnnotationAnnotation;function $init$AnnotationAnnotation(){if(AnnotationAnnotation.$$===undefined){initTypeProto(AnnotationAnnotation,'ceylon.language::AnnotationAnnotation',Basic,$init$OptionalAnnotation());
}
return AnnotationAnnotation;}
ex$.$init$AnnotationAnnotation=$init$AnnotationAnnotation;$init$AnnotationAnnotation();function annotation(){return AnnotationAnnotation();};annotation.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AnnotationAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:annotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','annotation']};};
ex$.annotation=annotation;function SharedAnnotation(sharedAnnotation$){$init$SharedAnnotation();
if(sharedAnnotation$===undefined)sharedAnnotation$=new SharedAnnotation.$$;
sharedAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])},sharedAnnotation$);return sharedAnnotation$;}
SharedAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SharedAnnotation')];},d:['$','SharedAnnotation']};};
ex$.SharedAnnotation=SharedAnnotation;function $init$SharedAnnotation(){if(SharedAnnotation.$$===undefined){initTypeProto(SharedAnnotation,'ceylon.language::SharedAnnotation',Basic,$init$OptionalAnnotation());
}
return SharedAnnotation;}
ex$.$init$SharedAnnotation=$init$SharedAnnotation;$init$SharedAnnotation();function shared(){return SharedAnnotation();};shared.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SharedAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:shared')];},d:['$','shared']};};
ex$.shared=shared;function VariableAnnotation(variableAnnotation$){$init$VariableAnnotation();
if(variableAnnotation$===undefined)variableAnnotation$=new VariableAnnotation.$$;
variableAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}},variableAnnotation$);return variableAnnotation$;}
VariableAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:VariableAnnotation')];},d:['$','VariableAnnotation']};};
ex$.VariableAnnotation=VariableAnnotation;function $init$VariableAnnotation(){if(VariableAnnotation.$$===undefined){initTypeProto(VariableAnnotation,'ceylon.language::VariableAnnotation',Basic,$init$OptionalAnnotation());
}
return VariableAnnotation;}
ex$.$init$VariableAnnotation=$init$VariableAnnotation;$init$VariableAnnotation();function variable(){return VariableAnnotation();};variable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:VariableAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:variable')];},d:['$','variable']};};
ex$.variable=variable;function AbstractAnnotation(abstractAnnotation$){$init$AbstractAnnotation();
if(abstractAnnotation$===undefined)abstractAnnotation$=new AbstractAnnotation.$$;
abstractAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])},abstractAnnotation$);return abstractAnnotation$;}
AbstractAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AbstractAnnotation')];},d:['$','AbstractAnnotation']};};
ex$.AbstractAnnotation=AbstractAnnotation;function $init$AbstractAnnotation(){if(AbstractAnnotation.$$===undefined){initTypeProto(AbstractAnnotation,'ceylon.language::AbstractAnnotation',Basic,$init$OptionalAnnotation());
}
return AbstractAnnotation;}
ex$.$init$AbstractAnnotation=$init$AbstractAnnotation;$init$AbstractAnnotation();function $_abstract(){return AbstractAnnotation();};$_abstract.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AbstractAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:abstract')];},d:['$','abstract']};};
ex$.$_abstract=$_abstract;function FinalAnnotation(finalAnnotation$){$init$FinalAnnotation();
if(finalAnnotation$===undefined)finalAnnotation$=new FinalAnnotation.$$;
finalAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}},finalAnnotation$);return finalAnnotation$;}
FinalAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:FinalAnnotation')];},d:['$','FinalAnnotation']};};
ex$.FinalAnnotation=FinalAnnotation;function $init$FinalAnnotation(){if(FinalAnnotation.$$===undefined){initTypeProto(FinalAnnotation,'ceylon.language::FinalAnnotation',Basic,$init$OptionalAnnotation());
}
return FinalAnnotation;}
ex$.$init$FinalAnnotation=$init$FinalAnnotation;$init$FinalAnnotation();function $_final(){return FinalAnnotation();};$_final.$crtmm$=function(){return{mod:$CCMM$,$t:{t:FinalAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:final')];},d:['$','final']};};
ex$.$_final=$_final;function SealedAnnotation(sealedAnnotation$){$init$SealedAnnotation();
if(sealedAnnotation$===undefined)sealedAnnotation$=new SealedAnnotation.$$;
sealedAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])},sealedAnnotation$);return sealedAnnotation$;}
SealedAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SealedAnnotation')];},d:['$','SealedAnnotation']};};
ex$.SealedAnnotation=SealedAnnotation;function $init$SealedAnnotation(){if(SealedAnnotation.$$===undefined){initTypeProto(SealedAnnotation,'ceylon.language::SealedAnnotation',Basic,$init$OptionalAnnotation());
}
return SealedAnnotation;}
ex$.$init$SealedAnnotation=$init$SealedAnnotation;$init$SealedAnnotation();function sealed(){return SealedAnnotation();};sealed.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SealedAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:sealed')];},d:['$','sealed']};};
ex$.sealed=sealed;function ActualAnnotation(actualAnnotation$){$init$ActualAnnotation();
if(actualAnnotation$===undefined)actualAnnotation$=new ActualAnnotation.$$;
actualAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])},actualAnnotation$);return actualAnnotation$;}
ActualAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:ActualAnnotation')];},d:['$','ActualAnnotation']};};
ex$.ActualAnnotation=ActualAnnotation;function $init$ActualAnnotation(){if(ActualAnnotation.$$===undefined){initTypeProto(ActualAnnotation,'ceylon.language::ActualAnnotation',Basic,$init$OptionalAnnotation());
}
return ActualAnnotation;}
ex$.$init$ActualAnnotation=$init$ActualAnnotation;$init$ActualAnnotation();function actual(){return ActualAnnotation();};actual.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ActualAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:actual')];},d:['$','actual']};};
ex$.actual=actual;function FormalAnnotation(formalAnnotation$){$init$FormalAnnotation();
if(formalAnnotation$===undefined)formalAnnotation$=new FormalAnnotation.$$;
formalAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])},formalAnnotation$);return formalAnnotation$;}
FormalAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:FormalAnnotation')];},d:['$','FormalAnnotation']};};
ex$.FormalAnnotation=FormalAnnotation;function $init$FormalAnnotation(){if(FormalAnnotation.$$===undefined){initTypeProto(FormalAnnotation,'ceylon.language::FormalAnnotation',Basic,$init$OptionalAnnotation());
}
return FormalAnnotation;}
ex$.$init$FormalAnnotation=$init$FormalAnnotation;$init$FormalAnnotation();function formal(){return FormalAnnotation();};formal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:FormalAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:formal')];},d:['$','formal']};};
ex$.formal=formal;function DefaultAnnotation(defaultAnnotation$){$init$DefaultAnnotation();
if(defaultAnnotation$===undefined)defaultAnnotation$=new DefaultAnnotation.$$;
defaultAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])},defaultAnnotation$);return defaultAnnotation$;}
DefaultAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:DefaultAnnotation')];},d:['$','DefaultAnnotation']};};
ex$.DefaultAnnotation=DefaultAnnotation;function $init$DefaultAnnotation(){if(DefaultAnnotation.$$===undefined){initTypeProto(DefaultAnnotation,'ceylon.language::DefaultAnnotation',Basic,$init$OptionalAnnotation());
}
return DefaultAnnotation;}
ex$.$init$DefaultAnnotation=$init$DefaultAnnotation;$init$DefaultAnnotation();function $_default(){return DefaultAnnotation();};$_default.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DefaultAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:default')];},d:['$','default']};};
ex$.$_default=$_default;function LateAnnotation(lateAnnotation$){$init$LateAnnotation();
if(lateAnnotation$===undefined)lateAnnotation$=new LateAnnotation.$$;
lateAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}},lateAnnotation$);return lateAnnotation$;}
LateAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:LateAnnotation')];},d:['$','LateAnnotation']};};
ex$.LateAnnotation=LateAnnotation;function $init$LateAnnotation(){if(LateAnnotation.$$===undefined){initTypeProto(LateAnnotation,'ceylon.language::LateAnnotation',Basic,$init$OptionalAnnotation());
}
return LateAnnotation;}
ex$.$init$LateAnnotation=$init$LateAnnotation;$init$LateAnnotation();function late(){return LateAnnotation();};late.$crtmm$=function(){return{mod:$CCMM$,$t:{t:LateAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:late')];},d:['$','late']};};
ex$.late=late;function NativeAnnotation(backends,nativeAnnotation$){$init$NativeAnnotation();
if(nativeAnnotation$===undefined)nativeAnnotation$=new NativeAnnotation.$$;
nativeAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(backends===undefined){backends=empty();}
nativeAnnotation$.backends_=backends;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},nativeAnnotation$);return nativeAnnotation$;}
NativeAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'backends',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc$($CCMM$,'$:NativeAnnotation:$at:backends')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:NativeAnnotation')];},d:['$','NativeAnnotation']};};
ex$.NativeAnnotation=NativeAnnotation;function $init$NativeAnnotation(){if(NativeAnnotation.$$===undefined){initTypeProto(NativeAnnotation,'ceylon.language::NativeAnnotation',Basic,$init$OptionalAnnotation());
(function(nativeAnnotation$){atr$(nativeAnnotation$,'backends',function(){return this.backends_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:NativeAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:NativeAnnotation:$at:backends')];},d:['$','NativeAnnotation','$at','backends']};});})(NativeAnnotation.$$.prototype);}
return NativeAnnotation;}
ex$.$init$NativeAnnotation=$init$NativeAnnotation;$init$NativeAnnotation();function $_native($15v){if($15v===undefined){$15v=empty();}
return NativeAnnotation($15v);};$_native.$crtmm$=function(){return{mod:$CCMM$,$t:{t:NativeAnnotation},ps:[{nm:'backends',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:native')];},d:['$','native']};};
ex$.$_native=$_native;function DocAnnotation(description,docAnnotation$){$init$DocAnnotation();
if(docAnnotation$===undefined)docAnnotation$=new DocAnnotation.$$;
docAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};docAnnotation$.description_=description;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},docAnnotation$);return docAnnotation$;}
DocAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:DocAnnotation:$at:description')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:DocAnnotation')];},d:['$','DocAnnotation']};};
ex$.DocAnnotation=DocAnnotation;function $init$DocAnnotation(){if(DocAnnotation.$$===undefined){initTypeProto(DocAnnotation,'ceylon.language::DocAnnotation',Basic,$init$OptionalAnnotation());
(function(docAnnotation$){atr$(docAnnotation$,'description',function(){return this.description_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:DocAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:DocAnnotation:$at:description')];},d:['$','DocAnnotation','$at','description']};});})(DocAnnotation.$$.prototype);}
return DocAnnotation;}
ex$.$init$DocAnnotation=$init$DocAnnotation;$init$DocAnnotation();function doc($15w){return DocAnnotation($15w);};doc.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DocAnnotation},ps:[{nm:'description',mt:'prm',$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:doc')];},d:['$','doc']};};
ex$.doc=doc;function SeeAnnotation(programElements,seeAnnotation$){$init$SeeAnnotation();
if(seeAnnotation$===undefined)seeAnnotation$=new SeeAnnotation.$$;
seeAnnotation$.$$targs$$={Value$SequencedAnnotation:{t:SeeAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:Annotated}};if(programElements===undefined){programElements=empty();}
seeAnnotation$.programElements_=programElements;SequencedAnnotation({Value$SequencedAnnotation:{t:SeeAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:Annotated}},seeAnnotation$);return seeAnnotation$;}
SeeAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'programElements',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Declaration$meta$declaration}}},pa:1,an:function(){return[doc$($CCMM$,'$:SeeAnnotation:$at:programElements')];}}],sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:{t:SeeAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SeeAnnotation')];},d:['$','SeeAnnotation']};};
ex$.SeeAnnotation=SeeAnnotation;function $init$SeeAnnotation(){if(SeeAnnotation.$$===undefined){initTypeProto(SeeAnnotation,'ceylon.language::SeeAnnotation',Basic,$init$SequencedAnnotation());
(function(seeAnnotation$){atr$(seeAnnotation$,'programElements',function(){return this.programElements_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Declaration$meta$declaration}}},$cont:SeeAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:SeeAnnotation:$at:programElements')];},d:['$','SeeAnnotation','$at','programElements']};});})(SeeAnnotation.$$.prototype);}
return SeeAnnotation;}
ex$.$init$SeeAnnotation=$init$SeeAnnotation;$init$SeeAnnotation();function see($15x){if($15x===undefined){$15x=empty();}
return SeeAnnotation($15x);};see.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SeeAnnotation},ps:[{nm:'programElements',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Declaration$meta$declaration}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:see')];},d:['$','see']};};
ex$.see=see;function AuthorsAnnotation(authors,authorsAnnotation$){$init$AuthorsAnnotation();
if(authorsAnnotation$===undefined)authorsAnnotation$=new AuthorsAnnotation.$$;
authorsAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(authors===undefined){authors=empty();}
authorsAnnotation$.authors_=authors;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},authorsAnnotation$);return authorsAnnotation$;}
AuthorsAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'authors',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc$($CCMM$,'$:AuthorsAnnotation:$at:authors')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AuthorsAnnotation')];},d:['$','AuthorsAnnotation']};};
ex$.AuthorsAnnotation=AuthorsAnnotation;function $init$AuthorsAnnotation(){if(AuthorsAnnotation.$$===undefined){initTypeProto(AuthorsAnnotation,'ceylon.language::AuthorsAnnotation',Basic,$init$OptionalAnnotation());
(function(authorsAnnotation$){atr$(authorsAnnotation$,'authors',function(){return this.authors_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:AuthorsAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:AuthorsAnnotation:$at:authors')];},d:['$','AuthorsAnnotation','$at','authors']};});})(AuthorsAnnotation.$$.prototype);}
return AuthorsAnnotation;}
ex$.$init$AuthorsAnnotation=$init$AuthorsAnnotation;$init$AuthorsAnnotation();function by($15y){if($15y===undefined){$15y=empty();}
return AuthorsAnnotation($15y);};by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AuthorsAnnotation},ps:[{nm:'authors',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:by')];},d:['$','by']};};
ex$.by=by;function ThrownExceptionAnnotation(type,when,thrownExceptionAnnotation$){$init$ThrownExceptionAnnotation();
if(thrownExceptionAnnotation$===undefined)thrownExceptionAnnotation$=new ThrownExceptionAnnotation.$$;
thrownExceptionAnnotation$.$$targs$$={Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])};thrownExceptionAnnotation$.type_=type;thrownExceptionAnnotation$.when_=when;SequencedAnnotation({Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])},thrownExceptionAnnotation$);return thrownExceptionAnnotation$;}
ThrownExceptionAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'type',mt:'prm',$t:{t:Declaration$meta$declaration},pa:1,an:function(){return[doc("The [[Exception]] type that is thrown.")];}},{nm:'when',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:ThrownExceptionAnnotation:$at:when')];}}],sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:ThrownExceptionAnnotation')];},d:['$','ThrownExceptionAnnotation']};};
ex$.ThrownExceptionAnnotation=ThrownExceptionAnnotation;function $init$ThrownExceptionAnnotation(){if(ThrownExceptionAnnotation.$$===undefined){initTypeProto(ThrownExceptionAnnotation,'ceylon.language::ThrownExceptionAnnotation',Basic,$init$SequencedAnnotation());
(function(thrownExceptionAnnotation$){atr$(thrownExceptionAnnotation$,'type',function(){return this.type_;},undefined,function(){return{mod:$CCMM$,$t:{t:Declaration$meta$declaration},$cont:ThrownExceptionAnnotation,pa:1,an:function(){return[doc("The [[Exception]] type that is thrown.")];},d:['$','ThrownExceptionAnnotation','$at','type']};});atr$(thrownExceptionAnnotation$,'when',function(){return this.when_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ThrownExceptionAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:ThrownExceptionAnnotation:$at:when')];},d:['$','ThrownExceptionAnnotation','$at','when']};});})(ThrownExceptionAnnotation.$$.prototype);}
return ThrownExceptionAnnotation;}
ex$.$init$ThrownExceptionAnnotation=$init$ThrownExceptionAnnotation;$init$ThrownExceptionAnnotation();function $_throws$defs$when($15z,$160){return "";};function $_throws($15z,$160){if($160===undefined){$160="";}
return ThrownExceptionAnnotation($15z,$160);};$_throws.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ThrownExceptionAnnotation},ps:[{nm:'type',mt:'prm',$t:{t:Declaration$meta$declaration}},{nm:'when',mt:'prm',def:1,$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:throws')];},d:['$','throws']};};
ex$.$_throws=$_throws;function DeprecationAnnotation(description,deprecationAnnotation$){$init$DeprecationAnnotation();
if(deprecationAnnotation$===undefined)deprecationAnnotation$=new DeprecationAnnotation.$$;
deprecationAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};deprecationAnnotation$.description_=description;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},deprecationAnnotation$);return deprecationAnnotation$;}
DeprecationAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation:$at:description')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation')];},d:['$','DeprecationAnnotation']};};
ex$.DeprecationAnnotation=DeprecationAnnotation;function $init$DeprecationAnnotation(){if(DeprecationAnnotation.$$===undefined){initTypeProto(DeprecationAnnotation,'ceylon.language::DeprecationAnnotation',Basic,$init$OptionalAnnotation());
(function(deprecationAnnotation$){atr$(deprecationAnnotation$,'description',function(){return this.description_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:DeprecationAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation:$at:description')];},d:['$','DeprecationAnnotation','$at','description']};});atr$(deprecationAnnotation$,'reason',function(){var deprecationAnnotation$=this;return (!deprecationAnnotation$.description.empty?deprecationAnnotation$.description:null);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},$cont:DeprecationAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation:$at:reason')];},d:['$','DeprecationAnnotation','$at','reason']};});})(DeprecationAnnotation.$$.prototype);}
return DeprecationAnnotation;}
ex$.$init$DeprecationAnnotation=$init$DeprecationAnnotation;$init$DeprecationAnnotation();function deprecated$defs$reason($161){return "";};function deprecated($161){if($161===undefined){$161="";}
return DeprecationAnnotation($161);};deprecated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeprecationAnnotation},ps:[{nm:'reason',mt:'prm',def:1,$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:deprecated')];},d:['$','deprecated']};};
ex$.deprecated=deprecated;function TagsAnnotation(tags,tagsAnnotation$){$init$TagsAnnotation();
if(tagsAnnotation$===undefined)tagsAnnotation$=new TagsAnnotation.$$;
tagsAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(tags===undefined){tags=empty();}
tagsAnnotation$.tags_=tags;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},tagsAnnotation$);return tagsAnnotation$;}
TagsAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'tags',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc("The tags, in plain text.")];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:TagsAnnotation')];},d:['$','TagsAnnotation']};};
ex$.TagsAnnotation=TagsAnnotation;function $init$TagsAnnotation(){if(TagsAnnotation.$$===undefined){initTypeProto(TagsAnnotation,'ceylon.language::TagsAnnotation',Basic,$init$OptionalAnnotation());
(function(tagsAnnotation$){atr$(tagsAnnotation$,'tags',function(){return this.tags_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:TagsAnnotation,pa:1,an:function(){return[doc("The tags, in plain text.")];},d:['$','TagsAnnotation','$at','tags']};});})(TagsAnnotation.$$.prototype);}
return TagsAnnotation;}
ex$.$init$TagsAnnotation=$init$TagsAnnotation;$init$TagsAnnotation();function tagged($162){if($162===undefined){$162=empty();}
return TagsAnnotation($162);};tagged.$crtmm$=function(){return{mod:$CCMM$,$t:{t:TagsAnnotation},ps:[{nm:'tags',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:tagged')];},d:['$','tagged']};};
ex$.tagged=tagged;function AliasesAnnotation(aliases,aliasesAnnotation$){$init$AliasesAnnotation();
if(aliasesAnnotation$===undefined)aliasesAnnotation$=new AliasesAnnotation.$$;
aliasesAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AliasesAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(aliases===undefined){aliases=empty();}
aliasesAnnotation$.aliases_=aliases;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AliasesAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},aliasesAnnotation$);return aliasesAnnotation$;}
AliasesAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'aliases',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc("The aliases, in plain text.")];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AliasesAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AliasesAnnotation')];},d:['$','AliasesAnnotation']};};
ex$.AliasesAnnotation=AliasesAnnotation;function $init$AliasesAnnotation(){if(AliasesAnnotation.$$===undefined){initTypeProto(AliasesAnnotation,'ceylon.language::AliasesAnnotation',Basic,$init$OptionalAnnotation());
(function(aliasesAnnotation$){atr$(aliasesAnnotation$,'aliases',function(){return this.aliases_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:AliasesAnnotation,pa:1,an:function(){return[doc("The aliases, in plain text.")];},d:['$','AliasesAnnotation','$at','aliases']};});})(AliasesAnnotation.$$.prototype);}
return AliasesAnnotation;}
ex$.$init$AliasesAnnotation=$init$AliasesAnnotation;$init$AliasesAnnotation();function aliased($163){if($163===undefined){$163=empty();}
return AliasesAnnotation($163);};aliased.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AliasesAnnotation},ps:[{nm:'aliases',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:aliased')];},d:['$','aliased']};};
ex$.aliased=aliased;function LicenseAnnotation(description,licenseAnnotation$){$init$LicenseAnnotation();
if(licenseAnnotation$===undefined)licenseAnnotation$=new LicenseAnnotation.$$;
licenseAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}};licenseAnnotation$.description_=description;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}},licenseAnnotation$);return licenseAnnotation$;}
LicenseAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:LicenseAnnotation:$at:description')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:LicenseAnnotation')];},d:['$','LicenseAnnotation']};};
ex$.LicenseAnnotation=LicenseAnnotation;function $init$LicenseAnnotation(){if(LicenseAnnotation.$$===undefined){initTypeProto(LicenseAnnotation,'ceylon.language::LicenseAnnotation',Basic,$init$OptionalAnnotation());
(function(licenseAnnotation$){atr$(licenseAnnotation$,'description',function(){return this.description_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:LicenseAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:LicenseAnnotation:$at:description')];},d:['$','LicenseAnnotation','$at','description']};});})(LicenseAnnotation.$$.prototype);}
return LicenseAnnotation;}
ex$.$init$LicenseAnnotation=$init$LicenseAnnotation;$init$LicenseAnnotation();function license($164){return LicenseAnnotation($164);};license.$crtmm$=function(){return{mod:$CCMM$,$t:{t:LicenseAnnotation},ps:[{nm:'description',mt:'prm',$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:license')];},d:['$','license']};};
ex$.license=license;function OptionalImportAnnotation(optionalImportAnnotation$){$init$OptionalImportAnnotation();
if(optionalImportAnnotation$===undefined)optionalImportAnnotation$=new OptionalImportAnnotation.$$;
optionalImportAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}},optionalImportAnnotation$);return optionalImportAnnotation$;}
OptionalImportAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:OptionalImportAnnotation')];},d:['$','OptionalImportAnnotation']};};
ex$.OptionalImportAnnotation=OptionalImportAnnotation;function $init$OptionalImportAnnotation(){if(OptionalImportAnnotation.$$===undefined){initTypeProto(OptionalImportAnnotation,'ceylon.language::OptionalImportAnnotation',Basic,$init$OptionalAnnotation());
}
return OptionalImportAnnotation;}
ex$.$init$OptionalImportAnnotation=$init$OptionalImportAnnotation;$init$OptionalImportAnnotation();function optional(){return OptionalImportAnnotation();};optional.$crtmm$=function(){return{mod:$CCMM$,$t:{t:OptionalImportAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:optional')];},d:['$','optional']};};
ex$.optional=optional;function SuppressWarningsAnnotation(warnings,suppressWarningsAnnotation$){$init$SuppressWarningsAnnotation();
if(suppressWarningsAnnotation$===undefined)suppressWarningsAnnotation$=new SuppressWarningsAnnotation.$$;
suppressWarningsAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SuppressWarningsAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])};if(warnings===undefined){warnings=empty();}
suppressWarningsAnnotation$.warnings_=warnings;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SuppressWarningsAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])},suppressWarningsAnnotation$);return suppressWarningsAnnotation$;}
SuppressWarningsAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'warnings',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc("The warning types to suppress.")];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SuppressWarningsAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SuppressWarningsAnnotation')];},d:['$','SuppressWarningsAnnotation']};};
ex$.SuppressWarningsAnnotation=SuppressWarningsAnnotation;function $init$SuppressWarningsAnnotation(){if(SuppressWarningsAnnotation.$$===undefined){initTypeProto(SuppressWarningsAnnotation,'ceylon.language::SuppressWarningsAnnotation',Basic,$init$OptionalAnnotation());
(function(suppressWarningsAnnotation$){atr$(suppressWarningsAnnotation$,'warnings',function(){return this.warnings_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:SuppressWarningsAnnotation,pa:1,an:function(){return[doc("The warning types to suppress.")];},d:['$','SuppressWarningsAnnotation','$at','warnings']};});})(SuppressWarningsAnnotation.$$.prototype);}
return SuppressWarningsAnnotation;}
ex$.$init$SuppressWarningsAnnotation=$init$SuppressWarningsAnnotation;$init$SuppressWarningsAnnotation();function suppressWarnings($165){if($165===undefined){$165=empty();}
return SuppressWarningsAnnotation($165);};suppressWarnings.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SuppressWarningsAnnotation},ps:[{nm:'warnings',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:suppressWarnings')];},d:['$','suppressWarnings']};};
ex$.suppressWarnings=suppressWarnings;function SerializableAnnotation(serializableAnnotation$){$init$SerializableAnnotation();
if(serializableAnnotation$===undefined)serializableAnnotation$=new SerializableAnnotation.$$;
serializableAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SerializableAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SerializableAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}},serializableAnnotation$);return serializableAnnotation$;}
SerializableAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SerializableAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}}}],pa:545,an:function(){return[doc$($CCMM$,'$:SerializableAnnotation')];},d:['$','SerializableAnnotation']};};
ex$.SerializableAnnotation=SerializableAnnotation;function $init$SerializableAnnotation(){if(SerializableAnnotation.$$===undefined){initTypeProto(SerializableAnnotation,'ceylon.language::SerializableAnnotation',Basic,$init$OptionalAnnotation());
}
return SerializableAnnotation;}
ex$.$init$SerializableAnnotation=$init$SerializableAnnotation;$init$SerializableAnnotation();function serializable(){return SerializableAnnotation();};serializable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SerializableAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:serializable')];},d:['$','serializable']};};
ex$.serializable=serializable;function any($166){var $168;for(var $167=$166.iterator();($168=$167.next())!==finished();){if($168){return true;}
}return false;}
ex$.any=any;any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:any'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_every),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.any)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','any']};};function $_apply($169,$16a,$qtlri4$){return $169($16a.sequence());};$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Return$apply',ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$apply',Arguments$Callable:'Args$apply'}}},{nm:'args',mt:'prm',$t:'Args$apply'}],tp:{Return$apply:{},Args$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:apply'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),unflatten)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','apply']};};
ex$.$_apply=$_apply;function arrayOfSize($16b,$16c,$gopx6p$){return $_Array_ofSize($16b,$16c,{Element$Array:$gopx6p$.Element$arrayOfSize});};arrayOfSize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$arrayOfSize'}},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:'Element$arrayOfSize'}],tp:{Element$arrayOfSize:{}},pa:1,an:function(){return[doc$($CCMM$,'$:arrayOfSize'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `size>runtime.maxArraySize`"),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),runtime().$prop$getMaxArraySize)].$sa$({t:ValueDeclaration$meta$declaration})),deprecated("Use [[Array.ofSize]]"),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','arrayOfSize']};};
ex$.arrayOfSize=arrayOfSize;function byDecreasing($16d,$wjr6t8$){var $16e=function($16f,$16g){{return $16d($16g).compare($16d($16f));}};$16e.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:$wjr6t8$.Element$byDecreasing},{nm:'y',mt:'prm',$t:$wjr6t8$.Element$byDecreasing}],$t:{t:Comparison}};};return JsCallable(0,$16e);};byDecreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$byDecreasing','Element$byDecreasing']}}},ps:[{nm:'comparable',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Value$byDecreasing',Arguments$Callable:{t:'T',l:['Element$byDecreasing']}}},$rt:'Value$byDecreasing',ps:[{nm:'e',mt:'prm',$t:'Element$byDecreasing'}]}],tp:{Element$byDecreasing:{},Value$byDecreasing:{sts:[{t:Comparable,a:{Other$Comparable:'Value$byDecreasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byDecreasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),decreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions","Comparisons"].$sa$({t:$_String}))];},d:['$','byDecreasing']};};
ex$.byDecreasing=byDecreasing;function decreasing($16h,$16i,$uhjp1p$){return $16i.compare($16h);};decreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$decreasing'},{nm:'y',mt:'prm',$t:'Element$decreasing'}],tp:{Element$decreasing:{sts:[{t:Comparable,a:{Other$Comparable:'Element$decreasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:decreasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),increasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','decreasing']};};
ex$.decreasing=decreasing;function decreasingKey($16j,$16k,$lhfuy6$){return $16k.key.compare($16j.key);};decreasingKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$decreasingKey',Item$Entry:{t:Anything}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$decreasingKey',Item$Entry:{t:Anything}}}}],tp:{Key$decreasingKey:{sts:[{t:Comparable,a:{Other$Comparable:'Key$decreasingKey'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:decreasingKey'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','decreasingKey']};};
ex$.decreasingKey=decreasingKey;function decreasingItem($16l,$16m,$qqo4w0$){return $16m.item.compare($16l.item);};decreasingItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$decreasingItem'}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$decreasingItem'}}}],tp:{Item$decreasingItem:{sts:[{t:Comparable,a:{Other$Comparable:'Item$decreasingItem'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:decreasingItem'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','decreasingItem']};};
ex$.decreasingItem=decreasingItem;function byIncreasing($16n,$xpazyw$){var $16o=function($16p,$16q){{return $16n($16p).compare($16n($16q));}};$16o.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:$xpazyw$.Element$byIncreasing},{nm:'y',mt:'prm',$t:$xpazyw$.Element$byIncreasing}],$t:{t:Comparison}};};return JsCallable(0,$16o);};byIncreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$byIncreasing','Element$byIncreasing']}}},ps:[{nm:'comparable',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Value$byIncreasing',Arguments$Callable:{t:'T',l:['Element$byIncreasing']}}},$rt:'Value$byIncreasing',ps:[{nm:'e',mt:'prm',$t:'Element$byIncreasing'}]}],tp:{Element$byIncreasing:{},Value$byIncreasing:{sts:[{t:Comparable,a:{Other$Comparable:'Value$byIncreasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byIncreasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),increasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions","Comparisons"].$sa$({t:$_String}))];},d:['$','byIncreasing']};};
ex$.byIncreasing=byIncreasing;function increasing($16r,$16s,$tbzvw1$){return $16r.compare($16s);};increasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$increasing'},{nm:'y',mt:'prm',$t:'Element$increasing'}],tp:{Element$increasing:{sts:[{t:Comparable,a:{Other$Comparable:'Element$increasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:increasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),decreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','increasing']};};
ex$.increasing=increasing;function increasingKey($16t,$16u,$qj6v82$){return $16t.key.compare($16u.key);};increasingKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$increasingKey',Item$Entry:{t:Anything}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$increasingKey',Item$Entry:{t:Anything}}}}],tp:{Key$increasingKey:{sts:[{t:Comparable,a:{Other$Comparable:'Key$increasingKey'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:increasingKey'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','increasingKey']};};
ex$.increasingKey=increasingKey;function increasingItem($16v,$16w,$tuesis$){return $16v.item.compare($16w.item);};increasingItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$increasingItem'}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$increasingItem'}}}],tp:{Item$increasingItem:{sts:[{t:Comparable,a:{Other$Comparable:'Item$increasingItem'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:increasingItem'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','increasingItem']};};
ex$.increasingItem=increasingItem;function byItem($16x,$kaaybo$){var $16y=function($16z,$170){{return $16x($16z.item,$170.item);}};$16y.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:$kaaybo$.Item$byItem}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:$kaaybo$.Item$byItem}}}],$t:{t:Comparison}};};return JsCallable(0,$16y);};byItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$byItem'}},{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$byItem'}}]}}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Item$byItem','Item$byItem']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Item$byItem'},{nm:'y',mt:'prm',$t:'Item$byItem'}]}],tp:{Item$byItem:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byItem'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byKey)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','byItem']};};
ex$.byItem=byItem;function byKey($171,$quajdi$){var $172=function($173,$174){{return $171($173.key,$174.key);}};$172.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:$quajdi$.Key$byKey,Item$Entry:{t:$_Object}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:$quajdi$.Key$byKey,Item$Entry:{t:$_Object}}}}],$t:{t:Comparison}};};return JsCallable(0,$172);};byKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:'Key$byKey',Item$Entry:{t:$_Object}}},{t:Entry,a:{Key$Entry:'Key$byKey',Item$Entry:{t:$_Object}}}]}}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Key$byKey','Key$byKey']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Key$byKey'},{nm:'y',mt:'prm',$t:'Key$byKey'}]}],tp:{Key$byKey:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byKey'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byItem)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','byKey']};};
ex$.byKey=byKey;function className(obj) {
if (obj===null) return 'ceylon.language::Null';
if (obj===undefined) return "JavaScript UNDEFINED";
if (obj===true) return 'ceylon.language::true';
if (obj===false) return 'ceylon.language::false';
function _typename(t) {
if (t.t==='i' || t.t==='u') {
var _sep = t.t==='i'?'&':'|';
var ct = '';
for (var i=0; i < t.l.length; i++) {
if (i>0) { ct+=_sep; }
ct += _typename(t.l[i]);
}
return ct;
} else {
var tn = t.t.$$.T$name;
if (t.a) {
tn += '<';
for (var i = 0; i < t.a.length; i++) {
if (i>0) { tn += ','; }
tn += _typename(t.a[i]);
}
tn += '>';
}
return tn;
}
}
var tn = obj.getT$name && obj.getT$name();
if (!tn) {
if (typeof obj === 'function') {
tn = 'ceylon.language::Callable';
} else {
tn = 'UNKNOWN';
}
}
/*else if (obj.$$targs$$) {
tn += '<';
for (var i=0; i < obj.$$targs$$.length; i++) {
if (i>0) { tn += ','; }
tn += _typename(obj.$$targs$$[i]);
}
tn += '>';
}*/
return tn;
}
className.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'obj',mt:'prm',$t:{t:$_Object}}],pa:1,an:function(){return[doc$($CCMM$,'$:className'),tagged(["Metamodel"].$sa$({t:$_String})),$_native()];},d:['$','className']};};
ex$.className=className;function comparing($175,$kvm8b4$){if($175===undefined){$175=empty();}
var $176=function($177,$178){var $17a;for(var $179=$175.iterator();($17a=$179.next())!==finished();){var $17b=$17a($177,$178);if((!$17b.equals(equal()))){return $17b;}
}
if(finished()===$17a){return equal();}
};$176.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:$kvm8b4$.Value$comparing},{nm:'y',mt:'prm',$t:$kvm8b4$.Value$comparing}],$t:{t:Comparison}};};return JsCallable(0,$176);}
ex$.comparing=comparing;comparing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Value$comparing','Value$comparing']}}},ps:[{nm:'comparators',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Value$comparing','Value$comparing']}}}}}}],tp:{Value$comparing:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:comparing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','comparing']};};function compose($17c,$17d,$kw9928$){return flatten($JsCallable((function($17e){return $17c($17d($17e.sequence()));}),[{nm:'args',mt:'prm',$t:$kw9928$.Args$compose}],{Return$Callable:$kw9928$.X$compose/*ORALE!X inv pero Return var*/,Arguments$Callable:mtt$([$kw9928$.Args$compose])}),{Args$flatten:$kw9928$.Args$compose,Return$flatten:$kw9928$.X$compose});};compose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'X$compose',Arguments$Callable:'Args$compose'}},ps:[{nm:'x',mt:'prm',$t:{t:Callable,a:{Return$Callable:'X$compose',Arguments$Callable:{t:'T',l:['Y$compose']}}}},{nm:'y',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Y$compose',Arguments$Callable:'Args$compose'}}}],tp:{X$compose:{},Y$compose:{},Args$compose:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:compose'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),curry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),uncurry)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','compose']};};
ex$.compose=compose;function concatenate($17f,$atc5h9$){if($17f===undefined){$17f=empty();}
return tpl$([],for$(function(){var $17g=$17f.iterator(),$17h=finished();var n$17h=function(){if(($17h=$17g.next())!==finished()){$17i=$17h.iterator();return $17h;}
return finished();}
var $17i=emptyIterator(),$17j=finished();var n$17j=function(){return $17j=$17i.next();}
return function(){do{if(n$17j()!==finished()){var $17k=$17j,$17l=$17k;return $17l;}
}while(n$17h()!==finished());return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$atc5h9$.Element$concatenate/*ORALE!Element inv pero Element var*/}));};concatenate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$concatenate'}},ps:[{nm:'iterables',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$concatenate'}}}}}],tp:{Element$concatenate:{}},pa:1,an:function(){return[doc$($CCMM$,'$:concatenate'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),expand),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Sequential().$$.prototype.append)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','concatenate']};};
ex$.concatenate=concatenate;function corresponding($17m,$17n,$17o,$ygxsxr$){if($17o===undefined){$17o=function($17p,$17q){return function(){var $17r,$17s;if(nn$(($17r=$17p))&&nn$(($17s=$17q)))return $17r.equals($17s);else return (!nn$($17p)&&!nn$($17q))}();};}
var $17t=$17m.iterator();var $17u=$17n.iterator();while(true){var $17v=$17t.next();var $17w=$17u.next();var $17x,$17y;if(!is$(($17x=$17v),{t:Finished})&&!is$(($17y=$17w),{t:Finished})){if(!$17o($17x,$17y)){return false;}
}
else{return (is$($17v,{t:Finished})&&is$($17w,{t:Finished}));}
}
}
ex$.corresponding=corresponding;corresponding.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$corresponding'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$corresponding'}}},{nm:'comparing',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$corresponding','Second$corresponding']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$corresponding'},{nm:'second',mt:'prm',$t:'Second$corresponding'}]}],tp:{First$corresponding:{},Second$corresponding:{}},pa:1,an:function(){return[doc$($CCMM$,'$:corresponding'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),everyPair)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons","Streams"].$sa$({t:$_String}))];},d:['$','corresponding']};};function count($17z){var $180=(0);var $182;for(var $181=$17z.iterator();($182=$181.next())!==finished();){if($182){($183=$180,$180=$183.successor,$183);var $183;}
}return $180;}
ex$.count=count;count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:count'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.count)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','count']};};function curry($184,$qusl91$){var $185=function($186){{return flatten($JsCallable((function($187){return unflatten(JsCallable(0,$184),{Return$unflatten:$qusl91$.Return$curry,Args$unflatten:{t:Tuple,a:{Rest$Tuple:$qusl91$.Rest$curry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$qusl91$.Argument$curry/*ORALE!Argument inv pero Element var*/,First$Tuple:$qusl91$.First$curry/*ORALE!First inv pero First var*/}}})(Tuple($186,$187,{First$Tuple:$qusl91$.First$curry/*ORALE!First inv pero First var*/,Rest$Tuple:$qusl91$.Rest$curry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$qusl91$.Argument$curry/*ORALE!Argument inv pero Element var*/}));}),[{nm:'args',mt:'prm',$t:$qusl91$.Rest$curry}],{Return$Callable:$qusl91$.Return$curry/*ORALE!Return inv pero Return var*/,Arguments$Callable:mtt$([$qusl91$.Rest$curry])}),{Args$flatten:$qusl91$.Rest$curry,Return$flatten:$qusl91$.Return$curry});}};$185.$crtmm$=function(){return{ps:[{nm:'first',mt:'prm',$t:$qusl91$.First$curry}],$t:{t:Callable,a:{Return$Callable:$qusl91$.Return$curry/*ORALE!Return inv pero Return var*/,Arguments$Callable:$qusl91$.Rest$curry/*ORALE!Rest inv pero Arguments var*/}}};};return JsCallable(0,$185);};curry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Return$curry',Arguments$Callable:'Rest$curry'}},Arguments$Callable:{t:'T',l:['First$curry']}}},ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$curry',Arguments$Callable:{t:'T',l:['First$curry']}}}}],tp:{Return$curry:{},Argument$curry:{},First$curry:{sts:['Argument$curry']},Rest$curry:{sts:[{t:Sequential,a:{Element$Sequential:'Argument$curry'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:curry'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),uncurry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),compose)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','curry']};};
ex$.curry=curry;function uncurry($188,$chtzw$){return flatten($JsCallable((function($189){return unflatten($188($189.first),{Return$unflatten:$chtzw$.Return$uncurry,Args$unflatten:$chtzw$.Rest$uncurry})($189.rest);}),[{nm:'args',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:$chtzw$.Rest$uncurry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$chtzw$.Argument$uncurry/*ORALE!Argument inv pero Element var*/,First$Tuple:$chtzw$.First$uncurry/*ORALE!First inv pero First var*/}}}],{Return$Callable:$chtzw$.Return$uncurry/*ORALE!Return inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:$chtzw$.Rest$uncurry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$chtzw$.Argument$uncurry/*ORALE!Argument inv pero Element var*/,First$Tuple:$chtzw$.First$uncurry/*ORALE!First inv pero First var*/}}])}),{Args$flatten:{t:Tuple,a:{Rest$Tuple:$chtzw$.Rest$uncurry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$chtzw$.Argument$uncurry/*ORALE!Argument inv pero Element var*/,First$Tuple:$chtzw$.First$uncurry/*ORALE!First inv pero First var*/}},Return$flatten:$chtzw$.Return$uncurry});};uncurry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:{t:'T',l:['First$uncurry']}}},ps:[{nm:'f',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:'Rest$uncurry'}},Arguments$Callable:{t:'T',l:['First$uncurry']}}},$rt:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:'Rest$uncurry'}},ps:[{nm:'first',mt:'prm',$t:'First$uncurry'}]}],tp:{Return$uncurry:{},Argument$uncurry:{},First$uncurry:{sts:['Argument$uncurry']},Rest$uncurry:{sts:[{t:Sequential,a:{Element$Sequential:'Argument$uncurry'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:uncurry'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),curry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),compose)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','uncurry']};};
ex$.uncurry=uncurry;function emptyOrSingleton($18a,$ki7e31$){return function(){var $18b;if(nn$(($18b=$18a)))return tpl$([$18b]);else return empty()}();};emptyOrSingleton.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:'i',l:['Element$emptyOrSingleton',{t:$_Object}]}]},ps:[{nm:'element',mt:'prm',$t:'Element$emptyOrSingleton'}],tp:{Element$emptyOrSingleton:{}},pa:1,an:function(){return[doc$($CCMM$,'$:emptyOrSingleton'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Tuple),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Empty)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]))),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','emptyOrSingleton']};};
ex$.emptyOrSingleton=emptyOrSingleton;function $_every($18c){var $18e;for(var $18d=$18c.iterator();($18e=$18d.next())!==finished();){if(!$18e){return false;}
}return true;}
ex$.$_every=$_every;$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:every'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),any),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_every)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','every']};};function expand($18f,$iv1d4k$){return for$(function(){var $18g=$18f.iterator(),$18h=finished();var n$18h=function(){if(($18h=$18g.next())!==finished()){$18i=$18h.iterator();return $18h;}
return finished();}
var $18i=emptyIterator(),$18j=finished();var n$18j=function(){return $18j=$18i.next();}
return function(){do{if(n$18j()!==finished()){var $18k=$18j,$18l=$18k;return $18l;}
}while(n$18h()!==finished());return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$iv1d4k$.Element$expand/*ORALE!Element inv pero Element var*/});};expand.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['OuterAbsent$expand','InnerAbsent$expand']},Element$Iterable:'Element$expand'}},ps:[{nm:'iterables',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OuterAbsent$expand',Element$Iterable:{t:Iterable,a:{Absent$Iterable:'InnerAbsent$expand',Element$Iterable:'Element$expand'}}}}}],tp:{Element$expand:{},OuterAbsent$expand:{sts:[{t:Null}]},InnerAbsent$expand:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:expand'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.flatMap),$init$OpenFunction$jsint()(lmp$(ex$,'$'),concatenate),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','expand']};};
ex$.expand=expand;function flatten(tf, $$$mptypes) {
if (tf.$unflattened$)return tf.$unflattened$;
var tf_targs;
if (tf.jsc$) {
tf_targs=tf.$$targs$$;
tf=tf.jsc$;
} else if (tf.c2$) {
tf_targs=tf.$$targs$$;
tf=tf.c2$;
}
var mm=getrtmm$$(tf);
var t0,iadic,argx;
if (mm && mm.ps) {
if (mm.ps.length===1) {
t0=mm.ps[0].$t;
if (!(t0.t===Sequential || t0.t===Sequence)) {
var ps0t=mm.ps[0].$t;
if (typeof(ps0t)==='string') {
ps0t=tf_targs[ps0t];
}
t0=detpl$(ps0t);
}
iadic=variadicness(t0);
argx = t0.t==='T' ? t0.l.length : 1;
} else {
throw new TypeError("Invalid argument to flatten: " +tf);
}
} else {
throw new TypeError("Missing metamodel for " + tf);
}
var rf;
if (t0.t==='T') {
//Tuple
if (iadic) {
rf=function fftv(){
var t = [];
for (var i=0;i<argx-1;i++) {
t.push(arguments[i]);
}
var seqarg=arguments[argx-1];
if (seqarg===undefined || seqarg.length===0) {
seqarg=empty();
} else if (seqarg !== null && !is$(seqarg,{t:Sequence})) {
seqarg=seqarg.$sa$(seqarg._elemTarg());
}
if (argx===1&&t.length==0)return tf(seqarg);
return tf(tpl$(t,seqarg));
}
} else {
rf=function fft1(){
var t=[];
if (arguments.length===1 && is$(arguments[0],t0)) {
//Spread tuple
return tf(arguments[0]);
} else if (arguments.length===1 && argx===1 && is$(arguments[0],{t:Sequential,a:{Element$Sequential:t0.l[0]}})) {
//This definitely stinks
return tf(arguments[0]);
} else if (arguments.length>0){
for (var i=0;i<argx;i++) {
t.push(arguments[i]);
}
}
if (t.length===1 && t0.l && t0.l.length===1 && is$(t[0],{t:Sequential}) && (t0.l[0].t===Sequence||t0.l[0].t===Sequential||t0.l[0].t===Tuple||t0.l[0].t==='T')) {
//special case: 1-arg with tuple against 1-param 1x tuple with 1 Sequential element
return tf(t[0]);
}
return tf(tpl$(t));
}
}
rf.$crtmm$={$t:mm.$t,ps:[]};
for(var i=0;i<t0.l.length;i++){
rf.$crtmm$.ps.push({$t:t0.l[i],mt:'prm',nm:'flat'+i});
if (t0.l[i].seq)rf.$crtmm$.ps[i].$t.seq=t0.l[i].seq;
}
} else {
//Single variadic argument
rf=function ffs(s,$mpt){
if (s===empty()||is$(s,{t:Tuple}))return tf(s,$mpt);
if (is$(s,{t:ArraySequence})){
//This is awful but it's the only way to get the array directly out of its sequence
//Don't forget to update the property name when it changes
return tf(tpl$(s.$ff.arr$),$mpt);
}
if (is$(s,{t:$_Array}))return tf(tpl$(s.arr$),$mpt);
return tf(s?tpl$(s):empty(),$mpt);
};
rf.$crtmm$={$t:mm.$t,ps:[{$t:{t:t0.t},nm:'flat#0',seq:iadic}]};
if (t0.a)rf.$crtmm$.ps[0].$t.a=t0.a;
if (extendsType(t0,{t:Empty}))rf.$crtmm$.ps=[];
}
rf.$$targs$$={Return$Callable:$$$mptypes.Return$flatten,Arguments$Callable:$$$mptypes.Args$flatten};
rf.$flattened$=tf;
return rf;
}
flatten.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$flatten',Arguments$Callable:'Args$flatten'}},ps:[{nm:'tupleFunction',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Return$flatten',Arguments$Callable:{t:'T',l:['Args$flatten']}}},$rt:'Return$flatten',ps:[{nm:'tuple',mt:'prm',$t:'Args$flatten'}]}],tp:{Return$flatten:{},Args$flatten:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:flatten'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),unflatten)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String})),$_native()];},d:['$','flatten']};};
ex$.flatten=flatten;function forItem($18m,$61lsdy$){var $18n=function($18o){{return $18m($18o.item);}};$18n.$crtmm$=function(){return{ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:$61lsdy$.Item$forItem}}}],$t:$61lsdy$.Result$forItem};};return JsCallable(0,$18n);};forItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$forItem',Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$forItem'}}]}}},ps:[{nm:'resulting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$forItem',Arguments$Callable:{t:'T',l:['Item$forItem']}}},$rt:'Result$forItem',ps:[{nm:'item',mt:'prm',$t:'Item$forItem'}]}],tp:{Item$forItem:{},Result$forItem:{}},pa:1,an:function(){return[doc$($CCMM$,'$:forItem'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),forKey)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','forItem']};};
ex$.forItem=forItem;function forKey($18p,$iix2m0$){var $18q=function($18r){{return $18p($18r.key);}};$18q.$crtmm$=function(){return{ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:$iix2m0$.Key$forKey,Item$Entry:{t:Anything}}}}],$t:$iix2m0$.Result$forKey};};return JsCallable(0,$18q);};forKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$forKey',Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:'Key$forKey',Item$Entry:{t:Anything}}}]}}},ps:[{nm:'resulting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$forKey',Arguments$Callable:{t:'T',l:['Key$forKey']}}},$rt:'Result$forKey',ps:[{nm:'key',mt:'prm',$t:'Key$forKey'}]}],tp:{Key$forKey:{sts:[{t:$_Object}]},Result$forKey:{}},pa:1,an:function(){return[doc$($CCMM$,'$:forKey'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),forItem)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','forKey']};};
ex$.forKey=forKey;function formatFloat($18s,$18t,$18u){if($18t===undefined){$18t=(1);}
if($18u===undefined){$18u=(9);}
if(($18s.$_undefined||$18s.infinite)){return $18s.string;}
var $18v=empty();var $18w=$18u;var $18x=$18s.magnitude;while(true){var $18y=$18x.times(Float(10.0).powerOfInteger(($18w=$18w.predecessor)));var $18z=$18y.fractionalPart.times(10).wholePart;var $190=$18z.integer.plus(zeroInt()).character;$18v=$18v.follow($190,{Other$follow:{t:Character}});if($18y.wholePart.equals(Float(0.0))){break;}
}
var $191=$_String($18v);var $192=$191.size.minus($18u);var $193;var $194;if(($192>0)){$193=$191.measure(0,$192);$194=$191.spanFrom($192);}
else{$193="0";$194=$191.padLeading($18u,Character(48,true));}
var $195=$194.trimTrailing($JsCallable(($196=Character(48,true),JsCallable($196,$196.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])})).padTrailing($18t,Character(48,true));var $196;var $197=($198=($18s.negative?"-".plus($193):null),nn$($198)?$198:$193);var $198;return ($199=($195.empty?$197:null),nn$($199)?$199:$197.plus(".").plus($195));var $199;}
ex$.formatFloat=formatFloat;formatFloat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'float',mt:'prm',$t:{t:Float}},{nm:'minDecimalPlaces',mt:'prm',def:1,$t:{t:Integer}},{nm:'maxDecimalPlaces',mt:'prm',def:1,$t:{t:Integer}}],pa:1,an:function(){return[doc$($CCMM$,'$:formatFloat'),tagged(["Numbers"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatInteger),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseFloat)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','formatFloat']};};function formatInteger($19a,$19b){if($19b===undefined){$19b=(10);}
asrt$((($19c=$19b,$19c.compare(minRadix())!==smaller()&&$19c.compare(maxRadix())!==larger())),"Assertion failed: \'minRadix <= radix <= maxRadix\' at formatInteger.ceylon (27:11-27:41)",'27:4-27:42','formatInteger.ceylon');
if((($19a).valueOf()==(0).valueOf())){return "0";}
var $19d=empty();var $19e=($19f=(($19a<0)?$19a:null),nn$($19f)?$19f:(-$19a));var $19f;while(!($19e==0)){var $19g=(-$19e.remainder($19b));var $19h;if(($19i=$19g,$19i.compare((0))!==smaller()&&$19i.compare((10))===smaller())){$19h=$19g.plus(zeroInt()).character;}
else{if(($19j=$19g,$19j.compare((10))!==smaller()&&$19j.compare((36))===smaller())){$19h=$19g.minus(10).plus(aIntLower()).character;}
else{asrt$((false),"Assertion failed: \'false\' at formatInteger.ceylon (45:19-45:25)",'45:12-45:26','formatInteger.ceylon');
}
}
$19d=$19d.follow($19h,{Other$follow:{t:Character}});$19e=$19e.plus($19g).divided($19b);}
if(($19a<0)){$19d=$19d.follow(Character(45,true),{Other$follow:{t:Character}});}
return $_String($19d);}
ex$.formatInteger=formatInteger;formatInteger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'integer',mt:'prm',$t:{t:Integer}},{nm:'radix',mt:'prm',def:1,$t:{t:Integer}}],pa:1,an:function(){return[doc$($CCMM$,'$:formatInteger'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if [[radix]] is not between [[minRadix]] and \n[[maxRadix]]"),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatFloat),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseInteger)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','formatInteger']};};function identity($19k,$g5ygog$){return $19k;};identity.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$identity',ps:[{nm:'argument',mt:'prm',$t:'Value$identity'}],tp:{Value$identity:{}},pa:1,an:function(){return[doc$($CCMM$,'$:identity'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','identity']};};
ex$.identity=identity;function noop($19l){if($19l===undefined){$19l=empty();}
}
ex$.noop=noop;noop.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:noop'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','noop']};};function identical($19m,$19n){return ($19m===$19n);};identical.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:{t:Identifiable}},{nm:'y',mt:'prm',$t:{t:Identifiable}}],pa:1,an:function(){return[doc$($CCMM$,'$:identical'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),identityHash)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','identical']};};
ex$.identical=identical;function identityHash($19o){var $19p=$19o;var $19q;if(nn$(($19q=$19p.BasicID))){return ndnc$($19q,'i','identityHash.ceylon 18:19-18:22');}
else{hash=BasicID++;$19p.BasicID=(typeof hash==='undefined'||hash===null?throwexc(Exception("Undefined or null reference: hash"),'22:26-22:29','identityHash.ceylon'):hash);return ndnc$((typeof hash==='undefined'||hash===null?throwexc(Exception("Undefined or null reference: hash"),'23:19-23:22','identityHash.ceylon'):hash),'i','identityHash.ceylon 23:19-23:22');}
}
ex$.identityHash=identityHash;identityHash.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'identifiable',mt:'prm',$t:{t:Identifiable}}],pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','identityHash']};};function infinity(){return ndnc$((typeof Infinity==='undefined'||Infinity===null?throwexc(Exception("Undefined or null reference: Infinity"),'19:54-19:61','infinity.ceylon'):Infinity),'f','infinity.ceylon 19:54-19:61');}
infinity.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Float},pa:1,d:['$','infinity']};}
ex$.infinity=infinity;var $prop$getInfinity={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Float},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','infinity']};}};ex$.$prop$getInfinity=$prop$getInfinity;$prop$getInfinity.get=infinity;infinity.$crtmm$=$prop$getInfinity.$crtmm$;function interleave($19r,$kbqar7$){if($19r===undefined){$19r=empty();}
return function(){function $19s($$targs$$){var $19s$=new $19s.$$;$19s$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:$kbqar7$.Absent$interleave/*ORALE!Absent inv pero Absent var*/,Element$Iterable:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/},$19s$);return $19s$;};$19s.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:interleave,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}}],d:['$','interleave']};};function $init$$19s(){if($19s.$$===undefined){initTypeProto($19s,'ceylon.language::anonymous#0',Basic,$init$Iterable());
(function($19s$){atr$($19s$,'size',function(){var $19s$=this;return ($19t=for$(function(){var $19u=$19r.iterator(),$19v=finished();var n$19v=function(){return $19v=$19u.next();}
return function(){if(n$19v()!==finished()){var $19w=$19v,$19x=$19w.size;return $19x;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}).sequence(),min($19t,{Value$min:{t:Integer},Absent$min:{t:Nothing}})).times($19r.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:interleave,pa:3,d:['$','interleave','$at','size']};});atr$($19s$,'empty',function(){var $19s$=this;return ($19y=for$(function(){var $19z=$19r.iterator(),$1a0=finished();var n$1a0=function(){return $1a0=$19z.next();}
return function(){if(n$1a0()!==finished()){var $1a1=$1a0,$1a2=$1a1.empty;return $1a2;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}).sequence(),any($19y));},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:interleave,pa:3,d:['$','interleave','$at','empty']};});$19s$.iterator=function(){var $19s$=this;return function(){function $1a3($$targs$$){var $1a3$=new $1a3.$$;$1a3$.outer$=$19s$;$1a3$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/},$1a3$);$1a3$.$1a4_=$19r.collect($JsCallable((function($1a5){return $1a5.iterator();}),[{nm:'it',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:$kbqar7$.Element$interleave}}}],{Return$Callable:{t:Iterator,a:{Element$Iterator:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/}},Arguments$Callable:mtt$([{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/}}])}),{Result$collect:{t:Iterator,a:{Element$Iterator:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/}}});$1a3$.$prop$get$1a4={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Iterator,a:{Element$Iterator:'Element$interleave'}}}},$cont:interleave,d:['$','interleave','$at','iterators$7cx7wa']};}};$1a3$.$prop$get$1a4.get=function(){return $1a4};$1a3$.$1a6_=(0);$1a3$.$prop$get$1a6={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:interleave,pa:1024,d:['$','interleave','$at','which$tupl1u']};}};$1a3$.$prop$get$1a6.get=function(){return $1a6};return $1a3$;};$1a3.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:interleave,sts:[{t:Iterator,a:{Element$Iterator:'Element$interleave'}}],d:['$','interleave']};};function $init$$1a3(){if($1a3.$$===undefined){initTypeProto($1a3,'ceylon.language::anonymous#0.anonymous#1',Basic,$init$Iterator());
(function($1a3$){atr$($1a3$,'$1a4',function(){return this.$1a4_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Iterator,a:{Element$Iterator:'Element$interleave'}}}},$cont:interleave,d:['$','interleave','$at','iterators$7cx7wa']};});atr$($1a3$,'$1a6',function(){return this.$1a6_;},function($1a7){return this.$1a6_=$1a7;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:interleave,pa:1024,d:['$','interleave','$at','which$tupl1u']};});$1a3$.next=function(){var $1a3$=this;var $1a8;asrt$((nn$(($1a8=$1a3$.$1a4.$_get($1a3$.$1a6)))),"Assertion failed: \'exists iter = iterators[which]\' at interleave.ceylon (32:19-32:50)",'32:12-32:51','interleave.ceylon');
var $1a9;if(!is$(($1a9=$1a8.next()),{t:Finished})){if((($1a3$.$1a6=$1a3$.$1a6.successor)>=$1a3$.$1a4.size)){$1a3$.$1a6=(0);}
return $1a9;}
else{return finished();}
};$1a3$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$interleave',{t:Finished}]},ps:[],$cont:interleave,pa:3,d:['$','interleave','$m','next']};};})($1a3.$$.prototype);}
return $1a3;}
$19s$.$init$$1a3=$init$$1a3;$init$$1a3();return $1a3();}();};})($19s.$$.prototype);}
return $19s;}
$init$$19s();return $19s();}();};interleave.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}},ps:[{nm:'iterables',mt:'prm',seq:2,$t:{t:Sequence,a:{Element$Sequence:{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}}}}}],tp:{Element$interleave:{},Absent$interleave:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:interleave'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.interpose)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','interleave']};};
ex$.interleave=interleave;var $19t,$19y;function $1ac(){var language$=new $1ac.$$;language$.$prop$getMajorVersionBinary={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','majorVersionBinary']};}};language$.$prop$getMajorVersionBinary.get=function(){return majorVersionBinary};language$.$prop$getMinorVersionBinary={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','minorVersionBinary']};}};language$.$prop$getMinorVersionBinary.get=function(){return minorVersionBinary};language$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:version')];},d:['$','language','$at','version']};}};language$.$prop$getVersion.get=function(){return version};language$.$prop$getMajorVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersion')];},d:['$','language','$at','majorVersion']};}};language$.$prop$getMajorVersion.get=function(){return majorVersion};language$.$prop$getMinorVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersion')];},d:['$','language','$at','minorVersion']};}};language$.$prop$getMinorVersion.get=function(){return minorVersion};language$.$prop$getReleaseVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:releaseVersion')];},d:['$','language','$at','releaseVersion']};}};language$.$prop$getReleaseVersion.get=function(){return releaseVersion};language$.$prop$getVersionName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:versionName')];},d:['$','language','$at','versionName']};}};language$.$prop$getVersionName.get=function(){return versionName};language$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ac$$N$$N,pa:3,d:['$','language','$at','string']};}};language$.$prop$getString.get=function(){return string};return language$;};$1ac.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','language']};};function $init$language(){if($1ac.$$===undefined){initTypeProto($1ac,'ceylon.language::language',Basic);
(function(language$){atr$(language$,'majorVersionBinary',function(){var language$=this;return 8},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','majorVersionBinary']};});atr$(language$,'minorVersionBinary',function(){var language$=this;return 0},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','minorVersionBinary']};});atr$(language$,'version',function(){var language$=this;return "1.2.1";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:version')];},d:['$','language','$at','version']};});atr$(language$,'majorVersion',function(){var language$=this;return 1},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersion')];},d:['$','language','$at','majorVersion']};});atr$(language$,'minorVersion',function(){var language$=this;return 2},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersion')];},d:['$','language','$at','minorVersion']};});atr$(language$,'releaseVersion',function(){var language$=this;return 1},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:releaseVersion')];},d:['$','language','$at','releaseVersion']};});atr$(language$,'versionName',function(){var language$=this;return "A Series Of Unlikely Explanations";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ac$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:versionName')];},d:['$','language','$at','versionName']};});atr$(language$,'string',function(){var language$=this;return "language";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ac$$N$$N,pa:3,d:['$','language','$at','string']};});})($1ac.$$.prototype);}
return $1ac;}
ex$.$init$language=$init$language;$init$language();var $1ae;function language(){if($1ae===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'language\' before it was set"),'43:0-49:0','language.ceylon');if($1ae===undefined){$1ae=INIT$;$1ae=$init$language()();$1ae.$crtmm$=language.$crtmm$;}
return $1ae;}
ex$.language=language;language.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$language()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language']};};$prop$getLanguage=language;ex$.$prop$getLanguage=$prop$getLanguage;function largest($1af,$1ag,$4dk0a2$){return ($1ah=($1af.compare($1ag).equals(larger())?$1af:null),nn$($1ah)?$1ah:$1ag);};largest.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$largest',ps:[{nm:'x',mt:'prm',$t:'Element$largest'},{nm:'y',mt:'prm',$t:'Element$largest'}],tp:{Element$largest:{sts:[{t:Comparable,a:{Other$Comparable:'Element$largest'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:largest'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction$jsint()(lmp$(ex$,'$'),smallest),$init$OpenFunction$jsint()(lmp$(ex$,'$'),max)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','largest']};};
ex$.largest=largest;var $1ah;function loop($1ai,$em9nfa$){var $1aj=function($1ak){{return function(){var $1al=$1ai;return function(){function $1am($$targs$$){var $1am$=new $1am.$$;$1am$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/},$1am$);return $1am$;};$1am.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:loop,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$loop'}}],d:['$','loop']};};function $init$$1am(){if($1am.$$===undefined){initTypeProto($1am,'ceylon.language::anonymous#0',Basic,$init$Iterable());
(function($1am$){atr$($1am$,'first',function(){var $1am$=this;return $1al;},undefined,function(){return{mod:$CCMM$,$t:'Element$loop',$cont:loop,pa:3,d:['$','loop','$at','first']};});atr$($1am$,'empty',function(){var $1am$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:loop,pa:3,d:['$','loop','$at','empty']};});$1am$.$1an=function($1ao){var $1am$=this;return $1ak($1ao);};$1am$.$1an.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},ps:[{nm:'element',mt:'prm',$t:'Element$loop'}],$cont:loop,d:['$','loop','$m','nextElement$wmoaer']};};$1am$.iterator=function(){var $1am$=this;return function(){function $1ap($$targs$$){var $1ap$=new $1ap.$$;$1ap$.outer$=$1am$;$1ap$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/},$1ap$);$1ap$.$1aq_=$1al;$1ap$.$prop$get$1aq={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},$cont:loop,pa:1024,d:['$','loop','$at','current$92k87c']};}};$1ap$.$prop$get$1aq.get=function(){return $1aq};return $1ap$;};$1ap.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:loop,sts:[{t:Iterator,a:{Element$Iterator:'Element$loop'}}],d:['$','loop']};};function $init$$1ap(){if($1ap.$$===undefined){initTypeProto($1ap,'ceylon.language::anonymous#0.anonymous#1',Basic,$init$Iterator());
(function($1ap$){atr$($1ap$,'$1aq',function(){return this.$1aq_;},function($1ar){return this.$1aq_=$1ar;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},$cont:loop,pa:1024,d:['$','loop','$at','current$92k87c']};});$1ap$.next=function(){var $1ap$=this;var $1as;if(!is$(($1as=$1ap$.$1aq),{t:Finished})){$1ap$.$1aq=$1am$.$1an($1as);return $1as;}
else{return finished();}
};$1ap$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},ps:[],$cont:loop,pa:3,d:['$','loop','$m','next']};};})($1ap.$$.prototype);}
return $1ap;}
$1am$.$init$$1ap=$init$$1ap;$init$$1ap();return $1ap();}();};})($1am.$$.prototype);}
return $1am;}
$init$$1am();return $1am();}();}();}};$1aj.$crtmm$=function(){return{ps:[{nm:'next',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:'u',l:[$em9nfa$.Element$loop,{t:Finished}]},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:{t:Empty},Element$Tuple:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/,First$Tuple:$em9nfa$.Element$loop/*ORALE!Element inv pero First var*/}}}},$rt:{t:'u',l:[$em9nfa$.Element$loop,{t:Finished}]},ps:[{nm:'element',mt:'prm',$t:$em9nfa$.Element$loop}],an:function(){return[doc$($CCMM$,'$:loop:$m:next$nr9e8n')];}}],$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/}}};};return JsCallable(0,$1aj);};loop.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Element$Iterable:'Element$loop',Absent$Iterable:{t:Nothing}}},Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:{t:'u',l:['Element$loop',{t:Finished}]},Arguments$Callable:{t:'T',l:['Element$loop']}}}]}}},ps:[{nm:'first',mt:'prm',$t:'Element$loop'}],tp:{Element$loop:{}},pa:1,an:function(){return[doc$($CCMM$,'$:loop'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','loop']};};
ex$.loop=loop;function max($1av,$vlujgu$){var $1aw=$1av.iterator();var $1ax;if(!is$(($1ax=$1aw.next()),{t:Finished})){var $1ay=$1ax;var $1az;while(!is$(($1az=$1aw.next()),{t:Finished})){if($1az.compare($1ay).equals(larger())){$1ay=$1az;}
}
return $1ay;}
else{var $1b0;asrt$((is$(($1b0=null),$vlujgu$.Absent$max,$vlujgu$)),"iterable must be empty: \'is Absent null\' at max.ceylon (37:15-37:30)",'36:8-37:31','max.ceylon');
return null;}
}
ex$.max=max;max.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$max','Value$max']},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$max',Element$Iterable:'Value$max'}}}],tp:{Value$max:{sts:[{t:Comparable,a:{Other$Comparable:'Value$max'}}]},Absent$max:{sts:[{t:Null}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','max']};};function min($1b1,$vluja8$){var $1b2=$1b1.iterator();var $1b3;if(!is$(($1b3=$1b2.next()),{t:Finished})){var $1b4=$1b3;var $1b5;while(!is$(($1b5=$1b2.next()),{t:Finished})){if($1b5.compare($1b4).equals(smaller())){$1b4=$1b5;}
}
return $1b4;}
else{var $1b6;asrt$((is$(($1b6=null),$vluja8$.Absent$min,$vluja8$)),"iterable must be empty: \'is Absent null\' at min.ceylon (33:15-33:30)",'32:8-33:31','min.ceylon');
return null;}
}
ex$.min=min;min.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$min','Value$min']},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$min',Element$Iterable:'Value$min'}}}],tp:{Value$min:{sts:[{t:Comparable,a:{Other$Comparable:'Value$min'}}]},Absent$min:{sts:[{t:Null}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','min']};};ex$.$mod$ans$=function(){return[doc$($CCMM$,'','$mod-anns'),by(["Gavin King","Tom Bentley","Tako Schotanus","Stephane Epardaud","Enrique Zamudio"].$sa$({t:$_String})),license("http://www.apache.org/licenses/LICENSE-2.0.html")];};ex$.$mod$imps=function(){return{'java.base/7':function(){return[$_native(["jvm"].$sa$({t:$_String}))];}};};function not($1b7,$vluie7$){var $1b8=function($1b9){{return !$1b7($1b9);}};$1b8.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:$vluie7$.Value$not}],$t:{t:$_Boolean}};};return JsCallable(0,$1b8);};not.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$not']}}},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$not']}}}}],tp:{Value$not:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:not'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','not']};};
ex$.not=not;function nothing(){asrt$((false),"nothing may not be evaluated: \'false\' at nothing.ceylon (12:11-12:17)",'11:4-12:18','nothing.ceylon');
}
nothing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Nothing},pa:1,an:function(){return[doc$($CCMM$,'$:nothing'),$_throws("AssertionError","when evaluated"),tagged("Basic types")];},d:['$','nothing']};}
ex$.nothing=nothing;var $prop$getNothing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Nothing},pa:1,an:function(){return[doc$($CCMM$,'$:nothing'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"when evaluated"),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','nothing']};}};ex$.$prop$getNothing=$prop$getNothing;$prop$getNothing.get=nothing;nothing.$crtmm$=$prop$getNothing.$crtmm$;function $1ba(){var operatingSystem$=new $1ba.$$;operatingSystem$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ba$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:version'),$_native()];},d:['$','operatingSystem','$at','version']};}};operatingSystem$.$prop$getVersion.get=function(){return version};return operatingSystem$;};$1ba.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','operatingSystem']};};function $init$operatingSystem(){if($1ba.$$===undefined){initTypeProto($1ba,'ceylon.language::operatingSystem',Basic);
(function(operatingSystem$){atr$(operatingSystem$,'newline',function(){var operatingSystem$=this;var $1bc;asrt$((nn$(($1bc=$_process().propertyValue("line.separator")))),"Assertion failed: \'exists result = process.propertyValue(\"line.separator\")\' at operatingSystem.ceylon (71:15-71:71)",'71:8-71:72','operatingSystem.ceylon');
return $1bc;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ba,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','operatingSystem','$at','newline']};});atr$(operatingSystem$,'name',function(){var operatingSystem$=this;var $1bd=($1be=$_process().propertyValue("os.name"),nn$($1be)?$1be.lowercased:null);var $1be;var $1bf;if(nn$(($1bf=$1bd))){if($1bf.contains("win")){return "windows";}
else{if($1bf.contains("mac")){return "mac";}
else{if($1bf.contains("linux")){return "linux";}
else{if((((($1bf.contains("nix")||$1bf.contains("freebsd"))||$1bf.contains("openbsd"))||$1bf.contains("netbsd"))||$1bf.contains("sunos"))){return "unix";}
}
}
}
}
return "other";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ba$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:name'),$_native()];},d:['$','operatingSystem','$at','name']};});atr$(operatingSystem$,'version',function(){var operatingSystem$=this;return "Unknown";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ba$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:version'),$_native()];},d:['$','operatingSystem','$at','version']};});atr$(operatingSystem$,'fileSeparator',function(){var operatingSystem$=this;var $1bg;asrt$((nn$(($1bg=$_process().propertyValue("file.separator")))),"Assertion failed: \'exists result = process.propertyValue(\"file.separator\")\' at operatingSystem.ceylon (44:15-44:71)",'44:8-44:72','operatingSystem.ceylon');
return $1bg;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ba$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:fileSeparator'),$_native()];},d:['$','operatingSystem','$at','fileSeparator']};});atr$(operatingSystem$,'pathSeparator',function(){var operatingSystem$=this;var $1bh;asrt$((nn$(($1bh=$_process().propertyValue("path.separator")))),"Assertion failed: \'exists result = process.propertyValue(\"path.separator\")\' at operatingSystem.ceylon (51:15-51:71)",'51:8-51:72','operatingSystem.ceylon');
return $1bh;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ba$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:pathSeparator'),$_native()];},d:['$','operatingSystem','$at','pathSeparator']};});})($1ba.$$.prototype);}
return $1ba;}
ex$.$init$operatingSystem=$init$operatingSystem;$init$operatingSystem();var $1bi;function operatingSystem(){if($1bi===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'operatingSystem\' before it was set"),'68:0-75:0','operatingSystem.ceylon');if($1bi===undefined){$1bi=INIT$;$1bi=$init$operatingSystem()();$1bi.$crtmm$=operatingSystem.$crtmm$;}
return $1bi;}
ex$.operatingSystem=operatingSystem;operatingSystem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$operatingSystem()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','operatingSystem']};};$prop$getOperatingSystem=operatingSystem;ex$.$prop$getOperatingSystem=$prop$getOperatingSystem;function or($1bj,$1bk,$h247zf$){var $1bl=function($1bm){{return ($1bj($1bm)||$1bk($1bm));}};$1bl.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:$h247zf$.Value$or}],$t:{t:$_Boolean}};};return JsCallable(0,$1bl);};or.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$or']}}},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$or']}}}},{nm:'q',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$or']}}}}],tp:{Value$or:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:or'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','or']};};
ex$.or=or;ex$.$pkg$ans$ceylon$language=function(){return[doc$($CCMM$,'ceylon.language','$pkg-anns'),by(["Gavin King","Tom Bentley","Tako Schotanus","Stephane Epardaud","Enrique Zamudio"].$sa$({t:$_String})),shared()];};function mapPairs($1bn,$1bo,$1bp,$l4tc0f$){function $1bq($$targs$$){var $1bq$=new $1bq.$$;$1bq$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:mut$([$l4tc0f$.FirstAbsent$mapPairs,$l4tc0f$.SecondAbsent$mapPairs]),Element$Iterable:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/},$1bq$);return $1bq$;};$1bq.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:mapPairs,sts:[{t:Iterable,a:{Absent$Iterable:{t:'u',l:['FirstAbsent$mapPairs','SecondAbsent$mapPairs']},Element$Iterable:'Result$mapPairs'}}],d:['$','mapPairs','$o','iterable$x16jqt']};};function $init$$1bq(){if($1bq.$$===undefined){initTypeProto($1bq,'ceylon.language::iterable',Basic,$init$Iterable());
(function($1bq$){$1bq$.iterator=function(){var $1bq$=this;function $1bs($$targs$$){var $1bs$=new $1bs.$$;$1bs$.outer$=$1bq$;$1bs$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/},$1bs$);$1bs$.$1bu_=$1bo.iterator();$1bs$.$prop$get$1bu={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'First$mapPairs'}},$cont:$1bs,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','firstIter$ruc02k']};}};$1bs$.$prop$get$1bu.get=function(){return $1bu};$1bs$.$1bv_=$1bp.iterator();$1bs$.$prop$get$1bv={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Second$mapPairs'}},$cont:$1bs,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','secondIter$6wrzi8']};}};$1bs$.$prop$get$1bv.get=function(){return $1bv};return $1bs$;};$1bs.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$1bq$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Result$mapPairs'}}],d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz']};};function $init$$1bs(){if($1bs.$$===undefined){initTypeProto($1bs,'ceylon.language::iterable.iterator',Basic,$init$Iterator());
(function($1bs$){atr$($1bs$,'$1bu',function(){return this.$1bu_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'First$mapPairs'}},$cont:$1bs,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','firstIter$ruc02k']};});atr$($1bs$,'$1bv',function(){return this.$1bv_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Second$mapPairs'}},$cont:$1bs,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','secondIter$6wrzi8']};});$1bs$.next=function(){var $1bs$=this;var $1bw,$1bx;if(!is$(($1bw=$1bs$.$1bu.next()),{t:Finished})&&!is$(($1bx=$1bs$.$1bv.next()),{t:Finished})){return $1bn($1bw,$1bx);}
else{return finished();}
};$1bs$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$mapPairs',{t:Finished}]},ps:[],$cont:$1bs,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$m','next']};};atr$($1bs$,'string',function(){var $1bs$=this;return $1bq$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1bs,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','string']};});})($1bs.$$.prototype);}
return $1bs;}
$1bq$.$init$$1bs=$init$$1bs;$init$$1bs();var $1by;function $1bt(){if($1by===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'33:12-47:12','pairs.ceylon');if($1by===undefined){$1by=INIT$;$1by=$init$$1bs()({Element$Iterator:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/});$1by.$crtmm$=$1bt.$crtmm$;}
return $1by;}
$1bt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$1bs()},$cont:$1bq$.iterator,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypy']};};$prop$get$1bs=$1bt;$1bt();return $1bt();};$1bq$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Result$mapPairs'}},ps:[],$cont:$1bq,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator']};};})($1bq.$$.prototype);}
return $1bq;}
$init$$1bq();var $1bz;function $1br(){if($1bz===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'30:4-50:4','pairs.ceylon');if($1bz===undefined){$1bz=INIT$;$1bz=$init$$1bq()({Absent$Iterable:mut$([$l4tc0f$.FirstAbsent$mapPairs,$l4tc0f$.SecondAbsent$mapPairs]),Element$Iterable:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/});$1bz.$crtmm$=$1br.$crtmm$;}
return $1bz;}
$1br.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$1bq()},$cont:mapPairs,d:['$','mapPairs','$o','iterable$x16jqs']};};$prop$get$1bq=$1br;$1br();return $1br();}
ex$.mapPairs=mapPairs;mapPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['FirstAbsent$mapPairs','SecondAbsent$mapPairs']},Element$Iterable:'Result$mapPairs'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$mapPairs',Arguments$Callable:{t:'T',l:['First$mapPairs','Second$mapPairs']}}},$rt:'Result$mapPairs',ps:[{nm:'first',mt:'prm',$t:'First$mapPairs'},{nm:'second',mt:'prm',$t:'Second$mapPairs'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'FirstAbsent$mapPairs',Element$Iterable:'First$mapPairs'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'SecondAbsent$mapPairs',Element$Iterable:'Second$mapPairs'}}}],tp:{Result$mapPairs:{},First$mapPairs:{},Second$mapPairs:{},FirstAbsent$mapPairs:{sts:[{t:Null}]},SecondAbsent$mapPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:mapPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','mapPairs']};};function findPair($1c0,$1c1,$1c2,$76byhx$){var $1c3=$1c1.iterator();var $1c4=$1c2.iterator();var $1c5,$1c6;while(!is$(($1c5=$1c3.next()),{t:Finished})&&!is$(($1c6=$1c4.next()),{t:Finished})){if($1c0($1c5,$1c6)){return tpl$([$1c5,$1c6]);}
}
return null;}
ex$.findPair=findPair;findPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'T',l:['First$findPair','Second$findPair']}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$findPair','Second$findPair']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$findPair'},{nm:'second',mt:'prm',$t:'Second$findPair'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$findPair'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$findPair'}}}],tp:{First$findPair:{},Second$findPair:{}},pa:1,an:function(){return[doc$($CCMM$,'$:findPair'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','findPair']};};function everyPair($1c7,$1c8,$1c9,$4z176r$){var $1ca=$1c8.iterator();var $1cb=$1c9.iterator();var $1cc,$1cd;while(!is$(($1cc=$1ca.next()),{t:Finished})&&!is$(($1cd=$1cb.next()),{t:Finished})){if(!$1c7($1cc,$1cd)){return false;}
}
return true;}
ex$.everyPair=everyPair;everyPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$everyPair','Second$everyPair']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$everyPair'},{nm:'second',mt:'prm',$t:'Second$everyPair'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$everyPair'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$everyPair'}}}],tp:{First$everyPair:{},Second$everyPair:{}},pa:1,an:function(){return[doc$($CCMM$,'$:everyPair'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),corresponding),$init$OpenFunction$jsint()(lmp$(ex$,'$'),anyPair)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','everyPair']};};function anyPair($1ce,$1cf,$1cg,$8rk4uk$){var $1ch=$1cf.iterator();var $1ci=$1cg.iterator();var $1cj,$1ck;while(!is$(($1cj=$1ch.next()),{t:Finished})&&!is$(($1ck=$1ci.next()),{t:Finished})){if($1ce($1cj,$1ck)){return true;}
}
return false;}
ex$.anyPair=anyPair;anyPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$anyPair','Second$anyPair']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$anyPair'},{nm:'second',mt:'prm',$t:'Second$anyPair'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$anyPair'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$anyPair'}}}],tp:{First$anyPair:{},Second$anyPair:{}},pa:1,an:function(){return[doc$($CCMM$,'$:anyPair'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),everyPair)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','anyPair']};};function foldPairs($1cl,$1cm,$1cn,$1co,$avopk6$){var $1cp=$1cn.iterator();var $1cq=$1co.iterator();var $1cr=$1cl;var $1cs,$1ct;while(!is$(($1cs=$1cp.next()),{t:Finished})&&!is$(($1ct=$1cq.next()),{t:Finished})){$1cr=$1cm($1cr,$1cs,$1ct);}
return $1cr;}
ex$.foldPairs=foldPairs;foldPairs.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$foldPairs',ps:[{nm:'initial',mt:'prm',$t:'Result$foldPairs'},{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$foldPairs',Arguments$Callable:{t:'T',l:['Result$foldPairs','First$foldPairs','Second$foldPairs']}}},$rt:'Result$foldPairs',ps:[{nm:'partial',mt:'prm',$t:'Result$foldPairs'},{nm:'first',mt:'prm',$t:'First$foldPairs'},{nm:'second',mt:'prm',$t:'Second$foldPairs'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$foldPairs'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$foldPairs'}}}],tp:{Result$foldPairs:{},First$foldPairs:{},Second$foldPairs:{}},pa:1,an:function(){return[doc$($CCMM$,'$:foldPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','foldPairs']};};function parseBoolean($1cu){var $1cv=$1cu;if("true".equals($1cv)) {return true;}
else if("false".equals($1cv)) {return false;}
else{return null;}}
ex$.parseBoolean=parseBoolean;parseBoolean.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_Boolean}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:parseBoolean'),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','parseBoolean']};};function parseFloat($1cw){var $1cx;var $1cy;if($1cw.startsWith("-")){$1cx=(-1);$1cy=$1cw.spanFrom(1);}
else{if($1cw.startsWith("+")){$1cx=(+1);$1cy=$1cw.spanFrom(1);}
else{$1cx=(+1);$1cy=$1cw;}
}
var $1cz;var $1d0;var $1d1;var $1d2;if(nn$(($1d2=$1cy.firstOccurrence(Character(46,true))))){$1cz=$1cy.spanTo($1d2.minus(1));var $1d3=$1cy.spanFrom($1d2.plus(1));var $1d4;if(nn$(($1d4=$1d3.firstIndexWhere($JsCallable(function($O$){return $O$.letter;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))))){$1d0=$1d3.spanTo($1d4.minus(1));$1d1=$1d3.spanFrom($1d4);}
else{$1d0=$1d3;$1d1=null;}
}
else{var $1d5;if(nn$(($1d5=$1cy.firstIndexWhere($JsCallable(function($O$){return $O$.letter;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))))){$1cz=$1cy.spanTo($1d5.minus(1));$1d1=$1cy.spanFrom($1d5);}
else{$1cz=$1cy;$1d1=null;}
$1d0="0";}
if((!$1cz.$_every($JsCallable(function($O$){return $O$.digit;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))||!$1d0.$_every($JsCallable(function($O$){return $O$.digit;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])})))){return null;}
var $1d6=$1cz.measure(0,maximumIntegerExponent());var $1d7=$1d0.measure(0,maximumIntegerExponent().minus($1d6.size));var $1d8=$1d6.plus($1d7);var $1d9=($1da=($1d7.empty?$1d6.size.minus($1cz.size):null),nn$($1da)?$1da:$1d7.size);var $1da;var $1db;var $1dc;if(nn$(($1dc=$1d1))){var $1dd;if(nn$(($1dd=parseFloatExponent($1dc)))){$1db=$1dd.minus($1d9);}
else{return null;}
}
else{$1db=(-$1d9);}
var $1de;if(nn$(($1de=parseInteger($1d8)))){var $1df=($1dg=((($1de).valueOf()==(0).valueOf())?(0).times($1cx.$_float):null),nn$($1dg)?$1dg:$1cx.times($1de).nearestFloat);var $1dg;var $1dh=$1db.magnitude;if((($1dh).valueOf()==(0).valueOf())){return $1df;}
else{if(($1dh<=maximumIntegerExponent())){var $1di=(10).power($1dh);return ($1dj=(($1db<0)?$1df.divided($1di):null),nn$($1dj)?$1dj:$1df.times($1di));var $1dj;}
else{return $1df.times(Float(10.0).power($1db));}
}
}
return null;}
ex$.parseFloat=parseFloat;parseFloat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Float}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:parseFloat'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatFloat),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseInteger)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers","Basic types"].$sa$({t:$_String}))];},d:['$','parseFloat']};};var $1dk;function $valinit$$1dk(){if($1dk===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'maximumIntegerExponent\' before it was set"),'125:0-130:15','parseFloat.ceylon');if($1dk===undefined){$1dk=INIT$;$1dk=smallest(runtime().maxIntegerValue.string.size,runtime().minIntegerValue.string.size.minus(1),{Element$smallest:{t:Integer}}).minus(1)};return $1dk;};function maximumIntegerExponent(){return $valinit$$1dk();}
var $prop$getMaximumIntegerExponent={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:maximumIntegerExponent')];},d:['$','maximumIntegerExponent']};}};ex$.$prop$getMaximumIntegerExponent=$prop$getMaximumIntegerExponent;$prop$getMaximumIntegerExponent.get=maximumIntegerExponent;function parseFloatExponent($1dl){var $1dm=$1dl;if("k".equals($1dm)) {return 3;}
else if("M".equals($1dm)) {return 6;}
else if("G".equals($1dm)) {return 9;}
else if("T".equals($1dm)) {return 12;}
else if("P".equals($1dm)) {return 15;}
else if("m".equals($1dm)) {return (-3);}
else if("u".equals($1dm)) {return (-6);}
else if("n".equals($1dm)) {return (-9);}
else if("p".equals($1dm)) {return (-12);}
else if("f".equals($1dm)) {return (-15);}
else{if(($1dm.lowercased.startsWith("e")&&$1dm.rest.$_every(JsCallable(0,digitOrSign())))){return parseInteger($1dm.rest);}
else{return null;}
}};parseFloatExponent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],d:['$','parseFloatExponent']};};var $1dn;function $valinit$$1dn(){if($1dn===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'digitOrSign\' before it was set"),'175:0-176:44','parseFloat.ceylon');if($1dn===undefined){$1dn=INIT$;$1dn=or($JsCallable(function($O$){return $O$.digit;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}),$JsCallable(($1do="+-",JsCallable($1do,$1do.contains)),[{nm:'element',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),{Value$or:{t:Character}})};return $1dn;};function digitOrSign(){return $valinit$$1dn();}
var $prop$getDigitOrSign={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},d:['$','digitOrSign']};}};ex$.$prop$getDigitOrSign=$prop$getDigitOrSign;$prop$getDigitOrSign.get=digitOrSign;var $1do;var $1dp;function $valinit$$1dp(){if($1dp===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'minRadix\' before it was set"),'1:0-1:20','parseInteger.ceylon');if($1dp===undefined){$1dp=INIT$;$1dp=(2)};return $1dp;};function minRadix(){return $valinit$$1dp();}
var $prop$getMinRadix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','minRadix']};}};ex$.$prop$getMinRadix=$prop$getMinRadix;$prop$getMinRadix.get=minRadix;var $1dq;function $valinit$$1dq(){if($1dq===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'maxRadix\' before it was set"),'2:0-2:21','parseInteger.ceylon');if($1dq===undefined){$1dq=INIT$;$1dq=(36)};return $1dq;};function maxRadix(){return $valinit$$1dq();}
var $prop$getMaxRadix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','maxRadix']};}};ex$.$prop$getMaxRadix=$prop$getMaxRadix;$prop$getMaxRadix.get=maxRadix;function parseInteger($1dr,$1ds){if($1ds===undefined){$1ds=(10);}
asrt$((($1dt=$1ds,$1dt.compare(minRadix())!==smaller()&&$1dt.compare(maxRadix())!==larger())),"Assertion failed: \'minRadix <= radix <= maxRadix\' at parseInteger.ceylon (37:11-37:41)",'37:4-37:42','parseInteger.ceylon');
var $1du;var $1dv=runtime().minIntegerValue.divided($1ds);var $1dw;var $1dx;if(nn$(($1dx=$1dr.first))){if($1dx.equals(Character(45,true))){$1dw=true;$1du=(1);}
else{if($1dx.equals(Character(43,true))){$1dw=false;$1du=(1);}
else{$1dw=false;$1du=(0);}
}
}
else{return null;}
var $1dy=($1dz=($1dw?runtime().minIntegerValue:null),nn$($1dz)?$1dz:(-runtime().maxIntegerValue));var $1dz;var $1e0=$1dr.size;var $1e1=(0);var $1e2=(0);var $1e3=$1du;while(($1e3<$1e0)){var $1e4;asrt$((nn$(($1e4=$1dr.getFromFirst($1e3)))),"Assertion failed: \'exists ch = string.getFromFirst(index)\' at parseInteger.ceylon (71:15-71:54)",'71:8-71:55','parseInteger.ceylon');
if((((($1e3.plus(1)).valueOf()==($1e0).valueOf())&&(($1ds).valueOf()==(10).valueOf()))&&"kMGTP".contains($1e4))){var $1e5;if(nn$(($1e5=parseIntegerExponent($1e4)))){var $1e6=(10).power($1e5);if(($1dy.divided($1e6)<$1e1)){($1e1=$1e1.times($1e6));break;}
else{return null;}
}
else{return null;}
}
else{var $1e7;if(nn$(($1e7=parseDigit($1e4,$1ds)))){if(($1e1<$1dv)){return null;}
($1e1=$1e1.times($1ds));if(($1e1<$1dy.plus($1e7))){return null;}
($1e1=$1e1.minus($1e7));}
else{return null;}
}
($1e8=$1e3,$1e3=$1e8.successor,$1e8);var $1e8;($1e9=$1e2,$1e2=$1e9.successor,$1e9);var $1e9;}
if((($1e2).valueOf()==(0).valueOf())){return null;}
else{return ($1ea=($1dw?$1e1:null),nn$($1ea)?$1ea:(-$1e1));var $1ea;}
}
ex$.parseInteger=parseInteger;parseInteger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}},{nm:'radix',mt:'prm',def:1,$t:{t:Integer}}],pa:1,an:function(){return[doc$($CCMM$,'$:parseInteger'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if [[radix]] is not between [[minRadix]] and \n[[maxRadix]]"),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatInteger),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseFloat)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers","Basic types"].$sa$({t:$_String}))];},d:['$','parseInteger']};};function parseIntegerExponent($1eb){var $1ec=$1eb;if($1ec.equals(Character(80,true))) {return 15;}
else if($1ec.equals(Character(84,true))) {return 12;}
else if($1ec.equals(Character(71,true))) {return 9;}
else if($1ec.equals(Character(77,true))) {return 6;}
else if($1ec.equals(Character(107,true))) {return 3;}
else{return null;}};parseIntegerExponent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'char',mt:'prm',$t:{t:Character}}],d:['$','parseIntegerExponent']};};var $1ed;function $valinit$$1ed(){if($1ed===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'aIntLower\' before it was set"),'145:0-145:31','parseInteger.ceylon');if($1ed===undefined){$1ed=INIT$;$1ed=Character(97,true).integer};return $1ed;};function aIntLower(){return $valinit$$1ed();}
var $prop$getAIntLower={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','aIntLower']};}};ex$.$prop$getAIntLower=$prop$getAIntLower;$prop$getAIntLower.get=aIntLower;var $1ee;function $valinit$$1ee(){if($1ee===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'aIntUpper\' before it was set"),'146:0-146:31','parseInteger.ceylon');if($1ee===undefined){$1ee=INIT$;$1ee=Character(65,true).integer};return $1ee;};function aIntUpper(){return $valinit$$1ee();}
var $prop$getAIntUpper={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','aIntUpper']};}};ex$.$prop$getAIntUpper=$prop$getAIntUpper;$prop$getAIntUpper.get=aIntUpper;var $1ef;function $valinit$$1ef(){if($1ef===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'zeroInt\' before it was set"),'147:0-147:29','parseInteger.ceylon');if($1ef===undefined){$1ef=INIT$;$1ef=Character(48,true).integer};return $1ef;};function zeroInt(){return $valinit$$1ef();}
var $prop$getZeroInt={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','zeroInt']};}};ex$.$prop$getZeroInt=$prop$getZeroInt;$prop$getZeroInt.get=zeroInt;function parseDigit($1eg,$1eh){var $1ei;var $1ej=$1eg.integer;if(($1ek=$1ej.minus(zeroInt()),$1ek.compare((0))!==smaller()&&$1ek.compare((10))===smaller())){$1ei=$1ej.minus(zeroInt());}
else{if(($1el=$1ej.minus(aIntLower()),$1el.compare((0))!==smaller()&&$1el.compare((26))===smaller())){$1ei=$1ej.minus(aIntLower()).plus(10);}
else{if(($1em=$1ej.minus(aIntUpper()),$1em.compare((0))!==smaller()&&$1em.compare((26))===smaller())){$1ei=$1ej.minus(aIntUpper()).plus(10);}
else{return null;}
}
}
return (($1ei<$1eh)?$1ei:null);};parseDigit.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'digit',mt:'prm',$t:{t:Character}},{nm:'radix',mt:'prm',$t:{t:Integer}}],d:['$','parseDigit']};};function plus($1en,$1eo,$emc5ak$){return $1en.plus($1eo);};plus.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$plus',ps:[{nm:'x',mt:'prm',$t:'Value$plus'},{nm:'y',mt:'prm',$t:'Value$plus'}],tp:{Value$plus:{sts:[{t:Summable,a:{Other$Summable:'Value$plus'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:plus'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),times),$init$OpenFunction$jsint()(lmp$(ex$,'$'),sum)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','plus']};};
ex$.plus=plus;function print($1ep){return $_process().writeLine(stringify($1ep));};print.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'val',mt:'prm',$t:{t:Anything}}],pa:1,an:function(){return[doc$($CCMM$,'$:print'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_process().writeLine)].$sa$({t:FunctionDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Environment"].$sa$({t:$_String}))];},d:['$','print']};};
ex$.print=print;function printAll($1eq,$1er){if($1er===undefined){$1er=", ";}
var $1es=true;$1eq.each($JsCallable((function($1et){if($1es){$1es=false;}
else{$_process().write($1er);}
$_process().write(stringify($1et));}),[{nm:'element',mt:'prm',$t:{t:Anything}}],{Return$Callable:{t:Anything},Arguments$Callable:mtt$([{t:Anything}])}));$_process().write(operatingSystem().newline);}
ex$.printAll=printAll;printAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Anything}}}},{nm:'separator',mt:'prm',def:1,$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:printAll'),by(["Gavin"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_process().write)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Environment"].$sa$({t:$_String}))];},d:['$','printAll']};};function stringify($1eu){return ($1ev=($1ew=$1eu,nn$($1ew)?$1ew.string:null),nn$($1ev)?$1ev:"<null>");};stringify.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'val',mt:'prm',$t:{t:Anything}}],d:['$','stringify']};};var $1ev,$1ew;function printStackTrace$defs$write($1ex,$1ey){return function($1ez){return $_process().writeError($1ez);};};function printStackTrace(exc, _write) {
if (_write===undefined)_write=$_process().writeError;
var _c = className(exc);
if (exc.message.size > 0) {
_c += ' "' + exc.message + '"';
}
_write(_c);_write(operatingSystem().newline);
for (var i=0; i<exc.stack_trace.length; i++) {
var f = exc.stack_trace[i];
if (f == "CIRCULAR") {
_write("    (Infinite loop detected)");
_write(operatingSystem().newline);
return;
}
if (typeof(f)==='string') {
_write(f);
_write(operatingSystem().newline);
f=null;
}
var mm = getrtmm$$(f);
if (mm && mm.d) {
var _src = '';
if (i==0) {
if (exc.$loc && exc.$file) _src = ' (' + exc.$file + " " + exc.$loc + ')';
}
var pkn=mm.d[0];
if (pkn==='$')pkn='ceylon.language';
_write("    at " + pkn + "::" + mm.d[mm.d.length-1] + _src);_write(operatingSystem().newline);
}
}
}
printStackTrace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'exception',mt:'prm',$t:{t:Throwable}},{nm:'write',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[{t:$_String}]}}},$rt:{t:Anything},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],an:function(){return[doc$($CCMM$,'$:printStackTrace:$m:write$yuvcdj')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:printStackTrace'),tagged(["Environment"].$sa$({t:$_String})),$_native()];},d:['$','printStackTrace']};};
ex$.printStackTrace=printStackTrace;function $1f0(){var process$=new $1f0.$$;process$.$prop$getArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$at:arguments'),$_native()];},d:['$','process','$at','arguments']};}};return process$;};$1f0.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','process']};};function $init$$_process(){if($1f0.$$===undefined){initTypeProto($1f0,'ceylon.language::process',Basic);
(function(process$){atr$(process$,'$_arguments',function(){if (this.argv!==undefined)return this.argv;
this.argv = empty();
this.namedArgs = {};
if ((typeof process !== "undefined") && (process.argv !== undefined)) {
// parse command line arguments
if (process.argv.length > 2) {
// Ignore the first two arguments (see https://github.com/ceylon/ceylon.language/issues/503)
var args = process.argv.slice(2);
for (var i=0; i<args.length; ++i) {
var arg = args[i];
if (arg.charAt(0) == '-') {
var pos = 1;
if (arg.charAt(1) == '-') { pos = 2; }
arg = arg.substr(pos);
pos = arg.indexOf('=');
if (pos >= 0) {
this.namedArgs[arg.substr(0, pos)] = arg.substr(pos+1);
} else {
var value = args[i+1];
if ((value !== undefined) && (value.charAt(0) != '-')) {
this.namedArgs[arg] = value;
++i;
} else {
this.namedArgs[arg] = null;
}
}
}
args[i] = $_String(args[i]);
}
this.argv = args.$sa$({t:$_String});
}
} else if (typeof window !== "undefined") {
// parse URL parameters
var parts = window.location.search.substr(1).replace('+', ' ').split('&');
if ((parts.length > 1) || ((parts.length > 0) && (parts[0].length > 0))) {
var argStrings = new Array(parts.length);
//can't do "for (i in parts)" anymore because of the added stuff to arrays
var i;
for (i=0; i<parts.length; i++) { argStrings[i] = parts[i]; }
this.argv = parts.$sa$({t:$_String});
for (i=0; i < parts.length; i++) {
var part = parts[i];
var pos = part.indexOf('=');
if (pos >= 0) {
var value = decodeURIComponent(part.substr(pos+1));
this.namedArgs[part.substr(0, pos)] = value;
} else {
this.namedArgs[part] = null;
}
}
}
}
return this.argv;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$at:arguments'),$_native()];},d:['$','process','$at','arguments']};});process$.namedArgumentPresent=function(name) {
if (this.namedArgs===undefined)this.$_arguments;
return (name in this.namedArgs);
}
process$.namedArgumentPresent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:namedArgumentPresent'),$_native()];},d:['$','process','$m','namedArgumentPresent']};};process$.namedArgumentValue=function(name) {
if (this.namedArgs===undefined)this.$_arguments;
return this.namedArgs[name]||null;
}
process$.namedArgumentValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:namedArgumentValue'),$_native()];},d:['$','process','$m','namedArgumentValue']};};process$.propertyValue=function(name) {
return properties[name]||null;
}
process$.propertyValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:propertyValue'),$_native()];},d:['$','process','$m','propertyValue']};};process$.environmentVariableValue=function(name) {
if ((typeof process !== "undefined") && (process.env !== undefined)) {
return process.env[name];
}
return null;
}
process$.environmentVariableValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:environmentVariableValue'),$_native()];},d:['$','process','$m','environmentVariableValue']};};process$.write=(function() {
if ((typeof process !== "undefined") && (process.stdout !== undefined)) {
return function(string) {
if(string)process.stdout.write(string.valueOf());
}
} else if ((typeof console !== "undefined") && (console.log !== undefined)) {
return function(line) {
if (line==operatingSystem().newline) {
console.log(ex$.p$w$stdout||'');
ex$.p$w$stdout='';
} else {
ex$.p$w$stdout=(ex$.p$w$stdout||'')+line;
}
}
}
return function(){};
})()
process$.write.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:write'),$_native()];},d:['$','process','$m','write']};};process$.writeLine$defs$line=function($1f2){return "";};process$.writeLine=function($1f2){var process$=this;if($1f2===undefined){$1f2="";}
process$.write($1f2);process$.write(operatingSystem().newline);};process$.writeLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'line',mt:'prm',def:1,$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeLine'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),print)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','process','$m','writeLine']};};process$.flush=function(){}
process$.flush.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:flush'),$_native()];},d:['$','process','$m','flush']};};process$.writeError=(function(){
if ((typeof process !== "undefined") && (process.stderr !== undefined)) {
return function(string) {
if(string)process.stderr.write(string.valueOf());
}
} else if ((typeof console !== "undefined") && (console.error !== undefined)) {
return function(line) {
console.error(line?line.valueOf():'');
}
}
return function(x){this.write(x);}
})()
process$.writeError.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeError'),$_native()];},d:['$','process','$m','writeError']};};process$.writeErrorLine$defs$line=function($1f3){return "";};process$.writeErrorLine=function($1f3){var process$=this;if($1f3===undefined){$1f3="";}
process$.writeError($1f3);process$.writeError(operatingSystem().newline);};process$.writeErrorLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'line',mt:'prm',def:1,$t:{t:$_String}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeErrorLine')];},d:['$','process','$m','writeErrorLine']};};process$.flushError=function(){}
process$.flushError.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:flushError'),$_native()];},d:['$','process','$m','flushError']};};process$.readLine=function() {
this.writeLine("process.readLine not supported on this platform.");
return "";
}
process$.readLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:readLine'),$_native()];},d:['$','process','$m','readLine']};};process$.exit=(function(){
if ((typeof process !== "undefined") && (process.exit !== undefined)) {
return function(code) {
process.exit(code);
}
}
return function() {}
})()
process$.exit.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Nothing},ps:[{nm:'code',mt:'prm',$t:{t:Integer}}],$cont:$1f0,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:exit'),$_native()];},d:['$','process','$m','exit']};};atr$(process$,'string',function(){var process$=this;return "process";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1f0,pa:3,d:['$','process','$at','string']};});})($1f0.$$.prototype);}
return $1f0;}
ex$.$init$$_process=$init$$_process;$init$$_process();var $1f4;function $_process(){if($1f4===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'process\' before it was set"),'1:0-74:0','process.ceylon');if($1f4===undefined){$1f4=INIT$;$1f4=$init$$_process()();$1f4.$crtmm$=$_process.$crtmm$;}
return $1f4;}
ex$.$_process=$_process;$_process.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$_process()},pa:1,an:function(){return[doc$($CCMM$,'$:process'),by(["Gavin","Tako"].$sa$({t:$_String})),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getLanguage),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getRuntime),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getSystem),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getOperatingSystem)].$sa$({t:ValueDeclaration$meta$declaration})),tagged(["Environment"].$sa$({t:$_String})),$_native()];},d:['$','process']};};$prop$getProcess=$_process;ex$.$prop$getProcess=$prop$getProcess;function product($1f5,$23on1$){var $1f6=$1f5.iterator();var $1f7;asrt$((!is$(($1f7=$1f6.next()),{t:Finished})),"Assertion failed: \'!is Finished first = it.next()\' at product.ceylon (21:11-21:42)",'21:4-21:43','product.ceylon');
var $1f8=$1f7;var $1f9;while(!is$(($1f9=$1f6.next()),{t:Finished})){($1f8=$1f8.times($1f9));}
return $1f8;}
ex$.product=product;product.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$product',ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Value$product'}}}],tp:{Value$product:{sts:[{t:Numeric,a:{Other$Numeric:'Value$product'}}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','product']};};function $1fa(){var runtime$=new $1fa.$$;runtime$.$prop$getIntegerSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerSize']};}};runtime$.$prop$getIntegerSize.get=function(){return integerSize};runtime$.$prop$getIntegerAddressableSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerAddressableSize']};}};runtime$.$prop$getIntegerAddressableSize.get=function(){return integerAddressableSize};runtime$.$1fc_=(-(2).power(53).minus(1));runtime$.$prop$getMinIntegerValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','minIntegerValue']};}};runtime$.$prop$getMinIntegerValue.get=function(){return minIntegerValue};runtime$.$1fd_=(2).power(53).minus(1);runtime$.$prop$getMaxIntegerValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxIntegerValue']};}};runtime$.$prop$getMaxIntegerValue.get=function(){return maxIntegerValue};runtime$.$1fe_=(2).power(32).minus(1);runtime$.$prop$getMaxArraySize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxArraySize']};}};runtime$.$prop$getMaxArraySize.get=function(){return maxArraySize};runtime$.$1ff_=Float(2.0).power((-52));runtime$.$prop$getEpsilon={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','epsilon']};}};runtime$.$prop$getEpsilon.get=function(){return epsilon};runtime$.$prop$getMaxExactIntegralFloat={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxExactIntegralFloat']};}};runtime$.$prop$getMaxExactIntegralFloat.get=function(){return maxExactIntegralFloat};return runtime$;};$1fa.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','runtime']};};function $init$runtime(){if($1fa.$$===undefined){initTypeProto($1fa,'ceylon.language::runtime',Basic);
(function(runtime$){atr$(runtime$,'name',function(){var runtime$=this;var $1fg;if(is$(($1fg=$_process().propertyValue("node.version")),{t:$_String})){return "node.js";}
else{var $1fh;if(nn$(($1fh=(typeof window==='undefined'||window===null?throwexc(Exception("Undefined or null reference: window"),'116:28-116:33','runtime.ceylon'):window)))){return "Browser";}
else{return "Unknown JavaScript environment";}
}
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','name']};});atr$(runtime$,'version',function(){var runtime$=this;var $1fi;if(is$(($1fi=$_process().propertyValue("node.version")),{t:$_String})){return $1fi;}
else{var $1fj;if(is$(($1fj=$_process().propertyValue("browser.version")),{t:$_String})){return $1fj;}
else{return "Unknown";}
}
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','version']};});atr$(runtime$,'integerSize',function(){var runtime$=this;return 53},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerSize']};});atr$(runtime$,'integerAddressableSize',function(){var runtime$=this;return 32},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerAddressableSize']};});atr$(runtime$,'minIntegerValue',function(){return this.$1fc_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','minIntegerValue']};});atr$(runtime$,'maxIntegerValue',function(){return this.$1fd_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxIntegerValue']};});atr$(runtime$,'maxArraySize',function(){return this.$1fe_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxArraySize']};});atr$(runtime$,'epsilon',function(){return this.$1ff_;},undefined,function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','epsilon']};});atr$(runtime$,'maxExactIntegralFloat',function(){var runtime$=this;return runtime$.maxIntegerValue;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxExactIntegralFloat']};});atr$(runtime$,'maxFloatValue',function(){var runtime$=this;return ndnc$((typeof Number==='undefined'||Number===null?throwexc(Exception("Undefined or null reference: Number"),'149:19-149:24','runtime.ceylon'):Number).MAX_VALUE,'f','runtime.ceylon 149:19-149:36');},undefined,function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxFloatValue']};});atr$(runtime$,'minFloatValue',function(){var runtime$=this;return ndnc$((typeof Number==='undefined'||Number===null?throwexc(Exception("Undefined or null reference: Number"),'154:19-154:24','runtime.ceylon'):Number).MIN_VALUE,'f','runtime.ceylon 154:19-154:36');},undefined,function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1fa,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','minFloatValue']};});})($1fa.$$.prototype);}
return $1fa;}
ex$.$init$runtime=$init$runtime;$init$runtime();var $1fk;function runtime(){if($1fk===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'runtime\' before it was set"),'109:0-157:0','runtime.ceylon');if($1fk===undefined){$1fk=INIT$;$1fk=$init$runtime()();$1fk.$crtmm$=runtime.$crtmm$;}
return $1fk;}
ex$.runtime=runtime;runtime.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$runtime()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime']};};$prop$getRuntime=runtime;ex$.$prop$getRuntime=$prop$getRuntime;function shuffle($1fl,$vkxzzt$){return flatten($JsCallable((function($1fm){return flatten($JsCallable((function($1fn){return unflatten($JsCallable(unflatten(JsCallable(0,$1fl),{Return$unflatten:{t:Callable,a:{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.SecondArgs$shuffle/*ORALE!SecondArgs inv pero Arguments var*/}},Args$unflatten:$vkxzzt$.FirstArgs$shuffle})($1fn),[],{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.SecondArgs$shuffle/*ORALE!SecondArgs inv pero Arguments var*/}),{Return$unflatten:$vkxzzt$.Result$shuffle,Args$unflatten:$vkxzzt$.SecondArgs$shuffle})($1fm);}),[{nm:'firstArgs',mt:'prm',$t:$vkxzzt$.FirstArgs$shuffle}],{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:mtt$([$vkxzzt$.FirstArgs$shuffle])}),{Args$flatten:$vkxzzt$.FirstArgs$shuffle,Return$flatten:$vkxzzt$.Result$shuffle});}),[{nm:'secondArgs',mt:'prm',$t:$vkxzzt$.SecondArgs$shuffle}],{Return$Callable:{t:Callable,a:{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.FirstArgs$shuffle/*ORALE!FirstArgs inv pero Arguments var*/}},Arguments$Callable:mtt$([$vkxzzt$.SecondArgs$shuffle])}),{Args$flatten:$vkxzzt$.SecondArgs$shuffle,Return$flatten:{t:Callable,a:{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.FirstArgs$shuffle/*ORALE!FirstArgs inv pero Arguments var*/}}});};shuffle.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$shuffle',Arguments$Callable:'FirstArgs$shuffle'}},Arguments$Callable:'SecondArgs$shuffle'}},ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$shuffle',Arguments$Callable:'SecondArgs$shuffle'}},Arguments$Callable:'FirstArgs$shuffle'}}}],tp:{Result$shuffle:{},FirstArgs$shuffle:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]},SecondArgs$shuffle:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:shuffle'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),curry)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','shuffle']};};
ex$.shuffle=shuffle;function smallest($1fo,$1fp,$8do5sh$){return ($1fq=($1fo.compare($1fp).equals(smaller())?$1fo:null),nn$($1fq)?$1fq:$1fp);};smallest.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$smallest',ps:[{nm:'x',mt:'prm',$t:'Element$smallest'},{nm:'y',mt:'prm',$t:'Element$smallest'}],tp:{Element$smallest:{sts:[{t:Comparable,a:{Other$Comparable:'Element$smallest'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:smallest'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction$jsint()(lmp$(ex$,'$'),largest),$init$OpenFunction$jsint()(lmp$(ex$,'$'),min)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','smallest']};};
ex$.smallest=smallest;var $1fq;function $_sort($1fr,$eme4eo$){var $1fs=$_Array($1fr,{Element$Array:$eme4eo$.Element$sort});if($1fs.empty){return empty();}
else{$1fs.sortInPlace(byIncreasing(JsCallable(0,identity,{Value$identity:$eme4eo$.Element$sort}),{Value$byIncreasing:$eme4eo$.Element$sort,Element$byIncreasing:$eme4eo$.Element$sort}));return ArraySequence($1fs,{Element$ArraySequence:$eme4eo$.Element$sort/*ORALE!Element inv pero Element var*/});}
}
ex$.$_sort=$_sort;$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$sort'}},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$sort'}}}],tp:{Element$sort:{sts:[{t:Comparable,a:{Other$Comparable:'Element$sort'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:sort'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Streams","Comparisons"].$sa$({t:$_String}))];},d:['$','sort']};};function sum($1ft,$vluejr$){var $1fu=$1ft.iterator();var $1fv;asrt$((!is$(($1fv=$1fu.next()),{t:Finished})),"Assertion failed: \'!is Finished first = it.next()\' at sum.ceylon (21:11-21:42)",'21:4-21:43','sum.ceylon');
var $1fw=$1fv;var $1fx;while(!is$(($1fx=$1fu.next()),{t:Finished})){($1fw=$1fw.plus($1fx));}
return $1fw;}
ex$.sum=sum;sum.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$sum',ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Value$sum'}}}],tp:{Value$sum:{sts:[{t:Summable,a:{Other$Summable:'Value$sum'}}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','sum']};};function $1fy(){var system$=new $1fy.$$;system$.$prop$getCharacterEncoding={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1fy,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','characterEncoding']};}};system$.$prop$getCharacterEncoding.get=function(){return characterEncoding};return system$;};$1fy.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','system']};};function $init$system(){if($1fy.$$===undefined){initTypeProto($1fy,'ceylon.language::system',Basic);
(function(system$){atr$(system$,'milliseconds',function(){var system$=this;return ndnc$((typeof Date==='undefined'||Date===null?throwexc(Exception("Undefined or null reference: Date"),'67:19-67:22','system.ceylon'):Date).now(),'i','system.ceylon 67:19-67:30');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fy,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','milliseconds']};});atr$(system$,'nanoseconds',function(){var system$=this;return ndnc$(($1g0=(typeof Date==='undefined'||Date===null?throwexc(Exception("Undefined or null reference: Date"),'73:19-73:22','system.ceylon'):Date).now(),$1g1=(1000000),(nn$($1g0)&&$1g0.times&&$1g0.times($1g1))||$1g0*$1g1),'i','system.ceylon 73:19-73:40');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fy,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','nanoseconds']};});atr$(system$,'timezoneOffset',function(){var system$=this;return ndnc$(($1g2=($1g4=(typeof Date==='undefined'?throwexc(Exception("Undefined type Date"),'79:19-79:22','system.ceylon'):Date),$1g4.$$===undefined?new $1g4():$1g4()).getTimezoneOffset(),$1g3=(-60000),(nn$($1g2)&&$1g2.times&&$1g2.times($1g3))||$1g2*$1g3),'i','system.ceylon 79:19-79:53');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1fy,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','timezoneOffset']};});atr$(system$,'locale',function(){var system$=this;return ($1g5=($1g6=$_process().propertyValue("user.locale"),nn$($1g6)?$1g6:system$.$1g7($_process().environmentVariableValue("LANG"))),nn$($1g5)?$1g5:"en");var $1g5,$1g6;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1fy,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','locale']};});system$.$1g7=function($1g8){var system$=this;var $1g9;if(nn$(($1g9=$1g8))&&!$1g9.empty){var $1ga=$1g9.firstOccurrence(Character(46,true));var $1gb=function(){var $1gc;if(nn$(($1gc=$1ga)))return $1g9.measure(0,$1gc);else return $1g9}();return $1gb.$_replace("_","-");}
else{return null;}
};system$.$1g7.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'tag',mt:'prm',$t:{t:'u',l:[{t:Null},{t:$_String}]}}],$cont:$1fy,d:['$','system','$m','normalizeLocaleTag$wqlmg9']};};atr$(system$,'characterEncoding',function(){var system$=this;return "UTF-16";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1fy,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','characterEncoding']};});})($1fy.$$.prototype);}
return $1fy;}
ex$.$init$system=$init$system;$init$system();var $1gd;function system(){if($1gd===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'system\' before it was set"),'63:0-102:0','system.ceylon');if($1gd===undefined){$1gd=INIT$;$1gd=$init$system()();$1gd.$crtmm$=system.$crtmm$;}
return $1gd;}
ex$.system=system;system.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$system()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system']};};$prop$getSystem=system;ex$.$prop$getSystem=$prop$getSystem;function times($1ge,$1gf,$r3xbh0$){return $1ge.times($1gf);};times.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$times',ps:[{nm:'x',mt:'prm',$t:'Value$times'},{nm:'y',mt:'prm',$t:'Value$times'}],tp:{Value$times:{sts:[{t:Numeric,a:{Other$Numeric:'Value$times'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:times'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),plus),$init$OpenFunction$jsint()(lmp$(ex$,'$'),product)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','times']};};
ex$.times=times;function unflatten(ff, $$$mptypes) {
if (ff.$flattened$)return ff.$flattened$;
if (ff.jsc$)ff=ff.jsc$;
var mm=getrtmm$$(ff);
if (mm && mm.ps) {
if (mm.ps.length===0)return ff;
var last=mm.ps[mm.ps.length-1];
var iadic=variadicness(last.$t);
if (is$(last,{t:Tuple}))iadic=0;
var ru;
if (iadic && mm.ps.length===1) {
//Single variadic parm, passed as sequence
ru=function rus(seq,$mptypes) {
if (seq===undefined || seq.size === 0)seq=empty();
return ff(seq,$mptypes);
}
ru.$crtmm$={$t:mm.$t,ps:[{$t:{t:last.$t.t,a:last.$t.a},nm:'unf0',mt:'prm'}]};
} else if (iadic) {
//Args and variadic, gets unfinished Tuple
var cut=mm.ps.length-1;
ru=function ruv(seq,$mptypes) {
var a=[];
for (var i=0;i<Math.min(seq.size,cut);i++) {
a.push(seq.$_get(i));
}
if (seq.size<=cut) {
//Fill positions of defaulted args
for (var i=seq.size;i<cut;i++)a.push(undefined);
a.push(empty());
} else {
var s=[];
for (var i=cut;i<seq.size;i++)s.push(seq.$_get(i));
a.push(s.$sa$(last.$t));
}
if ($mptypes)a.push($mptypes);
return ff.apply(0,a);
}
} else {
ru=function rut(tup,$mptypes) {
var a=[];
if (tup.size>mm.ps.length) {
var _t=tup;
for (var i=0;i<mm.ps.length-1;i++) {
a.push(_t.head);
_t=_t.rest;
}
a.push(_t);
} else {
for (var i=0;i<tup.size;i++) {
a.push(tup.$_get(i));
}
//Fill positions of defaulted args
for (var i=tup.size;i<mm.ps.length;i++)a.push(undefined);
if ($mptypes)a.push($mptypes);
}
return ff.apply(0,a);
}
}
if (!ru.$crtmm$) {
ru.$crtmm$={$t:mm.$t,ps:[{$t:{t:'T',l:[]},nm:'unf'}]};
for (var i=0;i<mm.ps.length;i++){
ru.$crtmm$.ps[0].$t.l.push(mm.ps[i].$t);
}
if (iadic)ru.$crtmm$.ps[0].$t.l[mm.ps.length-1].seq=iadic;
}
} else {
var ru=function runomm(seq) {
if (seq===undefined || seq.size === 0) { return ff(); }
var a = [];
for (var i = 0; i < seq.size; i++) {
a[i] = seq.$_get(i);
}
a[i]=ru.$$targs$$;
return ff.apply(ru, a);
}
}
ru.$unflattened$=ff;
ru.$$targs$$={Return$Callable:$$$mptypes.Return$unflatten,Arguments$Callable:{t:'T',l:[$$$mptypes.Args$unflatten]}};
return ru;
}
unflatten.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$unflatten',Arguments$Callable:{t:'T',l:['Args$unflatten']}}},ps:[{nm:'flatFunction',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$unflatten',Arguments$Callable:'Args$unflatten'}}}],tp:{Return$unflatten:{},Args$unflatten:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unflatten'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),flatten)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String})),$_native()];},d:['$','unflatten']};};
ex$.unflatten=unflatten;function unzip($1gg,$r4kkqe$){return tpl$([$1gg.$_map($JsCallable((function($1gh){return $1gh.first;}),[{nm:'tuple',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}}],{Return$Callable:$r4kkqe$.Head$unzip/*ORALE!Head inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}])}),{Result$map:$r4kkqe$.Head$unzip}),$1gg.$_map($JsCallable((function($1gi){return $1gi.rest;}),[{nm:'tuple',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}}],{Return$Callable:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}])}),{Result$map:$r4kkqe$.Tail$unzip})]);};unzip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:'Head$unzip'}},{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:'Tail$unzip'}}]},ps:[{nm:'tuples',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:{t:'T',l:['Head$unzip']}}}}],tp:{Element$unzip:{},Head$unzip:{},Tail$unzip:{sts:[{t:Sequential,a:{Element$Sequential:'Element$unzip'}}]},Absent$unzip:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzip'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','unzip']};};
ex$.unzip=unzip;function unzipPairs($1gj,$svu3k3$){return tpl$([$1gj.$_map($JsCallable((function($1gk){return $1gk.$_get(0);}),[{nm:'pair',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}}],{Return$Callable:$svu3k3$.First$unzipPairs/*ORALE!First inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}])}),{Result$map:$svu3k3$.First$unzipPairs}),$1gj.$_map($JsCallable((function($1gl){return $1gl.$_get(1);}),[{nm:'pair',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}}],{Return$Callable:$svu3k3$.Second$unzipPairs/*ORALE!Second inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}])}),{Result$map:$svu3k3$.Second$unzipPairs})]);};unzipPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:'First$unzipPairs'}},{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:'Second$unzipPairs'}}]},ps:[{nm:'pairs',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:{t:'T',l:['First$unzipPairs','Second$unzipPairs']}}}}],tp:{First$unzipPairs:{},Second$unzipPairs:{},Absent$unzipPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzipPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','unzipPairs']};};
ex$.unzipPairs=unzipPairs;function unzipEntries($1gm,$sb2szq$){return tpl$([$1gm.$_map($JsCallable(function($O$){return $O$.key;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries,Item$Entry:$sb2szq$.Item$unzipEntries}}}],{Return$Callable:$sb2szq$.Key$unzipEntries/*ORALE!Key inv pero Return var*/,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$sb2szq$.Item$unzipEntries/*ORALE!Item inv pero Item var*/}}])}),{Result$map:$sb2szq$.Key$unzipEntries}),$1gm.$_map($JsCallable(function($O$){return $O$.item;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries,Item$Entry:$sb2szq$.Item$unzipEntries}}}],{Return$Callable:$sb2szq$.Item$unzipEntries/*ORALE!Item inv pero Return var*/,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$sb2szq$.Item$unzipEntries/*ORALE!Item inv pero Item var*/}}])}),{Result$map:$sb2szq$.Item$unzipEntries})]);};unzipEntries.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:'Key$unzipEntries'}},{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:'Item$unzipEntries'}}]},ps:[{nm:'entries',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:{t:Entry,a:{Key$Entry:'Key$unzipEntries',Item$Entry:'Item$unzipEntries'}}}}}],tp:{Key$unzipEntries:{sts:[{t:$_Object}]},Item$unzipEntries:{},Absent$unzipEntries:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzipEntries'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','unzipEntries']};};
ex$.unzipEntries=unzipEntries;function zipEntries($1gn,$1go,$fn3w9r$){return mapPairs(function($1gp$0,$1gp$1){return Entry($1gp$0,$1gp$1,{Key$Entry:$fn3w9r$.Key$zipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$fn3w9r$.Item$zipEntries/*ORALE!Item inv pero Item var*/});},$1gn,$1go,{Result$mapPairs:{t:Entry,a:{Key$Entry:$fn3w9r$.Key$zipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$fn3w9r$.Item$zipEntries/*ORALE!Item inv pero Item var*/}},FirstAbsent$mapPairs:$fn3w9r$.KeyAbsent$zipEntries,Second$mapPairs:$fn3w9r$.Item$zipEntries,First$mapPairs:$fn3w9r$.Key$zipEntries,SecondAbsent$mapPairs:$fn3w9r$.ItemAbsent$zipEntries});};zipEntries.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['KeyAbsent$zipEntries','ItemAbsent$zipEntries']},Element$Iterable:{t:Entry,a:{Key$Entry:'Key$zipEntries',Item$Entry:'Item$zipEntries'}}}},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'KeyAbsent$zipEntries',Element$Iterable:'Key$zipEntries'}}},{nm:'items',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'ItemAbsent$zipEntries',Element$Iterable:'Item$zipEntries'}}}],tp:{Key$zipEntries:{sts:[{t:$_Object}]},Item$zipEntries:{},KeyAbsent$zipEntries:{sts:[{t:Null}]},ItemAbsent$zipEntries:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:zipEntries'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','zipEntries']};};
ex$.zipEntries=zipEntries;function zipPairs($1gq,$1gr,$g1bdre$){return mapPairs($JsCallable((function($1gs,$1gt){return tpl$([$1gs,$1gt]);}),[{nm:'first',mt:'prm',$t:$g1bdre$.First$zipPairs},{nm:'second',mt:'prm',$t:$g1bdre$.Second$zipPairs}],{Return$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([$g1bdre$.Second$zipPairs]),Element$Tuple:mut$([$g1bdre$.First$zipPairs,$g1bdre$.Second$zipPairs]),First$Tuple:$g1bdre$.First$zipPairs/*ORALE!First inv pero First var*/}},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([$g1bdre$.Second$zipPairs]),Element$Tuple:mut$([$g1bdre$.First$zipPairs,$g1bdre$.Second$zipPairs]),First$Tuple:$g1bdre$.First$zipPairs/*ORALE!First inv pero First var*/}}}),$1gq,$1gr,{Result$mapPairs:{t:Tuple,a:{Rest$Tuple:mtt$([$g1bdre$.Second$zipPairs]),Element$Tuple:mut$([$g1bdre$.First$zipPairs,$g1bdre$.Second$zipPairs]),First$Tuple:$g1bdre$.First$zipPairs/*ORALE!First inv pero First var*/}},FirstAbsent$mapPairs:$g1bdre$.FirstAbsent$zipPairs,Second$mapPairs:$g1bdre$.Second$zipPairs,First$mapPairs:$g1bdre$.First$zipPairs,SecondAbsent$mapPairs:$g1bdre$.SecondAbsent$zipPairs});};zipPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['FirstAbsent$zipPairs','SecondAbsent$zipPairs']},Element$Iterable:{t:'T',l:['First$zipPairs','Second$zipPairs']}}},ps:[{nm:'firstElements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'FirstAbsent$zipPairs',Element$Iterable:'First$zipPairs'}}},{nm:'secondElements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'SecondAbsent$zipPairs',Element$Iterable:'Second$zipPairs'}}}],tp:{First$zipPairs:{},Second$zipPairs:{},FirstAbsent$zipPairs:{sts:[{t:Null}]},SecondAbsent$zipPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:zipPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','zipPairs']};};
ex$.zipPairs=zipPairs;function zip($1gu,$1gv,$vlu9n5$){return mapPairs(function($1gw$0,$1gw$1){return Tuple($1gw$0,$1gw$1,{First$Tuple:$vlu9n5$.Head$zip/*ORALE!Head inv pero First var*/,Rest$Tuple:$vlu9n5$.Tail$zip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$vlu9n5$.Element$zip,$vlu9n5$.Head$zip])});},$1gu,$1gv,{Result$mapPairs:{t:Tuple,a:{Rest$Tuple:$vlu9n5$.Tail$zip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$vlu9n5$.Element$zip,$vlu9n5$.Head$zip]),First$Tuple:$vlu9n5$.Head$zip/*ORALE!Head inv pero First var*/}},FirstAbsent$mapPairs:$vlu9n5$.HeadAbsent$zip,Second$mapPairs:$vlu9n5$.Tail$zip,First$mapPairs:$vlu9n5$.Head$zip,SecondAbsent$mapPairs:$vlu9n5$.TailAbsent$zip});};zip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['HeadAbsent$zip','TailAbsent$zip']},Element$Iterable:{t:'T',l:['Head$zip']}}},ps:[{nm:'heads',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'HeadAbsent$zip',Element$Iterable:'Head$zip'}}},{nm:'tails',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'TailAbsent$zip',Element$Iterable:'Tail$zip'}}}],tp:{Element$zip:{},Head$zip:{},Tail$zip:{sts:[{t:Sequential,a:{Element$Sequential:'Element$zip'}}]},HeadAbsent$zip:{sts:[{t:Null}]},TailAbsent$zip:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:zip'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','zip']};};
ex$.zip=zip;
/* Metamodel module and package objects */
var $loadedModules$={};
ex$.$loadedModules$=$loadedModules$;
function $addmod$(mod, modname) {
$loadedModules$[modname] = mod;
}
ex$.$addmod$=$addmod$;
/*Native Implementation of annotations() */
function annotations$meta(anntype, progelem, $$$mptypes) {
if (progelem.tipo)
progelem=progelem.tipo;
else if (progelem._alias)
progelem=progelem._alias;
var mm = getrtmm$$(progelem);
if (progelem.$anns)mm={an:typeof(progelem.$anns)==='function'?progelem.$anns():progelem.$anns};
else if (progelem._anns)mm={an:typeof(progelem._anns)==='function'?progelem._anns():progelem._anns};
if (!mm)return null;
//get the bitset annotations
var anns=allann$(mm);
if (anns) {
if (anntype.tipo.$$.T$all['ceylon.language::OptionalAnnotation'] !== undefined) {
//find the first one and return it
for (var i=0; i < anns.length; i++) {
if (is$(anns[i], {t:anntype.tipo}))return anns[i];
}
return null;
}
//gather all annotations of the required type and return them
var r=[];
for (var i=0; i < anns.length; i++) {
if (is$(anns[i], {t:anntype.tipo}))r.push(anns[i]);
}
var targ={t:ConstrainedAnnotation,a:{Value$ConstrainedAnnotation:$$$mptypes.Value$annotations,
Values$ConstrainedAnnotation:$$$mptypes.Values$annotations,
ProgramElement$ConstrainedAnnotation:$$$mptypes.ProgramElement$annotations}};
return r.$sa$(targ);
}
return null;
}
annotations$meta.$crtmm$=function(){return{mod:$CCMM$,$t:'Values$annotations',ps:[{nm:'annotationType',mt:'prm',$t:{t:Class$meta$model,a:{Type$Class:{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:'Values$annotations',ProgramElement$ConstrainedAnnotation:'ProgramElement$annotations',Value$ConstrainedAnnotation:'Value$annotations',Type$ConstrainedAnnotation:{t:Anything}}},Arguments$Class:{t:Nothing}}}},{nm:'programElement',mt:'prm',$t:'ProgramElement$annotations'}],tp:{Value$annotations:{sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:'Values$annotations',ProgramElement$ConstrainedAnnotation:'ProgramElement$annotations',Value$ConstrainedAnnotation:'Value$annotations',Type$ConstrainedAnnotation:{t:Anything}}}]},Values$annotations:{},ProgramElement$annotations:{dv:'in',sts:[{t:Annotated}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:annotations'),$_native()];},d:['ceylon.language.meta','annotations']};};
ex$.annotations$meta=annotations$meta;function classDeclaration$meta(o) {
if (o==null) {
return openClass$jsint(m$1.lmp$(ex$,'$'),Null);
}
var pkn=o.getT$name();
var meta=o.getT$all()[pkn];
var mm=getrtmm$$(meta);
var mod=mm.mod;
if (typeof(mod)==='function')mod=mod();
mod=modules$meta().find(mod['$mod-name'],mod['$mod-version']);
if (pkn.indexOf('::')) {
pkn = pkn.substring(0,pkn.indexOf('::'));
} else {
pkn = '';
}
var pkg=mod.findPackage(pkn);
return openClass$jsint(pkg,meta);
}
classDeclaration$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:classDeclaration'),$_native()];},d:['ceylon.language.meta','classDeclaration']};};
ex$.classDeclaration$meta=classDeclaration$meta;function $1gx$meta(){var modules$=new $1gx$meta.$$;modules$.$prop$getList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Module$meta$declaration}}},$cont:$1gx$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:list'),$_native()];},d:['ceylon.language.meta','modules','$at','list']};}};modules$.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Module$meta$declaration}]},$cont:$1gx$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:default'),$_native()];},d:['ceylon.language.meta','modules','$at','default']};}};return modules$;};$1gx$meta.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['ceylon.language.meta','modules']};};function $init$modules$meta(){if($1gx$meta.$$===undefined){initTypeProto($1gx$meta,'ceylon.language.meta::modules',Basic);
(function(modules$){atr$(modules$,'list',function(){var mods=[];
for (var m in $loadedModules$) {
var slashPos = m.lastIndexOf('/');
mods.push(this.find(m.substring(0,slashPos), m.substring(slashPos+1)));
}
return mods.$sa$({t:Module$meta$declaration});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Module$meta$declaration}}},$cont:$1gx$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:list'),$_native()];},d:['ceylon.language.meta','modules','$at','list']};});modules$.find=function find(name,version){
var modname = name + "/" + (version?version:"unversioned");
var lm = $loadedModules$[modname];
if (!lm) {
var mpath;
if (name === 'default' && version=='unversioned') {
mpath = name + "/" + name;
} else {
mpath = name.replace(/\./g,'/') + '/' + version + "/" + name + "-" + version;
}
try {lm = require(mpath);}catch(e){return null;}
}
if (lm && lm.$CCMM$) {
lm = Modulo$jsint(lm);
$loadedModules$[modname] = lm;
}
return lm === undefined ? null : lm;
}
modules$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Module$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'version',mt:'prm',$t:{t:$_String}}],$cont:$1gx$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$m:find'),$_native()];},d:['ceylon.language.meta','modules','$m','find']};};atr$(modules$,'$_default',function(){if (this.defmod$===undefined) {
this.defmod$=this.find('default',"unversioned");
}
return this.defmod$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Module$meta$declaration}]},$cont:$1gx$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:default'),$_native()];},d:['ceylon.language.meta','modules','$at','default']};});})($1gx$meta.$$.prototype);}
return $1gx$meta;}
ex$.$init$modules$meta=$init$modules$meta;$init$modules$meta();var $1gz;function modules$meta(){if($1gz===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'modules\' before it was set"),'3:0-37:0','modules.ceylon');if($1gz===undefined){$1gz=INIT$;$1gz=$init$modules$meta()();$1gz.$crtmm$=modules$meta.$crtmm$;}
return $1gz;}
ex$.modules$meta=modules$meta;modules$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$modules$meta()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules'),$_native()];},d:['ceylon.language.meta','modules']};};$prop$getModules$meta=modules$meta;ex$.$prop$getModules$meta=$prop$getModules$meta;function optionalAnnotation$meta($1h0,$1h1,$lg0eq8$){return annotations$meta($1h0,$1h1,{ProgramElement$annotations:$lg0eq8$.ProgramElement$optionalAnnotation,Values$annotations:mut$([{t:Null},$lg0eq8$.Value$optionalAnnotation]),Value$annotations:$lg0eq8$.Value$optionalAnnotation});}
ex$.optionalAnnotation$meta=optionalAnnotation$meta;optionalAnnotation$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Value$optionalAnnotation']},ps:[{nm:'annotationType',mt:'prm',$t:{t:Class$meta$model,a:{Type$Class:{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:'Value$optionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$optionalAnnotation'}},Arguments$Class:{t:Nothing}}}},{nm:'programElement',mt:'prm',$t:'ProgramElement$optionalAnnotation'}],tp:{Value$optionalAnnotation:{sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:'Value$optionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$optionalAnnotation'}}]},ProgramElement$optionalAnnotation:{dv:'in',sts:[{t:Annotated}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:optionalAnnotation')];},d:['ceylon.language.meta','optionalAnnotation']};};ex$.$pkg$ans$ceylon$language$meta=function(){return[doc$($CCMM$,'ceylon.language.meta','$pkg-anns'),by(["Gavin King","Stephane Epardaud","Tom Bentley"].$sa$({t:$_String})),tagged(["Metamodel"].$sa$({t:$_String})),shared()];};function sequencedAnnotations$meta($1h2,$1h3,$q7mpsu$){return annotations$meta($1h2,$1h3,{ProgramElement$annotations:$q7mpsu$.ProgramElement$sequencedAnnotations,Values$annotations:{t:Sequential,a:{Element$Sequential:$q7mpsu$.Value$sequencedAnnotations/*ORALE!Value inv pero Element var*/}},Value$annotations:$q7mpsu$.Value$sequencedAnnotations});}
ex$.sequencedAnnotations$meta=sequencedAnnotations$meta;sequencedAnnotations$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Value$sequencedAnnotations'}},ps:[{nm:'annotationType',mt:'prm',$t:{t:Class$meta$model,a:{Type$Class:{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$sequencedAnnotations',Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:'ProgramElement$sequencedAnnotations'}},Arguments$Class:{t:Nothing}}}},{nm:'programElement',mt:'prm',$t:'ProgramElement$sequencedAnnotations'}],tp:{Value$sequencedAnnotations:{sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$sequencedAnnotations',Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:'ProgramElement$sequencedAnnotations'}}]},ProgramElement$sequencedAnnotations:{dv:'in',sts:[{t:Annotated}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:sequencedAnnotations')];},d:['ceylon.language.meta','sequencedAnnotations']};};function type$meta(x,$$targs$$) {
if (x===null){
return AppliedClass$jsint($_null(),{Type$AppliedClass:{t:Null},Arguments$AppliedClass:{t:Empty}});
}
if ($$targs$$.Type$type.t===Nothing) {
return nothingType$meta$model();
}
if (x===true||x===false) {
var cls=x?$_true:$_false;
return AppliedClass$jsint(cls,{Type$AppliedClass:{t:cls},Arguments$AppliedClass:{t:Empty}});
}
var mm=getrtmm$$(x);
var _t=$$targs$$.Type$type.t;
if (mm===undefined) {
if (x.getT$name && x.getT$all) {
var mmm=x.getT$all()[x.getT$name()];
if (mmm){mm=mmm.$crtmm$;_t=mmm;}
if (typeof(mm)==='function') {
mm=mm(); mmm.$crtmm$=mm;
}
}
}
if (mm===undefined&&x.rt$)mm=$_Array.$crtmm$;
if (mm===undefined)throw new Error("Cannot retrieve metamodel for " + x);
var _cntr=mm.$cont && !is$(x,{t:'u',l:[{t:AppliedCallableConstructor$jsint},{t:AppliedMemberClassCallableConstructor$jsint}]}) ? get_model(getrtmm$$(mm.$cont)) : undefined;
var _classOrInterfaceMember = _cntr && (_cntr.mt==='c' || _cntr.mt==='i' || _cntr.mt==='o');
if (mm.$t) { //it's a value
if (typeof(x)==='function') { //It's a callable
if (_classOrInterfaceMember) {
return AppliedMethod$jsint(x,undefined,{Type$AppliedMethod:mm.$t,Arguments$AppliedMethod:{t:Nothing},Container$AppliedMethod:{t:mm.$cont}},x.$$targs$$);
}
return AppliedFunction$jsint(x,{Type$Function:mm.$t,Arguments$Function:{t:Nothing}},undefined,x.$$targs$$);
}
var rv=_classOrInterfaceMember?AppliedMemberClass$jsint(mm.$t.t, {Type$AppliedMemberClass:mm.$t,Arguments$AppliedMemberClass:{t:Nothing},Container$AppliedMemberClass:{t:mm.$cont}})
: AppliedClass$jsint(mm.$t.t, {Type$AppliedClass:mm.$t,Arguments$AppliedClass:{t:Nothing}});
rv.src$=x;
return rv;
}
var c;
if ($$targs$$.Type$type.t==='T') {
var rt=x.$$targs$$.l ? x.$$targs$$ : $$targs$$.Type$type;
c=AppliedClass$jsint(Tuple,{Type$AppliedClass:rt, Arguments$AppliedClass:{t:'T',l:[x.$$targs$$.First$Tuple,x.$$targs$$.Rest$Tuple]}});
} else {
var _ta={T:{t:x.getT$all()[x.getT$name()]}, A:{t:Sequential,a:{Element$Iterable:{t:Anything}}}};
var mytargs;
if (x.$$targs$$) {
//Tuple with tuple targs
if (_ta.T.t===Tuple && x.$$targs$$.t==='T')return type$meta(x,{Type$type:x.$$targs$$});
_ta.T.a=x.$$targs$$;
}
if (x.outer$) {
_ta.C={t:x.outer$.getT$all()[x.outer$.getT$name()]};
if (x.outer$.$$targs$$)_ta.C.a=x.outer$.$$targs$$;
mytargs={};
for (ta in x.$$targs$$)mytargs[ta]=x.$$targs$$[ta];
var ou=x.outer$;
while (ou) {
if (ou.$$targs$$) {
for (ta in ou.$$targs$$)mytargs[ta]=ou.$$targs$$[ta];
}
ou=ou.outer$;
}
}
if (_classOrInterfaceMember) {
c=AppliedMemberClass$jsint(_t, {Type$AppliedMemberClass:_ta.T,Arguments$AppliedMemberClass:_ta.A,Container$AppliedMemberClass:_ta.C},undefined,mytargs);
} else {
c=AppliedClass$jsint(_t, {Type$AppliedClass:_ta.T,Arguments$AppliedClass:_ta.A},undefined,x.$$targs$$);
}
}
if ($$targs$$.Type$type.a)c.$targs=$$targs$$.Type$type.a;
c.src$=x;
return c;
}
type$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$type'}},ps:[{nm:'instance',mt:'prm',$t:'Type$type'}],tp:{Type$type:{dv:'out',sts:[{t:Anything}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:type'),see([$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),classDeclaration$meta)].$sa$({t:FunctionDeclaration$meta$declaration})),$_native()];},d:['ceylon.language.meta','type']};};
ex$.type$meta=type$meta;function typeLiteral$meta($$targs$$,targ$2) {
if ($$targs$$ === undefined || $$targs$$.Type$typeLiteral === undefined) {
throw new Error("Missing type argument 'Type' " + /*require('util').inspect(*/$$targs$$);
} else if ($$targs$$.Type$typeLiteral.$crtmm$ == undefined) {
//closed type
var t = $$targs$$.Type$typeLiteral.t
if (t === undefined) {
t = $$targs$$.Type$typeLiteral.setter;
if (t && t.$crtmm$) {
var mm = getrtmm$$(t);
var _m=typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
return OpenSetter(OpenValue$jsint(_mod.findPackage(mm.d[0]), t));
}
throw new Error("'Type' argument should be an open or closed type");
} else if (t==='u' || t==='i') {
return (t==='u'?applyUnionType:applyIntersectionType)($$targs$$.Type$typeLiteral,targ$2);
} else if (t==='T') {
//TODO arguments
var _tt=retpl$($$targs$$.Type$typeLiteral);
if (_tt.t===Empty) {
return AppliedClass$jsint(Tuple,{Type$AppliedClass:$$targs$$.Type$typeLiteral,Arguments$AppliedClass:{t:Empty}});
}
return AppliedClass$jsint(Tuple,{Type$AppliedClass:$$targs$$.Type$typeLiteral,Arguments$AppliedClass:{t:'T',l:[_tt.a.First$Tuple,_tt.a.Rest$Tuple]}});
} else if (t.$crtmm$ === undefined) {
throw new Error("JS Interop not supported / incomplete metamodel for " + /*require('util').inspect(*/t);
} else {
var mm = getrtmm$$(t);
var mdl = get_model(mm);
if (mdl.mt==='c' || mdl.mt==='o') {
//TODO tupleize Arguments
var acargs={t:Sequential,a:{Element$Iterable:{t:Anything}}};
var r=mm.$cont?AppliedMemberClass$jsint(t,{Container$AppliedMemberClass:{t:mm.$cont},Type$AppliedMemberClass:$$targs$$.Type$typeLiteral,Arguments$AppliedMemberClass:acargs})
: AppliedClass$jsint(t,{Type$AppliedClass:$$targs$$.Type$typeLiteral,Arguments$AppliedClass:acargs});
if ($$targs$$.Type$typeLiteral.a)r.$targs=$$targs$$.Type$typeLiteral.a;
return r;
} else if (mdl['mt'] === 'i') {
var r=AppliedInterface$jsint(t,{Type$Interface:$$targs$$.Type$typeLiteral});
if ($$targs$$.Type$typeLiteral.a)r.$targs=$$targs$$.Type$typeLiteral.a;
return r;
} else if (mdl['mt'] === 'm') {
return AppliedFunction$jsint(t,{Type$AppliedFunction:$$targs$$.Type$typeLiteral,
Arguments$AppliedFunction:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
} else if (mdl['mt'] === 'a' || mdl['mt'] === 'g' || mdl.mt==='s') {
return AppliedValue$jsint(undefined,t,{Container$Value:{t:mm.$cont},Get$Value:mm.$t,Set$Value:mdl['var']?mm.$t:{t:Nothing}});
} else {
console.log("WTF is a metatype " + mdl['mt'] + " on a closed type???????");
}
console.log("typeLiteral<" + t.getT$name() + "> (closed type)");
}
} else {
//open type
var t = $$targs$$.Type$typeLiteral;
var mm = getrtmm$$(t);
var mdl = get_model(mm);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
//We need the module
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
var _pkg = _mod.findPackage(mm.d[0]);
if (mdl.mt==='c' || mdl.mt==='o') {
return openClass$jsint(_pkg, t);
} else if (mdl['mt'] === 'i') {
return OpenInterface$jsint(_pkg, t);
} else if (mdl['mt'] === 'm') {
return OpenFunction$jsint(_pkg, t);
} else if (mdl['mt'] === 'a' || mdl['mt'] === 'g') {
return OpenValue$jsint(_pkg, t);
} else if (mdl.mt==='s') {
return OpenSetter(OpenValue$jsint(_pkg, t));
} else {
console.log("WTF is a metatype " + mdl['mt'] + " on an open type???????");
}
console.log("typeLiteral<" + t.getT$name() + "> (open type)");
}
throw new Error("typeLiteral UNIMPLEMENTED for " + /*require('util').inspect(*/$$targs$$);
}
typeLiteral$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$typeLiteral'}},ps:[],tp:{Type$typeLiteral:{dv:'out',sts:[{t:Anything}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:typeLiteral'),$_native()];},d:['ceylon.language.meta','typeLiteral']};};
ex$.typeLiteral$meta=typeLiteral$meta;function ClassOrInterface$meta$model($$targs$$,classOrInterface$){set_type_args(classOrInterface$,$$targs$$,ClassOrInterface$meta$model);Model$meta$model(classOrInterface$);Generic$meta$model(classOrInterface$);Type$meta$model({Target$Type:$$targs$$.Type$ClassOrInterface},classOrInterface$);}
ClassOrInterface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$ClassOrInterface:{dv:'out',def:{t:Anything}}},sts:[{t:Model$meta$model},{t:Generic$meta$model},{t:Type$meta$model,a:{Target$Type:'Type$ClassOrInterface'}}],of:[{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$ClassOrInterface'}},{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:'Type$ClassOrInterface'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface')];},d:['ceylon.language.meta.model','ClassOrInterface']};};
ex$.ClassOrInterface$meta$model=ClassOrInterface$meta$model;function $init$ClassOrInterface$meta$model(){if(ClassOrInterface$meta$model.$$===undefined){initTypeProtoI(ClassOrInterface$meta$model,'ceylon.language.meta.model::ClassOrInterface',$init$Model$meta$model(),$init$Generic$meta$model(),$init$Type$meta$model());
(function(classOrInterface$){classOrInterface$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassOrInterfaceDeclaration$meta$declaration},$cont:ClassOrInterface$meta$model,pa:7,an:function(){return[doc("The declaration for this class or interface.")];},d:['ceylon.language.meta.model','ClassOrInterface','$at','declaration']};}};classOrInterface$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:ClassOrInterface$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$at:extendedType')];},d:['ceylon.language.meta.model','ClassOrInterface','$at','extendedType']};}};classOrInterface$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:ClassOrInterface$meta$model,pa:5,an:function(){return[doc("The list of closed types that this class or interface satisfies.")];},d:['ceylon.language.meta.model','ClassOrInterface','$at','satisfiedTypes']};}};classOrInterface$.$prop$getCaseValues={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$ClassOrInterface'}},$cont:ClassOrInterface$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$at:caseValues')];},d:['ceylon.language.meta.model','ClassOrInterface','$at','caseValues']};}};classOrInterface$.getClassOrInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'Container$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getClassOrInterface:{def:{t:Nothing}},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getClassOrInterface'),$_throws("IncompatibleTypeException","If the specified `Kind` type argument is not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClassOrInterface']};}};classOrInterface$.getDeclaredClassOrInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredClassOrInterface'),$_throws("IncompatibleTypeException","If the specified `Container` or `Kind` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClassOrInterface']};}};classOrInterface$.getClass={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getClass'),$_throws("IncompatibleTypeException","If the specified `Type` or `Arguments` type arguments are not compatible with the actual result, \nor if the corresponding member is not a `MemberClass`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClass']};}};classOrInterface$.getDeclaredClass={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredClass'),$_throws("IncompatibleTypeException","If the specified `Container`, `Type` or `Arguments` type arguments are not compatible with the actual result, \nor if the corresponding member is not a `MemberClass`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClass']};}};classOrInterface$.getInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getInterface'),$_throws("IncompatibleTypeException","If the specified `Type` type argument is not compatible with the actual result, \nor if the corresponding member is not a `MemberInterface`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getInterface']};}};classOrInterface$.getDeclaredInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredInterface'),$_throws("IncompatibleTypeException","If the specified `Container` or `Type` type arguments are not compatible with the actual result, \nor if the corresponding member is not a `MemberInterface`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredInterface']};}};classOrInterface$.getMethod={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getMethod'),$_throws("IncompatibleTypeException","If the specified `Type` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getMethod']};}};classOrInterface$.getDeclaredMethod={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredMethod'),$_throws("IncompatibleTypeException","If the specified `Container`, `Type` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredMethod']};}};classOrInterface$.getAttribute={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterface$meta$model,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getAttribute'),$_throws("IncompatibleTypeException","If the specified `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getAttribute']};}};classOrInterface$.getDeclaredAttribute={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredAttribute'),$_throws("IncompatibleTypeException","If the specified `Container`, `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredAttribute']};}};classOrInterface$.getDeclaredAttributes={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredAttributes')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredAttributes']};}};classOrInterface$.getAttributes={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getAttributes')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getAttributes']};}};classOrInterface$.getDeclaredMethods={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredMethods')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredMethods']};}};classOrInterface$.getMethods={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getMethods')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getMethods']};}};classOrInterface$.getDeclaredClasses={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredClasses')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClasses']};}};classOrInterface$.getClasses={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getClasses')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClasses']};}};classOrInterface$.getDeclaredInterfaces={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredInterfaces')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredInterfaces']};}};classOrInterface$.getInterfaces={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getInterfaces')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getInterfaces']};}};})(ClassOrInterface$meta$model.$$.prototype);}
return ClassOrInterface$meta$model;}
ex$.$init$ClassOrInterface$meta$model=$init$ClassOrInterface$meta$model;$init$ClassOrInterface$meta$model();ClassOrInterface$meta$model.$$.prototype.typeOf=function typeOf(instance$8){
var _t={t:this.tipo};
if (this.$targs)_t.a=this.$targs;
return is$(instance$8,_t);
};
ClassOrInterface$meta$model.$$.prototype.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Type','$m','typeOf']};};
ClassOrInterface$meta$model.$$.prototype.supertypeOf=function supertypeOf(t){
if (is$(t,{t:AppliedUnionType$jsint}) || is$(t,{t:AppliedIntersectionType$jsint})) {
return extendsType(t.tipo, this.$$targs$$.Type$ClassOrInterface);
}
return extendsType(t.$$targs$$.Target$Type,this.$$targs$$.Type$ClassOrInterface);
};
ClassOrInterface$meta$model.$$.prototype.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type:{t:Anything}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Type','$m','supertypeOf']};};
ClassOrInterface$meta$model.$$.prototype.exactly=function exactly(type$10){
return type$10.tipo && this.tipo === type$10.tipo;
};
ClassOrInterface$meta$model.$$.prototype.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type:{t:Anything}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Type','$m','exactly']};};
function Member$meta$model($$targs$$,member$){set_type_args(member$,$$targs$$,Member$meta$model);Qualified$meta$model({Container$Qualified:$$targs$$.Container$Member,Kind$Qualified:$$targs$$.Kind$Member},member$);}
Member$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Member:{dv:'in',def:{t:Nothing}},Kind$Member:{dv:'out',sts:[{t:Model$meta$model}],def:{t:Model$meta$model}}},sts:[{t:Qualified$meta$model,a:{Container$Qualified:'Container$Member',Kind$Qualified:'Kind$Member'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Member')];},d:['ceylon.language.meta.model','Member']};};
ex$.Member$meta$model=Member$meta$model;function $init$Member$meta$model(){if(Member$meta$model.$$===undefined){initTypeProtoI(Member$meta$model,'ceylon.language.meta.model::Member',$init$Qualified$meta$model());
(function(member$){member$.$prop$getDeclaringType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}},$cont:Member$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Member:$at:declaringType')];},d:['ceylon.language.meta.model','Member','$at','declaringType']};}};})(Member$meta$model.$$.prototype);}
return Member$meta$model;}
ex$.$init$Member$meta$model=$init$Member$meta$model;$init$Member$meta$model();atr$(Member$meta$model.$$.prototype,'container',function(){
return this.declaringClassOrInterface;
},undefined,function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Type$meta$model,a:{Type:{t:Anything}}}]},$cont:Member$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Member','$at','container']};});
function Applicable$meta$model($$targs$$,applicable$){set_type_args(applicable$,$$targs$$,Applicable$meta$model);Callable({Return$Callable:$$targs$$.Type$Applicable,Arguments$Callable:$$targs$$.Arguments$Applicable},applicable$);}
Applicable$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Applicable:{dv:'out',def:{t:Anything}},Arguments$Applicable:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Callable,a:{Return$Callable:'Type$Applicable',Arguments$Callable:'Arguments$Applicable'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Applicable')];},d:['ceylon.language.meta.model','Applicable']};};
ex$.Applicable$meta$model=Applicable$meta$model;function $init$Applicable$meta$model(){if(Applicable$meta$model.$$===undefined){initTypeProtoI(Applicable$meta$model,'ceylon.language.meta.model::Applicable',$init$Callable());
(function(applicable$){applicable$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Type$Applicable',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:Applicable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Applicable:$m:apply'),$_throws("IncompatibleTypeException","If any argument is not assignable to this applicable\'s corresponding parameter"),$_throws("InvocationException","If there are not enough or too many provided arguments")];},d:['ceylon.language.meta.model','Applicable','$m','apply']};}};applicable$.namedApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Type$Applicable',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:Applicable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Applicable:$m:namedApply'),$_throws("IncompatibleTypeException","If any argument is not assignable to this applicable\'s corresponding parameter"),$_throws("InvocationException","If there are not enough or too many provided arguments, \nor if the target does not support named invocation")];},d:['ceylon.language.meta.model','Applicable','$m','namedApply']};}};})(Applicable$meta$model.$$.prototype);}
return Applicable$meta$model;}
ex$.$init$Applicable$meta$model=$init$Applicable$meta$model;$init$Applicable$meta$model();function Attribute$meta$model($$targs$$,attribute$){set_type_args(attribute$,$$targs$$,Attribute$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Get$Attribute,Set$ValueModel:$$targs$$.Set$Attribute},attribute$);Member$meta$model({Kind$Member:{t:Value$meta$model,a:{Get$Value:$$targs$$.Get$Attribute,Set$Value:$$targs$$.Set$Attribute}},Container$Member:$$targs$$.Container$Attribute},attribute$);}
Attribute$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Attribute:{dv:'in',def:{t:Nothing}},Get$Attribute:{dv:'out',def:{t:Anything}},Set$Attribute:{dv:'in',def:{t:Nothing}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Get$Attribute',Set$ValueModel:'Set$Attribute'}},{t:Member$meta$model,a:{Kind$Member:{t:Value$meta$model,a:{Get$Value:'Get$Attribute',Set$Value:'Set$Attribute'}},Container$Member:'Container$Attribute'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Attribute')];},d:['ceylon.language.meta.model','Attribute']};};
ex$.Attribute$meta$model=Attribute$meta$model;function $init$Attribute$meta$model(){if(Attribute$meta$model.$$===undefined){initTypeProtoI(Attribute$meta$model,'ceylon.language.meta.model::Attribute',$init$ValueModel$meta$model(),$init$Member$meta$model());
(function(attribute$){attribute$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:Attribute$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Attribute:$at:declaration')];},d:['ceylon.language.meta.model','Attribute','$at','declaration']};}};attribute$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$Attribute',Set$Value:'Set$Attribute'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Attribute$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Attribute:$m:bind'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Attribute','$m','bind']};}};})(Attribute$meta$model.$$.prototype);}
return Attribute$meta$model;}
ex$.$init$Attribute$meta$model=$init$Attribute$meta$model;$init$Attribute$meta$model();function CallableConstructor$meta$model($$targs$$,callableConstructor$){set_type_args(callableConstructor$,$$targs$$,CallableConstructor$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$CallableConstructor,Type$FunctionModel:$$targs$$.Type$CallableConstructor},callableConstructor$);Applicable$meta$model({Arguments$Applicable:$$targs$$.Arguments$CallableConstructor,Type$Applicable:$$targs$$.Type$CallableConstructor},callableConstructor$);}
CallableConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$CallableConstructor:{dv:'out',def:{t:$_Object}},Arguments$CallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$CallableConstructor',Type$FunctionModel:'Type$CallableConstructor'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$CallableConstructor',Type$Applicable:'Type$CallableConstructor'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:CallableConstructor')];},d:['ceylon.language.meta.model','CallableConstructor']};};
ex$.CallableConstructor$meta$model=CallableConstructor$meta$model;function $init$CallableConstructor$meta$model(){if(CallableConstructor$meta$model.$$===undefined){initTypeProtoI(CallableConstructor$meta$model,'ceylon.language.meta.model::CallableConstructor',$init$FunctionModel$meta$model(),$init$Applicable$meta$model());
(function(callableConstructor$){callableConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:CallableConstructor$meta$model,pa:7,an:function(){return[doc("This constructor\'s declaration.")];},d:['ceylon.language.meta.model','CallableConstructor','$at','declaration']};}};callableConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$CallableConstructor'}},$cont:CallableConstructor$meta$model,pa:7,d:['ceylon.language.meta.model','CallableConstructor','$at','type']};}};callableConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$CallableConstructor'}}]},$cont:CallableConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:CallableConstructor:$at:container')];},d:['ceylon.language.meta.model','CallableConstructor','$at','container']};}};})(CallableConstructor$meta$model.$$.prototype);}
return CallableConstructor$meta$model;}
ex$.$init$CallableConstructor$meta$model=$init$CallableConstructor$meta$model;$init$CallableConstructor$meta$model();function Class$meta$model($$targs$$,class$){set_type_args(class$,$$targs$$,Class$meta$model);ClassModel$meta$model({Arguments$ClassModel:$$targs$$.Arguments$Class,Type$ClassModel:$$targs$$.Type$Class},class$);Applicable$meta$model({Arguments$Applicable:$$targs$$.Arguments$Class,Type$Applicable:$$targs$$.Type$Class},class$);}
Class$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Class:{dv:'out',def:{t:Anything}},Arguments$Class:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:ClassModel$meta$model,a:{Arguments$ClassModel:'Arguments$Class',Type$ClassModel:'Type$Class'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$Class',Type$Applicable:'Type$Class'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Class')];},d:['ceylon.language.meta.model','Class']};};
ex$.Class$meta$model=Class$meta$model;function $init$Class$meta$model(){if(Class$meta$model.$$===undefined){initTypeProtoI(Class$meta$model,'ceylon.language.meta.model::Class',$init$ClassModel$meta$model(),$init$Applicable$meta$model());
(function(class$){class$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$Class',Type$CallableConstructor:'Type$Class'}}]},$cont:Class$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Class:$at:defaultConstructor')];},d:['ceylon.language.meta.model','Class','$at','defaultConstructor']};}};class$.getConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getConstructor',Type$CallableConstructor:'Type$Class'}},{t:'u',l:[{t:Null},{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$Class'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Class$meta$model,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Class:$m:getConstructor')];},d:['ceylon.language.meta.model','Class','$m','getConstructor']};}};})(Class$meta$model.$$.prototype);}
return Class$meta$model;}
ex$.$init$Class$meta$model=$init$Class$meta$model;$init$Class$meta$model();function ClassModel$meta$model($$targs$$,classModel$){set_type_args(classModel$,$$targs$$,ClassModel$meta$model);ClassOrInterface$meta$model({Type$ClassOrInterface:$$targs$$.Type$ClassModel},classModel$);}
ClassModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$ClassModel:{dv:'out',def:{t:Anything}},Arguments$ClassModel:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$ClassModel'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel')];},d:['ceylon.language.meta.model','ClassModel']};};
ex$.ClassModel$meta$model=ClassModel$meta$model;function $init$ClassModel$meta$model(){if(ClassModel$meta$model.$$===undefined){initTypeProtoI(ClassModel$meta$model,'ceylon.language.meta.model::ClassModel',$init$ClassOrInterface$meta$model());
(function(classModel$){classModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:ClassModel$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$at:declaration')];},d:['ceylon.language.meta.model','ClassModel','$at','declaration']};}};classModel$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$ClassModel',Type$FunctionModel:'Type$ClassModel'}}]},$cont:ClassModel$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$at:defaultConstructor')];},d:['ceylon.language.meta.model','ClassModel','$at','defaultConstructor']};}};classModel$.getConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getConstructor',Type$FunctionModel:'Type$ClassModel'}},{t:'u',l:[{t:Null},{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassModel$meta$model,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getConstructor'),$_throws("IncompatibleTypeException","If the specified type arguments are not \ncompatible with the actual result.")];},d:['ceylon.language.meta.model','ClassModel','$m','getConstructor']};}};classModel$.getDeclaredConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getDeclaredConstructor',Type$FunctionModel:'Type$ClassModel'}},{t:'u',l:[{t:Null},{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassModel$meta$model,tp:{Arguments$getDeclaredConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getDeclaredConstructor'),$_throws("IncompatibleTypeException","If the specified type arguments are not \ncompatible with the actual result.")];},d:['ceylon.language.meta.model','ClassModel','$m','getDeclaredConstructor']};}};classModel$.getDeclaredCallableConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getDeclaredCallableConstructors',Type$FunctionModel:'Type$ClassModel'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,tp:{Arguments$getDeclaredCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getDeclaredCallableConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getDeclaredCallableConstructors']};}};classModel$.getCallableConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getCallableConstructors',Type$FunctionModel:'Type$ClassModel'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,tp:{Arguments$getCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getCallableConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getCallableConstructors']};}};classModel$.getDeclaredValueConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getDeclaredValueConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getDeclaredValueConstructors']};}};classModel$.getValueConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getValueConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getValueConstructors']};}};})(ClassModel$meta$model.$$.prototype);}
return ClassModel$meta$model;}
ex$.$init$ClassModel$meta$model=$init$ClassModel$meta$model;$init$ClassModel$meta$model();function Declared$meta$model(declared$){}
Declared$meta$model.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Declared')];},d:['ceylon.language.meta.model','Declared']};};
ex$.Declared$meta$model=Declared$meta$model;function $init$Declared$meta$model(){if(Declared$meta$model.$$===undefined){initTypeProtoI(Declared$meta$model,'ceylon.language.meta.model::Declared');
(function(declared$){declared$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Declaration$meta$declaration},$cont:Declared$meta$model,pa:5,an:function(){return[doc("The declaration model of this model.")];},d:['ceylon.language.meta.model','Declared','$at','declaration']};}};declared$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Type$meta$model,a:{Target$Type:{t:Anything}}},{t:'u',l:[{t:Null},{t:Package$meta$declaration}]}]},$cont:Declared$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Declared:$at:container')];},d:['ceylon.language.meta.model','Declared','$at','container']};}};})(Declared$meta$model.$$.prototype);}
return Declared$meta$model;}
ex$.$init$Declared$meta$model=$init$Declared$meta$model;$init$Declared$meta$model();function $_Function$meta$model($$targs$$,function$){set_type_args(function$,$$targs$$,$_Function$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$Function,Type$FunctionModel:$$targs$$.Type$Function},function$);Applicable$meta$model({Arguments$Applicable:$$targs$$.Arguments$Function,Type$Applicable:$$targs$$.Type$Function},function$);}
$_Function$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Function:{dv:'out',def:{t:Anything}},Arguments$Function:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$Function',Type$FunctionModel:'Type$Function'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$Function',Type$Applicable:'Type$Function'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Function')];},d:['ceylon.language.meta.model','Function']};};
ex$.$_Function$meta$model=$_Function$meta$model;function $init$$_Function$meta$model(){if($_Function$meta$model.$$===undefined){initTypeProtoI($_Function$meta$model,'ceylon.language.meta.model::Function',$init$FunctionModel$meta$model(),$init$Applicable$meta$model());
(function(function$){function$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:$_Function$meta$model,pa:7,an:function(){return[doc("This function\'s declaration.")];},d:['ceylon.language.meta.model','Function','$at','declaration']};}};})($_Function$meta$model.$$.prototype);}
return $_Function$meta$model;}
ex$.$init$$_Function$meta$model=$init$$_Function$meta$model;$init$$_Function$meta$model();function FunctionModel$meta$model($$targs$$,functionModel$){set_type_args(functionModel$,$$targs$$,FunctionModel$meta$model);Model$meta$model(functionModel$);Generic$meta$model(functionModel$);Functional$meta$model(functionModel$);}
FunctionModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$FunctionModel:{dv:'out',def:{t:Anything}},Arguments$FunctionModel:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Model$meta$model},{t:Generic$meta$model},{t:Functional$meta$model}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:FunctionModel')];},d:['ceylon.language.meta.model','FunctionModel']};};
ex$.FunctionModel$meta$model=FunctionModel$meta$model;function $init$FunctionModel$meta$model(){if(FunctionModel$meta$model.$$===undefined){initTypeProtoI(FunctionModel$meta$model,'ceylon.language.meta.model::FunctionModel',$init$Model$meta$model(),$init$Generic$meta$model(),$init$Functional$meta$model());
(function(functionModel$){functionModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}]},$cont:FunctionModel$meta$model,pa:7,an:function(){return[doc("This function\'s declaration.")];},d:['ceylon.language.meta.model','FunctionModel','$at','declaration']};}};functionModel$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$FunctionModel'}},$cont:FunctionModel$meta$model,pa:5,an:function(){return[doc("This function\'s return closed type.")];},d:['ceylon.language.meta.model','FunctionModel','$at','type']};}};})(FunctionModel$meta$model.$$.prototype);}
return FunctionModel$meta$model;}
ex$.$init$FunctionModel$meta$model=$init$FunctionModel$meta$model;$init$FunctionModel$meta$model();function Functional$meta$model(functional$){}
Functional$meta$model.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Functional')];},d:['ceylon.language.meta.model','Functional']};};
ex$.Functional$meta$model=Functional$meta$model;function $init$Functional$meta$model(){if(Functional$meta$model.$$===undefined){initTypeProtoI(Functional$meta$model,'ceylon.language.meta.model::Functional');
(function(functional$){functional$.$prop$getParameterTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:Functional$meta$model,pa:5,an:function(){return[doc("The parameter types")];},d:['ceylon.language.meta.model','Functional','$at','parameterTypes']};}};})(Functional$meta$model.$$.prototype);}
return Functional$meta$model;}
ex$.$init$Functional$meta$model=$init$Functional$meta$model;$init$Functional$meta$model();function Generic$meta$model(generic$){}
Generic$meta$model.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Generic')];},d:['ceylon.language.meta.model','Generic']};};
ex$.Generic$meta$model=Generic$meta$model;function $init$Generic$meta$model(){if(Generic$meta$model.$$===undefined){initTypeProtoI(Generic$meta$model,'ceylon.language.meta.model::Generic');
(function(generic$){generic$.$prop$getTypeArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:Generic$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Generic:$at:typeArguments')];},d:['ceylon.language.meta.model','Generic','$at','typeArguments']};}};generic$.$prop$getTypeArgumentList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:Generic$meta$model,pa:5,an:function(){return[doc("The list of type arguments for this generic model.")];},d:['ceylon.language.meta.model','Generic','$at','typeArgumentList']};}};generic$.$prop$getTypeArgumentWithVariances={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:Generic$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Generic:$at:typeArgumentWithVariances')];},d:['ceylon.language.meta.model','Generic','$at','typeArgumentWithVariances']};}};generic$.$prop$getTypeArgumentWithVarianceList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:Generic$meta$model,pa:5,an:function(){return[doc("The list of type arguments for this generic model.")];},d:['ceylon.language.meta.model','Generic','$at','typeArgumentWithVarianceList']};}};})(Generic$meta$model.$$.prototype);}
return Generic$meta$model;}
ex$.$init$Generic$meta$model=$init$Generic$meta$model;$init$Generic$meta$model();function Gettable$meta$model($$targs$$,gettable$){set_type_args(gettable$,$$targs$$,Gettable$meta$model);}
Gettable$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Get$Gettable:{dv:'out',def:{t:Anything}},Set$Gettable:{dv:'in',def:{t:Nothing}}},pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable')];},d:['ceylon.language.meta.model','Gettable']};};
ex$.Gettable$meta$model=Gettable$meta$model;function $init$Gettable$meta$model(){if(Gettable$meta$model.$$===undefined){initTypeProtoI(Gettable$meta$model,'ceylon.language.meta.model::Gettable');
(function(gettable$){gettable$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Get$Gettable',ps:[],$cont:Gettable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable:$m:get'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Gettable','$m','get']};}};gettable$.set={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:'Set$Gettable'}],$cont:Gettable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable:$m:set'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Gettable','$m','set']};}};gettable$.setIfAssignable={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:Gettable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable:$m:setIfAssignable'),$_throws("IncompatibleTypeException","If the specified new value is not of a subtype of this variable\'s type"),$_throws("MutationException","If this value is not variable"),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Gettable','$m','setIfAssignable']};}};})(Gettable$meta$model.$$.prototype);}
return Gettable$meta$model;}
ex$.$init$Gettable$meta$model=$init$Gettable$meta$model;$init$Gettable$meta$model();function IncompatibleTypeException$meta$model($1h4,incompatibleTypeException$){$init$IncompatibleTypeException$meta$model();
if(incompatibleTypeException$===undefined)incompatibleTypeException$=new IncompatibleTypeException$meta$model.$$;
incompatibleTypeException$.$1h4_=$1h4;Exception($1h4,undefined,incompatibleTypeException$);return incompatibleTypeException$;}
IncompatibleTypeException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:IncompatibleTypeException')];},d:['ceylon.language.meta.model','IncompatibleTypeException']};};
ex$.IncompatibleTypeException$meta$model=IncompatibleTypeException$meta$model;function $init$IncompatibleTypeException$meta$model(){if(IncompatibleTypeException$meta$model.$$===undefined){initTypeProto(IncompatibleTypeException$meta$model,'ceylon.language.meta.model::IncompatibleTypeException',$init$Exception());
(function(incompatibleTypeException$){atr$(incompatibleTypeException$,'$1h4',function(){return this.$1h4_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:IncompatibleTypeException$meta$model,d:['ceylon.language.meta.model','IncompatibleTypeException','$at','message$kubtzh']};});})(IncompatibleTypeException$meta$model.$$.prototype);}
return IncompatibleTypeException$meta$model;}
ex$.$init$IncompatibleTypeException$meta$model=$init$IncompatibleTypeException$meta$model;$init$IncompatibleTypeException$meta$model();function Interface$meta$model($$targs$$,interface$){set_type_args(interface$,$$targs$$,Interface$meta$model);InterfaceModel$meta$model({Type$InterfaceModel:$$targs$$.Type$Interface},interface$);}
Interface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Interface:{dv:'out',def:{t:Anything}}},sts:[{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:'Type$Interface'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Interface')];},d:['ceylon.language.meta.model','Interface']};};
ex$.Interface$meta$model=Interface$meta$model;function $init$Interface$meta$model(){if(Interface$meta$model.$$===undefined){initTypeProtoI(Interface$meta$model,'ceylon.language.meta.model::Interface',$init$InterfaceModel$meta$model());
}
return Interface$meta$model;}
ex$.$init$Interface$meta$model=$init$Interface$meta$model;$init$Interface$meta$model();function InterfaceModel$meta$model($$targs$$,interfaceModel$){set_type_args(interfaceModel$,$$targs$$,InterfaceModel$meta$model);ClassOrInterface$meta$model({Type$ClassOrInterface:$$targs$$.Type$InterfaceModel},interfaceModel$);}
InterfaceModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$InterfaceModel:{dv:'out',def:{t:Anything}}},sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$InterfaceModel'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:InterfaceModel')];},d:['ceylon.language.meta.model','InterfaceModel']};};
ex$.InterfaceModel$meta$model=InterfaceModel$meta$model;function $init$InterfaceModel$meta$model(){if(InterfaceModel$meta$model.$$===undefined){initTypeProtoI(InterfaceModel$meta$model,'ceylon.language.meta.model::InterfaceModel',$init$ClassOrInterface$meta$model());
(function(interfaceModel$){interfaceModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:InterfaceModel$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:InterfaceModel:$at:declaration')];},d:['ceylon.language.meta.model','InterfaceModel','$at','declaration']};}};})(InterfaceModel$meta$model.$$.prototype);}
return InterfaceModel$meta$model;}
ex$.$init$InterfaceModel$meta$model=$init$InterfaceModel$meta$model;$init$InterfaceModel$meta$model();function IntersectionType$meta$model($$targs$$,intersectionType$){set_type_args(intersectionType$,$$targs$$,IntersectionType$meta$model);Type$meta$model({Target$Type:$$targs$$.Intersection$IntersectionType},intersectionType$);}
IntersectionType$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Intersection$IntersectionType:{dv:'out',def:{t:Anything}}},sts:[{t:Type$meta$model,a:{Target$Type:'Intersection$IntersectionType'}}],pa:17,an:function(){return[doc("A closed intersection type.")];},d:['ceylon.language.meta.model','IntersectionType']};};
ex$.IntersectionType$meta$model=IntersectionType$meta$model;function $init$IntersectionType$meta$model(){if(IntersectionType$meta$model.$$===undefined){initTypeProtoI(IntersectionType$meta$model,'ceylon.language.meta.model::IntersectionType',$init$Type$meta$model());
(function(intersectionType$){intersectionType$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:IntersectionType$meta$model,pa:5,an:function(){return[doc("The list of closed satisfied types of this intersection.")];},d:['ceylon.language.meta.model','IntersectionType','$at','satisfiedTypes']};}};})(IntersectionType$meta$model.$$.prototype);}
return IntersectionType$meta$model;}
ex$.$init$IntersectionType$meta$model=$init$IntersectionType$meta$model;$init$IntersectionType$meta$model();function InvocationException$meta$model($1h5,invocationException$){$init$InvocationException$meta$model();
if(invocationException$===undefined)invocationException$=new InvocationException$meta$model.$$;
invocationException$.$1h5_=$1h5;Exception($1h5,undefined,invocationException$);return invocationException$;}
InvocationException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:InvocationException')];},d:['ceylon.language.meta.model','InvocationException']};};
ex$.InvocationException$meta$model=InvocationException$meta$model;function $init$InvocationException$meta$model(){if(InvocationException$meta$model.$$===undefined){initTypeProto(InvocationException$meta$model,'ceylon.language.meta.model::InvocationException',$init$Exception());
(function(invocationException$){atr$(invocationException$,'$1h5',function(){return this.$1h5_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:InvocationException$meta$model,d:['ceylon.language.meta.model','InvocationException','$at','message$g4ihko']};});})(InvocationException$meta$model.$$.prototype);}
return InvocationException$meta$model;}
ex$.$init$InvocationException$meta$model=$init$InvocationException$meta$model;$init$InvocationException$meta$model();function MemberClass$meta$model($$targs$$,memberClass$){set_type_args(memberClass$,$$targs$$,MemberClass$meta$model);ClassModel$meta$model({Arguments$ClassModel:$$targs$$.Arguments$MemberClass,Type$ClassModel:$$targs$$.Type$MemberClass},memberClass$);Member$meta$model({Kind$Member:{t:Class$meta$model,a:{Type$Class:$$targs$$.Type$MemberClass,Arguments$Class:$$targs$$.Arguments$MemberClass}},Container$Member:$$targs$$.Container$MemberClass},memberClass$);}
MemberClass$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClass:{dv:'in',def:{t:Nothing}},Type$MemberClass:{dv:'out',def:{t:Anything}},Arguments$MemberClass:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:ClassModel$meta$model,a:{Arguments$ClassModel:'Arguments$MemberClass',Type$ClassModel:'Type$MemberClass'}},{t:Member$meta$model,a:{Kind$Member:{t:Class$meta$model,a:{Type$Class:'Type$MemberClass',Arguments$Class:'Arguments$MemberClass'}},Container$Member:'Container$MemberClass'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClass')];},d:['ceylon.language.meta.model','MemberClass']};};
ex$.MemberClass$meta$model=MemberClass$meta$model;function $init$MemberClass$meta$model(){if(MemberClass$meta$model.$$===undefined){initTypeProtoI(MemberClass$meta$model,'ceylon.language.meta.model::MemberClass',$init$ClassModel$meta$model(),$init$Member$meta$model());
(function(memberClass$){memberClass$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$MemberClass',Arguments$Class:'Arguments$MemberClass'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberClass$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClass','$m','bind']};}};memberClass$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$MemberClass',Arguments$MemberClassCallableConstructor:'Arguments$MemberClass',Container$MemberClassCallableConstructor:'Container$MemberClass'}}]},$cont:MemberClass$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClass','$at','defaultConstructor']};}};memberClass$.getConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$MemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getConstructor',Container$MemberClassCallableConstructor:'Container$MemberClass'}},{t:'u',l:[{t:Null},{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$MemberClass',Type$MemberClassValueConstructor:'Type$MemberClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:MemberClass$meta$model,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClass:$m:getConstructor')];},d:['ceylon.language.meta.model','MemberClass','$m','getConstructor']};}};})(MemberClass$meta$model.$$.prototype);}
return MemberClass$meta$model;}
ex$.$init$MemberClass$meta$model=$init$MemberClass$meta$model;$init$MemberClass$meta$model();function MemberClassCallableConstructor$meta$model($$targs$$,memberClassCallableConstructor$){set_type_args(memberClassCallableConstructor$,$$targs$$,MemberClassCallableConstructor$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$MemberClassCallableConstructor,Type$FunctionModel:$$targs$$.Type$MemberClassCallableConstructor},memberClassCallableConstructor$);Qualified$meta$model({Container$Qualified:$$targs$$.Container$MemberClassCallableConstructor,Kind$Qualified:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:$$targs$$.Arguments$MemberClassCallableConstructor,Type$CallableConstructor:$$targs$$.Type$MemberClassCallableConstructor}}},memberClassCallableConstructor$);}
MemberClassCallableConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClassCallableConstructor:{dv:'in',def:{t:Nothing}},Type$MemberClassCallableConstructor:{dv:'out',def:{t:$_Object}},Arguments$MemberClassCallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$MemberClassCallableConstructor',Type$FunctionModel:'Type$MemberClassCallableConstructor'}},{t:Qualified$meta$model,a:{Container$Qualified:'Container$MemberClassCallableConstructor',Kind$Qualified:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$MemberClassCallableConstructor',Type$CallableConstructor:'Type$MemberClassCallableConstructor'}}}}],pa:17,an:function(){return[doc("A model for a callable constructor of a member class."),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.model'),MemberClassValueConstructor$meta$model)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.model','MemberClassCallableConstructor']};};
ex$.MemberClassCallableConstructor$meta$model=MemberClassCallableConstructor$meta$model;function $init$MemberClassCallableConstructor$meta$model(){if(MemberClassCallableConstructor$meta$model.$$===undefined){initTypeProtoI(MemberClassCallableConstructor$meta$model,'ceylon.language.meta.model::MemberClassCallableConstructor',$init$FunctionModel$meta$model(),$init$Qualified$meta$model());
(function(memberClassCallableConstructor$){memberClassCallableConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:MemberClassCallableConstructor$meta$model,pa:7,an:function(){return[doc("This constructor\'s declaration.")];},d:['ceylon.language.meta.model','MemberClassCallableConstructor','$at','declaration']};}};memberClassCallableConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$MemberClassCallableConstructor',Type$MemberClass:'Type$MemberClassCallableConstructor'}},$cont:MemberClassCallableConstructor$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClassCallableConstructor','$at','type']};}};memberClassCallableConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$MemberClassCallableConstructor'}},$cont:MemberClassCallableConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClassCallableConstructor:$at:container')];},d:['ceylon.language.meta.model','MemberClassCallableConstructor','$at','container']};}};memberClassCallableConstructor$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$MemberClassCallableConstructor',Type$CallableConstructor:'Type$MemberClassCallableConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberClassCallableConstructor$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClassCallableConstructor','$m','bind']};}};})(MemberClassCallableConstructor$meta$model.$$.prototype);}
return MemberClassCallableConstructor$meta$model;}
ex$.$init$MemberClassCallableConstructor$meta$model=$init$MemberClassCallableConstructor$meta$model;$init$MemberClassCallableConstructor$meta$model();function MemberClassValueConstructor$meta$model($$targs$$,memberClassValueConstructor$){set_type_args(memberClassValueConstructor$,$$targs$$,MemberClassValueConstructor$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Type$MemberClassValueConstructor,Set$ValueModel:{t:Nothing}},memberClassValueConstructor$);Qualified$meta$model({Container$Qualified:$$targs$$.Container$MemberClassValueConstructor,Kind$Qualified:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:$$targs$$.Type$MemberClassValueConstructor}}},memberClassValueConstructor$);}
MemberClassValueConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClassValueConstructor:{dv:'in',def:{t:Nothing}},Type$MemberClassValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$MemberClassValueConstructor',Set$ValueModel:{t:Nothing}}},{t:Qualified$meta$model,a:{Container$Qualified:'Container$MemberClassValueConstructor',Kind$Qualified:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$MemberClassValueConstructor'}}}}],pa:17,an:function(){return[doc("A model for a value constructor of a member class.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor']};};
ex$.MemberClassValueConstructor$meta$model=MemberClassValueConstructor$meta$model;function $init$MemberClassValueConstructor$meta$model(){if(MemberClassValueConstructor$meta$model.$$===undefined){initTypeProtoI(MemberClassValueConstructor$meta$model,'ceylon.language.meta.model::MemberClassValueConstructor',$init$ValueModel$meta$model(),$init$Qualified$meta$model());
(function(memberClassValueConstructor$){memberClassValueConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$at','declaration']};}};memberClassValueConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$MemberClassValueConstructor',Type$MemberClass:'Type$MemberClassValueConstructor'}},$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s closed type.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$at','type']};}};memberClassValueConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$MemberClassValueConstructor'}},$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClassValueConstructor:$at:container')];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$at','container']};}};memberClassValueConstructor$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$MemberClassValueConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClassValueConstructor:$m:bind'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$m','bind']};}};})(MemberClassValueConstructor$meta$model.$$.prototype);}
return MemberClassValueConstructor$meta$model;}
ex$.$init$MemberClassValueConstructor$meta$model=$init$MemberClassValueConstructor$meta$model;$init$MemberClassValueConstructor$meta$model();function MemberInterface$meta$model($$targs$$,memberInterface$){set_type_args(memberInterface$,$$targs$$,MemberInterface$meta$model);InterfaceModel$meta$model({Type$InterfaceModel:$$targs$$.Type$MemberInterface},memberInterface$);Member$meta$model({Kind$Member:{t:Interface$meta$model,a:{Type$Interface:$$targs$$.Type$MemberInterface}},Container$Member:$$targs$$.Container$MemberInterface},memberInterface$);}
MemberInterface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberInterface:{dv:'in',def:{t:Nothing}},Type$MemberInterface:{dv:'out',def:{t:Anything}}},sts:[{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:'Type$MemberInterface'}},{t:Member$meta$model,a:{Kind$Member:{t:Interface$meta$model,a:{Type$Interface:'Type$MemberInterface'}},Container$Member:'Container$MemberInterface'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberInterface')];},d:['ceylon.language.meta.model','MemberInterface']};};
ex$.MemberInterface$meta$model=MemberInterface$meta$model;function $init$MemberInterface$meta$model(){if(MemberInterface$meta$model.$$===undefined){initTypeProtoI(MemberInterface$meta$model,'ceylon.language.meta.model::MemberInterface',$init$InterfaceModel$meta$model(),$init$Member$meta$model());
(function(memberInterface$){memberInterface$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$MemberInterface'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberInterface$meta$model,pa:7,d:['ceylon.language.meta.model','MemberInterface','$m','bind']};}};})(MemberInterface$meta$model.$$.prototype);}
return MemberInterface$meta$model;}
ex$.$init$MemberInterface$meta$model=$init$MemberInterface$meta$model;$init$MemberInterface$meta$model();function Method$meta$model($$targs$$,method$){set_type_args(method$,$$targs$$,Method$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$Method,Type$FunctionModel:$$targs$$.Type$Method},method$);Member$meta$model({Kind$Member:{t:$_Function$meta$model,a:{Arguments$Function:$$targs$$.Arguments$Method,Type$Function:$$targs$$.Type$Method}},Container$Member:$$targs$$.Container$Method},method$);}
Method$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Method:{dv:'in',def:{t:Nothing}},Type$Method:{dv:'out',def:{t:Anything}},Arguments$Method:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$Method',Type$FunctionModel:'Type$Method'}},{t:Member$meta$model,a:{Kind$Member:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$Method',Type$Function:'Type$Method'}},Container$Member:'Container$Method'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Method')];},d:['ceylon.language.meta.model','Method']};};
ex$.Method$meta$model=Method$meta$model;function $init$Method$meta$model(){if(Method$meta$model.$$===undefined){initTypeProtoI(Method$meta$model,'ceylon.language.meta.model::Method',$init$FunctionModel$meta$model(),$init$Member$meta$model());
(function(method$){method$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:Method$meta$model,pa:7,an:function(){return[doc("This function\'s declaration.")];},d:['ceylon.language.meta.model','Method','$at','declaration']};}};method$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$Method',Type$Function:'Type$Method'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Method$meta$model,pa:7,d:['ceylon.language.meta.model','Method','$m','bind']};}};})(Method$meta$model.$$.prototype);}
return Method$meta$model;}
ex$.$init$Method$meta$model=$init$Method$meta$model;$init$Method$meta$model();function Model$meta$model(model$){Declared$meta$model(model$);}
Model$meta$model.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Declared$meta$model}],of:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}},{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:{t:Nothing},Type$FunctionModel:{t:Anything}}},{t:ValueModel$meta$model,a:{Get$ValueModel:{t:Anything},Set$ValueModel:{t:Nothing}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Model')];},d:['ceylon.language.meta.model','Model']};};
ex$.Model$meta$model=Model$meta$model;function $init$Model$meta$model(){if(Model$meta$model.$$===undefined){initTypeProtoI(Model$meta$model,'ceylon.language.meta.model::Model',$init$Declared$meta$model());
(function(model$){model$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:Model$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Model:$at:container')];},d:['ceylon.language.meta.model','Model','$at','container']};}};model$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:Model$meta$model,pa:7,an:function(){return[doc("The declaration for this model.")];},d:['ceylon.language.meta.model','Model','$at','declaration']};}};})(Model$meta$model.$$.prototype);}
return Model$meta$model;}
ex$.$init$Model$meta$model=$init$Model$meta$model;$init$Model$meta$model();function MutationException$meta$model($1h6,mutationException$){$init$MutationException$meta$model();
if(mutationException$===undefined)mutationException$=new MutationException$meta$model.$$;
mutationException$.$1h6_=$1h6;Exception($1h6,undefined,mutationException$);return mutationException$;}
MutationException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MutationException')];},d:['ceylon.language.meta.model','MutationException']};};
ex$.MutationException$meta$model=MutationException$meta$model;function $init$MutationException$meta$model(){if(MutationException$meta$model.$$===undefined){initTypeProto(MutationException$meta$model,'ceylon.language.meta.model::MutationException',$init$Exception());
(function(mutationException$){atr$(mutationException$,'$1h6',function(){return this.$1h6_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:MutationException$meta$model,d:['ceylon.language.meta.model','MutationException','$at','message$l7zqwp']};});})(MutationException$meta$model.$$.prototype);}
return MutationException$meta$model;}
ex$.$init$MutationException$meta$model=$init$MutationException$meta$model;$init$MutationException$meta$model();function Qualified$meta$model($$targs$$,qualified$){set_type_args(qualified$,$$targs$$,Qualified$meta$model);Callable({Return$Callable:$$targs$$.Kind$Qualified,Arguments$Callable:mtt$([$$targs$$.Container$Qualified])},qualified$);}
Qualified$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Kind$Qualified:{dv:'out',def:{t:Anything}},Container$Qualified:{dv:'in',def:{t:Nothing}}},sts:[{t:Callable,a:{Return$Callable:'Kind$Qualified',Arguments$Callable:{t:'T',l:['Container$Qualified']}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Qualified')];},d:['ceylon.language.meta.model','Qualified']};};
ex$.Qualified$meta$model=Qualified$meta$model;function $init$Qualified$meta$model(){if(Qualified$meta$model.$$===undefined){initTypeProtoI(Qualified$meta$model,'ceylon.language.meta.model::Qualified',$init$Callable());
(function(qualified$){qualified$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Kind$Qualified',ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Qualified$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Qualified:$m:bind'),$_throws("IncompatibleTypeException","If the container is not assignable to this member\'s container")];},d:['ceylon.language.meta.model','Qualified','$m','bind']};}};})(Qualified$meta$model.$$.prototype);}
return Qualified$meta$model;}
ex$.$init$Qualified$meta$model=$init$Qualified$meta$model;$init$Qualified$meta$model();function StorageException$meta$model($1h7,storageException$){$init$StorageException$meta$model();
if(storageException$===undefined)storageException$=new StorageException$meta$model.$$;
storageException$.$1h7_=$1h7;Exception($1h7,undefined,storageException$);return storageException$;}
StorageException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:StorageException')];},d:['ceylon.language.meta.model','StorageException']};};
ex$.StorageException$meta$model=StorageException$meta$model;function $init$StorageException$meta$model(){if(StorageException$meta$model.$$===undefined){initTypeProto(StorageException$meta$model,'ceylon.language.meta.model::StorageException',$init$Exception());
(function(storageException$){atr$(storageException$,'$1h7',function(){return this.$1h7_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StorageException$meta$model,d:['ceylon.language.meta.model','StorageException','$at','message$hbm0f9']};});})(StorageException$meta$model.$$.prototype);}
return StorageException$meta$model;}
ex$.$init$StorageException$meta$model=$init$StorageException$meta$model;$init$StorageException$meta$model();function Type$meta$model($$targs$$,type$){set_type_args(type$,$$targs$$,Type$meta$model);}
Type$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Target$Type:{dv:'out',def:{t:Anything}}},pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type')];},d:['ceylon.language.meta.model','Type']};};
ex$.Type$meta$model=Type$meta$model;function $init$Type$meta$model(){if(Type$meta$model.$$===undefined){initTypeProtoI(Type$meta$model,'ceylon.language.meta.model::Type');
(function(type$){type$.typeOf={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:Type$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:typeOf')];},d:['ceylon.language.meta.model','Type','$m','typeOf']};}};type$.supertypeOf={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:Type$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:supertypeOf')];},d:['ceylon.language.meta.model','Type','$m','supertypeOf']};}};type$.subtypeOf=function($1h8){var type$=this;return $1h8.supertypeOf(type$);};type$.subtypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:Type$meta$model,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:subtypeOf')];},d:['ceylon.language.meta.model','Type','$m','subtypeOf']};};type$.exactly={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:Type$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:exactly')];},d:['ceylon.language.meta.model','Type','$m','exactly']};}};type$.union={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Target$Type','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:Type$meta$model,tp:{Other$union:{}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:union')];},d:['ceylon.language.meta.model','Type','$m','union']};}};type$.intersection={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Target$Type','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:Type$meta$model,tp:{Other$intersection:{}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:intersection')];},d:['ceylon.language.meta.model','Type','$m','intersection']};}};})(Type$meta$model.$$.prototype);}
return Type$meta$model;}
ex$.$init$Type$meta$model=$init$Type$meta$model;$init$Type$meta$model();function TypeApplicationException$meta$model($1h9,typeApplicationException$){$init$TypeApplicationException$meta$model();
if(typeApplicationException$===undefined)typeApplicationException$=new TypeApplicationException$meta$model.$$;
typeApplicationException$.$1h9_=$1h9;Exception($1h9,undefined,typeApplicationException$);return typeApplicationException$;}
TypeApplicationException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:TypeApplicationException')];},d:['ceylon.language.meta.model','TypeApplicationException']};};
ex$.TypeApplicationException$meta$model=TypeApplicationException$meta$model;function $init$TypeApplicationException$meta$model(){if(TypeApplicationException$meta$model.$$===undefined){initTypeProto(TypeApplicationException$meta$model,'ceylon.language.meta.model::TypeApplicationException',$init$Exception());
(function(typeApplicationException$){atr$(typeApplicationException$,'$1h9',function(){return this.$1h9_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:TypeApplicationException$meta$model,d:['ceylon.language.meta.model','TypeApplicationException','$at','message$9tu43y']};});})(TypeApplicationException$meta$model.$$.prototype);}
return TypeApplicationException$meta$model;}
ex$.$init$TypeApplicationException$meta$model=$init$TypeApplicationException$meta$model;$init$TypeApplicationException$meta$model();function TypeArgument$meta$model(){var $1ha=mtt$([{t:Type$meta$model,a:{Target$Type:{t:Anything}}},{t:Variance$meta$declaration}]);$1ha.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:TypeArgument')];},d:['ceylon.language.meta.model','TypeArgument']};};return $1ha;}
ex$.TypeArgument$meta$model=TypeArgument$meta$model;function UnionType$meta$model($$targs$$,unionType$){set_type_args(unionType$,$$targs$$,UnionType$meta$model);Type$meta$model({Target$Type:$$targs$$.Union$UnionType},unionType$);}
UnionType$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Union$UnionType:{dv:'out',def:{t:Anything}}},sts:[{t:Type$meta$model,a:{Target$Type:'Union$UnionType'}}],pa:17,an:function(){return[doc("A closed union type.")];},d:['ceylon.language.meta.model','UnionType']};};
ex$.UnionType$meta$model=UnionType$meta$model;function $init$UnionType$meta$model(){if(UnionType$meta$model.$$===undefined){initTypeProtoI(UnionType$meta$model,'ceylon.language.meta.model::UnionType',$init$Type$meta$model());
(function(unionType$){unionType$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:UnionType$meta$model,pa:5,an:function(){return[doc("The list of closed case types of this union.")];},d:['ceylon.language.meta.model','UnionType','$at','caseTypes']};}};})(UnionType$meta$model.$$.prototype);}
return UnionType$meta$model;}
ex$.$init$UnionType$meta$model=$init$UnionType$meta$model;$init$UnionType$meta$model();function Value$meta$model($$targs$$,value$){set_type_args(value$,$$targs$$,Value$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Get$Value,Set$ValueModel:$$targs$$.Set$Value},value$);Gettable$meta$model({Get$Gettable:$$targs$$.Get$Value,Set$Gettable:$$targs$$.Set$Value},value$);}
Value$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Get$Value:{dv:'out',def:{t:Anything}},Set$Value:{dv:'in',def:{t:Nothing}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Get$Value',Set$ValueModel:'Set$Value'}},{t:Gettable$meta$model,a:{Get$Gettable:'Get$Value',Set$Gettable:'Set$Value'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Value')];},d:['ceylon.language.meta.model','Value']};};
ex$.Value$meta$model=Value$meta$model;function $init$Value$meta$model(){if(Value$meta$model.$$===undefined){initTypeProtoI(Value$meta$model,'ceylon.language.meta.model::Value',$init$ValueModel$meta$model(),$init$Gettable$meta$model());
(function(value$){value$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:Value$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','Value','$at','declaration']};}};})(Value$meta$model.$$.prototype);}
return Value$meta$model;}
ex$.$init$Value$meta$model=$init$Value$meta$model;$init$Value$meta$model();function ValueConstructor$meta$model($$targs$$,valueConstructor$){set_type_args(valueConstructor$,$$targs$$,ValueConstructor$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Type$ValueConstructor,Set$ValueModel:{t:Nothing}},valueConstructor$);Gettable$meta$model({Get$Gettable:$$targs$$.Type$ValueConstructor,Set$Gettable:{t:Nothing}},valueConstructor$);}
ValueConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$ValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ValueConstructor',Set$ValueModel:{t:Nothing}}},{t:Gettable$meta$model,a:{Get$Gettable:'Type$ValueConstructor',Set$Gettable:{t:Nothing}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ValueConstructor')];},d:['ceylon.language.meta.model','ValueConstructor']};};
ex$.ValueConstructor$meta$model=ValueConstructor$meta$model;function $init$ValueConstructor$meta$model(){if(ValueConstructor$meta$model.$$===undefined){initTypeProtoI(ValueConstructor$meta$model,'ceylon.language.meta.model::ValueConstructor',$init$ValueModel$meta$model(),$init$Gettable$meta$model());
(function(valueConstructor$){valueConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:ValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','ValueConstructor','$at','declaration']};}};valueConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$ValueConstructor',Arguments$Class:{t:Nothing}}},$cont:ValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s closed type.")];},d:['ceylon.language.meta.model','ValueConstructor','$at','type']};}};valueConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Class$meta$model,a:{Type$Class:'Type$ValueConstructor',Arguments$Class:{t:Nothing}}}]},$cont:ValueConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ValueConstructor:$at:container')];},d:['ceylon.language.meta.model','ValueConstructor','$at','container']};}};})(ValueConstructor$meta$model.$$.prototype);}
return ValueConstructor$meta$model;}
ex$.$init$ValueConstructor$meta$model=$init$ValueConstructor$meta$model;$init$ValueConstructor$meta$model();function ValueModel$meta$model($$targs$$,valueModel$){set_type_args(valueModel$,$$targs$$,ValueModel$meta$model);Model$meta$model(valueModel$);}
ValueModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Get$ValueModel:{dv:'out',def:{t:Anything}},Set$ValueModel:{dv:'in',def:{t:Nothing}}},sts:[{t:Model$meta$model}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ValueModel')];},d:['ceylon.language.meta.model','ValueModel']};};
ex$.ValueModel$meta$model=ValueModel$meta$model;function $init$ValueModel$meta$model(){if(ValueModel$meta$model.$$===undefined){initTypeProtoI(ValueModel$meta$model,'ceylon.language.meta.model::ValueModel',$init$Model$meta$model());
(function(valueModel$){valueModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:GettableDeclaration$meta$declaration}]},$cont:ValueModel$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','ValueModel','$at','declaration']};}};valueModel$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Get$ValueModel'}},$cont:ValueModel$meta$model,pa:5,an:function(){return[doc("This value\'s closed type.")];},d:['ceylon.language.meta.model','ValueModel','$at','type']};}};})(ValueModel$meta$model.$$.prototype);}
return ValueModel$meta$model;}
ex$.$init$ValueModel$meta$model=$init$ValueModel$meta$model;$init$ValueModel$meta$model();function $1hb$meta$model($$targs$$){var nothingType$=new $1hb$meta$model.$$;nothingType$.$$targs$$=$$targs$$;Type$meta$model({Target$Type:{t:Nothing}},nothingType$);return nothingType$;};$1hb$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Type$meta$model,a:{Target$Type:{t:Nothing}}}],d:['ceylon.language.meta.model','nothingType']};};function $init$nothingType$meta$model(){if($1hb$meta$model.$$===undefined){initTypeProto($1hb$meta$model,'ceylon.language.meta.model::nothingType',Basic,$init$Type$meta$model());
(function(nothingType$){atr$(nothingType$,'string',function(){var nothingType$=this;return "Nothing";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1hb$meta$model,pa:3,d:['ceylon.language.meta.model','nothingType','$at','string']};});nothingType$.typeOf=function($1hd){return false;};nothingType$.exactly=function($1he){var nothingType$=this;return $1he.equals(nothingType$meta$model());};nothingType$.supertypeOf=function($1hf){var nothingType$=this;return nothingType$.exactly($1hf);};nothingType$.subtypeOf=function($1hg){return true;};nothingType$.union=function($1hh,$3ry7f0$){var nothingType$=this;return $1hh;};nothingType$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:$1hb$meta$model,tp:{Other$union:{}},pa:3,d:['ceylon.language.meta.model','nothingType','$m','union']};};nothingType$.intersection=function($1hi,$9p33jg$){var nothingType$=this;return nothingType$;};nothingType$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Nothing}}},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:$1hb$meta$model,tp:{Other$intersection:{}},pa:3,d:['ceylon.language.meta.model','nothingType','$m','intersection']};};})($1hb$meta$model.$$.prototype);}
return $1hb$meta$model;}
ex$.$init$nothingType$meta$model=$init$nothingType$meta$model;$init$nothingType$meta$model();var $1hj;function nothingType$meta$model(){if($1hj===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nothingType\' before it was set"),'1:0-17:0','nothingType.ceylon');if($1hj===undefined){$1hj=INIT$;$1hj=$init$nothingType$meta$model()({Target$Type:{t:Nothing}});$1hj.$crtmm$=nothingType$meta$model.$crtmm$;}
return $1hj;}
ex$.nothingType$meta$model=nothingType$meta$model;nothingType$meta$model.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$nothingType$meta$model()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:nothingType')];},d:['ceylon.language.meta.model','nothingType']};};$prop$getNothingType$meta$model=nothingType$meta$model;ex$.$prop$getNothingType$meta$model=$prop$getNothingType$meta$model;ex$.$pkg$ans$ceylon$language$meta$model=function(){return[doc$($CCMM$,'ceylon.language.meta.model','$pkg-anns'),by(["Gavin King","Stephane Epardaud","Tom Bentley"].$sa$({t:$_String})),tagged(["Metamodel"].$sa$({t:$_String})),shared()];};function AppliedAttribute(pname, atr,$$targs$$,that){
if (!$$targs$$.Get$AppliedAttribute)$$targs$$.Get$AppliedAttribute=$$targs$$.Get$Attribute;
if (!$$targs$$.Set$AppliedAttribute)$$targs$$.Set$AppliedAttribute=$$targs$$.Set$Attribute;
if (!$$targs$$.Container$AppliedAttribute)$$targs$$.Container$AppliedAttribute=$$targs$$.Container$Attribute;
$init$AppliedAttribute();
if (that===undefined) {
that=function(x){return AppliedValue$jsint(x,atr,
{Get$AppliedValue:$$targs$$.Get$AppliedAttribute,Set$AppliedValue:$$targs$$.Set$AppliedAttribute,
Container$AppliedValue:$$targs$$.Container$AppliedAttribute});};
that.$$=AppliedAttribute.$$;
var dummy=new AppliedAttribute.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
}
Attribute$meta$model(that.$$targs$$===undefined?$$targs$$:{Get$Attribute:that.$$targs$$.Get$AppliedAttribute,
Set$Attribute:that.$$targs$$.Set$AppliedAttribute,
Container$Attribute:that.$$targs$$.Container$AppliedAttribute},that);
set_type_args(that,$$targs$$,AppliedAttribute);
that.tipo=atr;
that.pname=pname;
atr$(that,'declaringType',function(){return memberDeclaringType$(that);
},undefined,Member$meta$model.$$.prototype.$prop$getDeclaringType.$crtmm$);
atr$(that,'type',function(){
var t = getrtmm$$(atr);
if (t===undefined)throw Exception("Attribute reference not found. Metamodel doesn't work in modules compiled in lexical scope style.");
return typeLiteral$meta({Type$typeLiteral:restype$($$targs$$.Container$Attribute,t.$t)});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Type$Type:'Get$Attribute'}},$cont:AppliedAttribute,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Attribute','$at','type']};});
atr$(that,'declaration',function(){
var mm = getrtmm$$(atr);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var pkg = modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
return OpenValue$jsint(pkg, atr);
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:AppliedAttribute,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Attribute','$at','declaration']};});
that.$_bind=function(cont){
return AppliedValue$jsint(cont,atr,{Get$AppliedValue:$$targs$$.Get$AppliedAttribute,
Set$AppliedValue:$$targs$$.Set$AppliedAttribute,
Container$AppliedValue:$$targs$$.Container$AppliedAttribute});
}
atr$(that,'string',function(){
var c=getrtmm$$(atr).$cont;
if (typeof(c.$crtmm$)==='function')c.$crtmm$=c.$crtmm$();
if (!c)return qname$(atr);
c=c.$crtmm$;
var qn=qname$(c);
if (c.tp) {
qn+="<"; var first=true;
var cnt=$$targs$$&&$$targs$$.Container$AppliedAttribute&&$$targs$$.Container$AppliedAttribute.a;
for (var tp in c.tp) {
if (first)first=false;else qn+=",";
var _ta=cnt&&cnt[tp];
if (_ta) {
qn+=qname$(_ta);
} else qn+=qname$(Anything);
}
qn+=">";
}
qn+="."+pname;
return qn;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},d:['$','Object','$at','string']};});
atr$(that,'container',function(){
return AppliedValue$jsint.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Type$Type:{t:Anything}}},$cont:AppliedAttribute,pa:67,d:['ceylon.language.jsint','Member','$at','container']};});
that.equals=function(o) {
return is$(o,{t:AppliedAttribute}) && o.tipo===atr;
}
return that;
}
AppliedAttribute.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},tp:{Get:{dv:'out','def':{t:Anything}},Set:{dv:'in','def':{t:Nothing}},Container:{dv:'in'}},sts:[{t:Attribute$meta$model,a:{Get:'Get',Set:'Set',Container:'Container'}}],pa:1,d:['ceylon.language.meta.model','Attribute']};};
ex$.AppliedAttribute=AppliedAttribute;
function $init$AppliedAttribute(){
if (AppliedAttribute.$$===undefined){
initTypeProto(AppliedAttribute,'ceylon.language.meta.model::AppliedAttribute',Basic,Attribute$meta$model);
(function($$appliedAttribute){
})(AppliedAttribute.$$.prototype);
}
return AppliedAttribute;
}
ex$.$init$AppliedAttribute$meta$model=$init$AppliedAttribute;
$init$AppliedAttribute();
function NestableDeclaration$meta$declaration(nestableDeclaration$){AnnotatedDeclaration$meta$declaration(nestableDeclaration$);TypedDeclaration$meta$declaration(nestableDeclaration$);}
NestableDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:AnnotatedDeclaration$meta$declaration},{t:TypedDeclaration$meta$declaration}],of:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:SetterDeclaration$meta$declaration},{t:AliasDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration')];},d:['ceylon.language.meta.declaration','NestableDeclaration']};};
ex$.NestableDeclaration$meta$declaration=NestableDeclaration$meta$declaration;function $init$NestableDeclaration$meta$declaration(){if(NestableDeclaration$meta$declaration.$$===undefined){initTypeProtoI(NestableDeclaration$meta$declaration,'ceylon.language.meta.declaration::NestableDeclaration',$init$AnnotatedDeclaration$meta$declaration(),$init$TypedDeclaration$meta$declaration());
(function(nestableDeclaration$){nestableDeclaration$.$prop$getActual={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:actual')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','actual']};}};nestableDeclaration$.$prop$getFormal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:formal')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','formal']};}};nestableDeclaration$.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:default')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','default']};}};nestableDeclaration$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:shared')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','shared']};}};nestableDeclaration$.$prop$getContainingPackage={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc("This declaration\'s package container.")];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','containingPackage']};}};nestableDeclaration$.$prop$getContainingModule={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc("This declaration\'s module container.")];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','containingModule']};}};nestableDeclaration$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:container')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','container']};}};nestableDeclaration$.$prop$getToplevel={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if this declaration is a toplevel declaration.")];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','toplevel']};}};})(NestableDeclaration$meta$declaration.$$.prototype);}
return NestableDeclaration$meta$declaration;}
ex$.$init$NestableDeclaration$meta$declaration=$init$NestableDeclaration$meta$declaration;$init$NestableDeclaration$meta$declaration();atr$(NestableDeclaration$meta$declaration.$$.prototype,'shared',function(){
return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','shared']};});
atr$(NestableDeclaration$meta$declaration.$$.prototype,'actual',function(){
return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','actual']};});
atr$(NestableDeclaration$meta$declaration.$$.prototype,'formal',function(){
return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','formal']};});
atr$(NestableDeclaration$meta$declaration.$$.prototype,'$_default',function(){
return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','default']};});
function GenericDeclaration$meta$declaration(genericDeclaration$){}
GenericDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc("A declaration that can have type parameters.")];},d:['ceylon.language.meta.declaration','GenericDeclaration']};};
ex$.GenericDeclaration$meta$declaration=GenericDeclaration$meta$declaration;function $init$GenericDeclaration$meta$declaration(){if(GenericDeclaration$meta$declaration.$$===undefined){initTypeProtoI(GenericDeclaration$meta$declaration,'ceylon.language.meta.declaration::GenericDeclaration');
(function(genericDeclaration$){genericDeclaration$.$prop$getTypeParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:GenericDeclaration$meta$declaration,pa:5,an:function(){return[doc("The list of type parameters declared on this generic declaration.")];},d:['ceylon.language.meta.declaration','GenericDeclaration','$at','typeParameterDeclarations']};}};genericDeclaration$.getTypeParameterDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:GenericDeclaration$meta$declaration,pa:5,an:function(){return[doc("Finds a type parameter by name. Returns `null` if not found.")];},d:['ceylon.language.meta.declaration','GenericDeclaration','$m','getTypeParameterDeclaration']};}};})(GenericDeclaration$meta$declaration.$$.prototype);}
return GenericDeclaration$meta$declaration;}
ex$.$init$GenericDeclaration$meta$declaration=$init$GenericDeclaration$meta$declaration;$init$GenericDeclaration$meta$declaration();atr$(GenericDeclaration$meta$declaration.$$.prototype,'typeParameterDeclarations',function(){
if (this.tipo) {
var mm=getrtmm$$(this.tipo);
var tps=mm.tp;
if (tps) {
var rv=[];
for (var tp in tps) {
rv.push(OpenTypeParam$jsint(this.tipo,tp));
}
return rv.$sa$({t:TypeParameter$meta$declaration});
}
return empty();
}
console.log("TODO GenericDeclaration.typeParameterDeclarations without a type");
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:GenericDeclaration,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','GenericDeclaration','$at','typeParameterDeclarations']};});
GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration=function (name$14){
if (this.tipo) {
var mm=getrtmm$$(this.tipo);
var tps=mm.tp;
if (tps) {
for (var tp in tps) {
var tpnm = tp;
if (tp.indexOf('$')>0)tpnm=tp.substring(0,tp.indexOf('$'));
if (name$14==tpnm) {
return OpenTypeParam$jsint(this.tipo,tp);
}
}
}
return null;
}
console.log("TODO GenericDeclaration.getTypeParameterDeclaration(" + name$14 + ") without a type");
return null;
};
GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:GenericDeclaration,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','GenericDeclaration','$m','getTypeParameterDeclaration']};};
function ClassOrInterfaceDeclaration$meta$declaration(classOrInterfaceDeclaration$){NestableDeclaration$meta$declaration(classOrInterfaceDeclaration$);GenericDeclaration$meta$declaration(classOrInterfaceDeclaration$);}
ClassOrInterfaceDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration},{t:GenericDeclaration$meta$declaration}],of:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration']};};
ex$.ClassOrInterfaceDeclaration$meta$declaration=ClassOrInterfaceDeclaration$meta$declaration;function $init$ClassOrInterfaceDeclaration$meta$declaration(){if(ClassOrInterfaceDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassOrInterfaceDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassOrInterfaceDeclaration',$init$NestableDeclaration$meta$declaration(),$init$GenericDeclaration$meta$declaration());
(function(classOrInterfaceDeclaration$){classOrInterfaceDeclaration$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$at:extendedType')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','extendedType']};}};classOrInterfaceDeclaration$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc("The list of types satisfied by this type.")];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','satisfiedTypes']};}};classOrInterfaceDeclaration$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$at:caseTypes')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','caseTypes']};}};classOrInterfaceDeclaration$.$prop$getIsAlias={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$at:isAlias')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','isAlias']};}};classOrInterfaceDeclaration$.memberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:memberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberDeclarations']};}};classOrInterfaceDeclaration$.declaredMemberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:declaredMemberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','declaredMemberDeclarations']};}};classOrInterfaceDeclaration$.annotatedMemberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:annotatedMemberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedMemberDeclarations']};}};classOrInterfaceDeclaration$.annotatedDeclaredMemberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:annotatedDeclaredMemberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedDeclaredMemberDeclarations']};}};classOrInterfaceDeclaration$.getMemberDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:getMemberDeclaration')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getMemberDeclaration']};}};classOrInterfaceDeclaration$.getDeclaredMemberDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:getDeclaredMemberDeclaration')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getDeclaredMemberDeclaration']};}};classOrInterfaceDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Type$apply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:apply'),$_throws("IncompatibleTypeException","If the specified `Type` type argument is not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible \nwith the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','apply']};}};classOrInterfaceDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:memberApply'),$_throws("IncompatibleTypeException","If the specified `Container` or `Type` type arguments are not \ncompatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values \nare not compatible with the actual result\'s container type or \ntype parameters.")];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberApply']};}};})(ClassOrInterfaceDeclaration$meta$declaration.$$.prototype);}
return ClassOrInterfaceDeclaration$meta$declaration;}
ex$.$init$ClassOrInterfaceDeclaration$meta$declaration=$init$ClassOrInterfaceDeclaration$meta$declaration;$init$ClassOrInterfaceDeclaration$meta$declaration();function FunctionalDeclaration$meta$declaration(functionalDeclaration$){GenericDeclaration$meta$declaration(functionalDeclaration$);functionalDeclaration$.memberInvoke$defs$typeArguments=function($1hk,$1hl,$1hm){return empty();};}
FunctionalDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:GenericDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration')];},d:['ceylon.language.meta.declaration','FunctionalDeclaration']};};
ex$.FunctionalDeclaration$meta$declaration=FunctionalDeclaration$meta$declaration;function $init$FunctionalDeclaration$meta$declaration(){if(FunctionalDeclaration$meta$declaration.$$===undefined){initTypeProtoI(FunctionalDeclaration$meta$declaration,'ceylon.language.meta.declaration::FunctionalDeclaration',$init$GenericDeclaration$meta$declaration());
(function(functionalDeclaration$){functionalDeclaration$.$prop$getAnnotation={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if the current declaration is an annotation class or function.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','annotation']};}};functionalDeclaration$.$prop$getParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc("The list of parameter declarations for this functional declaration.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','parameterDeclarations']};}};functionalDeclaration$.getParameterDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc("Gets a parameter declaration by name. Returns `null` if no such parameter exists.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','getParameterDeclaration']};}};functionalDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$apply',Type$FunctionModel:'Return$apply'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$apply',Type$Applicable:'Return$apply'}}]},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionalDeclaration$meta$declaration,tp:{Return$apply:{def:{t:Anything}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:apply'),$_throws("IncompatibleTypeException","If the specified `Return` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','apply']};}};functionalDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$memberApply',Type$FunctionModel:'Return$memberApply'}},{t:Qualified$meta$model,a:{Container$Qualified:'Container$memberApply',Kind$Qualified:{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$memberApply',Type$FunctionModel:'Return$memberApply'}}}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionalDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Return$memberApply:{def:{t:Anything}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:memberApply'),$_throws("IncompatibleTypeException","If the specified `Container`, `Return` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values are not compatible with the actual result\'s container type or type parameters.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','memberApply']};}};functionalDeclaration$.invoke$defs$typeArguments=function($1hn,$1ho){return empty();};functionalDeclaration$.invoke=function($1hn,$1ho){var functionalDeclaration$=this;if($1hn===undefined){$1hn=empty();}
if($1ho===undefined){$1ho=empty();}
return functionalDeclaration$.$_apply($1hn,{Arguments$apply:{t:Nothing},Return$apply:{t:Anything}}).$_apply($1ho);};functionalDeclaration$.invoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:FunctionalDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:invoke'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified type or value arguments are not compatible with this toplevel function.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','invoke']};};functionalDeclaration$.memberInvoke={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:memberInvoke'),$_throws("IncompatibleTypeException","If the specified container, type or value arguments are not compatible with this method.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','memberInvoke']};}};})(FunctionalDeclaration$meta$declaration.$$.prototype);}
return FunctionalDeclaration$meta$declaration;}
ex$.$init$FunctionalDeclaration$meta$declaration=$init$FunctionalDeclaration$meta$declaration;$init$FunctionalDeclaration$meta$declaration();function openClass$jsint(pkg,meta,that) {
if (meta===undefined)throw new Error("Class reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
var _mm=getrtmm$$(meta);
var meta_,tipo;
if (_mm === undefined) {
meta_=meta;
tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(tipo);
} else {
tipo=meta;
meta_=get_model(_mm);
}
return (meta_&&meta_.$cn?OpenClassWithConstructors$jsint:OpenClassWithInitializer$jsint)(pkg,meta,that);
}
ex$.openClass$jsint=openClass$jsint;
function $init$openClass$jsint(){
$init$OpenClassWithInitializer$jsint();
$init$OpenClassWithConstructors$jsint();
return openClass$jsint;
}
ex$.$init$openClass$jsint=$init$openClass$jsint;
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration=function(name$20,$$$mptypes,noInherit){
var _m=undefined;
var raiz;
if (this.tipo.$$ && this.tipo.$$.prototype) {
raiz=this.tipo.$$.prototype;
} else {
raiz = this.tipo();
}
var kind=$$$mptypes.Kind$getMemberDeclaration;
if (extendsType({t:ValueDeclaration$meta$declaration}, kind)
|| extendsType({t:SetterDeclaration$meta$declaration}, kind)) {
var wantsSetter = !extendsType({t:ValueDeclaration$meta$declaration}, kind)
&& extendsType({t:SetterDeclaration$meta$declaration}, kind);
var escapedName = escapePropertyName$(name$20);
var propname=getValuePropertyName$(escapedName);
var _d = raiz[propname];
if (_d===undefined && noInherit) {
for (nsats in raiz) if (nsats.substring(0,10)==='$prop$get$') {
var atmm=getrtmm$$(raiz[nsats]);
if (atmm.d && atmm.d[atmm.d.length-1].substring(0,name$20.length+1)===name$20+'$') {
_d=raiz[nsats];
break;
}
}
}
if(_d){
var mm=getrtmm$$(_d);
if(rejectInheritedOrPrivate$(mm, this.tipo, noInherit))
_d = undefined;
}
if(_d) {
var _$m = getrtmm$$(_d);
var _mdl=get_model(_$m);
if(wantsSetter && _mdl.$set === undefined)
_d = undefined; // we have no setter to return
var isval=_mdl.mt==='g'||_mdl.mt==='o';
if (!wantsSetter && isval && !extendsType({t:ValueDeclaration$meta$declaration}, kind))
_d = undefined;
if(_d){
_m=OpenValue$jsint(this.containingPackage, _d);
if(wantsSetter)
_m=_m.setter;
}
}
}
if (!_m && extendsType({t:FunctionDeclaration$meta$declaration}, kind)) {
var _d = findMethodByNameFromPrototype$(raiz, name$20);
if(_d){
var mm=getrtmm$$(_d);
if(rejectInheritedOrPrivate$(mm, this.tipo, noInherit))
_d = undefined;
if(_d)
_m=OpenFunction$jsint(this.containingPackage, _d);
}
}
if (!_m
&& (extendsType({t:InterfaceDeclaration$meta$declaration}, kind)
|| extendsType({t:ClassWithConstructorsDeclaration$meta$declaration}, kind)
|| extendsType({t:ClassWithInitializerDeclaration$meta$declaration}, kind))) {
var nom=name$20+'$'+this.name;
var _d = raiz[nom];
if (_d===undefined) {
for (var $k in raiz) {
var propname='$prop$get'+$k[0].toUpperCase()+$k.substring(1);
var m$ = raiz[propname] ? undefined: raiz[$k];
_d = typeof(m$)==='function' && m$.$$ ? getrtmm$$(m$) : undefined;
if (_d && _d.d && _d.d[_d.d.length-1]===nom){
_d = raiz[$k];
break;
}else _d=undefined;
}
}
if (!_d) {
if (noInherit)return null;
var pere=this.tipo.$crtmm$['super'];
while (!_d && pere) {
var mm=getrtmm$$(pere.t);
nom=mm&&mm.d?name$20+'$'+mm.d[mm.d.length-1]:undefined;
if(nom)_d=raiz[nom];
if (!_d)pere=mm['super'];
}
}
if(_d){
var wantsClass=extendsType({t:ClassWithConstructorsDeclaration$meta$declaration}, kind)
|| extendsType({t:ClassWithInitializerDeclaration$meta$declaration}, kind);
var wantsIface=extendsType({t:InterfaceDeclaration$meta$declaration},kind);
var _$m = getrtmm$$(_d);
var _mdl=get_model(_$m);
if (wantsClass && _mdl.mt==='c') {
var hasConstructor = _mdl.$cn;
if (hasConstructor && !extendsType({t:ClassWithConstructorsDeclaration$meta$declaration},kind)) {
return null;
}
if (!hasConstructor && !extendsType({t:ClassWithInitializerDeclaration$meta$declaration},kind)) {
return null;
}
_m=openClass$jsint(this.containingPackage, _d);
}else if(wantsIface && _mdl.mt=='i'){
_m=OpenInterface$jsint(this.containingPackage, _d);
}else{
return null;
}
}
}
if (_m) {
_m.$parent=this;
return _m;
}
return null;
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},'Kind']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getMemberDeclaration']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},'Kind']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getDeclaredMemberDeclaration']};};
atr$(FunctionalDeclaration$meta$declaration.$$.prototype,'parameterDeclarations',function(){
if (this.params$$!==undefined)return this.params$$;
var that=this;
var parms = that.tipo.$crtmm$.ps;
if (!parms || parms.length === 0)return empty();
var rv = [];
for (var i=0; i<parms.length;i++) {
var p = parms[i];
if (p.$pt === 'f') {
rv.push(FunParamDecl(this,p));
} else {
rv.push(ValParamDecl$jsint(this,p));
}
}
this.params$$=rv.$sa$({t:FunctionOrValueDeclaration$meta$declaration});
return this.params$$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:FunctionalDeclaration$meta$declaration,an:function(){return[shared(),formal()];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','parameterDeclarations']};});
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations=function memberDeclarations($$$mptypes,inherited){
var defs=[];
var _prot=this.tipo && this.tipo.$$ && this.tipo.$$.prototype;
if (_prot) {
var props = Object.getOwnPropertyNames(_prot);
function isProp(mem) {
return _prot['$prop$get' + mem[0].toUpperCase() + mem.substring(1)]!==undefined;
}
var cdec={t:'u',l:[{t:ClassWithInitializerDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}]};
var kind=$$$mptypes.Kind$memberDeclarations;
for (var mem in _prot) {
if (isProp(mem))continue;
var _d = undefined;
var _d2 = undefined;
var mm=getrtmm$$(_prot[mem]);
if (mm && inherited && mm.$cont!==this.tipo)continue;
if (mem.substring(0,9)==='$prop$get'
&& (extendsType({t:ValueDeclaration$meta$declaration}, kind)
|| extendsType({t:SetterDeclaration$meta$declaration}, kind))) {
var wantsValue = extendsType({t:ValueDeclaration$meta$declaration}, kind);
var wantsSetter = extendsType({t:SetterDeclaration$meta$declaration}, kind);
var _nom=mm.d[mm.d.length-1];
var _idx=_nom.indexOf('$');
if (_idx>0)_nom=_nom.substring(0,_idx);
_d=this.getMemberDeclaration(_nom,{Kind$getMemberDeclaration:kind},inherited);
if(_d && wantsValue && wantsSetter){
_d2 = _d.setter;
}
} else if (_prot[mem].$$
&& (extendsType({t:ClassWithInitializerDeclaration$meta$declaration},kind)
|| extendsType({t:ClassWithConstructorsDeclaration$meta$declaration},kind)
|| extendsType({t:InterfaceDeclaration$meta$declaration},kind))) {
var mt=mm.d[mm.d.length-2];
if ((mt==='$c' && !extendsType(cdec,kind))
||(mt==='$i' && !extendsType({t:InterfaceDeclaration$meta$declaration},kind)))continue;
var _nom=mm.d[mm.d.length-1];
if(_nom.indexOf("$") > -1)
_nom = _nom.substring(0, _nom.indexOf("$"));
_d=this.getMemberDeclaration(_nom,{Kind$getMemberDeclaration:kind},inherited);
} else if(mm && mm.d) {
var mt=mm.d[mm.d.length-2];
if (mt === '$m' && extendsType({t:FunctionDeclaration$meta$declaration},kind)) {
_d=this.getMemberDeclaration(mm.d[mm.d.length-1],{Kind$getMemberDeclaration:kind},inherited);
}
}
if (_d){_d.parent$=this;defs.push(_d);};
if (_d2){_d2.parent$=this;defs.push(_d2);};
}
return defs.$sa$(kind);
}
var funorvals=extendsType({t:FunctionOrValueDeclaration$meta$declaration},kind);
var funs=funorvals||extendsType({t:FunctionDeclaration$meta$declaration},kind);
var vals=funorvals||extendsType({t:ValueDeclaration$meta$declaration},kind);
if (funs) {
for (var df in this.meta['$m']) {
defs.push(this.meta['$m'][df]);
}
}
if (vals) {
for (var df in this.meta['$at']) {
defs.push(this.meta['$at'][df]);
}
}
if (extendsType({t:InterfaceDeclaration$meta$declaration},kind)) {
for (var df in this.meta['$i']) {
defs.push(this.meta['$i'][df]);
}
}
if (extendsType(cdec,kind)) {
for (var df in this.meta['$c']) {
defs.push(this.meta['$c'][df]);
}
}
var pkg = this.containingPackage;
var r=[];
for (var i=0; i<defs.length; i++) {
var m=defs[i];
var mt = m['mt'];
var _d;
if (mt === 'm') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:FunctionDeclaration$meta$declaration}});
} else if (mt==='c') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:ClassDeclaration$meta$declaration}});
if (!is$(_d,kind))_d=null;
} else if (mt==='i') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:InterfaceDeclaration$meta$declaration}});
} else if (mt==='g'||mt==='o'||mt==='a'||mt==='s') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:ValueDeclaration$meta$declaration}});
}
if (_d) {
_d.$parent=this;
r.push(_d);
}
}
return r.$sa$(kind);
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberDeclarations']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','declaredMemberDeclarations']};};
atr$(ClassOrInterfaceDeclaration$meta$declaration.$$.prototype,'caseTypes',function(){
var casos = this.tipo.$crtmm$.of;
if (casos && casos.length > 0) {
var ct=[]; var ta=[];
for (var i=0; i < casos.length; i++) {
if (typeof(casos[i])==='string') {
ct.push(OpenTvar$jsint(OpenTypeParam$jsint(this, casos[i])));
if (!ta.contains(OpenTypeVariable$meta$declaration))ta.push(OpenTypeVariable$meta$declaration);
} else {
var _t=casos[i];
if (typeof(_t)==='function')_t=getrtmm$$(_t).$t;
var ot=_openTypeFromTarg(_t);
ct.push(ot);
if (is$(ot,{t:OpenClassType$meta$declaration}) && !ta.contains(OpenClassType$meta$declaration))ta.push(OpenClassType$meta$declaration);
else if (is$(ot,{t:OpenInterfaceType$meta$declaration})&&!ta.contains(OpenInterfaceType$meta$declaration))ta.push(OpenInterfaceType$meta$declaration);
}
}
if (ta.length===0)ta={t:OpenType$meta$declaration};
else if (ta.length===1)ta={t:ta[0]};
else {
for (var i=0;i<ta.length;i++)ta[i]={t:ta[i]};
ta={t:'u',l:ta};
}
return ct.$sa$(ta);
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:ClassOrInterfaceDeclaration$meta$declaration,an:function(){return[shared(),formal()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','caseTypes']};});
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply=function(types,$mptypes){
var _t = {t:this.tipo};
var _m = getrtmm$$(this.tipo);
validate$typeparams(_t,_m.tp,types);
if (!extendsType(_t, $mptypes.Type$apply))
throw IncompatibleTypeException$meta$model("ClassOrInterface<"+this.name+"> is not compatible with expected type: ClassOrInterface<" + qname$($mptypes.Type$apply)+">. Try passing the type argument explicitly with: apply<" + this.name+">");
if ($mptypes.Type$apply.a)_t.a=$mptypes.Type$apply.a;
var rv=this.meta.mt==='i'?AppliedInterface$jsint(_t.t, {Type$AppliedInterface:_t}):
AppliedClass$jsint(_t.t, {Type$AppliedClass:_t,Arguments$AppliedClass:$mptypes.Arguments$apply});
if (_t.a)rv.$targs=_t.a;
return rv;
}
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.$crtmm$=function(){return{mod:$CCMM$,d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','apply']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply=function(cont, types,$mptypes) {
var mm=getrtmm$$(this.tipo);
if (!extendsType({t:cont.tipo},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible Container type");
var _t = {t:this.tipo};
if ($mptypes.Type$memberApply.a)_t.a=$mptypes.Type$memberApply.a;
validate$typeparams(_t,mm.tp,types);
if (!extendsType(_t, $mptypes.Type$memberApply))
throw IncompatibleTypeException$meta$model("Type argument for 'Type' must be a supertype of " + this.string);
var rv=this.meta.mt==='i'?AppliedMemberInterface$jsint(_t.t, {Container$AppliedMemberInterface:$mptypes.Container$memberApply, Type$AppliedMemberInterface:_t})
:AppliedMemberClass$jsint(_t.t, {Container$AppliedMemberClass:$mptypes.Container$memberApply, Type$AppliedMemberClass:_t, Arguments$AppliedMemberClass:$mptypes.Arguments$memberApply});
if (_t.a)rv.$targs=_t.a;
return rv;
};ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.$crtmm$=function(){return{mod:$CCMM$,d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberApply']};};
atr$(ClassOrInterfaceDeclaration$meta$declaration.$$.prototype,'container',function(){
if (this.$parent)return this.$parent;
var mm=getrtmm$$(this.tipo);
var _c=mm.$cont;
if (_c===0)return this.containingPackage;
if (_c) {
if (_c.t === undefined && _c.get && _c.$crtmm$) {
return OpenValue$jsint(this.containingPackage, _c);
}
return typeLiteral$meta({Type$typeLiteral:_c});
}
return this.containingPackage;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},d:['ceylon.language.meta.declaration.NestableDeclaration','$at','container']};});
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations=function($$$mptypes,inherited){
var list=this.memberDeclarations({Kind$memberDeclarations:$$$mptypes.Kind$annotatedMemberDeclarations},inherited);
if (list.size>0) {
var rv=[];
var bits = getAnnotationBitmask($$$mptypes.Annotation$annotatedMemberDeclarations);
for (var i=0; i < list.size; i++) {
var mm = getrtmm$$(list.$_get(i).tipo);
if (mm.pa&bits) {
rv.push(list.$_get(i));
continue;
}
var anns = mm&&mm.an;
if (typeof(anns)==='function'){anns=anns();mm.an=anns;}
if (anns) for (var j=0; j<anns.length; j++) {
if (is$(anns[j],$$$mptypes.Annotation$annotatedMemberDeclarations)) {
rv.push(list.$_get(i));
break;
}
}
}
if (rv.length)return rv.$sa$($$$mptypes.Kind$annotatedMemberDeclarations);
}
return empty();
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declarationl,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation:{}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedMemberDeclarations']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedDeclaredMemberDeclarations=function ($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declarationl,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation:{}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedDeclaredMemberDeclarations']};};
function annd$annotations(that,$$$mptypes) {
var mdl = getrtmm$$(that.tipo)||that.meta;
var _ans = allann$(mdl);
var ans=[];
for (var i=0; i<_ans.length;i++) {
if (is$(_ans[i], $$$mptypes.Annotation$annotations)) {
ans.push(_ans[i]);
}
}
return ans.$sa$($$$mptypes.Annotation$annotations);
}
function AliasDeclaration$meta$declaration(aliasDeclaration$){NestableDeclaration$meta$declaration(aliasDeclaration$);GenericDeclaration$meta$declaration(aliasDeclaration$);}
AliasDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration},{t:GenericDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:AliasDeclaration')];},d:['ceylon.language.meta.declaration','AliasDeclaration']};};
ex$.AliasDeclaration$meta$declaration=AliasDeclaration$meta$declaration;function $init$AliasDeclaration$meta$declaration(){if(AliasDeclaration$meta$declaration.$$===undefined){initTypeProtoI(AliasDeclaration$meta$declaration,'ceylon.language.meta.declaration::AliasDeclaration',$init$NestableDeclaration$meta$declaration(),$init$GenericDeclaration$meta$declaration());
(function(aliasDeclaration$){aliasDeclaration$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:AliasDeclaration$meta$declaration,pa:5,an:function(){return[doc("The open type that is substituted by this type alias.")];},d:['ceylon.language.meta.declaration','AliasDeclaration','$at','extendedType']};}};})(AliasDeclaration$meta$declaration.$$.prototype);}
return AliasDeclaration$meta$declaration;}
ex$.$init$AliasDeclaration$meta$declaration=$init$AliasDeclaration$meta$declaration;$init$AliasDeclaration$meta$declaration();function AnnotatedDeclaration$meta$declaration(annotatedDeclaration$){Declaration$meta$declaration(annotatedDeclaration$);Annotated(annotatedDeclaration$);}
AnnotatedDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Declaration$meta$declaration},{t:Annotated}],of:[{t:NestableDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:AnnotatedDeclaration')];},d:['ceylon.language.meta.declaration','AnnotatedDeclaration']};};
ex$.AnnotatedDeclaration$meta$declaration=AnnotatedDeclaration$meta$declaration;function $init$AnnotatedDeclaration$meta$declaration(){if(AnnotatedDeclaration$meta$declaration.$$===undefined){initTypeProtoI(AnnotatedDeclaration$meta$declaration,'ceylon.language.meta.declaration::AnnotatedDeclaration',$init$Declaration$meta$declaration(),$init$Annotated());
(function(annotatedDeclaration$){annotatedDeclaration$.annotations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:AnnotatedDeclaration$meta$declaration,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:AnnotatedDeclaration:$m:annotations')];},d:['ceylon.language.meta.declaration','AnnotatedDeclaration','$m','annotations']};}};})(AnnotatedDeclaration$meta$declaration.$$.prototype);}
return AnnotatedDeclaration$meta$declaration;}
ex$.$init$AnnotatedDeclaration$meta$declaration=$init$AnnotatedDeclaration$meta$declaration;$init$AnnotatedDeclaration$meta$declaration();function CallableConstructorDeclaration$meta$declaration(callableConstructorDeclaration$){FunctionalDeclaration$meta$declaration(callableConstructorDeclaration$);ConstructorDeclaration$meta$declaration(callableConstructorDeclaration$);}
CallableConstructorDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionalDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),ValueConstructorDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration']};};
ex$.CallableConstructorDeclaration$meta$declaration=CallableConstructorDeclaration$meta$declaration;function $init$CallableConstructorDeclaration$meta$declaration(){if(CallableConstructorDeclaration$meta$declaration.$$===undefined){initTypeProtoI(CallableConstructorDeclaration$meta$declaration,'ceylon.language.meta.declaration::CallableConstructorDeclaration',$init$FunctionalDeclaration$meta$declaration(),$init$ConstructorDeclaration$meta$declaration());
(function(callableConstructorDeclaration$){callableConstructorDeclaration$.$prop$getAbstract={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:CallableConstructorDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$at:abstract')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$at','abstract']};}};callableConstructorDeclaration$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:CallableConstructorDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$at:defaultConstructor')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$at','defaultConstructor']};}};callableConstructorDeclaration$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:CallableConstructorDeclaration$meta$declaration,pa:7,an:function(){return[doc("The class this constructor constructs")];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$at','container']};}};callableConstructorDeclaration$.invoke={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:CallableConstructorDeclaration$meta$declaration,pa:7,d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','invoke']};}};callableConstructorDeclaration$.memberInvoke={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:CallableConstructorDeclaration$meta$declaration,pa:7,d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','memberInvoke']};}};callableConstructorDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$apply',Type$CallableConstructor:'Result$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:CallableConstructorDeclaration$meta$declaration,tp:{Result$apply:{def:{t:$_Object}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$m:apply')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','apply']};}};callableConstructorDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Result$memberApply',Arguments$MemberClassCallableConstructor:'Arguments$memberApply',Container$MemberClassCallableConstructor:'Container$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:CallableConstructorDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:$_Object}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$m:memberApply')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','memberApply']};}};})(CallableConstructorDeclaration$meta$declaration.$$.prototype);}
return CallableConstructorDeclaration$meta$declaration;}
ex$.$init$CallableConstructorDeclaration$meta$declaration=$init$CallableConstructorDeclaration$meta$declaration;$init$CallableConstructorDeclaration$meta$declaration();function ClassDeclaration$meta$declaration(classDeclaration$){ClassOrInterfaceDeclaration$meta$declaration(classDeclaration$);}
ClassDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassOrInterfaceDeclaration$meta$declaration}],of:[{t:ClassWithInitializerDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration')];},d:['ceylon.language.meta.declaration','ClassDeclaration']};};
ex$.ClassDeclaration$meta$declaration=ClassDeclaration$meta$declaration;function $init$ClassDeclaration$meta$declaration(){if(ClassDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassDeclaration',$init$ClassOrInterfaceDeclaration$meta$declaration());
(function(classDeclaration$){classDeclaration$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructorDeclaration$meta$declaration}]},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:defaultConstructor')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','defaultConstructor']};}};classDeclaration$.$prop$getParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}}]},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:parameterDeclarations')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','parameterDeclarations']};}};classDeclaration$.getParameterDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:getParameterDeclaration')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','getParameterDeclaration']};}};classDeclaration$.$prop$getAnnotation={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:annotation')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','annotation']};}};classDeclaration$.$prop$getAbstract={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:abstract')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','abstract']};}};classDeclaration$.$prop$getSerializable={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if the class is serializable class.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','serializable']};}};classDeclaration$.$prop$getAnonymous={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:anonymous')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','anonymous']};}};classDeclaration$.$prop$getObjectValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:objectValue')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','objectValue']};}};classDeclaration$.$prop$getFinal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:final')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','final']};}};classDeclaration$.classApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$classApply',Arguments$Class:'Arguments$classApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassDeclaration$meta$declaration,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:classApply'),$_throws("IncompatibleTypeException","If the specified `Type` or `Arguments` type arguments are not \ncompatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible \nwith the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','classApply']};}};classDeclaration$.memberClassApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$memberClassApply',Container$MemberClass:'Container$memberClassApply',Type$MemberClass:'Type$memberClassApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassDeclaration$meta$declaration,tp:{Container$memberClassApply:{def:{t:Nothing}},Type$memberClassApply:{def:{t:Anything}},Arguments$memberClassApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:memberClassApply'),$_throws("IncompatibleTypeException","If the specified `Container`, `Type` or `Arguments` type arguments \nare not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values \nare not compatible with the actual result\'s container type or \ntype parameters.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','memberClassApply']};}};classDeclaration$.instantiate$defs$typeArguments=function($1hp,$1hq){return empty();};classDeclaration$.instantiate=function($1hp,$1hq){var classDeclaration$=this;if($1hp===undefined){$1hp=empty();}
if($1hq===undefined){$1hq=empty();}
return classDeclaration$.classApply($1hp,{Arguments$classApply:{t:Nothing},Type$classApply:{t:$_Object}}).$_apply($1hq);};classDeclaration$.instantiate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:ClassDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:instantiate'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified type or value arguments are not compatible with \nthis toplevel class, or if the class lacks both a parameter list\nand a default constructor.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','instantiate']};};classDeclaration$.memberInstantiate$defs$typeArguments=function($1hr,$1hs,$1ht){return empty();};classDeclaration$.memberInstantiate=function($1hr,$1hs,$1ht){var classDeclaration$=this;if($1hs===undefined){$1hs=empty();}
if($1ht===undefined){$1ht=empty();}
return classDeclaration$.memberClassApply(nothingType$meta$model(),$1hs,{Type$memberClassApply:{t:$_Object},Container$memberClassApply:{t:Nothing},Arguments$memberClassApply:{t:Nothing}}).$_bind($1hr).$_apply($1ht);};classDeclaration$.memberInstantiate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:ClassDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:memberInstantiate'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container, type or value arguments are not \ncompatible with this method, or if the class lacks both a parameter list\nand a default constructor.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','memberInstantiate']};};classDeclaration$.getConstructorDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'u',l:[{t:CallableConstructorDeclaration$meta$declaration},{t:ValueConstructorDeclaration$meta$declaration}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:getConstructorDeclaration')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','getConstructorDeclaration']};}};classDeclaration$.constructorDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:constructorDeclarations')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','constructorDeclarations']};}};classDeclaration$.annotatedConstructorDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassDeclaration$meta$declaration,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:annotatedConstructorDeclarations')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','annotatedConstructorDeclarations']};}};})(ClassDeclaration$meta$declaration.$$.prototype);}
return ClassDeclaration$meta$declaration;}
ex$.$init$ClassDeclaration$meta$declaration=$init$ClassDeclaration$meta$declaration;$init$ClassDeclaration$meta$declaration();function ClassWithConstructorsDeclaration$meta$declaration(classWithConstructorsDeclaration$){ClassDeclaration$meta$declaration(classWithConstructorsDeclaration$);}
ClassWithConstructorsDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassWithConstructorsDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),ClassWithInitializerDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','ClassWithConstructorsDeclaration']};};
ex$.ClassWithConstructorsDeclaration$meta$declaration=ClassWithConstructorsDeclaration$meta$declaration;function $init$ClassWithConstructorsDeclaration$meta$declaration(){if(ClassWithConstructorsDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassWithConstructorsDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassWithConstructorsDeclaration',$init$ClassDeclaration$meta$declaration());
}
return ClassWithConstructorsDeclaration$meta$declaration;}
ex$.$init$ClassWithConstructorsDeclaration$meta$declaration=$init$ClassWithConstructorsDeclaration$meta$declaration;$init$ClassWithConstructorsDeclaration$meta$declaration();function ClassWithInitializerDeclaration$meta$declaration(classWithInitializerDeclaration$){ClassDeclaration$meta$declaration(classWithInitializerDeclaration$);}
ClassWithInitializerDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassWithInitializerDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),ClassWithConstructorsDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration']};};
ex$.ClassWithInitializerDeclaration$meta$declaration=ClassWithInitializerDeclaration$meta$declaration;function $init$ClassWithInitializerDeclaration$meta$declaration(){if(ClassWithInitializerDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassWithInitializerDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassWithInitializerDeclaration',$init$ClassDeclaration$meta$declaration());
(function(classWithInitializerDeclaration$){classWithInitializerDeclaration$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:ClassWithInitializerDeclaration$meta$declaration,pa:7,an:function(){return[doc("A CallableConstructorDeclaration representing the class initializer.")];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$at','defaultConstructor']};}};classWithInitializerDeclaration$.$prop$getParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:ClassWithInitializerDeclaration$meta$declaration,pa:7,an:function(){return[doc("The list of parameter declarations for this class.")];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$at','parameterDeclarations']};}};classWithInitializerDeclaration$.constructorDeclarations=function(){var classWithInitializerDeclaration$=this;return Singleton(classWithInitializerDeclaration$.defaultConstructor,{Element$Singleton:{t:CallableConstructorDeclaration$meta$declaration}});};classWithInitializerDeclaration$.constructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:CallableConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassWithInitializerDeclaration$meta$declaration,pa:11,an:function(){return[doc("A singleton sequence containing the [[defaultConstructor]].")];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$m','constructorDeclarations']};};classWithInitializerDeclaration$.getConstructorDeclaration=function($1hu){var classWithInitializerDeclaration$=this;return ($1hu.empty?classWithInitializerDeclaration$.defaultConstructor:null);};classWithInitializerDeclaration$.getConstructorDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructorDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassWithInitializerDeclaration$meta$declaration,pa:11,d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$m','getConstructorDeclaration']};};classWithInitializerDeclaration$.annotatedConstructorDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassWithInitializerDeclaration$meta$declaration,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:7,d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$m','annotatedConstructorDeclarations']};}};})(ClassWithInitializerDeclaration$meta$declaration.$$.prototype);}
return ClassWithInitializerDeclaration$meta$declaration;}
ex$.$init$ClassWithInitializerDeclaration$meta$declaration=$init$ClassWithInitializerDeclaration$meta$declaration;$init$ClassWithInitializerDeclaration$meta$declaration();function ConstructorDeclaration$meta$declaration(constructorDeclaration$){NestableDeclaration$meta$declaration(constructorDeclaration$);}
ConstructorDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration}],of:[{t:CallableConstructorDeclaration$meta$declaration},{t:ValueConstructorDeclaration$meta$declaration}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ConstructorDeclaration')];},d:['ceylon.language.meta.declaration','ConstructorDeclaration']};};
ex$.ConstructorDeclaration$meta$declaration=ConstructorDeclaration$meta$declaration;function $init$ConstructorDeclaration$meta$declaration(){if(ConstructorDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ConstructorDeclaration$meta$declaration,'ceylon.language.meta.declaration::ConstructorDeclaration',$init$NestableDeclaration$meta$declaration());
}
return ConstructorDeclaration$meta$declaration;}
ex$.$init$ConstructorDeclaration$meta$declaration=$init$ConstructorDeclaration$meta$declaration;$init$ConstructorDeclaration$meta$declaration();function Declaration$meta$declaration(declaration$){}
Declaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,of:[{t:AnnotatedDeclaration$meta$declaration},{t:TypeParameter$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Declaration')];},d:['ceylon.language.meta.declaration','Declaration']};};
ex$.Declaration$meta$declaration=Declaration$meta$declaration;function $init$Declaration$meta$declaration(){if(Declaration$meta$declaration.$$===undefined){initTypeProtoI(Declaration$meta$declaration,'ceylon.language.meta.declaration::Declaration');
(function(declaration$){declaration$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Declaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Declaration:$at:name')];},d:['ceylon.language.meta.declaration','Declaration','$at','name']};}};declaration$.$prop$getQualifiedName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Declaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Declaration:$at:qualifiedName')];},d:['ceylon.language.meta.declaration','Declaration','$at','qualifiedName']};}};})(Declaration$meta$declaration.$$.prototype);}
return Declaration$meta$declaration;}
ex$.$init$Declaration$meta$declaration=$init$Declaration$meta$declaration;$init$Declaration$meta$declaration();function FunctionDeclaration$meta$declaration(functionDeclaration$){FunctionOrValueDeclaration$meta$declaration(functionDeclaration$);FunctionalDeclaration$meta$declaration(functionDeclaration$);}
FunctionDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionOrValueDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionDeclaration')];},d:['ceylon.language.meta.declaration','FunctionDeclaration']};};
ex$.FunctionDeclaration$meta$declaration=FunctionDeclaration$meta$declaration;function $init$FunctionDeclaration$meta$declaration(){if(FunctionDeclaration$meta$declaration.$$===undefined){initTypeProtoI(FunctionDeclaration$meta$declaration,'ceylon.language.meta.declaration::FunctionDeclaration',$init$FunctionOrValueDeclaration$meta$declaration(),$init$FunctionalDeclaration$meta$declaration());
(function(functionDeclaration$){functionDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$apply',Type$Function:'Return$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionDeclaration$meta$declaration,tp:{Return$apply:{def:{t:Anything}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','apply']};}};functionDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Container$Method:'Container$memberApply',Arguments$Method:'Arguments$memberApply',Type$Method:'Return$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Return$memberApply:{def:{t:Anything}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','memberApply']};}};})(FunctionDeclaration$meta$declaration.$$.prototype);}
return FunctionDeclaration$meta$declaration;}
ex$.$init$FunctionDeclaration$meta$declaration=$init$FunctionDeclaration$meta$declaration;$init$FunctionDeclaration$meta$declaration();function FunctionOrValueDeclaration$meta$declaration(functionOrValueDeclaration$){NestableDeclaration$meta$declaration(functionOrValueDeclaration$);}
FunctionOrValueDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration}],of:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration}],pa:17,an:function(){return[doc("A function or value declaration.")];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration']};};
ex$.FunctionOrValueDeclaration$meta$declaration=FunctionOrValueDeclaration$meta$declaration;function $init$FunctionOrValueDeclaration$meta$declaration(){if(FunctionOrValueDeclaration$meta$declaration.$$===undefined){initTypeProtoI(FunctionOrValueDeclaration$meta$declaration,'ceylon.language.meta.declaration::FunctionOrValueDeclaration',$init$NestableDeclaration$meta$declaration());
(function(functionOrValueDeclaration$){functionOrValueDeclaration$.$prop$getParameter={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionOrValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionOrValueDeclaration:$at:parameter')];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration','$at','parameter']};}};functionOrValueDeclaration$.$prop$getDefaulted={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionOrValueDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if this function or value is a parameter and has a default value.")];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration','$at','defaulted']};}};functionOrValueDeclaration$.$prop$getVariadic={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionOrValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionOrValueDeclaration:$at:variadic')];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration','$at','variadic']};}};})(FunctionOrValueDeclaration$meta$declaration.$$.prototype);}
return FunctionOrValueDeclaration$meta$declaration;}
ex$.$init$FunctionOrValueDeclaration$meta$declaration=$init$FunctionOrValueDeclaration$meta$declaration;$init$FunctionOrValueDeclaration$meta$declaration();function GettableDeclaration$meta$declaration(gettableDeclaration$){}
GettableDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:GettableDeclaration')];},d:['ceylon.language.meta.declaration','GettableDeclaration']};};
ex$.GettableDeclaration$meta$declaration=GettableDeclaration$meta$declaration;function $init$GettableDeclaration$meta$declaration(){if(GettableDeclaration$meta$declaration.$$===undefined){initTypeProtoI(GettableDeclaration$meta$declaration,'ceylon.language.meta.declaration::GettableDeclaration');
(function(gettableDeclaration$){gettableDeclaration$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:GettableDeclaration$meta$declaration,pa:5,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','GettableDeclaration','$m','get']};}};gettableDeclaration$.memberGet={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:GettableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:GettableDeclaration:$m:memberGet'),$_throws("IncompatibleTypeException","If the specified container is not compatible with this attribute."),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.declaration','GettableDeclaration','$m','memberGet']};}};})(GettableDeclaration$meta$declaration.$$.prototype);}
return GettableDeclaration$meta$declaration;}
ex$.$init$GettableDeclaration$meta$declaration=$init$GettableDeclaration$meta$declaration;$init$GettableDeclaration$meta$declaration();function InterfaceDeclaration$meta$declaration(interfaceDeclaration$){ClassOrInterfaceDeclaration$meta$declaration(interfaceDeclaration$);}
InterfaceDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassOrInterfaceDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:InterfaceDeclaration')];},d:['ceylon.language.meta.declaration','InterfaceDeclaration']};};
ex$.InterfaceDeclaration$meta$declaration=InterfaceDeclaration$meta$declaration;function $init$InterfaceDeclaration$meta$declaration(){if(InterfaceDeclaration$meta$declaration.$$===undefined){initTypeProtoI(InterfaceDeclaration$meta$declaration,'ceylon.language.meta.declaration::InterfaceDeclaration',$init$ClassOrInterfaceDeclaration$meta$declaration());
(function(interfaceDeclaration$){interfaceDeclaration$.interfaceApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$interfaceApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:InterfaceDeclaration$meta$declaration,tp:{Type$interfaceApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:InterfaceDeclaration:$m:interfaceApply'),$_throws("IncompatibleTypeException","If the specified `Type` type argument is not compatible with the \nactual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible \nwith the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','InterfaceDeclaration','$m','interfaceApply']};}};interfaceDeclaration$.memberInterfaceApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$memberInterfaceApply',Type$MemberInterface:'Type$memberInterfaceApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:InterfaceDeclaration$meta$declaration,tp:{Container$memberInterfaceApply:{def:{t:Nothing}},Type$memberInterfaceApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:InterfaceDeclaration:$m:memberInterfaceApply'),$_throws("IncompatibleTypeException","If the specified `Container` or `Type` type arguments are not \ncompatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values \nare not compatible with the actual result\'s container type or \ntype parameters.")];},d:['ceylon.language.meta.declaration','InterfaceDeclaration','$m','memberInterfaceApply']};}};})(InterfaceDeclaration$meta$declaration.$$.prototype);}
return InterfaceDeclaration$meta$declaration;}
ex$.$init$InterfaceDeclaration$meta$declaration=$init$InterfaceDeclaration$meta$declaration;$init$InterfaceDeclaration$meta$declaration();function Module$meta$declaration(module$){AnnotatedDeclaration$meta$declaration(module$);Identifiable(module$);}
Module$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Identifiable},{t:AnnotatedDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Module')];},d:['ceylon.language.meta.declaration','Module']};};
ex$.Module$meta$declaration=Module$meta$declaration;function $init$Module$meta$declaration(){if(Module$meta$declaration.$$===undefined){initTypeProtoI(Module$meta$declaration,'ceylon.language.meta.declaration::Module',$init$AnnotatedDeclaration$meta$declaration(),$init$Identifiable());
(function(module$){module$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Module$meta$declaration,pa:5,an:function(){return[doc("The module version.")];},d:['ceylon.language.meta.declaration','Module','$at','version']};}};module$.$prop$getMembers={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Package$meta$declaration}}},$cont:Module$meta$declaration,pa:5,an:function(){return[doc("The package members of the module.")];},d:['ceylon.language.meta.declaration','Module','$at','members']};}};module$.$prop$getDependencies={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Import$meta$declaration}}},$cont:Module$meta$declaration,pa:5,an:function(){return[doc("The modules this module depends on.")];},d:['ceylon.language.meta.declaration','Module','$at','dependencies']};}};module$.findPackage={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Module$meta$declaration,pa:5,an:function(){return[doc("Finds a package by name. Returns `null` if not found.")];},d:['ceylon.language.meta.declaration','Module','$m','findPackage']};}};module$.findImportedPackage={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Module$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Module:$m:findImportedPackage')];},d:['ceylon.language.meta.declaration','Module','$m','findImportedPackage']};}};module$.resourceByPath={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Resource}]},ps:[{nm:'path',mt:'prm',$t:{t:$_String}}],$cont:Module$meta$declaration,pa:5,an:function(){return[doc("Searches for a resource by its path inside the module.")];},d:['ceylon.language.meta.declaration','Module','$m','resourceByPath']};}};})(Module$meta$declaration.$$.prototype);}
return Module$meta$declaration;}
ex$.$init$Module$meta$declaration=$init$Module$meta$declaration;$init$Module$meta$declaration();function Import$meta$declaration(import$){Annotated(import$);Identifiable(import$);}
Import$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Identifiable},{t:Annotated}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Import')];},d:['ceylon.language.meta.declaration','Import']};};
ex$.Import$meta$declaration=Import$meta$declaration;function $init$Import$meta$declaration(){if(Import$meta$declaration.$$===undefined){initTypeProtoI(Import$meta$declaration,'ceylon.language.meta.declaration::Import',$init$Annotated(),$init$Identifiable());
(function(import$){import$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("The name of the imported module.")];},d:['ceylon.language.meta.declaration','Import','$at','name']};}};import$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("The compile-time version of the imported module.")];},d:['ceylon.language.meta.declaration','Import','$at','version']};}};import$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("True if this imported module is shared.")];},d:['ceylon.language.meta.declaration','Import','$at','shared']};}};import$.$prop$getOptional={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("True if this imported module is optional.")];},d:['ceylon.language.meta.declaration','Import','$at','optional']};}};import$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("The containing module.")];},d:['ceylon.language.meta.declaration','Import','$at','container']};}};})(Import$meta$declaration.$$.prototype);}
return Import$meta$declaration;}
ex$.$init$Import$meta$declaration=$init$Import$meta$declaration;$init$Import$meta$declaration();function Package$meta$declaration(package$){AnnotatedDeclaration$meta$declaration(package$);Identifiable(package$);}
Package$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Identifiable},{t:AnnotatedDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package')];},d:['ceylon.language.meta.declaration','Package']};};
ex$.Package$meta$declaration=Package$meta$declaration;function $init$Package$meta$declaration(){if(Package$meta$declaration.$$===undefined){initTypeProtoI(Package$meta$declaration,'ceylon.language.meta.declaration::Package',$init$AnnotatedDeclaration$meta$declaration(),$init$Identifiable());
(function(package$){package$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Package$meta$declaration,pa:5,an:function(){return[doc("The module this package belongs to.")];},d:['ceylon.language.meta.declaration','Package','$at','container']};}};package$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Package$meta$declaration,pa:5,an:function(){return[doc("True if this package is shared.")];},d:['ceylon.language.meta.declaration','Package','$at','shared']};}};package$.members={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$members'}},ps:[],$cont:Package$meta$declaration,tp:{Kind$members:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:members')];},d:['ceylon.language.meta.declaration','Package','$m','members']};}};package$.annotatedMembers={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMembers'}},ps:[],$cont:Package$meta$declaration,tp:{Kind$annotatedMembers:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMembers:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:annotatedMembers')];},d:['ceylon.language.meta.declaration','Package','$m','annotatedMembers']};}};package$.getMember={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMember']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,tp:{Kind$getMember:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getMember')];},d:['ceylon.language.meta.declaration','Package','$m','getMember']};}};package$.getValue={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getValue')];},d:['ceylon.language.meta.declaration','Package','$m','getValue']};}};package$.getClassOrInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassOrInterfaceDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getClassOrInterface')];},d:['ceylon.language.meta.declaration','Package','$m','getClassOrInterface']};}};package$.getFunction={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getFunction')];},d:['ceylon.language.meta.declaration','Package','$m','getFunction']};}};package$.getAlias={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:AliasDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getAlias')];},d:['ceylon.language.meta.declaration','Package','$m','getAlias']};}};})(Package$meta$declaration.$$.prototype);}
return Package$meta$declaration;}
ex$.$init$Package$meta$declaration=$init$Package$meta$declaration;$init$Package$meta$declaration();function OpenClassOrInterfaceType$meta$declaration(openClassOrInterfaceType$){OpenType$meta$declaration(openClassOrInterfaceType$);}
OpenClassOrInterfaceType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],of:[{t:OpenClassType$meta$declaration},{t:OpenInterfaceType$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:OpenClassOrInterfaceType')];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType']};};
ex$.OpenClassOrInterfaceType$meta$declaration=OpenClassOrInterfaceType$meta$declaration;function $init$OpenClassOrInterfaceType$meta$declaration(){if(OpenClassOrInterfaceType$meta$declaration.$$===undefined){initTypeProtoI(OpenClassOrInterfaceType$meta$declaration,'ceylon.language.meta.declaration::OpenClassOrInterfaceType',$init$OpenType$meta$declaration());
(function(openClassOrInterfaceType$){openClassOrInterfaceType$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassOrInterfaceDeclaration$meta$declaration},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The class or interface declaration for this open type.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','declaration']};}};openClassOrInterfaceType$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The extended type of this open type.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','extendedType']};}};openClassOrInterfaceType$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The satisfied types of this open type.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','satisfiedTypes']};}};openClassOrInterfaceType$.$prop$getTypeArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The map of open type arguments.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArguments']};}};openClassOrInterfaceType$.$prop$getTypeArgumentList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The list of open type arguments.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArgumentList']};}};openClassOrInterfaceType$.$prop$getTypeArgumentWithVariances={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:OpenTypeArgument$meta$declaration()}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The map of type parameter declaration to open type arguments and use-site variance.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArgumentWithVariances']};}};openClassOrInterfaceType$.$prop$getTypeArgumentWithVarianceList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:OpenTypeArgument$meta$declaration()}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The list of open type arguments with use-site variance.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArgumentWithVarianceList']};}};})(OpenClassOrInterfaceType$meta$declaration.$$.prototype);}
return OpenClassOrInterfaceType$meta$declaration;}
ex$.$init$OpenClassOrInterfaceType$meta$declaration=$init$OpenClassOrInterfaceType$meta$declaration;$init$OpenClassOrInterfaceType$meta$declaration();function OpenClassType$meta$declaration(openClassType$){OpenClassOrInterfaceType$meta$declaration(openClassType$);}
OpenClassType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenClassOrInterfaceType$meta$declaration}],pa:17,an:function(){return[doc("An open class type.")];},d:['ceylon.language.meta.declaration','OpenClassType']};};
ex$.OpenClassType$meta$declaration=OpenClassType$meta$declaration;function $init$OpenClassType$meta$declaration(){if(OpenClassType$meta$declaration.$$===undefined){initTypeProtoI(OpenClassType$meta$declaration,'ceylon.language.meta.declaration::OpenClassType',$init$OpenClassOrInterfaceType$meta$declaration());
(function(openClassType$){openClassType$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:OpenClassType$meta$declaration,pa:7,an:function(){return[doc("This class declaration.")];},d:['ceylon.language.meta.declaration','OpenClassType','$at','declaration']};}};})(OpenClassType$meta$declaration.$$.prototype);}
return OpenClassType$meta$declaration;}
ex$.$init$OpenClassType$meta$declaration=$init$OpenClassType$meta$declaration;$init$OpenClassType$meta$declaration();function OpenInterfaceType$meta$declaration(openInterfaceType$){OpenClassOrInterfaceType$meta$declaration(openInterfaceType$);}
OpenInterfaceType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenClassOrInterfaceType$meta$declaration}],pa:17,an:function(){return[doc("An open interface type.")];},d:['ceylon.language.meta.declaration','OpenInterfaceType']};};
ex$.OpenInterfaceType$meta$declaration=OpenInterfaceType$meta$declaration;function $init$OpenInterfaceType$meta$declaration(){if(OpenInterfaceType$meta$declaration.$$===undefined){initTypeProtoI(OpenInterfaceType$meta$declaration,'ceylon.language.meta.declaration::OpenInterfaceType',$init$OpenClassOrInterfaceType$meta$declaration());
(function(openInterfaceType$){openInterfaceType$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:OpenInterfaceType$meta$declaration,pa:7,an:function(){return[doc("This declaration\'s package container.")];},d:['ceylon.language.meta.declaration','OpenInterfaceType','$at','declaration']};}};})(OpenInterfaceType$meta$declaration.$$.prototype);}
return OpenInterfaceType$meta$declaration;}
ex$.$init$OpenInterfaceType$meta$declaration=$init$OpenInterfaceType$meta$declaration;$init$OpenInterfaceType$meta$declaration();function OpenIntersection$meta$declaration(openIntersection$){OpenType$meta$declaration(openIntersection$);}
OpenIntersection$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],pa:17,an:function(){return[doc("An open intersection type.")];},d:['ceylon.language.meta.declaration','OpenIntersection']};};
ex$.OpenIntersection$meta$declaration=OpenIntersection$meta$declaration;function $init$OpenIntersection$meta$declaration(){if(OpenIntersection$meta$declaration.$$===undefined){initTypeProtoI(OpenIntersection$meta$declaration,'ceylon.language.meta.declaration::OpenIntersection',$init$OpenType$meta$declaration());
(function(openIntersection$){openIntersection$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:OpenIntersection$meta$declaration,pa:5,an:function(){return[doc("This intersection\'s list of satisfied open types.")];},d:['ceylon.language.meta.declaration','OpenIntersection','$at','satisfiedTypes']};}};})(OpenIntersection$meta$declaration.$$.prototype);}
return OpenIntersection$meta$declaration;}
ex$.$init$OpenIntersection$meta$declaration=$init$OpenIntersection$meta$declaration;$init$OpenIntersection$meta$declaration();function OpenType$meta$declaration(openType$){}
OpenType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,of:[$prop$getNothingType$meta$declaration,{t:OpenClassOrInterfaceType$meta$declaration},{t:OpenTypeVariable$meta$declaration},{t:OpenUnion$meta$declaration},{t:OpenIntersection$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:OpenType')];},d:['ceylon.language.meta.declaration','OpenType']};};
ex$.OpenType$meta$declaration=OpenType$meta$declaration;function $init$OpenType$meta$declaration(){if(OpenType$meta$declaration.$$===undefined){initTypeProtoI(OpenType$meta$declaration,'ceylon.language.meta.declaration::OpenType');
}
return OpenType$meta$declaration;}
ex$.$init$OpenType$meta$declaration=$init$OpenType$meta$declaration;$init$OpenType$meta$declaration();function OpenTypeArgument$meta$declaration(){var $1hv=mtt$([{t:OpenType$meta$declaration},{t:Variance$meta$declaration}]);$1hv.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:OpenTypeArgument')];},d:['ceylon.language.meta.declaration','OpenTypeArgument']};};return $1hv;}
ex$.OpenTypeArgument$meta$declaration=OpenTypeArgument$meta$declaration;function OpenTypeVariable$meta$declaration(openTypeVariable$){OpenType$meta$declaration(openTypeVariable$);}
OpenTypeVariable$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],pa:17,an:function(){return[doc("An open type variable.")];},d:['ceylon.language.meta.declaration','OpenTypeVariable']};};
ex$.OpenTypeVariable$meta$declaration=OpenTypeVariable$meta$declaration;function $init$OpenTypeVariable$meta$declaration(){if(OpenTypeVariable$meta$declaration.$$===undefined){initTypeProtoI(OpenTypeVariable$meta$declaration,'ceylon.language.meta.declaration::OpenTypeVariable',$init$OpenType$meta$declaration());
(function(openTypeVariable$){openTypeVariable$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:TypeParameter$meta$declaration},$cont:OpenTypeVariable$meta$declaration,pa:5,an:function(){return[doc("This type variable\'s type parameter declaration.")];},d:['ceylon.language.meta.declaration','OpenTypeVariable','$at','declaration']};}};})(OpenTypeVariable$meta$declaration.$$.prototype);}
return OpenTypeVariable$meta$declaration;}
ex$.$init$OpenTypeVariable$meta$declaration=$init$OpenTypeVariable$meta$declaration;$init$OpenTypeVariable$meta$declaration();function OpenUnion$meta$declaration(openUnion$){OpenType$meta$declaration(openUnion$);}
OpenUnion$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],pa:17,an:function(){return[doc("An open union type.")];},d:['ceylon.language.meta.declaration','OpenUnion']};};
ex$.OpenUnion$meta$declaration=OpenUnion$meta$declaration;function $init$OpenUnion$meta$declaration(){if(OpenUnion$meta$declaration.$$===undefined){initTypeProtoI(OpenUnion$meta$declaration,'ceylon.language.meta.declaration::OpenUnion',$init$OpenType$meta$declaration());
(function(openUnion$){openUnion$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:OpenUnion$meta$declaration,pa:5,an:function(){return[doc("The list of case types for this open union type.")];},d:['ceylon.language.meta.declaration','OpenUnion','$at','caseTypes']};}};})(OpenUnion$meta$declaration.$$.prototype);}
return OpenUnion$meta$declaration;}
ex$.$init$OpenUnion$meta$declaration=$init$OpenUnion$meta$declaration;$init$OpenUnion$meta$declaration();function SetterDeclaration$meta$declaration(setterDeclaration$){NestableDeclaration$meta$declaration(setterDeclaration$);}
SetterDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:SetterDeclaration')];},d:['ceylon.language.meta.declaration','SetterDeclaration']};};
ex$.SetterDeclaration$meta$declaration=SetterDeclaration$meta$declaration;function $init$SetterDeclaration$meta$declaration(){if(SetterDeclaration$meta$declaration.$$===undefined){initTypeProtoI(SetterDeclaration$meta$declaration,'ceylon.language.meta.declaration::SetterDeclaration',$init$NestableDeclaration$meta$declaration());
(function(setterDeclaration$){setterDeclaration$.$prop$getVariable={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:SetterDeclaration$meta$declaration,pa:5,an:function(){return[doc("The variable value this setter is for.")];},d:['ceylon.language.meta.declaration','SetterDeclaration','$at','variable']};}};atr$(setterDeclaration$,'actual',function(){var setterDeclaration$=this;return setterDeclaration$.variable.actual;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','actual']};});atr$(setterDeclaration$,'formal',function(){var setterDeclaration$=this;return setterDeclaration$.variable.formal;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','formal']};});atr$(setterDeclaration$,'$_default',function(){var setterDeclaration$=this;return setterDeclaration$.variable.$_default;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','default']};});atr$(setterDeclaration$,'shared',function(){var setterDeclaration$=this;return setterDeclaration$.variable.shared;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','shared']};});atr$(setterDeclaration$,'containingPackage',function(){var setterDeclaration$=this;return setterDeclaration$.variable.containingPackage;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','containingPackage']};});atr$(setterDeclaration$,'containingModule',function(){var setterDeclaration$=this;return setterDeclaration$.variable.containingModule;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','containingModule']};});atr$(setterDeclaration$,'container',function(){var setterDeclaration$=this;return setterDeclaration$.variable.container;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','container']};});atr$(setterDeclaration$,'toplevel',function(){var setterDeclaration$=this;return setterDeclaration$.variable.toplevel;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','toplevel']};});})(SetterDeclaration$meta$declaration.$$.prototype);}
return SetterDeclaration$meta$declaration;}
ex$.$init$SetterDeclaration$meta$declaration=$init$SetterDeclaration$meta$declaration;$init$SetterDeclaration$meta$declaration();function TypeParameter$meta$declaration(typeParameter$){Declaration$meta$declaration(typeParameter$);}
TypeParameter$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Declaration$meta$declaration}],pa:17,an:function(){return[doc("A type parameter declaration.")];},d:['ceylon.language.meta.declaration','TypeParameter']};};
ex$.TypeParameter$meta$declaration=TypeParameter$meta$declaration;function $init$TypeParameter$meta$declaration(){if(TypeParameter$meta$declaration.$$===undefined){initTypeProtoI(TypeParameter$meta$declaration,'ceylon.language.meta.declaration::TypeParameter',$init$Declaration$meta$declaration());
(function(typeParameter$){typeParameter$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypeParameter:$at:container')];},d:['ceylon.language.meta.declaration','TypeParameter','$at','container']};}};typeParameter$.$prop$getDefaulted={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypeParameter:$at:defaulted')];},d:['ceylon.language.meta.declaration','TypeParameter','$at','defaulted']};}};typeParameter$.$prop$getDefaultTypeArgument={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenType$meta$declaration}]},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc("This type parameter\'s default type argument, if it has one.")];},d:['ceylon.language.meta.declaration','TypeParameter','$at','defaultTypeArgument']};}};typeParameter$.$prop$getVariance={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Variance$meta$declaration},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypeParameter:$at:variance')];},d:['ceylon.language.meta.declaration','TypeParameter','$at','variance']};}};typeParameter$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc("The `satisfies` upper bounds for this type parameter.")];},d:['ceylon.language.meta.declaration','TypeParameter','$at','satisfiedTypes']};}};typeParameter$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc("The `of` enumerated bounds for this type parameter.")];},d:['ceylon.language.meta.declaration','TypeParameter','$at','caseTypes']};}};})(TypeParameter$meta$declaration.$$.prototype);}
return TypeParameter$meta$declaration;}
ex$.$init$TypeParameter$meta$declaration=$init$TypeParameter$meta$declaration;$init$TypeParameter$meta$declaration();function TypedDeclaration$meta$declaration(typedDeclaration$){}
TypedDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc("Declaration which has an open type.")];},d:['ceylon.language.meta.declaration','TypedDeclaration']};};
ex$.TypedDeclaration$meta$declaration=TypedDeclaration$meta$declaration;function $init$TypedDeclaration$meta$declaration(){if(TypedDeclaration$meta$declaration.$$===undefined){initTypeProtoI(TypedDeclaration$meta$declaration,'ceylon.language.meta.declaration::TypedDeclaration');
(function(typedDeclaration$){typedDeclaration$.$prop$getOpenType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:TypedDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypedDeclaration:$at:openType')];},d:['ceylon.language.meta.declaration','TypedDeclaration','$at','openType']};}};})(TypedDeclaration$meta$declaration.$$.prototype);}
return TypedDeclaration$meta$declaration;}
ex$.$init$TypedDeclaration$meta$declaration=$init$TypedDeclaration$meta$declaration;$init$TypedDeclaration$meta$declaration();function ValueConstructorDeclaration$meta$declaration(valueConstructorDeclaration$){GettableDeclaration$meta$declaration(valueConstructorDeclaration$);ConstructorDeclaration$meta$declaration(valueConstructorDeclaration$);}
ValueConstructorDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:GettableDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueConstructorDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),CallableConstructorDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration']};};
ex$.ValueConstructorDeclaration$meta$declaration=ValueConstructorDeclaration$meta$declaration;function $init$ValueConstructorDeclaration$meta$declaration(){if(ValueConstructorDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ValueConstructorDeclaration$meta$declaration,'ceylon.language.meta.declaration::ValueConstructorDeclaration',$init$GettableDeclaration$meta$declaration(),$init$ConstructorDeclaration$meta$declaration());
(function(valueConstructorDeclaration$){valueConstructorDeclaration$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:ValueConstructorDeclaration$meta$declaration,pa:7,an:function(){return[doc("The class this constructor constructs")];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$at','container']};}};valueConstructorDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Result$apply'}},ps:[],$cont:ValueConstructorDeclaration$meta$declaration,tp:{Result$apply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueConstructorDeclaration:$m:apply')];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','apply']};}};valueConstructorDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$memberApply',Type$MemberClassValueConstructor:'Result$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:ValueConstructorDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueConstructorDeclaration:$m:memberApply')];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','memberApply']};}};valueConstructorDeclaration$.$_get=function(){var valueConstructorDeclaration$=this;return valueConstructorDeclaration$.$_apply({Result$apply:{t:$_Object}}).$_get();};valueConstructorDeclaration$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[],$cont:ValueConstructorDeclaration$meta$declaration,pa:11,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','get']};};valueConstructorDeclaration$.memberGet=function($1hw){var valueConstructorDeclaration$=this;return valueConstructorDeclaration$.memberApply(nothingType$meta$model(),{Result$memberApply:{t:$_Object},Container$memberApply:{t:Nothing}}).$_bind($1hw).$_get();};valueConstructorDeclaration$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValueConstructorDeclaration$meta$declaration,pa:11,an:function(){return[doc("Reads the current value of this attribute on the given container instance."),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container is not compatible with this attribute."),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),StorageException$meta$model),"If this attribute is not stored at runtime, for example if it is \nneither shared nor captured.")];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','memberGet']};};})(ValueConstructorDeclaration$meta$declaration.$$.prototype);}
return ValueConstructorDeclaration$meta$declaration;}
ex$.$init$ValueConstructorDeclaration$meta$declaration=$init$ValueConstructorDeclaration$meta$declaration;$init$ValueConstructorDeclaration$meta$declaration();function ValueDeclaration$meta$declaration(valueDeclaration$){NestableDeclaration$meta$declaration(valueDeclaration$);FunctionOrValueDeclaration$meta$declaration(valueDeclaration$);GettableDeclaration$meta$declaration(valueDeclaration$);}
ValueDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionOrValueDeclaration$meta$declaration},{t:NestableDeclaration$meta$declaration},{t:GettableDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration')];},d:['ceylon.language.meta.declaration','ValueDeclaration']};};
ex$.ValueDeclaration$meta$declaration=ValueDeclaration$meta$declaration;function $init$ValueDeclaration$meta$declaration(){if(ValueDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ValueDeclaration$meta$declaration,'ceylon.language.meta.declaration::ValueDeclaration',$init$NestableDeclaration$meta$declaration(),$init$FunctionOrValueDeclaration$meta$declaration(),$init$GettableDeclaration$meta$declaration());
(function(valueDeclaration$){valueDeclaration$.$prop$getLate={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:late')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','late']};}};valueDeclaration$.$prop$getVariable={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:variable')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','variable']};}};valueDeclaration$.$prop$getObjectValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:objectValue')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','objectValue']};}};valueDeclaration$.$prop$getObjectClass={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassDeclaration$meta$declaration}]},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:objectClass')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','objectClass']};}};valueDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$apply',Set$Value:'Set$apply'}},ps:[],$cont:ValueDeclaration$meta$declaration,tp:{Get$apply:{def:{t:Anything}},Set$apply:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:apply'),$_throws("IncompatibleTypeException","If the specified `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','apply']};}};valueDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Set$Attribute:'Set$memberApply',Container$Attribute:'Container$memberApply',Get$Attribute:'Get$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:ValueDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:memberApply'),$_throws("IncompatibleTypeException","If the specified `Container`, `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberApply']};}};valueDeclaration$.$_get=function(){var valueDeclaration$=this;return valueDeclaration$.$_apply({Get$apply:{t:Anything},Set$apply:{t:Nothing}}).$_get();};valueDeclaration$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:ValueDeclaration$meta$declaration,pa:11,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','get']};};valueDeclaration$.memberGet=function($1hx){var valueDeclaration$=this;return valueDeclaration$.memberApply(nothingType$meta$model(),{Set$memberApply:{t:Nothing},Container$memberApply:{t:Nothing},Get$memberApply:{t:Anything}}).$_bind($1hx).$_get();};valueDeclaration$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValueDeclaration$meta$declaration,pa:11,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:memberGet'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container is not compatible with this attribute."),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),StorageException$meta$model),"If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberGet']};};valueDeclaration$.set=function($1hy){var valueDeclaration$=this;return valueDeclaration$.$_apply({Get$apply:{t:Anything},Set$apply:{t:Nothing}}).setIfAssignable($1hy);};valueDeclaration$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:ValueDeclaration$meta$declaration,pa:9,an:function(){return[doc("Sets the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','set']};};valueDeclaration$.memberSet={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:memberSet'),$_throws("IncompatibleTypeException","If the specified container or new value type is not compatible with this attribute."),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberSet']};}};valueDeclaration$.$prop$getSetter={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:SetterDeclaration$meta$declaration}]},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:setter')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','setter']};}};})(ValueDeclaration$meta$declaration.$$.prototype);}
return ValueDeclaration$meta$declaration;}
ex$.$init$ValueDeclaration$meta$declaration=$init$ValueDeclaration$meta$declaration;$init$ValueDeclaration$meta$declaration();function Variance$meta$declaration(variance$){}
Variance$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,of:[$prop$getInvariant$meta$declaration,$prop$getCovariant$meta$declaration,$prop$getContravariant$meta$declaration],pa:1,an:function(){return[doc("Variance information.")];},d:['ceylon.language.meta.declaration','Variance']};};
ex$.Variance$meta$declaration=Variance$meta$declaration;function $init$Variance$meta$declaration(){if(Variance$meta$declaration.$$===undefined){initTypeProtoI(Variance$meta$declaration,'ceylon.language.meta.declaration::Variance');
}
return Variance$meta$declaration;}
ex$.$init$Variance$meta$declaration=$init$Variance$meta$declaration;$init$Variance$meta$declaration();function $1hz$meta$declaration(){var invariant$=new $1hz$meta$declaration.$$;Variance$meta$declaration(invariant$);return invariant$;};$1hz$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],d:['ceylon.language.meta.declaration','invariant']};};function $init$invariant$meta$declaration(){if($1hz$meta$declaration.$$===undefined){initTypeProto($1hz$meta$declaration,'ceylon.language.meta.declaration::invariant',Basic,$init$Variance$meta$declaration());
(function(invariant$){atr$(invariant$,'string',function(){var invariant$=this;return "Invariant";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1hz$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','invariant','$at','string']};});})($1hz$meta$declaration.$$.prototype);}
return $1hz$meta$declaration;}
ex$.$init$invariant$meta$declaration=$init$invariant$meta$declaration;$init$invariant$meta$declaration();var $1i1;function invariant$meta$declaration(){if($1i1===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'invariant\' before it was set"),'4:0-8:0','Variance.ceylon');if($1i1===undefined){$1i1=INIT$;$1i1=$init$invariant$meta$declaration()();$1i1.$crtmm$=invariant$meta$declaration.$crtmm$;}
return $1i1;}
ex$.invariant$meta$declaration=invariant$meta$declaration;invariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$invariant$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:invariant')];},d:['ceylon.language.meta.declaration','invariant']};};$prop$getInvariant$meta$declaration=invariant$meta$declaration;ex$.$prop$getInvariant$meta$declaration=$prop$getInvariant$meta$declaration;function $1i2$meta$declaration(){var covariant$=new $1i2$meta$declaration.$$;Variance$meta$declaration(covariant$);return covariant$;};$1i2$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],d:['ceylon.language.meta.declaration','covariant']};};function $init$covariant$meta$declaration(){if($1i2$meta$declaration.$$===undefined){initTypeProto($1i2$meta$declaration,'ceylon.language.meta.declaration::covariant',Basic,$init$Variance$meta$declaration());
(function(covariant$){atr$(covariant$,'string',function(){var covariant$=this;return "Covariant";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1i2$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','covariant','$at','string']};});})($1i2$meta$declaration.$$.prototype);}
return $1i2$meta$declaration;}
ex$.$init$covariant$meta$declaration=$init$covariant$meta$declaration;$init$covariant$meta$declaration();var $1i4;function covariant$meta$declaration(){if($1i4===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'covariant\' before it was set"),'10:0-13:0','Variance.ceylon');if($1i4===undefined){$1i4=INIT$;$1i4=$init$covariant$meta$declaration()();$1i4.$crtmm$=covariant$meta$declaration.$crtmm$;}
return $1i4;}
ex$.covariant$meta$declaration=covariant$meta$declaration;covariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$covariant$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:covariant')];},d:['ceylon.language.meta.declaration','covariant']};};$prop$getCovariant$meta$declaration=covariant$meta$declaration;ex$.$prop$getCovariant$meta$declaration=$prop$getCovariant$meta$declaration;function $1i5$meta$declaration(){var contravariant$=new $1i5$meta$declaration.$$;Variance$meta$declaration(contravariant$);return contravariant$;};$1i5$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],d:['ceylon.language.meta.declaration','contravariant']};};function $init$contravariant$meta$declaration(){if($1i5$meta$declaration.$$===undefined){initTypeProto($1i5$meta$declaration,'ceylon.language.meta.declaration::contravariant',Basic,$init$Variance$meta$declaration());
(function(contravariant$){atr$(contravariant$,'string',function(){var contravariant$=this;return "Contravariant";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1i5$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','contravariant','$at','string']};});})($1i5$meta$declaration.$$.prototype);}
return $1i5$meta$declaration;}
ex$.$init$contravariant$meta$declaration=$init$contravariant$meta$declaration;$init$contravariant$meta$declaration();var $1i7;function contravariant$meta$declaration(){if($1i7===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'contravariant\' before it was set"),'15:0-18:0','Variance.ceylon');if($1i7===undefined){$1i7=INIT$;$1i7=$init$contravariant$meta$declaration()();$1i7.$crtmm$=contravariant$meta$declaration.$crtmm$;}
return $1i7;}
ex$.contravariant$meta$declaration=contravariant$meta$declaration;contravariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$contravariant$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:contravariant')];},d:['ceylon.language.meta.declaration','contravariant']};};$prop$getContravariant$meta$declaration=contravariant$meta$declaration;ex$.$prop$getContravariant$meta$declaration=$prop$getContravariant$meta$declaration;function $1i8$meta$declaration(){var nothingType$=new $1i8$meta$declaration.$$;OpenType$meta$declaration(nothingType$);return nothingType$;};$1i8$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:OpenType$meta$declaration}],d:['ceylon.language.meta.declaration','nothingType']};};function $init$nothingType$meta$declaration(){if($1i8$meta$declaration.$$===undefined){initTypeProto($1i8$meta$declaration,'ceylon.language.meta.declaration::nothingType',Basic,$init$OpenType$meta$declaration());
(function(nothingType$){atr$(nothingType$,'string',function(){var nothingType$=this;return "Nothing";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1i8$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','nothingType','$at','string']};});})($1i8$meta$declaration.$$.prototype);}
return $1i8$meta$declaration;}
ex$.$init$nothingType$meta$declaration=$init$nothingType$meta$declaration;$init$nothingType$meta$declaration();var $1ia;function nothingType$meta$declaration(){if($1ia===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nothingType\' before it was set"),'1:0-4:0','nothingType.ceylon');if($1ia===undefined){$1ia=INIT$;$1ia=$init$nothingType$meta$declaration()();$1ia.$crtmm$=nothingType$meta$declaration.$crtmm$;}
return $1ia;}
ex$.nothingType$meta$declaration=nothingType$meta$declaration;nothingType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$nothingType$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:nothingType')];},d:['ceylon.language.meta.declaration','nothingType']};};$prop$getNothingType$meta$declaration=nothingType$meta$declaration;ex$.$prop$getNothingType$meta$declaration=$prop$getNothingType$meta$declaration;ex$.$pkg$ans$ceylon$language$meta$declaration=function(){return[doc$($CCMM$,'ceylon.language.meta.declaration','$pkg-anns'),by(["Gavin King","Stephane Epardaud","Tom Bentley"].$sa$({t:$_String})),tagged(["Metamodel"].$sa$({t:$_String})),shared()];};function OpenSetter(v, $$openSetter){
$init$OpenSetter();
if ($$openSetter===undefined)$$openSetter=new OpenSetter.$$;
$$openSetter.variable_=v;
SetterDeclaration$meta$declaration($$openSetter);
$$openSetter.tipo=v.tipo.set;
if (v.tipo.set && getrtmm$$(v.tipo.set)) {
var mm=getrtmm$$(v.tipo.set)
if (typeof(mm.an)==='function')mm.an=mm.an();
v.tipo.set.$crtmm$=mm;
}
return $$openSetter;
}
OpenSetter.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:SetterDeclaration$meta$declaration}],d:['ceylon.language.meta.declaration','SetterDeclaration']};};
function $init$OpenSetter(){
if (OpenSetter.$$===undefined){
initTypeProto(OpenSetter,'ceylon.language.meta.declaration::OpenSetter',Basic,SetterDeclaration$meta$declaration);
(function($$openSetter){
atr$($$openSetter,'variable',function(){return this.variable_;},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','variable']};});
atr$($$openSetter,'name',function(){return this.variable_.name;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','name']};});
atr$($$openSetter,'name',function(){return this.variable.name;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','name']};});
atr$($$openSetter,'string',function(){return "setter " + this.qualifiedName;},undefined,function(){return{$t:{t:$_String},$cont:OpenSetter,an:function(){return[shared(),actual()]},mod:$CCMM$,d:['$','Object','$at','string']};});
atr$($$openSetter,'qualifiedName',function(){return this.variable.qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','Declaration','$at','qualifiedName']};});
$$openSetter.equals=function(o) {
return is$(o,{t:OpenSetter}) && o.variable.equals(this.variable);
}
})(OpenSetter.$$.prototype);
}
return OpenSetter;
}
ex$.OpenSetter=OpenSetter;
$init$OpenSetter();
function FunParamDecl(cont,param,$$funParamDecl){
$init$FunParamDecl();
if ($$funParamDecl===undefined)$$funParamDecl=new FunParamDecl.$$;
FunctionDeclaration$meta$declaration($$funParamDecl);
$$funParamDecl.cont=cont;
$$funParamDecl.param=param;
$$funParamDecl.tipo={$crtmm$:{$cont:cont.tipo,$t:param.$rt,ps:param.ps,mt:'prm',d:cont.tipo.$crtmm$.d,an:param.an,pa:param.pa}};
$$funParamDecl.$prop$getParameter={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','parameter']};}};
$$funParamDecl.$prop$getParameter.get=function(){return true;};
$$funParamDecl.$prop$getAnnotation={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','annotation']};}};
$$funParamDecl.$prop$getAnnotation.get=function(){return false;};
$$funParamDecl.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','shared']};}};
$$funParamDecl.$prop$getShared.get=function(){return false;};
$$funParamDecl.$prop$getToplevel={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','toplevel']};}};
$$funParamDecl.$prop$getToplevel.get=function(){return false;};
$$funParamDecl.$prop$getFormal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','formal']};}};
$$funParamDecl.$prop$getFormal.get=function(){return false;};
$$funParamDecl.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','default']};}};
$$funParamDecl.$prop$getDefault.get=function(){return false};
$$funParamDecl.$prop$getActual={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','actual']};}};
$$funParamDecl.$prop$getActual.get=function(){return false;};
return $$funParamDecl;
}
FunParamDecl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:FunctionDeclaration$meta$declaration}],d:['ceylon.language.meta.declaration','FunParamDecl']};};
function $init$FunParamDecl(){
if (FunParamDecl.$$===undefined){
initTypeProto(FunParamDecl,'ceylon.language.meta.declaration::FunParamDecl',Basic,FunctionDeclaration$meta$declaration);
(function($$funParamDecl){
atr$($$funParamDecl,'parameter',function(){return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','parameter']};});
atr$($$funParamDecl,'defaulted',function(){
return this.param.def!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','defaulted']};});
atr$($$funParamDecl,'variadic',function(){
return this.param.seq!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','variadic']};});
atr$($$funParamDecl,'container',function(){
return this.cont;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u', l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','container']};});
atr$($$funParamDecl,'containingPackage',function(){
return this.cont.containingPackage;
},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','containingPackage']};});
atr$($$funParamDecl,'containingModule',function(){
return this.cont.containingModule;
},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','containingModule']};});
atr$($$funParamDecl,'openType',function(){
var t = this.param.$rt;
if (typeof(t)==='string')return OpenTvar$jsint(OpenTypeParam$jsint(this.cont,t));
return _openTypeFromTarg(t);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','openType']};});
atr$($$funParamDecl,'annotation',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','annotation']};});
atr$($$funParamDecl,'shared',function(){return (this.param.pa&1)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','shared']};});
atr$($$funParamDecl,'toplevel',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','toplevel']};});
atr$($$funParamDecl,'formal',function(){return (this.param.pa&4)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','formal']};});
atr$($$funParamDecl,'$_default',function(){return (this.param.pa&8)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','default']};});
atr$($$funParamDecl,'actual',function(){return (this.param.pa&2)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','actual']};});
atr$($$funParamDecl,'qualifiedName',function(){
return qname$(this.tipo.$crtmm$)+"."+this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','qualifiedName']};});
atr$($$funParamDecl,'string',function(){return "function " + this.qualifiedName;
},undefined,$_Object.$$.prototype.$prop$getString.$crtmm$);
atr$($$funParamDecl,'name',function(){
return this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','name']};});
$$funParamDecl.getParameterDeclaration=function getParameterDeclaration(name$10){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name$6.equals(pd[i].name))return pd[i];
}
return null;
};$$funParamDecl.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u', l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}}],$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','getParameterDeclaration']};};
$$funParamDecl.$_apply=function $_apply(typeArguments$11,$$$mptypes){
if(typeArguments$11===undefined){typeArguments$11=empty();}
throw Exception("IMPL FunParamDecl.apply");
};$$funParamDecl.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments:'Arguments',Type:'Return'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:FunParamDecl,tp:{Return:{'def':{t:Anything}},Arguments:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],'def':{t:Nothing}}},pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','apply']};};
$$funParamDecl.memberApply=function memberApply(containerType$12,typeArguments$13,$$$mptypes){
if(typeArguments$13===undefined){typeArguments$13=empty();}
throw Exception("IMPL FunParamDecl.memberApply");
};$$funParamDecl.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Arguments:'Arguments',Type:'Return',Container:'Container'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Type:'Container'}},an:function(){return[];}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:FunParamDecl,tp:{Container:{'def':{t:Nothing}},Return:{'def':{t:Anything}},Arguments:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],'def':{t:Nothing}}},pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','memberApply']};};
$$funParamDecl.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
$$funParamDecl.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:FunParamDecl,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','annotated']};};
$$funParamDecl.annotations=function($mpt){return annd$annotations(this,$mpt);};
$$funParamDecl.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:FunParamDecl,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.jsint','FunctionDeclaration','$m','annotations']};};
})(FunParamDecl.$$.prototype);
}
return FunParamDecl;
}
ex$.$init$FunParamDecl=$init$FunParamDecl;
$init$FunParamDecl();
function getrtmm$$(x) {
if (x===undefined||x===null)return undefined;
if (typeof(x.$crtmm$)==='function')x.$crtmm$=x.$crtmm$();
return x.$crtmm$;
}
ex$.getrtmm$$=getrtmm$$;
function get_model(mm) {
var map=typeof(mm.mod)==='function'?mm.mod():mm.mod;
var path=mm.d;
for (var i=0; i < path.length; i++) {
var _p=path[i];
if (i===0 && _p==='$')_p='ceylon.language';
else if (i===path.length-1&&_p==='$set' && map.nm && map.$set)return map;
if (map===undefined)console.log("WRONG MODEL PATH " + path + " index " + i);
map = map[_p];
}
return map;
}
function pushTypes(list, types,targ$2) {
for (var i=0; i<types.length; i++) {
var t = types[i];
var nt;
if (t.t === 'u') {
nt=applyUnionType(t, targ$2);
} else if (t.t === 'i') {
nt=applyIntersectionType(t, targ$2);
} else if (typeof(t)==='string') {
nt=typeLiteral$meta({Type$typeLiteral:targ$2[t]},targ$2);
} else {
nt=typeLiteral$meta({Type$typeLiteral:t},targ$2);
}
if (nt && !list.contains(nt))list.push(nt);
}
return list;
}
function applyUnionType(ut,targ$2) { //return AppliedUnionType
var cases = pushTypes([], flattentype$(ut.l,'u'),targ$2);
return AppliedUnionType$jsint(ut, $arr$(cases,ut), {Union$AppliedUnionType:ut});
}
function applyIntersectionType(it,targ$2) { //return AppliedIntersectionType
var sats = pushTypes([], flattentype$(it.l,'i'),targ$2);
return AppliedIntersectionType$jsint(it, $arr$(sats,it), {Union$AppliedIntersectionType:it});
}
function fmp$(m,v,p) {
return modules$meta().find(m,v).findPackage(p);
}
ex$.fmp$=fmp$;
function lmp$(x,p) {
return Modulo$jsint(x).findPackage(p);
}
ex$.lmp$=lmp$;
function mmfca$(rt, ta) {
if (!ta.t.$$)return rt;
ta=ta.t;
if (extendsType({t:rt},{t:ta}))return ta;
if (extendsType({t:ta},{t:rt}))return rt;
var mm=getrtmm$$(ta);
if (mm) {
var st;while((st=mm['super'])) {
if (extendsType({t:rt},st)){
return st.t;
}
mm=getrtmm$$(st.t);
}
mm=getrtmm$$(ta);
var sts=mm['sts'];
if (sts) for(var i=0;i<sts.length;i++) {
st=sts[i];
if (st.t.$$ && extendsType({t:rt},st))return st.t;
}
}
return rt;
}
ex$.mmfca$=mmfca$;
function getnpmem$(proto,n) {
if (n.substring(0,6)==='$prop$')return undefined;
if (proto['$prop$get'+n[0].toUpperCase()+n.substring(1)])return undefined;
return proto[n];
}
function _findTypeFromModel(pkg,mdl,cont) {
var mod = pkg.container;
var nm = mdl.nm;
var mt = mdl['mt'];
if (mt === 'a' || mt === 'g' || mt === 'o' || mt === 's') {
nm = '$prop$get' + nm[0].toUpperCase() + nm.substring(1);
}
if (cont) {
var imm=getrtmm$$(cont);
if (mt==='c'||mt==='i')nm=nm+'$'+imm.d[imm.d.length-1];
}else if (pkg.suffix) {
nm+=pkg.suffix;
}
var out=cont?cont.$$.prototype:mod.meta;
var rv=out[nm];
if (rv===undefined)rv=out['$_'+nm];
if (rv===undefined){
rv=out['$init$'+nm];
if (typeof(rv)==='function')rv=rv();
}
if(rv === undefined){
var unsh=out['$pkgunsh$'+pkg.name.$_replace('.','$')];
rv = unsh[nm];
}
return rv;
}
function qname$(mm) {
if (mm.t==='u' || mm.t==='i') {
var qn='';
for (var i=0; i < mm.l.length; i++) {
if (i>0) {
qn+= mm.t==='u' ? '|' : '&';
}
qn+=qname$(mm.l[i]);
}
return qn;
}
if (mm.t) {
mm=mm.t;
}
if (mm.$crtmm$)mm=getrtmm$$(mm);
if (!mm.d && mm._alias)mm=getrtmm$$(mm._alias);
if (!mm.d)return "[unnamed type]";
var qn=mm.d[0];
if (qn==='$')qn='ceylon.language';
for (var i=1; i<mm.d.length; i++){
var n=mm.d[i];
var p=n.indexOf('$');
if(p!==0)qn+=(i==1?"::":".")+(p>0?n.substring(0,p):n);
}
return qn;
}
function tparms2targs$(c,t){
var mm=getrtmm$$(c).tp;
if (mm) {
if (Object.keys(mm).length == t.size) {
var r={},i=0;
for (var k in mm) {
r[k]=t.$_get(i++).$$targs$$.Target$Type;
}
return r;
}
}
return undefined;
}
var reservedWords$ = [
"undefined", "boolean", "byte", "char", "const",
"debugger", "default", "delete", "do", "double", "enum", "export", "false",
"final", "float", "goto", "implements", "instanceof", "int", "long",
"native", "new", "null", "private", "protected", "public", "short", "static",
"synchronized", "throws", "transient", "true", "typeof", "var", "volatile",
"with", "abstract", "process", "require",
"Date", "Object", "Boolean", "Error", "Number", "RegExp",
"hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable",
"Function",
"call", "arguments", "caller", "apply", "bind", "eval",
"toFixed", "valueOf", "toPrecision", "toExponential",
"String",
"charAt", "strike", "fixed", "sub", "charCodeAt",
"trimLeft", "toLocaleUpperCase", "toUpperCase", "fontsize", "search",
"toLocaleLowerCase", "small", "big", "fontcolor", "blink", "trim",
"bold", "match", "substr", "trimRight", "replace", "split", "sup", "link",
"localeCompare", "valueOf", "substring", "toLowerCase", "italics", "anchor",
"Array",
"toLocaleString", "splice", "map", "forEach", "reverse",
"join", "push", "shift", "pop", "sort", "unshift", "reduceRight", "reduce",
"every", "filter",
"length", "toString", "constructor", "prototype",
"concat", "indexOf", "lastIndexOf", "slice", "get"
];
function escapePropertyName$(name){
if (reservedWords$.indexOf(name)>=0)
return '$_'+name;
return name;
}
function getValuePropertyName$(propertyName){
return '$prop$get'+propertyName[0].toUpperCase()+propertyName.substring(1);
}
function findMethodByNameFromPrototype$(proto, name){
var escapedName = escapePropertyName$(name);
var propname = getValuePropertyName$(name);
if(proto[propname] !== undefined)
return undefined;
var decl = proto[escapedName];
if (decl===undefined) {
for (var key in proto) {
propname=getValuePropertyName$(key);
if (!key.startsWith("$prop$get") && proto[propname]===undefined && typeof(proto[key])==='function') {
var mm = getrtmm$$(proto[key]);
var mod = mm && get_model(mm);
if (mod && mod.nm === name) {
return proto[key];
}
}
var m$ = proto[propname] ? undefined : proto[key];
decl = typeof(m$)==='function' && m$.$$===undefined ? getrtmm$$(m$) : undefined;
if (decl && decl.d && decl.d[decl.d.length-1]===name){
return proto[key];
}else{
decl = undefined;
}
}
}
return decl;
}
function rejectInheritedOrPrivate$(mm, tipo, noInherit){
if (noInherit) {
return (mm&&mm.$cont!==tipo);
}else{
return ((mm.pa & 1) == 0);
}
}
function findModuleOrThrow$(name, version){
var mod = modules$meta().find(name, version);
if(!mod)
throw AssertionError("Module "+name+"/"+version+" is not available");
return mod;
}
ex$.findModuleOrThrow$=findModuleOrThrow$;
function validate$params(ps,t,msg,nothrow) {
if (t.t===Nothing)return true;
if (!ps || ps.length==0) {
if (t.t===Empty)return true;
} else if (t.t==='T') {
if (ps.length==t.l.length) {
for (var i=0;i<ps.length;i++) {
if (!extendsType(t.l[i],ps[i].$t)) {
if (nothrow)return false;else throw IncompatibleTypeException$meta$model(msg);
}
}
return true;
}
} else if (t.t===Empty) {
if (!ps || ps.length===0)return true;
var countDefs=0;
for (var i=0;i<ps.length;i++)if (ps[i].def)countDefs++;
if (countDefs===ps.length)return true;
} else if (t.t==='u' && ps.length===1) {
if (extendsType(ps[0].$t,t))return true;
} else if (t.t===Sequential || t.t===Sequence) {
if (extendsType(ps[0].$t,t.a.Element$Sequential||t.a.Element$Sequence))return true;
} else { //it's already a tuple, navigate it
console.trace("TODO!!!! validate$params with Tuple type");
}
if (nothrow)return false;
throw IncompatibleTypeException$meta$model(msg);
}
function validate$typeparams(t,tparms,types) {
if (tparms) {
if (types===undefined||types.size<1)
throw TypeApplicationException$meta$model("Missing type arguments");
if (!types.$_get)types=types.sequence();
var i=0;
t.a={};
for (var tp in tparms) {
var _type=types.$_get(i);
if (_type===undefined)
throw TypeApplicationException$meta$model("Missing type argument for " + tp);
var _tp = tparms[tp];
var _ta = _type===nothingType$meta$model()?{t:Nothing}:_type.tipo;
t.a[tp]= _ta.t ? _ta : {t:_type.tipo};
if ((_tp.sts && _tp.sts.length>0) || (_tp.of && _tp.of.length > 0)) {
var restraints=(_tp.sts && _tp.sts.length>0)?_tp.sts:_tp.of;
for (var j=0; j<restraints.length;j++) {
var _r=restraints[j];if(typeof(_r)==='function')_r=getrtmm$$(_r).$t;
if (!extendsType(t.a[tp],_r))
throw TypeApplicationException$meta$model("Type argument for " + tp + " violates type parameter constraints");
}
}
i++;
}
}
}
function tupleize$params(ps,aux) {
if (!ps || ps.length==0)return {t:Empty};
var tupa={t:'T',l:[]};
for (var i=ps.length-1; i>=ps.length;i--) {
var e=ps[i].$t;
if (typeof(e)==='string'&&aux&&aux[e])e=aux[e];
if (tupa.t==='T') {//tuple
tupa.l.unshift(e);
} else { //union
tupa={t:'T',l:[e,tupa]};
}
if (ps[i].def) {
tupa={t:'u',l:[{t:Empty},tupa]};
}
}
return tupa;
}
function resolve$typearg(ta,mm,$$targs$$) {
var r;
if ($$targs$$ && $$targs$$[ta]) {
r=$$targs$$[ta];
if (typeof(r)!=='string')return r;
}
r=mm.tp?mm.tp[ta]:undefined;
while (!r && mm.$cont) {
mm=mm.$cont;
if (mm.tp)r=mm.tp[ta];
}
if (r) {
if (r.sts)
return r.sts.length==1?r.sts[0]:{t:'i',l:r.sts};
return {t:Anything};
}
console.log("MISSING definition of type argument " + ta + " in " + qname$(mm));
return {t:Anything};
}
function convert$params(mm,a,$$targs$$) {
function sequenceToArray(as) {
if (is$(as,{t:Sequential})) {
var _a=[];
for (var i=0;i<as.size;i++)_a.push(as.$_get(i));
return _a;
}
return as;
}
var ps=mm.ps;
if (ps===undefined || ps.length===0){
if (a && a.size>0)
throw InvocationException$meta$model("Passing parameters to no-args callable");
return [];
}
if (a===undefined) {
a=[];
} else if (a.nativeArray) {
a=a.nativeArray();
} else if (a.arr$) {
a=a.arr$;
} else {
a=sequenceToArray(a);
}
var type0;
if (a.length===1 && (Array.isArray(a[0]) || is$(a[0],{t:Sequential}))
&& (ps.length!=1 || (!extendsType((type0=restype2$(ps[0].$t,$$targs$$)),{t:Sequential}) && !is$(a[0],type0)))) {
a=sequenceToArray(a[0]);
}
var fa=[],sarg;
for (var i=0; i<ps.length;i++) { //check def/seq params
var p=ps[i];
var val_t=restype2$(sarg?sarg.$$targs$$.a.Element$Iterable:p.$t,$$targs$$);
if (typeof(val_t)==='string')val_t=resolve$typearg(val_t,mm,$$targs$$);
if (a[i]===undefined) {
if (p.def||p.seq) {
if (p.seq && p.$t.t===Sequence)
throw InvocationException$meta$model("Not enough arguments to function. Expected 1 but got only 0");
fa.push(undefined);
} else {
throw InvocationException$meta$model("Wrong number of arguments (should be " + ps.length + ")");
}
} else if (sarg) {
sarg.push(a[i]);
} else if (p.seq) {
for (var eta in p.$t.a)if(eta.startsWith("Element$"))val_t=p.$t.a[eta];
if (typeof(val_t)==='string')val_t=resolve$typearg(val_t,mm,$$targs$$);
if (is$(a[i],{t:Iterable,a:{Element$Iterable:val_t}})) {
fa.push(a[i]);
val_t={t:Iterable,a:{Element$Iterable:val_t}};
} else {
sarg=[];
for (var j=i; j<a.length;j++){
if (!is$(a[j],val_t))throw IncompatibleTypeException$meta$model("Wrong type for argument " + j + ", expected " + typeLiteral$meta({Type$typeLiteral:val_t},$$targs$$).string + " got " + className(a[j]));
sarg.push(a[j]);
}
fa.push(sarg.$sa$(val_t));
i=j;
}
} else {
fa.push(a[i]);
}
if (a[i]!==undefined && !is$(a[i],val_t))throw IncompatibleTypeException$meta$model("Wrong type for argument " + i + ", expected " + typeLiteral$meta({Type$typeLiteral:val_t},$$targs$$).string + " got " + className(a[i]));
}
if (a.length>i)throw InvocationException$meta$model("Too many arguments");
a = fa;
return a;
}
function _openTypeFromTarg(targ,o) {
var lit = undefined;
var mm = undefined;
if (targ.t==='u' || targ.t==='i') {
var tl=[];
for (var i=0; i < targ.l.length; i++) {
var _ct=targ.l[i];
if (typeof(_ct)==='string') {
tl.push(OpenTvar$jsint(OpenTypeParam$jsint(o,_ct)));
} else {
tl.push(_ct.t?_openTypeFromTarg(_ct,o):_ct);
}
}
return (targ.t==='u'?FreeUnion$jsint:FreeIntersection$jsint)($arr$(tl,{t:OpenType$meta$declaration}));
} else if (targ.t==='T') {
mm=getrtmm$$(Tuple);
var _m = typeof($CCMM$)==='function'?$CCMM$():$CCMM$;
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
var pkg_ = _mod.findPackage("ceylon.language");
if(targ.l.length == 0){
lit = openClass$jsint(pkg_, Empty);
return FreeClass$jsint(lit);
}
var targ2 = {t: Empty};
var elementTypes = [];
for (var i=targ.l.length-1; i >= 0 ; i--) {
var ct = targ.l[i];
elementTypes.push(ct);
var elementUnion = elementTypes.length == 1
? ct : {t:'u', l:elementTypes.slice()};
targ2 = {t:Tuple, a:{'Element$Tuple':elementUnion, 'First$Tuple':ct, 'Rest$Tuple':targ2}};
}
lit = openClass$jsint(pkg_, Tuple);
lit._targs = targ2.a;
return FreeClass$jsint(lit);
} else {
mm=getrtmm$$(targ.t);
lit = typeLiteral$meta({Type$typeLiteral:targ.t});
}
if (targ.a && lit)lit._targs=targ.a;
var mdl = get_model(mm);
if (mdl.mt==='i') {
return FreeInterface$jsint(lit);
} else if (mdl.mt==='c' || mdl.mt==='o') {
return FreeClass$jsint(lit);
}
console.log("Don't know WTF to return for " + lit + " metatype " + mdl.mt);
}
function memberDeclaringType$($$member){
var mm = getrtmm$$($$member.tipo);
var m2 = get_model(mm);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
return (m2['mt']==='c'?openClass$jsint:OpenInterface$jsint)(fmp$(_m['$mod-name'],_m['$mod-version'],mm.d[0]), $$member.tipo);
}
function _ocoitarg_$(coi,makeItem,maptarg) {
var tps=coi.declaration.tipo.$crtmm$.tp;
if (tps) {
var rtps = coi.declaration._targs;
var targs={};
var ord=[];
for (var tpn in tps) {
var rtp=rtps&&rtps[tpn];
var otp=OpenTypeParam$jsint(coi.declaration.tipo,tpn);
var targ;
if (rtp===undefined) {
targ = OpenTvar$jsint(otp);
} else if (typeof(rtp)==='string') {
targ = OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,rtp));
} else {
if (rtp.t==='i'||rtp.t==='u') {
var nrtp={t:rtp.t,l:[]};
for (var i=0;i<rtp.l.length;i++) {
var _ct=rtp.l[i];
nrtp.l.push(typeof(_ct)==='string'?OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,_ct)):_ct);
}
rtp=nrtp;
}
targ = _openTypeFromTarg(rtp,coi.declaration);
}
targs[otp.qualifiedName]=[otp,makeItem(coi,rtp||0,targ)];
ord.push(otp.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:maptarg});
}
return empty();
}
function ocoitarg$(coi) {
return _ocoitarg_$(coi,function(c,t,a){return a;},
{t:OpenType$meta$declaration});
}
function ocoitargv$(coi) {
return _ocoitarg_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T',l:[{t:OpenType$meta$declaration},{t:Variance$meta$declaration}]});
}
function _ocoitargl_$(coi,makeItem,listarg){
var tps=coi.declaration.tipo.$crtmm$.tp;
if (tps) {
var rtps = coi.declaration._targs;
var ord=[];
for (var tpn in tps) {
var rtp=rtps&&rtps[tpn];
var otp=OpenTypeParam$jsint(coi.declaration.tipo,tpn);
var targ;
if (rtp===undefined) {
targ = OpenTvar$jsint(otp);
} else if (typeof(rtp)==='string') {
targ = OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,rtp));
} else {
if (rtp.t==='i'||rtp.t==='u') {
var nrtp={t:rtp.t,l:[]};
for (var i=0;i<rtp.l.length;i++) {
var _ct=rtp.l[i];
nrtp.l.push(typeof(_ct)==='string'?OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,_ct)):_ct);
}
rtp=nrtp;
}
targ = _openTypeFromTarg(rtp,coi.declaration);
}
ord.push(makeItem(coi,rtp||0,targ));
}
return ord.$sa$(listarg);
}
return empty();
}
function ocoitargl$(coi) {
return _ocoitargl_$(coi,function(c,t,a){return a;},
{t:OpenType$meta$declaration});
}
function ocoitargvl$(coi) {
return _ocoitargl_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T',l:[{t:OpenType$meta$declaration},{t:Variance$meta$declaration}]});
}
function ocoistr$(coi){
var s=coi.declaration.qualifiedName;
var tps=coi.declaration.tipo.$crtmm$.tp;
if (tps) {
var rtps=coi.declaration._targs;
s+="<";
var first=true;
for (var t in tps) {
var rtp=rtps&&rtps[t];
if (first)first=false;else s+=",";
if (rtp.uv)s+=rtp.uv+' ';
if (rtp===undefined||typeof(rtp)==='string') {
if(typeof(rtp)==='string')t=rtp;
if (t.indexOf('$')>0)t=t.substring(0,t.indexOf('$'));
s+=t;
} else {
s+=_openTypeFromTarg(rtp).string;
}
}
s+=">";
}
return s;
}
function thutarg$(t) {
if (typeof t === 'string')return true;
if (t.t === 'u' || t.t === 'i') {
for (var i=0; i < t.l.length; i++){
if (thutarg$(t.l[i]))return true;
}
} else if (t.a){
for (var i in t.a){
if (thutarg$(t.a[i]))return true;
}
}
return false;
}
function restype$(root,t) {
if (!thutarg$(t))return t;
if (typeof t === 'string'){
function ft$(rt) {
if (rt.a && rt.a[t]) {
t=rt.a[t];
return (typeof(t)==='string')?restype$(root,t):t;
}
var mm=getrtmm$$(rt.t?rt.t:rt);
if (mm && mm.sts) {
for (var i=0;i<mm.sts.length;i++){
var st=mm.sts[i];
if (st.a && st.a[t]){
return st.a[t];
}
}
for (i=0;i<mm.sts.length;i++){
st=ft$(mm.sts[i]);
if (st)return st;
}
}
}
return restype$(root,ft$(root));
}
var r={t:t.t};
if (t.t === 'u' || t.t === 'i'){
r.l=[];
for (var i=0;i<t.l.length;i++){
r.l.push(restype$(root,t.l[i]));
}
} else if (t.a){
r.a={};
for (var i in t.a){
r.a[i]=restype$(root,t.a[i]);
}
}
return r;
}
function restype2$(t,targs) {
if (t===undefined)return undefined;
if (!thutarg$(t))return t;
if (typeof t === 'string'){
return restype2$(targs[t])||t;
}
var r={t:t.t};
if (t.t === 'u' || t.t === 'i'){
r.l=[];
for (var i=0;i<t.l.length;i++){
r.l.push(restype2$(t.l[i],targs));
}
} else if (t.a){
r.a={};
for (var i in t.a){
r.a[i]=restype2$(t.a[i],targs);
}
}
return r;
}
function ser$et$(t) {
if (t===nothingType$meta$model())return{t:Nothing};
if (t.tipo.t)return t.tipo;
var r={t:t.tipo};
if (t.$targs)r.a=t.$targs;
return r;
}
ex$.ser$et$=ser$et$;
function value2type$(t){
if (t.t.$$ || t.t==='u' || t.t==='i' || t.t==='T')return t;
if (typeof(t.t)==='function'){
return getrtmm$$(t.t).sts[0];
}
var mm=getrtmm$$(t.t);
if (mm) {
var mod=get_model(mm);
if (mod.mt==='o') {
var nt={t:mm.$t.t};
if (t.a)nt.a=t.a;
return nt;
}
}
return t;
}
function coigetcoi$(coi,name$2,types$3,$$$mptypes,noInherit){
if (noInherit && !extendsType($$$mptypes.Container$getClassOrInterface,{t:coi.tipo})) {
throw IncompatibleTypeException$meta$model("Incompatible container");
}
if (!extendsType($$$mptypes.Kind$getClassOrInterface, {t:ClassOrInterface$meta$model})) {
throw IncompatibleTypeException$meta$model("Kind must be ClassOrInterface");
}
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getClassOrInterface);
if(types$3===undefined){types$3=empty();}
var mm = getrtmm$$(_tipo);
var nom = name$2 + '$' + mm.d[mm.d.length-1];
var ic = _tipo.$$.prototype[nom];
if (!ic) {
if (noInherit)return null;
var pere=mm['super'];
while (!ic && pere) {
mm=getrtmm$$(pere.t);
nom=mm&&mm.d?name$2+'$'+mm.d[mm.d.length-1]:undefined;
if (nom)ic=_tipo.$$.prototype[nom];
if (!ic)pere=mm['super'];
}
}
if (ic) {
mm = getrtmm$$(ic);
var md = get_model(mm);
var rv;
var ict={t:ic};
var _cont={t:_tipo};
if (coi.$targs)_cont.a=coi.$targs;
if (md.mt==='i') {
if (!extendsType({t:Interface$meta$model},{t:$$$mptypes.Kind$getClassOrInterface.t}))throw IncompatibleTypeException$meta$model("Member " + name$2 + " is an interface");
validate$typeparams(ict,ic.$crtmm$.tp,types$3);
rv=AppliedMemberInterface$jsint(ic, {Container$AppliedMemberInterface:_cont,Type$AppliedMemberInterface:ict});
} else if (md.mt==='c'){
if (!extendsType({t:Class$meta$model},{t:$$$mptypes.Kind$getClassOrInterface.t}))throw IncompatibleTypeException$meta$model("Member " + name$2 + " is a class");
validate$typeparams(ict,ic.$crtmm$.tp,types$3);
rv=AppliedMemberClass$jsint(ic, {Container$AppliedMemberClass:_cont,Type$AppliedMemberClass:ict, Arguments$AppliedMemberClass:$$$mptypes.Arguments$getClassOrInterface});
} else {
throw IncompatibleTypeException$meta$model("Member " + name$2 + " is not a class or interface");
}
if (ict.a)rv.$targs=ict.a;
rv.$parent=coi;
return rv;
}
return null;
}
function coiclasse$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getClasses);
for (m in _tipo.$$.prototype) {
var mem=getnpmem$(_tipo.$$.prototype,m);
if (mem && mem.$$) {
var mm=getrtmm$$(mem);
if (mm && mm.d && mm.d[mm.d.length-2]==='$c') {
if (noInherit && mm.$cont!==coi.tipo)continue;
if (!extendsType({t:mem},$$$mptypes.Type$getClasses))continue;
var anns=allann$(mm);
if (anns && coi$is$anns(anns,ats) && validate$params(mm.ps,$$$mptypes.Arguments$getClasses,'',1)) {
mems.push(AppliedMemberClass$jsint(mem, {Container$AppliedMemberClass:_tipo,Type$AppliedMemberClass:{t:mem}, Arguments$AppliedMemberClass:$$$mptypes.Arguments$getClasses}));
}
}
}
}
return mems.$sa$({t:MemberClass$meta$model,a:{Arguments$MemberClass:$$$mptypes.Arguments$getClasses,Container$MemberClass:$$$mptypes.Container$getClasses,Type$MemberClass:$$$mptypes.Type$getClasses}});
}
function coicla$(coi,name,types,cont,noInherit) {
var rv=coigetcoi$(coi,name,types,{Container$getClassOrInterface:cont,
Kind$getClassOrInterface:Class$meta$model},noInherit);
if (rv && !is$(rv, {t:AppliedMemberClass$jsint})) {
throw IncompatibleTypeException$meta$model("Member " + name + " is not a class");
}
return rv;
}
function coimoddcl$(ifc) {
if (ifc._decl)return ifc._decl;
var mm = getrtmm$$(ifc.tipo);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var cls = is$(ifc,{t:ClassModel$meta$model});
ifc._decl = (cls?openClass$jsint:OpenInterface$jsint)(fmp$(_m['$mod-name'],_m['$mod-version'],mm.d[0]), ifc.tipo);
return ifc._decl;
}
function clsparamtypes(cls) {
var ps=cls.tipo.$crtmm$.ps;
if (!ps || ps.length==0)return empty();
var r=[];
for (var i=0; i < ps.length; i++) {
var pt=ps[i].$t;
if (typeof(pt)==='string'){
if (!cls.$targs)throw TypeApplicationException$meta$model("This class model needs type parameters " + cls.string);
pt=cls.$targs[pt];
if (!pt)throw TypeApplicationException$meta$model("Class model is missing type argument for "
+ cls.string + "<" + ps[i].$t + ">");
}
r.push(typeLiteral$meta({Type$typeLiteral:pt},cls.$targs));
}
return r.$sa$({t:Type$meta$model,a:{t:Anything}});
}
function coigetifc$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getInterfaces);
for (m in _tipo.$$.prototype) {
var mem=getnpmem$(_tipo.$$.prototype,m);
if (mem && mem.$$) {
var mm=getrtmm$$(mem);
if (mm && mm.d && mm.d[mm.d.length-2]==='$i') {
if (noInherit && mm.$cont!==coi.tipo)continue;
if (!extendsType({t:mem},$$$mptypes.Type$getInterfaces))continue;
var anns=allann$(mm);
if (anns && coi$is$anns(anns,ats)) {
mems.push(AppliedMemberInterface$jsint(mem, {Container$AppliedMemberInterface:_tipo,Type$AppliedMemberInterface:{t:mem}}));
}
}
}
}
return mems.$sa$({t:MemberInterface$meta$model,a:{Container$MemberInterface:$$$mptypes.Container$getInterfaces,Type$MemberInterface:$$$mptypes.Type$getInterfaces}});
}
function coiifc$(coi,name,types,cont,noInherit){
var rv=coigetcoi$(coi,name,types,{Container$getClassOrInterface:cont,
Kind$getClassOrInterface:Interface$meta$model},noInherit);
if (rv && !is$(rv, {t:AppliedMemberInterface$jsint})) {
throw IncompatibleTypeException$meta$model("Member " + name + " is not an interface");
}
return rv;
}
function coiatr$(coi,name,m,noInherit){
if (noInherit && !extendsType(m.Container$getAttribute,{t:coi.tipo})) {
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
}
var _tipo=mmfca$(coi.tipo,m.Container$getAttribute);
var nom = '$prop$get' + name[0].toUpperCase() + name.substring(1);
var at = _tipo.$$.prototype[nom];
if (!at) {
nom = '$prop$get$_' + name;
at = _tipo.$$.prototype[nom];
if (!at) {
for (nom in _tipo.$$.prototype) {
if (nom.startsWith("$prop$get$")) {
var mm=getrtmm$$(_tipo.$$.prototype[nom]);
if (mm && mm.d && mm.d[mm.d.length-1].startsWith(name+"$")) {
at=_tipo.$$.prototype[nom];break;
}
}
}
}
}
if (!at)return null;
var mm=getrtmm$$(at);
var _t=m.Get$getAttribute;
if (mm && mm.$t) {
if (!extendsType(mm.$t,_t))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType(m.Set$getAttribute,at.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
_t=mm.$t;
}
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit))
return null;
var rv=AppliedAttribute(name, at, {Get$Attribute:_t,Set$Attribute:at.set?_t:{t:Nothing}, Container$Attribute:{t:_tipo}});
if (coi.$targs)rv.$$targs$$.Container$Attribute.a=coi.$targs;
rv.$parent=coi;
return rv;
}
function coigetatr$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getAttributes);
for (m in _tipo.$$.prototype) {
if (m.substring(0,6)==='$prop$') {
var mm=getrtmm$$(_tipo.$$.prototype[m]);
if (mm) {
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit))
continue;
if (!extendsType(mm.$t,$$$mptypes.Get$getAttributes))continue;
var setter=_tipo.$$.prototype[m].set && extendsType($$$mptypes.Set$getAttributes,mm.$t);
if ($$$mptypes.Set$getAttributes.t!==Nothing && !setter)continue;
var anns=allann$(mm);
if (anns && coi$is$anns(anns,ats)) {
var atname=mm.d[mm.d.length-1];
if (atname.indexOf('$')>0)atname=atname.substring(0,atname.indexOf('$'));
mems.push(AppliedAttribute(atname,_tipo.$$.prototype[m],{Container$Attribute:{t:coi.tipo},Get$Attribute:mm.$t,Set$Attribute:setter?mm.$t:{t:Nothing}}));
}
}
}
}
return mems.$sa$({t:Attribute$meta$model,a:{Set$Attribute:$$$mptypes.Set$getAttributes,Container$Attribute:$$$mptypes.Container$getAttributes,Get$Attribute:$$$mptypes.Get$getAttributes}});
}
function coimtd$(coi,name,types,$$$mptypes,noInherit){
if (noInherit && !extendsType($$$mptypes.Container$getMethod,{t:coi.tipo})) {
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
}
if (types===undefined)types=empty();
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getMethod);
var fun = findMethodByNameFromPrototype$(_tipo.$$.prototype, name);
if(!fun)
return null;
var mm=getrtmm$$(fun);
var _t=$$$mptypes.Type$getMethod;
var _a=$$$mptypes.Arguments$getMethod;
if (mm) {
if (mm.$t){
_t=mm.$t;
if (typeof(_t)==='string') {
var _ta;
if (coi.$targs && coi.$targs[_t])_t=coi.$targs[_t];
else if ($$$mptypes.Container$getMethod && $$$mptypes.Container$getMethod.a && $$$mptypes.Container$getMethod.a[_t])_t=$$$mptypes.Container$getMethod.a[_t];
else if (mm.tp && mm.tp[_t])_ta=mm.tp[_t];
else if (_tipo.$crtmm$.tp && _tipo.$crtmm$.tp[_t])_ta=_tipo.$crtmm$.tp[_t];
if (_ta && _ta.sts)_t=_ta.sts.length===1?_ta.sts[0]:{t:'i',l:_ta.sts};
if (typeof(_t)==='string')_t={t:Anything};
}
if (!extendsType(_t,$$$mptypes.Type$getMethod))throw IncompatibleTypeException$meta$model("Incompatible Type argument");
}
validate$params(mm.ps,_a,"Wrong number of Arguments for getMethod");
_a=tupleize$params(mm.ps);
}
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit)){
return null;
}
return AppliedMethod$jsint(fun,$ci2na$(types),{Container$AppliedMethod:{t:_tipo},Type$AppliedMethod:_t,Arguments$AppliedMethod:_a});
}
function coigetmtd$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getMethods);
for (m in _tipo.$$.prototype) {
var mem=getnpmem$(_tipo.$$.prototype,m);
if (mem && mem.$$===undefined) {
var mm=getrtmm$$(mem);
if (mm && mm.d && mm.d[mm.d.length-2]=='$m') {
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit))
continue;
if (!extendsType(mm.$t,$$$mptypes.Type$getMethods))continue;
var anns=allann$(mm);
if (!mm.tp && anns && coi$is$anns(anns,ats) && validate$params(mm.ps,$$$mptypes.Arguments$getMethods,'',1)) {
var types=[];
if (mm.ps) for (var i=0; i<mm.ps.length;i++) {
types.push(typeLiteral$meta({Type$typeLiteral:mm.ps[i].$t}));
}
mems.push(AppliedMethod$jsint(mem,undefined,{Container$AppliedMethod:{t:_tipo},
Type$AppliedMethod:mm.$t,Arguments$AppliedMethod:types.length?{t:'T',l:types}:{t:Empty}}));
}
}
}
}
return mems.$sa$({t:Method$meta$model,a:{Container$Method:$$$mptypes.Container$getMethods,Arguments$Method:$$$mptypes.Arguments$getMethods,Type$Method:$$$mptypes.Type$getMethods}});
}
function coisattype$(coi){
var ints = coi.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = coirestarg$(coi,ints[i]);
var mm=getrtmm$$(ifc.t);
if (mm.$cont) {
rv.push(AppliedMemberInterface$jsint(ifc.t, {Type$AppliedMemberInterface:ifc,Container$AppliedMemberInterface:{t:mm.$cont}}));
} else {
rv.push(AppliedInterface$jsint(ifc.t, {Type$AppliedInterface:ifc}));
}
}
return $arr$(rv,{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}});
}
return empty();
}
function coiexttype$(coi){
var mm = getrtmm$$(coi.tipo);
var sc = mm['super'];
if (sc === undefined)return null;
var scmm = getrtmm$$(sc.t);
var _t=coirestarg$(coi,sc);
var ac;
if (scmm.$cont) {
ac=AppliedMemberClass$jsint(sc.t, {Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}},Container$AppliedMemberClass:{t:scmm.$cont}});
} else {
ac=AppliedClass$jsint(sc.t, {Type$AppliedClass:_t,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
}
if (_t.a)ac.$targs=_t.a;
return ac;
}
function coicase$(coi){
var cts = coi.tipo.$crtmm$.of;
if (cts && cts.length > 0) {
var rv=[];
for (var i=0; i < cts.length; i++) {
if (typeof(cts[i])==='function') {
rv.push(cts[i]());
}
}
return rv.$sa$({t:coi.tipo});
}
return empty();
}
function coistr$(coi) {
if (coi.tipo===Tuple && coi.$$targs$$.Target$Type.t==='T' && coi.$$targs$$.Target$Type.l){
var tn='[';
var ttl=coi.$$targs$$.Target$Type.l;
for (var i=0; i<ttl.length;i++) {
if (i>0)tn+=',';
if (ttl[i].t==='u' && ttl[i].l.length===2 && ttl[i].seq) {
if (ttl[i].l[0].t===Sequential || ttl[i].l[0].t===Sequence) {
tn+=qname$(ttl[i].l[1])+(ttl[i].seq===2?'+':'*');
continue;
} else if (ttl[i].l[1].t===Sequential || ttl[i].l[1].t===Sequence) {
tn+=qname$(ttl[i].l[0])+(ttl[i].seq===2?'+':'*');
continue;
}
}
tn+=qname$(ttl[i]);
if (ttl[i].seq)tn+=ttl[i].seq===2?'+':'*';
}
tn+=']';
return tn;
}
var mm=getrtmm$$(coi.tipo);
var cc=[coi];
var src=coicont$(coi);
while(src) {
cc.unshift(src);
src=coicont$(src);
}
mm=getrtmm$$(cc[0].tipo);
var qn=mm.d[0];
if (qn==='$')qn='ceylon.language';
qn+='::' + mm.d[mm.d.length-1];
if (qn.indexOf('$')>0)qn=qn.substring(0,qn.indexOf('$'));
function simplename(t) {
var s='';
if (t.t==='i'||t.t==='u') {
for (var i=0;i<t.l.length;i++) {
if (s.length)s+= t.t==='i'?'&':'|';
s+=simplename(t.l[i]);
}
} else if (t.t==='T') {
s+= '[';
for (var tttt=0; tttt<t.l.length;tttt++) {
if (tttt>0)s+=',';
s+=qname$(t.l[tttt]);
}
s+=']';
} else {
if (t.uv) {
s+=t.uv+' ';
}
s+=qname$(getrtmm$$(t.t));
if (t.a)s+=addtargs(t);
}
return s;
}
function addtargs(x) {
var mmm=getrtmm$$(x.t);
var s='',tparms=mmm&&mmm.tp;
if (tparms===undefined)return s;
var tsrc=x.a || coi.$targs;
for (var ta in tparms) {
var t2=tsrc[ta];
if (t2) {
if (s.length>1)s+=',';else s='<';
s+=simplename(t2);
}
}
if (s.length)s+='>';
return s;
}
if (cc[0].tipo===Callable) {
qn+=addtargs({t:Callable});
} else {
qn+=addtargs(cc[0].$$targs$$.Target$Type);
}
for (var i=1;i<cc.length;i++) {
mm=getrtmm$$(cc[i].tipo)
var nm=mm.d[mm.d.length-1];
if (nm.indexOf('$')>0)nm=nm.substring(0,nm.indexOf('$'));
qn+='.'+nm+addtargs(cc[i].$$targs$$.Target$Type);
}
return qn;
}
function coihash$(coi) {
var mm = getrtmm$$(coi.tipo);
var h=qname$(mm).hash;
if (mm.tp) {
for (var tp in mm.tp) {
var targ;
if (coi.$$targs$$ && coi.$$targs$$.Type$ClassOrInterface && coi.$$targs$$.Type$ClassOrInterface.a && coi.$$targs$$.Type$ClassOrInterface.a[tp]) {
var _targ=coi.$$targs$$.Type$ClassOrInterface.a[tp];
if (typeof(_targ)==='string') {
console.log("TODO buscar " + tp + "->" + _targ + " para " + coi.declaration.qualifiedName);
_targ={t:Anything};
}
targ=typeLiteral$meta({Type$typeLiteral:_targ});
if (_targ.uv==='out')h+=1;
else if (_targ.uv==='in')h+=2;
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
h+=targ.hash;
}
}
if (coi.$bound)h+=coi.$bound.hash;
return h;
}
function coicont$(coi) {
if (coi.$parent)return coi.$parent;
var cont = getrtmm$$(coi.tipo).$cont;
if (cont===undefined)return null;
if (cont===0)return coi.containingPackage;
var cmm=getrtmm$$(cont);
var mod=get_model(cmm);
while (cont && !(mod.mt==='i' || mod.mt==='c')) {
cont=getrtmm$$(cmm);
if (cont) {
cmm=getrtmm$$(cont);
mod=get_model(cmm);
}
}
if (!cont)return null;
var _t={t:cont};
var rv;
var ttargs=coi.$$targs$$ && (coi.$$targs$$.Container$Member||coi.$$targs$$.Container$AppliedMemberClass||coi.$$targs$$.Container$AppliedMemberInterface);
if (ttargs) {
ttargs=ttargs.a;
} else {
ttargs=coi.$targs;
}
if (ttargs)_t.a=ttargs;
if (coi.src$ && coi.src$.outer$) {
var _out=coi.src$.outer$;
if (_out.$$targs$$) {
_t.a=_out.$$targs$$;
}
rv=AppliedClass$jsint(cont,{Type$AppliedClass:_t,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
rv.src$=_out;
} else {
if (get_model(cmm).mt === 'i') {
rv=AppliedInterface$jsint(cont,{Type$Interface:_t});
} else {
rv=AppliedClass$jsint(cont,{Type$AppliedClass:_t,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
}
}
coi.$parent=rv;
return rv;
}
function _coitarg_$(coi,makeItem,maptarg){
var mm = getrtmm$$(coi.tipo);
if (mm) {
if (mm.tp) {
var typeTargs=coi.$$targs$$ && coi.$$targs$$.Type$ClassOrInterface;
if (typeTargs) {
if (coi.tipo===Tuple && typeTargs.t==='T') {
typeTargs=retpl$(typeTargs);
coi.$$targs$$.Type$ClassOrInterface=typeTargs;
}
typeTargs=typeTargs.a;
}
var targs={};
var ord=[];
for (var tp in mm.tp) {
var param = OpenTypeParam$jsint(coi.tipo,tp);
var targ,_targ=typeTargs && typeTargs[tp];
if (_targ) {
if (typeof(_targ)==='string') {
console.log("TODO buscar " + tp + "->" + _targ + " para " + coi.declaration.qualifiedName);
_targ={t:Anything};
}
targ=typeLiteral$meta({Type$typeLiteral:_targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
targs[param.qualifiedName]=[param,makeItem(coi,_targ||0,targ)];
ord.push(param.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:maptarg});
}
return empty();
}
throw new Error("ClassOrInterface.typeArguments: missing metamodel!");
}
function coitarg$(coi){
return _coitarg_$(coi,function(c,t,a){return a;},
{t:Type$meta$model,a:{Type$Type:{t:Anything}}});
}
function coitargv$(coi){
return _coitarg_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
}, {t:'T', l:[{t:Type$meta$model,a:{t:Anything}},{t:Variance$meta$declaration}]});
}
function _coitargl_$(coi,makeItem,listarg){
var mm = getrtmm$$(coi.tipo);
if (mm) {
if (mm.tp) {
var typeTargs=coi.$$targs$$ && coi.$$targs$$.Type$ClassOrInterface;
if (typeTargs) {
if (coi.tipo===Tuple && typeTargs.t==='T') {
typeTargs=retpl$(typeTargs);
coi.$$targs$$.Type$ClassOrInterface=typeTargs;
}
typeTargs=typeTargs.a;
}
var ord=[];
for (var tp in mm.tp) {
var targ;
var _targ=typeTargs && typeTargs[tp];
if (_targ) {
if (typeof(_targ)==='string') {
console.log("TODO buscar " + tp + "->" + _targ + " para " + coi.declaration.qualifiedName);
_targ={t:Anything};
}
targ=typeLiteral$meta({Type$typeLiteral:_targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
ord.push(makeItem(coi,_targ||0,targ));
}
return ord.$sa$(listarg);
}
return empty();
}
throw new Error("ClassOrInterface.typeArgumentList: missing metamodel!");
}
function coitargl$(coi) {
return _coitargl_$(coi,function(c,t,a){return a;},
{t:Type$meta$model,a:{Target$Type:Anything}});
}
function coitargvl$(coi){
return _coitargl_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T', l:[{t:Type$meta$model,a:{t:Anything}},{t:Variance$meta$declaration}]});
}
function coirestarg$(root,type) {
if (type.a) {
var t2 = {t:type.t, a:{}};
for (var targ in type.a) {
if (typeof(type.a[targ])==='string') {
var ttt=root.$$targs$$.Type$ClassOrInterface;
if (ttt.t==='T') {
t2.a[targ]=ttt;
} else {
t2.a[targ]=ttt.a[type.a[targ]]
}
} else {
t2.a[targ]=type.a[targ];
}
if (t2.a[targ] && t2.a[targ].a) {
t2.a[targ]=coirestarg$(root,t2.a[targ]);
}
}
type=t2;
}
return type;
}
function coiTypeOf(coi,instance$8){
var _t={t:coi.tipo};
if (coi.$targs)_t.a=coi.$targs;
return is$(instance$8,_t);
}
function coiut$(coi,t,ot){
if (is$(t,{t:AppliedUnionType$jsint})) {
return t.union(coi,{Other$union:ot});
}
var _ut={t:'u',l:[coi.$$targs$$.Type$ClassOrInterface,t.$$targs$$.Target$Type]};
return AppliedUnionType$jsint(_ut,$arr$([coi,t],_ut,1),{Union$AppliedUnionType:_ut});
}
function coiit$(coi,t,ot){
if (is$(t,{t:AppliedIntersectionType$jsint})) {
return t.intersection(coi,{Other$intersection:ot});
}
var _ut={t:'i',l:[coi.$$targs$$.Type$ClassOrInterface,t.$$targs$$.Target$Type]};
return AppliedIntersectionType$jsint(_ut,$arr$([coi,t],_ut,1),{Union$AppliedIntersectionType:_ut});
}
function coi$get$anns(anntypes) {
var ats=[];
if (!anntypes)return ats;
var iter=anntypes.iterator();
var a;while((a=iter.next())!==finished()){
ats.push({t:a.tipo});
}
return ats;
}
function coi$is$anns(anns,ats) {
for (var i=0;i<ats.length;i++) {
var f=false;
for (var j=0;j<anns.length;j++) {
f|=(is$(anns[j],ats[i]));
}
if (!f)return false;
}
return true;
}
function cmp$targ$uv$(a,ta) {
if (a===undefined&&ta===undefined) {
return true;
}
if (a&&ta) {
for (var _t in a) {
if (!ta[_t] || a[_t].uv!==ta[_t].uv)return false;
}
return true;
}
return false;
}
function coiclsannconstrs$(coi,anntypes,prefix,tipo,arg$) {
var ats=coi$get$anns(anntypes);
var cs=[];
for (var cn in coi.tipo) {
if (cn.startsWith(prefix)) {
var mm=getrtmm$$(coi.tipo[cn]);
if (mm.d[mm.d.length-2]==='$cn' && coi$is$anns(allann$(mm),ats)) {
var parms=mm.ps && mm.ps.slice(0);
if (parms && arg$ && arg$.t!==Nothing && tipo.a) {
for (var i=0;i<parms.length;i++) {
parms[i] = {$t:restype$(tipo,parms[i].$t)};
}
}
if ((arg$===undefined&&mm.ps===undefined) || (arg$!==undefined&&mm.ps!==undefined && validate$params(parms,arg$,"",1))) {
var args=parms?tupleize$params(parms,coi.$targs):empty();
cs.push({tipo:coi.tipo[cn],args:args});
}
}
}
}
if (cs.length===0 && coi.defaultConstructor && coi.defaultConstructor.fakeConstr$) {
mm=getrtmm$$(coi.tipo);
for (var i=0;i<ats.length;i++) {
if (ats[i].t===DocAnnotation) {
return cs;
}
}
if (coi$is$anns(allann$(mm),ats)) {
var parms=mm.ps && mm.ps.slice(0);
if (parms && arg$&&arg$.t!==Nothing && tipo.a) {
for (var i=0;i<parms.length;i++) {
parms[i] = {$t:restype$(tipo,parms[i].$t)};
}
}
if ((mm.ps===undefined&&arg$===undefined) || (arg$!==undefined&&mm.ps!==undefined&&validate$params(parms,arg$,"",1))) {
var args=parms?tupleize$params(parms,coi.$targs):empty();
cs.push({tipo:coi.tipo,args:args,fakeConstr:true});
}
}
}
return cs;
}
function funparamtypes(fun) {
var ps=fun.tipo.$crtmm$.ps;
if (!ps || ps.length==0)return empty();
var r=[];
for (var i=0; i < ps.length; i++) {
var pt=ps[i].$t;
if (typeof(pt)==='string'){
if (!fun.$targs)throw TypeApplicationException$meta$model("This function model needs type parameters: " +fun.string);
pt=fun.$targs[pt];
if (!pt)throw TypeApplicationException$meta$model("Function model is missing type argument for "
+ fun.string + "<" + ps[i].$t + ">");
}
r.push(typeLiteral$meta({Type$typeLiteral:pt},fun.$targs));
}
return r.$sa$({t:Type$meta$model,a:{t:Anything}});
}
function funmodstr$(fun) {
var mm=fun.tipo.$crtmm$;
var qn;
if (mm.$cont) {
qn=qname$(mm.$cont);
if (mm.$cont.$crtmm$.tp) {
var cnt=fun.$$targs$$&&fun.$$targs$$.Container$Function&&fun.$$targs$$.Container$Function.a;
if (!cnt)cnt=fun.$$targs$$&&fun.$$targs$$.Container$Method&&fun.$$targs$$.Container$Method.a;
qn+="<";var first=true;
for (var tp in mm.$cont.$crtmm$.tp) {
if (first)first=false;else qn+=",";
var _ta=cnt&&cnt[tp];
if (_ta && _ta.dv)qn+=_ta.dv+' ';
qn+=qname$(_ta||Anything);
}
qn+=">";
}
qn+="."+mm.d[mm.d.length-1];
} else {
qn=qname$(mm);
}
if (mm.tp) {
qn+="<";
var first=true;
for (var tp in mm.tp) {
if (first)first=false; else qn+=",";
var targ=fun.$targs[tp];
if (targ.t) {
var _m=getrtmm$$(targ.t);
qn+=qname$(_m);
} else {
qn+=tp;
}
}
qn+=">";
}
return qn;
}
function _funtypearg_$(fun,makeItem,maptarg){
var mm = fun.tipo.$crtmm$;
if (mm) {
if (mm.tp) {
if (fun.$targs===undefined)throw TypeApplicationException$meta$model("Missing type arguments for "+fun.string);
var targs={};
var ord=[];
for (var tp in mm.tp) {
var param = OpenTypeParam$jsint(fun.tipo,tp);
var targ = fun.$targs[tp];
if (targ) {
targ=typeLiteral$meta({Type$typeLiteral:targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
targs[param.qualifiedName]=[param,makeItem(fun,tp,targ)];
ord.push(param.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:maptarg});
}
return empty();
}
throw Exception("FunctionModel.typeArguments-we don't have a metamodel!");
}
function funtypearg$(fun) {
return _funtypearg_$(fun,function(c,t,a){return a;},
{t:Type$meta$model,a:{Type$Type:{t:Anything}}});
}
function funtypeargv$(fun) {
return _funtypearg_$(fun,function(c,t,a){
var iance,usv=fun.tipo.$crtmm$.tp[t].uv;
if (usv==='out'){
iance=covariant$meta$declaration();
} else if (usv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T',l:[{t:Type$meta$model,a:{Type$Type:{t:Anything}}},{t:Variance$meta$declaration}]});
}
function _funtypeargl_$(fun,makeItem,listarg){
var mm = fun.tipo.$crtmm$;
if (mm) {
if (mm.tp) {
if (fun.$targs===undefined)throw TypeApplicationException$meta$model("Missing type arguments for "+fun.string);
var ord=[];
for (var tp in mm.tp) {
var targ,_targ = fun.$targs[tp];
if (_targ) {
targ=typeLiteral$meta({Type$typeLiteral:_targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
ord.push(makeItem(fun,_targ||0,targ));
}
return ord.$sa$(listarg);
}
return empty();
}
throw Exception("FunctionModel.typeArguments-we don't have a metamodel!");
}
function funtypeargl$(fun) {
return _funtypeargl_$(fun,function(c,t,a){return a;},
{t:Type$meta$model,a:{Target$Type:Anything}});
}
function funtypeargvl$(fun) {
return _funtypeargl_$(fun,function(c,t,a){
var iance;
if (t.uv==='out')iance=covariant$meta$declaration();
else if (t.uv==='in')iance=contravariant$meta$declaration();
else iance=invariant$meta$declaration();
return tpl$([a,iance]);
},{t:'T',l:[{t:Type$meta$model,a:{Target$Type:Anything}},{t:Variance$meta$declaration}]});
}
function find$ann(cont,ant) {
var _m=getrtmm$$(cont);
if (!(_m && _m.an))return null;
if (typeof(_m.an)==='function')_m.an=_m.an();
for (var i=0; i < _m.an.length; i++) {
if (is$(_m.an[i],{t:ant}))return _m.an[i];
}
return null;
}
function allann$(mm) {
if (typeof(mm.an)==='function')mm.an=mm.an();
var a=getAnnotationsForBitmask(mm.pa);
if (a) {
if (mm.an) {
for (var i=0;i<mm.an.length;i++)a.push(mm.an[i]);
}
} else {
a=mm.an;
}
return a||[];
}
function getAnnotationBitmask(t) {
var mask = 0;
mask |= extendsType({t:SharedAnnotation},t)?1:0;
mask |= extendsType({t:ActualAnnotation},t)?2:0;
mask |= extendsType({t:FormalAnnotation},t)?4:0;
mask |= extendsType({t:DefaultAnnotation},t)?8:0;
mask |= extendsType({t:SealedAnnotation},t)?16:0;
mask |= extendsType({t:FinalAnnotation},t)?32:0;
mask |= extendsType({t:NativeAnnotation},t)?64:0;
mask |= extendsType({t:LateAnnotation},t)?128:0;
mask |= extendsType({t:AbstractAnnotation},t)?256:0;
mask |= extendsType({t:AnnotationAnnotation},t)?512:0;
mask |= extendsType({t:VariableAnnotation},t)?1024:0;
return mask;
}
function getAnnotationsForBitmask(bits) {
var ans=[];
if (bits&1)ans.push(shared());
if (bits&2)ans.push(actual());
if (bits&4)ans.push(formal());
if (bits&8)ans.push($_default());
if (bits&16)ans.push(sealed());
if (bits&32)ans.push($_final());
if (bits&64)ans.push($_native());
if (bits&128)ans.push(late());
if (bits&256)ans.push($_abstract());
if (bits&512)ans.push(annotation());
if (bits&1024)ans.push(variable());
return ans;
}
function doc$(root, path, anPath) {
path = path?path.split(':'):[];
path.push(anPath||'an', 'doc',0);
if (path[0]==='$')path[0]='ceylon.language';
var e = typeof(root)==='function'?root():root;
for (var i=0; i < path.length; i++) {
var k = path[i];
e = e[path[i]];
if (e===undefined)return doc('<missing>');
}
return doc(e);
}
ex$.doc$=doc$;
function DeserializationContext$serialization($$targs$$,deserializationContext$){set_type_args(deserializationContext$,$$targs$$,DeserializationContext$serialization);}
DeserializationContext$serialization.$crtmm$=function(){return{mod:$CCMM$,tp:{Id$DeserializationContext:{}},pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext')];},d:['ceylon.language.serialization','DeserializationContext']};};
ex$.DeserializationContext$serialization=DeserializationContext$serialization;function $init$DeserializationContext$serialization(){if(DeserializationContext$serialization.$$===undefined){initTypeProtoI(DeserializationContext$serialization,'ceylon.language.serialization::DeserializationContext');
(function(deserializationContext$){deserializationContext$.instance={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'clazz',mt:'prm',$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc("The given [[instanceId]] refers to an instance of the given class."),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','instance']};}};deserializationContext$.memberInstance={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'containerId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:memberInstance'),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','memberInstance']};}};deserializationContext$.attribute={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'attribute',mt:'prm',$t:{t:ValueDeclaration$meta$declaration}},{nm:'attributeValueId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:attribute'),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','attribute']};}};deserializationContext$.element={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'elementValueId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:element'),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','element']};}};deserializationContext$.instanceValue={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'instanceValue',mt:'prm',$t:{t:Anything}}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:instanceValue')];},d:['ceylon.language.serialization','DeserializationContext','$m','instanceValue']};}};deserializationContext$.reconstruct={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Instance$reconstruct',ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,tp:{Instance$reconstruct:{}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:reconstruct'),$_throws("DeserializationException","the instance, or an instance reachable from it, \ncould not be reconstructed")];},d:['ceylon.language.serialization','DeserializationContext','$m','reconstruct']};}};})(DeserializationContext$serialization.$$.prototype);}
return DeserializationContext$serialization;}
ex$.$init$DeserializationContext$serialization=$init$DeserializationContext$serialization;$init$DeserializationContext$serialization();function DeserializationContextImpl$serialization($$targs$$,deserializationContextImpl$){$init$DeserializationContextImpl$serialization();
if(deserializationContextImpl$===undefined)deserializationContextImpl$=new DeserializationContextImpl$serialization.$$;
set_type_args(deserializationContextImpl$,$$targs$$);
DeserializationContext$serialization({Id$DeserializationContext:$$targs$$.Id$DeserializationContextImpl},deserializationContextImpl$);deserializationContextImpl$.$1ib_=NativeMap$serialization({Key$NativeMap:deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl,Element$NativeMap:{t:Anything}});deserializationContextImpl$.$1ic_=NativeMap$serialization({Key$NativeMap:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:$_String}}},Element$NativeMap:{t:$_Object}});return deserializationContextImpl$;}
DeserializationContextImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Id$DeserializationContextImpl:{sts:[{t:$_Object}]}},sts:[{t:DeserializationContext$serialization,a:{Id$DeserializationContext:'Id$DeserializationContextImpl'}}],an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl')];},d:['ceylon.language.serialization','DeserializationContextImpl']};};
ex$.DeserializationContextImpl$serialization=DeserializationContextImpl$serialization;function $init$DeserializationContextImpl$serialization(){if(DeserializationContextImpl$serialization.$$===undefined){initTypeProto(DeserializationContextImpl$serialization,'ceylon.language.serialization::DeserializationContextImpl',Basic,$init$DeserializationContext$serialization());
(function(deserializationContextImpl$){atr$(deserializationContextImpl$,'$1ib',function(){return this.$1ib_;},undefined,function(){return{mod:$CCMM$,$t:{t:NativeMap$serialization,a:{Element$NativeMap:{t:Anything},Key$NativeMap:'Id$DeserializationContextImpl'}},$cont:DeserializationContextImpl$serialization,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$at:instances$t0uhew')];},d:['ceylon.language.serialization','DeserializationContextImpl','$at','instances$t0uhew']};});atr$(deserializationContextImpl$,'memberTypeCache',function(){return this.$1ic_;},undefined,function(){return{mod:$CCMM$,$t:{t:NativeMap$serialization,a:{Element$NativeMap:{t:$_Object},Key$NativeMap:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:$_String}}}}},$cont:DeserializationContextImpl$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$at:memberTypeCache')];},d:['ceylon.language.serialization','DeserializationContextImpl','$at','memberTypeCache']};});deserializationContextImpl$.leakInstance=function($1id){var deserializationContextImpl$=this;return deserializationContextImpl$.$1ib.$_get($1id);};deserializationContextImpl$.leakInstance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'id',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:1,an:function(){return[doc("Get the [[Partial]] or instance with the given id")];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','leakInstance']};};deserializationContextImpl$.attribute=function($1ie,$1if,$1ig){var deserializationContextImpl$=this;deserializationContextImpl$.$1ih($1ie,MemberImpl$impl($1if),$1ig);};deserializationContextImpl$.attribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'attribute',mt:'prm',$t:{t:ValueDeclaration$meta$declaration}},{nm:'attributeValueId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','attribute']};};deserializationContextImpl$.alreadyComplete=function($1ii){var deserializationContextImpl$=this;return DeserializationException$serialization("instance referred to by id ".plus($1ii.string).plus(" already complete."));};deserializationContextImpl$.alreadyComplete.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeserializationException$serialization},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$m:alreadyComplete')];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','alreadyComplete']};};deserializationContextImpl$.$1ih=function($1ij,$1ik,$1il){var deserializationContextImpl$=this;var $1im;var $1in=deserializationContextImpl$.$1ib.$_get($1ij);if(is$($1in,{t:Null})) {var $1io=PartialImpl$serialization($1ij);deserializationContextImpl$.$1ib.put($1ij,$1io);$1im=$1io;}
else if(is$($1in,{t:Partial$serialization})) {$1im=$1in;if($1im.instantiated){throw wrapexc(deserializationContextImpl$.alreadyComplete($1ij),'59:16-59:49','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}
else{throw wrapexc(deserializationContextImpl$.alreadyComplete($1ij),'63:12-63:45','ceylon/language/serialization/DeserializationContextImpl.ceylon');}$1im.addState($1ik,$1il);};deserializationContextImpl$.$1ih.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'attributeOrIndex',mt:'prm',$t:{t:ReachableReference$serialization}},{nm:'attributeValueId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$m:attributeOrElement$7cs20f'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.serialization'),DeserializationException$serialization),"If the `instanceId` corresponds to a reconstructed \ninstance or to a partial that\'s already been instantiated")];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','attributeOrElement$7cs20f']};};deserializationContextImpl$.element=function($1ip,$1iq,$1ir){var deserializationContextImpl$=this;deserializationContextImpl$.$1ih($1ip,ElementImpl$impl($1iq),$1ir);};deserializationContextImpl$.element.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'elementValueId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','element']};};deserializationContextImpl$.instance=function($1is,$1it){var deserializationContextImpl$=this;if(!$1it.declaration.serializable){throw wrapexc(DeserializationException$serialization("not serializable: ".plus($1it.string)),'74:12-74:73','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
(deserializationContextImpl$.$1iu($1is).clazz=$1it);};deserializationContextImpl$.instance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'clazz',mt:'prm',$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','instance']};};deserializationContextImpl$.$1iu=function($1iv){var deserializationContextImpl$=this;var $1iw;var $1ix=deserializationContextImpl$.$1ib.$_get($1iv);if(is$($1ix,{t:Null})) {var $1iy=PartialImpl$serialization($1iv);deserializationContextImpl$.$1ib.put($1iv,$1iy);$1iw=$1iy;}
else if(is$($1ix,{t:Partial$serialization})) {$1iw=$1ix;}
else{throw wrapexc(deserializationContextImpl$.alreadyComplete($1iv),'92:12-92:45','ceylon/language/serialization/DeserializationContextImpl.ceylon');}return $1iw;};deserializationContextImpl$.$1iu.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Partial$serialization},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,an:function(){return[doc("Get or create a [[Partial]] for the given `instanceId`.")];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','getOrCreatePartial$gbff5y']};};deserializationContextImpl$.memberInstance=function($1iz,$1j0){var deserializationContextImpl$=this;var $1j1;var $1j2=deserializationContextImpl$.$1ib.$_get($1iz);if(is$($1j2,{t:Null})) {var $1j3=PartialImpl$serialization($1iz);deserializationContextImpl$.$1ib.put($1iz,$1j3);$1j1=$1j3;}
else{$1j1=$1j2;}(deserializationContextImpl$.$1iu($1j0).container=$1j1);};deserializationContextImpl$.memberInstance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'containerId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','memberInstance']};};deserializationContextImpl$.instanceValue=function($1j4,$1j5){var deserializationContextImpl$=this;deserializationContextImpl$.$1ib.put($1j4,$1j5);};deserializationContextImpl$.instanceValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'instanceValue',mt:'prm',$t:{t:Anything}}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','instanceValue']};};deserializationContextImpl$.reconstruct=function($1j6,$rg9e0m$){var deserializationContextImpl$=this;var $1j7=NativeDeque$serialization();var $1j8=deserializationContextImpl$.$1ib.$_get($1j6);if(!nn$($1j8)){if(deserializationContextImpl$.$1ib.contains($1j6)){var $1j9;asrt$((is$(($1j9=null),$rg9e0m$.Instance$reconstruct,$rg9e0m$)),"Assertion failed: \'is Instance r=null\' at DeserializationContextImpl.ceylon (120:22-120:41)",'120:16-120:42','DeserializationContextImpl.ceylon');
return $1j9;}
else{throw wrapexc(DeserializationException$serialization("unknown id: ".plus($1j6.string).plus(".")),'123:16-123:77','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}
$1j7.pushFront(deserializationContextImpl$.$1ib.$_get($1j6));while(!$1j7.empty){var $1ja=$1j7.popFront();var $1jb=$1ja;if(is$($1jb,{t:Null})) {asrt$((false),"Assertion failed: \'false\' at DeserializationContextImpl.ceylon (131:22-131:28)",'131:16-131:29','DeserializationContextImpl.ceylon');
}
else if(is$($1jb,{t:Partial$serialization})) {var $1jc;if($1jb.member&&is$(($1jc=$1jb.container),{t:Partial$serialization})&&!$1jc.instantiated){$1j7.pushFront($1jb);$1j7.pushFront($1jc);continue;}
if(!$1jb.instantiated){$1jb.instantiate();}
var $1je;for(var $1jd=$1jb.refersTo.iterator();($1je=$1jd.next())!==finished();){var $1jf;asrt$((is$(($1jf=$1je),deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl)),"Assertion failed: \'is Id referredId\' at DeserializationContextImpl.ceylon (149:26-149:43)",'149:20-149:44','DeserializationContextImpl.ceylon');
var $1jg=deserializationContextImpl$.$1ib.$_get($1jf);var $1jh;if(is$(($1jh=$1jg),{t:Partial$serialization})&&!$1jh.instantiated){$1j7.pushFront($1jh);}
}}
else{}}
$1j7.pushFront(deserializationContextImpl$.$1ib.$_get($1j6));while(!$1j7.empty){var $1ji=$1j7.popFront();if(is$($1ji,{t:Partial$serialization})) {if($1ji.member){var $1jj;if(is$(($1jj=$1ji.container),{t:Partial$serialization})&&!$1jj.initialized){$1j7.pushFront($1ji);$1j7.pushFront($1jj);continue;}
}
if(!$1ji.initialized){var $1jl;for(var $1jk=$1ji.refersTo.iterator();($1jl=$1jk.next())!==finished();){var $1jm;asrt$((is$(($1jm=$1jl),deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl)),"Assertion failed: \'is Id referredId\' at DeserializationContextImpl.ceylon (178:30-178:47)",'178:24-178:48','DeserializationContextImpl.ceylon');
var $1jn=deserializationContextImpl$.$1ib.$_get($1jm);var $1jo;if(is$(($1jo=$1jn),{t:Partial$serialization})&&!$1jo.initialized){$1j7.pushFront($1jo);}
}var $1jp;if($1ji.member&&is$(($1jp=$1ji.container),{t:Partial$serialization})&&!$1jp.initialized){$1j7.pushFront($1jp);}
$1ji.initialize(deserializationContextImpl$,{Id$initialize:deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl});}
}
else{}}
var $1jq=deserializationContextImpl$.$1ib.$_get($1j6);if(is$($1jq,{t:Partial$serialization})) {var $1jr=$1jq.instance();var $1js;if(is$(($1js=$1jr),$rg9e0m$.Instance$reconstruct,$rg9e0m$)){deserializationContextImpl$.$1ib.put($1j6,$1js);return $1js;}
else{throw wrapexc(DeserializationException$serialization("instance with id ".plus($1j6.string).plus(" has class ").plus(type$meta($1js,{Type$type:{t:Anything}}).string).plus(" not assignable to given type ").plus(typeLiteral$meta({Type$typeLiteral:$rg9e0m$.Instance$reconstruct/*ORALE!Instance inv pero Type var*/}).string)),'204:16-204:165','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}
else{var $1jt;if(is$(($1jt=$1jq),$rg9e0m$.Instance$reconstruct,$rg9e0m$)){return $1jt;}
else{throw wrapexc(DeserializationException$serialization("instance with id ".plus($1j6.string).plus(" has class ").plus(type$meta($1jt,{Type$type:{t:Anything}}).string).plus(" not assignable to given type ").plus(typeLiteral$meta({Type$typeLiteral:$rg9e0m$.Instance$reconstruct/*ORALE!Instance inv pero Type var*/}).string)),'211:16-211:160','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}};deserializationContextImpl$.reconstruct.$crtmm$=function(){return{mod:$CCMM$,$t:'Instance$reconstruct',ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,tp:{Instance$reconstruct:{}},pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','reconstruct']};};})(DeserializationContextImpl$serialization.$$.prototype);}
return DeserializationContextImpl$serialization;}
ex$.$init$DeserializationContextImpl$serialization=$init$DeserializationContextImpl$serialization;$init$DeserializationContextImpl$serialization();function DeserializationException$serialization($1ju,$1jv,deserializationException$){$init$DeserializationException$serialization();
if(deserializationException$===undefined)deserializationException$=new DeserializationException$serialization.$$;
deserializationException$.$1ju_=$1ju;if($1jv===undefined){$1jv=$init$DeserializationException$serialization().$defs$cause(deserializationException$,$1ju);}
deserializationException$.$1jv_=$1jv;Exception($1ju,$1jv,deserializationException$);return deserializationException$;}
DeserializationException$serialization.$defs$cause=function(deserializationException$,$1ju){return null};DeserializationException$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationException')];},d:['ceylon.language.serialization','DeserializationException']};};
ex$.DeserializationException$serialization=DeserializationException$serialization;function $init$DeserializationException$serialization(){if(DeserializationException$serialization.$$===undefined){initTypeProto(DeserializationException$serialization,'ceylon.language.serialization::DeserializationException',$init$Exception());
(function(deserializationException$){atr$(deserializationException$,'$1ju',function(){return this.$1ju_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:DeserializationException$serialization,d:['ceylon.language.serialization','DeserializationException','$at','message$r756zb']};});atr$(deserializationException$,'$1jv',function(){return this.$1jv_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:DeserializationException$serialization,d:['ceylon.language.serialization','DeserializationException','$at','cause$o52r23']};});})(DeserializationException$serialization.$$.prototype);}
return DeserializationException$serialization;}
ex$.$init$DeserializationException$serialization=$init$DeserializationException$serialization;$init$DeserializationException$serialization();function Element$serialization(element$){ReachableReference$serialization(element$);}
Element$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ReachableReference$serialization}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Element')];},d:['ceylon.language.serialization','Element']};};
ex$.Element$serialization=Element$serialization;function $init$Element$serialization(){if(Element$serialization.$$===undefined){initTypeProtoI(Element$serialization,'ceylon.language.serialization::Element',$init$ReachableReference$serialization());
(function(element$){element$.$prop$getIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Element$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Element:$at:index')];},d:['ceylon.language.serialization','Element','$at','index']};}};})(Element$serialization.$$.prototype);}
return Element$serialization;}
ex$.$init$Element$serialization=$init$Element$serialization;$init$Element$serialization();function Member$serialization(member$){ReachableReference$serialization(member$);}
Member$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ReachableReference$serialization}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Member')];},d:['ceylon.language.serialization','Member']};};
ex$.Member$serialization=Member$serialization;function $init$Member$serialization(){if(Member$serialization.$$===undefined){initTypeProtoI(Member$serialization,'ceylon.language.serialization::Member',$init$ReachableReference$serialization());
(function(member$){member$.$prop$getAttribute={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:Member$serialization,pa:5,an:function(){return[doc("The attribute making the reference.")];},d:['ceylon.language.serialization','Member','$at','attribute']};}};member$.referred={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:Member$serialization,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Member:$m:referred')];},d:['ceylon.language.serialization','Member','$m','referred']};}};})(Member$serialization.$$.prototype);}
return Member$serialization;}
ex$.$init$Member$serialization=$init$Member$serialization;$init$Member$serialization();function UninitializedLateValue$serialization(uninitializedLateValue$){$init$UninitializedLateValue$serialization();
if(uninitializedLateValue$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.serialization::UninitializedLateValue"),'?','?')
return uninitializedLateValue$;}
UninitializedLateValue$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],of:[$prop$getUninitializedLateValue$serialization],pa:257,an:function(){return[doc("The type of [[uninitializedLateValue]].")];},d:['ceylon.language.serialization','UninitializedLateValue']};};
ex$.UninitializedLateValue$serialization=UninitializedLateValue$serialization;function $init$UninitializedLateValue$serialization(){if(UninitializedLateValue$serialization.$$===undefined){initTypeProto(UninitializedLateValue$serialization,'ceylon.language.serialization::UninitializedLateValue',Basic);
}
return UninitializedLateValue$serialization;}
ex$.$init$UninitializedLateValue$serialization=$init$UninitializedLateValue$serialization;$init$UninitializedLateValue$serialization();function $1jw$serialization(){var uninitializedLateValue$=new $1jw$serialization.$$;UninitializedLateValue$serialization(uninitializedLateValue$);return uninitializedLateValue$;};$1jw$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:UninitializedLateValue$serialization},d:['ceylon.language.serialization','uninitializedLateValue']};};function $init$uninitializedLateValue$serialization(){if($1jw$serialization.$$===undefined){initTypeProto($1jw$serialization,'ceylon.language.serialization::uninitializedLateValue',$init$UninitializedLateValue$serialization());
}
return $1jw$serialization;}
ex$.$init$uninitializedLateValue$serialization=$init$uninitializedLateValue$serialization;$init$uninitializedLateValue$serialization();var $1jy;function uninitializedLateValue$serialization(){if($1jy===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'uninitializedLateValue\' before it was set"),'23:0-43:71','Member.ceylon');if($1jy===undefined){$1jy=INIT$;$1jy=$init$uninitializedLateValue$serialization()();$1jy.$crtmm$=uninitializedLateValue$serialization.$crtmm$;}
return $1jy;}
ex$.uninitializedLateValue$serialization=uninitializedLateValue$serialization;uninitializedLateValue$serialization.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$uninitializedLateValue$serialization()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:uninitializedLateValue')];},d:['ceylon.language.serialization','uninitializedLateValue']};};$prop$getUninitializedLateValue$serialization=uninitializedLateValue$serialization;ex$.$prop$getUninitializedLateValue$serialization=$prop$getUninitializedLateValue$serialization;function NativeDeque$serialization(nativeDeque$){$init$NativeDeque$serialization();
if(nativeDeque$===undefined)nativeDeque$=new NativeDeque$serialization.$$;
nativeDeque$.$1jz=[null];nativeDeque$.$1jz.shift();return nativeDeque$;}
NativeDeque$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque']};};
ex$.NativeDeque$serialization=NativeDeque$serialization;function $init$NativeDeque$serialization(){if(NativeDeque$serialization.$$===undefined){initTypeProto(NativeDeque$serialization,'ceylon.language.serialization::NativeDeque',Basic);
(function(nativeDeque$){nativeDeque$.pushFront=function($1k0){var nativeDeque$=this;nativeDeque$.$1jz.unshift($1k0);};nativeDeque$.pushFront.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$m','pushFront']};};nativeDeque$.pushBack=function($1k1){var nativeDeque$=this;nativeDeque$.$1jz.push($1k1);};nativeDeque$.pushBack.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$m','pushBack']};};nativeDeque$.popFront=function(){var nativeDeque$=this;if(($1k2=nativeDeque$.$1jz.length,$1k3=(0),(nn$($1k2)&&$1k2.equals&&$1k2.equals($1k3))||$1k2===$1k3)){return null;}
return ndtc$(nativeDeque$.$1jz.shift(),{t:Anything},'NativeDeque.ceylon 52:19-52:31');};nativeDeque$.popFront.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$m','popFront']};};atr$(nativeDeque$,'empty',function(){var nativeDeque$=this;return ($1k4=nativeDeque$.$1jz.length,$1k5=(0),(nn$($1k4)&&$1k4.equals&&$1k4.equals($1k5))||$1k4===$1k5);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$at','empty']};});atr$(nativeDeque$,'string',function(){var nativeDeque$=this;var $1k6=StringBuilder();$1k6.append("[");var $1k8=(0),$1k9=nativeDeque$.$1jz.length;for(var $1ka=0;$1ka<$1k9;$1ka++,($1k8=$1k8.successor)){if(($1k6.size>1)){$1k6.append(", ");}
$1k6.append(ndtc$(nativeDeque$.$1jz[$1k8],{t:$_String},'NativeDeque.ceylon 68:26-68:33'));}$1k6.append("]");return $1k6.string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:NativeDeque$serialization,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$at','string']};});})(NativeDeque$serialization.$$.prototype);}
return NativeDeque$serialization;}
ex$.$init$NativeDeque$serialization=$init$NativeDeque$serialization;$init$NativeDeque$serialization();function NativeMap$serialization($$targs$$,nativeMap$){$init$NativeMap$serialization();
if(nativeMap$===undefined)nativeMap$=new NativeMap$serialization.$$;
set_type_args(nativeMap$,$$targs$$);
nativeMap$.$1kb=[null];nativeMap$.$1kc=[null];return nativeMap$;}
NativeMap$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Key$NativeMap:{},Element$NativeMap:{}},an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap']};};
ex$.NativeMap$serialization=NativeMap$serialization;function $init$NativeMap$serialization(){if(NativeMap$serialization.$$===undefined){initTypeProto(NativeMap$serialization,'ceylon.language.serialization::NativeMap',Basic);
(function(nativeMap$){nativeMap$.$1kd=function($1ke){var nativeMap$=this;if(nn$($1ke)){var $1kf=ndnc$(nativeMap$.$1kb.length,'i','NativeMap.ceylon 95:28-95:36');if(($1kf<2)){return (-1);}
var $1kh=(1),$1ki=$1kf.minus(1);for(var $1kj=0;$1kj<$1ki;$1kj++,($1kh=$1kh.successor)){if($1ke.equals(nativeMap$.$1kb[$1kh])){return $1kh;}
}return (-1);}
return 0;};nativeMap$.$1kd.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'}],$cont:NativeMap$serialization,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:NativeMap:$m:find$slx4qw')];},d:['ceylon.language.serialization','NativeMap','$m','find$slx4qw']};};nativeMap$.put=function($1kk,$1kl){var nativeMap$=this;var $1km=nativeMap$.$1kd($1kk);if(($1km>=0)){(typeof setObjectProperty==='undefined'||setObjectProperty===null?throwexc(Exception("Undefined or null reference: setObjectProperty"),'115:16-115:32','NativeMap.ceylon'):setObjectProperty)(nativeMap$.$1kc,$1km,$1kl);}
else{if(($1km<0)){nativeMap$.$1kb.push($1kk);nativeMap$.$1kc.push($1kl);}
}
};nativeMap$.put.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'},{nm:'instanceOrPartial',mt:'prm',$t:'Element$NativeMap'}],$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$m','put']};};nativeMap$.$_get=function($1kn){var nativeMap$=this;var $1ko=nativeMap$.$1kd($1kn);return ndtc$(($1kp=(($1ko>=0)?nativeMap$.$1kc[$1ko]:null),nn$($1kp)?$1kp:null),mut$([{t:Null},nativeMap$.$$targs$$.Element$NativeMap]),'NativeMap.ceylon 129:19-129:45');var $1kp;};nativeMap$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$NativeMap']},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'}],$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$m','get']};};nativeMap$.contains=function($1kq){var nativeMap$=this;return (nativeMap$.$1kd($1kq)>=0);};nativeMap$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'}],$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$m','contains']};};atr$(nativeMap$,'size',function(){var nativeMap$=this;return ndnc$(($1kr=nativeMap$.$1kb.length,$1ks=(1),(nn$($1kr)&&$1kr.minus&&$1kr.minus($1ks))||$1kr-$1ks),'i','NativeMap.ceylon 138:19-138:29');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','size']};});atr$(nativeMap$,'items',function(){var nativeMap$=this;return function(){function $1kt(){var $1kt$=new $1kt.$$;$1kt$.outer$=nativeMap$;BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:nativeMap$.$$targs$$.Element$NativeMap},$1kt$);Identifiable($1kt$);return $1kt$;};$1kt.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:'Element$NativeMap'}},$cont:nativeMap$.$prop$getItems,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','items']};};function $init$$1kt(){if($1kt.$$===undefined){initTypeProto($1kt,'ceylon.language.serialization::NativeMap.anonymous#4',$init$BaseIterable$impl(),$init$Identifiable());
(function($1kt$){$1kt$.iterator=function(){var $1kt$=this;var $1ku=(1);return function(){function $1kv(){var $1kv$=new $1kv.$$;$1kv$.outer$=$1kt$;BaseIterator$impl({Element$BaseIterator:nativeMap$.$$targs$$.Element$NativeMap},$1kv$);Identifiable($1kv$);return $1kv$;};$1kv.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterator$impl,a:{Element$BaseIterator:'Element$NativeMap'}},$cont:$1kt$.iterator,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','items','$m','iterator']};};function $init$$1kv(){if($1kv.$$===undefined){initTypeProto($1kv,'ceylon.language.serialization::NativeMap.anonymous#4.anonymous#5',$init$BaseIterator$impl(),$init$Identifiable());
(function($1kv$){$1kv$.next=function(){var $1kv$=this;if(($1ku.compare(nativeMap$.$1kc.length)!==smaller())){return finished();}
var $1kw=ndtc$(nativeMap$.$1kc[$1ku],nativeMap$.$$targs$$.Element$NativeMap,'NativeMap.ceylon 154:40-154:44');($1kx=$1ku,$1ku=$1kx.successor,$1kx);return $1kw;var $1kx;};$1kv$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$NativeMap',{t:Finished}]},ps:[],$cont:$1kt$.iterator,pa:3,d:['ceylon.language.serialization','NativeMap','$at','items','$m','iterator','$m','next']};};})($1kv.$$.prototype);}
return $1kv;}
$1kt$.$init$$1kv=$init$$1kv;$init$$1kv();return $1kv();}();};$1kt$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$NativeMap'}},ps:[],$cont:nativeMap$.$prop$getItems,pa:3,d:['ceylon.language.serialization','NativeMap','$at','items','$m','iterator']};};})($1kt.$$.prototype);}
return $1kt;}
nativeMap$.$init$$1kt=$init$$1kt;$init$$1kt();return $1kt();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$NativeMap'}},$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','items']};});atr$(nativeMap$,'keys',function(){var nativeMap$=this;return function(){function $1l0(){var $1l0$=new $1l0.$$;$1l0$.outer$=nativeMap$;BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:nativeMap$.$$targs$$.Key$NativeMap},$1l0$);Identifiable($1l0$);return $1l0$;};$1l0.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:'Key$NativeMap'}},$cont:nativeMap$.$prop$getKeys,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','keys']};};function $init$$1l0(){if($1l0.$$===undefined){initTypeProto($1l0,'ceylon.language.serialization::NativeMap.anonymous#6',$init$BaseIterable$impl(),$init$Identifiable());
(function($1l0$){$1l0$.iterator=function(){var $1l0$=this;var $1l1=(1);return function(){function $1l2(){var $1l2$=new $1l2.$$;$1l2$.outer$=$1l0$;BaseIterator$impl({Element$BaseIterator:nativeMap$.$$targs$$.Key$NativeMap},$1l2$);Identifiable($1l2$);return $1l2$;};$1l2.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterator$impl,a:{Element$BaseIterator:'Key$NativeMap'}},$cont:$1l0$.iterator,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','keys','$m','iterator']};};function $init$$1l2(){if($1l2.$$===undefined){initTypeProto($1l2,'ceylon.language.serialization::NativeMap.anonymous#6.anonymous#7',$init$BaseIterator$impl(),$init$Identifiable());
(function($1l2$){$1l2$.next=function(){var $1l2$=this;if(($1l1.compare(nativeMap$.$1kb.length)!==smaller())){return finished();}
var $1l3=ndtc$(nativeMap$.$1kb[$1l1],nativeMap$.$$targs$$.Key$NativeMap,'NativeMap.ceylon 177:36-177:40');($1l4=$1l1,$1l1=$1l4.successor,$1l4);return $1l3;var $1l4;};$1l2$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Key$NativeMap',{t:Finished}]},ps:[],$cont:$1l0$.iterator,pa:3,d:['ceylon.language.serialization','NativeMap','$at','keys','$m','iterator','$m','next']};};})($1l2.$$.prototype);}
return $1l2;}
$1l0$.$init$$1l2=$init$$1l2;$init$$1l2();return $1l2();}();};$1l0$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Key$NativeMap'}},ps:[],$cont:nativeMap$.$prop$getKeys,pa:3,d:['ceylon.language.serialization','NativeMap','$at','keys','$m','iterator']};};})($1l0.$$.prototype);}
return $1l0;}
nativeMap$.$init$$1l0=$init$$1l0;$init$$1l0();return $1l0();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Key$NativeMap'}},$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','keys']};});atr$(nativeMap$,'string',function(){var nativeMap$=this;var $1l7=StringBuilder();$1l7.append("{");if(nn$(nativeMap$.$1kc[0])){$1l7.append("<null> ->").append(ndtc$(nativeMap$.$1kc[0].string,{t:$_String},'NativeMap.ceylon 192:46-192:57'));}
if(($1l8=nativeMap$.$1kb.length,$1l9=(1),(nn$($1l8)&&$1l8.compare&&$1l8.compare($1l9)===larger())||$1l8>$1l9)){var $1lb=(1),$1lc=($1ld=nativeMap$.$1kb.length,$1le=(1),(nn$($1ld)&&$1ld.minus&&$1ld.minus($1le))||$1ld-$1le);for(var $1lf=0;$1lf<$1lc;$1lf++,($1lb=$1lb.successor)){if(($1l7.size>1)){$1l7.append(", ");}
$1l7.append(ndtc$(nativeMap$.$1kb[$1lb],{t:$_String},'NativeMap.ceylon 199:30-199:34')).append("->");if(nn$(nativeMap$.$1kc[$1lb])){$1l7.append(ndtc$(nativeMap$.$1kc[$1lb].string,{t:$_String},'NativeMap.ceylon 201:34-201:45'));}
else{$1l7.append("[null]");}
}}
$1l7.append("}");return $1l7.string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:NativeMap$serialization,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','string']};});})(NativeMap$serialization.$$.prototype);}
return NativeMap$serialization;}
ex$.$init$NativeMap$serialization=$init$NativeMap$serialization;$init$NativeMap$serialization();function Outer$serialization(outer$){ReachableReference$serialization(outer$);}
Outer$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ReachableReference$serialization}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Outer')];},d:['ceylon.language.serialization','Outer']};};
ex$.Outer$serialization=Outer$serialization;function $init$Outer$serialization(){if(Outer$serialization.$$===undefined){initTypeProtoI(Outer$serialization,'ceylon.language.serialization::Outer',$init$ReachableReference$serialization());
(function(outer$){outer$.referred={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:Outer$serialization,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Outer:$m:referred')];},d:['ceylon.language.serialization','Outer','$m','referred']};}};})(Outer$serialization.$$.prototype);}
return Outer$serialization;}
ex$.$init$Outer$serialization=$init$Outer$serialization;$init$Outer$serialization();function Partial$serialization(id,partial$){$init$Partial$serialization();
if(partial$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.serialization::Partial"),'?','?')
partial$.id_=id;partial$.$1lg_=null;partial$.$1lh_=null;partial$.$1li_=null;partial$.$1lj_=NativeMap$serialization({Key$NativeMap:{t:ReachableReference$serialization},Element$NativeMap:{t:$_Object}});return partial$;}
Partial$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'id',mt:'prm',$t:{t:$_Object},pa:1,an:function(){return[doc("The id")];}}],pa:256,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial')];},d:['ceylon.language.serialization','Partial']};};
ex$.Partial$serialization=Partial$serialization;function $init$Partial$serialization(){if(Partial$serialization.$$===undefined){initTypeProto(Partial$serialization,'ceylon.language.serialization::Partial',Basic);
(function(partial$){atr$(partial$,'id',function(){return this.id_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:Partial$serialization,pa:1,an:function(){return[doc("The id")];},d:['ceylon.language.serialization','Partial','$at','id']};});atr$(partial$,'clazz',function(){return this.$1lg_;},function($1lk){return this.$1lg_=$1lk;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:Partial$serialization,pa:1025,an:function(){return[doc("The class, if we know it yet")];},d:['ceylon.language.serialization','Partial','$at','clazz']};});atr$(partial$,'container',function(){return this.$1lh_;},function($1ll){return this.$1lh_=$1ll;},function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Partial$serialization,pa:1025,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:container')];},d:['ceylon.language.serialization','Partial','$at','container']};});atr$(partial$,'instance_',function(){return this.$1li_;},function($1lm){return this.$1li_=$1lm;},function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Partial$serialization,pa:1025,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:instance_')];},d:['ceylon.language.serialization','Partial','$at','instance_']};});atr$(partial$,'state',function(){return this.$1lj_;},function($1ln){return this.$1lj_=$1ln;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:NativeMap$serialization,a:{Element$NativeMap:{t:$_Object},Key$NativeMap:{t:ReachableReference$serialization}}}]},$cont:Partial$serialization,pa:1025,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:state')];},d:['ceylon.language.serialization','Partial','$at','state']};});partial$.addState=function($1lo,$1lp){var partial$=this;var $1lq;asrt$((nn$(($1lq=partial$.state))),"Assertion failed: \'exists s=state\' at Partial.ceylon (31:14-31:29)",'31:8-31:30','Partial.ceylon');
$1lq.put($1lo,$1lp);};partial$.addState.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'attrOrIndex',mt:'prm',$t:{t:ReachableReference$serialization}},{nm:'partialOrComplete',mt:'prm',$t:{t:$_Object}}],$cont:Partial$serialization,pa:1,an:function(){return[doc("Add some state.")];},d:['ceylon.language.serialization','Partial','$m','addState']};};partial$.instantiate={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Partial$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$m:instantiate'),$_throws("DeserializationException","* the class of the instance has already been specified\n* instance is a member instance and the container has not been specified")];},d:['ceylon.language.serialization','Partial','$m','instantiate']};}};partial$.initialize={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'context',mt:'prm',$t:{t:DeserializationContextImpl$serialization,a:{Id$DeserializationContextImpl:'Id$initialize'}}}],$cont:Partial$serialization,tp:{Id$initialize:{sts:[{t:$_Object}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$m:initialize'),$_throws("DeserializationException","the partial contains insufficient state")];},d:['ceylon.language.serialization','Partial','$m','initialize']};}};atr$(partial$,'instantiated',function(){var partial$=this;return nn$(partial$.instance_);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Partial$serialization,pa:1,an:function(){return[doc("Whether the partial has been instantiated")];},d:['ceylon.language.serialization','Partial','$at','instantiated']};});atr$(partial$,'initialized',function(){var partial$=this;return !nn$(partial$.state);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Partial$serialization,pa:1,an:function(){return[doc("Whether the partial has been initialized")];},d:['ceylon.language.serialization','Partial','$at','initialized']};});atr$(partial$,'member',function(){var partial$=this;return nn$(partial$.container);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Partial$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:member')];},d:['ceylon.language.serialization','Partial','$at','member']};});partial$.instance=function(){var partial$=this;asrt$(((partial$.instantiated&&partial$.initialized)),"Assertion failed: \'instantiated && initialized\' at Partial.ceylon (59:14-59:42)",'59:8-59:43','Partial.ceylon');
return partial$.instance_;};partial$.instance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Partial$serialization,pa:1,an:function(){return[doc("Gets the fully initialized instance, or throws")];},d:['ceylon.language.serialization','Partial','$m','instance']};};atr$(partial$,'refersTo',function(){var partial$=this;var $1lr;if(nn$(($1lr=partial$.state))){return $1lr.items;}
else{return empty();}
},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Object}}},$cont:Partial$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:refersTo')];},d:['ceylon.language.serialization','Partial','$at','refersTo']};});})(Partial$serialization.$$.prototype);}
return Partial$serialization;}
ex$.$init$Partial$serialization=$init$Partial$serialization;$init$Partial$serialization();function PartialImpl$serialization($1ls,partialImpl$){$init$PartialImpl$serialization();
if(partialImpl$===undefined)partialImpl$=new PartialImpl$serialization.$$;
partialImpl$.$1ls_=$1ls;Partial$serialization($1ls,partialImpl$);return partialImpl$;}
PartialImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Partial$serialization},ps:[{nm:'id',mt:'prm',$t:{t:$_Object}}],an:function(){return[$_native()];},d:['ceylon.language.serialization','PartialImpl']};};
ex$.PartialImpl$serialization=PartialImpl$serialization;function $init$PartialImpl$serialization(){if(PartialImpl$serialization.$$===undefined){initTypeProto(PartialImpl$serialization,'ceylon.language.serialization::PartialImpl',$init$Partial$serialization());
(function(partialImpl$){atr$(partialImpl$,'$1ls',function(){return this.$1ls_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:PartialImpl$serialization,d:['ceylon.language.serialization','PartialImpl','$at','id$qh77bu']};});partialImpl$.instantiate=function instantiate(){
var classModel=this.clazz;
if (!classModel) {
throw DeserializationException("no class specified for instance with id " + this.id);
}
var outer,outerClass;
if (is$(classModel,{t:AppliedClass$jsint})) {
outer=null;
outerClass=null;
} else if (is$(classModel,{t:AppliedMemberClass$jsint})) {
outer=this.container;
if (is$(outer,{t:Partial$serialization}))outer=outer.instance_;
outerClass=type$meta(outer,{Type$type:classModel.$$targs$$.Container$AppliedMemberClass});
} else {
throw AssertionError("unexpected class model " + (classModel&&classModel.string||"NULL"));
}
this.instance_=classModel.tipo.inst$$(classModel);
if (outer) {
this.instance_.outer$=outer;
}
}
partialImpl$.instantiate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:PartialImpl$serialization,pa:3,an:function(){return[$_native()];},d:['ceylon.language.serialization','PartialImpl','$m','instantiate']};};partialImpl$.initialize=function initialize(context,$mpt){
var me=this;
function getReferredInstance2(ctxt, refid) {
var referred = ctxt.leakInstance(refid);
if (is$(referred,{t:Partial$serialization})) {
referred = referred.instance_;
}
return referred;
}
function getReferredInstance(ctxt, st, rc) {
var x=st.$_get(rc);
return getReferredInstance2(ctxt, x);
}
function initializeObject(inst) {
var reachables = inst.getT$all()[inst.getT$name()].ser$refs$(inst);
var numLate = 0;
for (var i=0;i<reachables.length;i++) {
var r=reachables[i];
if (is$(r,{t:Member$serialization}) && r.attribute.late) {
numLate++;
} else if (is$(r,{t:Outer$serialization})) {
numLate++;
}
}
if (me.state.size < reachables.length-numLate) {
var missingNames=[];
for (var i=0;i<reachables.length;i++) {
if (!missingNames.contains(reachables[i])) {
missingNames.push(reachables[i]);
}
}
var next;for(var iter=me.state.keys.iterator;(next=iter.next())!==finished();) {
for (var i=0;i<missingNames.length;i++) {
if (missingNames[i].equals(next)) {
missingNames.splice(i,1);
break;
}
}
}
throw DeserializationException$serialization("lacking sufficient state for instance with id " + me.id + ": " + missingNames.string);
}
for (var i=0;i<reachables.length;i++) {
var ref=reachables[i];
if (is$(ref,{t:Member$serialization})) {
if (ref.attribute.late && !me.state.contains(ref)
|| me.state.$_get(ref) === uninitializedLateValue$serialization()) {
continue;
}
//TODO membertypecache
var referredInstance = getReferredInstance(context, me.state, ref);
inst.getT$all()[inst.getT$name()].ser$set$(ref, inst, referredInstance);
} else if (is$(ref,{t:Outer$serialization})) {
continue;
} else {
throw AssertionError("unexpected ReachableReference " + ref.string);
}
}
}
function initializeArray(inst) {
var sizeAttr = $_Array.ser$refs$(inst)[0];
var size = getReferredInstance(context, me.state, sizeAttr);
if (size === null || size === undefined) {
throw DeserializationException$serialization("lacking sufficient state for array with id " + me.id + ": " + sizeAttr.string);
}
var type=inst.getT$all()[inst.getT$name()];
type.ser$set$(sizeAttr,inst,size);
for (var i=0;i<size;i++) {
var index=ElementImpl$impl(i);
var id=me.state.$_get(index);
if (id===null||id===undefined) {
throw DeserializationException$serialization("lacking sufficient state for array with id " + me.id + " element " + i);
}
var elem=getReferredInstance2(context,id);
type.ser$set$(i,inst,elem);
}
if (me.state.size != size+1) {
throw DeserializationException$serialization("lacking sufficient state for array with id " + me.id);
}
}
var inst=me.instance_;
if (is$(inst,{t:$_Array})) {
initializeArray(inst);
} else if (is$(inst,{t:Tuple})) {
console.log("TODO! initialize tuple");
} else {
initializeObject(inst);
}
me.state=null;
}
partialImpl$.initialize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'context',mt:'prm',$t:{t:DeserializationContextImpl$serialization,a:{Id$DeserializationContextImpl:'Id$initialize'}}}],$cont:PartialImpl$serialization,tp:{Id$initialize:{sts:[{t:$_Object}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.serialization','PartialImpl','$m','initialize']};};})(PartialImpl$serialization.$$.prototype);}
return PartialImpl$serialization;}
ex$.$init$PartialImpl$serialization=$init$PartialImpl$serialization;$init$PartialImpl$serialization();function ReachableReference$serialization(reachableReference$){}
ReachableReference$serialization.$crtmm$=function(){return{mod:$CCMM$,of:[{t:Member$serialization},{t:Element$serialization},{t:Outer$serialization}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:ReachableReference')];},d:['ceylon.language.serialization','ReachableReference']};};
ex$.ReachableReference$serialization=ReachableReference$serialization;function $init$ReachableReference$serialization(){if(ReachableReference$serialization.$$===undefined){initTypeProtoI(ReachableReference$serialization,'ceylon.language.serialization::ReachableReference');
(function(reachableReference$){reachableReference$.referred={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:ReachableReference$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:ReachableReference:$m:referred')];},d:['ceylon.language.serialization','ReachableReference','$m','referred']};}};})(ReachableReference$serialization.$$.prototype);}
return ReachableReference$serialization;}
ex$.$init$ReachableReference$serialization=$init$ReachableReference$serialization;$init$ReachableReference$serialization();function References$serialization(references$){Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}},references$);}
References$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:References')];},d:['ceylon.language.serialization','References']};};
ex$.References$serialization=References$serialization;function $init$References$serialization(){if(References$serialization.$$===undefined){initTypeProtoI(References$serialization,'ceylon.language.serialization::References',$init$Iterable());
(function(references$){references$.$prop$getInstance={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},$cont:References$serialization,pa:5,an:function(){return[doc("The instance")];},d:['ceylon.language.serialization','References','$at','instance']};}};references$.$prop$getReferences={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:ReachableReference$serialization}}},$cont:References$serialization,pa:5,an:function(){return[doc("The references that are reachable from the [[instance]].")];},d:['ceylon.language.serialization','References','$at','references']};}};})(References$serialization.$$.prototype);}
return References$serialization;}
ex$.$init$References$serialization=$init$References$serialization;$init$References$serialization();function ReferencesImpl$serialization(instance,referencesImpl$){$init$ReferencesImpl$serialization();
if(referencesImpl$===undefined)referencesImpl$=new ReferencesImpl$serialization.$$;
referencesImpl$.instance_=instance;References$serialization(referencesImpl$);BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}},referencesImpl$);Identifiable(referencesImpl$);return referencesImpl$;}
ReferencesImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}},ps:[{nm:'instance',mt:'prm',$t:{t:Anything},pa:3}],sts:[{t:References$serialization},{t:Identifiable}],d:['ceylon.language.serialization','ReferencesImpl']};};
ex$.ReferencesImpl$serialization=ReferencesImpl$serialization;function $init$ReferencesImpl$serialization(){if(ReferencesImpl$serialization.$$===undefined){initTypeProto(ReferencesImpl$serialization,'ceylon.language.serialization::ReferencesImpl',$init$BaseIterable$impl(),$init$References$serialization(),$init$Identifiable());
(function(referencesImpl$){atr$(referencesImpl$,'instance',function(){return this.instance_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:ReferencesImpl$serialization,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$at','instance']};});referencesImpl$.iterator=function(){var referencesImpl$=this;var $1lt;if(nn$(($1lt=referencesImpl$.instance))){var $1lu=(function(){var $1lv=$1lt;return function(){function $1lw(){var $1lw$=new $1lw.$$;$1lw$.outer$=referencesImpl$;BaseIterator$impl({Element$BaseIterator:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}},$1lw$);Identifiable($1lw$);$1lw$.$1lx_=referencesImpl$.references.iterator();$1lw$.$prop$get$1lx={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},$cont:referencesImpl$.iterator,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator','$at','it$86cdjk']};}};$1lw$.$prop$get$1lx.get=function(){return $1lx};return $1lw$;};$1lw.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterator$impl,a:{Element$BaseIterator:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}},$cont:referencesImpl$.iterator,sts:[{t:Identifiable}],d:['ceylon.language.serialization','ReferencesImpl','$m','iterator']};};function $init$$1lw(){if($1lw.$$===undefined){initTypeProto($1lw,'ceylon.language.serialization::ReferencesImpl.anonymous#0',$init$BaseIterator$impl(),$init$Identifiable());
(function($1lw$){atr$($1lw$,'$1lx',function(){return this.$1lx_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},$cont:referencesImpl$.iterator,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator','$at','it$86cdjk']};});$1lw$.next=function(){var $1lw$=this;var $1ly=$1lw$.$1lx.next();var $1lz;if(is$(($1lz=$1ly),{t:Finished})){return finished();}
else{return Entry($1lz,$1lz.referred($1lv),{Key$Entry:mut$([{t:Member$serialization},{t:Element$serialization},{t:Outer$serialization}]),Item$Entry:{t:Anything}});}
};$1lw$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}},{t:Finished}]},ps:[],$cont:referencesImpl$.iterator,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator','$m','next']};};})($1lw.$$.prototype);}
return $1lw;}
referencesImpl$.$init$$1lw=$init$$1lw;$init$$1lw();return $1lw();}();}());if($1lu!==undefined){return $1lu;}}
else{return emptyIterator();}
};referencesImpl$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}},ps:[],$cont:ReferencesImpl$serialization,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator']};};atr$(referencesImpl$,'references',function(){var referencesImpl$=this;return function(){function $1m1(){var $1m1$=new $1m1.$$;$1m1$.outer$=referencesImpl$;BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:ReachableReference$serialization}},$1m1$);Identifiable($1m1$);return $1m1$;};$1m1.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:ReachableReference$serialization}}},$cont:referencesImpl$.$prop$getReferences,sts:[{t:Identifiable}],d:['ceylon.language.serialization','ReferencesImpl','$at','references']};};function $init$$1m1(){if($1m1.$$===undefined){initTypeProto($1m1,'ceylon.language.serialization::ReferencesImpl.anonymous#1',$init$BaseIterable$impl(),$init$Identifiable());
(function($1m1$){$1m1$.iterator=function(){var $1m1$=this;return reach$impl().references(referencesImpl$.instance);};$1m1$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},ps:[],$cont:referencesImpl$.$prop$getReferences,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$at','references','$m','iterator']};};})($1m1.$$.prototype);}
return $1m1;}
referencesImpl$.$init$$1m1=$init$$1m1;$init$$1m1();return $1m1();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:ReachableReference$serialization}}},$cont:ReferencesImpl$serialization,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$at','references']};});})(ReferencesImpl$serialization.$$.prototype);}
return ReferencesImpl$serialization;}
ex$.$init$ReferencesImpl$serialization=$init$ReferencesImpl$serialization;$init$ReferencesImpl$serialization();function SerializationContext$serialization(serializationContext$){}
SerializationContext$serialization.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:SerializationContext')];},d:['ceylon.language.serialization','SerializationContext']};};
ex$.SerializationContext$serialization=SerializationContext$serialization;function $init$SerializationContext$serialization(){if(SerializationContext$serialization.$$===undefined){initTypeProtoI(SerializationContext$serialization,'ceylon.language.serialization::SerializationContext');
(function(serializationContext$){serializationContext$.references={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:References$serialization},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:SerializationContext$serialization,pa:5,an:function(){return[doc("Obtain the references of the given instance."),$_throws("SerializationException","If the class is not serializable")];},d:['ceylon.language.serialization','SerializationContext','$m','references']};}};})(SerializationContext$serialization.$$.prototype);}
return SerializationContext$serialization;}
ex$.$init$SerializationContext$serialization=$init$SerializationContext$serialization;$init$SerializationContext$serialization();function SerializationContextImpl$serialization(serializationContextImpl$){$init$SerializationContextImpl$serialization();
if(serializationContextImpl$===undefined)serializationContextImpl$=new SerializationContextImpl$serialization.$$;
SerializationContext$serialization(serializationContextImpl$);return serializationContextImpl$;}
SerializationContextImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:SerializationContext$serialization}],d:['ceylon.language.serialization','SerializationContextImpl']};};
ex$.SerializationContextImpl$serialization=SerializationContextImpl$serialization;function $init$SerializationContextImpl$serialization(){if(SerializationContextImpl$serialization.$$===undefined){initTypeProto(SerializationContextImpl$serialization,'ceylon.language.serialization::SerializationContextImpl',Basic,$init$SerializationContext$serialization());
(function(serializationContextImpl$){serializationContextImpl$.references=function($1m3){var serializationContextImpl$=this;if(classDeclaration$meta($1m3).serializable){return ReferencesImpl$serialization($1m3);}
else{throw wrapexc(SerializationException$serialization("instance of non-serializable class: ".plus(type$meta($1m3,{Type$type:{t:Anything}}).string)),'35:12-35:98','ceylon/language/serialization/SerializationContext.ceylon');}
};serializationContextImpl$.references.$crtmm$=function(){return{mod:$CCMM$,$t:{t:References$serialization},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:SerializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','SerializationContextImpl','$m','references']};};})(SerializationContextImpl$serialization.$$.prototype);}
return SerializationContextImpl$serialization;}
ex$.$init$SerializationContextImpl$serialization=$init$SerializationContextImpl$serialization;$init$SerializationContextImpl$serialization();function SerializationException$serialization($1m4,$1m5,serializationException$){$init$SerializationException$serialization();
if(serializationException$===undefined)serializationException$=new SerializationException$serialization.$$;
serializationException$.$1m4_=$1m4;if($1m5===undefined){$1m5=$init$SerializationException$serialization().$defs$cause(serializationException$,$1m4);}
serializationException$.$1m5_=$1m5;Exception($1m4,$1m5,serializationException$);return serializationException$;}
SerializationException$serialization.$defs$cause=function(serializationException$,$1m4){return null};SerializationException$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:SerializationException')];},d:['ceylon.language.serialization','SerializationException']};};
ex$.SerializationException$serialization=SerializationException$serialization;function $init$SerializationException$serialization(){if(SerializationException$serialization.$$===undefined){initTypeProto(SerializationException$serialization,'ceylon.language.serialization::SerializationException',$init$Exception());
(function(serializationException$){atr$(serializationException$,'$1m4',function(){return this.$1m4_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:SerializationException$serialization,d:['ceylon.language.serialization','SerializationException','$at','message$lnvdpc']};});atr$(serializationException$,'$1m5',function(){return this.$1m5_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:SerializationException$serialization,d:['ceylon.language.serialization','SerializationException','$at','cause$tockc2']};});})(SerializationException$serialization.$$.prototype);}
return SerializationException$serialization;}
ex$.$init$SerializationException$serialization=$init$SerializationException$serialization;$init$SerializationException$serialization();function deserialization$serialization($kr7let$){return DeserializationContextImpl$serialization({Id$DeserializationContextImpl:$kr7let$.Id$deserialization});};deserialization$serialization.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeserializationContext$serialization,a:{Id$DeserializationContext:'Id$deserialization'}},ps:[],tp:{Id$deserialization:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc("A new [[DeserializationContext]].")];},d:['ceylon.language.serialization','deserialization']};};
ex$.deserialization$serialization=deserialization$serialization;ex$.$pkg$ans$ceylon$language$serialization=function(){return[doc$($CCMM$,'ceylon.language.serialization','$pkg-anns'),by(["Gavin","Tom"].$sa$({t:$_String})),tagged(["Serialization"].$sa$({t:$_String})),shared()];};function serialization$serialization(){return SerializationContextImpl$serialization();};serialization$serialization.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SerializationContext$serialization},ps:[],pa:1,an:function(){return[doc("A new [[SerializationContext]].")];},d:['ceylon.language.serialization','serialization']};};
ex$.serialization$serialization=serialization$serialization;function AppliedCallableConstructor$jsint(tipo,$$targs$$,that,myTargs) {
if ($$targs$$.Type$AppliedCallableConstructor===undefined)$$targs$$.Type$AppliedCallableConstructor=$$targs$$.Type$CallableConstructor;
if ($$targs$$.Arguments$AppliedCallableConstructor===undefined)$$targs$$.Arguments$AppliedCallableConstructor=$$targs$$.Type$CallableConstructor;
$init$AppliedCallableConstructor$jsint();
if (that===undefined){
var mm=getrtmm$$(tipo);
if (mm) {
that=function AppliedCallableConstr1(){
var _a=[].slice.call(arguments,0);
_a=convert$params(mm,_a,that.$targs);
if (that.$targs) {
_a.push(that.$targs);
}
return tipo.apply(undefined,_a);
}
that.$crtmm$=mm;
var dummy=new AppliedCallableConstructor$jsint.$$;
that.$$=dummy.$$;
that.getT$all=function(){return dummy.getT$all();}
that.getT$name=function(){return dummy.getT$name();}
that.equals=AppliedCallableConstructor$jsint.$$.prototype.equals;
that.$_apply=AppliedCallableConstructor$jsint.$$.prototype.$_apply;
that.namedApply=AppliedCallableConstructor$jsint.$$.prototype.namedApply;
atr$(that,'declaration',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.$crtmm$);
atr$(that,'container',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getContainer.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getContainer.$crtmm$);
atr$(that,'type',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getType.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getType.$crtmm$);
atr$(that,'typeArguments',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'parameterTypes',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(that,'string',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getString.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getString.$crtmm$);
}
}
$_Function$meta$model({Arguments$Function:$$targs$$.Arguments$AppliedCallableConstructor,
Type$Function:$$targs$$.Type$AppliedCallableConstructor},that);
CallableConstructor$meta$model({Type$CallableConstructor:$$targs$$.Type$AppliedCallableConstructor,Arguments$CallableConstructor:$$targs$$.Arguments$AppliedCallableConstructor},that);
set_type_args(that,$$targs$$,AppliedCallableConstructor$jsint);
that.$targs=myTargs;
that.tipo=tipo;
return that;
}
AppliedCallableConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'_tipo',mt:'prm',$t:{t:Anything}}],tp:{Type$AppliedCallableConstructor:{dv:'out',def:{t:Anything}},Arguments$AppliedCallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$AppliedCallableConstructor',Type$CallableConstructor:'Type$AppliedCallableConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor']};};
ex$.AppliedCallableConstructor$jsint=AppliedCallableConstructor$jsint;function $init$AppliedCallableConstructor$jsint(){if(AppliedCallableConstructor$jsint.$$===undefined){initTypeProto(AppliedCallableConstructor$jsint,'ceylon.language.jsint::AppliedCallableConstructor',
Basic,$init$CallableConstructor$meta$model(),$init$$_Function$meta$model());
(function(appliedCallableConstructor$){atr$(appliedCallableConstructor$,'$1m6',function(){return this.$1m6_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:AppliedCallableConstructor$jsint,d:['ceylon.language.jsint','AppliedCallableConstructor','$at','_tipo$35cy4o']};});atr$(appliedCallableConstructor$,'declaration',function(){if (this.dec$===undefined) {
this.dec$=OpenCallableConstructor$jsint(lmp$(ex$,getrtmm$$(this.tipo).d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','declaration']};});atr$(appliedCallableConstructor$,'container',function(){return this.fakeConstr$?this.type:null;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedCallableConstructor'}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','container']};});atr$(appliedCallableConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=this.fakeConstr$?this.tipo:getrtmm$$(this.tipo).$cont;
this.cont$=AppliedClass$jsint(cc,{Type$AppliedClass:this.$$targs$$.Type$AppliedCallableConstructor,Arguments$AppliedClass:{t:Nothing}},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedCallableConstructor'}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','type']};});atr$(appliedCallableConstructor$,'parameterTypes',function(){if (this.ptypes$===undefined) {
this.ptypes$=clsparamtypes(this);
}
return this.ptypes$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','parameterTypes']};});appliedCallableConstructor$.$_apply=function(a){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
a=convert$params(mm,a,this.$targs);
if (this.$targs)a.push(this.$targs);
return this.tipo.apply(undefined,a);
}
appliedCallableConstructor$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedCallableConstructor',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$m','apply']};};appliedCallableConstructor$.namedApply=function(args){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
if (mm.ps===undefined)throw InvocationException$meta$model("Applied constructor does not have metamodel parameter info for named args call");
var mapped={};
var iter=args.iterator();var a;while((a=iter.next())!==finished()) {
mapped[a.key]=a.item;
}
var ordered=[];
for (var i=0; i<mm.ps.length; i++) {
var p=mm.ps[i];
var v=mapped[p.nm];
if (v===undefined && p.def===undefined) {
throw InvocationException$meta$model("Required argument " + p.nm + " missing in named-argument invocation");
} else if (v!==undefined) {
var t=restype2$(p.$t,this.$targs);
if (t&&!is$(v,t))throw IncompatibleTypeException$meta$model("Argument " + p.nm + "="+v+" is not of the expected type.");
}
delete mapped[p.nm];
ordered.push(v);
}
if (Object.keys(mapped).length>0)throw new InvocationException$meta$model("No arguments with names " + Object.keys(mapped));
if (this.$targs) {
ordered.push(this.$targs);
}
return this.tipo.apply(undefined,ordered);
}
appliedCallableConstructor$.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedCallableConstructor',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$m','namedApply']};};atr$(appliedCallableConstructor$,'string',function(){return qname$(getrtmm$$(this.tipo));
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','string']};});atr$(appliedCallableConstructor$,'typeArguments',function(){return this.type.typeArguments;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArguments']};});atr$(appliedCallableConstructor$,'typeArgumentList',function(){return this.type.typeArgumentList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArgumentList']};});atr$(appliedCallableConstructor$,'typeArgumentWithVariances',function(){return this.type.typeArgumentWithVariances;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArgumentWithVariances']};});atr$(appliedCallableConstructor$,'typeArgumentWithVarianceList',function(){return this.type.typeArgumentWithVarianceList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArgumentWithVarianceList']};});appliedCallableConstructor$.equals=function equals(o) {
if (is$(o,{t:AppliedCallableConstructor$jsint}) && this.tipo===o.tipo) {
return this.typeArguments.equals(o.typeArguments);
}
return false;
}
appliedCallableConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$m','equals']};};})(AppliedCallableConstructor$jsint.$$.prototype);}
return AppliedCallableConstructor$jsint;}
ex$.$init$AppliedCallableConstructor$jsint=$init$AppliedCallableConstructor$jsint;$init$AppliedCallableConstructor$jsint();function AppliedClass$jsint(tipo,$$targs$$,that,classTargs){
if (!$$targs$$.Type$AppliedClass)$$targs$$.Type$AppliedClass=$$targs$$.Type$Class;
if (!$$targs$$.Arguments$AppliedClass)$$targs$$.Arguments$AppliedClass=$$targs$$.Arguments$Class;
$init$AppliedClass$jsint();
var _proto=AppliedClass$jsint.$$.prototype;
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedClass1(x){/*Class*/
if (that.$targs) {
var _a=[];
for (var i=0;i<arguments.length;i++)_a.push(arguments[i]);
_a.push(that.$targs);
return tipo.apply(x,_a);
}
return tipo.apply(x,arguments);
}
} else {
that=function AppliedClass2(){
if (that.$targs) {
var _a=[];
for (var i=0;i<arguments.length;i++)_a.push(arguments[i]);
_a.push(that.$targs);
return tipo.apply(undefined,_a);
}
return tipo.apply(undefined,arguments);
}
}
that.$crtmm$=mm;
var dummy = new AppliedClass$jsint.$$;
that.$$=AppliedClass$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.$_apply=_proto.$_apply;
that.namedApply=_proto.namedApply;
}
//AppliedMemberClass also gets these
atr$(that,'satisfiedTypes',function(){return coisattype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'container',function(){ return coicont$(that);
},undefined,_proto.$prop$getContainer.$crtmm$);
atr$(that,'string',function(){return coistr$(that);},undefined,_proto.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,_proto.$prop$getHash.$crtmm$);
atr$(that,'typeArguments',function(){return coitarg$(that);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){return coitargl$(that);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){return coitargv$(that);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){return coitargvl$(that);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'extendedType',function(){return coiexttype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'declaration',function(){return coimoddcl$(that);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(that,'caseValues',function(){return coicase$(that);
},undefined,_proto.$prop$getCaseValues.$crtmm$);
atr$(that,'defaultConstructor',function(){
return _proto.$prop$getDefaultConstructor.get.call(that);
},undefined,_proto.$prop$getDefaultConstructor.$crtmm$);
that.getMethod=_proto.getMethod;
that.getDeclaredMethod=_proto.getDeclaredMethod;
that.getMethods=_proto.getMethods;
that.getDeclaredMethods=_proto.getDeclaredMethods;
that.getAttribute=_proto.getAttribute;
that.getDeclaredAttribute=_proto.getDeclaredAttribute;
that.getAttributes=_proto.getAttributes;
that.getDeclaredAttributes=_proto.getDeclaredAttributes;
that.getClassOrInterface=_proto.getClassOrInterface;
that.getDeclaredClassOrInterface=_proto.getDeclaredClassOrInterface;
that.getClass=_proto.getClass;
that.getDeclaredClass=_proto.getDeclaredClass;
that.getClasses=_proto.getClasses;
that.getDeclaredClasses=_proto.getDeclaredClasses;
that.getInterface=_proto.getInterface;
that.getDeclaredInterface=_proto.getDeclaredInterface;
that.getInterfaces=_proto.getInterfaces;
that.getDeclaredInterfaces=_proto.getDeclaredInterfaces;
that.getConstructor=_proto.getConstructor;
that.getCallableConstructors=_proto.getCallableConstructors;
that.getDeclaredCallableConstructors=_proto.getDeclaredCallableConstructors;
that.getDeclaredConstructor=_proto.getDeclaredConstructor;
that.getDeclaredValueConstructors=_proto.getDeclaredValueConstructors;
that.getValueConstructors=_proto.getValueConstructors;
that.equals=_proto.equals;
that.typeOf=_proto.typeOf;
that.supertypeOf=_proto.supertypeOf;
that.subtypeOf=_proto.subtypeOf;
that.exactly=_proto.exactly;
that.union=_proto.union;
that.intersection=_proto.intersection;
that.$targs=classTargs;
set_type_args(that,$$targs$$,AppliedClass$jsint);
Class$meta$model({Arguments$Class:that.$$targs$$.Arguments$AppliedClass,
Type$Class:that.$$targs$$.Type$AppliedClass},that);
//This is for serialization
if (tipo===Tuple && classTargs)that.$$targs$$.Type$Class={t:Tuple,a:classTargs};
that.tipo=tipo;
return that;
}
AppliedClass$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedClass:{dv:'out',def:{t:Anything}},Arguments$AppliedClass:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Class$meta$model,a:{Type$Class:'Type$AppliedClass',Arguments$Class:'Arguments$AppliedClass'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass']};};
ex$.AppliedClass$jsint=AppliedClass$jsint;function $init$AppliedClass$jsint(){if(AppliedClass$jsint.$$===undefined){initTypeProto(AppliedClass$jsint,'ceylon.language.jsint::AppliedClass',Basic,$init$Class$meta$model());
(function(appliedClass$){atr$(appliedClass$,'defaultConstructor',function(){if (this.$defcons$===undefined) {
var mm=getrtmm$$(this.tipo);
var fn=mm.d[mm.d.length-1]+'_$c$';
var cn=this.tipo[fn];
var fc=false;
if (!cn) {
var m2=get_model(mm);
if (m2 && m2.$cn===undefined) {
cn=this.tipo;
fc=true;
} else if (m2 && m2.$cn) {
//The class has constructors, but it's a local class or something
for (var mem in this.tipo) {
if (mem.endsWith("_$c$")) {
cn=this.tipo[mem];
break;
}
}
}
}
if (cn) {
mm=getrtmm$$(cn).ps;
var args=tupleize$params(getrtmm$$(cn).ps,this.$$targs$$.Target$Type.a);
var r=AppliedCallableConstructor$jsint(cn,{Type$AppliedCallableConstructor:this.$$targs$$.Type$AppliedClass,
Arguments$AppliedCallableConstructor:args},undefined,this.$targs);
r.cont$=this;
this.$defcons$=r;
if(fc)r.fakeConstr$=true;
return r;
}
this.$defcons$=null;
}
return this.$defcons$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$AppliedClass',Type$CallableConstructor:'Type$AppliedClass'}}]},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','defaultConstructor']};});appliedClass$.getConstructor=function(nm,$mpt){
var r=this.getDeclaredConstructor(nm,{Arguments$getDeclaredConstructor:$mpt.Arguments$getConstructor});
return r && (getrtmm$$(r.tipo).pa&1)>0?r:null;
}
appliedClass$.getConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getConstructor',Type$CallableConstructor:'Type$AppliedClass'}},{t:'u',l:[{t:Null},{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getConstructor']};};appliedClass$.getDeclaredConstructor=function(nm,$mpt){
var mm=getrtmm$$(this.tipo);
var fn=mm.d[mm.d.length-1]+"_"+(nm===''?'$c$':nm);
var cn=this.tipo[fn];
if (cn) {
mm=getrtmm$$(cn);
if (mm.d[mm.d.length-2]==='$cn' && mm.ps!==undefined) {
validate$params(mm.ps,$mpt.Arguments$getDeclaredConstructor,"Wrong number of Arguments for getConstructor");
var args=mm.ps?tupleize$params(mm.ps,this.$targs):empty();
var r=AppliedCallableConstructor$jsint(cn,{Type$AppliedCallableConstructor:this.$$targs$$.Type$AppliedClass,
Arguments$AppliedCallableConstructor:args},undefined,this.$targs);
r.cont$=this;
return r;
}
}
return null;
}
appliedClass$.getDeclaredConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getDeclaredConstructor',Type$CallableConstructor:'Type$AppliedClass'}},{t:'u',l:[{t:Null},{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Arguments$getDeclaredConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredConstructor']};};appliedClass$.getDeclaredCallableConstructors=function(anntypes,$m) {
var mm=getrtmm$$(this.tipo);
var pref=mm.d[mm.d.length-1]+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedClass,$m.Arguments$getDeclaredCallableConstructors);
for (var i=0;i<cs.length;i++) {
var r=AppliedCallableConstructor$jsint(cs[i].tipo,{Type$AppliedCallableConstructor:this.$$targs$$.Type$AppliedClass,
Arguments$AppliedCallableConstructor:cs[i].args},undefined,this.$targs);
r.cont$=this;
if (cs[i].fakeConstr)r.fakeConstr$=true;
cs[i]=r;
}
return cs.$sa$({t:CallableConstructor$meta$model,
a:{Type$CallableConstructor:this.$$targs$$.Type$AppliedClass,Arguments$CallableConstructor:{t:Nothing}}});
}
appliedClass$.getDeclaredCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getDeclaredCallableConstructors',Type$CallableConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Arguments$getDeclaredCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredCallableConstructors']};};appliedClass$.getCallableConstructors=function(anntypes,$m){
return this.getDeclaredCallableConstructors(anntypes,{Arguments$getDeclaredCallableConstructors:$m.Arguments$getCallableConstructors}
).select(function(e){return (getrtmm$$(e.tipo).pa&1)>0||e.fakeConstr$;});
}
appliedClass$.getCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getCallableConstructors',Type$CallableConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Arguments$getCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getCallableConstructors']};};appliedClass$.getDeclaredValueConstructors=function(anntypes){
var mm=getrtmm$$(this.tipo);
var pref=mm.d[mm.d.length-1]+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedClass);
for (var i=0;i<cs.length;i++) {
var r=AppliedValueConstructor$jsint(cs[i].tipo,{Type$AppliedValueConstructor:this.$$targs$$.Type$AppliedClass});
r.cont$=this;
cs[i]=r;
}
return cs.$sa$({t:ValueConstructor$meta$model,
a:{Type$ValueConstructor:this.$$targs$$.Type$AppliedClass}});
}
appliedClass$.getDeclaredValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredValueConstructors']};};appliedClass$.getValueConstructors=function(anntypes){
return this.getDeclaredValueConstructors(anntypes)
.select(function(e){return (getrtmm$$(e.tipo).pa&1)>0;});
}
appliedClass$.getValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getValueConstructors']};};appliedClass$.$_apply=function(a){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
if (mdl&&mdl.mt==='o')throw InvocationException$meta$model("Cannot instantiate anonymous class");
a=convert$params(mm,a,this.$targs);
if (this.$targs)a.push(this.$targs);
return this.tipo.apply(undefined,a);
}
appliedClass$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedClass',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','apply']};};appliedClass$.namedApply=function(args){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
if (mdl&&mdl.mt==='o')throw InvocationException$meta$model("Cannot instantiate anonymous class");
if (mm.ps===undefined)throw InvocationException$meta$model("Applied function does not have metamodel parameter info for named args call");
var mapped={};
var iter=args.iterator();var a;while((a=iter.next())!==finished()) {
mapped[a.key]=a.item;
}
var ordered=[];
for (var i=0; i<mm.ps.length; i++) {
var p=mm.ps[i];
var v=mapped[p.nm];
if (v===undefined && p.def===undefined) {
throw InvocationException$meta$model("Required argument " + p.nm + " missing in named-argument invocation");
} else if (v!==undefined) {
var t=p.$t;
if(typeof(t)==='string'&&this.$targs)t=this.$targs[t];
if (t&&!is$(v,t))throw IncompatibleTypeException$meta$model("Argument " + p.nm + "="+v+" is not of the expected type.");
}
delete mapped[p.nm];
ordered.push(v);
}
if (Object.keys(mapped).length>0)throw new InvocationException$meta$model("No arguments with names " + Object.keys(mapped));
if (this.$targs) {
ordered.push(this.$targs);
}
return this.tipo.apply(undefined,ordered);
}
appliedClass$.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedClass',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','namedApply']};};atr$(appliedClass$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','declaration']};});atr$(appliedClass$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArguments']};});atr$(appliedClass$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArgumentList']};});atr$(appliedClass$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArgumentWithVariances']};});atr$(appliedClass$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArgumentWithVarianceList']};});atr$(appliedClass$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','extendedType']};});atr$(appliedClass$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','satisfiedTypes']};});appliedClass$.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);}
appliedClass$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getClassOrInterface']};};appliedClass$.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf
appliedClass$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','typeOf']};};appliedClass$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf
appliedClass$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','supertypeOf']};};appliedClass$.exactly=ClassOrInterface$meta$model.$$.prototype.exactly
appliedClass$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','exactly']};};atr$(appliedClass$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','container']};});appliedClass$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedClass$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getClasses']};};appliedClass$.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
appliedClass$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredClasses']};};appliedClass$.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);}
appliedClass$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getClass']};};appliedClass$.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);}
appliedClass$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredClass']};};appliedClass$.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
appliedClass$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getInterfaces']};};appliedClass$.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedClass$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredInterfaces']};};appliedClass$.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);}
appliedClass$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getInterface']};};appliedClass$.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
}
appliedClass$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredInterface']};};appliedClass$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedClass$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getAttributes']};};appliedClass$.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedClass$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredAttributes']};};appliedClass$.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
appliedClass$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getAttribute']};};appliedClass$.getDeclaredAttribute=function getDeclaredAttribute(name,$$$mptypes){
return coiatr$(this,name,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedClass$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredAttribute']};};appliedClass$.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);}
appliedClass$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getMethods']};};appliedClass$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedClass$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredMethods']};};appliedClass$.getMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,$$$mptypes);
}
appliedClass$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getMethod']};};appliedClass$.getDeclaredMethod=function(name,types,$$$mptypes) {
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedClass$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredMethod']};};appliedClass$.getDeclaredClassOrInterface=function(name,types,$$$mptypes){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:$$$mptypes.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:$$$mptypes.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:$$$mptypes.Container$getDeclaredClassOrInterface},1);
}
appliedClass$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredClassOrInterface']};};atr$(appliedClass$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedClass'}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','caseValues']};});appliedClass$.union=function(t,$mpt){
return coiut$(this,t,$mpt.Other$union);
}
appliedClass$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedClass','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedClass$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','union']};};appliedClass$.intersection=function(t,$mpt){
return coiit$(this,t,$mpt.Other$intersection);
}
appliedClass$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedClass','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedClass$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','intersection']};};atr$(appliedClass$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','string']};});atr$(appliedClass$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','hash']};});appliedClass$.equals=function(o) {
return is$(o,{t:AppliedClass$jsint}) && o.tipo===this.tipo &&
this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances);
};
appliedClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','equals']};};})(AppliedClass$jsint.$$.prototype);}
return AppliedClass$jsint;}
ex$.$init$AppliedClass$jsint=$init$AppliedClass$jsint;$init$AppliedClass$jsint();function AppliedFunction$jsint(m,$$targs$$,o,mptypes) {
if (!$$targs$$.Type$AppliedFunction)$$targs$$.Type$AppliedFunction=$$targs$$.Type$Function;
if (!$$targs$$.Arguments$AppliedFunction)$$targs$$.Arguments$AppliedFunction=$$targs$$.Arguments$Function;
var mm=getrtmm$$(m);
var ttargs;
if (mm.tp) {
if (!mptypes || mptypes.length<1)throw TypeApplicationException$meta$model("Missing type arguments for AppliedFunction");
var i=0;ttargs={};
for (var tp in mm.tp) {
var _ta=mptypes[i];
if(_ta&&_ta.tipo)ttargs[tp]={t:_ta.tipo};
else if (_ta) console.log("TODO assign type arg " + _ta + " to " + tp);
else if (mptypes[tp])ttargs[tp]=mptypes[tp];
else throw new Error("No more type arguments in AppliedFunction!");
i++;
}
}
var f = o===undefined&&mm.$cont?function AppliedFun1(x){
return AppliedFunction$jsint(m,$$targs$$,x,mptypes);
}:function AppliedFun2(){
var _fu=(o&&o[mm.d[mm.d.length-1]])||m;//Get the object's method if possible
if (mm.tp) {
var _a=[];
for (var i=0;i<arguments.length;i++)_a.push(arguments[i]);
_a.push(ttargs);
return _fu.apply(o,_a);
}
return _fu.apply(o,arguments);
}
f.$crtmm$={mod:$CCMM$,d:['ceylon.language.meta.model','Function'],$t:mm.$t,ps:mm.ps,an:mm.an};
var dummy=new AppliedFunction$jsint.$$;
f.$$=AppliedFunction$jsint.$$;
f.getT$all=function(){return dummy.getT$all();}
f.getT$name=function(){return dummy.getT$name();}
if ($$targs$$===undefined) {
throw TypeApplicationException$meta$model("Missing type arguments for AppliedFunction");
}
$_Function$meta$model($$targs$$,f);
f.tipo=m;
f.$targs=ttargs;
if (o)f.$bound=o;
var _proto=AppliedFunction$jsint.$$.prototype;
atr$(f,'typeArguments',function(){
return funtypearg$(f);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(f,'typeArgumentList',function(){
return funtypeargl$(f);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(f,'typeArgumentWithVariances',function(){
return funtypeargv$(f);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(f,'typeArgumentWithVarianceList',function(){
return funtypeargvl$(f);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
f.equals=_proto.equals;
atr$(f,'string',function(){
return _proto.$prop$getString.get.call(f);
},undefined,_proto.$prop$getString.$crtmm$);
atr$(f,'hash',function(){
return _proto.$prop$getHash.get.call(f);
},undefined,_proto.$prop$getHash.$crtmm$);
atr$(f,'parameterTypes',function(){
return _proto.$prop$getParameterTypes.get.call(f);
},undefined,_proto.$prop$getParameterTypes.$crtmm$);
atr$(f,'declaration',function(){
return _proto.$prop$getDeclaration.get.call(f);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(f,'container',function(){
return _proto.$prop$getContainer.get.call(f);
},undefined,_proto.$prop$getContainer.$crtmm$);
atr$(f,'type',function(){
return _proto.$prop$getType.get.call(f);
},undefined,_proto.$prop$getType.$crtmm$);
f.$_apply=_proto.$_apply;
f.namedApply=_proto.namedApply;
return f;
}
AppliedFunction$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedFunction:{dv:'out'},Arguments$AppliedFunction:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},sts:[{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$AppliedFunction',Type$Function:'Type$AppliedFunction'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction']};};
ex$.AppliedFunction$jsint=AppliedFunction$jsint;function $init$AppliedFunction$jsint(){if(AppliedFunction$jsint.$$===undefined){initTypeProto(AppliedFunction$jsint,'ceylon.language.jsint::AppliedFunction',Basic,$init$$_Function$meta$model());
(function(appliedFunction$){atr$(appliedFunction$,'parameterTypes',function(){return funparamtypes(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','parameterTypes']};});appliedFunction$.$_apply=function(a){
a=convert$params(getrtmm$$(this.tipo),a,this.$targs);
if (this.$targs) {
a.push(this.$targs);
}
var thefun=this.tipo;
if (thefun.$fml===1) {
//formal member, get the concrete impl from the bound object
var mm=getrtmm$$(thefun);
thefun=this.$bound[mm.d[mm.d.length-1]];
}
return thefun.apply(this.$bound,a);
}
appliedFunction$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedFunction',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$m','apply']};};appliedFunction$.namedApply=function(args) {
var mm=getrtmm$$(this.tipo);
if (mm.ps===undefined)throw InvocationException$meta$model("Applied function does not have metamodel parameter info for named args call");
var mapped={};
var iter=args.iterator();var a;while((a=iter.next())!==finished()) {
mapped[a.key]=a.item;
}
var ordered=[];
for (var i=0; i<mm.ps.length; i++) {
var p=mm.ps[i];
var v=mapped[p.nm];
if (v===undefined && p.def===undefined) {
throw InvocationException$meta$model("Required argument " + p.nm + " missing in named-argument invocation");
} else if (v!==undefined) {
var t=p.$t;
if (this.$targs) {
if (typeof(t)==='string') {
t=this.$targs[t];
} else if (t.a) {
var _t2={t:t.t,a:{}};
for (var k in t.a) {
if (typeof(t.a[k])==='string') {
_t2.a[k]=this.$targs[t.a[k]];
} else {
_t2.a[k]=t.a[k];
}
}
t=_t2;
}
}
if (t&&!is$(v,t))throw IncompatibleTypeException$meta$model("Argument " + p.nm + "="+v+" is not of the expected type.");
}
delete mapped[p.nm];
ordered.push(v);
}
if (Object.keys(mapped).length>0)throw new InvocationException$meta$model("No arguments with names " + Object.keys(mapped));
if (this.$targs) {
ordered.push(this.$targs);
}
return this.tipo.apply(this.$bound,ordered);
}
appliedFunction$.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedFunction',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$m','namedApply']};};atr$(appliedFunction$,'declaration',function(){if (this._decl)return this._decl;
var mm=getrtmm$$(this.tipo);
var _m=typeof(mm.mod)==='function'?mm.mod():mm.mod;
this._decl = OpenFunction$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), this.tipo);
return this._decl;
},undefined,function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','declaration']};});atr$(appliedFunction$,'type',function(){var mm=getrtmm$$(this.tipo);
if (this.$$targs$$.Container$Method) {
return typeLiteral$meta({Type$typeLiteral:restype$(this.$$targs$$.Container$Method,this.$$targs$$.Type$Method||mm.$t)});
}
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Type$Function||mm.$t});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$AppliedFunction'}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','type']};});atr$(appliedFunction$,'container',function(){if (this.$bound===undefined)return this.containingPackage;
if (this.$parent===undefined) {
var mm=getrtmm$$(this.tipo);
if (mm.$cont===0) {
this.$parent=this.containingPackage;
} else {
this.$parent=type$meta(this.$bound,{Type$type:mm.$cont});
}
}
return this.$parent;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','container']};});atr$(appliedFunction$,'typeArguments',function(){return funtypearg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArguments']};});atr$(appliedFunction$,'typeArgumentList',function(){return funtypeargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArgumentList']};});atr$(appliedFunction$,'typeArgumentWithVariances',function(){return funtypeargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArgumentWithVariances']};});atr$(appliedFunction$,'typeArgumentWithVarianceList',function(){return funtypeargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArgumentWithVarianceList']};});atr$(appliedFunction$,'string',function(){if (this.str$===undefined){
this.str$=funmodstr$(this);
}
return this.str$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','string']};});atr$(appliedFunction$,'hash',function(){return this.string.hash+(this.$bound?this.$bound.hash:0);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','hash']};});appliedFunction$.equals=function(oo){
return is$(oo,{t:AppliedFunction$jsint}) &&
oo.tipo===this.tipo && oo.typeArguments.equals(this.typeArguments)
&& (this.$bound?this.$bound.equals(oo.$bound):oo.$bound===this.$bound);
}
appliedFunction$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$m','equals']};};})(AppliedFunction$jsint.$$.prototype);}
return AppliedFunction$jsint;}
ex$.$init$AppliedFunction$jsint=$init$AppliedFunction$jsint;$init$AppliedFunction$jsint();function AppliedInterface$jsint(tipo,$$targs$$,that,myTargs) {
if (!$$targs$$.Type$AppliedInterface)$$targs$$.Type$AppliedInterface=$$targs$$.Type$Interface;
$init$AppliedInterface$jsint();
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedIface1(x){
that.tipo=function(){return tipo.apply(x,arguments);};
that.$bound=x;
return that;
}
that.tipo$2=tipo;
var dummy = new AppliedInterface$jsint.$$;
that.getClassOrInterface=dummy.getClassOrInterface;
that.getDeclaredClassOrInterface=dummy.getDeclaredClassOrInterface;
that.typeOf=dummy.typeOf;
that.supertypeOf=dummy.supertypeOf;
that.exactly=dummy.exactly;
that.getClasses=dummy.getClasses;
that.getDeclaredClasses=dummy.getDeclaredClasses;
that.getClass=dummy.getClass;
that.getDeclaredClass=dummy.getDeclaredClass;
that.getInterfaces=dummy.getInterfaces;
that.getDeclaredInterfaces=dummy.getDeclaredInterfaces;
that.getInterface=dummy.getInterface;
that.getDeclaredInterface=dummy.getDeclaredInterface;
that.getAttributes=dummy.getAttributes;
that.getDeclaredAttributes=dummy.getDeclaredAttributes;
that.getAttribute=dummy.getAttribute;
that.getDeclaredAttribute=dummy.getDeclaredAttribute;
that.getMethods=dummy.getMethods;
that.getDeclaredMethods=dummy.getDeclaredMethods;
that.getMethod=dummy.getMethod;
that.getDeclaredMethod=dummy.getDeclaredMethod;
that.equals=dummy.equals;
that.$$=AppliedInterface$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
atr$(that,'string',function(){return coistr$(that); },undefined,dummy.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,dummy.$prop$getHash.$crtmm$);
atr$(that,'declaration',function(){return coimoddcl$(that);},undefined,dummy.$prop$getDeclaration.$crtmm$);
atr$(that,'container',function(){return coicont$(that); },undefined,dummy.$prop$getContainer.$crtmm$);
atr$(that,'typeArguments',function(){return coitarg$(that);},undefined,dummy.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){return coitargl$(that);},undefined,dummy.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){return coitargv$(that);},undefined,dummy.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){return coitargvl$(that);},undefined,dummy.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'extendedType',function(){return coiexttype$(that); },undefined,dummy.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){return coisattype$(that); },undefined,dummy.$prop$getSatisfiedTypes.$crtmm$);
atr$(that,'caseValues',function(){return coicase$(that); },undefined,dummy.$prop$getCaseValues.$crtmm$);
} else {
that=new AppliedInterface$jsint.$$;
}
}
Interface$meta$model({Type$Interface:$$targs$$.Type$AppliedInterface},that);
set_type_args(that,$$targs$$,AppliedInterface$jsint);
that.$targs=myTargs;
that.tipo=tipo;
return that;
}
AppliedInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedInterface:{dv:'out',sts:[{t:$_Object}]}},sts:[{t:Interface$meta$model,a:{Type$Interface:'Type$AppliedInterface'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface']};};
ex$.AppliedInterface$jsint=AppliedInterface$jsint;function $init$AppliedInterface$jsint(){if(AppliedInterface$jsint.$$===undefined){initTypeProto(AppliedInterface$jsint,'ceylon.language.jsint::AppliedInterface',Basic,$init$Interface$meta$model());
(function(appliedInterface$){atr$(appliedInterface$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','string']};});atr$(appliedInterface$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','hash']};});atr$(appliedInterface$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','declaration']};});atr$(appliedInterface$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','container']};});appliedInterface$.equals=function(o) {
var eq=is$(o,{t:AppliedInterface$jsint}) && (o.tipo$2||o.tipo)==this.tipo;
if (this.$bound)eq=eq && o.$bound && o.$bound.equals(this.$bound);else eq=eq && o.$bound===undefined;
return eq && this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances);
}
appliedInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','equals']};};atr$(appliedInterface$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArguments']};});atr$(appliedInterface$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArgumentList']};});atr$(appliedInterface$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArgumentWithVariances']};});atr$(appliedInterface$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArgumentWithVarianceList']};});atr$(appliedInterface$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','extendedType']};});atr$(appliedInterface$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','satisfiedTypes']};});appliedInterface$.getClassOrInterface=function(name,types,mptypes) {
return coigetcoi$(this,name,types,mptypes);
}
appliedInterface$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getClassOrInterface']};};appliedInterface$.typeOf=function(i){return coiTypeOf(this,i);}
appliedInterface$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','typeOf']};};appliedInterface$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf;
appliedInterface$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','supertypeOf']};};appliedInterface$.exactly=function(t){return t.tipo && this.tipo === t.tipo;}
appliedInterface$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','exactly']};};appliedInterface$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedInterface$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getClasses']};};appliedInterface$.getDeclaredClasses=function(a,m){
return coiclasse$(this,anntypes,{Container$getClasses:m.Container$getDeclaredClasses,
Type$getClasses:m.Type$getDeclaredClasses,Arguments$getClasses:m.Arguments$getDeclaredClasses},1);
}
appliedInterface$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredClasses']};};appliedInterface$.getClass=function(a,b,m){return coicla$(this,a,b,m.Container$getClass);}
appliedInterface$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getClass']};};appliedInterface$.getDeclaredClass=function(a,b,m){return coicla$(this,a,b,m.Container$getDeclaredClass,1);}
appliedInterface$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredClass']};};appliedInterface$.getInterfaces=function(a,b){return coiifc$(this,a,b);}
appliedInterface$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getInterfaces']};};appliedInterface$.getDeclaredInterfaces=function(a,$$$mptypes){
return coigetifc$(this,a,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedInterface$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredInterfaces']};};appliedInterface$.getInterface=function(a,b,m){return coiifc$(this,a,b,m.Container$getInterface);}
appliedInterface$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getInterface']};};appliedInterface$.getDeclaredInterface=function(name,types,m){
return coiifc$(this,name,types,m.Container$getDeclaredInterface,1);
}
appliedInterface$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredInterface']};};appliedInterface$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedInterface$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getAttributes']};};appliedInterface$.getDeclaredAttributes=function(a,m){
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedInterface$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredAttributes']};};appliedInterface$.getAttribute=function(a,m){return coiatr$(this,a,m);}
appliedInterface$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedInterface$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getAttribute']};};appliedInterface$.getDeclaredAttribute=function(a,m){
return coiatr$(this,a,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedInterface$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredAttribute']};};appliedInterface$.getMethods=function(a,b){return coigetmtd$(this,a,b);}
appliedInterface$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getMethods']};};appliedInterface$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedInterface$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredMethods']};};appliedInterface$.getMethod=function(a,b,c){return coimtd$(this,a,b,c);}
appliedInterface$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getMethod']};};appliedInterface$.getDeclaredMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedInterface$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredMethod']};};appliedInterface$.getDeclaredClassOrInterface=function(name,types,m){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:m.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:m.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:m.Container$getDeclaredClassOrInterface},1);
}
appliedInterface$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredClassOrInterface']};};atr$(appliedInterface$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedInterface'}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','caseValues']};});appliedInterface$.union=function(t,$mpt){return coiut$(this,t,$mpt.Other$union);}
appliedInterface$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedInterface','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedInterface$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','union']};};appliedInterface$.intersection=function(t,$mpt){return coiit$(this,t,$mpt.Other$intersection);}
appliedInterface$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedInterface','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedInterface$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','intersection']};};})(AppliedInterface$jsint.$$.prototype);}
return AppliedInterface$jsint;}
ex$.$init$AppliedInterface$jsint=$init$AppliedInterface$jsint;$init$AppliedInterface$jsint();function AppliedIntersectionType$jsint(tipo,satisfiedTypes,$$targs$$,appliedIntersectionType$){$init$AppliedIntersectionType$jsint();
if(appliedIntersectionType$===undefined)appliedIntersectionType$=new AppliedIntersectionType$jsint.$$;
set_type_args(appliedIntersectionType$,$$targs$$);
appliedIntersectionType$.tipo_=tipo;appliedIntersectionType$.satisfiedTypes_=satisfiedTypes;IntersectionType$meta$model({Intersection$IntersectionType:$$targs$$.Union$AppliedIntersectionType},appliedIntersectionType$);return appliedIntersectionType$;}
AppliedIntersectionType$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'tipo',mt:'prm',$t:{t:Anything},pa:1},{nm:'satisfiedTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedIntersectionType'}}}},pa:3}],tp:{Union$AppliedIntersectionType:{dv:'out',def:{t:Anything}}},sts:[{t:IntersectionType$meta$model,a:{Intersection$IntersectionType:'Union$AppliedIntersectionType'}}],an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType']};};
ex$.AppliedIntersectionType$jsint=AppliedIntersectionType$jsint;function $init$AppliedIntersectionType$jsint(){if(AppliedIntersectionType$jsint.$$===undefined){initTypeProto(AppliedIntersectionType$jsint,'ceylon.language.jsint::AppliedIntersectionType',Basic,$init$IntersectionType$meta$model());
(function(appliedIntersectionType$){atr$(appliedIntersectionType$,'tipo',function(){return this.tipo_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:AppliedIntersectionType$jsint,pa:1,d:['ceylon.language.jsint','AppliedIntersectionType','$at','tipo']};});atr$(appliedIntersectionType$,'satisfiedTypes',function(){return this.satisfiedTypes_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedIntersectionType'}}}},$cont:AppliedIntersectionType$jsint,pa:3,d:['ceylon.language.jsint','AppliedIntersectionType','$at','satisfiedTypes']};});appliedIntersectionType$.typeOf=function typeOf(instance$23){
var tipos=[];
for (var i=0; i < this.satisfiedTypes.size;i++) {
var _t = this.satisfiedTypes.$_get(i);
if (_t.tipo) {
_t={t:_t.tipo};
} else if (_t.t===undefined) {
_t={t:_t};
}
tipos.push(_t);
}
return is$(instance$23,{t:'i',l:tipos});
}
appliedIntersectionType$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','typeOf']};};appliedIntersectionType$.supertypeOf=function supertypeOf(t){
for (var i=0; i<this.satisfiedTypes.size; i++) {
if (!this.satisfiedTypes.$_get(i).supertypeOf(t))return false;
}
return true;
}
appliedIntersectionType$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','supertypeOf']};};appliedIntersectionType$.exactly=function exactly(type$25){
if (is$(type$25, {t:AppliedIntersectionType$jsint})) {
for (var i=0; i<this.satisfiedTypes.size;i++) {
var myt = this.satisfiedTypes.$_get(i);;
var was=false;
for (var j=0; j<type$25.satisfiedTypes.size;j++) {
was |= myt.exactly(type$25.satisfiedTypes.$_get(j));
}
if (!was)return false;
}
//Now the other way around
for (var i=0; i<type$25.satisfiedTypes.size;i++) {
var myt = type$25.satisfiedTypes.$_get(i);
var was=false;
for (var j=0; j<this.satisfiedTypes.size;j++) {
was |= myt.exactly(this.satisfiedTypes.$_get(j));
}
if (!was)return false;
}
return true;
}
return false;
}
appliedIntersectionType$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','exactly']};};atr$(appliedIntersectionType$,'string',function(){var qn="";
var first=true;
for (var i=0;i<this.satisfiedTypes.size;i++) {
if (first)first=false;else qn+="&";
qn+=this.satisfiedTypes.$_get(i).string;
}
return qn;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$at','string']};});atr$(appliedIntersectionType$,'hash',function(){var h=this.satisfiedTypes.size;
for (var i=0; i<this.satisfiedTypes.size;i++) {
h+=this.satisfiedTypes.$_get(i).hash;
}
return h;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$at','hash']};});appliedIntersectionType$.equals=function(u) {
if(is$(u,{t:AppliedIntersectionType$jsint})) {
var mine=this.satisfiedTypes;
var his=u.satisfiedTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i)))return false;
}
return true;
}
}
return false;
}
appliedIntersectionType$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','equals']};};appliedIntersectionType$.union=function(t,$mpt){
var ut={t:'u',l:[this.tipo,t.$$targs$$.Target$Type]};
return AppliedUnionType$jsint(ut,$arr$([this,t],ut,1),{Union$AppliedUnionType:ut});
}
appliedIntersectionType$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Union$AppliedIntersectionType','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedIntersectionType$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','union']};};appliedIntersectionType$.intersection=function(t,$mpt){
if (t.supertypeOf(this))return this;
var _t={t:'i',l:this.tipo.l.slice(0)};
_t.l.push(t.$$targs$$.Target$Type);
return AppliedIntersectionType$jsint(_t,this.satisfiedTypes.sequence().withTrailing(t,{Other$withTrailing:t.$$targs$$.Target$Type}),
{Union$AppliedIntersectionType:_t});
}
appliedIntersectionType$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Union$AppliedIntersectionType','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedIntersectionType$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','intersection']};};})(AppliedIntersectionType$jsint.$$.prototype);}
return AppliedIntersectionType$jsint;}
ex$.$init$AppliedIntersectionType$jsint=$init$AppliedIntersectionType$jsint;$init$AppliedIntersectionType$jsint();function AppliedMemberClass$jsint(tipo,$$targs$$,that,myTargs){
if (!$$targs$$.Type$AppliedMemberClass)$$targs$$.Type$AppliedMemberClass=$$targs$$.Type$MemberClass;
if (!$$targs$$.Arguments$AppliedMemberClass)$$targs$$.Arguments$AppliedMemberClass=$$targs$$.Arguments$MemberClass;
if (!$$targs$$.Container$AppliedMemberClass)$$targs$$.Container$AppliedMemberClass=$$targs$$.Container$MemberClass;
$init$AppliedMemberClass$jsint();
if (that===undefined) {
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedMemClass1(x){
var rv=tipo.bind(x);
rv.$crtmm$=tipo.$crtmm$;
var nt={t:tipo};
if (x.$$targs$$) {
nt.a={};
for (var nta in x.$$targs$$)nt.a[nta]=x.$$targs$$[nta];
}
if (that.$targs) {
if (!nt.a)nt.a={};
for (var nta in that.$targs)nt.a[nta]=that.$targs[nta];
}
rv=AppliedClass$jsint(rv,{Type$AppliedClass:nt,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything},Absent$Iterable:{t:Null}}}});//TODO generate metamodel for Arguments
if (nt.a)rv.$targs=nt.a;
rv.$bound=x;
return rv;
}
} else {
throw IncompatibleTypeException$meta$model("Invalid metamodel data for MemberClass");
}
}
AppliedClass$jsint(tipo,{Type$AppliedClass:$$targs$$.Type$AppliedMemberClass,Arguments$AppliedClass:$$targs$$.Arguments$AppliedMemberClass},that);
var dummy = new AppliedMemberClass$jsint.$$;
that.$$=AppliedMemberClass$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
var _proto=AppliedMemberClass$jsint.$$.prototype;
that.$targs=myTargs;
atr$(that,'extendedType',function(){
return coiexttype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){
return coisattype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'caseValues',function(){
return coicase$(that);
},undefined,_proto.$prop$getCaseValues.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(that,'typeArguments',function(){
return coitarg$(that);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return coitargl$(that);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return coitargv$(that);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return coitargvl$(that);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'defaultConstructor',function(){
return _proto.$prop$getDefaultConstructor.get.call(that);
},undefined,_proto.$prop$getDefaultConstructor.$crtmm$);
that.$_bind=_proto.$_bind;
that.equals=_proto.equals;
that.getAttribute=_proto.getAttribute;
that.getAttributes=_proto.getAttributes;
that.getClass=_proto.getClass;
that.getClassOrInterface=_proto.getClassOrInterface;
that.getClasses=_proto.getClasses;
that.getDeclaredAttribute=_proto.getDeclaredAttribute;
that.getDeclaredAttributes=_proto.getDeclaredAttributes;
that.getDeclaredClass=_proto.getDeclaredClass;
that.getDeclaredClassOrInterface=_proto.getDeclaredClassOrInterface;
that.getDeclaredClasses=_proto.getDeclaredClasses;
that.getDeclaredInterface=_proto.getDeclaredInterface;
that.getDeclaredInterfaces=_proto.getDeclaredInterfaces;
that.getDeclaredMethod=_proto.getDeclaredMethod;
that.getDeclaredMethods=_proto.getDeclaredMethods;
that.getInterface=_proto.getInterface;
that.getInterfaces=_proto.getInterfaces;
that.getConstructor=_proto.getConstructor;
that.getCallableConstructors=_proto.getCallableConstructors;
that.getDeclaredCallableConstructors=_proto.getDeclaredCallableConstructors;
that.getDeclaredConstructor=_proto.getDeclaredConstructor;
that.getDeclaredValueConstructors=_proto.getDeclaredValueConstructors;
that.getValueConstructors=_proto.getValueConstructors;
that.getMethod=_proto.getMethod;
that.getMethods=_proto.getMethods;
that.typeOf=_proto.typeOf;
that.supertypeOf=_proto.supertypeOf;
that.union=_proto.union;
that.intersection=_proto.intersection;
that.exactly=_proto.exactly;
atr$(that,'string',function(){return coistr$(that); },undefined,_proto.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,_proto.$prop$getHash.$crtmm$);
atr$(that,'container',function(){return coicont$(that); },undefined,_proto.$prop$getContainer.$crtmm$);
atr$(that,'declaringType',function(){return coicont$(that); },undefined,_proto.$prop$getDeclaringType.$crtmm$);
MemberClass$meta$model(that.$$targs$$===undefined?$$targs$$:{Arguments$MemberClass:that.$$targs$$.Arguments$AppliedMemberClass,
Type$MemberClass:that.$$targs$$.Type$AppliedMemberClass,
Container$MemberClass:that.$$targs$$.Container$AppliedMemberClass},that);
set_type_args(that,$$targs$$,AppliedMemberClass$jsint);
that.tipo=tipo;
return that;
}
AppliedMemberClass$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberClass:{dv:'in'},Type$AppliedMemberClass:{dv:'out',def:{t:Anything}},Arguments$AppliedMemberClass:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$AppliedMemberClass',Container$MemberClass:'Container$AppliedMemberClass',Type$MemberClass:'Type$AppliedMemberClass'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass']};};
ex$.AppliedMemberClass$jsint=AppliedMemberClass$jsint;function $init$AppliedMemberClass$jsint(){if(AppliedMemberClass$jsint.$$===undefined){initTypeProto(AppliedMemberClass$jsint,'ceylon.language.jsint::AppliedMemberClass',Basic,$init$MemberClass$meta$model());
(function(appliedMemberClass$){appliedMemberClass$.$_bind=function $_bind(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(this.tipo);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberClass$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$AppliedMemberClass',Arguments$Class:'Arguments$AppliedMemberClass'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','bind']};};atr$(appliedMemberClass$,'defaultConstructor',function(){if (this.$defcons$===undefined) {
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
var startingType=this.container;
while (is$(startingType,{t:Class$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var fn=mtn+'_$c$';
var cn=this.tipo[fn];
var fc=false;
if (!cn) {
var m2=get_model(mm);
if (m2 && m2.$cn===undefined) {
cn=this.tipo;
fc=true;
}
}
if (cn) {
mm=getrtmm$$(cn).ps;
var args=tupleize$params(getrtmm$$(cn).ps,this.$$targs$$.Type$AppliedMemberClass.a);
var r=AppliedMemberClassCallableConstructor$jsint(cn,
{Type$AppliedMemberClassCallableConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass,
Arguments$AppliedMemberClassCallableConstructor:args},undefined,this.$targs);
r.cont$=this;
this.$defcons$=r;
if(fc)r.fakeConstr$=true;
return r;
}
this.$defcons$=null;
}
return this.$defcons$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$AppliedMemberClass',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}}]},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','defaultConstructor']};});appliedMemberClass$.getConstructor=function(nm,$m){
var r=this.getDeclaredConstructor(nm,{Arguments$getDeclaredConstructor:$m.Arguments$getConstructor});
return r && (getrtmm$$(r.tipo).pa&1)>0 ? r : null;
}
appliedMemberClass$.getConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getConstructor',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}},{t:'u',l:[{t:Null},{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getConstructor']};};appliedMemberClass$.getDeclaredConstructor=function(nm,$m){
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
if (nm==='')nm='$c$';
var startingType=this.container;
while (is$(startingType,{t:ClassOrInterface$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var fn=mtn+"_"+nm;
var cn=this.tipo[fn];
if (cn) {
mm=getrtmm$$(cn);
if (mm.d[mm.d.length-2]==='$cn' && mm.ps!==undefined) {
var args=mm.ps?tupleize$params(mm.ps,this.$targs):empty();
return AppliedMemberClassCallableConstructor$jsint(cn,
{Type$AppliedMemberClassCallableConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass,
Arguments$AppliedMemberClassCallableConstructor:args},undefined,this.$targs);
}
}
return null;
}
appliedMemberClass$.getDeclaredConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getDeclaredConstructor',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}},{t:'u',l:[{t:Null},{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getDeclaredConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredConstructor']};};appliedMemberClass$.getDeclaredCallableConstructors=function(anntypes,$m) {
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
var startingType=this.container;
while (is$(startingType,{t:ClassOrInterface$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var pref=mtn+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedMemberClass,$m.Arguments$getDeclaredCallableConstructors);
for (var i=0;i<cs.length;i++) {
var r=AppliedMemberClassCallableConstructor$jsint(cs[i].tipo,
{Type$AppliedMemberClassCallableConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass,
Arguments$AppliedMemberClassCallableConstructor:cs[i].args},undefined,this.$targs);
r.$cont=this;
if (cs[i].fakeConstr)r.fakeConstr$=true;
cs[i]=r;
}
var targ={t:MemberClassCallableConstructor$meta$model,
a:{Type$MemberClassCallableConstructor:this.$$targs$$.Type$AppliedClass,Arguments$MemberClassCallableConstructor:{t:Nothing},
Container$MemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass}};
return cs.$sa$(targ);
}
appliedMemberClass$.getDeclaredCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getDeclaredCallableConstructors',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getDeclaredCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredCallableConstructors']};};appliedMemberClass$.getCallableConstructors=function(anntypes,$m){
return this.getDeclaredCallableConstructors(anntypes,{Arguments$getDeclaredCallableConstructors:$m.Arguments$getCallableConstructors}
).select(function(e){return (getrtmm$$(e.tipo).pa&1)>0||e.fakeConstr$;});
}
appliedMemberClass$.getCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getCallableConstructors',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getCallableConstructors']};};appliedMemberClass$.getDeclaredValueConstructors=function(anntypes){
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
var startingType=this.container;
while (is$(startingType,{t:ClassOrInterface$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var pref=mtn+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedMemberClass);
for (var i=0;i<cs.length;i++) {
var r=AppliedMemberClassValueConstructor$jsint(cs[i].tipo,
{Type$AppliedMemberClassValueConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassValueConstructor:this.$$targs$$.Container$AppliedMemberClass});
r.$cont=this;
cs[i]=r;
}
return cs.$sa$({t:MemberClassValueConstructor$meta$model,
a:{Type$MemberClassValueConstructor:this.$$targs$$.Type$AppliedClass,
Container$MemberClassValueConstructor:this.$$targs$$.Container$AppliedMemberClass}});
}
appliedMemberClass$.getDeclaredValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredValueConstructors']};};appliedMemberClass$.getValueConstructors=function(anntypes){
return this.getDeclaredValueConstructors(anntypes)
.select(function(e){return (getrtmm$$(e.tipo).pa&1)>0;});
}
appliedMemberClass$.getValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getValueConstructors']};};atr$(appliedMemberClass$,'declaringType',function(){if (this.declaringType$===undefined) {
this.declaringType$=coicont$(this);
}
return this.declaringType$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','declaringType']};});atr$(appliedMemberClass$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','declaration']};});atr$(appliedMemberClass$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArguments']};});atr$(appliedMemberClass$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArgumentList']};});atr$(appliedMemberClass$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArgumentWithVariances']};});atr$(appliedMemberClass$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArgumentWithVarianceList']};});atr$(appliedMemberClass$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','extendedType']};});atr$(appliedMemberClass$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','satisfiedTypes']};});appliedMemberClass$.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);}
appliedMemberClass$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getClassOrInterface']};};appliedMemberClass$.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf
appliedMemberClass$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','typeOf']};};appliedMemberClass$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf
appliedMemberClass$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','supertypeOf']};};appliedMemberClass$.exactly=ClassOrInterface$meta$model.$$.prototype.exactly
appliedMemberClass$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','exactly']};};atr$(appliedMemberClass$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','container']};});appliedMemberClass$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedMemberClass$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getClasses']};};appliedMemberClass$.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
appliedMemberClass$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredClasses']};};appliedMemberClass$.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);}
appliedMemberClass$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getClass']};};appliedMemberClass$.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);}
appliedMemberClass$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredClass']};};appliedMemberClass$.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
appliedMemberClass$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getInterfaces']};};appliedMemberClass$.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedMemberClass$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredInterfaces']};};appliedMemberClass$.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);}
appliedMemberClass$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getInterface']};};appliedMemberClass$.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
}
appliedMemberClass$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredInterface']};};appliedMemberClass$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedMemberClass$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getAttributes']};};appliedMemberClass$.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedMemberClass$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredAttributes']};};appliedMemberClass$.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
appliedMemberClass$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getAttribute']};};appliedMemberClass$.getDeclaredAttribute=function getDeclaredAttribute(name,$$$mptypes){
return coiatr$(this,name,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedMemberClass$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredAttribute']};};appliedMemberClass$.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);}
appliedMemberClass$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getMethods']};};appliedMemberClass$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedMemberClass$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredMethods']};};appliedMemberClass$.getMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,$$$mptypes);
}
appliedMemberClass$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getMethod']};};appliedMemberClass$.getDeclaredMethod=function(name,types,$$$mptypes) {
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedMemberClass$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredMethod']};};appliedMemberClass$.getDeclaredClassOrInterface=function(name,types,$$$mptypes){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:$$$mptypes.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:$$$mptypes.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:$$$mptypes.Container$getDeclaredClassOrInterface},1);
}
appliedMemberClass$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredClassOrInterface']};};atr$(appliedMemberClass$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedMemberClass'}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','caseValues']};});appliedMemberClass$.union=function(t,$mpt){
return coiut$(this,t,$mpt.Other$union);
}
appliedMemberClass$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedMemberClass','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedMemberClass$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','union']};};appliedMemberClass$.intersection=function(t,$mpt){
return coiit$(this,t,$mpt.Other$intersection);
}
appliedMemberClass$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedMemberClass','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedMemberClass$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','intersection']};};atr$(appliedMemberClass$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','string']};});atr$(appliedMemberClass$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','hash']};});appliedMemberClass$.equals=function(o){
if (is$(o,{t:AppliedMemberClass$jsint}) && o.tipo===this.tipo) {
var eq;
if (this.$bound) {
eq= o.$bound && o.$bound.equals(this.$bound);
} else {
eq= o.$bound===undefined;
}
if (eq && this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances)) {
if (this.container.tipo===o.container.tipo) {
//This will check for type arguments etc
return this.container.equals(o.container);
} else {
//Can't compare different parent types
return true;
}
}
}
return false;
}
appliedMemberClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','equals']};};})(AppliedMemberClass$jsint.$$.prototype);}
return AppliedMemberClass$jsint;}
ex$.$init$AppliedMemberClass$jsint=$init$AppliedMemberClass$jsint;$init$AppliedMemberClass$jsint();function AppliedMemberClassCallableConstructor$jsint(tipo,$$targs$$,that,myTargs) {
if ($$targs$$.Type$AppliedMemberClassCallableConstructor===undefined)$$targs$$.Type$AppliedMemberClassCallableConstructor=$$targs$$.Type$MemberClassCallableConstructor;
if ($$targs$$.Container$AppliedMemberClassCallableConstructor===undefined)$$targs$$.Container$AppliedMemberClassCallableConstructor=$$targs$$.Container$MemberClassCallableConstructor;
if ($$targs$$.Arguments$AppliedMemberClassCallableConstructor===undefined)$$targs$$.Arguments$AppliedMemberClassCallableConstructor=$$targs$$.Arguments$MemberClassCallableConstructor;
$init$AppliedMemberClassCallableConstructor$jsint();
if (that===undefined){
var mm = getrtmm$$(tipo);
that=function AppliedMemConstr1(x){
var rv=tipo.bind(x);
rv.$crtmm$=tipo.$crtmm$;
var nt={t:tipo};
if (x.$$targs$$) {
nt.a={};
for (var nta in x.$$targs$$)nt.a[nta]=x.$$targs$$[nta];
}
if (that.$targs) {
if (!nt.a)nt.a={};
for (var nta in that.$targs)nt.a[nta]=that.$targs[nta];
}
rv=AppliedCallableConstructor$jsint(rv,{Type$AppliedCallableConstructor:nt,Arguments$AppliedCallableConstructor:{t:Sequential,a:{Element$Iterable:{t:Anything},Absent$Iterable:{t:Null}}}});//TODO generate metamodel for Arguments
if (nt.a)rv.$targs=nt.a;
rv.$bound=x;
return rv;
}
var dummy=new AppliedMemberClassCallableConstructor$jsint.$$;
that.$$=AppliedMemberClassCallableConstructor$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=AppliedMemberClassCallableConstructor$jsint.$$.prototype.equals;
that.$_bind=AppliedMemberClassCallableConstructor$jsint.$$.prototype.$_bind;
atr$(that,'declaration',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.$crtmm$);
atr$(that,'container',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getContainer.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getContainer.$crtmm$);
atr$(that,'type',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getType.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getType.$crtmm$);
atr$(that,'typeArguments',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'parameterTypes',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(that,'string',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getString.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getString.$crtmm$);
}
MemberClassCallableConstructor$meta$model({Type$MemberClassCallableConstructor:$$targs$$.Type$AppliedMemberClassCallableConstructor,
Arguments$MemberClassCallableConstructor:$$targs$$.Arguments$AppliedMemberClassCallableConstructor,
Container$MemberClassCallableConstructor:$$targs$$.Container$AppliedMemberClassCallableConstructor},that);
set_type_args(that,$$targs$$,AppliedMemberClassCallableConstructor$jsint);
that.$targs=myTargs;
that.tipo=tipo;
return that;
}
AppliedMemberClassCallableConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberClassCallableConstructor:{dv:'in',def:{t:Nothing}},Type$AppliedMemberClassCallableConstructor:{dv:'out',def:{t:$_Object}},Arguments$AppliedMemberClassCallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClassCallableConstructor',Arguments$MemberClassCallableConstructor:'Arguments$AppliedMemberClassCallableConstructor',Container$MemberClassCallableConstructor:'Container$AppliedMemberClassCallableConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor']};};
ex$.AppliedMemberClassCallableConstructor$jsint=AppliedMemberClassCallableConstructor$jsint;function $init$AppliedMemberClassCallableConstructor$jsint(){if(AppliedMemberClassCallableConstructor$jsint.$$===undefined){initTypeProto(AppliedMemberClassCallableConstructor$jsint,'ceylon.language.jsint::AppliedMemberClassCallableConstructor',Basic,$init$MemberClassCallableConstructor$meta$model());
(function(appliedMemberClassCallableConstructor$){atr$(appliedMemberClassCallableConstructor$,'declaration',function(){if (this.dec$===undefined) {
this.dec$=OpenCallableConstructor$jsint(lmp$(ex$,getrtmm$$(this.tipo).d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','declaration']};});atr$(appliedMemberClassCallableConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=this.fakeConstr$?this.tipo:getrtmm$$(this.tipo).$cont;
this.cont$=AppliedMemberClass$jsint(cc,{Type$AppliedMemberClass:this.$$targs$$.Type$AppliedMemberClassCallableConstructor,
Container$AppliedMemberClass:this.$$targs$$.Container$AppliedMemberClassCallableConstructor,
Arguments$AppliedMemberClass:{t:Nothing}},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$AppliedMemberClassCallableConstructor',Type$MemberClass:'Type$AppliedMemberClassCallableConstructor'}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','type']};});atr$(appliedMemberClassCallableConstructor$,'container',function(){return this.fakeConstr$?this.type:this.type.container;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedMemberClassCallableConstructor'}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','container']};});appliedMemberClassCallableConstructor$.$_bind=function(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information)");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(getrtmm$$(this.tipo).$cont);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberClassCallableConstructor$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$AppliedMemberClassCallableConstructor',Type$CallableConstructor:'Type$AppliedMemberClassCallableConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$m','bind']};};atr$(appliedMemberClassCallableConstructor$,'typeArguments',function(){return this.type.typeArguments;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArguments']};});atr$(appliedMemberClassCallableConstructor$,'typeArgumentList',function(){return this.type.typeArgumentList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArgumentList']};});atr$(appliedMemberClassCallableConstructor$,'typeArgumentWithVariances',function(){return this.type.typeArgumentWithVariances;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArgumentWithVariances']};});atr$(appliedMemberClassCallableConstructor$,'typeArgumentWithVarianceList',function(){return this.type.typeArgumentWithVarianceList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArgumentWithVarianceList']};});atr$(appliedMemberClassCallableConstructor$,'parameterTypes',function(){if (this.ptypes$===undefined) {
this.ptypes$=clsparamtypes(this);
}
return this.ptypes$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','parameterTypes']};});atr$(appliedMemberClassCallableConstructor$,'string',function(){return qname$(getrtmm$$(this.tipo));
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','string']};});appliedMemberClassCallableConstructor$.equals=function equals(o) {
if (is$(o,{t:AppliedMemberClassCallableConstructor$jsint}) && this.tipo===o.tipo) {
return this.container.equals(o.container) && this.typeArguments.equals(o.typeArguments);
}
return false;
}
appliedMemberClassCallableConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$m','equals']};};})(AppliedMemberClassCallableConstructor$jsint.$$.prototype);}
return AppliedMemberClassCallableConstructor$jsint;}
ex$.$init$AppliedMemberClassCallableConstructor$jsint=$init$AppliedMemberClassCallableConstructor$jsint;$init$AppliedMemberClassCallableConstructor$jsint();function AppliedMemberClassValueConstructor$jsint(tipo,$$targs$$,that) {
if (!$$targs$$.Type$AppliedMemberClassValueConstructor)$$targs$$.Type$AppliedValueConstructor=$$targs$$.Type$MemberClassValueConstructor;
if (!$$targs$$.Container$AppliedMemberClassValueConstructor)$$targs$$.Container$AppliedValueConstructor=$$targs$$.Container$MemberClassValueConstructor;
$init$AppliedMemberClassValueConstructor$jsint();
if (that===undefined)that=new AppliedMemberClassValueConstructor$jsint.$$;
set_type_args(that,$$targs$$);
MemberClassValueConstructor$meta$model(
{Type$MemberClassValueConstructor:$$targs$$.Type$AppliedMemberClassValueConstructor,
Container$MemberClassValueConstructor:$$targs$$.Container$AppliedMemberClassValueConstructor},that);
that.tipo=tipo;
return that;
}
AppliedMemberClassValueConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberClassValueConstructor:{dv:'in',def:{t:Nothing}},Type$AppliedMemberClassValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClassValueConstructor',Type$MemberClassValueConstructor:'Type$AppliedMemberClassValueConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor']};};
ex$.AppliedMemberClassValueConstructor$jsint=AppliedMemberClassValueConstructor$jsint;function $init$AppliedMemberClassValueConstructor$jsint(){if(AppliedMemberClassValueConstructor$jsint.$$===undefined){initTypeProto(AppliedMemberClassValueConstructor$jsint,'ceylon.language.jsint::AppliedMemberClassValueConstructor',Basic,$init$MemberClassValueConstructor$meta$model());
(function(appliedMemberClassValueConstructor$){atr$(appliedMemberClassValueConstructor$,'declaration',function(){if (this.dec$===undefined) {
var mm=getrtmm$$(this.tipo);
var m2=typeof(mm.mod)==='function'?mm.mod():mm.mod;
this.dec$=OpenValueConstructor$jsint(fmp$(m2['$mod-name'],m2['$mod-version'],mm.d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','declaration']};});atr$(appliedMemberClassValueConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.tipo).$cont;
var mm=getrtmm$$(cc);
var _t={t:cc};
if (this.$targs)_t.a=this.$targs;
this.cont$=AppliedMemberClass$jsint(cc,{Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:{t:Nothing},
Container$AppliedMemberClass:this.$$targs$$.Container$AppliedMemberClassValueConstructor},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$AppliedMemberClassValueConstructor',Type$MemberClass:'Type$AppliedMemberClassValueConstructor'}},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','type']};});atr$(appliedMemberClassValueConstructor$,'container',function(){return this.type.container;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedMemberClassValueConstructor'}},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','container']};});appliedMemberClassValueConstructor$.$_bind=function(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information)");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(getrtmm$$(this.tipo).$cont);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberClassValueConstructor$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedMemberClassValueConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$m','bind']};};atr$(appliedMemberClassValueConstructor$,'string',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','string']};});appliedMemberClassValueConstructor$.equals=function equals(o){
if (is$(o,{t:AppliedMemberClassValueConstructor$jsint})) {
return this.tipo===o.tipo;
}
return false;
}
appliedMemberClassValueConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$m','equals']};};})(AppliedMemberClassValueConstructor$jsint.$$.prototype);}
return AppliedMemberClassValueConstructor$jsint;}
ex$.$init$AppliedMemberClassValueConstructor$jsint=$init$AppliedMemberClassValueConstructor$jsint;$init$AppliedMemberClassValueConstructor$jsint();function AppliedMemberInterface$jsint(tipo,$$targs$$,that,myTargs){
if (!$$targs$$.Type$AppliedMemberInterface)$$targs$$.Type$AppliedMemberInterface=$$targs$$.Type$MemberInterface;
if (!$$targs$$.Container$AppliedMemberInterface)$$targs$$.Container$AppliedMemberInterface=$$targs$$.Container$MemberInterface;
$init$AppliedMemberInterface$jsint();
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedMemIface1(x){
var rv=tipo.bind(x);
rv.$crtmm$=tipo.$crtmm$;
var nt={t:tipo};
if (x.$$targs$$) {
nt.a={};
for (var nta in x.$$targs$$)nt.a[nta]=x.$$targs$$[nta];
}
if (that.$targs) {
if (!nt.a)nt.a={};
for (var nta in that.$targs)nt.a[nta]=that.$targs[nta];
}
rv=AppliedInterface$jsint(rv,{Type$AppliedInterface:nt});
if (nt.a)rv.$targs=nt.a;
rv.$bound=x;
return rv;
}
that.tipo$2=tipo;
} else {
that=new AppliedMemberInterface$jsint.$$;
}
}
MemberInterface$meta$model(that.$$targs$$===undefined?$$targs$$:{Type$MemberInterface:that.$$targs$$.Type$AppliedMemberInterface,
Container$MemberInterface:that.$$targs$$.Container$AppliedMemberInterface},that);
set_type_args(that,$$targs$$,AppliedMemberInterface$jsint);
that.$targs=myTargs;
var _proto=AppliedMemberInterface$jsint.$$.prototype;
that.getMethod=_proto.getMethod;
that.getDeclaredMethod=_proto.getDeclaredMethod;
that.getAttribute=_proto.getAttribute;
that.getDeclaredAttribute=_proto.getDeclaredAttribute;
that.getClassOrInterface=_proto.getClassOrInterface;
that.getDeclaredClassOrInterface=_proto.getDeclaredClassOrInterface;
that.getClass=_proto.getClass;
that.getDeclaredClass=_proto.getDeclaredClass;
that.getInterface=_proto.getInterface;
that.getDeclaredInterface=_proto.getDeclaredInterface;
that.typeOf=_proto.typeOf;
that.supertypeOf=_proto.supertypeOf;
that.subtypeOf=_proto.subtypeOf;
that.exactly=_proto.exactly;
that.union=_proto.union;
that.intersection=_proto.intersection;
that.tipo=tipo;
var dummy = new AppliedMemberInterface$jsint.$$;
that.$$=AppliedMemberInterface$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=_proto.equals;
atr$(that,'string',function(){return coistr$(that); },undefined,$_Object.$$.prototype.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,Identifiable.$$.prototype.$prop$getHash.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(that,'typeArguments',function(){
return coitarg$(that);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return coitargl$(that);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return coitargv$(that);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return coitargvl$(that);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'container',function(){
return coicont$(that);
},undefined,_proto.$prop$getContainer.$crtmm$);
atr$(that,'declaringType',function(){return memberDeclaringType$(that);
},undefined,_proto.$prop$getDeclaringType.$crtmm$);
atr$(that,'extendedType',function(){return coiexttype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){return coisattype$(that);
},undefined,_proto.$prop$getSatisfiedTypes.$crtmm$);
atr$(that,'caseValues',function(){
return _proto.$prop$getCaseValues.get.call(that);
},undefined,_proto.$prop$getCaseValues.$crtmm$);
that.$_bind=_proto.$_bind;
return that;
}
AppliedMemberInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberInterface:{dv:'in'},Type$AppliedMemberInterface:{dv:'out',def:{t:Anything}}},sts:[{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$AppliedMemberInterface',Type$MemberInterface:'Type$AppliedMemberInterface'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface']};};
ex$.AppliedMemberInterface$jsint=AppliedMemberInterface$jsint;function $init$AppliedMemberInterface$jsint(){if(AppliedMemberInterface$jsint.$$===undefined){initTypeProto(AppliedMemberInterface$jsint,'ceylon.language.jsint::AppliedMemberInterface',Basic,$init$MemberInterface$meta$model());
(function(appliedMemberInterface$){appliedMemberInterface$.$_bind=function $_bind(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information)");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(this.tipo);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberInterface$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$AppliedMemberInterface'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','bind']};};atr$(appliedMemberInterface$,'declaringType',function(){return memberDeclaringType$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','declaringType']};});atr$(appliedMemberInterface$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','declaration']};});atr$(appliedMemberInterface$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArguments']};});atr$(appliedMemberInterface$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArgumentList']};});atr$(appliedMemberInterface$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArgumentWithVariances']};});atr$(appliedMemberInterface$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArgumentWithVarianceList']};});atr$(appliedMemberInterface$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','extendedType']};});atr$(appliedMemberInterface$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','satisfiedTypes']};});appliedMemberInterface$.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf
appliedMemberInterface$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','typeOf']};};appliedMemberInterface$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf
appliedMemberInterface$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','supertypeOf']};};appliedMemberInterface$.exactly=ClassOrInterface$meta$model.$$.prototype.exactly
appliedMemberInterface$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','exactly']};};atr$(appliedMemberInterface$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','container']};});appliedMemberInterface$.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);}
appliedMemberInterface$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getClassOrInterface']};};appliedMemberInterface$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedMemberInterface$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getClasses']};};appliedMemberInterface$.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
appliedMemberInterface$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredClasses']};};appliedMemberInterface$.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);}
appliedMemberInterface$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getClass']};};appliedMemberInterface$.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);}
appliedMemberInterface$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredClass']};};appliedMemberInterface$.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
appliedMemberInterface$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getInterfaces']};};appliedMemberInterface$.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedMemberInterface$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredInterfaces']};};appliedMemberInterface$.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);}
appliedMemberInterface$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getInterface']};};appliedMemberInterface$.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
}
appliedMemberInterface$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredInterface']};};appliedMemberInterface$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedMemberInterface$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getAttributes']};};appliedMemberInterface$.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedMemberInterface$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredAttributes']};};appliedMemberInterface$.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
appliedMemberInterface$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getAttribute']};};appliedMemberInterface$.getDeclaredAttribute=function getDeclaredAttribute(name,$$$mptypes){
return coiatr$(this,name,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedMemberInterface$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredAttribute']};};appliedMemberInterface$.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);}
appliedMemberInterface$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getMethods']};};appliedMemberInterface$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedMemberInterface$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredMethods']};};appliedMemberInterface$.getMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,$$$mptypes);
}
appliedMemberInterface$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getMethod']};};appliedMemberInterface$.getDeclaredMethod=function(name,types,$$$mptypes) {
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedMemberInterface$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredMethod']};};appliedMemberInterface$.getDeclaredClassOrInterface=function(name,types,$$$mptypes){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:$$$mptypes.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:$$$mptypes.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:$$$mptypes.Container$getDeclaredClassOrInterface},1);
}
appliedMemberInterface$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredClassOrInterface']};};atr$(appliedMemberInterface$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedMemberInterface'}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','caseValues']};});appliedMemberInterface$.union=function(t,$mpt){
return coiut$(this,t,$mpt.Other$union);
}
appliedMemberInterface$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedMemberInterface','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedMemberInterface$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','union']};};appliedMemberInterface$.intersection=function(t,$mpt){
return coiit$(this,t,$mpt.Other$intersection);
}
appliedMemberInterface$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedMemberInterface','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedMemberInterface$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','intersection']};};atr$(appliedMemberInterface$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','string']};});atr$(appliedMemberInterface$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','hash']};});appliedMemberInterface$.equals=function(o){
var eq=is$(o,{t:AppliedMemberInterface$jsint}) && (o.tipo$2||o.tipo)==this.tipo;
if (this.$bound)eq=eq && o.$bound && o.$bound.equals(this.$bound);else eq=eq && o.$bound===undefined;
return eq && this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances);
}
appliedMemberInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','equals']};};})(AppliedMemberInterface$jsint.$$.prototype);}
return AppliedMemberInterface$jsint;}
ex$.$init$AppliedMemberInterface$jsint=$init$AppliedMemberInterface$jsint;$init$AppliedMemberInterface$jsint();function AppliedMethod$jsint(tipo,typeArgs,$$targs$$,$$appliedMethod){
if (!$$targs$$.Type$AppliedMethod)$$targs$$.Type$AppliedMethod=$$targs$$.Type$Method;
if (!$$targs$$.Arguments$AppliedMethod)$$targs$$.Arguments$AppliedMethod=$$targs$$.Arguments$Method;
if (!$$targs$$.Container$AppliedMethod)$$targs$$.Container$AppliedMethod=$$targs$$.Container$Method;
$init$AppliedMethod$jsint();
var mm = getrtmm$$(tipo);
if (mm.tp) {
if (typeArgs===undefined || typeArgs.length<1) {
throw TypeApplicationException$meta$model("Missing type arguments in call to FunctionDeclaration.apply");
}
var _ta={}; var i=0;
for (var tp in mm.tp) {
if (typeArgs[i]===undefined)
throw TypeApplicationException$meta$model("Missing type argument for "+tp);
var _tp = mm.tp[tp];
var _t = typeArgs[i].tipo;
_ta[tp]={t:_t};
if (_tp.sts) {
//Must satisty all specified types
if (!extendsType(_ta[tp],{t:'i',l:_tp.sts})){
throw TypeApplicationException$meta$model("Type argument for " + mm.d[mm.d.length-1] + "." + tp.substring(0,tp.indexOf('$')) + " violates type parameter constraints (satisfied)");
}
} else if (_tp.of) {
//Must be one of these
if (!extendsType(_ta[tp],{t:'u',l:_tp.of})){
throw TypeApplicationException$meta$model("Type argument for " + mm.d[mm.d.length-1] + "." + tp.substring(0,tp.indexOf('$')) + " violates type parameter constraints (enumerated)");
}
}
i++;
}
}
if ($$appliedMethod===undefined){
$$appliedMethod=function AppliedMtd1(x){
return AppliedFunction$jsint(tipo,{Type$Function:$$targs$$.Type$Method,Arguments$Function:$$targs$$.Arguments$Method,
Container$Function:$$targs$$.Container$Method},x,typeArgs);
}
var dummy=new AppliedMethod$jsint.$$;
$$appliedMethod.getT$all=function(){return dummy.getT$all();};
$$appliedMethod.getT$name=function(){return dummy.getT$name();};
$$appliedMethod.$$=AppliedMethod$jsint.$$;
}
if (_ta)$$appliedMethod.$targs=_ta;
Method$meta$model($$appliedMethod.$$targs$$===undefined?$$targs$$:{Arguments$Method:$$appliedMethod.$$targs$$.Arguments$Method,
Type$Method:$$appliedMethod.$$targs$$.Type$Method,Container$Method:$$appliedMethod.$$targs$$.Container$Method},$$appliedMethod);
set_type_args($$appliedMethod,$$targs$$,AppliedMethod$jsint);
$$appliedMethod.tipo=tipo;
var _proto=AppliedMethod$jsint.$$.prototype;
atr$($$appliedMethod,'declaration',function(){
return _proto.$prop$getDeclaration.get.call($$appliedMethod);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$($$appliedMethod,'type',function(){
return _proto.$prop$getType.get.call($$appliedMethod);
},undefined,_proto.$prop$getType.$crtmm$);
atr$($$appliedMethod,'typeArguments',function(){
return funtypearg$($$appliedMethod);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$($$appliedMethod,'typeArgumentList',function(){
return funtypeargl$($$appliedMethod);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$($$appliedMethod,'typeArgumentWithVariances',function(){
return funtypeargv$($$appliedMethod);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$($$appliedMethod,'typeArgumentWithVarianceList',function(){
return funtypeargvl$($$appliedMethod);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$($$appliedMethod,'parameterTypes',function(){
return funparamtypes($$appliedMethod);
},undefined,_proto.$prop$getParameterTypes.$crtmm$);
$$appliedMethod.equals=_proto.equals;
$$appliedMethod.$_bind=_proto.$_bind;
atr$($$appliedMethod,'string',function(){
return funmodstr$($$appliedMethod);
},undefined,_proto.$prop$getString.$crtmm$);
atr$($$appliedMethod,'hash',function(){
return _proto.$prop$getHash.get.call($$appliedMethod);
},undefined,_proto.$prop$getHash.$crtmm$);
atr$($$appliedMethod,'declaringType',function(){
return _proto.$prop$getDeclaringType.get.call($$appliedMethod);
},undefined,_proto.$prop$getDeclaringType.$crtmm$);
atr$($$appliedMethod,'container',function(){
return _proto.$prop$getContainer.get.call($$appliedMethod);
},undefined,_proto.$prop$getContainer.$crtmm$);
return $$appliedMethod;
}
AppliedMethod$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMethod:{dv:'in'},Type$AppliedMethod:{dv:'out',def:{t:Anything}},Arguments$AppliedMethod:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Method$meta$model,a:{Container$Method:'Container$AppliedMethod',Arguments$Method:'Arguments$AppliedMethod',Type$Method:'Type$AppliedMethod'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod']};};
ex$.AppliedMethod$jsint=AppliedMethod$jsint;function $init$AppliedMethod$jsint(){if(AppliedMethod$jsint.$$===undefined){initTypeProto(AppliedMethod$jsint,'ceylon.language.jsint::AppliedMethod',Basic,$init$Method$meta$model());
(function(appliedMethod$){atr$(appliedMethod$,'parameterTypes',function(){return funparamtypes(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','parameterTypes']};});appliedMethod$.$_bind=function(o){
var mm=getrtmm$$(this.tipo);
if (!is$(o,{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Cannot bind " + this.string + " to "+o);
return this(o);
}
appliedMethod$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$AppliedMethod',Type$Function:'Type$AppliedMethod'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$m','bind']};};atr$(appliedMethod$,'declaration',function(){var mm = getrtmm$$(this.tipo);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _pkg = modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
return OpenFunction$jsint(_pkg, this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','declaration']};});atr$(appliedMethod$,'type',function(){var mm=getrtmm$$(this.tipo);
return typeLiteral$meta({Type$typeLiteral:restype$(this.$$targs$$.Container$Method,this.$$targs$$.Type$Method||mm.$t)});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$AppliedMethod'}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','type']};});atr$(appliedMethod$,'declaringType',function(){return Member$meta$model.$$.prototype.$prop$getDeclaringType.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','declaringType']};});atr$(appliedMethod$,'container',function(){if (this.cont$===undefined) {
if (this.toplevel || getrtmm$$(this.tipo).$cont===0){
this.cont$=this.containingPackage;
} else if (this.$parent===undefined) {
this.$parent=typeLiteral$meta({Type$typeLiteral:{t:getrtmm$$(this.tipo).$cont}});
this.cont$=this.$parent;
}
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','container']};});atr$(appliedMethod$,'typeArguments',function(){return funtypearg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArguments']};});atr$(appliedMethod$,'typeArgumentList',function(){return funtypeargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArgumentList']};});atr$(appliedMethod$,'typeArgumentWithVariances',function(){return funtypeargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArgumentWithVariances']};});atr$(appliedMethod$,'typeArgumentWithVarianceList',function(){return funtypeargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArgumentWithVarianceList']};});atr$(appliedMethod$,'string',function(){return funmodstr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','string']};});atr$(appliedMethod$,'hash',function(){return funmodstr$(this).hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','hash']};});appliedMethod$.equals=function(o){
return is$(o,{t:AppliedMethod$jsint}) && o.tipo===this.tipo && o.typeArguments.equals(this.typeArguments);
}
appliedMethod$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$m','equals']};};})(AppliedMethod$jsint.$$.prototype);}
return AppliedMethod$jsint;}
ex$.$init$AppliedMethod$jsint=$init$AppliedMethod$jsint;$init$AppliedMethod$jsint();function AppliedUnionType$jsint(tipo,caseTypes,$$targs$$,appliedUnionType$){$init$AppliedUnionType$jsint();
if(appliedUnionType$===undefined)appliedUnionType$=new AppliedUnionType$jsint.$$;
set_type_args(appliedUnionType$,$$targs$$);
appliedUnionType$.tipo_=tipo;appliedUnionType$.caseTypes_=caseTypes;UnionType$meta$model({Union$UnionType:$$targs$$.Union$AppliedUnionType},appliedUnionType$);return appliedUnionType$;}
AppliedUnionType$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'tipo',mt:'prm',$t:{t:Anything},pa:1},{nm:'caseTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedUnionType'}}}},pa:3}],tp:{Union$AppliedUnionType:{dv:'out',def:{t:Anything}}},sts:[{t:UnionType$meta$model,a:{Union$UnionType:'Union$AppliedUnionType'}}],an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType']};};
ex$.AppliedUnionType$jsint=AppliedUnionType$jsint;function $init$AppliedUnionType$jsint(){if(AppliedUnionType$jsint.$$===undefined){initTypeProto(AppliedUnionType$jsint,'ceylon.language.jsint::AppliedUnionType',Basic,$init$UnionType$meta$model());
(function(appliedUnionType$){atr$(appliedUnionType$,'tipo',function(){return this.tipo_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:AppliedUnionType$jsint,pa:1,d:['ceylon.language.jsint','AppliedUnionType','$at','tipo']};});atr$(appliedUnionType$,'caseTypes',function(){return this.caseTypes_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedUnionType'}}}},$cont:AppliedUnionType$jsint,pa:3,d:['ceylon.language.jsint','AppliedUnionType','$at','caseTypes']};});appliedUnionType$.typeOf=function typeOf(instance$20){
var tipos=[];
for (var i=0; i < this.caseTypes.size;i++) {
var _t = this.caseTypes.$_get(i);
if (_t.tipo) {
_t={t:_t.tipo};
} else if (_t.t===undefined) {
_t={t:_t};
}
tipos.push(_t);
}
return is$(instance$20,{t:'u',l:tipos});
}
appliedUnionType$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','typeOf']};};appliedUnionType$.supertypeOf=function(t){
for (var i=0; i<this.caseTypes.size; i++) {
if (this.caseTypes.$_get(i).supertypeOf(t))return true;
}
return false;
}
appliedUnionType$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','supertypeOf']};};appliedUnionType$.exactly=function exactly(type$22){
if (is$(type$25, {t:AppliedUnionType$jsint})) {
for (var i=0; i<this.caseTypes.size;i++) {
var myt = this.caseTypes.$_get(i);
var was=false;
for (var j=0; j<type$25.caseTypes.size;j++) {
was |= myt.exactly(type$25.caseTypes.$_get(j));
}
if (!was)return false;
}
//Now the other way around
for (var i=0; i<type$25.caseTypes.size;i++) {
var myt = type$25.caseTypes.$_get(i);
var was=false;
for (var j=0; j<this.caseTypes.size;j++) {
was |= myt.exactly(this.caseTypes.$_get(j));
}
if (!was)return false;
}
return true;
}
return false;
}
appliedUnionType$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','exactly']};};atr$(appliedUnionType$,'string',function(){var qn="";
var first=true;
for (var i=0;i<this.caseTypes.size;i++) {
if (first)first=false;else qn+="|";
qn+=this.caseTypes.$_get(i).string;
}
return qn;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$at','string']};});atr$(appliedUnionType$,'hash',function(){var h=this.caseTypes.size;
for (var i=0; i<this.caseTypes.size;i++) {
h+=this.caseTypes.$_get(i).hash;
}
return h;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$at','hash']};});appliedUnionType$.equals=function(u) {
if(is$(u,{t:AppliedUnionType$jsint})) {
var mine=this.caseTypes;
var his=u.caseTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i)))return false;
}
return true;
}
}
return false;
}
appliedUnionType$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','equals']};};appliedUnionType$.union=function(t,$mpt){
if (this.supertypeOf(t))return this;
var _t={t:'u',l:this.tipo.l.slice(0)};
_t.l.push(t.$$targs$$.Target$Type);
return AppliedUnionType$jsint(_t,this.caseTypes.sequence().withTrailing(t,{Other$withTrailing:t.$$targs$$.Target$Type}),
{Union$AppliedUnionType:_t});
}
appliedUnionType$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Union$AppliedUnionType','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedUnionType$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','union']};};appliedUnionType$.intersection=function(t,$mpt){
var it={t:'i',l:[this.tipo,t.$$targs$$.Target$Type]};
return AppliedIntersectionType$jsint(it,$arr$([this,t],it,1),{Union$AppliedIntersectionType:it});
}
appliedUnionType$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Union$AppliedUnionType','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedUnionType$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','intersection']};};})(AppliedUnionType$jsint.$$.prototype);}
return AppliedUnionType$jsint;}
ex$.$init$AppliedUnionType$jsint=$init$AppliedUnionType$jsint;$init$AppliedUnionType$jsint();function AppliedValue$jsint(obj,attr,$$targs$$,$$appliedValue){
if (attr===undefined)throw Exception("Value reference not found. Metamodel doesn't work with modules compiled in lexical scope style.");
if (!$$targs$$.Get$AppliedValue)$$targs$$.Get$AppliedValue=$$targs$$.Get$Value;
if (!$$targs$$.Set$AppliedValue)$$targs$$.Set$AppliedValue=$$targs$$.Set$Value;
if (!$$targs$$.Container$AppliedValue && $$targs$$.Container$Value)$$targs$$.Container$AppliedValue=$$targs$$.Container$Value;
var mm = getrtmm$$(attr);
$init$AppliedValue$jsint();
if ($$appliedValue===undefined){
if (obj||mm.$cont===undefined)$$appliedValue=new AppliedValue$jsint.$$;
else {
$$appliedValue=function AppliedVal1(x){return AppliedValue$jsint(x,attr,$$targs$$);};
$$appliedValue.$$=AppliedValue$jsint.$$;
var dummy=new AppliedValue$jsint.$$;
$$appliedValue.getT$all=function(){return dummy.getT$all();};
$$appliedValue.getT$name=function(){return dummy.getT$name();};
atr$($$appliedValue,'string',function(){
var qn;
if ($$targs$$ && $$targs$$.Container$AppliedValue) {
qn = typeLiteral$meta({Type$typeLiteral:$$targs$$.Container$AppliedValue}).string + "." + mm.d[mm.d.length-1];
} else if (mm.$cont) {
qn = typeLiteral$meta({Type$typeLiteral:{t:mm.$cont}}).string + "." + mm.d[mm.d.length-1];
} else {
qn=qname$(mm);
}
return qn;
},undefined,dummy.$prop$getString.$crtmm$);
}
}
Value$meta$model({Get$Value:$$targs$$.Get$AppliedValue,
Set$Value:$$targs$$.Set$AppliedValue},$$appliedValue);
if($$targs$$.Container$AppliedValue)Attribute$meta$model({Get$Attribute:$$targs$$.Get$AppliedValue,
Set$Attribute:$$targs$$.Set$AppliedValue,Container$Attribute:$$targs$$.Container$AppliedValue},$$appliedValue);//TODO checar si no es if Container$Attribute
set_type_args($$appliedValue,$$targs$$,AppliedValue$jsint);
$$appliedValue.obj=obj;
$$appliedValue.tipo=attr;
return $$appliedValue;
}
AppliedValue$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Get$AppliedValue:{dv:'out',def:{t:Anything}},Set$AppliedValue:{dv:'in',def:{t:Nothing}}},sts:[{t:Value$meta$model,a:{Get$Value:'Get$AppliedValue',Set$Value:'Set$AppliedValue'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue']};};
ex$.AppliedValue$jsint=AppliedValue$jsint;function $init$AppliedValue$jsint(){if(AppliedValue$jsint.$$===undefined){initTypeProto(AppliedValue$jsint,'ceylon.language.jsint::AppliedValue',Basic,$init$Value$meta$model());
(function(appliedValue$){appliedValue$.$_get=function(){
if (this.obj) {
var mm=this.tipo.$crtmm$;
return (mm&&mm.d&&this.obj[mm.d[mm.d.length-1]])||this.tipo.get.call(this.obj);
}
//this.tipo() is for anonymous classes that are treated as values
return this.tipo.get?this.tipo.get():this.tipo();
}
appliedValue$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'Get$AppliedValue',ps:[],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','get']};};appliedValue$.set=function(newValue$26){
if (!this.tipo.set)throw MutationException$meta$model("Value is not writable");
return this.obj?this.tipo.set.call(this.obj,newValue$26):this.tipo.set(newValue$26);
}
appliedValue$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:'Set$AppliedValue'}],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','set']};};appliedValue$.setIfAssignable=function(v) {
var mm = this.tipo.$crtmm$;
if (!is$(v,mm.$t))throw IncompatibleTypeException$meta$model("The specified value has the wrong type");
var mdl=get_model(mm);
if (!mdl || (mdl.pa & 1024)===0)throw MutationException$meta$model("Attempt to modify a value that is not variable");
this.obj?this.tipo.set.call(this.obj,v):this.tipo.set(v);
}
appliedValue$.setIfAssignable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','setIfAssignable']};};atr$(appliedValue$,'declaration',function(){var $$av=this;
var mm = $$av.tipo.$crtmm$;
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _pkg = modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
var mdl = get_model(mm);
return OpenValue$jsint(_pkg, $$av.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:AppliedValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','declaration']};});atr$(appliedValue$,'type',function(){var t = getrtmm$$(this.tipo);
return typeLiteral$meta({Type$typeLiteral:t.$t});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Get$AppliedValue'}},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','type']};});atr$(appliedValue$,'container',function(){if (this.obj) {
var mm=getrtmm$$(this.tipo);
if (mm.$cont)return type$meta(this.obj,{Type$type:{t:mm.$cont}});
}
if (this.$$targs$$.Container$Value) {
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Container$Value});
} else if (this.$$targs$$.Container$Attribute) {
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Container$Attribute});
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','container']};});atr$(appliedValue$,'string',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','string']};});atr$(appliedValue$,'hash',function(){return this.string.hash+(this.obj?this.obj.hash:0);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','hash']};});appliedValue$.equals=function(o) {
if (is$(o,{t:AppliedValue$jsint}) && this.tipo===o.tipo) {
if (this.obj)return this.obj.equals(o.obj);
if (this.container)return this.container.equals(o.container);
return true;
}
return false;
}
appliedValue$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','equals']};};})(AppliedValue$jsint.$$.prototype);}
return AppliedValue$jsint;}
ex$.$init$AppliedValue$jsint=$init$AppliedValue$jsint;$init$AppliedValue$jsint();function AppliedValueConstructor$jsint(tipo,$$targs$$,that) {
if (!$$targs$$.Type$AppliedValueConstructor)$$targs$$.Type$AppliedValueConstructor=$$targs$$.Type$ValueConstructor;
$init$AppliedValueConstructor$jsint();
if (that===undefined)that=new AppliedValueConstructor$jsint.$$;
set_type_args(that,$$targs$$);
ValueConstructor$meta$model({Type$ValueConstructor:$$targs$$.Type$AppliedValueConstructor},that);
that.tipo=tipo;
return that;
}
AppliedValueConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedValueConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor']};};
ex$.AppliedValueConstructor$jsint=AppliedValueConstructor$jsint;function $init$AppliedValueConstructor$jsint(){if(AppliedValueConstructor$jsint.$$===undefined){initTypeProto(AppliedValueConstructor$jsint,'ceylon.language.jsint::AppliedValueConstructor',Basic,$init$ValueConstructor$meta$model());
(function(appliedValueConstructor$){appliedValueConstructor$.$_get=function $_get(){
return this.tipo();
}
appliedValueConstructor$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedValueConstructor',ps:[],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','get']};};appliedValueConstructor$.set=function $_set(x){
throw MutationException("ValueConstructor is not mutable");
}
appliedValueConstructor$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Nothing}}],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','set']};};appliedValueConstructor$.setIfAssignable=function setIfAssignable(x){
throw MutationException("ValueConstructor is not mutable");
}
appliedValueConstructor$.setIfAssignable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','setIfAssignable']};};atr$(appliedValueConstructor$,'declaration',function(){if (this.dec$===undefined) {
var mm=getrtmm$$(this.tipo);
var m2=typeof(mm.mod)==='function'?mm.mod():mm.mod;
this.dec$=OpenValueConstructor$jsint(fmp$(m2['$mod-name'],m2['$mod-version'],mm.d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','declaration']};});atr$(appliedValueConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.tipo).$cont;
var mm=getrtmm$$(cc);
var _t={t:cc};
if (this.$targs)_t.a=this.$targs;
this.cont$=AppliedClass$jsint(cc,{Type$AppliedClass:_t,Arguments$AppliedClass:{t:Nothing}},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$AppliedValueConstructor',Arguments$Class:{t:Nothing}}},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','type']};});atr$(appliedValueConstructor$,'container',function(){return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Class$meta$model,a:{Type$Class:'Type$AppliedValueConstructor',Arguments$Class:{t:Nothing}}}]},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','container']};});appliedValueConstructor$.equals=function equals(o) {
if (is$(o,{t:AppliedValueConstructor$jsint})) {
return o.tipo===this.tipo;
}
return false;
}
appliedValueConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','equals']};};atr$(appliedValueConstructor$,'string',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','string']};});})(AppliedValueConstructor$jsint.$$.prototype);}
return AppliedValueConstructor$jsint;}
ex$.$init$AppliedValueConstructor$jsint=$init$AppliedValueConstructor$jsint;$init$AppliedValueConstructor$jsint();function FreeClass$jsint(declaration,freeClass$){$init$FreeClass$jsint();
if(freeClass$===undefined)freeClass$=new FreeClass$jsint.$$;
freeClass$.declaration_=declaration;OpenClassType$meta$declaration(freeClass$);return freeClass$;}
FreeClass$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'declaration',mt:'prm',$t:{t:ClassDeclaration$meta$declaration},pa:3}],sts:[{t:OpenClassType$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass']};};
ex$.FreeClass$jsint=FreeClass$jsint;function $init$FreeClass$jsint(){if(FreeClass$jsint.$$===undefined){initTypeProto(FreeClass$jsint,'ceylon.language.jsint::FreeClass',Basic,$init$OpenClassType$meta$declaration());
(function(freeClass$){atr$(freeClass$,'declaration',function(){return this.declaration_;},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:FreeClass$jsint,pa:3,d:['ceylon.language.jsint','FreeClass','$at','declaration']};});atr$(freeClass$,'extendedType',function(){return this.declaration.extendedType;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','extendedType']};});atr$(freeClass$,'satisfiedTypes',function(){return this.declaration.satisfiedTypes;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','satisfiedTypes']};});atr$(freeClass$,'typeArguments',function(){return ocoitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArguments']};});atr$(freeClass$,'typeArgumentList',function(){return ocoitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArgumentList']};});atr$(freeClass$,'typeArgumentWithVariances',function(){return ocoitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:OpenTypeArgument$meta$declaration()}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArgumentWithVariances']};});atr$(freeClass$,'typeArgumentWithVarianceList',function(){return ocoitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:OpenTypeArgument$meta$declaration()}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArgumentWithVarianceList']};});freeClass$.equals=function(other) {
return is$(other,{t:FreeClass$jsint}) &&
other.declaration.equals(this.declaration) &&
this.typeArgumentWithVariances.equals(other.typeArgumentWithVariances);
}
freeClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$m','equals']};};atr$(freeClass$,'string',function(){return ocoistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','string']};});atr$(freeClass$,'hash',function(){var freeClass$=this;return freeClass$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeClass$jsint,pa:3,d:['ceylon.language.jsint','FreeClass','$at','hash']};});})(FreeClass$jsint.$$.prototype);}
return FreeClass$jsint;}
ex$.$init$FreeClass$jsint=$init$FreeClass$jsint;$init$FreeClass$jsint();function FreeInterface$jsint(declaration,freeInterface$){$init$FreeInterface$jsint();
if(freeInterface$===undefined)freeInterface$=new FreeInterface$jsint.$$;
freeInterface$.declaration_=declaration;OpenInterfaceType$meta$declaration(freeInterface$);return freeInterface$;}
FreeInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'declaration',mt:'prm',$t:{t:InterfaceDeclaration$meta$declaration},pa:3}],sts:[{t:OpenInterfaceType$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface']};};
ex$.FreeInterface$jsint=FreeInterface$jsint;function $init$FreeInterface$jsint(){if(FreeInterface$jsint.$$===undefined){initTypeProto(FreeInterface$jsint,'ceylon.language.jsint::FreeInterface',Basic,$init$OpenInterfaceType$meta$declaration());
(function(freeInterface$){atr$(freeInterface$,'declaration',function(){return this.declaration_;},undefined,function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:FreeInterface$jsint,pa:3,d:['ceylon.language.jsint','FreeInterface','$at','declaration']};});atr$(freeInterface$,'extendedType',function(){return this.declaration.extendedType;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','extendedType']};});atr$(freeInterface$,'satisfiedTypes',function(){return this.declaration.satisfiedTypes;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','satisfiedTypes']};});atr$(freeInterface$,'typeArguments',function(){return ocoitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArguments']};});atr$(freeInterface$,'typeArgumentList',function(){return ocoitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArgumentList']};});atr$(freeInterface$,'typeArgumentWithVariances',function(){return ocoitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:OpenTypeArgument$meta$declaration()}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArgumentWithVariances']};});atr$(freeInterface$,'typeArgumentWithVarianceList',function(){return ocoitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:OpenTypeArgument$meta$declaration()}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArgumentWithVarianceList']};});freeInterface$.equals=function(other) {
return is$(other,{t:FreeInterface$jsint}) &&
other.declaration.equals(this.declaration) &&
this.typeArgumentWithVariances.equals(other.typeArgumentWithVariances);
}
freeInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$m','equals']};};atr$(freeInterface$,'string',function(){return ocoistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','string']};});atr$(freeInterface$,'hash',function(){var freeInterface$=this;return freeInterface$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeInterface$jsint,pa:3,d:['ceylon.language.jsint','FreeInterface','$at','hash']};});})(FreeInterface$jsint.$$.prototype);}
return FreeInterface$jsint;}
ex$.$init$FreeInterface$jsint=$init$FreeInterface$jsint;$init$FreeInterface$jsint();function FreeIntersection$jsint(satisfiedTypes,freeIntersection$){$init$FreeIntersection$jsint();
if(freeIntersection$===undefined)freeIntersection$=new FreeIntersection$jsint.$$;
freeIntersection$.satisfiedTypes_=satisfiedTypes;OpenIntersection$meta$declaration(freeIntersection$);return freeIntersection$;}
FreeIntersection$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'satisfiedTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},pa:3}],sts:[{t:OpenIntersection$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection']};};
ex$.FreeIntersection$jsint=FreeIntersection$jsint;function $init$FreeIntersection$jsint(){if(FreeIntersection$jsint.$$===undefined){initTypeProto(FreeIntersection$jsint,'ceylon.language.jsint::FreeIntersection',Basic,$init$OpenIntersection$meta$declaration());
(function(freeIntersection$){atr$(freeIntersection$,'satisfiedTypes',function(){return this.satisfiedTypes_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:FreeIntersection$jsint,pa:3,d:['ceylon.language.jsint','FreeIntersection','$at','satisfiedTypes']};});freeIntersection$.equals=function(u) {
if(is$(u,{t:FreeIntersection$jsint})) {
var mine=this.satisfiedTypes;
var his=u.satisfiedTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i))){
return false;
}
}
return true;
}
}
return false;
}
freeIntersection$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeIntersection$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection','$m','equals']};};atr$(freeIntersection$,'string',function(){var s="";
var first=true;
for (var i=0;i<this.satisfiedTypes.size;i++) {
if (first)first=false;else s+="&";
s+=this.satisfiedTypes.$_get(i).string;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeIntersection$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection','$at','string']};});atr$(freeIntersection$,'hash',function(){var s=this.satisfiedTypes.size;
for (var i=0;i<this.satisfiedTypes.size;i++) {
s+=this.satisfiedTypes.$_get(i).string.hash;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeIntersection$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection','$at','hash']};});})(FreeIntersection$jsint.$$.prototype);}
return FreeIntersection$jsint;}
ex$.$init$FreeIntersection$jsint=$init$FreeIntersection$jsint;$init$FreeIntersection$jsint();function FreeUnion$jsint(caseTypes,freeUnion$){$init$FreeUnion$jsint();
if(freeUnion$===undefined)freeUnion$=new FreeUnion$jsint.$$;
freeUnion$.caseTypes_=caseTypes;OpenUnion$meta$declaration(freeUnion$);return freeUnion$;}
FreeUnion$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'caseTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},pa:3}],sts:[{t:OpenUnion$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion']};};
ex$.FreeUnion$jsint=FreeUnion$jsint;function $init$FreeUnion$jsint(){if(FreeUnion$jsint.$$===undefined){initTypeProto(FreeUnion$jsint,'ceylon.language.jsint::FreeUnion',Basic,$init$OpenUnion$meta$declaration());
(function(freeUnion$){atr$(freeUnion$,'caseTypes',function(){return this.caseTypes_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:FreeUnion$jsint,pa:3,d:['ceylon.language.jsint','FreeUnion','$at','caseTypes']};});freeUnion$.equals=function(u) {
if(is$(u,{t:FreeUnion$jsint})) {
var mine=this.caseTypes;
var his=u.caseTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i)))return false;
}
return true;
}
}
return false;
}
freeUnion$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeUnion$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion','$m','equals']};};atr$(freeUnion$,'string',function(){var s="";
var first=true;
for (var i=0;i<this.caseTypes.size;i++) {
if (first)first=false;else s+="|";
s+=this.caseTypes.$_get(i).string;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeUnion$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion','$at','string']};});atr$(freeUnion$,'hash',function(){var s=this.caseTypes.size;
for (var i=0;i<this.caseTypes.size;i++) {
s+=this.caseTypes.$_get(i).string.hash;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeUnion$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion','$at','hash']};});})(FreeUnion$jsint.$$.prototype);}
return FreeUnion$jsint;}
ex$.$init$FreeUnion$jsint=$init$FreeUnion$jsint;$init$FreeUnion$jsint();function Importa$jsint(name,version,_cont,_anns,importa$){$init$Importa$jsint();
if(importa$===undefined)importa$=new Importa$jsint.$$;
importa$.name_=name;importa$.version_=version;importa$._cont_=_cont;importa$._anns_=_anns;Import$meta$declaration(importa$);return importa$;}
Importa$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'name',mt:'prm',$t:{t:$_String},pa:3},{nm:'version',mt:'prm',$t:{t:$_String},pa:3},{nm:'_cont',mt:'prm',$t:{t:Module$meta$declaration},pa:1},{nm:'_anns',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:Import$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa']};};
ex$.Importa$jsint=Importa$jsint;function $init$Importa$jsint(){if(Importa$jsint.$$===undefined){initTypeProto(Importa$jsint,'ceylon.language.jsint::Importa',Basic,$init$Import$meta$declaration());
(function(importa$){atr$(importa$,'name',function(){return this.name_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','name']};});atr$(importa$,'version',function(){return this.version_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','version']};});atr$(importa$,'_cont',function(){return this._cont_;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Importa$jsint,pa:1,d:['ceylon.language.jsint','Importa','$at','_cont']};});atr$(importa$,'_anns',function(){return this._anns_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Importa$jsint,pa:1,d:['ceylon.language.jsint','Importa','$at','_anns']};});atr$(importa$,'shared',function(){if (typeof(this._anns)==='function')this._anns_=this._anns();
if (this._anns)for (var i=0;i<this._anns.length;i++) {
if (this._anns[i]===shared)return true;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Importa$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$at','shared']};});atr$(importa$,'optional',function(){if (typeof(this._anns)==='function')this._anns_=this._anns();
if (this._anns)for (var i=0;i<this._anns.length;i++) {
if (this._anns[i]===optional)return true;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Importa$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$at','optional']};});atr$(importa$,'container',function(){if (this._cont===undefined) {
this._cont = modules$meta().find(this.name,this.version);
}
return this._cont;
},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Importa$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$at','container']};});importa$.annotated=function($mpt){
if (typeof(this._anns)==='function')this._anns_=this._anns();
if (this._anns)for (var i=0;i<this._anns.length;i++) {
if (is$(this._anns[i],$mpt.Annotation$annotated))return true;
}
return false;
}
importa$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Importa$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$m','annotated']};};atr$(importa$,'string',function(){var importa$=this;return "import ".plus(importa$.name).plus("/").plus(importa$.version);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','string']};});})(Importa$jsint.$$.prototype);}
return Importa$jsint;}
ex$.$init$Importa$jsint=$init$Importa$jsint;$init$Importa$jsint();function JsResource$jsint(uri,jsResource$){$init$JsResource$jsint();
if(jsResource$===undefined)jsResource$=new JsResource$jsint.$$;
jsResource$.uri_=uri;Resource(jsResource$);return jsResource$;}
JsResource$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'uri',mt:'prm',$t:{t:$_String},pa:3}],sts:[{t:Resource}],an:function(){return[$_native()];},d:['ceylon.language.jsint','JsResource']};};
ex$.JsResource$jsint=JsResource$jsint;function $init$JsResource$jsint(){if(JsResource$jsint.$$===undefined){initTypeProto(JsResource$jsint,'ceylon.language.jsint::JsResource',Basic,$init$Resource());
(function(jsResource$){atr$(jsResource$,'uri',function(){return this.uri_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:JsResource$jsint,pa:3,d:['ceylon.language.jsint','JsResource','$at','uri']};});atr$(jsResource$,'size',function(){var $elf=this;
if (runtime().name === 'node.js') {
var _fr=require;
var _fp=$elf.uri;
if (_fp.substring(0,5)==='file:')_fp=_fp.substring(_fp.indexOf(':')+1);
return _fr('fs').statSync(_fp).size;
} else if (runtime().name === 'Browser') {
alert('Resource.size not implemented yet');
} else {
print("Resource handling unsupported in this JS platform.");
}
return -1;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:JsResource$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','JsResource','$at','size']};});jsResource$.textContent=function(encoding$2){
var $elf=this;
if(encoding$2===undefined){encoding$2=$elf.textContent$defs$encoding(encoding$2);}
if (runtime().name === 'node.js') {
var _fr=require;
var fs=_fr('fs');
encoding$2=encoding$2.toLowerCase();
if(encoding$2.initial(4)==="utf-")encoding$2='utf'+encoding$2.substring(4);
var _fp=$elf.uri;
if (_fp.substring(0,5)==='file:')_fp=_fp.substring(_fp.indexOf(':')+1);
var t = fs.readFileSync(_fp, encoding$2);
return $_String(t);
} else if (runtime().name === 'Browser') {
alert("Resource.textContent() not implemented yet");
} else {
throw Error("Resource handling unsupported in this JS platform");
}
}
jsResource$.textContent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'encoding',mt:'prm',def:1,$t:{t:$_String}}],$cont:JsResource$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','JsResource','$m','textContent']};};})(JsResource$jsint.$$.prototype);}
return JsResource$jsint;}
ex$.$init$JsResource$jsint=$init$JsResource$jsint;$init$JsResource$jsint();function Modulo$jsint(meta,modulo$){$init$Modulo$jsint();
if(modulo$===undefined)modulo$=new Modulo$jsint.$$;
modulo$.meta_=meta;Module$meta$declaration(modulo$);(function(meta,mod$) {
mod$.$anns=mod$.meta.$mod$ans$;
var mm = mod$.meta.$CCMM$;
if (typeof(mm)==='function') {
mm=mm();
}
mod$.m$=mm;
mod$.nm$=mm['$mod-name'];
mod$.ver$=mm['$mod-version'];
}
)(meta,modulo$);modulo$.qualifiedName_=modulo$.name;modulo$.string_="module ".plus(modulo$.name).plus("/").plus(modulo$.version);return modulo$;}
Modulo$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'meta',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:Module$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo']};};
ex$.Modulo$jsint=Modulo$jsint;function $init$Modulo$jsint(){if(Modulo$jsint.$$===undefined){initTypeProto(Modulo$jsint,'ceylon.language.jsint::Modulo',Basic,$init$Module$meta$declaration());
(function(modulo$){atr$(modulo$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Modulo$jsint,pa:1,d:['ceylon.language.jsint','Modulo','$at','meta']};});atr$(modulo$,'name',function(){return this.nm$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','name']};});atr$(modulo$,'qualifiedName',function(){return this.qualifiedName_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,d:['ceylon.language.jsint','Modulo','$at','qualifiedName']};});atr$(modulo$,'version',function(){return this.ver$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','version']};});atr$(modulo$,'members',function(){if (this.m$['$pks$'] === undefined) {
this.m$['$pks$'] = {};
for (mem in this.meta.$CCMM$()) {
if (typeof(mem) === 'string' && mem[0]!=='$') {
this.m$['$pks$'][mem] = Paquete$jsint(mem, this, this.m$[mem]);
}
}
}
var m = [];
for (mem in this.m$['$pks$']) {
if (typeof(mem) === 'string') {
m.push(this.m$['$pks$'][mem]);
}
}
return m.$sa$({t:Package$meta$declaration});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Package$meta$declaration}}},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','members']};});atr$(modulo$,'dependencies',function(){if (typeof(this.meta.$mod$imps)==='function')this.meta.$mod$imps=this.meta.$mod$imps();
var deps=this.m$.$mdep$;
if (deps===undefined){
var _d=[];
var hasLangMod=false;
for (var d in this.meta.$mod$imps) {
var spos = d.lastIndexOf('/');
if (!hasLangMod && d.startsWith('ceylon.language/'))hasLangMod=true;
_d.push(Importa$jsint(d.substring(0,spos), d.substring(spos+1),this,this.meta.$mod$imps[d]));
}
if (!hasLangMod) {
_d.push(Importa$jsint('ceylon.language',$CCMM$()['$mod-version'],this,[]));
}
deps = _d.$sa$({t:Import$meta$declaration});
this.m$.$mdep$=deps;
}
return deps;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Import$meta$declaration}}},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','dependencies']};});modulo$.findPackage=function findPackage(pknm){
if (this.m$['$pks$'] === undefined) this.members;
if (pknm==='$')pknm='ceylon.language';
var pk = this.m$['$pks$'][pknm];
return pk===undefined ? null : pk;
}
modulo$.findPackage.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','findPackage']};};modulo$.findImportedPackage=function findImportedPackage(pknm){
var pk = this.findPackage(pknm);
if (pk) return pk;
if (pknm.match('^ceylon\\.language')) {
var clmod=modules$meta().find('ceylon.language', $CCMM$()['$mod-version']);
var deps=clmod.dependencies;
return clmod.findPackage(pknm);
}
var deps=this.dependencies;
for (var i=0; i < deps.length; i++) {
pk = deps[i].container.findImportedPackage(pknm);
if (pk)return pk;
}
return null;
}
modulo$.findImportedPackage.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','findImportedPackage']};};modulo$.resourceByPath=function(_path) {
var isdefmod=this.name==='default' && this.version==='unversioned';
var mpath;
if (isdefmod) {
mpath = this.name;
} else {
mpath = this.name.replace(/\./g, '/');
}
var path = 'module-resources';
if (_path[0]==='/') {
path += _path;
} else {
if (isdefmod) {
path += '';
} else {
path += '/';
path += mpath;
}
path += '/' + _path;
}
if (runtime().name==='node.js') {
var sep = operatingSystem().fileSeparator;
path = mpath + (isdefmod?'/':'/'+this.version+'/') + path;
path = path.replace(/\\/g,sep);
var _fr=require;//this is so that requirejs leaves us alone
var pm=_fr('path');
var mods=process.env.NODE_PATH.split(operatingSystem().pathSeparator);
var fs=_fr('fs');
for (var i=0; i<mods.length; i++) {
var fp = pm.resolve(mods[i], path);
if (fs.existsSync(fp)) {
var f = fs.statSync(fp);
if (f && f.isFile()) {
return JsResource$jsint('file:'+fp);
}
}
}
return null;
} else if (runtime().name==='Browser') {
return JsResource$jsint(require.toUrl(mpath));
} else {
throw AssertionError("resources loading not yet supported in this environment: " + runtime().name);
}
}
modulo$.resourceByPath.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Resource}]},ps:[{nm:'path',mt:'prm',$t:{t:$_String}}],$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','resourceByPath']};};modulo$.annotations=function annotations($$$mptypes){
var anns = this.meta.$mod$ans$;
if (typeof(anns) === 'function') {
anns = anns();
this.meta.$mod$ans$=anns;
} else if (anns === undefined) {
anns = [];
}
var r = [];
for (var i=0; i < anns.length; i++) {
var an = anns[i];
if (is$(an, $$$mptypes.Annotation$annotations)) r.push(an);
}
return r.$sa$($$$mptypes.Annotation$annotations);
}
modulo$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:Modulo$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','annotations']};};modulo$.annotated=function($mpt){
var anns = this.meta.$mod$ans$;
if (typeof(anns) === 'function') {
anns = anns();
this.meta.$mod$ans$=anns;
}
if (anns) for (var i=0; i < anns.length; i++) {
if (is$(anns[i],$mpt.Annotation$annotated))return true;
}
return false;
}
modulo$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Modulo$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','annotated']};};atr$(modulo$,'string',function(){return this.string_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,d:['ceylon.language.jsint','Modulo','$at','string']};});})(Modulo$jsint.$$.prototype);}
return Modulo$jsint;}
ex$.$init$Modulo$jsint=$init$Modulo$jsint;$init$Modulo$jsint();function OpenAlias$jsint(_alias,openAlias$){$init$OpenAlias$jsint();
if(openAlias$===undefined)openAlias$=new OpenAlias$jsint.$$;
openAlias$._alias_=_alias;AliasDeclaration$meta$declaration(openAlias$);(function(a, that){
if (typeof(a)==='function')a=a();
that._alias_ = a;
//Get model from path
var mm=getrtmm$$(a);
that.meta=get_model(mm);
}
)(_alias,openAlias$);return openAlias$;}
OpenAlias$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'_alias',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:AliasDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias']};};
ex$.OpenAlias$jsint=OpenAlias$jsint;function $init$OpenAlias$jsint(){if(OpenAlias$jsint.$$===undefined){initTypeProto(OpenAlias$jsint,'ceylon.language.jsint::OpenAlias',Basic,$init$AliasDeclaration$meta$declaration());
(function(openAlias$){atr$(openAlias$,'_alias',function(){return this._alias_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenAlias$jsint,pa:1,d:['ceylon.language.jsint','OpenAlias','$at','_alias']};});atr$(openAlias$,'extendedType',function(){return _openTypeFromTarg(this._alias);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','extendedType']};});atr$(openAlias$,'openType',function(){var openAlias$=this;return openAlias$.extendedType;},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','openType']};});atr$(openAlias$,'qualifiedName',function(){return qname$(this._alias.$crtmm$);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','qualifiedName']};});atr$(openAlias$,'toplevel',function(){return this._alias.$cont===undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','toplevel']};});atr$(openAlias$,'containingModule',function(){throw wrapexc(Exception("OpenAlias.containingModule"),'14:42-14:87','ceylon/language/jsint/OpenAlias.ceylon');},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','containingModule']};});atr$(openAlias$,'container',function(){var cont=this.$$targs$$.Container;
if (cont===undefined) {
cont=this._alias.$crtmm$.$cont;
if (cont)cont={t:cont};
}
if (cont) {
return typeLiteral$meta({Type$typeLiteral:cont});
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','container']};});atr$(openAlias$,'containingPackage',function(){throw wrapexc(Exception("OpenAlias.containingPackage"),'16:44-16:90','ceylon/language/jsint/OpenAlias.ceylon');},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','containingPackage']};});openAlias$.annotations=function($$$mptypes){
return annd$annotations(this,$$$mptypes);
}
openAlias$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenAlias$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','annotations']};};openAlias$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openAlias$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenAlias$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','annotated']};};atr$(openAlias$,'typeParameterDeclarations',function(){var tps=this._alias.$crtmm$.tp;
if (tps) {
var rv=[];
for (var tp in tps) {
rv.push(OpenTypeParam$jsint(this, tp));
}
return rv.$sa$({t:TypeParameter$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','typeParameterDeclarations']};});openAlias$.getTypeParameterDeclaration=function(name$2){
var tp=this._alias.$crtmm$;
var tpn=undefined;
if (tp.tp) {
for (var ftn in tp.tp) {
if (ftn.substring(0,name$2.size+1)==name$2+'$') {
tpn=ftn;
}
}
}
return tpn?OpenTypeParam$jsint(this, tpn):null;
}
openAlias$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','getTypeParameterDeclaration']};};openAlias$.equals=function(o) {
if (is$(o, {t:OpenAlias$jsint}) && o._alias.t === this._alias.t) {
var ot=o.typeParameterDeclarations,mt=this.typeParameterDeclarations;
if (ot.size!=mt.size)return false;
for (var i=0; i<ot.size;i++) {
if (!ot.getFromFirst(i).equals(mt.getFromFirst(i),1))return false;
}
return true;
}
return false;
}
openAlias$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','equals']};};atr$(openAlias$,'name',function(){return this._alias.$crtmm$.d[this._alias.$crtmm$.d.length-1];
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','name']};});atr$(openAlias$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','shared']};});atr$(openAlias$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','actual']};});atr$(openAlias$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','formal']};});atr$(openAlias$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','default']};});atr$(openAlias$,'string',function(){var openAlias$=this;return "alias ".plus(openAlias$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','string']};});atr$(openAlias$,'hash',function(){var openAlias$=this;return openAlias$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','hash']};});})(OpenAlias$jsint.$$.prototype);}
return OpenAlias$jsint;}
ex$.$init$OpenAlias$jsint=$init$OpenAlias$jsint;$init$OpenAlias$jsint();function OpenCallableConstructor$jsint(pkg, meta, that){
if (meta===undefined)throw new Error("Constructor reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenCallableConstructor$jsint();
if (that===undefined)that=new OpenCallableConstructor$jsint.$$;
that.containingPackage_=pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
that.name_=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (that.name_==='$def' || _mm.d[_mm.d.length-2]!=='$cn') {
that.name_='';
} else if (that.name_.indexOf('$')>0) {
that.name_=that.name_.substring(0,that.name_.indexOf('$'));
}
CallableConstructorDeclaration$meta$declaration(that);
return that;
}
OpenCallableConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'containingPackage',mt:'prm',$t:{t:Package$meta$declaration},pa:3},{nm:'meta',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:CallableConstructorDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor']};};
ex$.OpenCallableConstructor$jsint=OpenCallableConstructor$jsint;function $init$OpenCallableConstructor$jsint(){if(OpenCallableConstructor$jsint.$$===undefined){initTypeProto(OpenCallableConstructor$jsint,'ceylon.language.jsint::OpenCallableConstructor',Basic,$init$CallableConstructorDeclaration$meta$declaration());
(function(openCallableConstructor$){atr$(openCallableConstructor$,'containingPackage',function(){return this.containingPackage_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','containingPackage']};});atr$(openCallableConstructor$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:OpenCallableConstructor$jsint,pa:1,d:['ceylon.language.jsint','OpenCallableConstructor','$at','meta']};});atr$(openCallableConstructor$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','abstract']};});atr$(openCallableConstructor$,'defaultConstructor',function(){if (this.isdef$===undefined) {
//Just by checking the path we can determine this
var mm=getrtmm$$(this.tipo);
this.isdef$ = this.name==='';
}
return this.isdef$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','defaultConstructor']};});atr$(openCallableConstructor$,'container',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.tipo);
if (this.defaultConstructor && cc.d[cc.d.length-2]!=='$cn') {
//fake constructor
this.cont$=openClass$jsint(this.containingPackage,this.tipo);
} else {
cc=cc.$cont;
this.cont$=openClass$jsint(this.containingPackage,cc);
}
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','container']};});openCallableConstructor$.invoke=function invoke(targs,args) {
var mm=getrtmm$$(this.tipo);
var fc=mm.d[mm.d.length-2]!=='$cn';
if (mm.d[mm.d.length-(fc?2:4)]==='$c') {
throw TypeApplicationException$meta$model("Use memberInvoke with member constructors");
}
var a$=[];
for (var i=0;i<args.size;i++) {
a$.push(args.$_get(i));
}
if (targs.size) {
a$.push(tparms2targs$(fc?this.tipo:mm.$cont,targs));
}
return this.tipo.apply(undefined,a$);
}
openCallableConstructor$.invoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','invoke']};};openCallableConstructor$.memberInvoke=function memberInvoke(o,targs,args) {
var mm=getrtmm$$(this.tipo);
var fc=mm.d[mm.d.length-2]!=='$cn';
if (mm.d[mm.d.length-(fc?2:4)]!=='$c') {
throw TypeApplicationException$meta$model("Not a member constructor");
}
var a$=[];
for (var i=0;i<args.size;i++) {
a$.push(args.$_get(i));
}
if (targs.size) {
a$.push(tparms2targs$(fc?this.tipo:mm.$cont,targs));
}
return this.tipo.apply(o,a$);
}
openCallableConstructor$.memberInvoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','memberInvoke']};};openCallableConstructor$.$_apply=function $_apply(targs,mt) {
var cc=this.container;
var mm=getrtmm$$(this.tipo);
if (is$(cc.container,{t:ClassOrInterfaceDeclaration$meta$declaration})) {
throw TypeApplicationException$meta$model("Not a member constructor");
} else {
var fakeConstructor=mm.d[mm.d.length-2]!=='$cn';
var _t=tparms2targs$(fakeConstructor?this.tipo:mm.$cont,targs);
cc=AppliedCallableConstructor$jsint(this.tipo,
{Type$AppliedCallableConstructor:mt.Result$apply,
Arguments$AppliedCallableConstructor:mt.Arguments$apply});
if (fakeConstructor)cc.fakeConstr$=true;
return cc;
}
}
openCallableConstructor$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$apply',Type$CallableConstructor:'Result$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenCallableConstructor$jsint,tp:{Result$apply:{def:{t:$_Object}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','apply']};};openCallableConstructor$.memberApply=function memberApply(ctype,targs,$mpt) {
var fakeConstructor=false;
if (this.defaultConstructor) {
var mm=getrtmm$$(this.tipo);
fakeConstructor=mm.d[mm.d.length-2]!=='$cn';
if (fakeConstructor && mm.d[mm.d.length-2]!=='$c') {
throw TypeApplicationException$meta$model("Not a member constructor");
}
}
var c=AppliedMemberClassCallableConstructor$jsint(this.tipo,
{Type$AppliedMemberClassCallableConstructor:$mpt.Result$memberApply,
Container$AppliedMemberClassCallableConstructor:$mpt.Container$memberApply,
Arguments$AppliedMemberClassCallableConstructor:$mpt.Arguments$memberApply});
if (fakeConstructor)c.fakeConstr$=true;
return c;
}
openCallableConstructor$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Result$memberApply',Arguments$MemberClassCallableConstructor:'Arguments$memberApply',Container$MemberClassCallableConstructor:'Container$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenCallableConstructor$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:$_Object}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','memberApply']};};atr$(openCallableConstructor$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0 || this.defaultConstructor;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','shared']};});atr$(openCallableConstructor$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','formal']};});atr$(openCallableConstructor$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','default']};});atr$(openCallableConstructor$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','actual']};});atr$(openCallableConstructor$,'annotation',function(){return this.annotation_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','annotation']};});atr$(openCallableConstructor$,'parameterDeclarations',function(){return FunctionalDeclaration$meta$declaration.$$.prototype.$prop$getParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','parameterDeclarations']};});openCallableConstructor$.getParameterDeclaration=function(name){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name.equals(pd.$_get(i).name))return pd.$_get(i);
}
return null;
}
openCallableConstructor$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','getParameterDeclaration']};};atr$(openCallableConstructor$,'toplevel',function(){return this.toplevel_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','toplevel']};});atr$(openCallableConstructor$,'containingModule',function(){var openCallableConstructor$=this;return openCallableConstructor$.containingPackage.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','containingModule']};});atr$(openCallableConstructor$,'openType',function(){return FreeClass$jsint(this.container);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','openType']};});openCallableConstructor$.annotations=function(m){
return annd$annotations(this,m);
}
openCallableConstructor$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenCallableConstructor$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','annotations']};};openCallableConstructor$.annotated=function($mpt){
if (this.defaultConstructor) {
var mm=getrtmm$$(this.tipo);
if (mm.d[mm.d.length-1] !== '$def') {
//fake constructor
if (extendsType($mpt.Annotation$annotated,{t:SharedAnnotation}))return true;
if (extendsType($mpt.Annotation$annotated,{t:DocAnnotation}))return false;
}
}
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openCallableConstructor$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenCallableConstructor$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','annotated']};};atr$(openCallableConstructor$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','name']};});atr$(openCallableConstructor$,'qualifiedName',function(){if (this.qn$===undefined) {
this.qn$=qname$(getrtmm$$(this.tipo));
}
return this.qn$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','qualifiedName']};});atr$(openCallableConstructor$,'string',function(){var openCallableConstructor$=this;return "new ".plus(openCallableConstructor$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','string']};});openCallableConstructor$.equals=function(other) {
if (is$(other, {t:OpenCallableConstructor$jsint})) {
if (other.tipo===this.tipo)return true;
return this.container.equals(other.container) &&
this.name.equals(other.name);
}
return false;
}
openCallableConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','equals']};};atr$(openCallableConstructor$,'typeParameterDeclarations',function(){return this.container.typeParameterDeclarations;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','typeParameterDeclarations']};});openCallableConstructor$.getTypeParameterDeclaration=function getTypeParameterDeclaration(nm) {
return this.container.getTypeParameterDeclaration(nm);
}
openCallableConstructor$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','getTypeParameterDeclaration']};};})(OpenCallableConstructor$jsint.$$.prototype);}
return OpenCallableConstructor$jsint;}
ex$.$init$OpenCallableConstructor$jsint=$init$OpenCallableConstructor$jsint;$init$OpenCallableConstructor$jsint();function OpenClassWithConstructors$jsint(pkg, meta, that){
if (meta===undefined)throw new Error("Class reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenClassWithConstructors$jsint();
if (that===undefined)that=new OpenClassWithConstructors$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont===undefined;
ClassWithConstructorsDeclaration$meta$declaration(that);
return that;
}
OpenClassWithConstructors$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:ClassWithConstructorsDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors']};};
ex$.OpenClassWithConstructors$jsint=OpenClassWithConstructors$jsint;function $init$OpenClassWithConstructors$jsint(){if(OpenClassWithConstructors$jsint.$$===undefined){initTypeProto(OpenClassWithConstructors$jsint,'ceylon.language.jsint::OpenClassWithConstructors',Basic,$init$ClassWithConstructorsDeclaration$meta$declaration());
(function(openClassWithConstructors$){atr$(openClassWithConstructors$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','pkg']};});atr$(openClassWithConstructors$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenClassWithConstructors$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','meta']};});openClassWithConstructors$.classApply=function(targs,$mptypes) {
var mm=this.tipo.$crtmm$;
if (mm.tp) {
if (!targs)throw TypeApplicationException$meta$model("This class requires type arguments");
//TODO generate targs
}
validate$params(mm.ps,$mptypes.Arguments$classApply,"Wrong number of Arguments for classApply");
return this.$_apply(targs,{Type$apply:$mptypes.Type$classApply});
}
openClassWithConstructors$.classApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$classApply',Arguments$Class:'Arguments$classApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','classApply']};};openClassWithConstructors$.memberClassApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==nothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
if (!extendsType({t:this.tipo},$mptypes.Type$memberClassApply))
throw IncompatibleTypeException$meta$model("Incompatible Type specified");
var _t={t:this.tipo};
if ($mptypes.Type$memberClassApply.a)_t.a=$mptypes.Type$memberClassApply.a;
validate$typeparams(_t,mm.tp,targs);
validate$params(mm.ps,$mptypes.Arguments$memberClassApply,"Wrong number of Arguments for memberClassApply");
var rv=AppliedMemberClass$jsint(this.tipo,{Container$AppliedMemberClass:$mptypes.Container$memberClassApply,
Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:tupleize$params(mm.ps)});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openClassWithConstructors$.memberClassApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$memberClassApply',Container$MemberClass:'Container$memberClassApply',Type$MemberClass:'Type$memberClassApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Container$memberClassApply:{def:{t:Nothing}},Type$memberClassApply:{def:{t:Anything}},Arguments$memberClassApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','memberClassApply']};};atr$(openClassWithConstructors$,'anonymous',function(){return this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','anonymous']};});atr$(openClassWithConstructors$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','abstract']};});atr$(openClassWithConstructors$,'$_final',function(){return (getrtmm$$(this.tipo).pa & 32) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','final']};});atr$(openClassWithConstructors$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','annotation']};});atr$(openClassWithConstructors$,'serializable',function(){return (getrtmm$$(this.tipo).pa&2048) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','serializable']};});atr$(openClassWithConstructors$,'openType',function(){return FreeClass$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','openType']};});openClassWithConstructors$.getParameterDeclaration=function(name){
var pd=this.parameterDeclarations;
if (!pd)return null;
for (var i=0; i < pd.size; i++) {
if (name.equals(pd.$_get(i).name))return pd.$_get(i);
}
return null;
}
openClassWithConstructors$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getParameterDeclaration']};};atr$(openClassWithConstructors$,'extendedType',function(){var sc = this.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fc=FreeClass$jsint(openClass$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), sc.t));
if (sc.a)fc.declaration._targs=sc.a;
return fc;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','extendedType']};});atr$(openClassWithConstructors$,'satisfiedTypes',function(){var ints = this.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = ints[i];
var mm = getrtmm$$(ifc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fi=FreeInterface$jsint(OpenInterface$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc.t));
if (ifc.a)fi.declaration._targs=ifc.a;
rv.push(fi);
}
return rv.$sa$({t:OpenInterfaceType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','satisfiedTypes']};});atr$(openClassWithConstructors$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','name']};});atr$(openClassWithConstructors$,'containingPackage',function(){var openClassWithConstructors$=this;return openClassWithConstructors$.pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','containingPackage']};});atr$(openClassWithConstructors$,'containingModule',function(){var openClassWithConstructors$=this;return openClassWithConstructors$.pkg.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','containingModule']};});atr$(openClassWithConstructors$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','toplevel']};});atr$(openClassWithConstructors$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','qualifiedName']};});openClassWithConstructors$.equals=function(other) {
if (is$(other, {t:OpenClassWithConstructors$jsint})) {
if (other.tipo===this.tipo)return true;
if (this.anonymous && other.anonymous) {
//Anonymous classes sometimes have a ref to the class constructor
//and sometimes to the value getter, depending on how it was obtained
return this.qualifiedName.equals(other.qualifiedName);
}
}
return false;
}
openClassWithConstructors$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','equals']};};atr$(openClassWithConstructors$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','shared']};});atr$(openClassWithConstructors$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','formal']};});atr$(openClassWithConstructors$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','default']};});atr$(openClassWithConstructors$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','actual']};});atr$(openClassWithConstructors$,'isAlias',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','isAlias']};});openClassWithConstructors$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openClassWithConstructors$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getMemberDeclaration']};};openClassWithConstructors$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openClassWithConstructors$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getDeclaredMemberDeclaration']};};atr$(openClassWithConstructors$,'parameterDeclarations',function(){var dc=this.defaultConstructor;
return dc?dc.parameterDeclarations:null;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','parameterDeclarations']};});openClassWithConstructors$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openClassWithConstructors$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','memberDeclarations']};};atr$(openClassWithConstructors$,'caseTypes',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getCaseTypes.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','caseTypes']};});openClassWithConstructors$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openClassWithConstructors$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','apply']};};openClassWithConstructors$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openClassWithConstructors$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','memberApply']};};atr$(openClassWithConstructors$,'container',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','container']};});openClassWithConstructors$.annotatedMemberDeclarations=function(m,i) {
var r=ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
if (extendsType(m.Kind$annotatedMemberDeclarations,{t:ConstructorDeclaration$meta$declaration})) {
var callablesOnly=extendsType(m.Kind$annotatedMemberDeclarations,{t:CallableConstructorDeclaration$meta$declaration});
var valuesOnly=extendsType(m.Kind$annotatedMemberDeclarations,{t:ValueConstructorDeclaration$meta$declaration});
var mm=getrtmm$$(this.tipo);
var prefix=mm.d[mm.d.length-1]+'_';
var ccc=[];
for (k in this.tipo) {
if (k.startsWith(prefix)) {
mm=getrtmm$$(this.tipo[k]);
if (mm.ps===undefined) {
if (!callablesOnly) {
ccc.push(OpenValueConstructor$jsint(this.package, this.tipo[k]));
}
} else if (!valuesOnly) {
ccc.push(OpenCallableConstructor$jsint(this.package,this.tipo[k]));
}
}
}
return r.append(ccc.$sa$(m.Kind$annotatedMemberDeclarations),{Other$append:m.Kind$annotatedMemberDeclarations});
}
return r;
}
openClassWithConstructors$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotatedMemberDeclarations']};};openClassWithConstructors$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openClassWithConstructors$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotatedDeclaredMemberDeclarations']};};atr$(openClassWithConstructors$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','typeParameterDeclarations']};});openClassWithConstructors$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openClassWithConstructors$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getTypeParameterDeclaration']};};openClassWithConstructors$.annotations=function(m){
return annd$annotations(this,m);
}
openClassWithConstructors$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotations']};};openClassWithConstructors$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openClassWithConstructors$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotated']};};openClassWithConstructors$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openClassWithConstructors$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','declaredMemberDeclarations']};};atr$(openClassWithConstructors$,'objectValue',function(){if (!this.anonymous)return null;
if (this.container && this.container.getMember) {
var m=this.container.getMember(this.name,{getMember$Kind:{t:ValueDeclaration$meta$declaration}});
if (m)return m;
}
return null
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','objectValue']};});atr$(openClassWithConstructors$,'string',function(){var openClassWithConstructors$=this;return "class ".plus(openClassWithConstructors$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','string']};});atr$(openClassWithConstructors$,'hash',function(){var openClassWithConstructors$=this;return openClassWithConstructors$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','hash']};});atr$(openClassWithConstructors$,'defaultConstructor',function(){if (this.declcn$===undefined)this.constructorDeclarations();
if (this.defcn$===undefined) {
for (var i=0;i<this.declcn$.size;i++) {
if (this.declcn$.$_get(i).name==='') {
this.defcn$=this.declcn$.$_get(i);
return this.defcn$;
}
}
this.defcn$=null;
}
return this.defcn$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructorDeclaration$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','defaultConstructor']};});openClassWithConstructors$.getConstructorDeclaration=function(nom) {
if (this.declcn$===undefined)this.constructorDeclarations();
for (var i=0; i < this.declcn$.size; i++) {
if (this.declcn$.$_get(i).name===nom)return this.declcn$.$_get(i);
}
return null;
}
openClassWithConstructors$.getConstructorDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'u',l:[{t:CallableConstructorDeclaration$meta$declaration},{t:ValueConstructorDeclaration$meta$declaration}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getConstructorDeclaration']};};openClassWithConstructors$.constructorDeclarations=function() {
if (this.declcn$===undefined) {
var mm=getrtmm$$(this.tipo),mdl=get_model(mm);
if (mdl.$cn) {
var c=[];
for (var m in this.tipo) {
if (m.indexOf('_')>0) {
m=getnpmem$(this.tipo,m);
mm=m&&getrtmm$$(m);
if (mm && mm.d[mm.d.length-2]==='$cn') {
c.push((mm.ps===undefined?OpenValueConstructor$jsint:OpenCallableConstructor$jsint)(this.pkg_,m));
}
}
}
this.declcn$=c.$sa$({t:ConstructorDeclaration$meta$declaration});
} else {
this.declcn$=empty();
}
}
return this.declcn$;
}
openClassWithConstructors$.constructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','constructorDeclarations']};};openClassWithConstructors$.annotatedConstructorDeclarations=function($mpt) {
return this.annotatedMemberDeclarations(
{Kind$annotatedMemberDeclarations:{t:ConstructorDeclaration$meta$declaration},
Annotation$annotatedMemberDeclarations:$mpt.Annotation$annotatedConstructorDeclarations});
}
openClassWithConstructors$.annotatedConstructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotatedConstructorDeclarations']};};})(OpenClassWithConstructors$jsint.$$.prototype);}
return OpenClassWithConstructors$jsint;}
ex$.$init$OpenClassWithConstructors$jsint=$init$OpenClassWithConstructors$jsint;$init$OpenClassWithConstructors$jsint();function OpenClassWithInitializer$jsint(pkg, meta, that){
if (meta===undefined)throw new Error("Class reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenClassWithInitializer$jsint();
if (that===undefined)that=new OpenClassWithInitializer$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont===undefined;
ClassWithInitializerDeclaration$meta$declaration(that);
return that;
}
OpenClassWithInitializer$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:ClassWithInitializerDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer']};};
ex$.OpenClassWithInitializer$jsint=OpenClassWithInitializer$jsint;function $init$OpenClassWithInitializer$jsint(){if(OpenClassWithInitializer$jsint.$$===undefined){initTypeProto(OpenClassWithInitializer$jsint,'ceylon.language.jsint::OpenClassWithInitializer',Basic,$init$ClassWithInitializerDeclaration$meta$declaration());
(function(openClassWithInitializer$){atr$(openClassWithInitializer$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','pkg']};});atr$(openClassWithInitializer$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenClassWithInitializer$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','meta']};});openClassWithInitializer$.classApply=function(targs,$mptypes) {
var mm=this.tipo.$crtmm$;
if (mm.tp) {
if (!targs)throw TypeApplicationException$meta$model("This class requires type arguments");
//TODO generate targs
}
validate$params(mm.ps,$mptypes.Arguments$classApply,"Wrong number of Arguments for classApply");
return this.$_apply(targs,{Type$apply:$mptypes.Type$classApply});
}
openClassWithInitializer$.classApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$classApply',Arguments$Class:'Arguments$classApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','classApply']};};openClassWithInitializer$.memberClassApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==nothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
if (!extendsType({t:this.tipo},$mptypes.Type$memberClassApply))
throw IncompatibleTypeException$meta$model("Incompatible Type specified");
var _t={t:this.tipo};
if ($mptypes.Type$memberClassApply.a)_t.a=$mptypes.Type$memberClassApply.a;
validate$typeparams(_t,mm.tp,targs);
validate$params(mm.ps,$mptypes.Arguments$memberClassApply,"Wrong number of Arguments for memberClassApply");
var rv=AppliedMemberClass$jsint(this.tipo,{Container$AppliedMemberClass:$mptypes.Container$memberClassApply,
Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:tupleize$params(mm.ps)});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openClassWithInitializer$.memberClassApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$memberClassApply',Container$MemberClass:'Container$memberClassApply',Type$MemberClass:'Type$memberClassApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Container$memberClassApply:{def:{t:Nothing}},Type$memberClassApply:{def:{t:Anything}},Arguments$memberClassApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','memberClassApply']};};atr$(openClassWithInitializer$,'anonymous',function(){return this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','anonymous']};});atr$(openClassWithInitializer$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','abstract']};});atr$(openClassWithInitializer$,'$_final',function(){return (getrtmm$$(this.tipo).pa & 32) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','final']};});atr$(openClassWithInitializer$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','annotation']};});atr$(openClassWithInitializer$,'serializable',function(){return (getrtmm$$(this.tipo).pa&2048) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','serializable']};});atr$(openClassWithInitializer$,'openType',function(){return FreeClass$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','openType']};});openClassWithInitializer$.getParameterDeclaration=function(name){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name.equals(pd.$_get(i).name))return pd.$_get(i);
}
return null;
}
openClassWithInitializer$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getParameterDeclaration']};};atr$(openClassWithInitializer$,'extendedType',function(){var sc = this.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fc=FreeClass$jsint(openClass$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), sc.t));
if (sc.a)fc.declaration._targs=sc.a;
return fc;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','extendedType']};});atr$(openClassWithInitializer$,'satisfiedTypes',function(){var ints = this.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = ints[i];
var mm = getrtmm$$(ifc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fi=FreeInterface$jsint(OpenInterface$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc.t));
if (ifc.a)fi.declaration._targs=ifc.a;
rv.push(fi);
}
return rv.$sa$({t:OpenInterfaceType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','satisfiedTypes']};});atr$(openClassWithInitializer$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','name']};});atr$(openClassWithInitializer$,'containingPackage',function(){var openClassWithInitializer$=this;return openClassWithInitializer$.pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','containingPackage']};});atr$(openClassWithInitializer$,'containingModule',function(){var openClassWithInitializer$=this;return openClassWithInitializer$.pkg.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','containingModule']};});atr$(openClassWithInitializer$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','toplevel']};});atr$(openClassWithInitializer$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','qualifiedName']};});openClassWithInitializer$.equals=function(other) {
if (is$(other, {t:OpenClassWithInitializer$jsint})) {
if (other.tipo===this.tipo)return true;
if (this.anonymous && other.anonymous) {
//Anonymous classes sometimes have a ref to the class constructor
//and sometimes to the value getter, depending on how it was obtained
return this.qualifiedName.equals(other.qualifiedName);
}
}
return false;
}
openClassWithInitializer$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','equals']};};atr$(openClassWithInitializer$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','shared']};});atr$(openClassWithInitializer$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','formal']};});atr$(openClassWithInitializer$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','default']};});atr$(openClassWithInitializer$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','actual']};});atr$(openClassWithInitializer$,'isAlias',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','isAlias']};});openClassWithInitializer$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openClassWithInitializer$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getMemberDeclaration']};};openClassWithInitializer$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openClassWithInitializer$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getDeclaredMemberDeclaration']};};atr$(openClassWithInitializer$,'parameterDeclarations',function(){return FunctionalDeclaration$meta$declaration.$$.prototype.$prop$getParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','parameterDeclarations']};});openClassWithInitializer$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openClassWithInitializer$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','memberDeclarations']};};atr$(openClassWithInitializer$,'caseTypes',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getCaseTypes.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','caseTypes']};});openClassWithInitializer$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openClassWithInitializer$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','apply']};};openClassWithInitializer$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openClassWithInitializer$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','memberApply']};};atr$(openClassWithInitializer$,'container',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','container']};});openClassWithInitializer$.annotatedMemberDeclarations=function(m,i) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
}
openClassWithInitializer$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotatedMemberDeclarations']};};openClassWithInitializer$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openClassWithInitializer$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotatedDeclaredMemberDeclarations']};};atr$(openClassWithInitializer$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','typeParameterDeclarations']};});openClassWithInitializer$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openClassWithInitializer$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getTypeParameterDeclaration']};};openClassWithInitializer$.annotations=function(m){
return annd$annotations(this,m);
}
openClassWithInitializer$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotations']};};openClassWithInitializer$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openClassWithInitializer$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotated']};};openClassWithInitializer$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openClassWithInitializer$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','declaredMemberDeclarations']};};atr$(openClassWithInitializer$,'defaultConstructor',function(){if (this.$defc$===undefined) {
this.$defc$=OpenCallableConstructor$jsint(this.pkg_,this.tipo);
}
return this.$defc$;
},undefined,function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','defaultConstructor']};});openClassWithInitializer$.annotatedConstructorDeclarations=function($mpt) {
var dc=this.defaultConstructor;
return dc.annotated({Annotation$annotated:$mpt.Annotation$annotatedConstructorDeclarations})?
Singleton(dc,{t:CallableConstructorDeclaration$meta$declaration}):empty();
}
openClassWithInitializer$.annotatedConstructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructorDeclaration$meta$declaration}}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotatedConstructorDeclarations']};};atr$(openClassWithInitializer$,'objectValue',function(){if (!this.anonymous)return null;
if (this.container && this.container.getMember) {
var m=this.container.getMember(this.name,{getMember$Kind:{t:ValueDeclaration$meta$declaration}});
if (m)return m;
}
return null
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','objectValue']};});atr$(openClassWithInitializer$,'string',function(){var openClassWithInitializer$=this;return "class ".plus(openClassWithInitializer$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','string']};});atr$(openClassWithInitializer$,'hash',function(){var openClassWithInitializer$=this;return openClassWithInitializer$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','hash']};});})(OpenClassWithInitializer$jsint.$$.prototype);}
return OpenClassWithInitializer$jsint;}
ex$.$init$OpenClassWithInitializer$jsint=$init$OpenClassWithInitializer$jsint;$init$OpenClassWithInitializer$jsint();function OpenFunction$jsint(pkg,meta,that){
if (meta===undefined)throw Exception("Function reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenFunction$jsint();
if (that===undefined)that=new OpenFunction$jsint.$$;
that.pkg_=pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm=getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||'?';
if (nm.indexOf('$')>0)nm=nm.substring(0,nm.indexOf('$'));
that.name_=nm;
that.toplevel_=_mm===undefined||_mm.$cont===undefined;
FunctionDeclaration$meta$declaration(that);
return that;
}
OpenFunction$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:FunctionDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction']};};
ex$.OpenFunction$jsint=OpenFunction$jsint;function $init$OpenFunction$jsint(){if(OpenFunction$jsint.$$===undefined){initTypeProto(OpenFunction$jsint,'ceylon.language.jsint::OpenFunction',Basic,$init$FunctionDeclaration$meta$declaration());
(function(openFunction$){atr$(openFunction$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenFunction$jsint,pa:1,d:['ceylon.language.jsint','OpenFunction','$at','pkg']};});atr$(openFunction$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenFunction$jsint,pa:1,d:['ceylon.language.jsint','OpenFunction','$at','meta']};});atr$(openFunction$,'containingPackage',function(){var openFunction$=this;return openFunction$.pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','containingPackage']};});atr$(openFunction$,'openType',function(){var t = this.tipo.$crtmm$.$t;
if (typeof(t)==='string')return OpenTvar$jsint(OpenTypeParam$jsint(this.tipo,t));
return _openTypeFromTarg(t, this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','openType']};});atr$(openFunction$,'defaulted',function(){if (this.parameter) {
return this.param$$.defaulted;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','defaulted']};});atr$(openFunction$,'variadic',function(){return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','variadic']};});atr$(openFunction$,'parameter',function(){if (this.param$$!==undefined)return this.param$$!==null;
if (is$(this.container,{t:FunctionalDeclaration$meta$declaration})) {
var param;
for (var iter=this.container.parameterDeclarations.iterator();(param=iter.next())!==finished();) {
if (param.name.equals(this.name)) {
this.param$$=param;
return true;
}
}
}
this.param$$=null;
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','parameter']};});atr$(openFunction$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','annotation']};});atr$(openFunction$,'container',function(){if (this.$parent)return this.$parent;
if (this.toplevel || this.tipo.$crtmm$.$cont===0)return this.containingPackage;
return typeLiteral$meta({Type$typeLiteral:this.tipo.$crtmm$.$cont});
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','container']};});atr$(openFunction$,'parameterDeclarations',function(){return FunctionalDeclaration$meta$declaration.$$.prototype.$prop$getParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','parameterDeclarations']};});atr$(openFunction$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','actual']};});atr$(openFunction$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','formal']};});atr$(openFunction$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','default']};});atr$(openFunction$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','shared']};});atr$(openFunction$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','toplevel']};});atr$(openFunction$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','qualifiedName']};});atr$(openFunction$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','name']};});atr$(openFunction$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','typeParameterDeclarations']};});atr$(openFunction$,'containingModule',function(){var openFunction$=this;return openFunction$.pkg.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','containingModule']};});openFunction$.$_apply=function(types,$mptypes){
var mm=this.tipo.$crtmm$;
var ta={t:this.tipo};
validate$typeparams(ta,mm.tp,types);
if (!extendsType(mm.$t,$mptypes.Return$apply)){
throw IncompatibleTypeException$meta$model("actual type of applied declaration is not compatible with expected type");
}
validate$params(mm.ps,$mptypes.Arguments$apply,"Wrong number of arguments when applying function");
return ta.a?AppliedFunction$jsint(this.tipo,{Type$AppliedFunction:mm.$t,Arguments$AppliedFunction:tupleize$params(mm.ps,ta.a)},undefined,ta.a):
AppliedFunction$jsint(this.tipo,{Type$AppliedFunction:mm.$t,Arguments$AppliedFunction:tupleize$params(mm.ps)});
}
openFunction$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$apply',Type$Function:'Return$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenFunction$jsint,tp:{Return$apply:{def:{t:Anything}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','apply']};};openFunction$.memberApply=function memberApply(cont,types,$mptypes){
var mm=this.tipo.$crtmm$;
if (!(cont.tipo && extendsType({t:cont.tipo},{t:mm.$cont}))&&cont!==nothingType$meta$model())
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
if (!extendsType(mm.$t,$mptypes.Return$memberApply))throw IncompatibleTypeException$meta$model("Incompatible Return type argument");
validate$params(mm.ps,$mptypes.Arguments$memberApply,"Wrong number of Arguments for memberApply");
var ta={t:this.tipo};
validate$typeparams(ta,mm.tp,types);
return AppliedMethod$jsint(this.tipo,$ci2na$(types),{Container$AppliedMethod:$mptypes.Container$memberApply,
Type$AppliedMethod:mm.$t,Arguments$AppliedMethod:tupleize$params(mm.ps,ta.a)});
}
openFunction$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Container$Method:'Container$memberApply',Arguments$Method:'Arguments$memberApply',Type$Method:'Return$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenFunction$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Return$memberApply:{def:{t:Anything}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','memberApply']};};openFunction$.getParameterDeclaration=function (nm){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (nm.equals(pd[i].name))return pd[i];
}
return null;
}
openFunction$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','getParameterDeclaration']};};openFunction$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openFunction$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','getTypeParameterDeclaration']};};openFunction$.annotations=function(m){
return annd$annotations(this,m);
}
openFunction$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenFunction$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','annotations']};};openFunction$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openFunction$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenFunction$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','annotated']};};openFunction$.equals=function(o) {
if (is$(o,{t:OpenFunction$jsint})) {
return o.tipo === this.tipo;
}
return false;
}
openFunction$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','equals']};};atr$(openFunction$,'string',function(){var openFunction$=this;return "function ".plus(openFunction$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','string']};});atr$(openFunction$,'hash',function(){var openFunction$=this;return openFunction$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','hash']};});openFunction$.memberInvoke=function memberInvoke(cont,targs,args) {
if (targs===undefined)targs=empty();
if (args===undefined)args=empty();
var a=[];
for (var i=0;i<args.size;i++)a.push(args.$_get(i));
if (targs.size) {
var mm=getrtmm$$(this.tipo);
mm=get_model(mm);
var oname=mm.nm;
mm=mm.tp;
if (mm.length !== targs.size)throw IncompatibleTypeException$meta$model("Expected " + mm.length + " type arguments");
var ta={};
for (i=0;i<mm.length;i++) {
var k=mm[i].nm + '$' + oname;
ta[k] = {t:targs.$_get(i).tipo};
if (targs.$_get(i).$$targs$$.Target$Type.a)ta[k].a=targs.$_get(i).$$targs$$.Target$Type.a;
}
a.push(ta);
}
if (this.tipo.apply===undefined) {
//Formal method?
var n=this.name;
n=cont[n] || (cont.$$ && cont.$$.prototype && cont.$$.prototype[n]) || (cont.prototype && cont.prototype[n]);
if (typeof(n)==='function')return n.apply(cont,a);
}
return this.tipo.apply(cont,a);
}
openFunction$.memberInvoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','memberInvoke']};};})(OpenFunction$jsint.$$.prototype);}
return OpenFunction$jsint;}
ex$.$init$OpenFunction$jsint=$init$OpenFunction$jsint;$init$OpenFunction$jsint();function OpenInterface$jsint(pkg, meta, that) {
if (meta===undefined)throw Exception("Interface reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenInterface$jsint();
if (that===undefined)that=new OpenInterface$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont === undefined;
InterfaceDeclaration$meta$declaration(that);
return that;
}
OpenInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:InterfaceDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface']};};
ex$.OpenInterface$jsint=OpenInterface$jsint;function $init$OpenInterface$jsint(){if(OpenInterface$jsint.$$===undefined){initTypeProto(OpenInterface$jsint,'ceylon.language.jsint::OpenInterface',Basic,$init$InterfaceDeclaration$meta$declaration());
(function(openInterface$){atr$(openInterface$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenInterface$jsint,pa:1,d:['ceylon.language.jsint','OpenInterface','$at','pkg']};});atr$(openInterface$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenInterface$jsint,pa:1,d:['ceylon.language.jsint','OpenInterface','$at','meta']};});openInterface$.interfaceApply=function(targs,$mptypes) {
return this.$_apply(targs,$mptypes);
}
openInterface$.interfaceApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$interfaceApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Type$interfaceApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','interfaceApply']};};openInterface$.memberInterfaceApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==nothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
var _t={t:this.tipo};
if ($mptypes.Type$memberInterfaceApply.a)_t.a=$mptypes.Type$memberInterfaceApply.a;
validate$typeparams(_t,mm.tp,targs);
var rv=AppliedMemberInterface$jsint(this.tipo,
{Container$AppliedMemberInterface:$mptypes.Container$memberInterfaceApply,Type$AppliedMemberInterface:_t});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openInterface$.memberInterfaceApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$memberInterfaceApply',Type$MemberInterface:'Type$memberInterfaceApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Container$memberInterfaceApply:{def:{t:Nothing}},Type$memberInterfaceApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','memberInterfaceApply']};};openInterface$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openInterface$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','apply']};};openInterface$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openInterface$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','memberApply']};};openInterface$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openInterface$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','memberDeclarations']};};openInterface$.annotatedMemberDeclarations=function(m,i) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
}
openInterface$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotatedMemberDeclarations']};};openInterface$.annotations=function(m){
return annd$annotations(this,m);
}
openInterface$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenInterface$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotations']};};openInterface$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openInterface$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenInterface$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotated']};};openInterface$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openInterface$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenInterface$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','getMemberDeclaration']};};atr$(openInterface$,'openType',function(){return FreeInterface$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','openType']};});atr$(openInterface$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','typeParameterDeclarations']};});openInterface$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openInterface$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','getTypeParameterDeclaration']};};atr$(openInterface$,'extendedType',function(){var sc = this.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
return FreeClass$jsint(openClass$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), sc.t));
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','extendedType']};});atr$(openInterface$,'satisfiedTypes',function(){var ints = this.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = ints[i].t;
var mm = getrtmm$$(ifc);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
rv.push(FreeInterface$jsint(OpenInterface$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc)));
}
return rv.$sa$({t:OpenInterfaceType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','satisfiedTypes']};});atr$(openInterface$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','name']};});atr$(openInterface$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','actual']};});atr$(openInterface$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','formal']};});atr$(openInterface$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','default']};});atr$(openInterface$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','shared']};});atr$(openInterface$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','toplevel']};});atr$(openInterface$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','qualifiedName']};});atr$(openInterface$,'container',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','container']};});atr$(openInterface$,'caseTypes',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getCaseTypes.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','caseTypes']};});openInterface$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openInterface$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','declaredMemberDeclarations']};};openInterface$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openInterface$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotatedDeclaredMemberDeclarations']};};openInterface$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openInterface$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenInterface$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','getDeclaredMemberDeclaration']};};openInterface$.equals=function(other) {
return is$(other, {t:OpenInterface$jsint}) && other.tipo==this.tipo;
}
openInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','equals']};};atr$(openInterface$,'isAlias',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','isAlias']};});atr$(openInterface$,'string',function(){var openInterface$=this;return "interface ".plus(openInterface$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','string']};});atr$(openInterface$,'hash',function(){var openInterface$=this;return openInterface$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','hash']};});atr$(openInterface$,'containingPackage',function(){var openInterface$=this;return openInterface$.pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','containingPackage']};});atr$(openInterface$,'containingModule',function(){var openInterface$=this;return openInterface$.pkg.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','containingModule']};});})(OpenInterface$jsint.$$.prototype);}
return OpenInterface$jsint;}
ex$.$init$OpenInterface$jsint=$init$OpenInterface$jsint;$init$OpenInterface$jsint();function OpenTvar$jsint(declaration,openTvar$){$init$OpenTvar$jsint();
if(openTvar$===undefined)openTvar$=new OpenTvar$jsint.$$;
openTvar$.declaration_=declaration;OpenTypeVariable$meta$declaration(openTvar$);return openTvar$;}
OpenTvar$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'declaration',mt:'prm',$t:{t:TypeParameter$meta$declaration},pa:3}],sts:[{t:OpenTypeVariable$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTvar']};};
ex$.OpenTvar$jsint=OpenTvar$jsint;function $init$OpenTvar$jsint(){if(OpenTvar$jsint.$$===undefined){initTypeProto(OpenTvar$jsint,'ceylon.language.jsint::OpenTvar',Basic,$init$OpenTypeVariable$meta$declaration());
(function(openTvar$){atr$(openTvar$,'declaration',function(){return this.declaration_;},undefined,function(){return{mod:$CCMM$,$t:{t:TypeParameter$meta$declaration},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','declaration']};});openTvar$.equals=function(o) {
return is$(o, {t:OpenTvar$jsint}) && this.declaration.equals(o.declaration);
}
openTvar$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenTvar$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTvar','$m','equals']};};atr$(openTvar$,'string',function(){var openTvar$=this;return openTvar$.declaration.qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','string']};});atr$(openTvar$,'hash',function(){var openTvar$=this;return openTvar$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','hash']};});})(OpenTvar$jsint.$$.prototype);}
return OpenTvar$jsint;}
ex$.$init$OpenTvar$jsint=$init$OpenTvar$jsint;$init$OpenTvar$jsint();function OpenTypeParam$jsint(cntnr,_fname,openTypeParam$){$init$OpenTypeParam$jsint();
if(openTypeParam$===undefined)openTypeParam$=new OpenTypeParam$jsint.$$;
openTypeParam$.cntnr_=cntnr;openTypeParam$._fname_=_fname;TypeParameter$meta$declaration(openTypeParam$);openTypeParam$.name_=_fname.measure(0,($1m7=_fname.firstOccurrence(Character(36,true)),nn$($1m7)?$1m7:_fname.size));var $1m7;return openTypeParam$;}
OpenTypeParam$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'cntnr',mt:'prm',$t:{t:$_Object},pa:1},{nm:'_fname',mt:'prm',$t:{t:$_String},pa:1}],sts:[{t:TypeParameter$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam']};};
ex$.OpenTypeParam$jsint=OpenTypeParam$jsint;function $init$OpenTypeParam$jsint(){if(OpenTypeParam$jsint.$$===undefined){initTypeProto(OpenTypeParam$jsint,'ceylon.language.jsint::OpenTypeParam',Basic,$init$TypeParameter$meta$declaration());
(function(openTypeParam$){atr$(openTypeParam$,'cntnr',function(){return this.cntnr_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenTypeParam$jsint,pa:1,d:['ceylon.language.jsint','OpenTypeParam','$at','cntnr']};});atr$(openTypeParam$,'_fname',function(){return this._fname_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:1,d:['ceylon.language.jsint','OpenTypeParam','$at','_fname']};});atr$(openTypeParam$,'container',function(){if (is$(this.cntnr,{t:NestableDeclaration$meta$declaration}))return this.cntnr;
var mm=getrtmm$$(this.cntnr);
if (mm && mm.d) {
var mdl=get_model(mm);
if (mdl && mdl.mt) {
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
var pkg=_mod.findPackage(mm.d[0]);
if (mdl.mt==='i')return OpenInterface$jsint(pkg,this.cntnr);
if (mdl.mt==='c')return openClass$jsint(pkg,this.cntnr);
if (mdl.mt==='m')return OpenFunction$jsint(pkg,this.cntnr);
}
}
throw new TypeError("Invalid container for " + this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','container']};});atr$(openTypeParam$,'defaulted',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp) {
return tp['def'] !== undefined;
}
throw new Error("Invalid Type Parameter");
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','defaulted']};});atr$(openTypeParam$,'defaultTypeArgument',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (typeof(tp.def)==='string') {
return OpenTvar$jsint(OpenTypeParam$jsint(this.container.tipo, tp.def));
}
return tp.def?_openTypeFromTarg(tp.def,this.container.tipo):null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenType$meta$declaration}]},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','defaultTypeArgument']};});atr$(openTypeParam$,'variance',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp) {
if (tp.dv==='out')return covariant$meta$declaration();
if (tp.dv=== 'in')return contravariant$meta$declaration();
return invariant$meta$declaration();
}
throw new Error("Invalid Type Parameter");
},undefined,function(){return{mod:$CCMM$,$t:{t:Variance$meta$declaration},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','variance']};});atr$(openTypeParam$,'satisfiedTypes',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp.sts) {
var a=[];
for (var i=0;i<tp.sts.length;i++) {
a.push(_openTypeFromTarg(tp.sts[i],this.container.tipo));
}
return a.$sa$({t:OpenType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','satisfiedTypes']};});atr$(openTypeParam$,'caseTypes',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp.of) {
var a=[];
for (var i=0;i<tp.of.length;i++) {
var _ct=tp.of[i];if (typeof(_ct)==='function')_ct=getrtmm$$(_ct).$t;
a.push(_openTypeFromTarg(_ct,this.container.tipo));
}
return a.$sa$({t:OpenType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','caseTypes']};});openTypeParam$.equals=function(o,skip) {
if (is$(o,{t:OpenTypeParam$jsint}) && o._fname===this._fname) {
if (!skip) {
var mc=this.container,oc=o.container;
return mc.equals(oc);
}
return true;
}
return false;
}
openTypeParam$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$m','equals']};};atr$(openTypeParam$,'qualifiedName',function(){return qname$(this.container.tipo)+"."+this.name;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','qualifiedName']};});atr$(openTypeParam$,'name',function(){return this.name_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','name']};});atr$(openTypeParam$,'string',function(){var openTypeParam$=this;return "given ".plus(openTypeParam$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','string']};});atr$(openTypeParam$,'hash',function(){var openTypeParam$=this;return openTypeParam$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','hash']};});})(OpenTypeParam$jsint.$$.prototype);}
return OpenTypeParam$jsint;}
ex$.$init$OpenTypeParam$jsint=$init$OpenTypeParam$jsint;$init$OpenTypeParam$jsint();function OpenValue$jsint(pkg, meta, that){
if (meta===undefined)throw Exception("Value reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenValue$jsint();
if (that===undefined)that=new OpenValue$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
if (meta['mt']==='prm') {
that.tipo={$crtmm$:meta};
//TODO I think we need to do something else here
} else {
that.tipo=_findTypeFromModel(pkg,meta);
}
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=that.meta?that.meta.nm:_mm&&_mm.d&&_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont === undefined;
ValueDeclaration$meta$declaration(that);
return that;
}
OpenValue$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:ValueDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue']};};
ex$.OpenValue$jsint=OpenValue$jsint;function $init$OpenValue$jsint(){if(OpenValue$jsint.$$===undefined){initTypeProto(OpenValue$jsint,'ceylon.language.jsint::OpenValue',Basic,$init$ValueDeclaration$meta$declaration());
(function(openValue$){atr$(openValue$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenValue$jsint,pa:1,d:['ceylon.language.jsint','OpenValue','$at','pkg']};});atr$(openValue$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenValue$jsint,pa:1,d:['ceylon.language.jsint','OpenValue','$at','meta']};});atr$(openValue$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','name']};});openValue$.$_apply=function($$$mptypes){
var mm=getrtmm$$(this.tipo);
if (!extendsType(mm.$t,$$$mptypes.Get$apply))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType($$$mptypes.Set$apply,this.tipo.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
return AppliedValue$jsint(undefined,this.tipo,{Get$Value:$$$mptypes.Get$apply,Set$Value:$$$mptypes.Set$apply});
}
openValue$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$apply',Set$Value:'Set$apply'}},ps:[],$cont:OpenValue$jsint,tp:{Get$apply:{def:{t:Anything}},Set$apply:{def:{t:Nothing}}},pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','apply']};};openValue$.memberApply=function(cont,$mptypes) {
var mm=getrtmm$$(this.tipo);
if (!(cont.tipo && extendsType({t:cont.tipo},{t:mm.$cont}))&&cont!==nothingType$meta$model())
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
if (!extendsType(mm.$t,$mptypes.Get$memberApply))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType($mptypes.Set$memberApply,this.tipo.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
return AppliedAttribute(this.meta.nm,this.tipo,{Get$Attribute:$mptypes.Get$apply,Set$Attribute:$mptypes.Set$apply,
Container$Attribute:$mptypes.Container$memberApply});
}
openValue$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Set$Attribute:'Set$memberApply',Container$Attribute:'Container$memberApply',Get$Attribute:'Get$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:OpenValue$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','memberApply']};};openValue$.memberSet=function(c,v) {
if (!is$(c,{t:this.tipo.$crtmm$.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
if (!is$(v,this.tipo.$crtmm$.$t))throw IncompatibleTypeException$meta$model("Incompatible value type");
if (!this.tipo.set)throw MutationException$meta$model(qname$(this.tipo.$crtmm$)+" is not writable");
c[this.name]=v;
}
openValue$.memberSet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','memberSet']};};atr$(openValue$,'variable',function(){return (getrtmm$$(this.tipo).pa & 1024) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','variable']};});atr$(openValue$,'late',function(){return (getrtmm$$(this.tipo).pa&4) > 128;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','late']};});atr$(openValue$,'objectValue',function(){return this.meta&&this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','objectValue']};});atr$(openValue$,'objectClass',function(){if (this.objectValue) {
var _m=getrtmm$$(this.tipo);
if (_m && _m.$t && typeof(_m.$t.t)==='function')return openClass$jsint(this._pkg,_m.$t.t);
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','objectClass']};});atr$(openValue$,'defaulted',function(){if (this.parameter) {
return this.param$$.defaulted;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','defaulted']};});atr$(openValue$,'variadic',function(){if (this.parameter) {
return this.param$$.variadic;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','variadic']};});atr$(openValue$,'parameter',function(){if (this.param$$!==undefined)return this.param$$!==null;
if (is$(this.container,{t:'u',l:[{t:FunctionalDeclaration$meta$declaration},{t:ClassWithInitializerDeclaration$meta$declaration}]})) {
var param;
for (var iter=this.container.parameterDeclarations.iterator();(param=iter.next())!==finished();) {
if (param.name.equals(this.name)) {
this.param$$=param;
return true;
}
}
}
this.param$$=null;
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','parameter']};});openValue$.annotations=function(m){
return annd$annotations(this,m);
}
openValue$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenValue$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','annotations']};};openValue$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openValue$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenValue$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','annotated']};};atr$(openValue$,'openType',function(){if (this.tipo) {
var mm = getrtmm$$(this.tipo);
if (typeof(mm.$t)==='string') {
return OpenTvar$jsint(OpenTypeParam$jsint(mm.$cont,mm.$t));
}
return _openTypeFromTarg(mm.$t, this.tipo);
}
throw Error("OpenValue.openType-we don't have a metamodel!");
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','openType']};});atr$(openValue$,'setter',function(){if (getrtmm$$(this.tipo) && get_model(getrtmm$$(this.tipo)) && get_model(getrtmm$$(this.tipo)).$set) {
return OpenSetter(this);
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:SetterDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','setter']};});atr$(openValue$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','actual']};});atr$(openValue$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','formal']};});atr$(openValue$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','default']};});atr$(openValue$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','shared']};});atr$(openValue$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','toplevel']};});atr$(openValue$,'container',function(){if (this.$parent)return this.$parent;
if (this.toplevel || this.tipo.$crtmm$.$cont===0)return this.containingPackage;
this.$parent=typeLiteral$meta({Type$typeLiteral:this.tipo.$crtmm$.$cont});
return this.$parent;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','container']};});atr$(openValue$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','qualifiedName']};});openValue$.equals=function(o) {
if (is$(o,{t:OpenValue$jsint}))return this.meta===o.meta;
if (is$(o,{t:ValueDeclaration$meta$declaration})&&o.qualifiedName.equals(this.qualifiedName)&&
o.shared==this.shared&&o.actual==this.actual&&o.formal==this.formal&&o.$_default==this.$_default&&
o.variable==this.variable&&o.toplevel==this.toplevel&&o.openType.equals(this.openType)) {
var _mc=this.container,_oc=o.container;
return _mc===null?_oc===null:_mc.equals(_oc);
}
return false;
}
openValue$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','equals']};};atr$(openValue$,'string',function(){var openValue$=this;return "value ".plus(openValue$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','string']};});atr$(openValue$,'hash',function(){var openValue$=this;return openValue$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','hash']};});atr$(openValue$,'containingModule',function(){var openValue$=this;return openValue$.containingPackage.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','containingModule']};});atr$(openValue$,'containingPackage',function(){var openValue$=this;return openValue$.pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','containingPackage']};});})(OpenValue$jsint.$$.prototype);}
return OpenValue$jsint;}
ex$.$init$OpenValue$jsint=$init$OpenValue$jsint;$init$OpenValue$jsint();function ValParamDecl$jsint(cont,param,vpd$){
$init$ValParamDecl$jsint();
if (vpd$===undefined)vpd$=new ValParamDecl$jsint.$$;
vpd$.cont_=cont;
vpd$.param_=param;
OpenValue$jsint(cont.containingPackage,param,vpd$);
if (is$(cont,{t:ClassDeclaration$meta$declaration})) {
vpd$.at$=cont.getMemberDeclaration(vpd$.tipo.$crtmm$.nm,{Kind$getMemberDeclaration:{t:ValueDeclaration$meta$declaration}});
}
return vpd$;
}
ValParamDecl$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:OpenValue$jsint},ps:[{nm:'cont',mt:'prm',$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}]},pa:1},{nm:'param',mt:'prm',$t:{t:$_Object},pa:1}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl']};};
ex$.ValParamDecl$jsint=ValParamDecl$jsint;function $init$ValParamDecl$jsint(){if(ValParamDecl$jsint.$$===undefined){initTypeProto(ValParamDecl$jsint,'ceylon.language.jsint::ValParamDecl',$init$OpenValue$jsint());
(function(valParamDecl$){atr$(valParamDecl$,'cont',function(){return this.cont_;},undefined,function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}]},$cont:ValParamDecl$jsint,pa:1,d:['ceylon.language.jsint','ValParamDecl','$at','cont']};});atr$(valParamDecl$,'param',function(){return this.param_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:ValParamDecl$jsint,pa:1,d:['ceylon.language.jsint','ValParamDecl','$at','param']};});atr$(valParamDecl$,'actual',function(){return (this.param.pa & 2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','actual']};});atr$(valParamDecl$,'formal',function(){return (this.param.pa & 4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','formal']};});atr$(valParamDecl$,'$_default',function(){return (this.param.pa & 8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','default']};});atr$(valParamDecl$,'shared',function(){return (this.param.pa & 1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','shared']};});atr$(valParamDecl$,'variadic',function(){return this.param.seq!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','variadic']};});atr$(valParamDecl$,'variable',function(){return (this.param.pa & 1024) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','variable']};});atr$(valParamDecl$,'defaulted',function(){return this.param.def!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','defaulted']};});atr$(valParamDecl$,'openType',function(){var t = this.param.$t;
if (typeof(t)==='string')return OpenTvar$jsint(OpenTypeParam$jsint(this.cont,t));
return _openTypeFromTarg(t);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:ValParamDecl$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','openType']};});atr$(valParamDecl$,'name',function(){return this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','name']};});atr$(valParamDecl$,'qualifiedName',function(){return qname$(this.cont.tipo.$crtmm$)+"."+this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','qualifiedName']};});valParamDecl$.$_apply=function($$$mptypes){
var mm=getrtmm$$(this.tipo);
if (!extendsType(mm.$t,$$$mptypes.Get$apply))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType($$$mptypes.Set$apply,this.tipo.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
return AppliedValue$jsint(undefined,this.tipo,{Get$Value:$$$mptypes.Get$apply,Set$Value:$$$mptypes.Set$apply});
}
valParamDecl$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$apply',Set$Value:'Set$apply'}},ps:[],$cont:ValParamDecl$jsint,tp:{Get$apply:{def:{t:Anything}},Set$apply:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','apply']};};valParamDecl$.memberApply=function memberApply(c,$mpt){
var r=OpenValue$jsint.$$.prototype.memberApply.call(this,c,$mpt);
if (!(this.at$ && this.at$.shared)) {
var n=this.name;
var nono=function(){
throw StorageException$meta$model("Attribute " + n + " is neither captured nor shared so it has no physical storage allocated and cannot be read by the metamodel");
}
nono.$crtmm$=r.$crtmm$;
r=nono;
}
return r;
}
valParamDecl$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Set$Attribute:'Set$memberApply',Container$Attribute:'Container$memberApply',Get$Attribute:'Get$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:ValParamDecl$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','memberApply']};};valParamDecl$.memberSet=function(a,b){
if (this.shared && this.variable && this.at$) {
return this.at$.memberSet(a,b);
}
throw StorageException$meta$model("Attribute " + this.name + " is neither captured nor shared so it has no physical storage allocated and cannot be read by the metamodel");
}
valParamDecl$.memberSet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','memberSet']};};valParamDecl$.memberGet=function(a){
if (this.shared && this.at$) {
return this.at$.memberGet(a);
}
throw StorageException$meta$model("Attribute " + this.name + " is neither captured nor shared so it has no physical storage allocated and cannot be read by the metamodel");
}
valParamDecl$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','memberGet']};};valParamDecl$.equals=function(o){
if (is$(o,{t:ValParamDecl$jsint}))return o.param===this.param;
var eq=is$(o,{t:ValueDeclaration$meta$declaration})&&o.qualifiedName.equals(this.qualifiedName)&&o.shared==this.shared&&o.actual==this.actual&&o.formal==this.formal&&o.$_default==this.$_default&&o.variable==this.variable&&!o.toplevel&&o.openType.equals(this.openType)&&this.container.equals(o.container);
if (eq && o.parameter) {
return o.variadic==this.variadic&&o.defaulted==this.defaulted;
}
return eq;
}
valParamDecl$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:ValParamDecl$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','equals']};};atr$(valParamDecl$,'container',function(){var valParamDecl$=this;return valParamDecl$.cont;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:ValParamDecl$jsint,pa:3,d:['ceylon.language.jsint','ValParamDecl','$at','container']};});atr$(valParamDecl$,'parameter',function(){var valParamDecl$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,d:['ceylon.language.jsint','ValParamDecl','$at','parameter']};});atr$(valParamDecl$,'toplevel',function(){var valParamDecl$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,d:['ceylon.language.jsint','ValParamDecl','$at','toplevel']};});})(ValParamDecl$jsint.$$.prototype);}
return ValParamDecl$jsint;}
ex$.$init$ValParamDecl$jsint=$init$ValParamDecl$jsint;$init$ValParamDecl$jsint();function OpenValueConstructor$jsint(containingPackage,meta,openValueConstructor$){$init$OpenValueConstructor$jsint();
if(openValueConstructor$===undefined)openValueConstructor$=new OpenValueConstructor$jsint.$$;
openValueConstructor$.containingPackage_=containingPackage;openValueConstructor$.meta_=meta;ValueConstructorDeclaration$meta$declaration(openValueConstructor$);openValueConstructor$.toplevel_=false;return openValueConstructor$;}
OpenValueConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'containingPackage',mt:'prm',$t:{t:Package$meta$declaration},pa:3},{nm:'meta',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:ValueConstructorDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor']};};
ex$.OpenValueConstructor$jsint=OpenValueConstructor$jsint;function $init$OpenValueConstructor$jsint(){if(OpenValueConstructor$jsint.$$===undefined){initTypeProto(OpenValueConstructor$jsint,'ceylon.language.jsint::OpenValueConstructor',Basic,$init$ValueConstructorDeclaration$meta$declaration());
(function(openValueConstructor$){atr$(openValueConstructor$,'containingPackage',function(){return this.containingPackage_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenValueConstructor','$at','containingPackage']};});atr$(openValueConstructor$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:OpenValueConstructor$jsint,pa:1,d:['ceylon.language.jsint','OpenValueConstructor','$at','meta']};});atr$(openValueConstructor$,'container',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.meta).$cont;
this.cont$=openClass$jsint(this.containingPackage,cc);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','container']};});openValueConstructor$.$_apply=function $_apply($m) {
return AppliedValueConstructor$jsint(this.meta,
{Type$AppliedValueConstructor:$m.Result$apply});
}
openValueConstructor$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Result$apply'}},ps:[],$cont:OpenValueConstructor$jsint,tp:{Result$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','apply']};};openValueConstructor$.memberApply=function memberApply($m) {
return AppliedMemberClassValueConstructor$jsint(this.meta,
{Type$AppliedMemberClassValueConstructor:$m.Result$memberApply,
Container$AppliedMemberClassValueConstructor:$m.Container$memberApply});
}
openValueConstructor$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$memberApply',Type$MemberClassValueConstructor:'Result$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:OpenValueConstructor$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','memberApply']};};atr$(openValueConstructor$,'shared',function(){return (getrtmm$$(this.meta).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','shared']};});atr$(openValueConstructor$,'formal',function(){return (getrtmm$$(this.meta).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','formal']};});atr$(openValueConstructor$,'$_default',function(){return (getrtmm$$(this.meta).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','default']};});atr$(openValueConstructor$,'actual',function(){return (getrtmm$$(this.meta).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','actual']};});atr$(openValueConstructor$,'toplevel',function(){return this.toplevel_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenValueConstructor','$at','toplevel']};});atr$(openValueConstructor$,'containingModule',function(){var openValueConstructor$=this;return openValueConstructor$.containingPackage.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','containingModule']};});atr$(openValueConstructor$,'openType',function(){return FreeClass$jsint(this.container);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','openType']};});openValueConstructor$.annotations=function(m){
return annd$annotations(this,m);
}
openValueConstructor$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenValueConstructor$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','annotations']};};openValueConstructor$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openValueConstructor$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenValueConstructor$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','annotated']};};atr$(openValueConstructor$,'name',function(){if (this.name_===undefined) {
var mm=getrtmm$$(this.meta);
var n=mm.d[mm.d.length-1];
if (n.indexOf('$')>0) {
n=n.substring(0,n.indexOf('$'));
}
this.name_=n;
}
return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','name']};});atr$(openValueConstructor$,'qualifiedName',function(){if (this.qn$===undefined) {
this.qn$=qname$(getrtmm$$(this.meta));
}
return this.qn$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','qualifiedName']};});atr$(openValueConstructor$,'string',function(){var openValueConstructor$=this;return "new ".plus(openValueConstructor$.qualifiedName);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValueConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenValueConstructor','$at','string']};});openValueConstructor$.equals=function(other) {
if (is$(other, {t:OpenValueConstructor$jsint})) {
if (other.meta===this.meta)return true;
return this.container.equals(other.container) &&
this.name.equals(other.name);
}
return false;
}
openValueConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','equals']};};})(OpenValueConstructor$jsint.$$.prototype);}
return OpenValueConstructor$jsint;}
ex$.$init$OpenValueConstructor$jsint=$init$OpenValueConstructor$jsint;$init$OpenValueConstructor$jsint();function Paquete$jsint(name,container,_pkg,paquete$){$init$Paquete$jsint();
if(paquete$===undefined)paquete$=new Paquete$jsint.$$;
paquete$.name_=name;paquete$.container_=container;paquete$._pkg_=_pkg;Package$meta$declaration(paquete$);paquete$.string_="package ".plus(paquete$.name);return paquete$;}
Paquete$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'name',mt:'prm',$t:{t:$_String},pa:3},{nm:'container',mt:'prm',$t:{t:Module$meta$declaration},pa:3},{nm:'_pkg',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:Package$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete']};};
ex$.Paquete$jsint=Paquete$jsint;function $init$Paquete$jsint(){if(Paquete$jsint.$$===undefined){initTypeProto(Paquete$jsint,'ceylon.language.jsint::Paquete',Basic,$init$Package$meta$declaration());
(function(paquete$){atr$(paquete$,'name',function(){return this.name_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','name']};});atr$(paquete$,'container',function(){return this.container_;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','container']};});atr$(paquete$,'_pkg',function(){return this._pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Paquete$jsint,pa:1,d:['ceylon.language.jsint','Paquete','$at','_pkg']};});atr$(paquete$,'qualifiedName',function(){var paquete$=this;return paquete$.name;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','qualifiedName']};});atr$(paquete$,'shared',function(){//TODO
throw new Error("Paquete.shared not implemented");
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$at','shared']};});paquete$.members=function members($$$mptypes){
var filter=[];
var isValue=false;
var kind=$$$mptypes.Kind$members;
if (extendsType({t:FunctionDeclaration$meta$declaration},kind))filter.push('m');
if (extendsType({t:ValueDeclaration$meta$declaration},kind)) {
filter.push('a','g','s','o');
isValue=true;
}
if (extendsType({t:'u',l:[{t:ClassWithConstructorsDeclaration$meta$declaration},
{t:ClassWithInitializerDeclaration$meta$declaration}]},kind))filter.push('c','o');
if (extendsType({t:InterfaceDeclaration$meta$declaration},kind))filter.push('i');
if (extendsType({t:AliasDeclaration$meta$declaration},kind))filter.push('als');
var r=[];
var unsh=this.container.meta['$pkgunsh$'+this.name.$_replace('.','$')];
for (var mn in this._pkg) {
var m = this._pkg[mn];
var mt = m.mt;
if (filter.indexOf(mt)>=0) {
if ((m.pa&1)===0) {
var priv=unsh && unsh[mn];
if (priv) {
m=priv;
} else {
mt='';
}
}
if (mt === 'm') {
r.push(OpenFunction$jsint(this, m));
} else if (mt==='c'||(mt==='o'&&!isValue)) {
if (extendsType(kind,{t:ClassWithConstructorsDeclaration$meta$declaration})) {
if (m.$cn===undefined)m=null;
} else if (extendsType(kind,{t:ClassWithInitializerDeclaration$meta$declaration})) {
if (m.$cn)m=null;
}
if(m)r.push(openClass$jsint(this, m));
} else if (mt==='i') {
r.push(OpenInterface$jsint(this, m));
} else if (mt==='a'||mt==='g'||(mt==='o'&&isValue)) {
r.push(OpenValue$jsint(this, m));
} else if (mt==='s') {
r.push(OpenSetter(OpenValue$jsint(this, m)));
} else if (mt==='als') {
r.push(OpenAlias$jsint(m.$crtmm$?m:_findTypeFromModel(this,m)));
}
}
}
return r.$sa$(kind);
}
paquete$.members.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$members'}},ps:[],$cont:Paquete$jsint,tp:{Kind$members:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','members']};};paquete$.annotatedMembers=function annotatedMembers($$$mptypes){
var ms=this.members({Kind$members:$$$mptypes.Kind$annotatedMembers});
if (ms.size>0) {
var rv=[];
var mask = getAnnotationBitmask($$$mptypes.Annotation$annotatedMembers);
for (var i=0; i < ms.size; i++) {
var _mem=ms.$_get(i);
if (_mem.tipo && _mem.tipo.$crtmm$) {
var mm=getrtmm$$(_mem.tipo);
if (mm.pa&mask) {
rv.push(_mem);
continue;
}
var ans=mm.an;
if (typeof(ans)==='function'){ans=ans();mm.an=ans;}
if (ans) for (var j=0; j<ans.length;j++) {
if (is$(ans[j],$$$mptypes.Annotation$annotatedMembers)) {
rv.push(_mem);
break;
}
}
}
}
return rv.$sa$($$$mptypes.Kind$annotatedMembers);
}
return empty();
}
paquete$.annotatedMembers.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMembers'}},ps:[],$cont:Paquete$jsint,tp:{Kind$annotatedMembers:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMembers:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','annotatedMembers']};};paquete$.getMember=function getMember(name$3,$$$mptypes){
var m = this._pkg[name$3];
if (m) {
var mt = m['mt'];
var kind=$$$mptypes.Kind$getMember;
//There's a member alright, but check its type
if ((mt==='a'||mt==='g'||mt==='s')&&extendsType(kind,{t:FunctionOrValueDeclaration$meta$declaration})) {
return mt==='s'?OpenSetter(OpenValue$jsint(this, m)):OpenValue$jsint(this, m);
} else if (mt==='m'&&extendsType(kind,{t:FunctionOrValueDeclaration$meta$declaration})){
return OpenFunction$jsint(this, m);
} else if (mt==='c'&&(extendsType(kind,{t:NestableDeclaration$meta$declaration}))){
return openClass$jsint(this, m);
} else if (mt==='i'&&extendsType(kind,{t:NestableDeclaration$meta$declaration})){
return OpenInterface$jsint(this, m);
} else if (mt==='als'&&extendsType(kind,{t:AliasDeclaration$meta$declaration})){
return OpenAlias$jsint(_findTypeFromModel(this,m));
} else if (mt==='o') {
if (extendsType(kind,{t:ValueDeclaration$meta$declaration})) {
return OpenValue$jsint(this, m);
} else if (extendsType(kind,{t:NestableDeclaration$meta$declaration})) {
return openClass$jsint(this, m);
}
}
console.log("WTF do I do with this " + name$3 + " metatype " + mt + " Kind " + kind);
}
return null;
}
paquete$.getMember.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMember']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,tp:{Kind$getMember:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getMember']};};paquete$.getValue=function getValue(name$4) {
var m = this._pkg[name$4];
if (m && (m['mt']==='g' || m['mt'] === 'o'||m['mt']==='a'||m['mt']==='s')) {
return OpenValue$jsint(this, m);
}
return null;
}
paquete$.getValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getValue']};};paquete$.getClassOrInterface=function getClassOrInterface(name$5){
if (name$5==='Nothing' && this.name==='ceylon.language')return null;
var ci = this._pkg[name$5];
if (ci && ci['mt']==='c') {
return openClass$jsint(this, ci);
} else if (ci && ci['mt']==='i') {
return OpenInterface$jsint(this, ci);
}
return null;
}
paquete$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassOrInterfaceDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getClassOrInterface']};};paquete$.getFunction=function getFunction(name$6){
var f = this._pkg[name$6];
if (f && f['mt']==='m') {
return OpenFunction$jsint(this, f);
}
return null;
}
paquete$.getFunction.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getFunction']};};paquete$.getAlias=function getAlias(an) {
var al=this._pkg[an];
if (al && al.mt==='als') {
var rta = _findTypeFromModel(this, al);
return OpenAlias$jsint(rta);
}
return null;
}
paquete$.getAlias.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:AliasDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getAlias']};};paquete$.annotations=function annotations($$$mptypes){
var _k = '$pkg$ans$' + this.name.replace(/\./g,'$');
var anns = this.container.meta[_k];
if (typeof(anns) === 'function') {
anns = anns();
this.container.meta[_k]=anns;
} else if (anns === undefined) {
anns = [];
}
var r = [];
for (var i=0; i < anns.length; i++) {
var an = anns[i];
if (is$(an, $$$mptypes.Annotation$annotations)) r.push(an);
}
return r.$sa$($$$mptypes.Annotation$annotations);
}
paquete$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:Paquete$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','annotations']};};paquete$.annotated=function($mpt){
var _k = '$pkg$ans$' + this.name.replace(/\./g,'$');
var anns = this.container.meta[_k];
if (typeof(anns) === 'function') {
anns = anns();
this.container.meta[_k]=anns;
} else if (anns === undefined) {
return false;
}
for (var i=0; i<anns.length; i++) {
var an = anns[i];
if (is$(an, $mpt.Annotation$annotated))return true;
}
return false;
}
paquete$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Paquete$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','annotated']};};atr$(paquete$,'suffix',function(){if (this.$suff!==undefined)return this.$suff;
var suffix = '';
if (this.name!==this.container.name) {
var _s = this.name.substring(this.container.name.size);
suffix = _s.replace(/\./g, '$');
}
this.$suff=suffix;
return suffix;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$at','suffix']};});atr$(paquete$,'string',function(){return this.string_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','string']};});})(Paquete$jsint.$$.prototype);}
return Paquete$jsint;}
ex$.$init$Paquete$jsint=$init$Paquete$jsint;$init$Paquete$jsint();function TpMap$jsint(m,ord,$$targs$$,tpMap$){$init$TpMap$jsint();
if(tpMap$===undefined)tpMap$=new TpMap$jsint.$$;
set_type_args(tpMap$,$$targs$$);
tpMap$.m_=m;tpMap$.ord_=ord;Map({Key$Map:{t:TypeParameter$meta$declaration},Item$Map:$$targs$$.V$TpMap},tpMap$);return tpMap$;}
TpMap$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'m',mt:'prm',$t:{t:Anything},pa:1},{nm:'ord',mt:'prm',$t:{t:Anything},pa:1}],tp:{V$TpMap:{dv:'out',sts:[{t:$_Object}]}},sts:[{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:'V$TpMap'}}],an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap']};};
ex$.TpMap$jsint=TpMap$jsint;function $init$TpMap$jsint(){if(TpMap$jsint.$$===undefined){initTypeProto(TpMap$jsint,'ceylon.language.jsint::TpMap',Basic,$init$Map());
(function(tpMap$){atr$(tpMap$,'m',function(){return this.m_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:TpMap$jsint,pa:1,d:['ceylon.language.jsint','TpMap','$at','m']};});atr$(tpMap$,'ord',function(){return this.ord_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:TpMap$jsint,pa:1,d:['ceylon.language.jsint','TpMap','$at','ord']};});tpMap$.equals=function($1m8){var tpMap$=this;return tpMap$.getT$all()['ceylon.language::Map'].$$.prototype.equals.call(tpMap$,$1m8);};tpMap$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$m','equals']};};atr$(tpMap$,'hash',function(){var tpMap$=this;return attrGetter(tpMap$.getT$all()['ceylon.language::Map'],'hash').call(this);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$at','hash']};});tpMap$.clone=function(){var tpMap$=this;return tpMap$;};tpMap$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:TpMap$jsint,a:{V$TpMap:'V$TpMap'}},ps:[],$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$m','clone']};};tpMap$.iterator=function(){var tpMap$=this;function $1m9($$targs$$){var $1m9$=new $1m9.$$;$1m9$.outer$=tpMap$;$1m9$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap}}},$1m9$);$1m9$.$1mb_=(-1);$1m9$.$prop$getIdx={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1m9,pa:1025,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$at','idx']};}};$1m9$.$prop$getIdx.get=function(){return idx};return $1m9$;};$1m9.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:tpMap$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:'V$TpMap'}}}}],d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2']};};function $init$$1m9(){if($1m9.$$===undefined){initTypeProto($1m9,'ceylon.language.jsint::TpMap.miter',Basic,$init$Iterator());
(function($1m9$){atr$($1m9$,'idx',function(){return this.$1mb_;},function($1mc){return this.$1mb_=$1mc;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1m9,pa:1025,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$at','idx']};});$1m9$.next=function(){
var keys=tpMap$.ord||Object.keys(tpMap$.m);
this.idx++;
if (this.idx>=keys.length)return finished();
var k=keys[this.idx];
var v=tpMap$.m[k]||null;
return Entry(v[0],v[1],{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap});
}
$1m9$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:'V$TpMap'}},{t:Finished}]},ps:[],$cont:$1m9,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$m','next']};};})($1m9.$$.prototype);}
return $1m9;}
tpMap$.$init$$1m9=$init$$1m9;$init$$1m9();var $1md;function $1ma(){if($1md===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'miter\' before it was set"),'11:8-14:8','TpMap.ceylon');if($1md===undefined){$1md=INIT$;$1md=$init$$1m9()({Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap}}});$1md.$crtmm$=$1ma.$crtmm$;}
return $1md;}
$1ma.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$1m9()},$cont:tpMap$.iterator,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc3']};};$prop$get$1m9=$1ma;$1ma();return $1ma();};tpMap$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:'V$TpMap'}}}},ps:[],$cont:TpMap$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','iterator']};};tpMap$.$_get=function(k){
var v=this.m[k.qualifiedName];
return v===undefined?null:v[1];
}
tpMap$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'V$TpMap',ps:[{nm:'k',mt:'prm',$t:{t:$_Object}}],$cont:TpMap$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','get']};};tpMap$.defines=function(k){
var v=this.m[k.qualifiedName];
return !(v===undefined);
}
tpMap$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:TpMap$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','defines']};};})(TpMap$jsint.$$.prototype);}
return TpMap$jsint;}
ex$.$init$TpMap$jsint=$init$TpMap$jsint;$init$TpMap$jsint();ex$.$pkg$ans$ceylon$language$jsint=[];
function NatErr(e) {
var that = new NatErr.$$;
var msg;
if (typeof e === 'string') {
msg = e;
} else if (e) {
msg = e.toString();
} else {
msg = "Native JavaScript Error";
}
Throwable(msg,null,that);
return that;
}
initTypeProto(NatErr, 'ceylon.language::NativeError', $init$Throwable());
NatErr.$crtmm$=function(){return{nm:'NativeError',mt:'c',ps:[{$t:{t:Throwable},nm:'src',mt:'prm'}],pa:1,mod:$CCMM$,d:['$','Throwable']};}
ex$.NatErr=NatErr;
ex$.$pkgunsh$ceylon$language={'ChainedIterator':ChainedIterator,'nullElement':$prop$getNullElement,'CycledIterator':CycledIterator,'commaList':commaList,'ElementEntry':ElementEntry,'GroupEntry':GroupEntry,'Missing':Missing,'Measure':Measure,'JoinedSequence':JoinedSequence,'Span':Span,'maximumIntegerExponent':$prop$getMaximumIntegerExponent,'parseFloatExponent':parseFloatExponent,'digitOrSign':$prop$getDigitOrSign,'minRadix':$prop$getMinRadix,'maxRadix':$prop$getMaxRadix,'parseIntegerExponent':parseIntegerExponent,'aIntLower':$prop$getAIntLower,'aIntUpper':$prop$getAIntUpper,'zeroInt':$prop$getZeroInt,'parseDigit':parseDigit,'stringify':stringify};
ex$.$pkgunsh$ceylon$language$serialization={'DeserializationContextImpl':DeserializationContextImpl$serialization,'NativeDeque':NativeDeque$serialization,'NativeMap':NativeMap$serialization,'Partial':Partial$serialization,'ReferencesImpl':ReferencesImpl$serialization,'SerializationContextImpl':SerializationContextImpl$serialization};
});
}(typeof define==='function' && define.amd ? define : function (factory) {
if (typeof exports!=='undefined') { factory(require, exports, module);
} else { throw 'no module loader'; }
}));
