(function(define) {
define(function(rq$, ex$, module) {
//the Ceylon language module
var _CTM$;function $CCMM$(){if (_CTM$===undefined)_CTM$=require('ceylon/language/1.1.0/ceylon.language-1.1.0-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 ne$(value){
return value!==null&&value!==undefined&&is$(value,{t:Sequence});
}
function is$(obj,type){
if(type && type.t){
if(type.t==='i'||type.t==='u'){
return isOfTypes(obj, type);
}
if(obj===null||obj===undefined){
return type.t===Null||type.t===Anything;
}
if(obj.getT$all===undefined){
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 (type.t==='T') {
if (is$(obj,{t:Tuple})) {
if (obj.$$targs$$ && obj.$$targs$$.t==='T') {
if (type.l.length===obj.$$targs$$.l.length) {
for (var i=0;i<type.l.length;i++) {
if (!extendsType(obj.$$targs$$.l[i],type.l[i]))return false;
}
return true;
} else {
return false;
}
} else {
type=retpl$(type);
}
} else {
return false;
}
}
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 + "'");
}
}
}
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);
}
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;
}
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=[];
na.push.apply(na,a.l);
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=[];
na.push.apply(na,b.l);
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=[];
na.push.apply(na,a.l);
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=[];
na.push.apply(na,b.l);
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 nn$(e) {
return e!==null&&e!==undefined&&e!==getNull();
}
function eorl$(comp) {
if (comp===getEqual())return function(a,b){return a.compare(b)===getEqual();}
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$.ne$=ne$;
ex$.is$=is$;
ex$.throwexc=throwexc;
ex$.wrapexc=wrapexc;
ex$.nn$=nn$;
ex$.eorl$=eorl$;
ex$.asrt$=asrt$;
var INIT$={a:1};
ex$.INIT$=INIT$;
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(["Gavin"].rt$({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']};}
function $_Object(object$){$init$$_Object();if(object$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Object"),'?','?')
Anything(object$);object$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_Object,pa:9,an:function(){return[doc$($CCMM$,'$:Object:$at:string')];},d:['$','Object','$at','string']};}};object$.$prop$getString.get=function(){return string};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)].rt$({t:ClassDeclaration$meta$declaration})),by(["Gavin"].rt$({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(object$.hash.string);},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)].rt$({t:ValueDeclaration$meta$declaration})),by(["Gavin"].rt$({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},pa:1,an:function(){return[doc$($CCMM$,'$:null'),by("Gavin")];},d:['$','null']};};function $init$getNull(){if($1.$$===undefined){initTypeProto($1,'ceylon.language::null',$init$Null());
}
return $1;}
ex$.$init$getNull=$init$getNull;$init$getNull();var $2;function getNull(){if($2===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'null\' before it was set"),'38:0-40:35','Null.ceylon');if($2===undefined){$2=INIT$;$2=$init$getNull()();$2.$crtmm$=getNull.$crtmm$;}
return $2;}
ex$.getNull=getNull;getNull.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},pa:1,an:function(){return[doc$($CCMM$,'$:null'),by(["Gavin"].rt$({t:$_String}))];},d:['$','null']};};$prop$getNull={get:getNull,$crtmm$:getNull.$crtmm$};getNull=getNull;$prop$getNull=getNull;ex$.$prop$getNull=$prop$getNull;function Identifiable(identifiable$){identifiable$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Identifiable,pa:11,an:function(){return[doc$($CCMM$,'$:Identifiable:$at:hash'),see([$init$OpenFunction()(lmp$(ex$,'$'),identityHash)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Identifiable','$at','hash']};}};identifiable$.$prop$getHash.get=function(){return hash};}
Identifiable.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Identifiable'),by(["Gavin"].rt$({t:$_String}))];},d:['$','Identifiable']};};
ex$.Identifiable=Identifiable;function $init$Identifiable(){if(Identifiable.$$===undefined){initTypeProtoI(Identifiable,'ceylon.language::Identifiable');
(function(identifiable$){identifiable$.equals=function($3){var identifiable$=this;var $4;if(is$(($4=$3),{t:Identifiable})){return (identifiable$===$4);}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()(lmp$(ex$,'$'),identityHash)].rt$({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:65,an:function(){return[doc$($CCMM$,'$:Callable'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Tuple)].rt$({t:ClassDeclaration$meta$declaration}))];},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(callable,parms,targs) {
if (callable.getT$all === undefined) {
callable.getT$all=Callable.getT$all;
}
var set_meta = callable.$crtmm$ === undefined;
if (set_meta) {
callable.$crtmm$={ps:[],mod:$CCMM$,d:['$','Callable']};
if (parms !== undefined) {
callable.$crtmm$['ps']=parms;
}
}
if (targs !== undefined && callable.$$targs$$ === undefined) {
callable.$$targs$$=targs;
if (set_meta) {
callable.$crtmm$['$t']=targs['Return'];
}
}
return callable;
}
initExistingTypeProto($JsCallable, Function, 'ceylon.language::JsCallable', Callable);
function nop$() { return null; }
function JsCallable(o,f) {
if (o===null || o===undefined) return nop$;
var f2 = function() {
var arg=[].slice.call(arguments,0);
if (arg.length==1 && is$(arg[0],{t:Tuple})) {
var mm=getrtmm$$(f);
var typecheck={t:Iterable};
if (arg[0].$$targs$$ && arg[0].$$targs$$.Element$Iterable)typecheck.a={Element$Iterable:arg[0].$$targs$$.Element$Iterable};
if (mm && mm.ps!==undefined
&& (mm.ps.length>1 || (mm.ps.length==1
&& (mm.ps[0].seq || !extendsType(mm.ps[0].$t, typecheck))))) {
var a=arg[0].elem$;
if (a===undefined) {
a=[];
for (var i=0;i<arg[0].size;i++)a.push(arg[0].$_get(i));
}
arg=a;
}
}
return f.apply(o, arg);
};
f2.$crtmm$=f.$crtmm$===undefined?Callable.$crtmm$:f.$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 JsCallableList(value) {
return function() {
var rval = Array(value.length);
for (var i = 0; i < value.length; i++) {
var c = value[i];
rval[i] = c.f.apply(c.o, arguments);
}
return value.length===0?getEmpty():ArraySequence(rval,{Element$ArraySequence:{t:Callable}});
};
}
JsCallableList.$crtmm$={tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};
ex$.JsCallableList=JsCallableList;
ex$.JsCallable=JsCallable;
ex$.$JsCallable=$JsCallable;
function dre$$(object, type, loc) {
if (is$(object, type))return;
if (object.$$ !== undefined)throw new Error("Cannot modify the type of an object at runtime " + loc);
var actual = Object.getOwnPropertyNames(object);
var sats = type.t.$$.prototype.getT$all();
for (var sat in sats) {
var expected = sats[sat].dynmem$;
if (typeof(expected)==='function') {
for (var i=0; i < expected.length; i++) {
if (actual.indexOf(expected[i])<0) {
throw new Error("Native object is missing property " + expected[i] + " " + loc);
}
}
}
}
object.$$=type.t.$$;
object.getT$name=function(){return type.t.$$.T$name};
object.getT$all=function(){return type.t.$$.T$all};
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 {
console.log(o);
}
}
ex$.pndo$=pndo$;
function for$(makeNextFunc, $$targs$$, compr) {
$init$for$();
if (compr===undefined) {compr = new for$.$$;}
Basic(compr);
compr.makeNextFunc = makeNextFunc;
compr.$$targs$$=$$targs$$;
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$={an:function(){return[shared(),actual()]},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.$$;}
it.$$targs$$=$$targs$$;
Basic(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 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"].rt$({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($5,cause,throwable$){$init$Throwable();if(throwable$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Throwable"),'?','?')
if($5===undefined){$5=null;}
throwable$.$5_=$5;if(cause===undefined){cause=null;}
throwable$.cause_=cause;(function(msg,cause,exc) {
var _caller=arguments.callee.caller.caller;
exc.stack_trace=[];
var ilc=0;
var ilf=null;
while(_caller) {
exc.stack_trace.push(_caller);
_caller = _caller.caller;
if (_caller===ilf) {
ilc++;
if (ilc>2) {
exc.stack_trace.push("CIRCULAR");
_caller = null;
}
} else if (ilc===0 && _caller && exc.stack_trace.contains(_caller)) {
ilc=1;
ilf=_caller;
}
}
exc.toString=function(){return this.string;}
}
)($5,cause,throwable$);throwable$.$prop$getCause={$crtmm$: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']};}};throwable$.$prop$getCause.get=function(){return cause};throwable$.$prop$get$5={$crtmm$: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']};}};throwable$.$prop$get$5.get=function(){return $5};throwable$.$prop$getMessage={$crtmm$: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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Throwable','$at','message']};}};throwable$.$prop$getMessage.get=function(){return message};throwable$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Throwable,pa:11,d:['$','Throwable','$at','string']};}};throwable$.$prop$getString.get=function(){return string};throwable$.$prop$getSuppressed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Throwable}}},$cont:Throwable,pa:65,an:function(){return[doc$($CCMM$,'$:Throwable:$at:suppressed')];},d:['$','Throwable','$at','suppressed']};}};return throwable$;}
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:337,an:function(){return[doc$($CCMM$,'$:Throwable'),by(["Gavin","Tom"].rt$({t:$_String}))];},d:['$','Throwable']};};
ex$.Throwable=Throwable;function $init$Throwable(){if(Throwable.$$===undefined){initTypeProto(Throwable,'ceylon.language::Throwable',Basic);
(function(throwable$){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$,'$5',function(){return this.$5_;},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$,'message',function(){var throwable$=this;return ($6=($7=throwable$.$5,nn$($7)?$7:($8=throwable$.cause,nn$($8)?$8.message:null)),nn$($6)?$6:"");},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)].rt$({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()(lmp$(ex$,'$'),printStackTrace)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Throwable','$m','printStackTrace']};};throwable$.addSuppressed=function addSuppressed(sup) {
if (this.$sups$===undefined) {
this.$sups$=[].rt$({t:Throwable});
}
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:65,an:function(){return[doc$($CCMM$,'$:Throwable:$m:addSuppressed')];},d:['$','Throwable','$m','addSuppressed']};};atr$(throwable$,'suppressed',function(){return this.$sups$===undefined||this.$sups$.length===0?getEmpty():ArraySequence(this.$sups$,{Element$ArraySequence:{t:Throwable}});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Throwable}}},$cont:Throwable,pa:65,an:function(){return[doc$($CCMM$,'$:Throwable:$at:suppressed')];},d:['$','Throwable','$at','suppressed']};});})(Throwable.$$.prototype);}
return Throwable;}
ex$.$init$Throwable=$init$Throwable;$init$Throwable();var $6,$7,$8;function printStackTrace(exc, _write) {
if (_write===undefined)_write=getProcess().writeError;
var _c = className(exc);
if (exc.message.size > 0) {
_c += ' "' + exc.message + '"';
}
_write(_c);_write(getOperatingSystem().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(getOperatingSystem().newline);
return;
}
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(getOperatingSystem().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:Anything},an:function(){return[doc$($CCMM$,'$:printStackTrace:$m:write$yuvcdj')];}}],pa:65,an:function(){return[doc$($CCMM$,'$:printStackTrace')];},d:['$','printStackTrace']};};
ex$.printStackTrace=printStackTrace;function Exception($9,$a,exception$){$init$Exception();if(exception$===undefined)exception$=new Exception.$$;
if($9===undefined){$9=null;}
exception$.$9_=$9;if($a===undefined){$a=null;}
exception$.$a_=$a;Throwable(exception$.$9,exception$.$a,exception$);exception$.$prop$get$9={$crtmm$: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']};}};exception$.$prop$get$9.get=function(){return $9};exception$.$prop$get$a={$crtmm$: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$.$prop$get$a.get=function(){return $a};return exception$;}
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:65,an:function(){return[doc$($CCMM$,'$:Exception'),by(["Gavin","Tom"].rt$({t:$_String}))];},d:['$','Exception']};};
ex$.Exception=Exception;function $init$Exception(){if(Exception.$$===undefined){initTypeProto(Exception,'ceylon.language::Exception',$init$Throwable());
(function(exception$){atr$(exception$,'$9',function(){return this.$9_;},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$,'$a',function(){return this.$a_;},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)].rt$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].rt$({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.$$.prototype);}
return Comparison;}
ex$.$init$Comparison=$init$Comparison;$init$Comparison();function $b(){var equal$=new $b.$$;Comparison("equal",equal$);return equal$;
};$b.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},pa:1,an:function(){return[doc$($CCMM$,'$:equal')];},d:['$','equal']};};function $init$getEqual(){if($b.$$===undefined){initTypeProto($b,'ceylon.language::equal',$init$Comparison());
}
return $b;}
ex$.$init$getEqual=$init$getEqual;$init$getEqual();var $c;function getEqual(){if($c===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'equal\' before it was set"),'8:0-9:49','Comparison.ceylon');if($c===undefined){$c=INIT$;$c=$init$getEqual()();$c.$crtmm$=getEqual.$crtmm$;}
return $c;}
ex$.getEqual=getEqual;getEqual.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$b},pa:1,an:function(){return[doc$($CCMM$,'$:equal')];},d:['$','equal']};};$prop$getEqual={get:getEqual,$crtmm$:getEqual.$crtmm$};getEqual=getEqual;$prop$getEqual=getEqual;ex$.$prop$getEqual=$prop$getEqual;function $d(){var smaller$=new $d.$$;Comparison("smaller",smaller$);return smaller$;
};$d.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},pa:1,an:function(){return[doc$($CCMM$,'$:smaller')];},d:['$','smaller']};};function $init$getSmaller(){if($d.$$===undefined){initTypeProto($d,'ceylon.language::smaller',$init$Comparison());
}
return $d;}
ex$.$init$getSmaller=$init$getSmaller;$init$getSmaller();var $e;function getSmaller(){if($e===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'smaller\' before it was set"),'11:0-12:53','Comparison.ceylon');if($e===undefined){$e=INIT$;$e=$init$getSmaller()();$e.$crtmm$=getSmaller.$crtmm$;}
return $e;}
ex$.getSmaller=getSmaller;getSmaller.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$d},pa:1,an:function(){return[doc$($CCMM$,'$:smaller')];},d:['$','smaller']};};$prop$getSmaller={get:getSmaller,$crtmm$:getSmaller.$crtmm$};getSmaller=getSmaller;$prop$getSmaller=getSmaller;ex$.$prop$getSmaller=$prop$getSmaller;function $f(){var larger$=new $f.$$;Comparison("larger",larger$);return larger$;
};$f.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},pa:1,an:function(){return[doc$($CCMM$,'$:larger')];},d:['$','larger']};};function $init$getLarger(){if($f.$$===undefined){initTypeProto($f,'ceylon.language::larger',$init$Comparison());
}
return $f;}
ex$.$init$getLarger=$init$getLarger;$init$getLarger();var $g;function getLarger(){if($g===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'larger\' before it was set"),'14:0-15:51','Comparison.ceylon');if($g===undefined){$g=INIT$;$g=$init$getLarger()();$g.$crtmm$=getLarger.$crtmm$;}
return $g;}
ex$.getLarger=getLarger;getLarger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$f},pa:1,an:function(){return[doc$($CCMM$,'$:larger')];},d:['$','larger']};};$prop$getLarger={get:getLarger,$crtmm$:getLarger.$crtmm$};getLarger=getLarger;$prop$getLarger=getLarger;ex$.$prop$getLarger=$prop$getLarger;function identityHash(x) {
var hash = x.BasicID;
return (hash !== undefined)
? hash : (x.BasicID = BasicID++);
}
identityHash.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'identifiable',mt:'prm',$t:{t:Identifiable}}],pa:65,an:function(){return[doc$($CCMM$,'$:identityHash'),see([$init$OpenFunction()(lmp$(ex$,'$'),identical)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','identityHash']};};
ex$.identityHash=identityHash;function rethrow$impl($h){throw wrapexc($h,'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"].rt$({t:$_String}))];},d:['ceylon.language.impl','rethrow']};};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,Element$Iterable:$$targs$$.Element$BaseIterable},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},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,Item$Map:$$targs$$.Item$BaseMap},baseMap$);return baseMap$;}
BaseMap$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Key$BaseMap:{sts:[{t:$_Object}]},Item$BaseMap:{sts:[{t:$_Object}]}},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$);List({Element$List:$$targs$$.Element$BaseList},baseList$);return baseList$;}
BaseList$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseList:{}},sts:[{t:List,a:{Element$List:'Element$BaseList'}}],pa:257,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$List());
}
return BaseList$impl;}
ex$.$init$BaseList$impl=$init$BaseList$impl;$init$BaseList$impl();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$List:{t:Character}};$_Object(baseCharacterList$);List({Element$List:{t:Character}},baseCharacterList$);return baseCharacterList$;}
BaseCharacterList$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],sts:[{t:List,a:{Element$List:{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$List());
}
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},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:257,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());
}
return BaseSequence$impl;}
ex$.$init$BaseSequence$impl=$init$BaseSequence$impl;$init$BaseSequence$impl();
//#Anything
function Iterable($$targs$$,iterable$){Category({Element$Category:{t:$_Object}},iterable$);set_type_args(iterable$,$$targs$$,Iterable);iterable$.$prop$getEmpty={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:empty')];},d:['$','Iterable','$at','empty']};}};iterable$.$prop$getEmpty.get=function(){return empty};iterable$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:size')];},d:['$','Iterable','$at','size']};}};iterable$.$prop$getSize.get=function(){return size};iterable$.$prop$getRest={$crtmm$: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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$at','rest']};}};iterable$.$prop$getRest.get=function(){return rest};iterable$.$prop$getCoalesced={$crtmm$: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')];},d:['$','Iterable','$at','coalesced']};}};iterable$.$prop$getCoalesced.get=function(){return coalesced};}
Iterable.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Iterable:{dv:'out'},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)].rt$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].rt$({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']};}};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($i){return true;}),[{nm:'e',mt:'prm',$t:'Element$Iterable'}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[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($j){var iterable$=this;if(($j<0)){return true;}var $k=(0);function set$k($l){return $k=$l;};var $n;for(var $m=iterable$.iterator();($n=$m.next())!==getFinished();){if(((($o=$k,$k=$o.successor,$o)).valueOf()==($j).valueOf())){return true;}var $o;}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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','longerThan']};};iterable$.shorterThan=function($p){var iterable$=this;if(($p<=0)){return false;}var $q=(0);function set$q($r){return $q=$r;};var $t;for(var $s=iterable$.iterator();($t=$s.next())!==getFinished();){if(((($q=$q.successor)).valueOf()==($p).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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','shorterThan']};};iterable$.contains=function($u){var iterable$=this;return iterable$.any(ifExists($JsCallable(($v=$u,JsCallable($v,nn$($v)?$v.equals:null)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:$_Object}]}})));};iterable$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Iterable,pa:11,d:['$','Iterable','$m','contains']};};atr$(iterable$,'first',function(){var iterable$=this;var $w;if(!is$(($w=iterable$.iterator().next()),{t:Finished})){return $w;}else {var $x;asrt$((is$(($x=null),iterable$.$$targs$$.Absent$Iterable)),"iterator for nonempty iterable must produce at \nleast one element: \'is Absent null\' at Iterable.ceylon (185:19-185:34)",'183:12-185: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 $y=iterable$.first;function set$y($z){return $y=$z;};$prop$get$y={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable']},$cont:iterable$.$prop$getLast,pa:1027,d:['$','Iterable','$at','last','$at','e$eiotyw']};}};$prop$get$y.get=function(){return $y};$prop$get$y.set=set$y;if(set$y.$crtmm$===undefined)set$y.$crtmm$=$prop$get$y.$crtmm$;var $11;for(var $10=iterable$.iterator();($11=$10.next())!==getFinished();){$y=$11;}return $y;},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']};});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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$at','rest']};});atr$(iterable$,'exceptLast',function(){var iterable$=this;function $12($$targs$$){var $12$=new $12.$$;$12$.outer$=iterable$;$12$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$12$);return $12$;
};$12.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$12$.$prop$getExceptLast,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb']};};function $init$$12(){if($12.$$===undefined){initTypeProto($12,'ceylon.language::Iterable.exceptLast',Basic,$init$Iterable());
(function($12$){$12$.iterator=function(){var $12$=this;var $13=iterable$.iterator();function $14($$targs$$){var $14$=new $14.$$;$14$.outer$=$12$;$14$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$14$);$14$.$15_=$13.next();$14$.$prop$get$15={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$14,pa:1027,d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb','$m','iterator','$o','iterator$vd668t','$at','current$j0dy6v']};}};$14$.$prop$get$15.get=function(){return $15};return $14$;
};$14.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$12$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb','$m','iterator','$o','iterator$vd668t']};};function $init$$14(){if($14.$$===undefined){initTypeProto($14,'ceylon.language::Iterable.exceptLast.iterator',Basic,$init$Iterator());
(function($14$){atr$($14$,'$15',function(){return this.$15_;},function($16){return this.$15_=$16;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$14,pa:1027,d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb','$m','iterator','$o','iterator$vd668t','$at','current$j0dy6v']};});$14$.next=function(){var $14$=this;var $17;if(!is$(($17=$13.next()),{t:Finished})){var $18=$14$.$15;$14$.$15=$17;return $18;}else {return getFinished();}};$14$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$14,pa:3,d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb','$m','iterator','$o','iterator$vd668t','$m','next']};};})($14.$$.prototype);}
return $14;}
$init$$14();var $19;function get$19(){if($19===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'223:16-236:16','Iterable.ceylon');if($19===undefined){$19=INIT$;$19=$init$$14()({Element$Iterator:iterable$.$$targs$$.Element$Iterable});$19.$crtmm$=get$19.$crtmm$;}
return $19;}
get$19.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$14},$cont:$12$.iterator,d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb','$m','iterator','$o','iterator$vd668u']};};$prop$get$19={get:get$19,$crtmm$:get$19.$crtmm$};get$14=get$19;$prop$get$14=get$19;return get$19();};$12$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$12,pa:3,d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpb','$m','iterator']};};})($12.$$.prototype);}
return $12;}
$init$$12();var $1a;function get$1a(){if($1a===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'exceptLast\' before it was set"),'219:8-239:8','Iterable.ceylon');if($1a===undefined){$1a=INIT$;$1a=$init$$12()({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});$1a.$crtmm$=get$1a.$crtmm$;}
return $1a;}
get$1a.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$12},$cont:$12$.$prop$getExceptLast,d:['$','Iterable','$at','exceptLast','$o','exceptLast$pcsqpc']};};$prop$get$1a={get:get$1a,$crtmm$:get$1a.$crtmm$};get$12=get$1a;$prop$get$12=get$1a;return get$1a();},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$.sequence=function(){var iterable$=this;var $1b=$_Array(iterable$,{Element$Array:iterable$.$$targs$$.Element$Iterable});if($1b.empty){return getEmpty();}else {return ArraySequence($1b,{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$.getFromFirst=function($1c){var iterable$=this;var $1d=(0);function set$1d($1e){return $1d=$1e;};var $1g;for(var $1f=iterable$.iterator();($1g=$1f.next())!==getFinished();){if(((($1h=$1d,$1d=$1h.successor,$1h)).valueOf()==($1c).valueOf())){return $1g;}var $1h;}
if(getFinished()===$1g){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$.$_map=function($1i,$$$mptypes){var iterable$=this;return for$(function(){var $1j=iterable$.iterator(),$1k=getFinished();var n$1k=function(){return $1k=$1j.next();}
n$1k();return function(){if($1k!==getFinished()){var $1l=$1k;var $1m=$1i($1l);n$1k();return $1m;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$$$mptypes.Result$map});};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:'Result$map',an:function(){return[doc("The mapping to apply to the elements.")];}}],$cont:Iterable,tp:{Result$map:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:map'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.collect)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','map']};};iterable$.flatMap=function($1n,$$$mptypes){var iterable$=this;return expand(iterable$.$_map(JsCallable(iterable$,$1n),{Result$map:{t:Iterable,a:{Absent$Iterable:$$$mptypes.OtherAbsent$flatMap,Element$Iterable:$$$mptypes.Result$flatMap}}}),{InnerAbsent$expand:$$$mptypes.OtherAbsent$flatMap,Element$expand:$$$mptypes.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:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},an:function(){return[doc$($CCMM$,'$:Iterable:$m:flatMap:$m:collecting$zxguw')];}}],$cont:Iterable,tp:{Result$flatMap:{},OtherAbsent$flatMap:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:flatMap'),see([$init$OpenFunction()(lmp$(ex$,'$'),expand)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','flatMap']};};iterable$.$_filter=function($1o){var iterable$=this;return for$(function(){var $1p=iterable$.iterator(),$1q=getFinished();var n$1q=function(){while(($1q=$1p.next())!==getFinished()){if($1o($1q)){return $1q;}
}
return getFinished();}
n$1q();return function(){if($1q!==getFinished()){var $1r=$1q;var $1s=$1r;n$1q();return $1s;}
return getFinished();}
},{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:$_Boolean},an:function(){return[doc("The predicate the elements must satisfy.")];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:filter'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.select)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','filter']};};iterable$.fold=function($1t,$$$mptypes){var iterable$=this;var $1u=function($1v){var $1w=$1t;function set$1w($1x){return $1w=$1x;};var $1z;for(var $1y=iterable$.iterator();($1z=$1y.next())!==getFinished();){$1w=$1v($1w,$1z);}return $1w;};$1u.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:'Result$fold',an:function(){return[doc$($CCMM$,'$:Iterable:$m:fold:$m:accumulating$s830c5')];}}],$t:$$$mptypes.Result$fold};};return JsCallable(0,$1u);};iterable$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$fold',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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_reduce),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.scan)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','fold']};};iterable$.$_reduce=function($20,$$$mptypes){var iterable$=this;var $21=iterable$.iterator();var $22;if(!is$(($22=$21.next()),{t:Finished})){var $23=$22;function set$23($24){return $23=$24;};var $25;while(!is$(($25=$21.next()),{t:Finished})){$23=$20($23,$25);}return $23;}else {var $26;asrt$((is$(($26=null),iterable$.$$targs$$.Absent$Iterable)),"iterable must be empty: \'is Absent null\' at Iterable.ceylon (443:19-443:34)",'442:12-443: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:'Result$reduce',an:function(){return[doc$($CCMM$,'$:Iterable:$m:reduce:$m:accumulating$tag08u')];}}],$cont:Iterable,tp:{Result$reduce:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:reduce'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','reduce']};};iterable$.scan=function($27,$$$mptypes){var iterable$=this;var $28=function($29){function $2a($$targs$$){var $2a$=new $2a.$$;$2a$.outer$=iterable$;$2a$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$$$mptypes.Result$scan},$2a$);return $2a$;
};$2a.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$2a$.scan,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Result$scan'}}],d:['$','Iterable','$m','scan','$o','iterable$iqmd8o']};};function $init$$2a(){if($2a.$$===undefined){initTypeProto($2a,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($2a$){atr$($2a$,'empty',function(){var $2a$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2a,pa:3,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$at','empty']};});atr$($2a$,'first',function(){var $2a$=this;return $27;},undefined,function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2a,pa:3,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$at','first']};});atr$($2a$,'size',function(){var $2a$=this;return (1).plus(iterable$.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$2a,pa:3,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$at','size']};});$2a$.iterator=function(){var $2a$=this;var $2b=iterable$.iterator();function $2c($$targs$$){var $2c$=new $2c.$$;$2c$.outer$=$2a$;$2c$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$$$mptypes.Result$scan},$2c$);$2c$.$2d_=true;$2c$.$prop$get$2d={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2c,pa:1027,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m','$at','returnInitial$tng9h7']};}};$2c$.$prop$get$2d.get=function(){return $2d};$2c$.$2e_=$27;$2c$.$prop$get$2e={$crtmm$:function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2c,pa:1027,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m','$at','partial$7usvee']};}};$2c$.$prop$get$2e.get=function(){return $2e};return $2c$;
};$2c.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$2a$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Result$scan'}}],d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m']};};function $init$$2c(){if($2c.$$===undefined){initTypeProto($2c,'ceylon.language::Iterable.iterable.iterator',Basic,$init$Iterator());
(function($2c$){atr$($2c$,'$2d',function(){return this.$2d_;},function($2f){return this.$2d_=$2f;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2c,pa:1027,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m','$at','returnInitial$tng9h7']};});atr$($2c$,'$2e',function(){return this.$2e_;},function($2g){return this.$2e_=$2g;},function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2c,pa:1027,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m','$at','partial$7usvee']};});$2c$.next=function(){var $2c$=this;if($2c$.$2d){$2c$.$2d=false;return $27;}else {var $2h;if(!is$(($2h=$2b.next()),{t:Finished})){$2c$.$2e=$29($2c$.$2e,$2h);return $2c$.$2e;}else {return getFinished();}}};$2c$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$scan',{t:Finished}]},ps:[],$cont:$2c,pa:3,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m','$m','next']};};atr$($2c$,'string',function(){var $2c$=this;return $2a$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$2c,pa:3,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4m','$at','string']};});})($2c.$$.prototype);}
return $2c;}
$init$$2c();var $2i;function get$2i(){if($2i===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'490:16-507:16','Iterable.ceylon');if($2i===undefined){$2i=INIT$;$2i=$init$$2c()({Element$Iterator:$$$mptypes.Result$scan});$2i.$crtmm$=get$2i.$crtmm$;}
return $2i;}
get$2i.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$2c},$cont:$2a$.iterator,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator','$o','iterator$rami4n']};};$prop$get$2i={get:get$2i,$crtmm$:get$2i.$crtmm$};get$2c=get$2i;$prop$get$2c=get$2i;return get$2i();};$2a$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Result$scan'}},ps:[],$cont:$2a,pa:3,d:['$','Iterable','$m','scan','$o','iterable$iqmd8o','$m','iterator']};};})($2a.$$.prototype);}
return $2a;}
$init$$2a();var $2j;function get$2j(){if($2j===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'484:8-510:8','Iterable.ceylon');if($2j===undefined){$2j=INIT$;$2j=$init$$2a()({Absent$Iterable:{t:Nothing},Element$Iterable:$$$mptypes.Result$scan});$2j.$crtmm$=get$2j.$crtmm$;}
return $2j;}
get$2j.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$2a},$cont:$2a$.scan,d:['$','Iterable','$m','scan','$o','iterable$iqmd8n']};};$prop$get$2j={get:get$2j,$crtmm$:get$2j.$crtmm$};get$2a=get$2j;$prop$get$2a=get$2j;return get$2j();};$28.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:'Result$scan',an:function(){return[doc$($CCMM$,'$:Iterable:$m:scan:$m:accumulating$ll7ghb')];}}],$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:$$$mptypes.Result$scan}}};};return JsCallable(0,$28);};iterable$.scan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Result$scan'}},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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','scan']};};iterable$.find=function($2k){var iterable$=this;var $2m;for(var $2l=iterable$.iterator();($2m=$2l.next())!==getFinished();){var $2n;if(nn$(($2n=$2m))&&$2k($2n)){return $2n;}}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:$_Boolean},an:function(){return[doc("The predicate the element must satisfy.")];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:find')];},d:['$','Iterable','$m','find']};};iterable$.findLast=function($2o){var iterable$=this;var $2p=null;function set$2p($2q){return $2p=$2q;};var $2s;for(var $2r=iterable$.iterator();($2s=$2r.next())!==getFinished();){var $2t;if(nn$(($2t=$2s))&&$2o($2t)){$2p=$2t;}}return $2p;};iterable$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc("The predicate the element must satisfy.")];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:findLast')];},d:['$','Iterable','$m','findLast']};};iterable$.max=function($2u){var iterable$=this;var $2v=iterable$.iterator();var $2w;if(!is$(($2w=$2v.next()),{t:Finished})){var $2x=$2w;function set$2x($2y){return $2x=$2y;};var $2z;while(!is$(($2z=$2v.next()),{t:Finished})){if($2u($2z,$2x).equals(getLarger())){$2x=$2z;}}return $2x;}else {var $30;asrt$((is$(($30=null),iterable$.$$targs$$.Absent$Iterable)),"iterable must be empty: \'is Absent null\' at Iterable.ceylon (592:19-592:34)",'591:12-592: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:Comparison},an:function(){return[doc$($CCMM$,'$:Iterable:$m:max:$m:comparing$iit3az')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:max')];},d:['$','Iterable','$m','max']};};iterable$.spread=function($31,$$$mptypes){var iterable$=this;return flatten($JsCallable((function($32){return for$(function(){var $33=iterable$.iterator(),$34=getFinished();var n$34=function(){return $34=$33.next();}
n$34();return function(){if($34!==getFinished()){var $35=$34;var $36=$31($35)($32);n$34();return $36;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$$$mptypes.Result$spread});}),[{nm:'args',mt:'prm',$t:'Args$spread'}],{Return$Callable:{t:Iterable,a:{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:$$$mptypes.Result$spread}},Arguments$Callable:{t:'T',l:[$$$mptypes.Args$spread]}}),{Args$flatten:$$$mptypes.Args$spread,Return$flatten:{t:Iterable,a:{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:$$$mptypes.Result$spread}}});};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:'Result$spread',Arguments$Callable:'Args$spread'}}}],$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($37){var iterable$=this;var $38=$_Array(iterable$,{Element$Array:iterable$.$$targs$$.Element$Iterable});if($38.empty){return getEmpty();}else {$38.sortInPlace(JsCallable(iterable$,$37));return ArraySequence($38,{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:Comparison},an:function(){return[doc$($CCMM$,'$:Iterable:$m:sort:$m:comparing$6qhk6z')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:sort'),see([$init$OpenFunction()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction()(lmp$(ex$,'$'),byDecreasing)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','sort']};};iterable$.collect=function($39,$$$mptypes){var iterable$=this;return iterable$.$_map(JsCallable(iterable$,$39),{Result$map:$$$mptypes.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:'Result$collect',an:function(){return[doc("The transformation applied to the elements.")];}}],$cont:Iterable,tp:{Result$collect:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:collect'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_map)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','collect']};};iterable$.select=function($3a){var iterable$=this;return iterable$.$_filter(JsCallable(iterable$,$3a)).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:$_Boolean},an:function(){return[doc("The predicate the elements must satisfy.")];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:select'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_filter)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','select']};};iterable$.count=function($3b){var iterable$=this;var $3c=(0);function set$3c($3d){return $3c=$3d;};var $3f;for(var $3e=iterable$.iterator();($3f=$3e.next())!==getFinished();){if($3b($3f)){($3g=$3c,$3c=$3g.successor,$3g);var $3g;}}return $3c;};iterable$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:Iterable:$m:count:$m:selecting$wa5l0i')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:count')];},d:['$','Iterable','$m','count']};};iterable$.any=function($3h){var iterable$=this;var $3j;for(var $3i=iterable$.iterator();($3j=$3i.next())!==getFinished();){if($3h($3j)){return true;}}return false;};iterable$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:Iterable:$m:any:$m:selecting$2wzmxl')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:any'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_every)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','any']};};iterable$.$_every=function($3k){var iterable$=this;var $3m;for(var $3l=iterable$.iterator();($3m=$3l.next())!==getFinished();){if(!$3k($3m)){return false;}}return true;};iterable$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:Iterable:$m:every:$m:selecting$uznjta')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:every'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.any)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','every']};};iterable$.skip=function($3n){var iterable$=this;if(($3n<=0)){return iterable$;}else {var $3o=false;var $3q=false;var $3p=(function(){function $3r($$targs$$){var $3r$=new $3r.$$;$3r$.outer$=iterable$;$3r$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$3r$);return $3r$;
};$3r.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$3r$.skip,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','skip','$o','iterable$4vxoa3']};};function $init$$3r(){if($3r.$$===undefined){initTypeProto($3r,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($3r$){$3r$.iterator=function(){var $3r$=this;var $3s=iterable$.iterator();var $3t=(0);function set$3t($3u){return $3t=$3u;};while(((($3v=$3t,$3t=$3v.successor,$3v)<$3n)&&!is$($3s.next(),{t:Finished}))){}var $3v;return $3s;};$3r$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$3r,pa:3,d:['$','Iterable','$m','skip','$o','iterable$4vxoa3','$m','iterator']};};})($3r.$$.prototype);}
return $3r;}
$init$$3r();var $3w;function get$3w(){if($3w===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'767:12-777:12','Iterable.ceylon');if($3w===undefined){$3w=INIT$;$3w=$init$$3r()({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});$3w.$crtmm$=get$3w.$crtmm$;}
return $3w;}
get$3w.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$3r},$cont:$3r$.skip,d:['$','Iterable','$m','skip','$o','iterable$4vxoa4']};};$prop$get$3w={get:get$3w,$crtmm$:get$3w.$crtmm$};get$3r=get$3w;$prop$get$3r=get$3w;return get$3w();}());if($3p!==undefined){return $3p;}}
};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()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistFrom),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skipWhile),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','skip']};};iterable$.take=function($3x){var iterable$=this;if(($3x<=0)){return getEmpty();}else {var $3y=false;var $40=false;var $3z=(function(){function $41($$targs$$){var $41$=new $41.$$;$41$.outer$=iterable$;$41$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$41$);$41$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},$cont:$41,pa:3,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$at','first']};}};$41$.$prop$getFirst.get=function(){return first};return $41$;
};$41.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$41$.take,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','take','$o','iterable$a55cm5']};};function $init$$41(){if($41.$$===undefined){initTypeProto($41,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($41$){$41$.iterator=function(){var $41$=this;var $42=iterable$.iterator();function $43($$targs$$){var $43$=new $43.$$;$43$.outer$=$41$;$43$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$43$);$43$.$44_=(0);$43$.$prop$get$44={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$43,pa:1024,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator','$o','iterator$yoafu7','$at','i$t88zcj']};}};$43$.$prop$get$44.get=function(){return $44};return $43$;
};$43.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$41$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator','$o','iterator$yoafu7']};};function $init$$43(){if($43.$$===undefined){initTypeProto($43,'ceylon.language::Iterable.iterable.iterator',Basic,$init$Iterator());
(function($43$){atr$($43$,'$44',function(){return this.$44_;},function($45){return this.$44_=$45;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$43,pa:1024,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator','$o','iterator$yoafu7','$at','i$t88zcj']};});$43$.next=function(){var $43$=this;return ($46=((($43$.$44=$43$.$44.successor)>$3x)?getFinished():null),nn$($46)?$46:$42.next());var $46;};$43$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$43,pa:3,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator','$o','iterator$yoafu7','$m','next']};};atr$($43$,'string',function(){var $43$=this;return $41$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$43,pa:3,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator','$o','iterator$yoafu7','$at','string']};});})($43.$$.prototype);}
return $43;}
$init$$43();var $47;function get$47(){if($47===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'803:20-811:20','Iterable.ceylon');if($47===undefined){$47=INIT$;$47=$init$$43()({Element$Iterator:iterable$.$$targs$$.Element$Iterable});$47.$crtmm$=get$47.$crtmm$;}
return $47;}
get$47.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$43},$cont:$41$.iterator,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator','$o','iterator$yoafu6']};};$prop$get$47={get:get$47,$crtmm$:get$47.$crtmm$};get$43=get$47;$prop$get$43=get$47;return get$47();};$41$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$41,pa:3,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$m','iterator']};};atr$($41$,'first',function(){var $41$=this;return iterable$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},$cont:$41,pa:3,d:['$','Iterable','$m','take','$o','iterable$a55cm5','$at','first']};});})($41.$$.prototype);}
return $41;}
$init$$41();var $48;function get$48(){if($48===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'799:12-815:12','Iterable.ceylon');if($48===undefined){$48=INIT$;$48=$init$$41()({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});$48.$crtmm$=get$48.$crtmm$;}
return $48;}
get$48.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$41},$cont:$41$.take,d:['$','Iterable','$m','take','$o','iterable$a55cm4']};};$prop$get$48={get:get$48,$crtmm$:get$48.$crtmm$};get$41=get$48;$prop$get$41=get$48;return get$48();}());if($3z!==undefined){return $3z;}}
};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()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistTo),$init$OpenFunction()(lmp$(ex$,'$'),$init$List().$$.prototype.initial),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.takeWhile),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','take']};};iterable$.skipWhile=function($49){var iterable$=this;function $4a($$targs$$){var $4a$=new $4a.$$;$4a$.outer$=iterable$;$4a$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4a$);return $4a$;
};$4a.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4a$.skipWhile,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl']};};function $init$$4a(){if($4a.$$===undefined){initTypeProto($4a,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($4a$){$4a$.iterator=function(){var $4a$=this;var $4b=iterable$.iterator();var $4c;while(!is$(($4c=$4b.next()),{t:Finished})){if(!$49($4c)){var $4d=false;var $4f=false;var $4e=(function(){function $4g($$targs$$){var $4g$=new $4g.$$;$4g$.outer$=$4a$;$4g$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$4g$);$4g$.$4h_=true;$4g$.$prop$get$4h={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4g,pa:1027,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator','$o','iterator$gjv393','$at','first$brr4ua']};}};$4g$.$prop$get$4h.get=function(){return $4h};return $4g$;
};$4g.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4a$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator','$o','iterator$gjv393']};};function $init$$4g(){if($4g.$$===undefined){initTypeProto($4g,'ceylon.language::Iterable.iterable.iterator',Basic,$init$Iterator());
(function($4g$){atr$($4g$,'$4h',function(){return this.$4h_;},function($4i){return this.$4h_=$4i;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4g,pa:1027,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator','$o','iterator$gjv393','$at','first$brr4ua']};});$4g$.next=function(){var $4g$=this;if($4g$.$4h){$4g$.$4h=false;return $4c;}else {return $4b.next();}};$4g$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$4g,pa:3,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator','$o','iterator$gjv393','$m','next']};};atr$($4g$,'string',function(){var $4g$=this;return $4a$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4g,pa:3,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator','$o','iterator$gjv393','$at','string']};});})($4g.$$.prototype);}
return $4g;}
$init$$4g();var $4j;function get$4j(){if($4j===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'836:24-849:24','Iterable.ceylon');if($4j===undefined){$4j=INIT$;$4j=$init$$4g()({Element$Iterator:iterable$.$$targs$$.Element$Iterable});$4j.$crtmm$=get$4j.$crtmm$;}
return $4j;}
get$4j.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$4g},$cont:$4a$.iterator,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator','$o','iterator$gjv394']};};$prop$get$4j={get:get$4j,$crtmm$:get$4j.$crtmm$};get$4g=get$4j;$prop$get$4g=get$4j;return get$4j();}());if($4e!==undefined){return $4e;}}
}return getEmptyIterator();};$4a$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4a,pa:3,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gl','$m','iterator']};};})($4a.$$.prototype);}
return $4a;}
$init$$4a();var $4k;function get$4k(){if($4k===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'830:8-855:8','Iterable.ceylon');if($4k===undefined){$4k=INIT$;$4k=$init$$4a()({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});$4k.$crtmm$=get$4k.$crtmm$;}
return $4k;}
get$4k.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$4a},$cont:$4a$.skipWhile,d:['$','Iterable','$m','skipWhile','$o','iterable$yia8gm']};};$prop$get$4k={get:get$4k,$crtmm$:get$4k.$crtmm$};get$4a=get$4k;$prop$get$4a=get$4k;return get$4k();};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:$_Boolean},an:function(){return[doc$($CCMM$,'$:Iterable:$m:skipWhile:$m:skipping$mtlwsw')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:skipWhile'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.takeWhile)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','skipWhile']};};iterable$.takeWhile=function($4l){var iterable$=this;function $4m($$targs$$){var $4m$=new $4m.$$;$4m$.outer$=iterable$;$4m$.$$targs$$=$$targs$$;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$.takeWhile,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf']};};function $init$$4m(){if($4m.$$===undefined){initTypeProto($4m,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($4m$){$4m$.iterator=function(){var $4m$=this;var $4n=iterable$.iterator();function $4o($$targs$$){var $4o$=new $4o.$$;$4o$.outer$=$4m$;$4o$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$4o$);$4o$.$4p_=true;$4o$.$prop$get$4p={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4o,pa:1027,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf','$m','iterator','$o','iterator$z3gwcl','$at','alive$77gnol']};}};$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','takeWhile','$o','iterable$dpvoxf','$m','iterator','$o','iterator$z3gwcl']};};function $init$$4o(){if($4o.$$===undefined){initTypeProto($4o,'ceylon.language::Iterable.iterable.iterator',Basic,$init$Iterator());
(function($4o$){atr$($4o$,'$4p',function(){return this.$4p_;},function($4q){return this.$4p_=$4q;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4o,pa:1027,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf','$m','iterator','$o','iterator$z3gwcl','$at','alive$77gnol']};});$4o$.next=function(){var $4o$=this;var $4r;if($4o$.$4p&&!is$(($4r=$4n.next()),{t:Finished})){if($4l($4r)){return $4r;}else {$4o$.$4p=false;}}return getFinished();};$4o$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$4o,pa:3,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf','$m','iterator','$o','iterator$z3gwcl','$m','next']};};atr$($4o$,'string',function(){var $4o$=this;return $4m$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4o,pa:3,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf','$m','iterator','$o','iterator$z3gwcl','$at','string']};});})($4o.$$.prototype);}
return $4o;}
$init$$4o();var $4s;function get$4s(){if($4s===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'873:16-888:16','Iterable.ceylon');if($4s===undefined){$4s=INIT$;$4s=$init$$4o()({Element$Iterator:iterable$.$$targs$$.Element$Iterable});$4s.$crtmm$=get$4s.$crtmm$;}
return $4s;}
get$4s.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$4o},$cont:$4m$.iterator,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf','$m','iterator','$o','iterator$z3gwck']};};$prop$get$4s={get:get$4s,$crtmm$:get$4s.$crtmm$};get$4o=get$4s;$prop$get$4o=get$4s;return get$4s();};$4m$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4m,pa:3,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxf','$m','iterator']};};})($4m.$$.prototype);}
return $4m;}
$init$$4m();var $4t;function get$4t(){if($4t===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'869:8-891:8','Iterable.ceylon');if($4t===undefined){$4t=INIT$;$4t=$init$$4m()({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});$4t.$crtmm$=get$4t.$crtmm$;}
return $4t;}
get$4t.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$4m},$cont:$4m$.takeWhile,d:['$','Iterable','$m','takeWhile','$o','iterable$dpvoxe']};};$prop$get$4t={get:get$4t,$crtmm$:get$4t.$crtmm$};get$4m=get$4t;$prop$get$4m=get$4t;return get$4t();};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:$_Boolean},an:function(){return[doc$($CCMM$,'$:Iterable:$m:takeWhile:$m:taking$2gpyir')];}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:takeWhile'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skipWhile)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','takeWhile']};};iterable$.repeat=function($4u){var iterable$=this;function $4v($$targs$$){var $4v$=new $4v.$$;$4v$.outer$=iterable$;$4v$.$$targs$$=$$targs$$;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$.repeat,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','repeat','$o','iterable$k8nj0a']};};function $init$$4v(){if($4v.$$===undefined){initTypeProto($4v,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($4v$){atr$($4v$,'size',function(){var $4v$=this;return $4u.times(iterable$.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$4v,pa:3,d:['$','Iterable','$m','repeat','$o','iterable$k8nj0a','$at','size']};});atr$($4v$,'string',function(){var $4v$=this;return "(".plus(iterable$.string).plus(").repeat(").plus($4u.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4v,pa:3,d:['$','Iterable','$m','repeat','$o','iterable$k8nj0a','$at','string']};});$4v$.iterator=function(){var $4v$=this;return CycledIterator(iterable$,$4u,{Element$CycledIterator:iterable$.$$targs$$.Element$Iterable});};})($4v.$$.prototype);}
return $4v;}
$init$$4v();var $4w;function get$4w(){if($4w===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'906:8-910:8','Iterable.ceylon');if($4w===undefined){$4w=INIT$;$4w=$init$$4v()({Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});$4w.$crtmm$=get$4w.$crtmm$;}
return $4w;}
get$4w.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$4v},$cont:$4v$.repeat,d:['$','Iterable','$m','repeat','$o','iterable$k8nj09']};};$prop$get$4w={get:get$4w,$crtmm$:get$4w.$crtmm$};get$4v=get$4w;$prop$get$4v=get$4w;return get$4w();};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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','repeat']};};iterable$.by=function($4x){var iterable$=this;asrt$((($4x>0)),"step size must be greater than zero: \'step > 0\' at Iterable.ceylon (930:15-930:24)",'929:8-930:25','Iterable.ceylon');
if((($4x).valueOf()==(1).valueOf())){return iterable$;}else {var $4y=false;var $50=false;var $4z=(function(){function $51($$targs$$){var $51$=new $51.$$;$51$.outer$=iterable$;$51$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$51$);return $51$;
};$51.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$51$.by,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','by','$o','iterable$uz32cr']};};function $init$$51(){if($51.$$===undefined){initTypeProto($51,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($51$){atr$($51$,'string',function(){var $51$=this;return "(".plus(iterable$.string).plus(").by(").plus($4x.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$51,pa:3,d:['$','Iterable','$m','by','$o','iterable$uz32cr','$at','string']};});$51$.iterator=function(){var $51$=this;var $52=iterable$.iterator();function $53($$targs$$){var $53$=new $53.$$;$53$.outer$=$51$;$53$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$53$);return $53$;
};$53.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$51$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','by','$o','iterable$uz32cr','$m','iterator','$o','iterator$xxobct']};};function $init$$53(){if($53.$$===undefined){initTypeProto($53,'ceylon.language::Iterable.iterable.iterator',Basic,$init$Iterator());
(function($53$){$53$.next=function(){var $53$=this;var $54=$52.next();var $55=(0);function set$55($56){return $55=$56;};while(((($55=$55.successor)<$4x)&&!is$($52.next(),{t:Finished}))){}return $54;};$53$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$53,pa:3,d:['$','Iterable','$m','by','$o','iterable$uz32cr','$m','iterator','$o','iterator$xxobct','$m','next']};};atr$($53$,'string',function(){var $53$=this;return $51$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$53,pa:3,d:['$','Iterable','$m','by','$o','iterable$uz32cr','$m','iterator','$o','iterator$xxobct','$at','string']};});})($53.$$.prototype);}
return $53;}
$init$$53();var $57;function get$57(){if($57===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'940:20-950:20','Iterable.ceylon');if($57===undefined){$57=INIT$;$57=$init$$53()({Element$Iterator:iterable$.$$targs$$.Element$Iterable});$57.$crtmm$=get$57.$crtmm$;}
return $57;}
get$57.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$53},$cont:$51$.iterator,d:['$','Iterable','$m','by','$o','iterable$uz32cr','$m','iterator','$o','iterator$xxobcs']};};$prop$get$57={get:get$57,$crtmm$:get$57.$crtmm$};get$53=get$57;$prop$get$53=get$57;return get$57();};$51$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$51,pa:3,d:['$','Iterable','$m','by','$o','iterable$uz32cr','$m','iterator']};};})($51.$$.prototype);}
return $51;}
$init$$51();var $58;function get$58(){if($58===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'935:12-953:12','Iterable.ceylon');if($58===undefined){$58=INIT$;$58=$init$$51()({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable});$58.$crtmm$=get$58.$crtmm$;}
return $58;}
get$58.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$51},$cont:$51$.by,d:['$','Iterable','$m','by','$o','iterable$uz32cq']};};$prop$get$58={get:get$58,$crtmm$:get$58.$crtmm$};get$51=get$58;$prop$get$51=get$58;return get$58();}());if($4z!==undefined){return $4z;}}
};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($59,$$$mptypes){var iterable$=this;return for$(function(){var $5a=iterable$.iterator(),$5b=getFinished();var n$5b=function(){return $5b=$5a.next();}
n$5b();return function(){if($5b!==getFinished()){var $5c=$5b;var $5d=($5e=$5c,nn$($5e)?$5e:$59);n$5b();return $5d;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:'u',l:[$$$mptypes.Default$defaultNullElements,{t:'i',l:[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',an:function(){return[doc("A default value that replaces `null` elements.")];}}],$cont:Iterable,tp:{Default$defaultNullElements:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:defaultNullElements'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getCoalesced)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','defaultNullElements']};};atr$(iterable$,'coalesced',function(){var iterable$=this;return for$(function(){var $5h;var $5f=iterable$.iterator(),$5g=getFinished();var n$5g=function(){while(($5g=$5f.next())!==getFinished()){if(nn$(($5h=$5g))){return $5g;}
}
return getFinished();}
n$5g();return function(){if($5g!==getFinished()){var $5i=$5g;var $5j=$5h;n$5g();return $5j;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:[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')];},d:['$','Iterable','$at','coalesced']};});atr$(iterable$,'indexed',function(){var iterable$=this;function $5k($$targs$$){var $5k$=new $5k.$$;$5k$.outer$=iterable$;$5k$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}},$5k$);return $5k$;
};$5k.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5k$.$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','$o','indexes$ox5eju']};};function $init$$5k(){if($5k.$$===undefined){initTypeProto($5k,'ceylon.language::Iterable.indexes',Basic,$init$Iterable());
(function($5k$){$5k$.iterator=function(){var $5k$=this;var $5l=iterable$.iterator();function $5m($$targs$$){var $5m$=new $5m.$$;$5m$.outer$=$5k$;$5m$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}},$5m$);$5m$.$5n_=(0);$5m$.$prop$get$5n={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5m,pa:1024,d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator','$o','iterator$l8585k','$at','i$rm0wck']};}};$5m$.$prop$get$5n.get=function(){return $5n};return $5m$;
};$5m.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5k$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}}],d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator','$o','iterator$l8585k']};};function $init$$5m(){if($5m.$$===undefined){initTypeProto($5m,'ceylon.language::Iterable.indexes.iterator',Basic,$init$Iterator());
(function($5m$){atr$($5m$,'$5n',function(){return this.$5n_;},function($5o){return this.$5n_=$5o;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5m,pa:1024,d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator','$o','iterator$l8585k','$at','i$rm0wck']};});$5m$.next=function(){var $5m$=this;var $5p;if(!is$(($5p=$5l.next()),{t:Finished})){return Entry(($5q=$5m$.$5n,$5m$.$5n=$5q.successor,$5q),$5p,{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable});var $5q;}else {return getFinished();}};$5m$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}},{t:Finished}]},ps:[],$cont:$5m,pa:3,d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator','$o','iterator$l8585k','$m','next']};};atr$($5m$,'string',function(){var $5m$=this;return $5k$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5m,pa:3,d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator','$o','iterator$l8585k','$at','string']};});})($5m.$$.prototype);}
return $5m;}
$init$$5m();var $5r;function get$5r(){if($5r===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'1003:16-1015:16','Iterable.ceylon');if($5r===undefined){$5r=INIT$;$5r=$init$$5m()({Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}});$5r.$crtmm$=get$5r.$crtmm$;}
return $5r;}
get$5r.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$5m},$cont:$5k$.iterator,d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator','$o','iterator$l8585j']};};$prop$get$5r={get:get$5r,$crtmm$:get$5r.$crtmm$};get$5m=get$5r;$prop$get$5m=get$5r;return get$5r();};$5k$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}},ps:[],$cont:$5k,pa:3,d:['$','Iterable','$at','indexed','$o','indexes$ox5eju','$m','iterator']};};})($5k.$$.prototype);}
return $5k;}
$init$$5k();var $5s;function get$5s(){if($5s===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'indexes\' before it was set"),'999:8-1018:8','Iterable.ceylon');if($5s===undefined){$5s=INIT$;$5s=$init$$5k()({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}});$5s.$crtmm$=get$5s.$crtmm$;}
return $5s;}
get$5s.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$5k},$cont:$5k$.$prop$getIndexed,d:['$','Iterable','$at','indexed','$o','indexes$ox5ejv']};};$prop$get$5s={get:get$5s,$crtmm$:get$5s.$crtmm$};get$5k=get$5s;$prop$get$5k=get$5s;return get$5s();},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')];},d:['$','Iterable','$at','indexed']};});atr$(iterable$,'paired',function(){var iterable$=this;function $5t($$targs$$){var $5t$=new $5t.$$;$5t$.outer$=iterable$;$5t$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:[iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable]}},$5t$);return $5t$;
};$5t.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5t$.$prop$getPaired,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:[{$t:'Element$Iterable'},{$t:'Element$Iterable'}]}}}],d:['$','Iterable','$at','paired','$o','pairs$vmljkt']};};function $init$$5t(){if($5t.$$===undefined){initTypeProto($5t,'ceylon.language::Iterable.pairs',Basic,$init$Iterable());
(function($5t$){atr$($5t$,'size',function(){var $5t$=this;var $5u=iterable$.size.minus(1);$prop$get$5u={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5t$.$prop$getSize,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$at','size','$at','size$m52zsl']};}};$prop$get$5u.get=function(){return $5u};return ($5v=(($5u<0)?0:null),nn$($5v)?$5v:$5u);var $5v;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5t,pa:3,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$at','size']};});atr$($5t$,'empty',function(){var $5t$=this;return (iterable$.size<2);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$5t,pa:3,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$at','empty']};});$5t$.iterator=function(){var $5t$=this;var $5w=iterable$.iterator();function $5x($$targs$$){var $5x$=new $5x.$$;$5x$.outer$=$5t$;$5x$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:'T',l:[iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable]}},$5x$);$5x$.$5y_=$5w.next();$5x$.$prop$get$5y={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$5x,pa:1027,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$m','iterator','$o','iterator$e4ehox','$at','previous$3t51kb']};}};$5x$.$prop$get$5y.get=function(){return $5y};return $5x$;
};$5x.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5t$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:'T',l:[{$t:'Element$Iterable'},{$t:'Element$Iterable'}]}}}],d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$m','iterator','$o','iterator$e4ehox']};};function $init$$5x(){if($5x.$$===undefined){initTypeProto($5x,'ceylon.language::Iterable.pairs.iterator',Basic,$init$Iterator());
(function($5x$){atr$($5x$,'$5y',function(){return this.$5y_;},function($5z){return this.$5y_=$5z;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$5x,pa:1027,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$m','iterator','$o','iterator$e4ehox','$at','previous$3t51kb']};});$5x$.next=function(){var $5x$=this;var $60,$61;if(!is$(($60=$5x$.$5y),{t:Finished})&&!is$(($61=$5w.next()),{t:Finished})){$5x$.$5y=$61;return tpl$([$60,$61],{t:'T',l:[iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable]});}else {return getFinished();}};$5x$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:'T',l:[{$t:'Element$Iterable'},{$t:'Element$Iterable'}]},{t:Finished}]},ps:[],$cont:$5x,pa:3,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$m','iterator','$o','iterator$e4ehox','$m','next']};};})($5x.$$.prototype);}
return $5x;}
$init$$5x();var $62;function get$62(){if($62===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'1051:17-1064:17','Iterable.ceylon');if($62===undefined){$62=INIT$;$62=$init$$5x()({Element$Iterator:{t:'T',l:[iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable]}});$62.$crtmm$=get$62.$crtmm$;}
return $62;}
get$62.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$5x},$cont:$5t$.iterator,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$m','iterator','$o','iterator$e4ehoy']};};$prop$get$62={get:get$62,$crtmm$:get$62.$crtmm$};get$5x=get$62;$prop$get$5x=get$62;return get$62();};$5t$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:'T',l:[{$t:'Element$Iterable'},{$t:'Element$Iterable'}]}}},ps:[],$cont:$5t,pa:3,d:['$','Iterable','$at','paired','$o','pairs$vmljkt','$m','iterator']};};})($5t.$$.prototype);}
return $5t;}
$init$$5t();var $63;function get$63(){if($63===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'pairs\' before it was set"),'1042:9-1067:9','Iterable.ceylon');if($63===undefined){$63=INIT$;$63=$init$$5t()({Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:[iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable]}});$63.$crtmm$=get$63.$crtmm$;}
return $63;}
get$63.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$5t},$cont:$5t$.$prop$getPaired,d:['$','Iterable','$at','paired','$o','pairs$vmljks']};};$prop$get$63={get:get$63,$crtmm$:get$63.$crtmm$};get$5t=get$63;$prop$get$5t=get$63;return get$63();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:[{$t:'Element$Iterable'},{$t:'Element$Iterable'}]}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:paired')];},d:['$','Iterable','$at','paired']};});iterable$.partition=function($64){var iterable$=this;asrt$((($64>0)),"length must be strictly positive: \'length>0\' at Iterable.ceylon (1094:15-1094:24)",'1093:8-1094:25','Iterable.ceylon');
function $65($$targs$$){var $65$=new $65.$$;$65$.outer$=iterable$;$65$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}},$65$);return $65$;
};$65.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$65$.partition,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}}],d:['$','Iterable','$m','partition','$o','chunks$39b5y7']};};function $init$$65(){if($65.$$===undefined){initTypeProto($65,'ceylon.language::Iterable.chunks',Basic,$init$Iterable());
(function($65$){atr$($65$,'size',function(){var $65$=this;var $66=iterable$.size;$prop$get$66={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$65$.$prop$getSize,d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$at','size','$at','outerSize$omtvv8']};}};$prop$get$66.get=function(){return $66};return ($67=($64.divides($66)?$66.divided($64):null),nn$($67)?$67:$66.divided($64).plus(1));var $67;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$65,pa:3,d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$at','size']};});atr$($65$,'empty',function(){var $65$=this;return iterable$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$65,pa:3,d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$at','empty']};});$65$.iterator=function(){var $65$=this;var $68=iterable$.iterator();function $69($$targs$$){var $69$=new $69.$$;$69$.outer$=$65$;$69$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}},$69$);return $69$;
};$69.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$65$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}}],d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$m','iterator','$o','iterator$qorvf3']};};function $init$$69(){if($69.$$===undefined){initTypeProto($69,'ceylon.language::Iterable.chunks.iterator',Basic,$init$Iterator());
(function($69$){$69$.next=function(){var $69$=this;var $6a;if(!is$(($6a=$68.next()),{t:Finished})){var $6b=arrayOfSize($64,$6a,{Element$arrayOfSize:iterable$.$$targs$$.Element$Iterable});var $6c=(0);function set$6c($6d){return $6c=$6d;};while((($6c=$6c.successor)<$64)){var $6e;if(!is$(($6e=$68.next()),{t:Finished})){$6b.set($6c,$6e);}else {return ArraySequence($6b.spanTo($6c.minus(1)),{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}}return ArraySequence($6b,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}else {return getFinished();}};$69$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$Iterable'}},{t:Finished}]},ps:[],$cont:$69,pa:3,d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$m','iterator','$o','iterator$qorvf3','$m','next']};};})($69.$$.prototype);}
return $69;}
$init$$69();var $6f;function get$6f(){if($6f===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'1106:16-1125:16','Iterable.ceylon');if($6f===undefined){$6f=INIT$;$6f=$init$$69()({Element$Iterator:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}});$6f.$crtmm$=get$6f.$crtmm$;}
return $6f;}
get$6f.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$69},$cont:$65$.iterator,d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$m','iterator','$o','iterator$qorvf4']};};$prop$get$6f={get:get$6f,$crtmm$:get$6f.$crtmm$};get$69=get$6f;$prop$get$69=get$6f;return get$6f();};$65$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}},ps:[],$cont:$65,pa:3,d:['$','Iterable','$m','partition','$o','chunks$39b5y7','$m','iterator']};};})($65.$$.prototype);}
return $65;}
$init$$65();var $6g;function get$6g(){if($6g===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'chunks\' before it was set"),'1095:8-1128:8','Iterable.ceylon');if($6g===undefined){$6g=INIT$;$6g=$init$$65()({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}});$6g.$crtmm$=get$6g.$crtmm$;}
return $6g;}
get$6g.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$65},$cont:$65$.partition,d:['$','Iterable','$m','partition','$o','chunks$39b5y6']};};$prop$get$6g={get:get$6g,$crtmm$:get$6g.$crtmm$};get$65=get$6g;$prop$get$65=get$6g;return get$6g();};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($6h,$$$mptypes){var iterable$=this;return sarg$(function($6i){switch($6i){case 0:return $6h;}return getFinished();},function(){return iterable$;},{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:[$$$mptypes.Other$follow,iterable$.$$targs$$.Element$Iterable]}});};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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','follow']};};iterable$.chain=function($6j,$$$mptypes){var iterable$=this;function $6k($$targs$$){var $6k$=new $6k.$$;$6k$.outer$=iterable$;$6k$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:'i',l:[iterable$.$$targs$$.Absent$Iterable,$$$mptypes.OtherAbsent$chain]},Element$Iterable:{t:'u',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$chain]}},$6k$);return $6k$;
};$6k.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6k$.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','$o','chained$lrwq56']};};function $init$$6k(){if($6k.$$===undefined){initTypeProto($6k,'ceylon.language::Iterable.chained',Basic,$init$Iterable());
(function($6k$){$6k$.iterator=function(){var $6k$=this;return ChainedIterator(iterable$,$6j,{Other$ChainedIterator:$$$mptypes.Other$chain,Element$ChainedIterator:iterable$.$$targs$$.Element$Iterable});};})($6k.$$.prototype);}
return $6k;}
$init$$6k();var $6l;function get$6l(){if($6l===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'chained\' before it was set"),'1164:8-1167:8','Iterable.ceylon');if($6l===undefined){$6l=INIT$;$6l=$init$$6k()({Absent$Iterable:{t:'i',l:[iterable$.$$targs$$.Absent$Iterable,$$$mptypes.OtherAbsent$chain]},Element$Iterable:{t:'u',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$chain]}});$6l.$crtmm$=get$6l.$crtmm$;}
return $6l;}
get$6l.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$6k},$cont:$6k$.chain,d:['$','Iterable','$m','chain','$o','chained$lrwq57']};};$prop$get$6l={get:get$6l,$crtmm$:get$6l.$crtmm$};get$6k=get$6l;$prop$get$6k=get$6l;return get$6l();};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()(lmp$(ex$,'$'),expand)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','chain']};};iterable$.product=function($6m,$$$mptypes){var iterable$=this;return for$(function(){var $6n=iterable$.iterator(),$6o=getFinished();var n$6o=function(){if(($6o=$6n.next())!==getFinished()){$6p=$6m.iterator();n$6q();return $6o;}
return getFinished();}
var $6p,$6q=getFinished();var n$6q=function(){return $6q=$6p.next();}
n$6o();return function(){do{if($6q!==getFinished()){var $6r=$6q;var $6s=tpl$([$6o,$6r],{t:'T',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$product]});n$6q();return $6s;}
}while(n$6o()!==getFinished());return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$product]}});};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:[{$t:'Element$Iterable'},{$t:'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;function $6t($$targs$$){var $6t$=new $6t.$$;$6t$.outer$=iterable$;$6t$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$6t$);$6t$.$prop$get$6u={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:$6t,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$at','orig$q0k0r9']};}};$6t$.$prop$get$6u.get=function(){return $6u};return $6t$;
};$6t.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6t$.$prop$getCycled,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','cycled','$o','iterable$qixtkx']};};function $init$$6t(){if($6t.$$===undefined){initTypeProto($6t,'ceylon.language::Iterable.iterable',Basic,$init$Iterable());
(function($6t$){atr$($6t$,'$6u',function(){var $6t$=this;return iterable$;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:$6t,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$at','orig$q0k0r9']};});atr$($6t$,'string',function(){var $6t$=this;return "(".plus(iterable$.string).plus(").cycled");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$6t,pa:3,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$at','string']};});atr$($6t$,'size',function(){var $6t$=this;asrt$((false),"stream is infinite: \'false\' at Iterable.ceylon (1204:23-1204:29)",'1203:16-1204:30','Iterable.ceylon');
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$6t,pa:3,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$at','size']};});$6t$.iterator=function(){var $6t$=this;function $6v($$targs$$){var $6v$=new $6v.$$;$6v$.outer$=$6t$;$6v$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$6v$);$6v$.$6w_=getEmptyIterator();$6v$.$prop$get$6w={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$6v,pa:1027,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator','$o','iterator$tlvaun','$at','iter$ep431e']};}};$6v$.$prop$get$6w.get=function(){return $6w};return $6v$;
};$6v.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6t$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator','$o','iterator$tlvaun']};};function $init$$6v(){if($6v.$$===undefined){initTypeProto($6v,'ceylon.language::Iterable.iterable.iterator',Basic,$init$Iterator());
(function($6v$){atr$($6v$,'$6w',function(){return this.$6w_;},function($6x){return this.$6w_=$6x;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$6v,pa:1027,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator','$o','iterator$tlvaun','$at','iter$ep431e']};});$6v$.next=function(){var $6v$=this;var $6y;if(!is$(($6y=$6v$.$6w.next()),{t:Finished})){return $6y;}else {$6v$.$6w=$6t$.$6u.iterator();return $6v$.$6w.next();}};$6v$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$6v,pa:3,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator','$o','iterator$tlvaun','$m','next']};};atr$($6v$,'string',function(){var $6v$=this;return $6t$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$6v,pa:3,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator','$o','iterator$tlvaun','$at','string']};});})($6v.$$.prototype);}
return $6v;}
$init$$6v();var $6z;function get$6z(){if($6z===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'1207:16-1220:16','Iterable.ceylon');if($6z===undefined){$6z=INIT$;$6z=$init$$6v()({Element$Iterator:iterable$.$$targs$$.Element$Iterable});$6z.$crtmm$=get$6z.$crtmm$;}
return $6z;}
get$6z.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$6v},$cont:$6t$.iterator,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator','$o','iterator$tlvauo']};};$prop$get$6z={get:get$6z,$crtmm$:get$6z.$crtmm$};get$6v=get$6z;$prop$get$6v=get$6z;return get$6z();};$6t$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$6t,pa:3,d:['$','Iterable','$at','cycled','$o','iterable$qixtkx','$m','iterator']};};})($6t.$$.prototype);}
return $6t;}
$init$$6t();var $70;function get$70(){if($70===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'1199:8-1223:8','Iterable.ceylon');if($70===undefined){$70=INIT$;$70=$init$$6t()({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable});$70.$crtmm$=get$70.$crtmm$;}
return $70;}
get$70.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$6t},$cont:$6t$.$prop$getCycled,d:['$','Iterable','$at','cycled','$o','iterable$qixtky']};};$prop$get$70={get:get$70,$crtmm$:get$70.$crtmm$};get$6t=get$70;$prop$get$6t=get$70;return get$70();},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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.repeat)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','cycled']};});iterable$.interpose$defs$step=function($71,$72,$$$mptypes){return 1;};iterable$.interpose=function($71,$72,$$$mptypes){var iterable$=this;if($72===undefined){$72=iterable$.interpose$defs$step($71,$72);}
asrt$((($72>=1)),"step must be strictly positive: \'step>=1\' at Iterable.ceylon (1249:15-1249:23)",'1248:8-1249:24','Iterable.ceylon');
function $73($$targs$$){var $73$=new $73.$$;$73$.outer$=iterable$;$73$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:'u',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$interpose]}},$73$);return $73$;
};$73.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$73$.interpose,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:['Element$Iterable','Other$interpose']}}}],d:['$','Iterable','$m','interpose','$o','interposed$hq01j9']};};function $init$$73(){if($73.$$===undefined){initTypeProto($73,'ceylon.language::Iterable.interposed',Basic,$init$Iterable());
(function($73$){atr$($73$,'size',function(){var $73$=this;var $74=iterable$.size;$prop$get$74={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$73$.$prop$getSize,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$at','size','$at','outerSize$4orh4g']};}};$prop$get$74.get=function(){return $74};if(($74>0)){return $74.plus($74.minus(1).divided($72));}else {return 0;}},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$73,pa:3,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$at','size']};});atr$($73$,'empty',function(){var $73$=this;return iterable$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$73,pa:3,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$at','empty']};});atr$($73$,'first',function(){var $73$=this;return iterable$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable','Other$interpose']},$cont:$73,pa:3,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$at','first']};});atr$($73$,'last',function(){var $73$=this;return iterable$.last;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable','Other$interpose']},$cont:$73,pa:3,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$at','last']};});$73$.iterator=function(){var $73$=this;var $75=iterable$.iterator();function $76($$targs$$){var $76$=new $76.$$;$76$.outer$=$73$;$76$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:'u',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$interpose]}},$76$);$76$.$77_=$75.next();$76$.$prop$get$77={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$76,pa:1027,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt9','$at','current$56r57j']};}};$76$.$prop$get$77.get=function(){return $77};$76$.$78_=(0);$76$.$prop$get$78={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$76,pa:1024,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt9','$at','count$734g91']};}};$76$.$prop$get$78.get=function(){return $78};return $76$;
};$76.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$73$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$Iterable','Other$interpose']}}}],d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt9']};};function $init$$76(){if($76.$$===undefined){initTypeProto($76,'ceylon.language::Iterable.interposed.iterator',Basic,$init$Iterator());
(function($76$){atr$($76$,'$77',function(){return this.$77_;},function($79){return this.$77_=$79;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$76,pa:1027,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt9','$at','current$56r57j']};});atr$($76$,'$78',function(){return this.$78_;},function($7a){return this.$78_=$7a;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$76,pa:1024,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt9','$at','count$734g91']};});$76$.next=function(){var $76$=this;var $7b;if(!is$(($7b=$76$.$77),{t:Finished})){if($72.plus(1).divides(($76$.$78=$76$.$78.successor))){return $71;}else {$76$.$77=$75.next();return $7b;}}else {return getFinished();}};$76$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable','Other$interpose',{t:Finished}]},ps:[],$cont:$76,pa:3,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt9','$m','next']};};})($76.$$.prototype);}
return $76;}
$init$$76();var $7c;function get$7c(){if($7c===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'1265:16-1282:16','Iterable.ceylon');if($7c===undefined){$7c=INIT$;$7c=$init$$76()({Element$Iterator:{t:'u',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$interpose]}});$7c.$crtmm$=get$7c.$crtmm$;}
return $7c;}
get$7c.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$76},$cont:$73$.iterator,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator','$o','iterator$oe9rt8']};};$prop$get$7c={get:get$7c,$crtmm$:get$7c.$crtmm$};get$76=get$7c;$prop$get$76=get$7c;return get$7c();};$73$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$Iterable','Other$interpose']}}},ps:[],$cont:$73,pa:3,d:['$','Iterable','$m','interpose','$o','interposed$hq01j9','$m','iterator']};};})($73.$$.prototype);}
return $73;}
$init$$73();var $7d;function get$7d(){if($7d===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'interposed\' before it was set"),'1250:8-1285:8','Iterable.ceylon');if($7d===undefined){$7d=INIT$;$7d=$init$$73()({Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:'u',l:[iterable$.$$targs$$.Element$Iterable,$$$mptypes.Other$interpose]}});$7d.$crtmm$=get$7d.$crtmm$;}
return $7d;}
get$7d.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$73},$cont:$73$.interpose,d:['$','Iterable','$m','interpose','$o','interposed$hq01ja']};};$prop$get$7d={get:get$7d,$crtmm$:get$7d.$crtmm$};get$73=get$7d;$prop$get$73=get$7d;return get$7d();};iterable$.interpose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},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},an:function(){return[doc$($CCMM$,'$:Iterable:$m:interpose:$at:step$cln9qy')];}}],$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()(lmp$(ex$,'$'),interleave)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','interpose']};};atr$(iterable$,'string',function(){var iterable$=this;var $7e=iterable$.take(31).$_map($JsCallable((function($7f){return ($7g=($7h=$7f,nn$($7h)?$7h.string:null),nn$($7g)?$7g:"<null>");}),[{nm:'e',mt:'prm',$t:'Element$Iterable'}],{Return$Callable:{t:$_String},Arguments$Callable:{t:'T',l:[iterable$.$$targs$$.Element$Iterable]}}),{Result$map:{t:$_String}}).sequence();$prop$get$7e={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:iterable$.$prop$getString,d:['$','Iterable','$at','string','$at','strings$dlyhao']};}};$prop$get$7e.get=function(){return $7e};var $7g,$7h;if($7e.empty){return "{}";}else {if((($7e.size).valueOf()==(31).valueOf())){return "{ ".plus(", ".$_join($7e.take(30))).plus(", ... }");}else {return "{ ".plus(", ".$_join($7e)).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 $v,$5e;function ifExists($7i){var $7j=function($7k){var $7l;if(nn$(($7l=$7k))){return $7i($7l);}else {return false;}};$7j.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:{t:Anything}}],$t:{t:$_Boolean}};};return JsCallable(0,$7j);};ifExists.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'predicate',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],d:['$','ifExists']};};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'}},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)].rt$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].rt$({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;function $7m($$targs$$){var $7m$=new $7m.$$;$7m$.outer$=correspondence$;$7m$.$$targs$$=$$targs$$;Category({Element$Category:correspondence$.$$targs$$.Key$Correspondence},$7m$);return $7m$;
};$7m.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:correspondence$.$prop$getKeys,sts:[{t:Category,a:{Element$Category:'Key$Correspondence'}}],d:['$','Correspondence','$at','keys','$o','keys$y1pibl']};};function $init$$7m(){if($7m.$$===undefined){initTypeProto($7m,'ceylon.language::Correspondence.keys',Basic,$init$Category());
(function($7m$){$7m$.contains=function($7n){var $7m$=this;return correspondence$.defines($7n);};})($7m.$$.prototype);}
return $7m;}
$init$$7m();var $7o;function get$7o(){if($7o===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'keys\' before it was set"),'42:8-44:8','Correspondence.ceylon');if($7o===undefined){$7o=INIT$;$7o=$init$$7m()({Element$Category:correspondence$.$$targs$$.Key$Correspondence});$7o.$crtmm$=get$7o.$crtmm$;}
return $7o;}
get$7o.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$7m},$cont:correspondence$.$prop$getKeys,d:['$','Correspondence','$at','keys','$o','keys$y1pibm']};};$prop$get$7o={get:get$7o,$crtmm$:get$7o.$crtmm$};get$7m=get$7o;$prop$get$7m=get$7o;return get$7o();},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()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$at','keys']};});correspondence$.definesEvery=function($7p){var correspondence$=this;var $7r;for(var $7q=$7p.iterator();($7r=$7q.next())!==getFinished();){if(!correspondence$.defines($7r)){return false;}}
if(getFinished()===$7r){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()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','definesEvery']};};correspondence$.definesAny=function($7s){var correspondence$=this;var $7u;for(var $7t=$7s.iterator();($7u=$7t.next())!==getFinished();){if(correspondence$.defines($7u)){return true;}}
if(getFinished()===$7u){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()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','definesAny']};};correspondence$.getAll=function($7v,$$$mptypes){var correspondence$=this;return for$(function(){var $7w=$7v.iterator(),$7x=getFinished();var n$7x=function(){return $7x=$7w.next();}
n$7x();return function(){if($7x!==getFinished()){var $7y=$7x;var $7z=correspondence$.$_get($7y);n$7x();return $7z;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:'u',l:[{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()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.$_get)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','getAll']};};})(Correspondence.$$.prototype);}
return Correspondence;}
ex$.$init$Correspondence=$init$Correspondence;$init$Correspondence();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)].rt$({t:InterfaceDeclaration$meta$declaration}))];},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 $80(){var finished$=new $80.$$;Finished(finished$);finished$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$80,pa:3,d:['$','finished','$at','string']};}};finished$.$prop$getString.get=function(){return string};return finished$;
};$80.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Finished},pa:1,an:function(){return[doc$($CCMM$,'$:finished'),see("Iterator")];},d:['$','finished']};};function $init$getFinished(){if($80.$$===undefined){initTypeProto($80,'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:$80,pa:3,d:['$','finished','$at','string']};});})($80.$$.prototype);}
return $80;}
ex$.$init$getFinished=$init$getFinished;$init$getFinished();var $81;function getFinished(){if($81===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'finished\' before it was set"),'6:0-11:0','Finished.ceylon');if($81===undefined){$81=INIT$;$81=$init$getFinished()();$81.$crtmm$=getFinished.$crtmm$;}
return $81;}
ex$.getFinished=getFinished;getFinished.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$80},pa:1,an:function(){return[doc$($CCMM$,'$:finished'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterator)].rt$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','finished']};};$prop$getFinished={get:getFinished,$crtmm$:getFinished.$crtmm$};getFinished=getFinished;$prop$getFinished=getFinished;ex$.$prop$getFinished=$prop$getFinished;function Sequential($$targs$$,sequential$){List({Element$List:$$targs$$.Element$Sequential},sequential$);Ranged({Subrange$Ranged:{t:Sequential,a:{Element$Sequential:$$targs$$.Element$Sequential}},Element$Ranged:$$targs$$.Element$Sequential,Index$Ranged:{t:Integer}},sequential$);set_type_args(sequential$,$$targs$$,Sequential);sequential$.$prop$getKeys={$crtmm$: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$.$prop$getKeys.get=function(){return keys};sequential$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$at:string')];},d:['$','Sequential','$at','string']};}};sequential$.$prop$getString.get=function(){return string};}
Sequential.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Sequential:{dv:'out'}},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)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','Sequential']};};
ex$.Sequential=Sequential;function $init$Sequential(){if(Sequential.$$===undefined){initTypeProtoI(Sequential,'ceylon.language::Sequential',$init$Ranged(),$init$List());
(function(sequential$){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']};}};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$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},$cont:Sequential,pa:7,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,d:['$','Sequential','$m','repeat']};}};sequential$.initial=function($82){var sequential$=this;return sequential$.spanTo($82.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($83){var sequential$=this;return sequential$.spanFrom(sequential$.size.minus($83));};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$.$_trim=function($84){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.$_trim.call(this,JsCallable(sequential$,$84)).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:$_Boolean}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trim')];},d:['$','Sequential','$m','trim']};};sequential$.trimLeading=function($85){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.trimLeading.call(this,JsCallable(sequential$,$85)).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:$_Boolean}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trimLeading')];},d:['$','Sequential','$m','trimLeading']};};sequential$.trimTrailing=function($86){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.trimTrailing.call(this,JsCallable(sequential$,$86)).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:$_Boolean}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trimTrailing')];},d:['$','Sequential','$m','trimTrailing']};};sequential$.$_slice=function($87){var sequential$=this;return tpl$([sequential$.spanTo($87.minus(1)),sequential$.spanFrom($87)],{t:'T',l:[{t:Sequential,a:{Element$Sequential:sequential$.$$targs$$.Element$Sequential}},{t:'u',l:[sequential$.$$targs$$.Element$Sequential,{t:Sequential,a:{Element$Sequential:sequential$.$$targs$$.Element$Sequential}}]}]});};sequential$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}}},{$t:{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:[{$t:'Other$withLeading'},{$t:'Element$Sequential',seq:1}]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading',an:function(){return[doc("The first element of the resulting sequence.")];}}],$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',an:function(){return[doc("The last element of the resulting sequence.")];}}],$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']};}};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']};};atr$(sequential$,'string',function(){var sequential$=this;return ($88=(sequential$.empty?"[]":null),nn$($88)?$88:"[".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 $88;function Sequence($$targs$$,sequence$){Sequential({Element$Sequential:$$targs$$.Element$Sequence},sequence$);Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$$targs$$.Element$Sequence},sequence$);set_type_args(sequence$,$$targs$$,Sequence);sequence$.$prop$getLastIndex={$crtmm$: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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Sequence','$at','lastIndex']};}};sequence$.$prop$getLastIndex.get=function(){return lastIndex};sequence$.$prop$getEmpty={$crtmm$: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$getEmpty.get=function(){return empty};sequence$.$prop$getKeys={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Integer}}},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:keys')];},d:['$','Sequence','$at','keys']};}};sequence$.$prop$getKeys.get=function(){return keys};sequence$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},$cont:Sequence,pa:11,d:['$','Sequence','$at','reversed']};}};sequence$.$prop$getReversed.get=function(){return reversed};sequence$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Sequence,pa:11,d:['$','Sequence','$at','string']};}};sequence$.$prop$getString.get=function(){return string};}
Sequence.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Sequence:{dv:'out'}},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)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration}]})),by(["Gavin"].rt$({t:$_String}))];},d:['$','Sequence']};};
ex$.Sequence=Sequence;function $init$Sequence(){if(Sequence.$$===undefined){initTypeProtoI(Sequence,'ceylon.language::Sequence',$init$Sequential(),$init$Iterable());
(function(sequence$){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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','Sequence','$at','lastIndex']};});sequence$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequence,pa:7,d:['$','Sequence','$at','size']};}};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']};});atr$(sequence$,'keys',function(){var sequence$=this;return span((0),sequence$.lastIndex,{Element$span:{t:Integer}});},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Integer}}},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:keys')];},d:['$','Sequence','$at','keys']};});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,d:['$','Sequence','$at','reversed']};});sequence$.repeat=function($89){var sequence$=this;return ($8a=(($89<=0)?getEmpty():null),nn$($8a)?$8a:sequence$.Repeat$Sequence($89));};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,d:['$','Sequence','$m','repeat']};};sequence$.$_sort=function($8b){var sequence$=this;var $8c=$_Array(sequence$,{Element$Array:sequence$.$$targs$$.Element$Sequence});$8c.sortInPlace(JsCallable(sequence$,$8b));return ArraySequence($8c,{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:Comparison},an:function(){return[doc$($CCMM$,'$:Sequence:$m:sort:$m:comparing$kwry1o')];}}],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:sort')];},d:['$','Sequence','$m','sort']};};sequence$.collect=function($8d,$$$mptypes){var sequence$=this;function $8e($$targs$$){var $8e$=new $8e.$$;$8e$.outer$=sequence$;$8e$.$$targs$$=$$targs$$;$_Object($8e$);List({Element$List:$$$mptypes.Result$collect},$8e$);var size=sequence$.size;atr$($8e$,'size',function(){return size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$8e,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$at','size']};});return $8e$;
};$8e.$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$$8e(){if($8e.$$===undefined){initTypeProto($8e,'ceylon.language::Sequence.list',$init$$_Object(),$init$List());
(function($8e$){atr$($8e$,'lastIndex',function(){var $8e$=this;return sequence$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$8e,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$at','lastIndex']};});delete $8e$.size;$8e$.getFromFirst=function($8f){var $8e$=this;if(($8g=$8f,$8g.compare((0))!==getSmaller()&&$8g.compare($8e$.size)===getSmaller())){return $8d(sequence$.$8h($8f));}else {return null;}};$8e$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Result$collect']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$8e,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$m','getFromFirst']};};})($8e.$$.prototype);}
return $8e;}
$init$$8e();var $8i;function get$8i(){if($8i===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'list\' before it was set"),'98:8-111:8','Sequence.ceylon');if($8i===undefined){$8i=INIT$;$8i=$init$$8e()({Element$List:$$$mptypes.Result$collect});$8i.$crtmm$=get$8i.$crtmm$;}
return $8i;}
get$8i.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$8e},$cont:sequence$.collect,d:['$','Sequence','$m','collect','$o','list$ap4q1b']};};$prop$get$8i={get:get$8i,$crtmm$:get$8i.$crtmm$};get$8e=get$8i;$prop$get$8e=get$8i;return ArraySequence($_Array(get$8i(),{Element$Array:$$$mptypes.Result$collect}),{Element$ArraySequence:$$$mptypes.Result$collect});};sequence$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$collect',an:function(){return[doc("The transformation applied to the elements.")];}}],$cont:Sequence,tp:{Result$collect:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:collect')];},d:['$','Sequence','$m','collect']};};sequence$.withLeading=function($8j,$$$mptypes){var sequence$=this;return tpl$([$8j],{t:'T',l:[$$$mptypes.Other$withLeading,{t:'u',l:[sequence$.$$targs$$.Element$Sequence,{t:Sequence,a:{Element$Sequence:sequence$.$$targs$$.Element$Sequence}}]}]},sequence$);};sequence$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'Other$withLeading'},{$t:'Element$Sequence',seq:1}]},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($8k,$$$mptypes){var sequence$=this;return JoinedSequence(sequence$,Singleton($8k,{Element$Singleton:$$$mptypes.Other$withTrailing}),{Element$JoinedSequence:{t:'u',l:[sequence$.$$targs$$.Element$Sequence,$$$mptypes.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($8l,$$$mptypes){var sequence$=this;var $8m;if(ne$(($8m=$8l))){return JoinedSequence(sequence$,$8m,{Element$JoinedSequence:{t:'u',l:[sequence$.$$targs$$.Element$Sequence,$$$mptypes.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($8n,$$$mptypes){var sequence$=this;var $8o;if(ne$(($8o=$8n))){return JoinedSequence($8o,sequence$,{Element$JoinedSequence:{t:'u',l:[$$$mptypes.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$.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$.contains=function($8p){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.contains.call(this,$8p);};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($8q){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.shorterThan.call(this,$8q);};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($8r){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.longerThan.call(this,$8r);};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($8s){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.find.call(this,JsCallable(sequence$,$8s));};sequence$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','find']};};sequence$.findLast=function($8t){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.findLast.call(this,JsCallable(sequence$,$8t));};sequence$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','findLast']};};sequence$.$_slice=function($8u){var sequence$=this;return tpl$([sequence$.spanTo($8u.minus(1)),sequence$.spanFrom($8u)],{t:'T',l:[{t:Sequential,a:{Element$Sequential:sequence$.$$targs$$.Element$Sequence}},{t:'u',l:[sequence$.$$targs$$.Element$Sequence,{t:Sequential,a:{Element$Sequential:sequence$.$$targs$$.Element$Sequence}}]}]});};sequence$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}}},{$t:{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($8v,$8w){var sequence$=this;return sequence$.sublist($8v,$8v.plus($8w).minus(1)).sequence();};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($8x,$8y){var sequence$=this;return sequence$.sublist($8x,$8y).sequence();};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($8z){var sequence$=this;return sequence$.sublistFrom($8z).sequence();};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($90){var sequence$=this;return sequence$.sublistTo($90).sequence();};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$.$8h=function($91){var sequence$=this;var $92=sequence$.getFromFirst($91);var $93;if(nn$(($93=$92))){return $93;}else {var $94;asrt$((is$(($94=null),sequence$.$$targs$$.Element$Sequence)),"Assertion failed: \'is Element null\' at Sequence.ceylon (197:19-197:35)",'197:12-197:36','Sequence.ceylon');
return null;}};sequence$.$8h.$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($95$){$init$Reverse$Sequence();if($95$===undefined)$95$=new this.Reverse$Sequence.$$;
$95$.outer$=this;$95$.$$targs$$={Element$Sequence:$95$.outer$.$$targs$$.Element$Sequence};$_Object($95$);Sequence({Element$Sequence:$95$.outer$.$$targs$$.Element$Sequence},$95$);return $95$;}
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($95$){atr$($95$,'size',function(){var $95$=this;return $95$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','size']};});atr$($95$,'first',function(){var $95$=this;return $95$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','first']};});atr$($95$,'last',function(){var $95$=this;return $95$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','last']};});atr$($95$,'rest',function(){var $95$=this;return ($96=((($95$.size).valueOf()==(1).valueOf())?getEmpty():null),nn$($96)?$96:$95$.outer$.span($95$.size.minus(2),0));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','rest']};});atr$($95$,'reversed',function(){var $95$=this;return $95$.outer$;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','reversed']};});$95$.getFromFirst=function($97){var $95$=this;return $95$.outer$.getFromFirst($95$.size.minus(1).minus($97));};$95$.measure=function($98,$99){var $95$=this;if(($99>1)){var $9a=$95$.size.minus(1).minus($98);return $95$.outer$.span($9a,$9a.minus($99).plus(1));}else {return getEmpty();}};$95$.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:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$m','measure']};};$95$.span=function($9b,$9c){var $95$=this;return $95$.outer$.span($9c,$9b);};$95$.spanFrom=function($9d){var $95$=this;var $9e=$95$.size.minus(1);if(($9d<=$9e)){return $95$.outer$.span($9e.minus($9d),0);}else {return getEmpty();}};$95$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$m','spanFrom']};};$95$.spanTo=function($9f){var $95$=this;var $9g=$95$.size.minus(1);if(($9f>=0)){return $95$.outer$.span($9g,$9g.minus($9f));}else {return getEmpty();}};$95$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$m','spanTo']};};$95$.iterator=function(){var $95$=this;var $9h=$95$.outer$;function $9i($$targs$$){var $9i$=new $9i.$$;$9i$.outer$=$95$;$9i$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$95$.outer$.$$targs$$.Element$Sequence},$9i$);$9i$.$9j_=$9h.size.minus(1);$9i$.$prop$get$9j={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$9i,pa:1024,d:['$','Sequence','$c','Reverse$t1rj1v','$m','iterator','$o','iterator$221c9r','$at','index$cl1yxu']};}};$9i$.$prop$get$9j.get=function(){return $9j};return $9i$;
};$9i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$95$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Sequence'}}],d:['$','Sequence','$c','Reverse$t1rj1v','$m','iterator','$o','iterator$221c9r']};};function $init$$9i(){if($9i.$$===undefined){initTypeProto($9i,'ceylon.language::Sequence.Reverse.iterator',Basic,$init$Iterator());
(function($9i$){atr$($9i$,'$9j',function(){return this.$9j_;},function($9k){return this.$9j_=$9k;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$9i,pa:1024,d:['$','Sequence','$c','Reverse$t1rj1v','$m','iterator','$o','iterator$221c9r','$at','index$cl1yxu']};});$9i$.next=function(){var $9i$=this;return ($9l=(($9i$.$9j<0)?getFinished():null),nn$($9l)?$9l:$9h.$8h(($9m=$9i$.$9j,$9i$.$9j=$9m.predecessor,$9m)));};atr$($9i$,'string',function(){var $9i$=this;return "".plus($95$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$9i,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$m','iterator','$o','iterator$221c9r','$at','string']};});})($9i.$$.prototype);}
return $9i;}
$init$$9i();var $9n;function get$9n(){if($9n===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'250:12-255:12','Sequence.ceylon');if($9n===undefined){$9n=INIT$;$9n=$init$$9i()({Element$Iterator:$95$.outer$.$$targs$$.Element$Sequence});$9n.$crtmm$=get$9n.$crtmm$;}
return $9n;}
get$9n.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$9i},$cont:$95$.iterator,d:['$','Sequence','$c','Reverse$t1rj1v','$m','iterator','$o','iterator$221c9q']};};$prop$get$9n={get:get$9n,$crtmm$:get$9n.$crtmm$};get$9i=get$9n;$prop$get$9i=get$9n;var $9l,$9m;return get$9n();};$95$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Sequence'}},ps:[],$cont:$95$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$m','iterator']};};$95$.Reverse$Sequence=Reverse$Sequence;})(Reverse$Sequence.$$.prototype);}
return Reverse$Sequence;}
sequence$.$init$Reverse$Sequence=$init$Reverse$Sequence;$init$Reverse$Sequence();sequence$.Reverse$Sequence=Reverse$Sequence;function Repeat$Sequence($9o,$9p$){$init$Repeat$Sequence();if($9p$===undefined)$9p$=new this.Repeat$Sequence.$$;
$9p$.outer$=this;$9p$.$$targs$$={Element$Sequence:$9p$.outer$.$$targs$$.Element$Sequence};$9p$.$9o_=$9o;$_Object($9p$);Sequence({Element$Sequence:$9p$.outer$.$$targs$$.Element$Sequence},$9p$);asrt$((($9p$.$9o>0)),"Assertion failed: \'times>0\' at Sequence.ceylon (265:15-265:23)",'265:8-265:24','Sequence.ceylon');
$9p$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','last']};}};$9p$.$prop$getLast.get=function(){return last};atr$($9p$,'first',function(){return $9p$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','first']};});atr$($9p$,'size',function(){return $9p$.outer$.size.times($9p$.$9o);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','size']};});atr$($9p$,'rest',function(){return $9p$.sublistFrom(1).sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','rest']};});$9p$.iterator=function(){var sequence$=this;return CycledIterator($9p$.outer$,$9p$.$9o,{Element$CycledIterator:$9p$.outer$.$$targs$$.Element$Sequence});};return $9p$;}
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($9p$){atr$($9p$,'last',function(){var $9p$=this;return $9p$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','last']};});atr$($9p$,'first',function(){var $9p$=this;return $9p$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','first']};});atr$($9p$,'size',function(){var $9p$=this;return $9p$.outer$.size.times($9p$.$9o);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','size']};});atr$($9p$,'rest',function(){var $9p$=this;return $9p$.sublistFrom(1).sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','rest']};});$9p$.getFromFirst=function($9q){var $9p$=this;var $9r=$9p$.outer$.size;if(($9q<$9r.times($9p$.$9o))){return $9p$.outer$.getFromFirst($9q.remainder($9r));}else {return null;}};$9p$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$9p$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$m','getFromFirst']};};$9p$.iterator=function(){var $9p$=this;return CycledIterator($9p$.outer$,$9p$.$9o,{Element$CycledIterator:$9p$.outer$.$$targs$$.Element$Sequence});};atr$($9p$,'$9o',function(){return this.$9o_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$9p$.Repeat$Sequence,d:['$','Sequence','$c','Repeat$op9ozo','$at','times$ryfnz9']};});$9p$.Repeat$Sequence=Repeat$Sequence;})(Repeat$Sequence.$$.prototype);}
return Repeat$Sequence;}
sequence$.$init$Repeat$Sequence=$init$Repeat$Sequence;$init$Repeat$Sequence();sequence$.Repeat$Sequence=Repeat$Sequence;})(Sequence.$$.prototype);}
return Sequence;}
ex$.$init$Sequence=$init$Sequence;$init$Sequence();var $8a,$96;function sequence($9s,$$$mptypes){var $9t;if(ne$(($9t=$9s.sequence()))){return $9t;}else {var $9u;asrt$((is$(($9u=null),$$$mptypes.Absent$sequence)),"Assertion failed: \'is Absent null\' at Sequence.ceylon (304:15-304:30)",'304:8-304: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"].rt$({t:$_String})),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.sequence)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','sequence']};};function JoinedSequence($9v,$9w,$$targs$$,joinedSequence$){$init$JoinedSequence();if(joinedSequence$===undefined)joinedSequence$=new JoinedSequence.$$;
set_type_args(joinedSequence$,$$targs$$);joinedSequence$.$9v_=$9v;joinedSequence$.$9w_=$9w;$_Object(joinedSequence$);Sequence({Element$Sequence:$$targs$$.Element$JoinedSequence},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']};};function $init$JoinedSequence(){if(JoinedSequence.$$===undefined){initTypeProto(JoinedSequence,'ceylon.language::JoinedSequence',$init$$_Object(),$init$Sequence());
(function(joinedSequence$){atr$(joinedSequence$,'size',function(){var joinedSequence$=this;return joinedSequence$.$9v.size.plus(joinedSequence$.$9w.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$.$9v.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$.$9w.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$.$9v.rest.append(joinedSequence$.$9w,{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($9x){var joinedSequence$=this;var $9y=joinedSequence$.$9v.size;if(($9x<$9y)){return joinedSequence$.$9v.getFromFirst($9x);}else {return joinedSequence$.$9w.getFromFirst($9x.minus($9y));}};joinedSequence$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$JoinedSequence']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','getFromFirst']};};joinedSequence$.$_slice=function($9z){var joinedSequence$=this;if((($9z).valueOf()==(joinedSequence$.$9v.size).valueOf())){return tpl$([joinedSequence$.$9v,joinedSequence$.$9w],{t:'T',l:[{t:Sequence,a:{Element$Sequence:joinedSequence$.$$targs$$.Element$JoinedSequence}},{t:'u',l:[joinedSequence$.$$targs$$.Element$JoinedSequence,{t:Sequence,a:{Element$Sequence:joinedSequence$.$$targs$$.Element$JoinedSequence}}]}]});}else {return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.$_slice.call(this,$9z);}};joinedSequence$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}}},{$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','slice']};};joinedSequence$.spanTo=function($a0){var joinedSequence$=this;if((($a0).valueOf()==(joinedSequence$.$9v.size.minus(1)).valueOf())){return joinedSequence$.$9v;}else {return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.spanTo.call(this,$a0);}};joinedSequence$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','spanTo']};};joinedSequence$.spanFrom=function($a1){var joinedSequence$=this;if((($a1).valueOf()==(joinedSequence$.$9v.size).valueOf())){return joinedSequence$.$9w;}else {return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.spanFrom.call(this,$a1);}};joinedSequence$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','spanFrom']};};joinedSequence$.measure=function($a2,$a3){var joinedSequence$=this;if(((($a2).valueOf()==(0).valueOf())&&(($a3).valueOf()==(joinedSequence$.$9v.size).valueOf()))){return joinedSequence$.$9v;}else {if(((($a2).valueOf()==(joinedSequence$.$9v.size).valueOf())&&($a3>=joinedSequence$.$9w.size))){return joinedSequence$.$9w;}else {return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.measure.call(this,$a2,$a3);}}};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($a4,$a5){var joinedSequence$=this;if((($a4<=0)&&(($a5).valueOf()==(joinedSequence$.$9v.size.minus(1)).valueOf()))){return joinedSequence$.$9v;}else {if(((($a4).valueOf()==(joinedSequence$.$9v.size).valueOf())&&($a5>=joinedSequence$.size.minus(1)))){return joinedSequence$.$9w;}else {return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.span.call(this,$a4,$a5);}}};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$.$9v,joinedSequence$.$9w,{Other$ChainedIterator:joinedSequence$.$$targs$$.Element$JoinedSequence,Element$ChainedIterator:joinedSequence$.$$targs$$.Element$JoinedSequence});};atr$(joinedSequence$,'$9v',function(){return this.$9v_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}},$cont:JoinedSequence,d:['$','JoinedSequence','$at','firstSeq$vc5yc7']};});atr$(joinedSequence$,'$9w',function(){return this.$9w_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}},$cont:JoinedSequence,d:['$','JoinedSequence','$at','secondSeq$g3ri2t']};});})(JoinedSequence.$$.prototype);}
return JoinedSequence;}
ex$.$init$JoinedSequence=$init$JoinedSequence;$init$JoinedSequence();function Empty(empty$){Sequential({Element$Sequential:{t:Nothing}},empty$);Ranged({Subrange$Ranged:{t:Empty},Element$Ranged:{t:Nothing},Index$Ranged:{t:Integer}},empty$);empty$.$prop$getKeys={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$at:keys')];},d:['$','Empty','$at','keys']};}};empty$.$prop$getKeys.get=function(){return keys};empty$.$prop$getEmpty={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Empty,pa:3,an:function(){return[doc("Returns `true`.")];},d:['$','Empty','$at','empty']};}};empty$.$prop$getEmpty.get=function(){return empty};empty$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Empty,pa:3,an:function(){return[doc("Returns 0.")];},d:['$','Empty','$at','size']};}};empty$.$prop$getSize.get=function(){return size};empty$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns an `Empty`.")];},d:['$','Empty','$at','reversed']};}};empty$.$prop$getReversed.get=function(){return reversed};empty$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$at:string')];},d:['$','Empty','$at','string']};}};empty$.$prop$getString.get=function(){return string};empty$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','lastIndex']};}};empty$.$prop$getLastIndex.get=function(){return lastIndex};empty$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','first']};}};empty$.$prop$getFirst.get=function(){return first};empty$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','last']};}};empty$.$prop$getLast.get=function(){return last};empty$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$at:rest')];},d:['$','Empty','$at','rest']};}};empty$.$prop$getRest.get=function(){return rest};empty$.$prop$getCoalesced={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns an `Empty`.")];},d:['$','Empty','$at','coalesced']};}};empty$.$prop$getCoalesced.get=function(){return coalesced};empty$.$prop$getIndexed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns an `Empty`.")];},d:['$','Empty','$at','indexed']};}};empty$.$prop$getIndexed.get=function(){return indexed};empty$.$prop$getCycled={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,d:['$','Empty','$at','cycled']};}};empty$.$prop$getCycled.get=function(){return cycled};empty$.$prop$getPaired={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,d:['$','Empty','$at','paired']};}};empty$.$prop$getPaired.get=function(){return paired};}
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)].rt$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','Empty']};};
ex$.Empty=Empty;function $init$Empty(){if(Empty.$$===undefined){initTypeProtoI(Empty,'ceylon.language::Empty',$init$Sequential(),$init$Ranged());
(function(empty$){empty$.iterator=function(){var empty$=this;return getEmptyIterator();};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$.getFromLast=function($a6){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($a7){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']};};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$($CCMM$,'$:Empty:$at:keys')];},d:['$','Empty','$at','keys']};});empty$.measure=function($a8,$a9){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($aa,$ab){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($ac){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($ad){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']};};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 an `Empty`.")];},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 an `Empty`.")];},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$($CCMM$,'$:Empty:$at:rest')];},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$($CCMM$,'$:Empty:$m:clone')];},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 an `Empty`.")];},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 an `Empty`.")];},d:['$','Empty','$at','indexed']};});empty$.chain=function($ae,$$$mptypes){var empty$=this;return $ae;};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($af,$$$mptypes){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:{}},pa:3,d:['$','Empty','$m','defaultNullElements']};};empty$.repeat=function($ag){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,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,d:['$','Empty','$at','cycled']};});empty$.contains=function($ah){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$.count=function($ai){return 0;};empty$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:count')];},d:['$','Empty','$m','count']};};empty$.defines=function($aj){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,d:['$','Empty','$m','defines']};};empty$.$_map=function($ak,$$$mptypes){var empty$=this;return empty$;};empty$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$map'}],$cont:Empty,tp:{Result$map:{}},pa:3,d:['$','Empty','$m','map']};};empty$.flatMap=function($al,$$$mptypes){var empty$=this;return empty$;};empty$.flatMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}}}],$cont:Empty,tp:{Result$flatMap:{},OtherAbsent$flatMap:{sts:[{t:Null}]}},pa:3,d:['$','Empty','$m','flatMap']};};empty$.spread=function($am,$$$mptypes){var empty$=this;return flatten($JsCallable((function($an){return empty$;}),[{nm:'args',mt:'prm',$t:'Args$spread'}],{Return$Callable:{t:Empty},Arguments$Callable:{t:'T',l:[$$$mptypes.Args$spread]}}),{Args$flatten:$$$mptypes.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:'Result$spread',Arguments$Callable:'Args$spread'}}}],$cont:Empty,tp:{Result$spread:{},Args$spread:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,d:['$','Empty','$m','spread']};};empty$.$_filter=function($ao){var empty$=this;return empty$;};empty$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','filter']};};empty$.fold=function($ap,$$$mptypes){var empty$=this;empty$.$ap_=$ap;var $aq=function($ar){return $ap;};$aq.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:'Result$fold'}],$t:$$$mptypes.Result$fold};};return JsCallable(0,$aq);};empty$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$fold',ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Empty,tp:{Result$fold:{}},pa:3,d:['$','Empty','$m','fold']};};empty$.$_reduce=function($as,$$$mptypes){var empty$=this;return null;};empty$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:'Result$reduce'}],$cont:Empty,tp:{Result$reduce:{}},pa:3,d:['$','Empty','$m','reduce']};};empty$.find=function($at){var empty$=this;return null;};empty$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','find']};};empty$.$_sort=function($au){var empty$=this;return empty$;};empty$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Comparison}}],$cont:Empty,pa:3,d:['$','Empty','$m','sort']};};empty$.collect=function($av,$$$mptypes){var empty$=this;return empty$;};empty$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$collect'}],$cont:Empty,tp:{Result$collect:{}},pa:3,d:['$','Empty','$m','collect']};};empty$.select=function($aw){var empty$=this;return empty$;};empty$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','select']};};empty$.any=function($ax){var empty$=this;return false;};empty$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','any']};};empty$.$_every=function($ay){var empty$=this;return true;};empty$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','every']};};empty$.skip=function($az){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($b0){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($b1){var empty$=this;return empty$;};empty$.skipWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'skipping',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','skipWhile']};};empty$.takeWhile=function($b2){var empty$=this;return empty$;};empty$.takeWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'taking',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','takeWhile']};};empty$.by=function($b3){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($b4,$$$mptypes){var empty$=this;return tpl$([$b4],{t:'T',l:[$$$mptypes.Other$withLeading]});};empty$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'Other$withLeading'}]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Empty,tp:{Other$withLeading:{}},pa:3,d:['$','Empty','$m','withLeading']};};empty$.withTrailing=function($b5,$$$mptypes){var empty$=this;return tpl$([$b5],{t:'T',l:[$$$mptypes.Other$withTrailing]});};empty$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'Other$withTrailing'}]},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Empty,tp:{Other$withTrailing:{}},pa:3,d:['$','Empty','$m','withTrailing']};};empty$.append=function($b6,$$$mptypes){var empty$=this;return $b6;};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($b7,$$$mptypes){var empty$=this;return $b7;};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($b8,$$$mptypes){var empty$=this;return sarg$(function($b9){switch($b9){case 0:return $b8;}return getFinished();},undefined,{Absent$Iterable:{t:Nothing},Element$Iterable:$$$mptypes.Other$follow});};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($ba,$bb){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($bc){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($bd){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($be){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($bf){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($bg){var empty$=this;return empty$;};empty$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','indexesWhere']};};empty$.firstIndexWhere=function($bh){var empty$=this;return null;};empty$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','firstIndexWhere']};};empty$.lastIndexWhere=function($bi){var empty$=this;return null;};empty$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','lastIndexWhere']};};empty$.includes=function($bj){var empty$=this;return $bj.empty;};empty$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:Empty,pa:3,d:['$','Empty','$m','includes']};};empty$.$_trim=function($bk){var empty$=this;return empty$;};empty$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','trim']};};empty$.trimLeading=function($bl){var empty$=this;return empty$;};empty$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','trimLeading']};};empty$.trimTrailing=function($bm){var empty$=this;return empty$;};empty$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Empty,pa:3,d:['$','Empty','$m','trimTrailing']};};empty$.$_slice=function($bn){var empty$=this;return tpl$([empty$,empty$],{t:'T',l:[{t:Empty},{t:Empty}]});};empty$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Empty}},{$t:{t:Empty}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','slice']};};atr$(empty$,'paired',function(){var empty$=this;return empty$;},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,d:['$','Empty','$at','paired']};});})(Empty.$$.prototype);}
return Empty;}
ex$.$init$Empty=$init$Empty;$init$Empty();function $bo(){var empty$=new $bo.$$;$_Object(empty$);Empty(empty$);return empty$;
};$bo.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Empty}],pa:1,an:function(){return[doc$($CCMM$,'$:empty'),by("Tako Schotanus")];},d:['$','empty']};};function $init$getEmpty(){if($bo.$$===undefined){initTypeProto($bo,'ceylon.language::empty',$init$$_Object(),$init$Empty());
}
return $bo;}
ex$.$init$getEmpty=$init$getEmpty;$init$getEmpty();var $bp;function getEmpty(){if($bp===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'empty\' before it was set"),'216:0-221:16','Empty.ceylon');if($bp===undefined){$bp=INIT$;$bp=$init$getEmpty()();$bp.$crtmm$=getEmpty.$crtmm$;}
return $bp;}
ex$.getEmpty=getEmpty;getEmpty.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$bo},pa:1,an:function(){return[doc$($CCMM$,'$:empty'),by(["Tako Schotanus"].rt$({t:$_String}))];},d:['$','empty']};};$prop$getEmpty={get:getEmpty,$crtmm$:getEmpty.$crtmm$};getEmpty=getEmpty;$prop$getEmpty=getEmpty;ex$.$prop$getEmpty=$prop$getEmpty;function $bq($$targs$$){var emptyIterator$=new $bq.$$;emptyIterator$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Nothing}},emptyIterator$);return emptyIterator$;
};$bq.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Iterator,a:{Element$Iterator:{t:Nothing}}}],pa:1,an:function(){return[doc$($CCMM$,'$:emptyIterator')];},d:['$','emptyIterator']};};function $init$getEmptyIterator(){if($bq.$$===undefined){initTypeProto($bq,'ceylon.language::emptyIterator',Basic,$init$Iterator());
(function(emptyIterator$){emptyIterator$.next=function(){var emptyIterator$=this;return getFinished();};atr$(emptyIterator$,'string',function(){var emptyIterator$=this;return "empty.iterator()";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$bq,pa:3,d:['$','emptyIterator','$at','string']};});})($bq.$$.prototype);}
return $bq;}
ex$.$init$getEmptyIterator=$init$getEmptyIterator;$init$getEmptyIterator();var $br;function getEmptyIterator(){if($br===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptyIterator\' before it was set"),'223:0-228:0','Empty.ceylon');if($br===undefined){$br=INIT$;$br=$init$getEmptyIterator()({Element$Iterator:{t:Nothing}});$br.$crtmm$=getEmptyIterator.$crtmm$;}
return $br;}
ex$.getEmptyIterator=getEmptyIterator;getEmptyIterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$bq},pa:1,an:function(){return[doc$($CCMM$,'$:emptyIterator')];},d:['$','emptyIterator']};};$prop$getEmptyIterator={get:getEmptyIterator,$crtmm$:getEmptyIterator.$crtmm$};getEmptyIterator=getEmptyIterator;$prop$getEmptyIterator=getEmptyIterator;ex$.$prop$getEmptyIterator=$prop$getEmptyIterator;
//#native Boolean
//#native Callable
function Binary($$targs$$,binary$){set_type_args(binary$,$$targs$$,Binary);binary$.set$defs$bit=function($bs,$bt){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)].rt$({t:ClassDeclaration$meta$declaration})),by(["Stef"].rt$({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($bu){var binary$=this;return binary$.set($bu,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 Usable(usable$){}
Usable.$crtmm$=function(){return{mod:$CCMM$,of:[{t:Destroyable},{t:Obtainable}],pa:1,an:function(){return[doc$($CCMM$,'$:Usable')];},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 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)].rt$({t:InterfaceDeclaration$meta$declaration}))];},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}]},an:function(){return[doc$($CCMM$,'$:Destroyable:$m:destroy:$at:error$28101j')];}}],$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 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)].rt$({t:InterfaceDeclaration$meta$declaration}))];},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}]},an:function(){return[doc$($CCMM$,'$:Obtainable:$m:release:$at:error$bfbekx')];}}],$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 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)].rt$({t:ClassDeclaration$meta$declaration})),by(["Gavin"].rt$({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($bv){var comparable$=this;return (comparable$.compare($bv)===getLarger());};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($bw){var comparable$=this;return (comparable$.compare($bw)===getSmaller());};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($bx){var comparable$=this;return !(comparable$.compare($bx)===getSmaller());};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($by){var comparable$=this;return !(comparable$.compare($by)===getLarger());};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 Invertible($$targs$$,invertible$){Summable({Other$Summable:$$targs$$.Other$Invertible},invertible$);set_type_args(invertible$,$$targs$$,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)].rt$({t:ClassDeclaration$meta$declaration})),by(["Gavin"].rt$({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($bz){var invertible$=this;return invertible$.plus($bz.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 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)].rt$({t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]})),by(["Gavin"].rt$({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 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)].rt$({t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]})),by(["Gavin"].rt$({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 Enumerable($$targs$$,enumerable$){Ordinal({Other$Ordinal:$$targs$$.Other$Enumerable},enumerable$);set_type_args(enumerable$,$$targs$$,Enumerable);enumerable$.$prop$getSuccessor={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Enumerable',$cont:Enumerable,pa:11,d:['$','Enumerable','$at','successor']};}};enumerable$.$prop$getSuccessor.get=function(){return successor};enumerable$.$prop$getPredecessor={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Enumerable',$cont:Enumerable,pa:11,d:['$','Enumerable','$at','predecessor']};}};enumerable$.$prop$getPredecessor.get=function(){return predecessor};}
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()(lmp$(ex$,'$'),span),$init$OpenFunction()(lmp$(ex$,'$'),measure)].rt$({t:'u',l:[{t:ClassDeclaration$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')];},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')];},d:['$','Enumerable','$m','offset']};}};enumerable$.offsetSign=function($c0){var enumerable$=this;return enumerable$.offset($c0).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 Numeric($$targs$$,numeric$){Invertible({Other$Invertible:$$targs$$.Other$Numeric},numeric$);set_type_args(numeric$,$$targs$$,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)].rt$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].rt$({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 Exponentiable($$targs$$,exponentiable$){Numeric({Other$Numeric:$$targs$$.This$Exponentiable},exponentiable$);set_type_args(exponentiable$,$$targs$$,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)].rt$({t:ClassDeclaration$meta$declaration}))];},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 Integral($$targs$$,integral$){$_Number({Other$Number:$$targs$$.Other$Integral},integral$);Enumerable({Other$Enumerable:$$targs$$.Other$Integral},integral$);set_type_args(integral$,$$targs$$,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)].rt$({t:ClassDeclaration$meta$declaration})),by(["Gavin"].rt$({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")];},d:['$','Integral','$m','remainder']};}};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($c1){var integral$=this;return $c1.remainder(integral$).zero;};integral$.divides.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:1,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"].rt$({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$){Numeric({Other$Numeric:$$targs$$.Other$Number},number$);Comparable({Other$Comparable:$$targs$$.Other$Number},number$);set_type_args(number$,$$targs$$,$_Number);number$.$prop$getMagnitude={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:9,an:function(){return[doc$($CCMM$,'$:Number:$at:magnitude')];},d:['$','Number','$at','magnitude']};}};number$.$prop$getMagnitude.get=function(){return magnitude};}
$_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)].rt$({t:ClassDeclaration$meta$declaration})),by(["Gavin"].rt$({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 ($c2=(number$.negative?number$.negated:null),nn$($c2)?$c2:number$);},undefined,function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:9,an:function(){return[doc$($CCMM$,'$:Number:$at:magnitude')];},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 $c2;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']};}
var origNumToString = Number.prototype.toString;
inheritProto(JSNumber, $_Object, $_Number, $init$Integral(), 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,
$init$Integral(), Exponentiable, Binary);
Integer.$crtmm$=function(){return{an:function(){return[shared(),$_native(),$_final()];},mod:$CCMM$,d:['$','Integer']};}
function Float(value) {
if (value && 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,Exponentiable);
Float.$crtmm$=function(){return{an:function(){return[shared(),$_native(),$_final()];},mod:$CCMM$,d:['$','Float']};}
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;
}
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))s+='.0';
return s;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Object,d:['$','Object','$at','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) {
return (nflt$(this)||nflt$(other)) ? Float(this+other) : (this+other);
}
$addnm$('plus');
JSNum$proto.plusInteger = function(other) {
return nflt$(this) ? Float(this+other) : (this+other);
}
$addnm$('plusInteger');
JSNum$proto.minus = function(other) {
return (nflt$(this)||nflt$(other)) ? Float(this-other) : (this-other);
}
$addnm$('minus');
JSNum$proto.times = function(other) {
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');
JSNum$proto.timesInteger = function(other) {
return nflt$(this) ? Float(this*other) : (this*other);
}
$addnm$('timesInteger');
JSNum$proto.divided = function(other) {
if (this.fmz$)return this;
if (nflt$(this)||nflt$(other)) { return Float(this/other); }
if (other == 0) {
throw Exception("Division by Zero");
}
return toInt(this/other);
}
$addnm$('divided');
JSNum$proto.remainder = function(other) { return this%other; }
$addnm$('remainder',Integral.$$.prototype.remainder);
JSNum$proto.remainder.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','remainder']};}
JSNum$proto.power = function(exp) {
if (nflt$(this)||nflt$(exp)) { return Float(Math.pow(this, exp)); }
if (exp<0 && this!=1 && this!=-1) {
throw AssertionError("Negative exponent");
}
return toInt(Math.pow(this, exp));
}
$addnm$('power',Exponentiable.$$.prototype.power);
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']};});
atr$(JSNum$proto, 'negative', 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','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']};});
JSNum$proto.equals = function(other) { return (typeof(other)==='number' || other.constructor===Number) && other==this.valueOf(); }
$addnm$('equals',$_Object.$$.prototype.equals);
JSNum$proto.compare = function(other) {
var value = this.valueOf();
return value==other ? getEqual() : (value<other ? getSmaller():getLarger());
}
$addnm$('compare',Comparable.$$.prototype.compare);
JSNum$proto.smallerThan=function(o) {
return Comparable.$$.prototype.smallerThan.call(this,o);
}
$addnm$('smallerThan',Comparable.$$.prototype.smallerThan);
JSNum$proto.largerThan=function(o) {
return Comparable.$$.prototype.largerThan.call(this,o);
}
$addnm$('largerThan',Comparable.$$.prototype.largerThan);
JSNum$proto.notSmallerThan=function(o) {
return Comparable.$$.prototype.notSmallerThan.call(this,o);
}
$addnm$('notSmallerThan',Comparable.$$.prototype.notSmallerThan);
JSNum$proto.notLargerThan=function(o) {
return Comparable.$$.prototype.notLargerThan.call(this,o);
}
$addnm$('notLargerThan',Comparable.$$.prototype.notLargerThan);
atr$(JSNum$proto, '$_float', function(){ return Float(this.valueOf()); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','float']};});
atr$(JSNum$proto, 'integer', function(){ return toInt(this); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','integer']};});
atr$(JSNum$proto, '$_byte', function(){ return Byte(this); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','byte']};});
atr$(JSNum$proto, 'character', function(){
var c=this.valueOf();
if (c < -2147483648 || c > 0x7fffffff) {
throw OverflowException(c + ' is not a 32-bit integer');
} else if (c < 0 || c > 1114111) {
throw OverflowException(c + ' is not a Unicode code point');
}
return Character(this.valueOf());
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Integer,d:['$','Integer','$at','character']};});
atr$(JSNum$proto, 'successor', function(){ return this+1; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Ordinal,d:['$','Ordinal','$at','successor']};});
atr$(JSNum$proto, 'predecessor', function(){ return this-1; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Ordinal,d:['$','Ordinal','$at','predecessor']};});
atr$(JSNum$proto, 'unit', function(){ return this == 1; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Integral,d:['$','Integral','$at','unit']};});
atr$(JSNum$proto, 'zero', function(){ return this == 0; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Integral,d:['$','Integral','$at','zero']};});
atr$(JSNum$proto, 'even', function(){ return this%2 == 0; },
undefined,function(){return{an:function(){return[shared()]},mod:$CCMM$,$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']};});
atr$(JSNum$proto, 'wholePart', function() {
if (!nflt$(this)) { return this.valueOf(); }
return Float(this>=0 ? Math.floor(this) : Math.ceil(this));
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$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']};});
atr$(JSNum$proto, 'hash', function() {
return nflt$(this) ? $_String(this.toPrecision()).hash : this.valueOf();
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Object,d:['$','Object','$at','hash']};});
JSNum$proto.distanceFrom = function(other) {
return (nflt$(this) ? this.wholePart : this) - other;
}
atr$(JSNum$proto, 'not', function(){ return ~this; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Binary,d:['$','Binary','$at','not']};});
JSNum$proto.leftLogicalShift = function(i) { return this << i; }
$addnm$('leftLogicalShift',Binary.$$.prototype.leftLogicalShift);
JSNum$proto.rightLogicalShift = function(i) { return this >>> i; }
$addnm$('rightLogicalShift',Binary.$$.prototype.rightLogicalShift);
JSNum$proto.rightArithmeticShift = function(i) { return this >> i; }
$addnm$('rightArithmeticShift',Binary.$$.prototype.rightArithmeticShift);
JSNum$proto.and = function(x) { return this & x; }
$addnm$('and',Binary.$$.prototype.and);
JSNum$proto.or = function(x) { return this | x; }
$addnm$('or',Binary.$$.prototype.or);
JSNum$proto.xor = function(x) { return this ^ x; }
$addnm$('xor',Binary.$$.prototype.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);
JSNum$proto.set = function(idx,bit) {
if (idx < 0 || idx >31) {
return this;
}
if (bit === undefined) { bit = true; }
var mask = idx > 1 ? 1 << idx : 1;
return (bit === true) ? this | mask : this & ~mask;
}
$addnm$('set',Binary.$$.prototype.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);
JSNum$proto.clear = function(index) {
return this.set(index, false);
}
$addnm$('clear',Binary.$$.prototype.clear);
JSNum$proto.neighbour=function(offset) {
return this+offset;
}
$addnm$('neighbour',Enumerable.$$.prototype.neighbour);
JSNum$proto.offset=function(other) {
return this-other;
}
$addnm$('offset',Enumerable.$$.prototype.offset);
JSNum$proto.offsetSign=function(other) {
return this-other;
}
$addnm$('offsetSign',Enumerable.$$.prototype.offsetSign);
atr$(JSNum$proto, 'magnitude', function(){ return Math.abs(this); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','magnitude']};});
atr$(JSNum$proto, '$_undefined', function(){ return isNaN(this); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Float,d:['$','Float','$at','undefined']};});
atr$(JSNum$proto, 'finite', function(){ return this!=Infinity && this!=-Infinity && !isNaN(this); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Float,d:['$','Float','$at','finite']};});
atr$(JSNum$proto, 'infinite', function(){ return this==Infinity || this==-Infinity; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Float,d:['$','Float','$at','infinite']};});
atr$(JSNum$proto, 'strictlyPositive', function(){ return this>0 || (this==0 && !this.fmz$ && (1/this==Infinity)); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Float,d:['$','Float','$at','strictlyPositive']};});
atr$(JSNum$proto, 'strictlyNegative', function() { return this<0 || this.fmz$ || (this==0 && (1/this==-Infinity)); },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Float,d:['$','Float','$at','strictlyNegative']};});
var $infinity = Float(Infinity);
function getInfinity() { return $infinity; }
ex$.$prop$getInfinity={get:getInfinity,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Float},d:['$','infinity']};}};
ex$.Integer=Integer;
ex$.Float=Float;
ex$.getInfinity=getInfinity;
function OverflowException($c3,overflowException$){$init$OverflowException();if(overflowException$===undefined)overflowException$=new OverflowException.$$;
if($c3===undefined){$c3="Numeric overflow";}
overflowException$.$c3_=$c3;Exception(overflowException$.$c3,undefined,overflowException$);return overflowException$;}
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$,'$c3',function(){return this.$c3_;},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 InitializationError($c4,initializationError$){$init$InitializationError();if(initializationError$===undefined)initializationError$=new InitializationError.$$;
initializationError$.$c4_=$c4;AssertionError(initializationError$.$c4,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()(lmp$(ex$,'$'),late)].rt$({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$,'$c4',function(){return this.$c4_;},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 Resource(resource$){resource$.textContent$defs$encoding=function($c5){return "UTF-8";};}
Resource.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Resource'),by(["Enrique Zamudio"].rt$({t:$_String})),see([$init$OpenFunction()(lmp$(ex$,'ceylon.language.meta.declaration'),$init$Module$meta$declaration().$$.prototype.resourceByPath)].rt$({t:FunctionDeclaration$meta$declaration}))];},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 $c6=resource$.uri.lastOccurrence(Character(47,true));$prop$get$c6={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:resource$.$prop$getName,d:['$','Resource','$at','name','$at','pos$7gdnjs']};}};$prop$get$c6.get=function(){return $c6};var $c7;if(nn$(($c7=$c6))){return resource$.uri.spanFrom($c7.plus(1));}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 "".plus(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 Ranged($$targs$$,ranged$){Iterable({Absent$Iterable:{t:Null},Element$Iterable:$$targs$$.Element$Ranged},ranged$);set_type_args(ranged$,$$targs$$,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)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:ClassDeclaration$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 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)].rt$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].rt$({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 Collection($$targs$$,collection$){Iterable({Absent$Iterable:{t:Null},Element$Iterable:$$targs$$.Element$Collection},collection$);set_type_args(collection$,$$targs$$,Collection);collection$.$prop$getEmpty={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$at:empty')];},d:['$','Collection','$at','empty']};}};collection$.$prop$getEmpty.get=function(){return empty};collection$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$at:string')];},d:['$','Collection','$at','string']};}};collection$.$prop$getString.get=function(){return string};}
Collection.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Collection:{dv:'out'}},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)].rt$({t:InterfaceDeclaration$meta$declaration}))];},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($c8){var collection$=this;var $ca;for(var $c9=collection$.iterator();($ca=$c9.next())!==getFinished();){var $cb;if(nn$(($cb=$ca))&&$cb.equals($c8)){return true;}}
if(getFinished()===$ca){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 ($cc=(collection$.empty?"{}":null),nn$($cc)?$cc:"{ ".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']};});})(Collection.$$.prototype);}
return Collection;}
ex$.$init$Collection=$init$Collection;$init$Collection();var $cc;function commaList($cd){return ($ce=for$(function(){var $cf=$cd.iterator(),$cg=getFinished();var n$cg=function(){return $cg=$cf.next();}
n$cg();return function(){if($cg!==getFinished()){var $ch=$cg;var $ci=($cj=$ch,nn$($cj)?$cj:"<null>");n$cg();return $ci;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Object}}),($ck=", ",JsCallable($ck,nn$($ck)?$ck.$_join:null))($ce));};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 $ce,$cj,$ck;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"].rt$({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($cl){var category$=this;var $cn;for(var $cm=$cl.iterator();($cn=$cm.next())!==getFinished();){if(!category$.contains($cn)){return false;}}
if(getFinished()===$cn){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()(lmp$(ex$,'$'),$init$Category().$$.prototype.contains)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Category','$m','containsEvery']};};category$.containsAny=function($co){var category$=this;var $cq;for(var $cp=$co.iterator();($cq=$cp.next())!==getFinished();){if(category$.contains($cq)){return true;}}
if(getFinished()===$cq){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()(lmp$(ex$,'$'),$init$Category().$$.prototype.contains)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Category','$m','containsAny']};};})(Category.$$.prototype);}
return Category;}
ex$.$init$Category=$init$Category;$init$Category();function List($$targs$$,list$){Collection({Element$Collection:$$targs$$.Element$List},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$);set_type_args(list$,$$targs$$,List);list$.$prop$getSize={$crtmm$: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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','size']};}};list$.$prop$getSize.get=function(){return size};list$.$prop$getFirst={$crtmm$: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']};}};list$.$prop$getFirst.get=function(){return first};list$.$prop$getLast={$crtmm$: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$.$prop$getLast.get=function(){return last};list$.$prop$getRest={$crtmm$: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']};}};list$.$prop$getRest.get=function(){return rest};list$.$prop$getKeys={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Integer}}},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:keys')];},d:['$','List','$at','keys']};}};list$.$prop$getKeys.get=function(){return keys};list$.$prop$getReversed={$crtmm$: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$.$prop$getReversed.get=function(){return reversed};}
List.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$List:{dv:'out'}},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)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration}]}))];},d:['$','List']};};
ex$.List=List;function $init$List(){if(List.$$===undefined){initTypeProtoI(List,'ceylon.language::List',$init$Correspondence(),$init$Ranged(),$init$Collection());
(function(list$){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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','lastIndex']};}};atr$(list$,'size',function(){var list$=this;return ($cr=list$.lastIndex,nn$($cr)?$cr:(-1)).plus(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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','size']};});list$.shorterThan=function($cs){var list$=this;return (list$.size<$cs);};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($ct){var list$=this;return (list$.size>$ct);};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']};};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']};});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']};});list$.defines=function($cu){var list$=this;return ($cv=$cu,$cv.compare((0))!==getSmaller()&&$cv.compare(list$.size)===getSmaller());};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($cw){var list$=this;var $cy;for(var $cx=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($cy=$cx.next())!==getFinished();){var $cz;if(nn$(($cz=list$.getFromFirst($cy)))){if($cz.equals($cw)){return true;}}}
if(getFinished()===$cy){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'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$List().$$.prototype.occurs)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','contains']};};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($d0){var list$=this;return list$.getFromFirst(list$.size.minus(1).minus($d0));};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$.$_get=function($d1){var list$=this;return list$.getFromFirst($d1);};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$.$d2=function($d3){var list$=this;var $d4=list$.getFromFirst($d3);var $d5;if(nn$(($d5=$d4))){return $d5;}else {var $d6;asrt$((is$(($d6=null),list$.$$targs$$.Element$List)),"Assertion failed: \'is Element null\' at List.ceylon (140:19-140:35)",'140:12-140:36','List.ceylon');
return null;}};list$.$d2.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$List',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,d:['$','List','$m','getElement$v2oaho']};};list$.iterator=function(){var list$=this;if((list$.size>0)){var $d7=false;var $d9=false;var $d8=(function(){function $da($$targs$$){var $da$=new $da.$$;$da$.outer$=list$;$da$.$$targs$$=$$targs$$;Iterator({Element$Iterator:list$.$$targs$$.Element$List},$da$);$da$.$db_=(0);$da$.$prop$get$db={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$da,pa:1024,d:['$','List','$m','iterator','$o','listIterator$ad6q00','$at','index$3lhfbn']};}};$da$.$prop$get$db.get=function(){return $db};$da$.$dc_=list$.size;$da$.$prop$get$dc={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$da,d:['$','List','$m','iterator','$o','listIterator$ad6q00','$at','size$6e0l8k']};}};$da$.$prop$get$dc.get=function(){return $dc};return $da$;
};$da.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:list$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$m','iterator','$o','listIterator$ad6q00']};};function $init$$da(){if($da.$$===undefined){initTypeProto($da,'ceylon.language::List.listIterator',Basic,$init$Iterator());
(function($da$){atr$($da$,'$db',function(){return this.$db_;},function($dd){return this.$db_=$dd;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$da,pa:1024,d:['$','List','$m','iterator','$o','listIterator$ad6q00','$at','index$3lhfbn']};});atr$($da$,'$dc',function(){return this.$dc_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$da,d:['$','List','$m','iterator','$o','listIterator$ad6q00','$at','size$6e0l8k']};});$da$.next=function(){var $da$=this;return ($de=(($da$.$db>=$da$.$dc)?getFinished():null),nn$($de)?$de:list$.$d2(($df=$da$.$db,$da$.$db=$df.successor,$df)));};atr$($da$,'string',function(){var $da$=this;return list$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$da,pa:3,d:['$','List','$m','iterator','$o','listIterator$ad6q00','$at','string']};});})($da.$$.prototype);}
return $da;}
$init$$da();var $dg;function get$dg(){if($dg===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'listIterator\' before it was set"),'147:12-154:12','List.ceylon');if($dg===undefined){$dg=INIT$;$dg=$init$$da()({Element$Iterator:list$.$$targs$$.Element$List});$dg.$crtmm$=get$dg.$crtmm$;}
return $dg;}
get$dg.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$da},$cont:list$.iterator,d:['$','List','$m','iterator','$o','listIterator$ad6pzz']};};$prop$get$dg={get:get$dg,$crtmm$:get$dg.$crtmm$};get$da=get$dg;$prop$get$da=get$dg;var $de,$df;return get$dg();}());if($d8!==undefined){return $d8;}}
else {return getEmptyIterator();}};list$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$List'}},ps:[],$cont:List,pa:11,d:['$','List','$m','iterator']};};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')];},d:['$','List','$at','keys']};});list$.repeat=function($dh){var list$=this;return list$.Repeat$List($dh);};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']};};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,d:['$','List','$m','clone']};};list$.equals=function($di){var list$=this;var $dj;if(is$(($dj=$di),{t:$_String})){return false;}var $dk;if(is$(($dk=$di),{t:List,a:{Element$List:{t:Anything}}})){if((($dk.size).valueOf()==(list$.size).valueOf())){var $dm;for(var $dl=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($dm=$dl.next())!==getFinished();){var $dn=list$.getFromFirst($dm);var $do=$dk.getFromFirst($dm);var $dp;if(nn$(($dp=$dn))){var $dq;if(nn$(($dq=$do))){if((!$dp.equals($dq))){return false;}}else {return false;}}else {var $dr;if(nn$(($dr=$do))){return false;}}}
if(getFinished()===$dm){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 $ds=(1);function set$ds($dt){return $ds=$dt;};$prop$get$ds={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.$prop$getHash,pa:1024,d:['$','List','$at','hash','$at','hash$ypbuur']};}};$prop$get$ds.get=function(){return $ds};$prop$get$ds.set=set$ds;if(set$ds.$crtmm$===undefined)set$ds.$crtmm$=$prop$get$ds.$crtmm$;var $dv;for(var $du=list$.iterator();($dv=$du.next())!==getFinished();){($ds=$ds.times(31));var $dw;if(nn$(($dw=$dv))){($ds=$ds.plus($dw.hash));}}return $ds;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:List,pa:11,d:['$','List','$at','hash']};});list$.find=function($dx){var list$=this;var $dy=(0);function set$dy($dz){return $dy=$dz;};while(($dy<list$.size)){var $e0;if(nn$(($e0=list$.getFromFirst(($e1=$dy,$dy=$e1.successor,$e1))))){if($dx($e0)){return $e0;}}var $e1;}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:$_Boolean}}],$cont:List,pa:11,d:['$','List','$m','find']};};list$.findLast=function($e2){var list$=this;var $e3=list$.size.minus(1);function set$e3($e4){return $e3=$e4;};while(($e3>=0)){var $e5;if(nn$(($e5=list$.getFromFirst(($e6=$e3,$e3=$e6.predecessor,$e6))))){if($e2($e5)){return $e5;}}var $e6;}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:$_Boolean}}],$cont:List,pa:11,d:['$','List','$m','findLast']};};list$.sublistFrom=function($e7){var list$=this;return ($e8=(($e7<0)?list$:null),nn$($e8)?$e8:list$.Rest$List($e7));};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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','sublistFrom']};};list$.sublistTo=function($e9){var list$=this;return ($ea=(($e9<0)?list$:null),nn$($ea)?$ea:list$.Sublist$List($e9));};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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take),$init$OpenFunction()(lmp$(ex$,'$'),$init$List().$$.prototype.initial)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','sublistTo']};};list$.sublist=function($eb,$ec){var list$=this;return list$.sublistTo($ec).sublistFrom($eb);};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($ed,$ee,$ef,$$$mptypes){var list$=this;return list$.size;};list$.patch$defs$length=function($ed,$ee,$ef,$$$mptypes){return 0;};list$.patch=function($ed,$ee,$ef,$$$mptypes){var list$=this;if($ee===undefined){$ee=list$.patch$defs$from($ed,$ee,$ef);}
if($ef===undefined){$ef=list$.patch$defs$length($ed,$ee,$ef);}
return ($eg=((($ef>=0)&&($eh=$ee,$eh.compare((0))!==getSmaller()&&$eh.compare(list$.size)!==getLarger()))?list$.Patch$List($ed,$ee,$ef,{Other$Patch:$$$mptypes.Other$patch}):null),nn$($eg)?$eg: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'}},an:function(){return[doc("The list of new elements.")];}},{nm:'from',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:List:$m:patch:$at:from$qq3tn7')];}},{nm:'length',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:List:$m:patch:$at:length$jmuogh')];}}],$cont:List,tp:{Other$patch:{}},pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:patch')];},d:['$','List','$m','patch']};};list$.startsWith=function($ei){var list$=this;return list$.includesAt(0,$ei);};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()(lmp$(ex$,'$'),$init$List().$$.prototype.endsWith)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','startsWith']};};list$.endsWith=function($ej){var list$=this;return list$.includesAt(list$.size.minus($ej.size),$ej);};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()(lmp$(ex$,'$'),$init$List().$$.prototype.startsWith)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','endsWith']};};list$.includesAt=function($ek,$el){var list$=this;if(($el.size>list$.size.minus($ek))){return false;}var $en;for(var $em=measure((0),$el.size,{Element$measure:{t:Integer}}).iterator();($en=$em.next())!==getFinished();){var $eo=list$.getFromFirst($ek.plus($en));var $ep=$el.getFromFirst($en);var $eq;if(nn$(($eq=$eo))){var $er;if(nn$(($er=$ep))){if((!$eq.equals($er))){return false;}}else {return false;}}else {var $es;if(nn$(($es=$ep))){return false;}}}
if(getFinished()===$en){return true;}};list$.includesAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:List:$m:includesAt:$at:index$4y7thb')];}},{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:includesAt')];},d:['$','List','$m','includesAt']};};list$.includes=function($et){var list$=this;if($et.empty){return true;}var $ev=(0),$ew=list$.size.minus($et.size).plus(1);for(var $ex=0;$ex<$ew;$ex++,($ev=$ev.successor)){if(list$.includesAt($ev,$et)){return true;}}return false;};list$.includes.$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:includes')];},d:['$','List','$m','includes']};};list$.inclusions=function($ey){var list$=this;return for$(function(){var $ez=measure((0),list$.size.minus($ey.size).plus(1),{Element$measure:{t:Integer}}).iterator(),$f0=getFinished();var n$f0=function(){while(($f0=$ez.next())!==getFinished()){if(list$.includesAt($f0,$ey)){return $f0;}
}
return getFinished();}
n$f0();return function(){if($f0!==getFinished()){var $f1=$f0;var $f2=$f1;n$f0();return $f2;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}});};list$.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:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:inclusions')];},d:['$','List','$m','inclusions']};};list$.firstInclusion=function($f3){var list$=this;var $f5;for(var $f4=measure((0),list$.size.minus($f3.size).plus(1),{Element$measure:{t:Integer}}).iterator();($f5=$f4.next())!==getFinished();){if(list$.includesAt($f5,$f3)){return $f5;}}
if(getFinished()===$f5){return null;}};list$.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:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:firstInclusion')];},d:['$','List','$m','firstInclusion']};};list$.lastInclusion=function($f6){var list$=this;var $f8;for(var $f7=measure((0),list$.size.minus($f6.size).plus(1),{Element$measure:{t:Integer}}).reversed.iterator();($f8=$f7.next())!==getFinished();){if(list$.includesAt($f8,$f6)){return $f8;}}
if(getFinished()===$f8){return null;}};list$.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:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:lastInclusion')];},d:['$','List','$m','lastInclusion']};};list$.occursAt=function($f9,$fa){var list$=this;var $fb=list$.getFromFirst($f9);var $fc;if(nn$(($fc=$fa))){var $fd;if(nn$(($fd=$fb))){return $fd.equals($fc);}else {return false;}}else {return !nn$($fb);}};list$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:List:$m:occursAt:$at:index$30ns2r')];}},{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:occursAt')];},d:['$','List','$m','occursAt']};};list$.occurs=function($fe){var list$=this;var $fg;for(var $ff=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($fg=$ff.next())!==getFinished();){if(list$.occursAt($fg,$fe)){return true;}}
if(getFinished()===$fg){return false;}};list$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:occurs')];},d:['$','List','$m','occurs']};};list$.occurrences=function($fh){var list$=this;return for$(function(){var $fi=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator(),$fj=getFinished();var n$fj=function(){while(($fj=$fi.next())!==getFinished()){if(list$.occursAt($fj,$fh)){return $fj;}
}
return getFinished();}
n$fj();return function(){if($fj!==getFinished()){var $fk=$fj;var $fl=$fk;n$fj();return $fl;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}});};list$.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:Anything}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:occurrences')];},d:['$','List','$m','occurrences']};};list$.firstOccurrence=function($fm){var list$=this;var $fo;for(var $fn=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($fo=$fn.next())!==getFinished();){if(list$.occursAt($fo,$fm)){return $fo;}}
if(getFinished()===$fo){return null;}};list$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:firstOccurrence')];},d:['$','List','$m','firstOccurrence']};};list$.lastOccurrence=function($fp){var list$=this;var $fr;for(var $fq=measure((0),list$.size,{Element$measure:{t:Integer}}).reversed.iterator();($fr=$fq.next())!==getFinished();){if(list$.occursAt($fr,$fp)){return $fr;}}
if(getFinished()===$fr){return null;}};list$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:lastOccurrence')];},d:['$','List','$m','lastOccurrence']};};list$.indexesWhere=function($fs){var list$=this;return for$(function(){var $fv;var $ft=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator(),$fu=getFinished();var n$fu=function(){while(($fu=$ft.next())!==getFinished()){if(nn$(($fv=list$.getFromFirst($fu)))&&$fs($fv)){return $fu;}
}
return getFinished();}
n$fu();return function(){if($fu!==getFinished()){var $fw=$fu;var $fx=$fw;n$fu();return $fx;}
return getFinished();}
},{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:$_Boolean},an:function(){return[doc$($CCMM$,'$:List:$m:indexesWhere:$m:selecting$er6fq2')];}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:indexesWhere')];},d:['$','List','$m','indexesWhere']};};list$.firstIndexWhere=function($fy){var list$=this;var $fz=(0);function set$fz($g0){return $fz=$g0;};while(($fz<list$.size)){var $g1;if(nn$(($g1=list$.getFromFirst($fz)))&&$fy($g1)){return $fz;}($g2=$fz,$fz=$g2.successor,$g2);var $g2;}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:$_Boolean},an:function(){return[doc$($CCMM$,'$:List:$m:firstIndexWhere:$m:selecting$xlulik')];}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:firstIndexWhere')];},d:['$','List','$m','firstIndexWhere']};};list$.lastIndexWhere=function($g3){var list$=this;var $g4=list$.size;function set$g4($g5){return $g4=$g5;};while(($g4>0)){($g6=$g4,$g4=$g6.predecessor,$g6);var $g6;var $g7;if(nn$(($g7=list$.getFromFirst($g4)))&&$g3($g7)){return $g4;}}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:$_Boolean},an:function(){return[doc$($CCMM$,'$:List:$m:lastIndexWhere:$m:selecting$j3xxzq')];}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:lastIndexWhere')];},d:['$','List','$m','lastIndexWhere']};};list$.$_trim=function($g8){var list$=this;if((list$.size>0)){var $g9=list$.size.minus(1);var $ga=(-1);function set$ga($gb){return $ga=$gb;};var $gc=(-1);function set$gc($gd){return $gc=$gd;};var $gf;for(var $ge=span((0),$g9,{Element$span:{t:Integer}}).iterator();($gf=$ge.next())!==getFinished();){var $gg;if(nn$(($gg=list$.getFromFirst($gf)))&&!$g8($gg)){$ga=$gf;break;}}
if(getFinished()===$gf){return getEmpty();}var $gi;for(var $gh=span($g9,(0),{Element$span:{t:Integer}}).iterator();($gi=$gh.next())!==getFinished();){var $gj;if(nn$(($gj=list$.getFromFirst($gi)))&&!$g8($gj)){$gc=$gi;break;}}
if(getFinished()===$gi){return getEmpty();}return list$.span($ga,$gc);}else {return getEmpty();}};list$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:List:$m:trim:$m:trimming$68e1qa')];}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trim')];},d:['$','List','$m','trim']};};list$.trimLeading=function($gk){var list$=this;if((list$.size>0)){var $gl=list$.size.minus(1);var $gn=(0),$gm=$gl,$go=$gn.compare($gm),$gp=$go===getSmaller()?'successor':'predecessor';for(var $gq=eorl$($go);$gq($gm,$gn);$gn=$gn[$gp]){var $gr;if(nn$(($gr=list$.getFromFirst($gn)))&&!$gk($gr)){return list$.span($gn,$gl);}}}return getEmpty();};list$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:List:$m:trimLeading:$m:trimming$yvqbbg')];}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trimLeading')];},d:['$','List','$m','trimLeading']};};list$.trimTrailing=function($gs){var list$=this;if((list$.size>0)){var $gt=list$.size.minus(1);var $gv=$gt,$gu=(0),$gw=$gv.compare($gu),$gx=$gw===getSmaller()?'successor':'predecessor';for(var $gy=eorl$($gw);$gy($gu,$gv);$gv=$gv[$gx]){var $gz;if(nn$(($gz=list$.getFromFirst($gv)))&&!$gs($gz)){return list$.span(0,$gv);}}}return getEmpty();};list$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:List:$m:trimTrailing:$m:trimming$uacsrm')];}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trimTrailing')];},d:['$','List','$m','trimTrailing']};};list$.$_slice=function($h0){var list$=this;return tpl$([list$.spanTo($h0.minus(1)),list$.spanFrom($h0)],{t:'T',l:[{t:List,a:{Element$List:list$.$$targs$$.Element$List}},{t:List,a:{Element$List:list$.$$targs$$.Element$List}}]});};list$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:List,a:{Element$List:'Element$List'}}},{$t:{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($h1){var list$=this;return list$.spanTo($h1.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()(lmp$(ex$,'$'),$init$List().$$.prototype.terminal),$init$OpenFunction()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistTo),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','initial']};};list$.terminal=function($h2){var list$=this;return list$.spanFrom(list$.size.minus($h2));};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()(lmp$(ex$,'$'),$init$List().$$.prototype.initial)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','terminal']};};list$.span=function($h3,$h4){var list$=this;if((list$.size>0)){var $h5=list$.size.minus(1);if(($h3<=$h4)){return ($h6=((($h4<0)||($h3>$h5))?getEmpty():null),nn$($h6)?$h6:ArraySequence($_Array(list$.sublist($h3,$h4),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List}));var $h6;}else {return ($h7=((($h3<0)||($h4>$h5))?getEmpty():null),nn$($h7)?$h7:ArraySequence($_Array(list$.sublist($h4,$h3).reversed,{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List}));var $h7;}}else {return getEmpty();}};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($h8){var list$=this;if(($h8<=0)){return list$.clone();}else {if(($h8<list$.size)){return ArraySequence($_Array(list$.sublistFrom($h8),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}else {return getEmpty();}}};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($h9){var list$=this;if(($h9>=list$.size.minus(1))){return list$;}else {if(($h9>=0)){return ArraySequence($_Array(list$.sublistTo($h9),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}else {return getEmpty();}}};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($ha,$hb){var list$=this;if(($hb>list$.size)){return list$;}else {if(($hb>=1)){return ArraySequence($_Array(list$.sublist($ha,$ha.plus($hb).minus(1)),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}else {return getEmpty();}}};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($hc,$$$mptypes){var list$=this;if(list$.empty){return getEmpty();}else {var $hd=false;var $hf=false;var $he=(function(){function $hg($$targs$$){var $hg$=new $hg.$$;$hg$.outer$=list$;$hg$.$$targs$$=$$targs$$;$_Object($hg$);List({Element$List:$$$mptypes.Result$collect},$hg$);var size=list$.size;atr$($hg$,'size',function(){return size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$hg,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$at','size']};});return $hg$;
};$hg.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$hg$.collect,sts:[{t:List,a:{Element$List:'Result$collect'}}],d:['$','List','$m','collect','$o','list$98kifc']};};function $init$$hg(){if($hg.$$===undefined){initTypeProto($hg,'ceylon.language::List.list',$init$$_Object(),$init$List());
(function($hg$){atr$($hg$,'lastIndex',function(){var $hg$=this;return list$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$hg,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$at','lastIndex']};});delete $hg$.size;$hg$.getFromFirst=function($hh){var $hg$=this;if(($hi=$hh,$hi.compare((0))!==getSmaller()&&$hi.compare($hg$.size)===getSmaller())){return $hc(list$.$d2($hh));}else {return null;}};$hg$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Result$collect']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$hg,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$m','getFromFirst']};};})($hg.$$.prototype);}
return $hg;}
$init$$hg();var $hj;function get$hj(){if($hj===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'list\' before it was set"),'739:12-752:12','List.ceylon');if($hj===undefined){$hj=INIT$;$hj=$init$$hg()({Element$List:$$$mptypes.Result$collect});$hj.$crtmm$=get$hj.$crtmm$;}
return $hj;}
get$hj.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$hg},$cont:$hg$.collect,d:['$','List','$m','collect','$o','list$98kifd']};};$prop$get$hj={get:get$hj,$crtmm$:get$hj.$crtmm$};get$hg=get$hj;$prop$get$hg=get$hj;return ArraySequence($_Array(get$hj(),{Element$Array:$$$mptypes.Result$collect}),{Element$ArraySequence:$$$mptypes.Result$collect});}());if($he!==undefined){return $he;}}
};list$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$collect',an:function(){return[doc$($CCMM$,'$:List:$m:collect:$m:collecting$rpkv6r')];}}],$cont:List,tp:{Result$collect:{}},pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:collect')];},d:['$','List','$m','collect']};};function Indexes$List($hk$){$init$Indexes$List();if($hk$===undefined)$hk$=new this.Indexes$List.$$;
$hk$.outer$=this;$hk$.$$targs$$={Element$List:{t:Integer}};$_Object($hk$);List({Element$List:{t:Integer}},$hk$);return $hk$;}
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($hk$){atr$($hk$,'lastIndex',function(){var $hk$=this;return $hk$.outer$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$hk$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','lastIndex']};});$hk$.getFromFirst=function($hl){var $hk$=this;return ($hk$.defines($hl)?$hl:null);};$hk$.clone=function(){var $hk$=this;return measure((0),$hk$.size,{Element$measure:{t:Integer}});};$hk$.measure=function($hm,$hn){var $hk$=this;return $hk$.clone().measure($hm,$hn);};$hk$.span=function($ho,$hp){var $hk$=this;return $hk$.clone().span($ho,$hp);};$hk$.spanFrom=function($hq){var $hk$=this;return $hk$.clone().spanFrom($hq);};$hk$.spanTo=function($hr){var $hk$=this;return $hk$.clone().spanTo($hr);};atr$($hk$,'string',function(){var $hk$=this;var $hs;if(nn$(($hs=$hk$.lastIndex))){return "{ 0, ... , ".plus($hs.string).plus(" }");}else {return "{}";}},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$hk$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','string']};});$hk$.iterator=function(){var $hk$=this;function $ht($$targs$$){var $ht$=new $ht.$$;$ht$.outer$=$hk$;$ht$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$ht$);$ht$.$hu_=(0);$ht$.$prop$get$hu={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$ht,pa:1024,d:['$','List','$c','Indexes$1g59zu','$m','iterator','$o','iterator$fgqud0','$at','i$izpgzk']};}};$ht$.$prop$get$hu.get=function(){return $hu};return $ht$;
};$ht.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$hk$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','List','$c','Indexes$1g59zu','$m','iterator','$o','iterator$fgqud0']};};function $init$$ht(){if($ht.$$===undefined){initTypeProto($ht,'ceylon.language::List.Indexes.iterator',Basic,$init$Iterator());
(function($ht$){atr$($ht$,'$hu',function(){return this.$hu_;},function($hv){return this.$hu_=$hv;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$ht,pa:1024,d:['$','List','$c','Indexes$1g59zu','$m','iterator','$o','iterator$fgqud0','$at','i$izpgzk']};});$ht$.next=function(){var $ht$=this;return ($hw=(($ht$.$hu<$hk$.size)?($hx=$ht$.$hu,$ht$.$hu=$hx.successor,$hx):null),nn$($hw)?$hw:getFinished());};atr$($ht$,'string',function(){var $ht$=this;return "".plus($hk$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$ht,pa:3,d:['$','List','$c','Indexes$1g59zu','$m','iterator','$o','iterator$fgqud0','$at','string']};});})($ht.$$.prototype);}
return $ht;}
$init$$ht();var $hy;function get$hy(){if($hy===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'786:12-790:12','List.ceylon');if($hy===undefined){$hy=INIT$;$hy=$init$$ht()({Element$Iterator:{t:Integer}});$hy.$crtmm$=get$hy.$crtmm$;}
return $hy;}
get$hy.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$ht},$cont:$hk$.iterator,d:['$','List','$c','Indexes$1g59zu','$m','iterator','$o','iterator$fgqud1']};};$prop$get$hy={get:get$hy,$crtmm$:get$hy.$crtmm$};get$ht=get$hy;$prop$get$ht=get$hy;var $hw,$hx;return get$hy();};$hk$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Integer}}},ps:[],$cont:$hk$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$m','iterator']};};$hk$.Indexes$List=Indexes$List;})(Indexes$List.$$.prototype);}
return Indexes$List;}
list$.$init$Indexes$List=$init$Indexes$List;$init$Indexes$List();list$.Indexes$List=Indexes$List;function Rest$List($hz,$i0$){$init$Rest$List();if($i0$===undefined)$i0$=new this.Rest$List.$$;
$i0$.outer$=this;$i0$.$$targs$$={Element$List:$i0$.outer$.$$targs$$.Element$List};$i0$.$hz_=$hz;$_Object($i0$);List({Element$List:$i0$.outer$.$$targs$$.Element$List},$i0$);asrt$((($i0$.$hz>=0)),"Assertion failed: \'from>=0\' at List.ceylon (800:15-800:23)",'800:8-800:24','List.ceylon');
$i0$.measure=function($i1,$i2){var list$=this;return $i0$.outer$.measure($i1.plus($i0$.$hz),$i2);};$i0$.span=function($i3,$i4){var list$=this;return $i0$.outer$.span($i3.plus($i0$.$hz),$i4.plus($i0$.$hz));};$i0$.spanFrom=function($i5){var list$=this;return $i0$.outer$.spanFrom($i5.plus($i0$.$hz));};$i0$.spanTo=function($i6){var list$=this;return $i0$.outer$.span($i0$.$hz,$i6.plus($i0$.$hz));};$i0$.clone=function(){var list$=this;return $i0$.outer$.clone().Rest$List($i0$.$hz);};return $i0$;}
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($i0$){$i0$.getFromFirst=function($i7){var $i0$=this;if(($i7<0)){return null;}else {return $i0$.outer$.getFromFirst($i7.plus($i0$.$hz));}};$i0$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$i0$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$m','getFromFirst']};};atr$($i0$,'lastIndex',function(){var $i0$=this;var $i8=$i0$.outer$.size.minus($i0$.$hz);$prop$get$i8={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$i0$.$prop$getLastIndex,d:['$','List','$c','Rest$fyp886','$at','lastIndex','$at','size$te3kmj']};}};$prop$get$i8.get=function(){return $i8};return (($i8>0)?$i8.minus(1):null);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$i0$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','lastIndex']};});$i0$.measure=function($i1,$i2){var $i0$=this;return $i0$.outer$.measure($i1.plus($i0$.$hz),$i2);};$i0$.span=function($i3,$i4){var $i0$=this;return $i0$.outer$.span($i3.plus($i0$.$hz),$i4.plus($i0$.$hz));};$i0$.spanFrom=function($i5){var $i0$=this;return $i0$.outer$.spanFrom($i5.plus($i0$.$hz));};$i0$.spanTo=function($i6){var $i0$=this;return $i0$.outer$.span($i0$.$hz,$i6.plus($i0$.$hz));};$i0$.clone=function(){var $i0$=this;return $i0$.outer$.clone().Rest$List($i0$.$hz);};$i0$.iterator=function(){var $i0$=this;var $i9=$i0$.outer$.iterator();var $ia=(0);function set$ia($ib){return $ia=$ib;};while((($ic=$ia,$ia=$ic.successor,$ic)<$i0$.$hz)){$i9.next();}var $ic;function $id($$targs$$){var $id$=new $id.$$;$id$.outer$=$i0$;$id$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$i0$.outer$.$$targs$$.Element$List},$id$);return $id$;
};$id.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$i0$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Rest$fyp886','$m','iterator','$o','iterator$z81ye0']};};function $init$$id(){if($id.$$===undefined){initTypeProto($id,'ceylon.language::List.Rest.iterator',Basic,$init$Iterator());
(function($id$){$id$.next=function(){var $id$=this;return $i9.next();};atr$($id$,'string',function(){var $id$=this;return "".plus($i0$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$id,pa:3,d:['$','List','$c','Rest$fyp886','$m','iterator','$o','iterator$z81ye0','$at','string']};});})($id.$$.prototype);}
return $id;}
$init$$id();var $ie;function get$ie(){if($ie===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'832:12-835:12','List.ceylon');if($ie===undefined){$ie=INIT$;$ie=$init$$id()({Element$Iterator:$i0$.outer$.$$targs$$.Element$List});$ie.$crtmm$=get$ie.$crtmm$;}
return $ie;}
get$ie.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$id},$cont:$i0$.iterator,d:['$','List','$c','Rest$fyp886','$m','iterator','$o','iterator$z81ydz']};};$prop$get$ie={get:get$ie,$crtmm$:get$ie.$crtmm$};get$id=get$ie;$prop$get$id=get$ie;return get$ie();};$i0$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$List'}},ps:[],$cont:$i0$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$m','iterator']};};atr$($i0$,'$hz',function(){return this.$hz_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$i0$.Rest$List,d:['$','List','$c','Rest$fyp886','$at','from$8r4afz']};});$i0$.Rest$List=Rest$List;})(Rest$List.$$.prototype);}
return Rest$List;}
list$.$init$Rest$List=$init$Rest$List;$init$Rest$List();list$.Rest$List=Rest$List;function Sublist$List($if,$ig$){$init$Sublist$List();if($ig$===undefined)$ig$=new this.Sublist$List.$$;
$ig$.outer$=this;$ig$.$$targs$$={Element$List:$ig$.outer$.$$targs$$.Element$List};$ig$.$if_=$if;$_Object($ig$);List({Element$List:$ig$.outer$.$$targs$$.Element$List},$ig$);asrt$((($ig$.$if>=0)),"Assertion failed: \'to>=0\' at List.ceylon (845:15-845:21)",'845:8-845:22','List.ceylon');
$ig$.measure=function($ih,$ii){var list$=this;return ($ij=(($ih.plus($ii).minus(1)>$ig$.$if)?$ig$.outer$.measure($ih,$ig$.$if):null),nn$($ij)?$ij:$ig$.outer$.measure($ih,$ii));};var $ij;$ig$.span=function($ik,$il){var list$=this;return ($im=(($il>$ig$.$if)?$ig$.outer$.span($ik,$ig$.$if):null),nn$($im)?$im:$ig$.outer$.span($ik,$il));};var $im;$ig$.spanFrom=function($in){var list$=this;return $ig$.outer$.span($in,$ig$.$if);};$ig$.spanTo=function($io){var list$=this;return ($ip=(($io>$ig$.$if)?$ig$.outer$.spanTo($ig$.$if):null),nn$($ip)?$ip:$ig$.outer$.spanTo($io));};var $ip;$ig$.clone=function(){var list$=this;return $ig$.outer$.clone().Sublist$List($ig$.$if);};return $ig$;}
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($ig$){$ig$.getFromFirst=function($iq){var $ig$=this;if((($iq>=0)&&($iq<=$ig$.$if))){return $ig$.outer$.getFromFirst($iq);}else {return null;}};$ig$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$ig$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$m','getFromFirst']};};atr$($ig$,'lastIndex',function(){var $ig$=this;var $ir=$ig$.outer$.size.minus(1);$prop$get$ir={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$ig$.$prop$getLastIndex,d:['$','List','$c','Sublist$elvxw4','$at','lastIndex','$at','endIndex$bnch79']};}};$prop$get$ir.get=function(){return $ir};if(($ir>=0)){return ($is=(($ir<$ig$.$if)?$ir:null),nn$($is)?$is:$ig$.$if);var $is;}else {return null;}},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$ig$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','lastIndex']};});$ig$.measure=function($ih,$ii){var $ig$=this;return ($it=(($ih.plus($ii).minus(1)>$ig$.$if)?$ig$.outer$.measure($ih,$ig$.$if):null),nn$($it)?$it:$ig$.outer$.measure($ih,$ii));};$ig$.span=function($ik,$il){var $ig$=this;return ($iu=(($il>$ig$.$if)?$ig$.outer$.span($ik,$ig$.$if):null),nn$($iu)?$iu:$ig$.outer$.span($ik,$il));};$ig$.spanFrom=function($in){var $ig$=this;return $ig$.outer$.span($in,$ig$.$if);};$ig$.spanTo=function($io){var $ig$=this;return ($iv=(($io>$ig$.$if)?$ig$.outer$.spanTo($ig$.$if):null),nn$($iv)?$iv:$ig$.outer$.spanTo($io));};$ig$.clone=function(){var $ig$=this;return $ig$.outer$.clone().Sublist$List($ig$.$if);};$ig$.iterator=function(){var $ig$=this;var $iw=$ig$.outer$.iterator();var $ix=(0);function set$ix($iy){return $ix=$iy;};function $iz($$targs$$){var $iz$=new $iz.$$;$iz$.outer$=$ig$;$iz$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$ig$.outer$.$$targs$$.Element$List},$iz$);return $iz$;
};$iz.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$ig$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4','$m','iterator','$o','iterator$j4f49q']};};function $init$$iz(){if($iz.$$===undefined){initTypeProto($iz,'ceylon.language::List.Sublist.iterator',Basic,$init$Iterator());
(function($iz$){$iz$.next=function(){var $iz$=this;return ($j0=((($j1=$ix,$ix=$j1.successor,$j1)>$ig$.$if)?getFinished():null),nn$($j0)?$j0:$iw.next());};atr$($iz$,'string',function(){var $iz$=this;return "".plus($ig$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$iz,pa:3,d:['$','List','$c','Sublist$elvxw4','$m','iterator','$o','iterator$j4f49q','$at','string']};});})($iz.$$.prototype);}
return $iz;}
$init$$iz();var $j2;function get$j2(){if($j2===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'886:12-889:12','List.ceylon');if($j2===undefined){$j2=INIT$;$j2=$init$$iz()({Element$Iterator:$ig$.outer$.$$targs$$.Element$List});$j2.$crtmm$=get$j2.$crtmm$;}
return $j2;}
get$j2.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$iz},$cont:$ig$.iterator,d:['$','List','$c','Sublist$elvxw4','$m','iterator','$o','iterator$j4f49p']};};$prop$get$j2={get:get$j2,$crtmm$:get$j2.$crtmm$};get$iz=get$j2;$prop$get$iz=get$j2;var $j0,$j1;return get$j2();};$ig$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$List'}},ps:[],$cont:$ig$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$m','iterator']};};atr$($ig$,'$if',function(){return this.$if_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$ig$.Sublist$List,d:['$','List','$c','Sublist$elvxw4','$at','to$1d4wke']};});$ig$.Sublist$List=Sublist$List;})(Sublist$List.$$.prototype);}
return Sublist$List;}
list$.$init$Sublist$List=$init$Sublist$List;$init$Sublist$List();list$.Sublist$List=Sublist$List;function Repeat$List($j3,$j4$){$init$Repeat$List();if($j4$===undefined)$j4$=new this.Repeat$List.$$;
$j4$.outer$=this;$j4$.$$targs$$={Element$List:$j4$.outer$.$$targs$$.Element$List};$j4$.$j3_=$j3;$_Object($j4$);List({Element$List:$j4$.outer$.$$targs$$.Element$List},$j4$);return $j4$;}
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($j4$){atr$($j4$,'size',function(){var $j4$=this;return $j4$.outer$.size.times($j4$.$j3);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$j4$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','size']};});atr$($j4$,'lastIndex',function(){var $j4$=this;var $j5=$j4$.size;$prop$get$j5={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$j4$.$prop$getLastIndex,d:['$','List','$c','Repeat$59m2x5','$at','lastIndex','$at','size$ngsg64']};}};$prop$get$j5.get=function(){return $j5};return (($j5>0)?$j5.minus(1):null);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$j4$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','lastIndex']};});$j4$.getFromFirst=function($j6){var $j4$=this;var $j7=$j4$.outer$.size;if(($j6<$j7.times($j4$.$j3))){return $j4$.outer$.getFromFirst($j6.remainder($j7));}else {return null;}};$j4$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$j4$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$m','getFromFirst']};};$j4$.clone=function(){var $j4$=this;return $j4$.outer$.clone().Repeat$List($j4$.$j3);};$j4$.iterator=function(){var $j4$=this;return CycledIterator($j4$.outer$,$j4$.$j3,{Element$CycledIterator:$j4$.outer$.$$targs$$.Element$List});};atr$($j4$,'string',function(){var $j4$=this;return "(".plus($j4$.outer$.string).plus(").repeat(").plus($j4$.$j3.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$j4$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','string']};});atr$($j4$,'$j3',function(){return this.$j3_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$j4$.Repeat$List,d:['$','List','$c','Repeat$59m2x5','$at','times$219c9m']};});$j4$.Repeat$List=Repeat$List;})(Repeat$List.$$.prototype);}
return Repeat$List;}
list$.$init$Repeat$List=$init$Repeat$List;$init$Repeat$List();list$.Repeat$List=Repeat$List;function Patch$List($j8,$j9,$ja,$$targs$$,$jb$){$init$Patch$List();if($jb$===undefined)$jb$=new this.Patch$List.$$;
$jb$.outer$=this;set_type_args($jb$,$$targs$$);$jb$.$j8_=$j8;$jb$.$j9_=$j9;$jb$.$ja_=$ja;$_Object($jb$);List({Element$List:{t:'u',l:[$jb$.outer$.$$targs$$.Element$List,$jb$.$$targs$$.Other$Patch]}},$jb$);asrt$((($jb$.$ja>=0)),"Assertion failed: \'length>=0\' at List.ceylon (929:15-929:25)",'929:8-929:26','List.ceylon');
asrt$((($jc=$jb$.$j9,$jc.compare((0))!==getSmaller()&&$jc.compare($jb$.outer$.size)!==getLarger())),"Assertion failed: \'0<=from<=outer.size\' at List.ceylon (930:15-930:35)",'930:8-930:36','List.ceylon');
atr$($jb$,'size',function(){return $jb$.outer$.size.plus($jb$.$j8.size).minus($jb$.$ja);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jb$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','size']};});$jb$.clone=function(){var list$=this;return $jb$.outer$.clone().Patch$List($jb$.$j8.clone(),$jb$.$j9,$jb$.$ja,{Other$Patch:$jb$.$$targs$$.Other$Patch});};return $jb$;}
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($jb$){atr$($jb$,'size',function(){var $jb$=this;return $jb$.outer$.size.plus($jb$.$j8.size).minus($jb$.$ja);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jb$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','size']};});atr$($jb$,'lastIndex',function(){var $jb$=this;var $jd=$jb$.size;$prop$get$jd={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jb$.$prop$getLastIndex,d:['$','List','$c','Patch$xht1ke','$at','lastIndex','$at','size$papw9j']};}};$prop$get$jd.get=function(){return $jd};return (($jd>0)?$jd.minus(1):null);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$jb$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','lastIndex']};});$jb$.getFromFirst=function($je){var $jb$=this;if(($je<$jb$.$j9)){return $jb$.outer$.getFromFirst($je);}else {if(($je.minus($jb$.$j9)<$jb$.$j8.size)){return $jb$.$j8.getFromFirst($je.minus($jb$.$j9));}else {return $jb$.outer$.getFromFirst($je.minus($jb$.$j8.size).plus($jb$.$ja));}}};$jb$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'u',l:['Element$List','Other$Patch']}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$jb$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$m','getFromFirst']};};$jb$.clone=function(){var $jb$=this;return $jb$.outer$.clone().Patch$List($jb$.$j8.clone(),$jb$.$j9,$jb$.$ja,{Other$Patch:$jb$.$$targs$$.Other$Patch});};$jb$.iterator=function(){var $jb$=this;var $jf=$jb$.outer$.iterator();var $jg=$jb$.$j8.iterator();function $jh($$targs$$){var $jh$=new $jh.$$;$jh$.outer$=$jb$;$jh$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:'u',l:[$jb$.outer$.$$targs$$.Element$List,$jb$.$$targs$$.Other$Patch]}},$jh$);$jh$.$ji_=(-1);$jh$.$prop$get$ji={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jh,pa:1024,d:['$','List','$c','Patch$xht1ke','$m','iterator','$o','iterator$v4oa10','$at','index$ln8shj']};}};$jh$.$prop$get$ji.get=function(){return $ji};return $jh$;
};$jh.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$jb$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke','$m','iterator','$o','iterator$v4oa10']};};function $init$$jh(){if($jh.$$===undefined){initTypeProto($jh,'ceylon.language::List.Patch.iterator',Basic,$init$Iterator());
(function($jh$){atr$($jh$,'$ji',function(){return this.$ji_;},function($jj){return this.$ji_=$jj;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jh,pa:1024,d:['$','List','$c','Patch$xht1ke','$m','iterator','$o','iterator$v4oa10','$at','index$ln8shj']};});$jh$.next=function(){var $jh$=this;if(((($jh$.$ji=$jh$.$ji.successor)).valueOf()==($jb$.$j9).valueOf())){var $jl=(0),$jm=$jb$.$ja;for(var $jn=0;$jn<$jm;$jn++,($jl=$jl.successor)){$jf.next();}}if(($jo=$jh$.$ji.minus($jb$.$j9),$jo.compare((0))!==getSmaller()&&$jo.compare($jb$.$j8.size)===getSmaller())){return $jg.next();}else {return $jf.next();}};$jh$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$List','Other$Patch',{t:Finished}]},ps:[],$cont:$jh,pa:3,d:['$','List','$c','Patch$xht1ke','$m','iterator','$o','iterator$v4oa10','$m','next']};};atr$($jh$,'string',function(){var $jh$=this;return "".plus($jb$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$jh,pa:3,d:['$','List','$c','Patch$xht1ke','$m','iterator','$o','iterator$v4oa10','$at','string']};});})($jh.$$.prototype);}
return $jh;}
$init$$jh();var $jp;function get$jp(){if($jp===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'956:12-972:12','List.ceylon');if($jp===undefined){$jp=INIT$;$jp=$init$$jh()({Element$Iterator:{t:'u',l:[$jb$.outer$.$$targs$$.Element$List,$jb$.$$targs$$.Other$Patch]}});$jp.$crtmm$=get$jp.$crtmm$;}
return $jp;}
get$jp.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$jh},$cont:$jb$.iterator,d:['$','List','$c','Patch$xht1ke','$m','iterator','$o','iterator$v4oa0z']};};$prop$get$jp={get:get$jp,$crtmm$:get$jp.$crtmm$};get$jh=get$jp;$prop$get$jh=get$jp;return get$jp();};$jb$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$List','Other$Patch']}}},ps:[],$cont:$jb$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$m','iterator']};};atr$($jb$,'$j8',function(){return this.$j8_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Other$Patch'}},$cont:$jb$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','list$cbomfb']};});atr$($jb$,'$j9',function(){return this.$j9_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jb$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','from$8gxpyr']};});atr$($jb$,'$ja',function(){return this.$ja_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jb$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','length$x539u7']};});$jb$.Patch$List=Patch$List;})(Patch$List.$$.prototype);}
return Patch$List;}
list$.$init$Patch$List=$init$Patch$List;$init$Patch$List();list$.Patch$List=Patch$List;function Reversed$List($jq$){$init$Reversed$List();if($jq$===undefined)$jq$=new this.Reversed$List.$$;
$jq$.outer$=this;$jq$.$$targs$$={Element$List:$jq$.outer$.$$targs$$.Element$List};$_Object($jq$);List({Element$List:$jq$.outer$.$$targs$$.Element$List},$jq$);return $jq$;}
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($jq$){atr$($jq$,'lastIndex',function(){var $jq$=this;return $jq$.outer$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','lastIndex']};});atr$($jq$,'size',function(){var $jq$=this;return $jq$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','size']};});atr$($jq$,'first',function(){var $jq$=this;return $jq$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','first']};});atr$($jq$,'last',function(){var $jq$=this;return $jq$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','last']};});atr$($jq$,'reversed',function(){var $jq$=this;return $jq$.outer$;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','reversed']};});$jq$.getFromFirst=function($jr){var $jq$=this;if(($jq$.size>0)){return $jq$.outer$.getFromFirst($jq$.size.minus(1).minus($jr));}else {return null;}};$jq$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$m','getFromFirst']};};$jq$.measure=function($js,$jt){var $jq$=this;if(($jq$.size>0)&&($jt>1)){var $ju=$jq$.size.minus(1).minus($js);return $jq$.outer$.span($ju,$ju.minus($jt).plus(1));}else {return getEmpty();}};$jq$.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:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$m','measure']};};$jq$.span=function($jv,$jw){var $jq$=this;return $jq$.outer$.span($jw,$jv);};$jq$.spanFrom=function($jx){var $jq$=this;var $jy=$jq$.size.minus(1);if(($jy>=0)&&($jx<=$jy)){return $jq$.outer$.span($jy.minus($jx),0);}else {return getEmpty();}};$jq$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$m','spanFrom']};};$jq$.spanTo=function($jz){var $jq$=this;var $k0=$jq$.size.minus(1);if(($k0>=0)&&($jz>=0)){return $jq$.outer$.span($k0,$k0.minus($jz));}else {return getEmpty();}};$jq$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$m','spanTo']};};$jq$.clone=function(){var $jq$=this;return $jq$.outer$.clone().reversed;};$jq$.iterator=function(){var $jq$=this;var $k1=$jq$.outer$;function $k2($$targs$$){var $k2$=new $k2.$$;$k2$.outer$=$jq$;$k2$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$jq$.outer$.$$targs$$.Element$List},$k2$);$k2$.$k3_=$k1.size.minus(1);$k2$.$prop$get$k3={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$k2,pa:1024,d:['$','List','$c','Reversed$ijs9g8','$m','iterator','$o','iterator$49yo9m','$at','index$w5ft77']};}};$k2$.$prop$get$k3.get=function(){return $k3};return $k2$;
};$k2.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$jq$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Reversed$ijs9g8','$m','iterator','$o','iterator$49yo9m']};};function $init$$k2(){if($k2.$$===undefined){initTypeProto($k2,'ceylon.language::List.Reversed.iterator',Basic,$init$Iterator());
(function($k2$){atr$($k2$,'$k3',function(){return this.$k3_;},function($k4){return this.$k3_=$k4;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$k2,pa:1024,d:['$','List','$c','Reversed$ijs9g8','$m','iterator','$o','iterator$49yo9m','$at','index$w5ft77']};});$k2$.next=function(){var $k2$=this;return ($k5=(($k2$.$k3<0)?getFinished():null),nn$($k5)?$k5:$k1.$d2(($k6=$k2$.$k3,$k2$.$k3=$k6.predecessor,$k6)));};atr$($k2$,'string',function(){var $k2$=this;return "".plus($jq$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$k2,pa:3,d:['$','List','$c','Reversed$ijs9g8','$m','iterator','$o','iterator$49yo9m','$at','string']};});})($k2.$$.prototype);}
return $k2;}
$init$$k2();var $k7;function get$k7(){if($k7===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'1034:12-1039:12','List.ceylon');if($k7===undefined){$k7=INIT$;$k7=$init$$k2()({Element$Iterator:$jq$.outer$.$$targs$$.Element$List});$k7.$crtmm$=get$k7.$crtmm$;}
return $k7;}
get$k7.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$k2},$cont:$jq$.iterator,d:['$','List','$c','Reversed$ijs9g8','$m','iterator','$o','iterator$49yo9l']};};$prop$get$k7={get:get$k7,$crtmm$:get$k7.$crtmm$};get$k2=get$k7;$prop$get$k2=get$k7;var $k5,$k6;return get$k7();};$jq$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$List'}},ps:[],$cont:$jq$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$m','iterator']};};$jq$.Reversed$List=Reversed$List;})(Reversed$List.$$.prototype);}
return Reversed$List;}
list$.$init$Reversed$List=$init$Reversed$List;$init$Reversed$List();list$.Reversed$List=Reversed$List;})(List.$$.prototype);}
return List;}
ex$.$init$List=$init$List;$init$List();var $cr,$e8,$ea,$eg,$it,$iu,$iv;function $_Array(elems,$$targs$$) {
$init$$_Array();
var e=[];
if (!(elems === null || elems === undefined)) {
var iter=elems.iterator();
var item;while((item=iter.next())!==getFinished()) {
e.push(item);
}
}
e.$$targs$$=$$targs$$;
var t=$$targs$$.Element$Array;
List({Element$List:t}, e);
return e;
}
$_Array.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}}}],tp:{Element$Array:{}},sts:[{t:List,a:{Element$List:'Element$Array'}},{t:Ranged,a:{Subrange$Ranged:{t:$_Array,a:{Element$Array:'Element$Array'}},Element$Ranged:'Element$Array',Index$Ranged:{t:Integer}}}],pa:97,an:function(){return[doc$($CCMM$,'$:Array')];},d:['$','Array']};};
ex$.$_Array=$_Array;function $init$$_Array(){if($_Array.$$===undefined){initExistingType($_Array, Array, 'ceylon.language::Array', $_Object, Ranged, $init$List());
inheritProto($_Array, $_Object, Ranged, $init$List());

(function(array$){array$.getFromLast=function getFromLast(i){
var e=this[this.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:67,an:function(){return[doc$($CCMM$,'$:Array:$m:getFromLast')];},d:['$','Array','$m','getFromLast']};};array$.getFromFirst=function getFromFirst(i){
var e=this[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:67,an:function(){return[doc$($CCMM$,'$:Array:$m:getFromFirst')];},d:['$','Array','$m','getFromFirst']};};array$.set=function(idx,elem) {
if (idx >= 0 && idx < this.length) {
this[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:65,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, \nif `index<0` or if `index>lastIndex`")];},d:['$','Array','$m','set']};};array$.copyTo=function(other,srcpos,dstpos,length){
if(srcpos===undefined)srcpos=0;
if(length===undefined)length=this.size-srcpos;
if (length===0)return;
if(dstpos===undefined)dstpos=0;
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[dstpos--]=this[i];
}
} else {
for (var i=srcpos;i<=endpos;i++) {
other[dstpos++]=this[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("The array into which to copy the elements.")];}},{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:65,an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo')];},d:['$','Array','$m','copyTo']};};atr$(array$,'lastIndex',function(){return this.length>0 ? (this.length-1) : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$_Array,pa:67,d:['$','Array','$at','lastIndex']};});atr$(array$,'first',function(){return this.length>0 ? this[0] : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},$cont:$_Array,pa:67,d:['$','Array','$at','first']};});atr$(array$,'last',function(){return this.length>0 ? this[this.length-1] : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},$cont:$_Array,pa:67,d:['$','Array','$at','last']};});array$.clone=function(){
return this.slice(0);
}
array$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[],$cont:$_Array,pa:67,an:function(){return[doc$($CCMM$,'$:Array:$m:clone')];},d:['$','Array','$m','clone']};};atr$(array$,'empty',function(){return this.length==0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Array,pa:67,d:['$','Array','$at','empty']};});atr$(array$,'size',function(){return this.length;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Array,pa:67,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:67,d:['$','Array','$m','defines']};};array$.iterator=function() {
var $idx$=0;
var $arr$=this;
return new for$iter(function() {
return ($idx$===$arr$.length) ? getFinished() : $arr$[$idx$++];
},{Element$Iterable:this._elemTarg(),Absent$Iterable:{t:Null}});
}
array$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Array'}},ps:[],$cont:$_Array,pa:67,d:['$','Array','$m','iterator']};};array$.contains=function(elem) {
for (var i=0; i<this.length; i++) {
if (elem.equals(this[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:67,d:['$','Array','$m','contains']};};array$.sequence=function() {
if(this.length===0)return getEmpty();
return ArraySequence(this,{Element$ArraySequence:this._elemTarg()});
}
array$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Array'}},ps:[],$cont:$_Array,pa:67,d:['$','Array','$m','sequence']};};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:$_Boolean}}],$cont:$_Array,pa:67,d:['$','Array','$m','count']};};array$.span=function(from, to) {
if (from > to) {
var arr = this.measure(to, from-to+1);
arr.reverseInPlace();
return arr.rt$(this._elemTarg());
}
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:67,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:67,d:['$','Array','$m','spanFrom']};};array$.spanTo=function(to) {
return to < 0 ? getEmpty() : 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:67,d:['$','Array','$m','spanTo']};};array$.measure=function(from, len) {
if (len <= 0) { return getEmpty(); }
var stop = from + len;
var seq = this.slice((from>=0)?from:0, (stop>=0)?stop:0);
return seq.rt$(this._elemTarg());
}
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:67,d:['$','Array','$m','measure']};};array$.skip=function(c){
if (c<=0)return this;
var r=this.slice(c);
return r.rt$(this._elemTarg());
}
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:67,d:['$','Array','$m','skip']};};array$.take=function(c) {
if (c<=0)return [].rt$(this._elemTarg());
var r=this.slice(0,c);
return r.rt$(this._elemTarg());
}
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:67,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.length) {
r.push(this[idx]);
idx+=c;
}
return r.rt$(this._elemTarg());
}
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:67,d:['$','Array','$m','by']};};array$.reverseInPlace=function() {
var len = this.length;
for (i=0; i<Math.floor(len/2); i++) {
var swap = this[i];
this[i]=this[len-i-1];
this[len-i-1]=swap;
}
}
array$.reverseInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$_Array,pa:65,an:function(){return[doc$($CCMM$,'$:Array:$m:reverseInPlace')];},d:['$','Array','$m','reverseInPlace']};};array$.sortInPlace=function(f) {
this.sort(function(a,b) {
var r = f(a,b);
return r===getLarger()?1:r===getSmaller()?-1:0;
});
}
array$.sortInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Comparison},an:function(){return[doc$($CCMM$,'$:Array:$m:sortInPlace:$m:comparing$awkb12')];}}],$cont:$_Array,pa:65,an:function(){return[doc$($CCMM$,'$:Array:$m:sortInPlace')];},d:['$','Array','$m','sortInPlace']};};array$.$_sort=function(f) {
var clone = this.clone();
clone.sortInPlace(f);
return ArraySequence(clone,{Element$ArraySequence:{t:this._elemTarg()}});
}
array$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Array'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Comparison}}],$cont:$_Array,pa:67,d:['$','Array','$m','sort']};};atr$(array$,'$k8',function(){return this.$k8_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},$cont:$_Array,d:['$','Array','$at','elements$v26qpk']};});})($_Array.$$.prototype);}
return $_Array;}
ex$.$init$$_Array=$init$$_Array;$init$$_Array();var arrprot$=Array.prototype;
var origArrToString = arrprot$.toString;
arrprot$.toString = origArrToString;
arrprot$.rt$=function(t,ne) {
if (t===null || t===undefined)t={t:Anything};
if (this.$$targs$$===undefined)this.$$targs$$=={};
add_type_arg(this,'Element$Iterable',t);
add_type_arg(this,'Element$Array',t);
add_type_arg(this,'Element$List',t);
add_type_arg(this,'Element$Sequential',t);
add_type_arg(this,'Absent$Iterable',ne?{t:Nothing}:{t:Null});
return this;
}
arrprot$._elemTarg=function(){
var t = this.$$targs$$ && this.$$targs$$.Element$Array;
if (t===undefined)t = this.$$targs$$ && this.$$targs$$.Element$Iterable;
if (t===undefined)t = this.$$targs$$ && this.$$targs$$.Element$List;
if (t===undefined)t = {t:Anything};
if (this.$$targs$$===undefined)this.$$targs$$={
Element$Array:t, Element$List:t, Element$Iterable:t,
Element$Collection:t, Item$Correspondence:t,Element$Ranged:t,
Absent$Iterable:Null, Key$Correspondence:{t:Integer},
Index$Ranged:{t:Integer}, Subrange$Ranged:{t:$_Array,a:{Element$Array:'Element$Array'}}
};
return t;
}
arrprot$.getT$name = function() {
return $_Array.$$.T$name;
}
arrprot$.getT$all = function() {
return $_Array.$$.T$all;
}
atr$(arrprot$,'reversed', function() {
this._elemTarg();
return this.Reversed$List();
},undefined,List.$$.prototype.$prop$getReversed.$crtmm$);
atr$(arrprot$,'rest', function() {
this._elemTarg();
return this.Rest$List(1);
},undefined,List.$$.prototype.$prop$getRest.$crtmm$);
function sarg$(elems,spread,$$targs$$){
$init$sarg();
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){
that.iterator=function (){
var sarg=this;
function iter($$targs$$){
var $$4=new iter.$$;
$$4.outer$=sarg;
$$4.$$targs$$=$$targs$$;
Iterator({Element$Iterator:sarg.$$targs$$.Element$Iterable},$$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.it',Basic,Iterator);
iter.$$.prototype.next=function(){
if (this.sp)return this.sp.next();
var e=sarg.e(this.i);
if (e===getFinished() && sarg.s) {
this.sp=sarg.s().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']};};
}
return iter({Element$Iterator:sarg.$$targs$$.T$LazyIterable});
};
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 ArraySequence($k9,$$targs$$,arraySequence$){$init$ArraySequence();if(arraySequence$===undefined)arraySequence$=new ArraySequence.$$;
set_type_args(arraySequence$,$$targs$$);arraySequence$.$k9_=$k9;$_Object(arraySequence$);Sequence({Element$Sequence:$$targs$$.Element$ArraySequence},arraySequence$);arraySequence$.$prop$get$k9={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$ArraySequence'}},$cont:ArraySequence,d:['$','ArraySequence','$at','array$sfdy8d']};}};arraySequence$.$prop$get$k9.get=function(){return $k9};asrt$((!arraySequence$.$k9.empty),"Assertion failed: \'!array.empty\' at ArraySequence.ceylon (15:11-15:24)",'15:4-15:25','ArraySequence.ceylon');
arraySequence$.getFromFirst=function($ka){return arraySequence$.$k9.getFromFirst($ka);};arraySequence$.contains=function($kb){return arraySequence$.$k9.contains($kb);};atr$(arraySequence$,'size',function(){return arraySequence$.$k9.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','size']};});arraySequence$.iterator=function(){return arraySequence$.$k9.iterator();};atr$(arraySequence$,'rest',function(){return ($kc=(((arraySequence$.size).valueOf()==(1).valueOf())?getEmpty():null),nn$($kc)?$kc:ArraySequence(arraySequence$.$k9.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 $kc;arraySequence$.clone=function(){return ArraySequence(arraySequence$.$k9.clone(),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});};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:17,an:function(){return[doc$($CCMM$,'$:ArraySequence'),by(["Tom"].rt$({t:$_String})),see([$init$OpenFunction()(lmp$(ex$,'$'),sequence)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','ArraySequence']};};
ex$.ArraySequence=ArraySequence;function $init$ArraySequence(){if(ArraySequence.$$===undefined){initTypeProto(ArraySequence,'ceylon.language::ArraySequence',$init$$_Object(),$init$Sequence());
(function(arraySequence$){atr$(arraySequence$,'$k9',function(){return this.$k9_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$ArraySequence'}},$cont:ArraySequence,d:['$','ArraySequence','$at','array$sfdy8d']};});arraySequence$.getFromFirst=function($ka){var arraySequence$=this;return arraySequence$.$k9.getFromFirst($ka);};arraySequence$.contains=function($kb){var arraySequence$=this;return arraySequence$.$k9.contains($kb);};atr$(arraySequence$,'size',function(){var arraySequence$=this;return arraySequence$.$k9.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$.$k9.iterator();};atr$(arraySequence$,'first',function(){var arraySequence$=this;var $kd;if(nn$(($kd=arraySequence$.$k9.first))){return $kd;}else {var $ke;asrt$((is$(($ke=null),arraySequence$.$$targs$$.Element$ArraySequence)),"Assertion failed: \'is Element null\' at ArraySequence.ceylon (30:19-30:35)",'30:12-30: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 $kf;if(nn$(($kf=arraySequence$.$k9.last))){return $kf;}else {var $kg;asrt$((is$(($kg=null),arraySequence$.$$targs$$.Element$ArraySequence)),"Assertion failed: \'is Element null\' at ArraySequence.ceylon (40:19-40:35)",'40:12-40: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 ($kh=(((arraySequence$.size).valueOf()==(1).valueOf())?getEmpty():null),nn$($kh)?$kh:ArraySequence(arraySequence$.$k9.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$.$k9.clone(),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});};arraySequence$.collect=function($ki,$$$mptypes){var arraySequence$=this;var $kj;asrt$((ne$(($kj=arraySequence$.$k9.collect(JsCallable(arraySequence$,$ki),{Result$collect:$$$mptypes.Result$collect})))),"Assertion failed: \'nonempty sequence = array.collect(collecting)\' at ArraySequence.ceylon (51:15-51:61)",'51:8-51:62','ArraySequence.ceylon');
return $kj;};arraySequence$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$collect'}],$cont:ArraySequence,tp:{Result$collect:{}},pa:11,d:['$','ArraySequence','$m','collect']};};arraySequence$.$_sort=function($kk){var arraySequence$=this;var $kl;asrt$((ne$(($kl=arraySequence$.$k9.$_sort(JsCallable(arraySequence$,$kk))))),"Assertion failed: \'nonempty sequence = array.sort(comparing)\' at ArraySequence.ceylon (57:15-57:57)",'57:8-57:58','ArraySequence.ceylon');
return $kl;};arraySequence$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$ArraySequence'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Comparison}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','sort']};};arraySequence$.measure=function($km,$kn){var arraySequence$=this;if(((($km>arraySequence$.lastIndex)||($kn<=0))||($km.plus($kn)<=0))){return getEmpty();}else {if(($km<0)){return ArraySequence(arraySequence$.$k9.measure(0,$kn.plus($km)),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}else {return ArraySequence(arraySequence$.$k9.measure($km,$kn),{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($ko,$kp){var arraySequence$=this;if(($ko<=$kp)){if((($kp<0)||($ko>arraySequence$.lastIndex))){return getEmpty();}return ArraySequence(arraySequence$.$k9.span($ko,$kp),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}else {if((($ko<0)||($kp>arraySequence$.lastIndex))){return getEmpty();}return ArraySequence(arraySequence$.$k9.span($ko,$kp),{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($kq){var arraySequence$=this;if(($kq>arraySequence$.lastIndex)){return getEmpty();}else {return ArraySequence(arraySequence$.$k9.spanFrom($kq),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}};arraySequence$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','spanFrom']};};arraySequence$.spanTo=function($kr){var arraySequence$=this;if(($kr<0)){return getEmpty();}else {return ArraySequence(arraySequence$.$k9.spanTo($kr),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}};arraySequence$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},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();var $kh;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$);tuple$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:'First$Tuple',$cont:Tuple,pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$at:first')];},d:['$','Tuple','$at','first']};}};tuple$.$prop$getFirst.get=function(){return first};tuple$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:'Rest$Tuple',$cont:Tuple,pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$at:rest')];},d:['$','Tuple','$at','rest']};}};tuple$.$prop$getRest.get=function(){return rest};tuple$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Tuple,pa:67,d:['$','Tuple','$at','lastIndex']};}};tuple$.$prop$getLastIndex.get=function(){return lastIndex};tuple$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Tuple,pa:67,d:['$','Tuple','$at','size']};}};tuple$.$prop$getSize.get=function(){return size};return tuple$;}
Tuple.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'first',mt:'prm',$t:'First$Tuple',pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$at:first')];}},{nm:'rest',mt:'prm',$t:'Rest$Tuple',pa:67,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:97,an:function(){return[doc$($CCMM$,'$:Tuple'),by(["Gavin"].rt$({t:$_String}))];},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:67,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:67,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:67,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:67,d:['$','Tuple','$at','size']};});tuple$.getFromFirst=function($ks){var tuple$=this;var $kt=$ks.compare(0);if($kt===getSmaller()) {return null;}else if($kt===getEqual()) {return tuple$.first;}else if($kt===getLarger()) {return tuple$.rest.getFromFirst($ks.minus(1));}};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:67,d:['$','Tuple','$m','getFromFirst']};};atr$(tuple$,'last',function(){var tuple$=this;var $ku;if(ne$(($ku=tuple$.rest))){return $ku.last;}else {return tuple$.first;}},undefined,function(){return{mod:$CCMM$,$t:'Element$Tuple',$cont:Tuple,pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$at:last')];},d:['$','Tuple','$at','last']};});tuple$.measure=function($kv,$kw){var tuple$=this;if(($kw<=0)){return getEmpty();}var $kx=($ky=(($kv<0)?0:null),nn$($ky)?$ky:$kv);var $ky;if((($kx).valueOf()==(0).valueOf())){return ($kz=((($kw).valueOf()==(1).valueOf())?tpl$([tuple$.first],{t:'T',l:[tuple$.$$targs$$.First$Tuple]}):null),nn$($kz)?$kz:tuple$.rest.measure(0,$kw.plus($kx).minus(1)).withLeading(tuple$.first,{Other$withLeading:tuple$.$$targs$$.First$Tuple}));var $kz;}return tuple$.rest.measure($kx.minus(1),$kw);};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:67,d:['$','Tuple','$m','measure']};};tuple$.span=function($l0,$l1){var tuple$=this;if((($l0<0)&&($l1<0))){return getEmpty();}var $l2=($l3=(($l0<0)?0:null),nn$($l3)?$l3:$l0);var $l3;var $l4=($l5=(($l1<0)?0:null),nn$($l5)?$l5:$l1);var $l5;return ($l6=(($l2<=$l4)?tuple$.measure($l0,$l4.minus($l2).plus(1)):null),nn$($l6)?$l6:tuple$.measure($l4,$l2.minus($l4).plus(1)).reversed.sequence());var $l6;};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:67,d:['$','Tuple','$m','span']};};tuple$.spanTo=function($l7){var tuple$=this;return ($l8=(($l7<0)?getEmpty():null),nn$($l8)?$l8:tuple$.span(0,$l7));};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:67,d:['$','Tuple','$m','spanTo']};};tuple$.spanFrom=function($l9){var tuple$=this;return tuple$.span($l9,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:67,d:['$','Tuple','$m','spanFrom']};};tuple$.clone=function(){var tuple$=this;return tuple$;};tuple$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'First$Tuple'}]},ps:[],$cont:Tuple,pa:67,an:function(){return[doc("This tuple.")];},d:['$','Tuple','$m','clone']};};tuple$.iterator=function(){var tuple$=this;function $la($$targs$$){var $la$=new $la.$$;$la$.outer$=tuple$;$la$.$$targs$$=$$targs$$;Iterator({Element$Iterator:tuple$.$$targs$$.Element$Tuple},$la$);$la$.$lb_=tuple$;$la$.$prop$get$lb={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},$cont:$la,pa:1027,d:['$','Tuple','$m','iterator','$o','iterator$qzn7eb','$at','current$4fo7z']};}};$la$.$prop$get$lb.get=function(){return $lb};$la$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$la,pa:3,d:['$','Tuple','$m','iterator','$o','iterator$qzn7eb','$at','string']};}};$la$.$prop$getString.get=function(){return string};return $la$;
};$la.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:tuple$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Tuple'}}],d:['$','Tuple','$m','iterator','$o','iterator$qzn7eb']};};function $init$$la(){if($la.$$===undefined){initTypeProto($la,'ceylon.language::Tuple.iterator',Basic,$init$Iterator());
(function($la$){atr$($la$,'$lb',function(){return this.$lb_;},function($lc){return this.$lb_=$lc;},function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},$cont:$la,pa:1027,d:['$','Tuple','$m','iterator','$o','iterator$qzn7eb','$at','current$4fo7z']};});$la$.next=function(){var $la$=this;var $ld;if(ne$(($ld=$la$.$lb))){$la$.$lb=$ld.rest;return $ld.first;}else {return getFinished();}};$la$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Tuple',{t:Finished}]},ps:[],$cont:$la,pa:3,d:['$','Tuple','$m','iterator','$o','iterator$qzn7eb','$m','next']};};atr$($la$,'string',function(){var $la$=this;return "".plus(tuple$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$la,pa:3,d:['$','Tuple','$m','iterator','$o','iterator$qzn7eb','$at','string']};});})($la.$$.prototype);}
return $la;}
$init$$la();var $le;function get$le(){if($le===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'113:8-125:8','Tuple.ceylon');if($le===undefined){$le=INIT$;$le=$init$$la()({Element$Iterator:tuple$.$$targs$$.Element$Tuple});$le.$crtmm$=get$le.$crtmm$;}
return $le;}
get$le.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$la},$cont:tuple$.iterator,d:['$','Tuple','$m','iterator','$o','iterator$qzn7ec']};};$prop$get$le={get:get$le,$crtmm$:get$le.$crtmm$};get$la=get$le;$prop$get$la=get$le;return get$le();};tuple$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Tuple'}},ps:[],$cont:Tuple,pa:67,d:['$','Tuple','$m','iterator']};};tuple$.contains=function($lf){var tuple$=this;var $lg;if(nn$(($lg=tuple$.first))&&$lg.equals($lf)){return true;}else {return tuple$.rest.contains($lf);}};tuple$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Tuple,pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$m:contains')];},d:['$','Tuple','$m','contains']};};tuple$.withLeading=function($lh,$$$mptypes){var tuple$=this;return Tuple($lh,tuple$,{First$Tuple:$$$mptypes.Other$withLeading,Rest$Tuple:{t:'T',l:[tuple$.$$targs$$.First$Tuple,{t:Anything}]},Element$Tuple:{t:'u',l:[$$$mptypes.Other$withLeading,tuple$.$$targs$$.Element$Tuple]}});};tuple$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'Other$withLeading'},{$t:'First$Tuple'}]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading',an:function(){return[doc("The first element of the resulting tuple.")];}}],$cont:Tuple,tp:{Other$withLeading:{}},pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$m:withLeading')];},d:['$','Tuple','$m','withLeading']};};tuple$.withTrailing=function($li,$$$mptypes){var tuple$=this;return Tuple(tuple$.first,tuple$.rest.withTrailing($li,{Other$withTrailing:$$$mptypes.Other$withTrailing}),{First$Tuple:tuple$.$$targs$$.First$Tuple,Rest$Tuple:{t:Sequence,a:{Element$Sequence:{t:'u',l:[tuple$.$$targs$$.Element$Tuple,$$$mptypes.Other$withTrailing]}}},Element$Tuple:{t:'u',l:[tuple$.$$targs$$.Element$Tuple,$$$mptypes.Other$withTrailing]}});};tuple$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'First$Tuple'},{$t:{t:'u',l:['Element$Tuple','Other$withTrailing']},seq:1}]},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing',an:function(){return[doc("The last element of the resulting tuple.")];}}],$cont:Tuple,tp:{Other$withTrailing:{}},pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$m:withTrailing')];},d:['$','Tuple','$m','withTrailing']};};tuple$.append=function($lj,$$$mptypes){var tuple$=this;return Tuple(tuple$.first,tuple$.rest.append($lj,{Other$append:$$$mptypes.Other$append}),{First$Tuple:tuple$.$$targs$$.First$Tuple,Rest$Tuple:{t:Sequential,a:{Element$Sequential:{t:'u',l:[tuple$.$$targs$$.Element$Tuple,$$$mptypes.Other$append]}}},Element$Tuple:{t:'u',l:[tuple$.$$targs$$.Element$Tuple,$$$mptypes.Other$append]}});};tuple$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'First$Tuple'},{$t:{t:'u',l:['Element$Tuple','Other$append']},seq:1}]},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}},an:function(){return[doc("The list of elements to be appended.")];}}],$cont:Tuple,tp:{Other$append:{}},pa:67,an:function(){return[doc$($CCMM$,'$:Tuple:$m:append')];},d:['$','Tuple','$m','append']};};})(Tuple.$$.prototype);}
return Tuple;}
ex$.$init$Tuple=$init$Tuple;$init$Tuple();var $l8;function ChainedIterator($lk,$ll,$$targs$$,chainedIterator$){$init$ChainedIterator();if(chainedIterator$===undefined)chainedIterator$=new ChainedIterator.$$;
set_type_args(chainedIterator$,$$targs$$);chainedIterator$.$lk_=$lk;chainedIterator$.$ll_=$ll;Iterator({Element$Iterator:{t:'u',l:[$$targs$$.Element$ChainedIterator,$$targs$$.Other$ChainedIterator]}},chainedIterator$);chainedIterator$.$lm_=chainedIterator$.$lk.iterator();chainedIterator$.$prop$get$lm={$crtmm$: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']};}};chainedIterator$.$prop$get$lm.get=function(){return $lm};chainedIterator$.$ln_=true;chainedIterator$.$prop$get$ln={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ChainedIterator,pa:1027,d:['$','ChainedIterator','$at','more$5ang2r']};}};chainedIterator$.$prop$get$ln.get=function(){return $ln};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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].rt$({t:FunctionDeclaration$meta$declaration})),by(["Enrique Zamudio"].rt$({t:$_String}))];},d:['$','ChainedIterator']};};function $init$ChainedIterator(){if(ChainedIterator.$$===undefined){initTypeProto(ChainedIterator,'ceylon.language::ChainedIterator',Basic,$init$Iterator());
(function(chainedIterator$){atr$(chainedIterator$,'$lm',function(){return this.$lm_;},function($lo){return this.$lm_=$lo;},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$,'$ln',function(){return this.$ln_;},function($lp){return this.$ln_=$lp;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ChainedIterator,pa:1027,d:['$','ChainedIterator','$at','more$5ang2r']};});chainedIterator$.next=function(){var chainedIterator$=this;var $lq=chainedIterator$.$lm.next();function set$lq($lr){return $lq=$lr;};if((chainedIterator$.$ln&&is$($lq,{t:Finished}))){chainedIterator$.$lm=chainedIterator$.$ll.iterator();chainedIterator$.$ln=false;$lq=chainedIterator$.$lm.next();}return $lq;};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 "(".plus(chainedIterator$.$lk.string).plus(" chain ").plus(chainedIterator$.$ll.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ChainedIterator,pa:3,d:['$','ChainedIterator','$at','string']};});atr$(chainedIterator$,'$lk',function(){return this.$lk_;},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$,'$ll',function(){return this.$ll_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Other$ChainedIterator'}},$cont:ChainedIterator,d:['$','ChainedIterator','$at','second$9dpb6y']};});})(ChainedIterator.$$.prototype);}
return ChainedIterator;}
ex$.$init$ChainedIterator=$init$ChainedIterator;$init$ChainedIterator();function CycledIterator($ls,$lt,$$targs$$,cycledIterator$){$init$CycledIterator();if(cycledIterator$===undefined)cycledIterator$=new CycledIterator.$$;
set_type_args(cycledIterator$,$$targs$$);cycledIterator$.$ls_=$ls;cycledIterator$.$lt_=$lt;Iterator({Element$Iterator:$$targs$$.Element$CycledIterator},cycledIterator$);cycledIterator$.$lu_=getEmptyIterator();cycledIterator$.$prop$get$lu={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$CycledIterator'}},$cont:CycledIterator,pa:1027,d:['$','CycledIterator','$at','iter$glpg04']};}};cycledIterator$.$prop$get$lu.get=function(){return $lu};cycledIterator$.$lv_=(0);cycledIterator$.$prop$get$lv={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,pa:1024,d:['$','CycledIterator','$at','count$2etvtx']};}};cycledIterator$.$prop$get$lv.get=function(){return $lv};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']};};function $init$CycledIterator(){if(CycledIterator.$$===undefined){initTypeProto(CycledIterator,'ceylon.language::CycledIterator',Basic,$init$Iterator());
(function(cycledIterator$){atr$(cycledIterator$,'$lu',function(){return this.$lu_;},function($lw){return this.$lu_=$lw;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$CycledIterator'}},$cont:CycledIterator,pa:1027,d:['$','CycledIterator','$at','iter$glpg04']};});atr$(cycledIterator$,'$lv',function(){return this.$lv_;},function($lx){return this.$lv_=$lx;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,pa:1024,d:['$','CycledIterator','$at','count$2etvtx']};});cycledIterator$.next=function(){var cycledIterator$=this;var $ly;if(!is$(($ly=cycledIterator$.$lu.next()),{t:Finished})){return $ly;}else {if((cycledIterator$.$lv<cycledIterator$.$lt)){($lz=cycledIterator$.$lv,cycledIterator$.$lv=$lz.successor,$lz);var $lz;cycledIterator$.$lu=cycledIterator$.$ls.iterator();}else {cycledIterator$.$lu=getEmptyIterator();}return cycledIterator$.$lu.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 "".plus(cycledIterator$.$ls.string).plus(".repeat(").plus(cycledIterator$.$lt.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:CycledIterator,pa:3,d:['$','CycledIterator','$at','string']};});atr$(cycledIterator$,'$ls',function(){return this.$ls_;},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$,'$lt',function(){return this.$lt_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,d:['$','CycledIterator','$at','times$6c4zeu']};});})(CycledIterator.$$.prototype);}
return CycledIterator;}
ex$.$init$CycledIterator=$init$CycledIterator;$init$CycledIterator();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$);entry$.$prop$getKey={$crtmm$:function(){return{mod:$CCMM$,$t:'Key$Entry',$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:key')];},d:['$','Entry','$at','key']};}};entry$.$prop$getKey.get=function(){return key};entry$.$prop$getItem={$crtmm$:function(){return{mod:$CCMM$,$t:'Item$Entry',$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:item')];},d:['$','Entry','$at','item']};}};entry$.$prop$getItem.get=function(){return item};entry$.$prop$getPair={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'Key$Entry'},{$t:'Item$Entry'}]},$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:pair')];},d:['$','Entry','$at','pair']};}};entry$.$prop$getPair.get=function(){return pair};entry$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Entry,pa:3,an:function(){return[doc$($CCMM$,'$:Entry:$at:string')];},d:['$','Entry','$at','string']};}};entry$.$prop$getString.get=function(){return string};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:33,an:function(){return[doc$($CCMM$,'$:Entry'),by(["Gavin"].rt$({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],{t:'T',l:[entry$.$$targs$$.Key$Entry,entry$.$$targs$$.Item$Entry]});},undefined,function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:'Key$Entry'},{$t:'Item$Entry'}]},$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:pair')];},d:['$','Entry','$at','pair']};});entry$.equals=function($m0){var entry$=this;var $m1;if(is$(($m1=$m0),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}})){if((!entry$.key.equals($m1.key))){return false;}var $m2,$m3;if(nn$(($m2=entry$.item))&&nn$(($m3=$m1.item))){return $m2.equals($m3);}else {return (!nn$(entry$.item)&&!nn$($m1.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;var $m4=(31).plus(entry$.key.hash).times(31);$prop$get$m4={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:entry$.$prop$getHash,d:['$','Entry','$at','hash','$at','keyHash$q7pvoo']};}};$prop$get$m4.get=function(){return $m4};var $m5;if(nn$(($m5=entry$.item))){return $m4.plus($m5.hash);}else {return $m4;}},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Entry,pa:3,d:['$','Entry','$at','hash']};});atr$(entry$,'string',function(){var entry$=this;return "".plus(entry$.key.string).plus("->").plus(stringify(entry$.item)).plus("");},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();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:97,an:function(){return[doc$($CCMM$,'$:Byte')];},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$,'$m6',function(){return this.$m6_;},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:65,an:function(){return[doc$($CCMM$,'$:Byte:$at:even')];},d:['$','Byte','$at','even']};});atr$(byte$,'zero',function(){return this.val$ == 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:65,an:function(){return[doc$($CCMM$,'$:Byte:$at:zero')];},d:['$','Byte','$at','zero']};});atr$(byte$,'unit',function(){return this.val$ == 1;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:65,an:function(){return[doc$($CCMM$,'$:Byte:$at:unit')];},d:['$','Byte','$at','unit']};});atr$(byte$,'unsigned',function(){return this.val$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:65,an:function(){return[doc$($CCMM$,'$:Byte:$at:unsigned')];},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:65,an:function(){return[doc$($CCMM$,'$:Byte:$at:signed')];},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:67,an:function(){return[doc$($CCMM$,'$:Byte:$at:negated')];},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:67,an:function(){return[doc$($CCMM$,'$:Byte:$m:plus')];},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:67,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:67,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:67,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:67,d:['$','Byte','$m','leftLogicalShift']};};atr$(byte$,'not',function(){return Byte(this.val$^0xff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:67,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:67,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:67,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:67,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:67,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:67,d:['$','Byte','$m','xor']};};atr$(byte$,'predecessor',function(){return Byte(this.val$-1);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:67,d:['$','Byte','$at','predecessor']};});atr$(byte$,'successor',function(){return Byte(this.val$+1);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:67,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:67,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:67,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:67,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:67,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:67,d:['$','Byte','$at','hash']};});atr$(byte$,'string',function(){return this.val$.string;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Byte,pa:67,an:function(){return[doc$($CCMM$,'$:Byte:$at:string')];},d:['$','Byte','$at','string']};});})(Byte.$$.prototype);}
return Byte;}
ex$.$init$Byte=$init$Byte;$init$Byte();
//#Number
function Set($$targs$$,set$){Collection({Element$Collection:$$targs$$.Element$Set},set$);set_type_args(set$,$$targs$$,Set);}
Set.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Set:{dv:'out',sts:[{t:$_Object}]}},sts:[{t:Collection,a:{Element$Collection:'Element$Set'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Set')];},d:['$','Set']};};
ex$.Set=Set;function $init$Set(){if(Set.$$===undefined){initTypeProtoI(Set,'ceylon.language::Set',$init$Collection());
(function(set$){set$.contains=function($m7){var set$=this;return set$.getT$all()['ceylon.language::Collection'].$$.prototype.contains.call(this,$m7);};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$.superset=function($m8){var set$=this;var $ma;for(var $m9=$m8.iterator();($ma=$m9.next())!==getFinished();){if(!set$.contains($ma)){return false;}}
if(getFinished()===$ma){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($mb){var set$=this;var $md;for(var $mc=set$.iterator();($md=$mc.next())!==getFinished();){if(!$mb.contains($md)){return false;}}
if(getFinished()===$md){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']};};set$.equals=function($me){var set$=this;var $mf;if(is$(($mf=$me),{t:Set,a:{Element$Set:{t:$_Object}}})&&(($mf.size).valueOf()==(set$.size).valueOf())){var $mh;for(var $mg=set$.iterator();($mh=$mg.next())!==getFinished();){if(!$mf.contains($mh)){return false;}}
if(getFinished()===$mh){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 $mi=(0);function set$mi($mj){return $mi=$mj;};$prop$get$mi={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:set$.$prop$getHash,pa:1024,d:['$','Set','$at','hash','$at','hashCode$1j2i2e']};}};$prop$get$mi.get=function(){return $mi};$prop$get$mi.set=set$mi;if(set$mi.$crtmm$===undefined)set$mi.$crtmm$=$prop$get$mi.$crtmm$;var $ml;for(var $mk=set$.iterator();($ml=$mk.next())!==getFinished();){($mi=$mi.plus($ml.hash));}return $mi;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Set,pa:11,d:['$','Set','$at','hash']};});set$.union={$fml:1,$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:5,an:function(){return[doc$($CCMM$,'$:Set:$m:union')];},d:['$','Set','$m','union']};}};set$.intersection={$fml:1,$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:5,an:function(){return[doc$($CCMM$,'$:Set:$m:intersection')];},d:['$','Set','$m','intersection']};}};set$.exclusiveUnion={$fml:1,$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:5,an:function(){return[doc$($CCMM$,'$:Set:$m:exclusiveUnion')];},d:['$','Set','$m','exclusiveUnion']};}};set$.complement={$fml:1,$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:5,an:function(){return[doc$($CCMM$,'$:Set:$m:complement')];},d:['$','Set','$m','complement']};}};set$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$Set'}},ps:[],$cont:Set,pa:7,d:['$','Set','$m','clone']};}};})(Set.$$.prototype);}
return Set;}
ex$.$init$Set=$init$Set;$init$Set();function $mm($$targs$$){var emptySet$=new $mm.$$;emptySet$.$$targs$$=$$targs$$;$_Object(emptySet$);Set({Element$Set:{t:Nothing}},emptySet$);return emptySet$;
};$mm.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Set,a:{Element$Set:{t:Nothing}}}],pa:1,an:function(){return[doc$($CCMM$,'$:emptySet')];},d:['$','emptySet']};};function $init$getEmptySet(){if($mm.$$===undefined){initTypeProto($mm,'ceylon.language::emptySet',$init$$_Object(),$init$Set());
(function(emptySet$){emptySet$.union=function($mn,$$$mptypes){var emptySet$=this;return $mn;};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:$mm,tp:{Other$union:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','union']};};emptySet$.intersection=function($mo,$$$mptypes){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:$mm,tp:{Other$intersection:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','intersection']};};emptySet$.exclusiveUnion=function($mp,$$$mptypes){var emptySet$=this;return $mp;};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:$mm,tp:{Other$exclusiveUnion:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','exclusiveUnion']};};emptySet$.complement=function($mq,$$$mptypes){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:$mm,tp:{Other$complement:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','complement']};};emptySet$.subset=function($mr){var emptySet$=this;return true;};emptySet$.superset=function($ms){var emptySet$=this;return $ms.empty;};emptySet$.clone=function(){var emptySet$=this;return emptySet$;};emptySet$.iterator=function(){var emptySet$=this;return getEmptyIterator();};atr$(emptySet$,'size',function(){var emptySet$=this;return 0;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$mm,pa:3,d:['$','emptySet','$at','size']};});atr$(emptySet$,'empty',function(){var emptySet$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$mm,pa:3,d:['$','emptySet','$at','empty']};});emptySet$.contains=function($mt){var emptySet$=this;return false;};emptySet$.containsAny=function($mu){var emptySet$=this;return false;};emptySet$.containsEvery=function($mv){var emptySet$=this;return false;};emptySet$.count=function($mw){return 0;};emptySet$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$mm,pa:3,d:['$','emptySet','$m','count']};};emptySet$.find=function($mx){var emptySet$=this;return null;};emptySet$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$mm,pa:3,d:['$','emptySet','$m','find']};};emptySet$.findLast=function($my){var emptySet$=this;return null;};emptySet$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$mm,pa:3,d:['$','emptySet','$m','findLast']};};emptySet$.any=function($mz){var emptySet$=this;return false;};emptySet$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$mm,pa:3,d:['$','emptySet','$m','any']};};emptySet$.$_every=function($n0){var emptySet$=this;return true;};emptySet$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$mm,pa:3,d:['$','emptySet','$m','every']};};emptySet$.skip=function($n1){var emptySet$=this;return emptySet$;};emptySet$.take=function($n2){var emptySet$=this;return emptySet$;};emptySet$.by=function($n3){var emptySet$=this;return emptySet$;};})($mm.$$.prototype);}
return $mm;}
ex$.$init$getEmptySet=$init$getEmptySet;$init$getEmptySet();var $n4;function getEmptySet(){if($n4===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptySet\' before it was set"),'104:0-157:0','Set.ceylon');if($n4===undefined){$n4=INIT$;$n4=$init$getEmptySet()({Element$Set:{t:Nothing}});$n4.$crtmm$=getEmptySet.$crtmm$;}
return $n4;}
ex$.getEmptySet=getEmptySet;getEmptySet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$mm},pa:1,an:function(){return[doc$($CCMM$,'$:emptySet')];},d:['$','emptySet']};};$prop$getEmptySet={get:getEmptySet,$crtmm$:getEmptySet.$crtmm$};getEmptySet=getEmptySet;$prop$getEmptySet=getEmptySet;ex$.$prop$getEmptySet=$prop$getEmptySet;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},range$);range$.$prop$getCoalesced={$crtmm$: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$.$prop$getCoalesced.get=function(){return coalesced};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:273,an:function(){return[doc$($CCMM$,'$:Range'),see([$init$OpenFunction()(lmp$(ex$,'$'),span),$init$OpenFunction()(lmp$(ex$,'$'),measure)].rt$({t:FunctionDeclaration$meta$declaration}))];},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$.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();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$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Span',$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:first')];},d:['$','Span','$at','first']};}};span$.$prop$getFirst.get=function(){return first};span$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Span',$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:last')];},d:['$','Span','$at','last']};}};span$.$prop$getLast.get=function(){return last};span$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Span,pa:3,d:['$','Span','$at','string']};}};span$.$prop$getString.get=function(){return string};span$.$n5_=(span$.last.offsetSign(span$.first)>=0);span$.$prop$getIncreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,pa:3,d:['$','Span','$at','increasing']};}};span$.$prop$getIncreasing.get=function(){return increasing};span$.$prop$getDecreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,pa:3,d:['$','Span','$at','decreasing']};}};span$.$prop$getDecreasing.get=function(){return decreasing};span$.$n6_=((span$.first.offsetSign(span$.first.successor)>0)&&(span$.last.predecessor.offsetSign(span$.last)>0));span$.$prop$get$n6={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,an:function(){return[doc$($CCMM$,'$:Span:$at:recursive$1gdd1o')];},d:['$','Span','$at','recursive$1gdd1o']};}};span$.$prop$get$n6.get=function(){return $n6};span$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:size')];},d:['$','Span','$at','size']};}};span$.$prop$getSize.get=function(){return size};span$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:lastIndex')];},d:['$','Span','$at','lastIndex']};}};span$.$prop$getLastIndex.get=function(){return lastIndex};span$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:rest')];},d:['$','Span','$at','rest']};}};span$.$prop$getRest.get=function(){return rest};span$.$prop$getReversed={$crtmm$: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$.$prop$getReversed.get=function(){return reversed};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:32,an:function(){return[doc$($CCMM$,'$:Span'),by(["Gavin"].rt$({t:$_String})),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Measure),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].rt$({t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]}))];},d:['$','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.$n5_;},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$,'$n6',function(){return this.$n6_;},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$.$n7=function($n8){var span$=this;return ($n9=(span$.increasing?$n8.successor:null),nn$($n9)?$n9:$n8.predecessor);};span$.$n7.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','next$xciqj1']};};span$.$na=function($nb,$nc){var span$=this;return ($nd=(span$.increasing?$nb.neighbour($nc):null),nn$($nd)?$nd:$nb.neighbour((-$nc)));};span$.$na.$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$.$ne=function($nf){var span$=this;return ($ng=(span$.increasing?span$.first.neighbour($nf):null),nn$($ng)?$ng:span$.first.neighbour((-$nf)));};span$.$ne.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Span,d:['$','Span','$m','fromFirst$otuqgo']};};span$.$nh=function($ni){var span$=this;return ($nj=(span$.increasing?($ni.offsetSign(span$.last)>0):null),nn$($nj)?$nj:($ni.offsetSign(span$.last)<0));};span$.$nh.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','afterLast$dudvro']};};span$.$nk=function($nl){var span$=this;return ($nm=(span$.increasing?($nl.offsetSign(span$.last)<0):null),nn$($nm)?$nm:($nl.offsetSign(span$.last)>0));};span$.$nk.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','beforeLast$sti0n5']};};span$.$nn=function($no){var span$=this;return ($np=(span$.increasing?($no.offsetSign(span$.first)<0):null),nn$($np)?$np:($no.offsetSign(span$.first)>0));};span$.$nn.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','beforeFirst$3osfad']};};span$.$nq=function($nr){var span$=this;return ($ns=(span$.increasing?($nr.offsetSign(span$.first)>0):null),nn$($ns)?$ns:($nr.offsetSign(span$.first)<0));};span$.$nq.$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;return span$.last.offset(span$.first).magnitude.plus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:size')];},d:['$','Span','$at','size']};});span$.longerThan=function($nt){var span$=this;if(($nt<1)){return true;}else {if(span$.$n6){return (span$.size>$nt);}else {return span$.$nk(span$.$ne($nt.minus(1)));}}};span$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','longerThan']};};span$.shorterThan=function($nu){var span$=this;if(($nu<1)){return true;}else {if(span$.$n6){return (span$.size<$nu);}else {return span$.$nh(span$.$ne($nu.minus(1)));}}};span$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','shorterThan']};};atr$(span$,'lastIndex',function(){var span$=this;return span$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:lastIndex')];},d:['$','Span','$at','lastIndex']};});atr$(span$,'rest',function(){var span$=this;return ($nv=(span$.first.equals(span$.last)?getEmpty():null),nn$($nv)?$nv:span(span$.$n7(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,an:function(){return[doc$($CCMM$,'$:Span:$at:rest')];},d:['$','Span','$at','rest']};});atr$(span$,'reversed',function(){var span$=this;return ($nw=(span$.$n6?attrGetter(span$.getT$all()['ceylon.language::Sequence'],'reversed').call(this):null),nn$($nw)?$nw: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($nx){var span$=this;if(($nx<0)){return null;}else {if(span$.$n6){return (($nx<span$.size)?span$.$ne($nx):null);}else {var $ny=span$.$ne($nx);return (!span$.$nh($ny)?$ny: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;function $nz($$targs$$){var $nz$=new $nz.$$;$nz$.outer$=span$;$nz$.$$targs$$=$$targs$$;Iterator({Element$Iterator:span$.$$targs$$.Element$Span},$nz$);$nz$.$o0_=span$.first;$nz$.$prop$get$o0={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:$nz,pa:1024,d:['$','Span','$m','iterator','$o','iterator$tobp7p','$at','current$65br75']};}};$nz$.$prop$get$o0.get=function(){return $o0};return $nz$;
};$nz.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:span$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$m','iterator','$o','iterator$tobp7p']};};function $init$$nz(){if($nz.$$===undefined){initTypeProto($nz,'ceylon.language::Span.iterator',Basic,$init$Iterator());
(function($nz$){atr$($nz$,'$o0',function(){return this.$o0_;},function($o1){return this.$o0_=$o1;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:$nz,pa:1024,d:['$','Span','$m','iterator','$o','iterator$tobp7p','$at','current$65br75']};});$nz$.next=function(){var $nz$=this;var $o2;if(!is$(($o2=$nz$.$o0),{t:Finished})){if(!($o2.offset(span$.last)==0)){var $o3=$o2;($nz$.$o0=span$.$n7($o2));return $o3;}else {var $o4=$o2;($nz$.$o0=getFinished());return $o4;}}else {return $nz$.$o0;}};$nz$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$nz,pa:3,d:['$','Span','$m','iterator','$o','iterator$tobp7p','$m','next']};};atr$($nz$,'string',function(){var $nz$=this;return "(".plus(span$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$nz,pa:3,d:['$','Span','$m','iterator','$o','iterator$tobp7p','$at','string']};});})($nz.$$.prototype);}
return $nz;}
$init$$nz();var $o5;function get$o5(){if($o5===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'132:8-153:8','Span.ceylon');if($o5===undefined){$o5=INIT$;$o5=$init$$nz()({Element$Iterator:span$.$$targs$$.Element$Span});$o5.$crtmm$=get$o5.$crtmm$;}
return $o5;}
get$o5.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$nz},$cont:span$.iterator,d:['$','Span','$m','iterator','$o','iterator$tobp7q']};};$prop$get$o5={get:get$o5,$crtmm$:get$o5.$crtmm$};get$nz=get$o5;$prop$get$nz=get$o5;return get$o5();};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($o6){var span$=this;asrt$((($o6>0)),"step size must be greater than zero: \'step > 0\' at Span.ceylon (160:15-160:24)",'159:8-160:25','Span.ceylon');
return ($o7=((($o6).valueOf()==(1).valueOf())?span$:null),nn$($o7)?$o7:span$.By$Span($o6));var $o7;};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($o8){var span$=this;if((($o8).valueOf()==(0).valueOf())){return span$;}else {var $o9=span$.first.neighbour($o8);var $oa=span$.last.neighbour($o8);return Span($o9,$oa,{Element$Span:span$.$$targs$$.Element$Span});}};span$.shifted.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Span,a:{Element$Span:'Element$Span'}},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','shifted']};};span$.count=function($ob){var span$=this;var $oc=span$.first;function set$oc($od){return $oc=$od;};var $oe=(0);function set$oe($of){return $oe=$of;};while(span$.containsElement($oc)){if($ob($oc)){($og=$oe,$oe=$og.successor,$og);var $og;}$oc=span$.$n7($oc);}return $oe;};span$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Span,pa:3,d:['$','Span','$m','count']};};span$.contains=function($oh){var span$=this;var $oi;if(is$(($oi=$oh),span$.$$targs$$.Element$Span)){return span$.containsElement($oi);}else {return false;}};span$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:contains')];},d:['$','Span','$m','contains']};};span$.occurs=function($oj){var span$=this;var $ok;if(is$(($ok=$oj),span$.$$targs$$.Element$Span)){return span$.containsElement($ok);}else {return false;}};span$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:occurs')];},d:['$','Span','$m','occurs']};};span$.containsElement=function($ol){var span$=this;return ($om=(span$.$n6?($ol.offset(span$.first)<=span$.last.offset(span$.first)):null),nn$($om)?$om:(!span$.$nh($ol)&&!span$.$nn($ol)));};span$.containsElement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:containsElement')];},d:['$','Span','$m','containsElement']};};span$.includes=function($on){var span$=this;if($on.empty){return true;}var $oo;if(is$(($oo=$on),{t:Range,a:{Element$Range:span$.$$targs$$.Element$Span}})){return span$.includesRange($oo);}else {return span$.getT$all()['ceylon.language::List'].$$.prototype.includes.call(this,$on);}};span$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:Span,pa:3,d:['$','Span','$m','includes']};};span$.includesRange=function($op){var span$=this;var $oq=$op;if(is$($op,{t:Span,a:{Element$Span:span$.$$targs$$.Element$Span}})) {if(span$.$n6){return (($oq.first.offset(span$.first)<span$.size)&&($oq.last.offset(span$.first)<span$.size));}else {return ((((span$.increasing).valueOf()==($oq.increasing).valueOf())&&!$oq.$nq(span$.first))&&!$oq.$nk(span$.last));}}else if(is$($op,{t:Measure,a:{Element$Measure:span$.$$targs$$.Element$Span}})) {if(span$.decreasing){return false;}else {var $or=$oq.first.offset(span$.first);return (($or>=0)&&($or.plus($oq.size)<=span$.size));}}};span$.includesRange.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Span'}}}],$cont:Span,pa:3,d:['$','Span','$m','includesRange']};};span$.equals=function($os){var span$=this;var $ot;if(is$(($ot=$os),{t:Span,a:{Element$Span:{t:$_Object}}})){return ($ot.first.equals(span$.first)&&$ot.last.equals(span$.last));}else {var $ou;if(is$(($ou=$os),{t:Measure,a:{Element$Measure:{t:$_Object}}})){return ((span$.increasing&&$ou.first.equals(span$.first))&&(($ou.size).valueOf()==(span$.size).valueOf()));}else {return span$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(this,$os);}}};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']};};function By$Span($ov,$ow$){$init$By$Span();if($ow$===undefined)$ow$=new this.By$Span.$$;
$ow$.outer$=this;$ow$.$$targs$$={Absent$Iterable:{t:Nothing},Element$Iterable:$ow$.outer$.$$targs$$.Element$Span};$ow$.$ov_=$ov;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$ow$.outer$.$$targs$$.Element$Span},$ow$);return $ow$;}
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($ow$){atr$($ow$,'size',function(){var $ow$=this;return (1).plus($ow$.outer$.size.minus(1).divided($ow$.$ov));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','size']};});atr$($ow$,'first',function(){var $ow$=this;return $ow$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','first']};});atr$($ow$,'string',function(){var $ow$=this;return "(".plus($ow$.outer$.string).plus(" by ").plus($ow$.$ov.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','string']};});$ow$.iterator=function(){var $ow$=this;if($ow$.outer$.$n6){var $ox=false;var $oz=false;var $oy=(function(){function $p0($$targs$$){var $p0$=new $p0.$$;$p0$.outer$=$ow$;$p0$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$ow$.outer$.$$targs$$.Element$Span},$p0$);$p0$.$p1_=(0);$p0$.$prop$get$p1={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$p0,pa:1024,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w','$at','count$8nauxa']};}};$p0$.$prop$get$p1.get=function(){return $p1};$p0$.$p2_=$ow$.first;$p0$.$prop$get$p2={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$p0,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w','$at','current$6qxjvs']};}};$p0$.$prop$get$p2.get=function(){return $p2};return $p0$;
};$p0.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$ow$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w']};};function $init$$p0(){if($p0.$$===undefined){initTypeProto($p0,'ceylon.language::Span.By.iterator',Basic,$init$Iterator());
(function($p0$){atr$($p0$,'$p1',function(){return this.$p1_;},function($p3){return this.$p1_=$p3;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$p0,pa:1024,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w','$at','count$8nauxa']};});atr$($p0$,'$p2',function(){return this.$p2_;},function($p4){return this.$p2_=$p4;},function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$p0,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w','$at','current$6qxjvs']};});$p0$.next=function(){var $p0$=this;if((($p0$.$p1=$p0$.$p1.successor)>$ow$.size)){return getFinished();}else {var $p5=$p0$.$p2;$p0$.$p2=$p0$.$p2.neighbour($ow$.$ov);return $p5;}};$p0$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$p0,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w','$m','next']};};atr$($p0$,'string',function(){var $p0$=this;return "".plus($ow$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$p0,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9w','$at','string']};});})($p0.$$.prototype);}
return $p0;}
$init$$p0();var $p6;function get$p6(){if($p6===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'302:16-317:16','Span.ceylon');if($p6===undefined){$p6=INIT$;$p6=$init$$p0()({Element$Iterator:$ow$.outer$.$$targs$$.Element$Span});$p6.$crtmm$=get$p6.$crtmm$;}
return $p6;}
get$p6.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$p0},$cont:$ow$.iterator,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ksl9v']};};$prop$get$p6={get:get$p6,$crtmm$:get$p6.$crtmm$};get$p0=get$p6;$prop$get$p0=get$p6;return get$p6();}());if($oy!==undefined){return $oy;}}
else {var $p7=false;var $p9=false;var $p8=(function(){function $pa($$targs$$){var $pa$=new $pa.$$;$pa$.outer$=$ow$;$pa$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$ow$.outer$.$$targs$$.Element$Span},$pa$);$pa$.$pb_=$ow$.first;$pa$.$prop$get$pb={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$pa,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ij5yt','$at','current$cio9jd']};}};$pa$.$prop$get$pb.get=function(){return $pb};return $pa$;
};$pa.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$ow$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ij5yt']};};function $init$$pa(){if($pa.$$===undefined){initTypeProto($pa,'ceylon.language::Span.By.iterator',Basic,$init$Iterator());
(function($pa$){atr$($pa$,'$pb',function(){return this.$pb_;},function($pc){return this.$pb_=$pc;},function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$pa,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ij5yt','$at','current$cio9jd']};});$pa$.next=function(){var $pa$=this;if($ow$.outer$.containsElement($pa$.$pb)){var $pd=$pa$.$pb;$pa$.$pb=$ow$.outer$.$na($pa$.$pb,$ow$.$ov);return $pd;}else {return getFinished();}};$pa$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$pa,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ij5yt','$m','next']};};atr$($pa$,'string',function(){var $pa$=this;return "".plus($ow$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$pa,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ij5yt','$at','string']};});})($pa.$$.prototype);}
return $pa;}
$init$$pa();var $pe;function get$pe(){if($pe===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'321:16-335:16','Span.ceylon');if($pe===undefined){$pe=INIT$;$pe=$init$$pa()({Element$Iterator:$ow$.outer$.$$targs$$.Element$Span});$pe.$crtmm$=get$pe.$crtmm$;}
return $pe;}
get$pe.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$pa},$cont:$ow$.iterator,d:['$','Span','$c','By$ry6enl','$m','iterator','$o','iterator$6ij5ys']};};$prop$get$pe={get:get$pe,$crtmm$:get$pe.$crtmm$};get$pa=get$pe;$prop$get$pa=get$pe;return get$pe();}());if($p8!==undefined){return $p8;}}
};$ow$.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']};};atr$($ow$,'$ov',function(){return this.$ov_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:span$.By$Span,d:['$','Span','$c','By$ry6enl','$at','step$axxwpk']};});})(By$Span.$$.prototype);}
return By$Span;}
span$.$init$By$Span=$init$By$Span;$init$By$Span();span$.By$Span=By$Span;span$.measure=function($pf,$pg){var span$=this;return ($ph=(($pg<=0)?getEmpty():null),nn$($ph)?$ph:span$.span($pf,$pf.plus($pg).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($pi,$pj){var span$=this;if(($pi<=$pj)){if((($pj<0)||!span$.longerThan($pi))){return getEmpty();}else {return span(($pk=span$.$_get($pi),nn$($pk)?$pk:span$.first),($pl=span$.$_get($pj),nn$($pl)?$pl:span$.last),{Element$span:span$.$$targs$$.Element$Span});var $pk,$pl;}}else {if((($pi<0)||!span$.longerThan($pj))){return getEmpty();}else {var $pm=span(($pn=span$.$_get($pj),nn$($pn)?$pn:span$.first),($po=span$.$_get($pi),nn$($po)?$po:span$.last),{Element$span:span$.$$targs$$.Element$Span});var $pn,$po;return $pm.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($pp){var span$=this;if(($pp<=0)){return span$;}else {if(span$.longerThan($pp)){var $pq;asrt$((nn$(($pq=span$.$_get($pp)))),"Assertion failed: \'exists first = this[from]\' at Span.ceylon (370:19-370:45)",'370:12-370:46','Span.ceylon');
return span($pq,span$.last,{Element$span:span$.$$targs$$.Element$Span});}else {return getEmpty();}}};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($pr){var span$=this;if(($pr<0)){return getEmpty();}else {if(span$.longerThan($pr.plus(1))){var $ps;asrt$((nn$(($ps=span$.$_get($pr)))),"Assertion failed: \'exists last = this[to]\' at Span.ceylon (383:19-383:42)",'383:12-383:43','Span.ceylon');
return span(span$.first,$ps,{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.$$.prototype);}
return Span;}
ex$.$init$Span=$init$Span;$init$Span();var $n9,$nd,$ng,$nj,$nm,$np,$ns,$nv,$nw,$om,$ph;function span($pt,$pu,$$$mptypes){return Span($pt,$pu,{Element$Span:$$$mptypes.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 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$);measure$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:first')];},d:['$','Measure','$at','first']};}};measure$.$prop$getFirst.get=function(){return first};measure$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:size')];},d:['$','Measure','$at','size']};}};measure$.$prop$getSize.get=function(){return size};asrt$(((measure$.size>0)),"Can\'t be used for empty segments: \'size > 0\' at Measure.ceylon (18:11-18:20)",'17:4-18:21','Measure.ceylon');
measure$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};}};measure$.$prop$getString.get=function(){return string};measure$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,d:['$','Measure','$at','last']};}};measure$.$prop$getLast.get=function(){return last};measure$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:lastIndex')];},d:['$','Measure','$at','lastIndex']};}};measure$.$prop$getLastIndex.get=function(){return lastIndex};measure$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:rest')];},d:['$','Measure','$at','rest']};}};measure$.$prop$getRest.get=function(){return rest};measure$.$prop$getIncreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','increasing']};}};measure$.$prop$getIncreasing.get=function(){return increasing};measure$.$prop$getDecreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','decreasing']};}};measure$.$prop$getDecreasing.get=function(){return decreasing};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:32,an:function(){return[doc$($CCMM$,'$:Measure'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Span),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].rt$({t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]}))];},d:['$','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($pv){var measure$=this;return (measure$.size>$pv);};measure$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$m:longerThan')];},d:['$','Measure','$m','longerThan']};};measure$.shorterThan=function($pw){var measure$=this;return (measure$.size<$pw);};measure$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$m:shorterThan')];},d:['$','Measure','$m','shorterThan']};};atr$(measure$,'lastIndex',function(){var measure$=this;return measure$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:lastIndex')];},d:['$','Measure','$at','lastIndex']};});atr$(measure$,'rest',function(){var measure$=this;return ($px=(((measure$.size).valueOf()==(1).valueOf())?getEmpty():null),nn$($px)?$px:Measure(measure$.first.successor,measure$.size.minus(1),{Element$Measure:measure$.$$targs$$.Element$Measure}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:rest')];},d:['$','Measure','$at','rest']};});measure$.getFromFirst=function($py){var measure$=this;if((($py<0)||($py>=measure$.size))){return null;}return measure$.first.neighbour($py);};measure$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Measure']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$m:getFromFirst')];},d:['$','Measure','$m','getFromFirst']};};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;function $pz($$targs$$){var $pz$=new $pz.$$;$pz$.outer$=measure$;$pz$.$$targs$$=$$targs$$;Iterator({Element$Iterator:measure$.$$targs$$.Element$Measure},$pz$);$pz$.$q0_=(0);$pz$.$prop$get$q0={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$pz,pa:1024,d:['$','Measure','$m','iterator','$o','iterator$3qprbt','$at','count$mrhhfv']};}};$pz$.$prop$get$q0.get=function(){return $q0};$pz$.$q1_=measure$.first;$pz$.$prop$get$q1={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:$pz,pa:1024,d:['$','Measure','$m','iterator','$o','iterator$3qprbt','$at','current$kv46ed']};}};$pz$.$prop$get$q1.get=function(){return $q1};return $pz$;
};$pz.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:measure$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure','$m','iterator','$o','iterator$3qprbt']};};function $init$$pz(){if($pz.$$===undefined){initTypeProto($pz,'ceylon.language::Measure.iterator',Basic,$init$Iterator());
(function($pz$){atr$($pz$,'$q0',function(){return this.$q0_;},function($q2){return this.$q0_=$q2;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$pz,pa:1024,d:['$','Measure','$m','iterator','$o','iterator$3qprbt','$at','count$mrhhfv']};});atr$($pz$,'$q1',function(){return this.$q1_;},function($q3){return this.$q1_=$q3;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:$pz,pa:1024,d:['$','Measure','$m','iterator','$o','iterator$3qprbt','$at','current$kv46ed']};});$pz$.next=function(){var $pz$=this;if((($pz$.$q0=$pz$.$q0.successor)>measure$.size)){return getFinished();}else {return ($q4=$pz$.$q1,$pz$.$q1=$q4.successor,$q4);var $q4;}};$pz$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:$pz,pa:3,d:['$','Measure','$m','iterator','$o','iterator$3qprbt','$m','next']};};atr$($pz$,'string',function(){var $pz$=this;return "(".plus(measure$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$pz,pa:3,d:['$','Measure','$m','iterator','$o','iterator$3qprbt','$at','string']};});})($pz.$$.prototype);}
return $pz;}
$init$$pz();var $q5;function get$q5(){if($q5===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'57:8-70:8','Measure.ceylon');if($q5===undefined){$q5=INIT$;$q5=$init$$pz()({Element$Iterator:measure$.$$targs$$.Element$Measure});$q5.$crtmm$=get$q5.$crtmm$;}
return $q5;}
get$q5.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$pz},$cont:measure$.iterator,d:['$','Measure','$m','iterator','$o','iterator$3qprbu']};};$prop$get$q5={get:get$q5,$crtmm$:get$q5.$crtmm$};get$pz=get$q5;$prop$get$pz=get$q5;return get$q5();};measure$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Measure'}},ps:[],$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$m:iterator')];},d:['$','Measure','$m','iterator']};};measure$.by=function($q6){var measure$=this;asrt$((($q6>0)),"step size must be greater than zero: \'step > 0\' at Measure.ceylon (76:15-76:24)",'75:8-76:25','Measure.ceylon');
return ($q7=((($q6).valueOf()==(1).valueOf())?measure$:null),nn$($q7)?$q7:measure$.By$Measure($q6));var $q7;};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']};};function By$Measure($q8,$q9$){$init$By$Measure();if($q9$===undefined)$q9$=new this.By$Measure.$$;
$q9$.outer$=this;$q9$.$$targs$$={Absent$Iterable:{t:Nothing},Element$Iterable:$q9$.outer$.$$targs$$.Element$Measure};$q9$.$q8_=$q8;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$q9$.outer$.$$targs$$.Element$Measure},$q9$);return $q9$;}
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($q9$){atr$($q9$,'size',function(){var $q9$=this;return (1).plus($q9$.outer$.size.minus(1).divided($q9$.$q8));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','size']};});atr$($q9$,'first',function(){var $q9$=this;return $q9$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','first']};});atr$($q9$,'string',function(){var $q9$=this;return "(".plus($q9$.outer$.string).plus(" by ").plus($q9$.$q8.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','string']};});$q9$.iterator=function(){var $q9$=this;function $qa($$targs$$){var $qa$=new $qa.$$;$qa$.outer$=$q9$;$qa$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$q9$.outer$.$$targs$$.Element$Measure},$qa$);$qa$.$qb_=(0);$qa$.$prop$get$qb={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qa,pa:1024,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul','$at','count$kahl7p']};}};$qa$.$prop$get$qb.get=function(){return $qb};$qa$.$qc_=$q9$.first;$qa$.$prop$get$qc={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:$qa,pa:1027,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul','$at','current$ie4a67']};}};$qa$.$prop$get$qc.get=function(){return $qc};return $qa$;
};$qa.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$q9$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul']};};function $init$$qa(){if($qa.$$===undefined){initTypeProto($qa,'ceylon.language::Measure.By.iterator',Basic,$init$Iterator());
(function($qa$){atr$($qa$,'$qb',function(){return this.$qb_;},function($qd){return this.$qb_=$qd;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qa,pa:1024,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul','$at','count$kahl7p']};});atr$($qa$,'$qc',function(){return this.$qc_;},function($qe){return this.$qc_=$qe;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:$qa,pa:1027,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul','$at','current$ie4a67']};});$qa$.next=function(){var $qa$=this;if((($qa$.$qb=$qa$.$qb.successor)>$q9$.size)){return getFinished();}else {var $qf=$qa$.$qc;$qa$.$qc=$qa$.$qc.neighbour($q9$.$q8);return $qf;}};$qa$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:$qa,pa:3,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul','$m','next']};};atr$($qa$,'string',function(){var $qa$=this;return "".plus($q9$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$qa,pa:3,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiul','$at','string']};});})($qa.$$.prototype);}
return $qa;}
$init$$qa();var $qg;function get$qg(){if($qg===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'90:12-105:12','Measure.ceylon');if($qg===undefined){$qg=INIT$;$qg=$init$$qa()({Element$Iterator:$q9$.outer$.$$targs$$.Element$Measure});$qg.$crtmm$=get$qg.$crtmm$;}
return $qg;}
get$qg.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$qa},$cont:$q9$.iterator,d:['$','Measure','$c','By$d85sth','$m','iterator','$o','iterator$hqhiuk']};};$prop$get$qg={get:get$qg,$crtmm$:get$qg.$crtmm$};get$qa=get$qg;$prop$get$qa=get$qg;return get$qg();};$q9$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Measure'}},ps:[],$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$m','iterator']};};atr$($q9$,'$q8',function(){return this.$q8_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,d:['$','Measure','$c','By$d85sth','$at','step$ezo16c']};});})(By$Measure.$$.prototype);}
return By$Measure;}
measure$.$init$By$Measure=$init$By$Measure;$init$By$Measure();measure$.By$Measure=By$Measure;measure$.shifted=function($qh){var measure$=this;if((($qh).valueOf()==(0).valueOf())){return measure$;}else {return Measure(measure$.first.neighbour($qh),measure$.size,{Element$Measure:measure$.$$targs$$.Element$Measure});}};measure$.shifted.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Measure,a:{Element$Measure:'Element$Measure'}},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','shifted']};};measure$.contains=function($qi){var measure$=this;var $qj;if(is$(($qj=$qi),measure$.$$targs$$.Element$Measure)){return measure$.containsElement($qj);}else {return false;}};measure$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$m:contains')];},d:['$','Measure','$m','contains']};};measure$.occurs=function($qk){var measure$=this;var $ql;if(is$(($ql=$qk),measure$.$$targs$$.Element$Measure)){return measure$.containsElement($ql);}else {return false;}};measure$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$m:occurs')];},d:['$','Measure','$m','occurs']};};measure$.containsElement=function($qm){var measure$=this;return ($qn=$qm.offset(measure$.first),$qn.compare((0))!==getSmaller()&&$qn.compare(measure$.size)===getSmaller());};measure$.containsElement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Measure'}],$cont:Measure,pa:3,d:['$','Measure','$m','containsElement']};};measure$.includes=function($qo){var measure$=this;if($qo.empty){return true;}else {var $qp;if(is$(($qp=$qo),{t:Range,a:{Element$Range:measure$.$$targs$$.Element$Measure}})){return measure$.includesRange($qp);}else {return measure$.getT$all()['ceylon.language::List'].$$.prototype.includes.call(this,$qo);}}};measure$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:Measure,pa:3,d:['$','Measure','$m','includes']};};measure$.includesRange=function($qq){var measure$=this;var $qr=$qq;if(is$($qq,{t:Measure,a:{Element$Measure:measure$.$$targs$$.Element$Measure}})) {var $qs=$qr.first.offset(measure$.first);return (($qs>=0)&&($qs.plus($qr.size)<=measure$.size));}else if(is$($qq,{t:Span,a:{Element$Span:measure$.$$targs$$.Element$Measure}})) {if($qr.decreasing){return false;}else {var $qt=$qr.first.offset(measure$.first);return (($qt>=0)&&($qt.plus($qr.size)<=measure$.size));}}};measure$.includesRange.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Measure'}}}],$cont:Measure,pa:3,d:['$','Measure','$m','includesRange']};};measure$.equals=function($qu){var measure$=this;var $qv;if(is$(($qv=$qu),{t:Measure,a:{Element$Measure:{t:$_Object}}})){return ((($qv.size).valueOf()==(measure$.size).valueOf())&&$qv.first.equals(measure$.first));}else {var $qw;if(is$(($qw=$qu),{t:Span,a:{Element$Span:{t:$_Object}}})){return (($qw.increasing&&$qw.first.equals(measure$.first))&&(($qw.size).valueOf()==(measure$.size).valueOf()));}else {return measure$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(this,$qu);}}};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($qx,$qy){var measure$=this;if(($qy<=0)){return getEmpty();}else {var $qz=($r0=(($qx.plus($qy)<measure$.size)?$qy:null),nn$($r0)?$r0:measure$.size.minus($qx));var $r0;return Measure(measure$.first.neighbour($qx),$qz,{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($r1,$r2){var measure$=this;if(($r1<=$r2)){if((($r2<0)||($r1>=measure$.size))){return getEmpty();}else {var $r3=($r4=(($r2<measure$.size)?$r2.minus($r1).plus(1):null),nn$($r4)?$r4:measure$.size.minus($r1));var $r4;return Measure(measure$.first.neighbour($r1),$r3,{Element$Measure:measure$.$$targs$$.Element$Measure});}}else {if((($r1<0)||($r2>=measure$.size))){return getEmpty();}else {var $r5=($r6=(($r1<measure$.size)?$r1.minus($r2).plus(1):null),nn$($r6)?$r6:measure$.size.minus($r2));var $r6;return Measure(measure$.first.neighbour($r2),$r5,{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($r7){var measure$=this;if(($r7<=0)){return measure$;}else {if(($r7<measure$.size)){return Measure(measure$.first.neighbour($r7),measure$.size.minus($r7),{Element$Measure:measure$.$$targs$$.Element$Measure});}else {return getEmpty();}}};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($r8){var measure$=this;if(($r8<0)){return getEmpty();}else {if(($r8<measure$.size.minus(1))){return Measure(measure$.first,$r8,{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.$$.prototype);}
return Measure;}
ex$.$init$Measure=$init$Measure;$init$Measure();var $px;function measure($r9,$ra,$$$mptypes){return ($rb=(($ra<=0)?getEmpty():null),nn$($rb)?$rb:Measure($r9,$ra,{Element$Measure:$$$mptypes.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 $rb;function Singleton($rc,$$targs$$,singleton$){$init$Singleton();if(singleton$===undefined)singleton$=new Singleton.$$;
set_type_args(singleton$,$$targs$$);singleton$.$rc_=$rc;$_Object(singleton$);Sequence({Element$Sequence:$$targs$$.Element$Singleton},singleton$);singleton$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,an:function(){return[doc("Returns `0`.")];},d:['$','Singleton','$at','lastIndex']};}};singleton$.$prop$getLastIndex.get=function(){return lastIndex};singleton$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,an:function(){return[doc("Returns `1`.")];},d:['$','Singleton','$at','size']};}};singleton$.$prop$getSize.get=function(){return size};singleton$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:first')];},d:['$','Singleton','$at','first']};}};singleton$.$prop$getFirst.get=function(){return first};singleton$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:last')];},d:['$','Singleton','$at','last']};}};singleton$.$prop$getLast.get=function(){return last};singleton$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Singleton,pa:3,an:function(){return[doc("Returns `Empty`.")];},d:['$','Singleton','$at','rest']};}};singleton$.$prop$getRest.get=function(){return rest};singleton$.$prop$getReversed={$crtmm$: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$.$prop$getReversed.get=function(){return reversed};singleton$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,d:['$','Singleton','$at','hash']};}};singleton$.$prop$getHash.get=function(){return hash};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:1,an:function(){return[doc$($CCMM$,'$:Singleton')];},d:['$','Singleton']};};
ex$.Singleton=Singleton;function $init$Singleton(){if(Singleton.$$===undefined){initTypeProto(Singleton,'ceylon.language::Singleton',$init$$_Object(),$init$Sequence());
(function(singleton$){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$,'first',function(){var singleton$=this;return singleton$.$rc;},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$.$rc;},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$,'rest',function(){var singleton$=this;return getEmpty();},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($rd){var singleton$=this;if((($rd).valueOf()==(0).valueOf())){return singleton$.$rc;}else {return 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']};};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']};};atr$(singleton$,'string',function(){var singleton$=this;return "[".plus(($re=($rf=singleton$.$rc,nn$($rf)?$rf.string:null),nn$($re)?$re:"<null>")).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Singleton,pa:3,d:['$','Singleton','$at','string']};});singleton$.iterator=function(){var singleton$=this;function $rg($$targs$$){var $rg$=new $rg.$$;$rg$.outer$=singleton$;$rg$.$$targs$$=$$targs$$;Iterator({Element$Iterator:singleton$.$$targs$$.Element$Singleton},$rg$);$rg$.$rh_=false;$rg$.$prop$get$rh={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$rg,pa:1027,d:['$','Singleton','$m','iterator','$o','iterator$z3icda','$at','done$nqb03p']};}};$rg$.$prop$get$rh.get=function(){return $rh};return $rg$;
};$rg.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Singleton'}}],d:['$','Singleton','$m','iterator','$o','iterator$z3icda']};};function $init$$rg(){if($rg.$$===undefined){initTypeProto($rg,'ceylon.language::Singleton.iterator',Basic,$init$Iterator());
(function($rg$){atr$($rg$,'$rh',function(){return this.$rh_;},function($ri){return this.$rh_=$ri;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$rg,pa:1027,d:['$','Singleton','$m','iterator','$o','iterator$z3icda','$at','done$nqb03p']};});$rg$.next=function(){var $rg$=this;if($rg$.$rh){return getFinished();}else {$rg$.$rh=true;return singleton$.$rc;}};$rg$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Singleton',{t:Finished}]},ps:[],$cont:$rg,pa:3,d:['$','Singleton','$m','iterator','$o','iterator$z3icda','$m','next']};};atr$($rg$,'string',function(){var $rg$=this;return "".plus(singleton$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$rg,pa:3,d:['$','Singleton','$m','iterator','$o','iterator$z3icda','$at','string']};});})($rg.$$.prototype);}
return $rg;}
$init$$rg();var $rj;function get$rj(){if($rj===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'38:8-51:8','Singleton.ceylon');if($rj===undefined){$rj=INIT$;$rj=$init$$rg()({Element$Iterator:singleton$.$$targs$$.Element$Singleton});$rj.$crtmm$=get$rj.$crtmm$;}
return $rj;}
get$rj.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$rg},$cont:singleton$.iterator,d:['$','Singleton','$m','iterator','$o','iterator$z3icdb']};};$prop$get$rj={get:get$rj,$crtmm$:get$rj.$crtmm$};get$rg=get$rj;$prop$get$rg=get$rj;return get$rj();};singleton$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Singleton'}},ps:[],$cont:Singleton,pa:11,d:['$','Singleton','$m','iterator']};};singleton$.measure=function($rk,$rl){var singleton$=this;return ($rm=((($rk<=0)&&($rk.plus($rl)>0))?singleton$:null),nn$($rm)?$rm:getEmpty());};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($rn,$ro){var singleton$=this;return ($rp=(((($rn<=0)&&($ro>=0))||(($rn>=0)&&($ro<=0)))?singleton$:null),nn$($rp)?$rp:getEmpty());};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($rq){var singleton$=this;return ($rr=(($rq<0)?getEmpty():null),nn$($rr)?$rr: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($rs){var singleton$=this;return ($rt=(($rs>0)?getEmpty():null),nn$($rt)?$rt: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']};};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$.equals=function($ru){var singleton$=this;var $rv;if(nn$(($rv=singleton$.$rc))){var $rw;if(is$(($rw=$ru),{t:List,a:{Element$List:{t:Anything}}})){if((($rw.size).valueOf()==(1).valueOf())){var $rx;if(nn$(($rx=$rw.first))){return $rx.equals($rv);}}}return false;}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(($ry=($rz=singleton$.$rc,nn$($rz)?$rz.hash:null),nn$($ry)?$ry:(0)));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,d:['$','Singleton','$at','hash']};});singleton$.contains=function($s0){var singleton$=this;var $s1;if(nn$(($s1=singleton$.$rc))){return $s1.equals($s0);}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']};};singleton$.count=function($s2){var singleton$=this;return ($s3=($s2(singleton$.$rc)?1:null),nn$($s3)?$s3:(0));};singleton$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:count')];},d:['$','Singleton','$m','count']};};singleton$.$_map=function($s4,$$$mptypes){var singleton$=this;return Singleton($s4(singleton$.$rc),{Element$Singleton:$$$mptypes.Result$map});};singleton$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Result$map'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$map'}],$cont:Singleton,tp:{Result$map:{}},pa:3,d:['$','Singleton','$m','map']};};singleton$.$_filter=function($s5){var singleton$=this;return ($s6=($s5(singleton$.$rc)?singleton$:null),nn$($s6)?$s6:getEmpty());};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:$_Boolean}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','filter']};};singleton$.fold=function($s7,$$$mptypes){var singleton$=this;singleton$.$s7_=$s7;var $s8=function($s9){return $s9($s7,singleton$.$rc);};$s8.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:'Result$fold'}],$t:$$$mptypes.Result$fold};};return JsCallable(0,$s8);};singleton$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$fold',ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Singleton,tp:{Result$fold:{}},pa:3,d:['$','Singleton','$m','fold']};};singleton$.$_reduce=function($sa,$$$mptypes){var singleton$=this;return singleton$.$rc;};singleton$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Singleton',ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:'Result$reduce'}],$cont:Singleton,tp:{Result$reduce:{}},pa:3,d:['$','Singleton','$m','reduce']};};singleton$.collect=function($sb,$$$mptypes){var singleton$=this;return Singleton($sb(singleton$.$rc),{Element$Singleton:$$$mptypes.Result$collect});};singleton$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:'Result$collect'}],$cont:Singleton,tp:{Result$collect:{}},pa:3,d:['$','Singleton','$m','collect']};};singleton$.select=function($sc){var singleton$=this;return ($sd=($sc(singleton$.$rc)?singleton$:null),nn$($sd)?$sd:getEmpty());};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:$_Boolean}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','select']};};singleton$.find=function($se){var singleton$=this;var $sf;if(nn$(($sf=singleton$.$rc))&&$se($sf)){return $sf;}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:$_Boolean}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','find']};};singleton$.findLast=function($sg){var singleton$=this;return singleton$.find(JsCallable(singleton$,$sg));};singleton$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Singleton,pa:11,d:['$','Singleton','$m','findLast']};};singleton$.$_sort=function($sh){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:Comparison}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','sort']};};singleton$.any=function($si){var singleton$=this;return $si(singleton$.$rc);};singleton$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','any']};};singleton$.$_every=function($sj){var singleton$=this;return $sj(singleton$.$rc);};singleton$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','every']};};singleton$.skip=function($sk){var singleton$=this;return ($sl=(($sk<1)?singleton$:null),nn$($sl)?$sl:getEmpty());};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($sm){var singleton$=this;return ($sn=(($sm>0)?singleton$:null),nn$($sn)?$sn:getEmpty());};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;var $so;if(nn$(($so=singleton$.$rc))){return Singleton($so,{Element$Singleton:{t:'i',l:[singleton$.$$targs$$.Element$Singleton,{t:$_Object}]}});}else {return getEmpty();}},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($sp,$$$mptypes){var singleton$=this;return $sp.follow(singleton$.$rc,{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']};};atr$(singleton$,'$rc',function(){return this.$rc_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,d:['$','Singleton','$at','element$kjdnp3']};});})(Singleton.$$.prototype);}
return Singleton;}
ex$.$init$Singleton=$init$Singleton;$init$Singleton();var $re,$rf,$rm,$rp,$rr,$rt,$ry,$rz,$s3,$s6,$sd,$sl,$sn;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=[].rt$({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:65,an:function(){return[doc$($CCMM$,'$:AssertionError')];},d:['$','AssertionError']};};
ex$.AssertionError=AssertionError;function $init$AssertionError(){if(AssertionError.$$===undefined){initTypeProto(AssertionError,'ceylon.language::AssertionError',$init$Throwable());
(function(assertionError$){atr$(assertionError$,'$sq',function(){return this.$sq_;},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 Map($$targs$$,map$){Collection({Element$Collection:{t:Entry,a:{Key$Entry:$$targs$$.Key$Map,Item$Entry:$$targs$$.Item$Map}}},map$);Correspondence({Item$Correspondence:$$targs$$.Item$Map,Key$Correspondence:{t:$_Object}},map$);set_type_args(map$,$$targs$$,Map);}
Map.$crtmm$=function(){return{mod:$CCMM$,tp:{Key$Map:{dv:'out',sts:[{t:$_Object}]},Item$Map:{dv:'out'}},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()(lmp$(ex$,'$'),forKey),$init$OpenFunction()(lmp$(ex$,'$'),forItem),$init$OpenFunction()(lmp$(ex$,'$'),byItem),$init$OpenFunction()(lmp$(ex$,'$'),byKey)].rt$({t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}))];},d:['$','Map']};};
ex$.Map=Map;function $init$Map(){if(Map.$$===undefined){initTypeProtoI(Map,'ceylon.language::Map',$init$Correspondence(),$init$Collection());
(function(map$){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$.$_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')];},d:['$','Map','$m','get']};}};map$.contains=function($sr){var map$=this;var $ss;if(is$(($ss=$sr),{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:{t:Anything}}})&&map$.defines($ss.key)){var $st;if(nn$(($st=map$.$_get($ss.key)))){var $su;if(nn$(($su=$ss.item))){return $st.equals($su);}else {return false;}}else {return !nn$($ss.item);}}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()(lmp$(ex$,'$'),$init$Map().$$.prototype.defines)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$m','contains']};};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,d:['$','Map','$m','clone']};}};map$.equals=function($sv){var map$=this;var $sw;if(is$(($sw=$sv),{t:Map,a:{Key$Map:{t:$_Object},Item$Map:{t:Anything}}})&&(($sw.size).valueOf()==(map$.size).valueOf())){var $sy;for(var $sx=map$.iterator();($sy=$sx.next())!==getFinished();){var $sz=$sw.$_get($sy.key);var $t0;if(nn$(($t0=$sy.item))){var $t1;if(nn$(($t1=$sz))){if((!$t1.equals($t0))){return false;}}else {return false;}}else {if(nn$($sz)){return false;}}}
if(getFinished()===$sy){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 $t2=(0);function set$t2($t3){return $t2=$t3;};$prop$get$t2={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:map$.$prop$getHash,pa:1024,d:['$','Map','$at','hash','$at','hashCode$jglg2o']};}};$prop$get$t2.get=function(){return $t2};$prop$get$t2.set=set$t2;if(set$t2.$crtmm$===undefined)set$t2.$crtmm$=$prop$get$t2.$crtmm$;var $t5;for(var $t4=map$.iterator();($t5=$t4.next())!==getFinished();){($t2=$t2.plus($t5.hash));}return $t2;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Map,pa:11,d:['$','Map','$at','hash']};});atr$(map$,'keys',function(){var map$=this;function $t6($$targs$$){var $t6$=new $t6.$$;$t6$.outer$=map$;$t6$.$$targs$$=$$targs$$;Collection({Element$Collection:map$.$$targs$$.Key$Map},$t6$);return $t6$;
};$t6.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:map$.$prop$getKeys,sts:[{t:Collection,a:{Element$Collection:'Key$Map'}}],d:['$','Map','$at','keys','$o','keys$8un6dp']};};function $init$$t6(){if($t6.$$===undefined){initTypeProto($t6,'ceylon.language::Map.keys',Basic,$init$Collection());
(function($t6$){$t6$.contains=function($t7){var $t6$=this;return map$.defines($t7);};$t6$.iterator=function(){var $t6$=this;return for$(function(){var $t8=map$.iterator(),$t9,$ta;var n$ta=function(){var $tb;if(($tb=$t8.next())!==getFinished()){$t9=$tb.key;$ta=$tb.item;return $tb;}
$ta=undefined;return getFinished();}
n$ta();return function(){if($ta!==undefined){var $tc=$t9;var $td=$ta;var $te=$tc;n$ta();return $te;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:map$.$$targs$$.Key$Map}).iterator();};$t6$.clone=function(){var $t6$=this;return tpl$([],undefined,$t6$);};atr$($t6$,'size',function(){var $t6$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$t6,pa:3,d:['$','Map','$at','keys','$o','keys$8un6dp','$at','size']};});})($t6.$$.prototype);}
return $t6;}
$init$$t6();var $tf;function get$tf(){if($tf===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'keys\' before it was set"),'110:8-116:8','Map.ceylon');if($tf===undefined){$tf=INIT$;$tf=$init$$t6()({Element$Collection:map$.$$targs$$.Key$Map});$tf.$crtmm$=get$tf.$crtmm$;}
return $tf;}
get$tf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$t6},$cont:map$.$prop$getKeys,d:['$','Map','$at','keys','$o','keys$8un6do']};};$prop$get$tf={get:get$tf,$crtmm$:get$tf.$crtmm$};get$t6=get$tf;$prop$get$t6=get$tf;return get$tf();},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;function $tg($$targs$$){var $tg$=new $tg.$$;$tg$.outer$=map$;$tg$.$$targs$$=$$targs$$;Collection({Element$Collection:map$.$$targs$$.Item$Map},$tg$);return $tg$;
};$tg.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:map$.$prop$getItems,sts:[{t:Collection,a:{Element$Collection:'Item$Map'}}],d:['$','Map','$at','items','$o','items$dc0xdh']};};function $init$$tg(){if($tg.$$===undefined){initTypeProto($tg,'ceylon.language::Map.items',Basic,$init$Collection());
(function($tg$){$tg$.contains=function($th){var $tg$=this;var $tj;for(var $ti=map$.iterator();($tj=$ti.next())!==getFinished();){var $tk=$tj.key,$tl=$tj.item;var $tm;if(nn$(($tm=$tl))&&$tm.equals($th)){return true;}}return false;};$tg$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'item',mt:'prm',$t:{t:$_Object}}],$cont:$tg,pa:3,d:['$','Map','$at','items','$o','items$dc0xdh','$m','contains']};};$tg$.iterator=function(){var $tg$=this;return for$(function(){var $tn=map$.iterator(),$to,$tp;var n$tp=function(){var $tq;if(($tq=$tn.next())!==getFinished()){$to=$tq.key;$tp=$tq.item;return $tq;}
$tp=undefined;return getFinished();}
n$tp();return function(){if($tp!==undefined){var $tr=$to;var $ts=$tp;var $tt=$ts;n$tp();return $tt;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:map$.$$targs$$.Item$Map}).iterator();};$tg$.clone=function(){var $tg$=this;return tpl$([],undefined,$tg$);};atr$($tg$,'size',function(){var $tg$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$tg,pa:3,d:['$','Map','$at','items','$o','items$dc0xdh','$at','size']};});})($tg.$$.prototype);}
return $tg;}
$init$$tg();var $tu;function get$tu(){if($tu===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'items\' before it was set"),'125:8-138:8','Map.ceylon');if($tu===undefined){$tu=INIT$;$tu=$init$$tg()({Element$Collection:map$.$$targs$$.Item$Map});$tu.$crtmm$=get$tu.$crtmm$;}
return $tu;}
get$tu.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$tg},$cont:map$.$prop$getItems,d:['$','Map','$at','items','$o','items$dc0xdg']};};$prop$get$tu={get:get$tu,$crtmm$:get$tu.$crtmm$};get$tg=get$tu;$prop$get$tg=get$tu;return get$tu();},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$.mapItems=function($tv,$$$mptypes){var map$=this;function $tw($$targs$$){var $tw$=new $tw.$$;$tw$.outer$=map$;$tw$.$$targs$$=$$targs$$;$_Object($tw$);Map({Key$Map:map$.$$targs$$.Key$Map,Item$Map:$$$mptypes.Result$mapItems},$tw$);return $tw$;
};$tw.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$tw$.mapItems,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Result$mapItems'}}],d:['$','Map','$m','mapItems','$o','map$bgn2xh']};};function $init$$tw(){if($tw.$$===undefined){initTypeProto($tw,'ceylon.language::Map.map',$init$$_Object(),$init$Map());
(function($tw$){$tw$.defines=function($tx){var $tw$=this;return map$.defines($tx);};$tw$.$_get=function($ty){var $tw$=this;var $tz;if(is$(($tz=$ty),map$.$$targs$$.Key$Map)&&$tw$.defines($tz)){var $u0;asrt$((is$(($u0=map$.$_get($tz)),map$.$$targs$$.Item$Map)),"Assertion failed: \'is Item item = outer[key]\' at Map.ceylon (160:27-160:53)",'160:20-160:54','Map.ceylon');
return $tv($tz,$u0);}else {return null;}};$tw$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Result$mapItems']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$tw,pa:3,d:['$','Map','$m','mapItems','$o','map$bgn2xh','$m','get']};};$tw$.$u1=function($u2){var $tw$=this;return Entry($u2.key,$tv($u2.key,$u2.item),{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$$$mptypes.Result$mapItems});};$tw$.$u1.$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:$tw,d:['$','Map','$m','mapItems','$o','map$bgn2xh','$m','mapEntry$q8qxos']};};$tw$.iterator=function(){var $tw$=this;return map$.$_map($JsCallable(JsCallable($tw$,$tw$.$u1),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}],{Return$Callable:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$$$mptypes.Result$mapItems}},Arguments$Callable:{t:'T',l:[{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:$$$mptypes.Result$mapItems}}}).iterator();};atr$($tw$,'size',function(){var $tw$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$tw,pa:3,d:['$','Map','$m','mapItems','$o','map$bgn2xh','$at','size']};});$tw$.clone=function(){var $tw$=this;return map$.clone().mapItems(JsCallable($tw$,$tv),{Result$mapItems:$$$mptypes.Result$mapItems});};})($tw.$$.prototype);}
return $tw;}
$init$$tw();var $u3;function get$u3(){if($u3===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'map\' before it was set"),'152:8-178:8','Map.ceylon');if($u3===undefined){$u3=INIT$;$u3=$init$$tw()({Item$Map:$$$mptypes.Result$mapItems,Key$Map:map$.$$targs$$.Key$Map});$u3.$crtmm$=get$u3.$crtmm$;}
return $u3;}
get$u3.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$tw},$cont:$tw$.mapItems,d:['$','Map','$m','mapItems','$o','map$bgn2xg']};};$prop$get$u3={get:get$u3,$crtmm$:get$u3.$crtmm$};get$tw=get$u3;$prop$get$tw=get$u3;return get$u3();};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:'Result$mapItems',an:function(){return[doc$($CCMM$,'$:Map:$m:mapItems:$m:mapping$gaajwf')];}}],$cont:Map,tp:{Result$mapItems:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:mapItems')];},d:['$','Map','$m','mapItems']};};map$.filterKeys=function($u4){var map$=this;function $u5($$targs$$){var $u5$=new $u5.$$;$u5$.outer$=map$;$u5$.$$targs$$=$$targs$$;$_Object($u5$);Map({Key$Map:map$.$$targs$$.Key$Map,Item$Map:map$.$$targs$$.Item$Map},$u5$);return $u5$;
};$u5.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$u5$.filterKeys,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}}],d:['$','Map','$m','filterKeys','$o','map$9ho41f']};};function $init$$u5(){if($u5.$$===undefined){initTypeProto($u5,'ceylon.language::Map.map',$init$$_Object(),$init$Map());
(function($u5$){$u5$.$_get=function($u6){var $u5$=this;var $u7;if(is$(($u7=$u6),map$.$$targs$$.Key$Map)&&$u4($u7)){return map$.$_get($u7);}else {return null;}};$u5$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Item$Map']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$u5,pa:3,d:['$','Map','$m','filterKeys','$o','map$9ho41f','$m','get']};};$u5$.defines=function($u8){var $u5$=this;var $u9;if(is$(($u9=$u8),map$.$$targs$$.Key$Map)&&$u4($u9)){return map$.defines($u9);}else {return false;}};$u5$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$u5,pa:3,d:['$','Map','$m','filterKeys','$o','map$9ho41f','$m','defines']};};$u5$.$ua=function($ub){var $u5$=this;return $u4($ub.key);};$u5$.$ua.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}],$cont:$u5,d:['$','Map','$m','filterKeys','$o','map$9ho41f','$m','filterEntry$ev09m0']};};$u5$.iterator=function(){var $u5$=this;return map$.$_filter($JsCallable(JsCallable($u5$,$u5$.$ua),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}]}})).iterator();};$u5$.clone=function(){var $u5$=this;return map$.clone().filterKeys(JsCallable($u5$,$u4));};})($u5.$$.prototype);}
return $u5;}
$init$$u5();var $uc;function get$uc(){if($uc===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'map\' before it was set"),'190:8-219:8','Map.ceylon');if($uc===undefined){$uc=INIT$;$uc=$init$$u5()({Item$Map:map$.$$targs$$.Item$Map,Key$Map:map$.$$targs$$.Key$Map});$uc.$crtmm$=get$uc.$crtmm$;}
return $uc;}
get$uc.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$u5},$cont:$u5$.filterKeys,d:['$','Map','$m','filterKeys','$o','map$9ho41g']};};$prop$get$uc={get:get$uc,$crtmm$:get$uc.$crtmm$};get$u5=get$uc;$prop$get$u5=get$uc;return get$uc();};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:$_Boolean},an:function(){return[doc$($CCMM$,'$:Map:$m:filterKeys:$m:filtering$bz56h1')];}}],$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:filterKeys')];},d:['$','Map','$m','filterKeys']};};map$.patch=function($ud,$$$mptypes){var map$=this;function $ue($$targs$$){var $ue$=new $ue.$$;$ue$.outer$=map$;$ue$.$$targs$$=$$targs$$;$_Object($ue$);Map({Key$Map:{t:'u',l:[map$.$$targs$$.Key$Map,$$$mptypes.OtherKey$patch]},Item$Map:{t:'u',l:[map$.$$targs$$.Item$Map,$$$mptypes.OtherItem$patch]}},$ue$);return $ue$;
};$ue.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$ue$.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','$o','patch$67kez']};};function $init$$ue(){if($ue.$$===undefined){initTypeProto($ue,'ceylon.language::Map.patch',$init$$_Object(),$init$Map());
(function($ue$){$ue$.$_get=function($uf){var $ue$=this;return ($ug=$ud.$_get($uf),nn$($ug)?$ug:map$.$_get($uf));};$ue$.clone=function(){var $ue$=this;return map$.clone().patch($ud.clone(),{OtherKey$patch:$$$mptypes.OtherKey$patch,OtherItem$patch:$$$mptypes.OtherItem$patch});};$ue$.defines=function($uh){var $ue$=this;return ($ud.defines($uh)||map$.defines($uh));};$ue$.contains=function($ui){var $ue$=this;var $uj;if(is$(($uj=$ui),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:$_Object}}})){return ($ud.contains($uj)||(!$ud.defines($uj.key)&&map$.contains($uj)));}else {return false;}};$ue$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'entry',mt:'prm',$t:{t:$_Object}}],$cont:$ue,pa:3,d:['$','Map','$m','patch','$o','patch$67kez','$m','contains']};};atr$($ue$,'size',function(){var $ue$=this;return map$.size.plus($ud.keys.count(not($JsCallable(($uk=map$,JsCallable($uk,nn$($uk)?$uk.defines:null)),[{nm:'key',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:$_Object}]}}),{Value$not:{t:$_Object}})));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$ue,pa:3,d:['$','Map','$m','patch','$o','patch$67kez','$at','size']};});$ue$.iterator=function(){var $ue$=this;return ChainedIterator($ud,map$.$_filter(not($JsCallable(($ul=$ud,JsCallable($ul,nn$($ul)?$ul.contains:null)),[{nm:'entry',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{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:$$$mptypes.OtherKey$patch,Item$Entry:$$$mptypes.OtherItem$patch}}});};})($ue.$$.prototype);}
return $ue;}
$init$$ue();var $um;function get$um(){if($um===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'patch\' before it was set"),'241:8-272:8','Map.ceylon');if($um===undefined){$um=INIT$;$um=$init$$ue()({Item$Map:{t:'u',l:[map$.$$targs$$.Item$Map,$$$mptypes.OtherItem$patch]},Key$Map:{t:'u',l:[map$.$$targs$$.Key$Map,$$$mptypes.OtherKey$patch]}});$um.$crtmm$=get$um.$crtmm$;}
return $um;}
get$um.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$ue},$cont:$ue$.patch,d:['$','Map','$m','patch','$o','patch$67kf0']};};$prop$get$um={get:get$um,$crtmm$:get$um.$crtmm$};get$ue=get$um;$prop$get$ue=get$um;var $ug,$uk,$ul;return get$um();};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:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:patch')];},d:['$','Map','$m','patch']};};})(Map.$$.prototype);}
return Map;}
ex$.$init$Map=$init$Map;$init$Map();function $un($$targs$$){var emptyMap$=new $un.$$;emptyMap$.$$targs$$=$$targs$$;$_Object(emptyMap$);Map({Key$Map:{t:Nothing},Item$Map:{t:Nothing}},emptyMap$);emptyMap$.$prop$getKeys={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$un,pa:3,d:['$','emptyMap','$at','keys']};}};emptyMap$.$prop$getKeys.get=function(){return keys};emptyMap$.$prop$getItems={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$un,pa:3,d:['$','emptyMap','$at','items']};}};emptyMap$.$prop$getItems.get=function(){return items};return emptyMap$;
};$un.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Map,a:{Key$Map:{t:Nothing},Item$Map:{t:Nothing}}}],pa:1,an:function(){return[doc$($CCMM$,'$:emptyMap')];},d:['$','emptyMap']};};function $init$getEmptyMap(){if($un.$$===undefined){initTypeProto($un,'ceylon.language::emptyMap',$init$$_Object(),$init$Map());
(function(emptyMap$){emptyMap$.$_get=function($uo){var emptyMap$=this;return null;};emptyMap$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$un,pa:3,d:['$','emptyMap','$m','get']};};atr$(emptyMap$,'keys',function(){var emptyMap$=this;return getEmptySet();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$un,pa:3,d:['$','emptyMap','$at','keys']};});atr$(emptyMap$,'items',function(){var emptyMap$=this;return getEmptySet();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$un,pa:3,d:['$','emptyMap','$at','items']};});emptyMap$.clone=function(){var emptyMap$=this;return emptyMap$;};emptyMap$.iterator=function(){var emptyMap$=this;return getEmptyIterator();};atr$(emptyMap$,'size',function(){var emptyMap$=this;return 0;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$un,pa:3,d:['$','emptyMap','$at','size']};});atr$(emptyMap$,'empty',function(){var emptyMap$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$un,pa:3,d:['$','emptyMap','$at','empty']};});emptyMap$.defines=function($up){var emptyMap$=this;return false;};emptyMap$.contains=function($uq){var emptyMap$=this;return false;};emptyMap$.containsAny=function($ur){var emptyMap$=this;return false;};emptyMap$.containsEvery=function($us){var emptyMap$=this;return false;};emptyMap$.mapItems=function($ut,$$$mptypes){var emptyMap$=this;return getEmptyMap();};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:'Result$mapItems'}],$cont:$un,tp:{Result$mapItems:{sts:[{t:$_Object}]}},pa:3,d:['$','emptyMap','$m','mapItems']};};emptyMap$.count=function($uu){return 0;};emptyMap$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$un,pa:3,d:['$','emptyMap','$m','count']};};emptyMap$.find=function($uv){var emptyMap$=this;return null;};emptyMap$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$un,pa:3,d:['$','emptyMap','$m','find']};};emptyMap$.findLast=function($uw){var emptyMap$=this;return null;};emptyMap$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$un,pa:3,d:['$','emptyMap','$m','findLast']};};emptyMap$.any=function($ux){var emptyMap$=this;return false;};emptyMap$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$un,pa:3,d:['$','emptyMap','$m','any']};};emptyMap$.$_every=function($uy){var emptyMap$=this;return true;};emptyMap$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean}}],$cont:$un,pa:3,d:['$','emptyMap','$m','every']};};emptyMap$.skip=function($uz){var emptyMap$=this;return emptyMap$;};emptyMap$.take=function($v0){var emptyMap$=this;return emptyMap$;};emptyMap$.by=function($v1){var emptyMap$=this;return emptyMap$;};})($un.$$.prototype);}
return $un;}
ex$.$init$getEmptyMap=$init$getEmptyMap;$init$getEmptyMap();var $v2;function getEmptyMap(){if($v2===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptyMap\' before it was set"),'278:0-329:0','Map.ceylon');if($v2===undefined){$v2=INIT$;$v2=$init$getEmptyMap()({Item$Map:{t:Nothing},Key$Map:{t:Nothing}});$v2.$crtmm$=getEmptyMap.$crtmm$;}
return $v2;}
ex$.getEmptyMap=getEmptyMap;getEmptyMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$un},pa:1,an:function(){return[doc$($CCMM$,'$:emptyMap')];},d:['$','emptyMap']};};$prop$getEmptyMap={get:getEmptyMap,$crtmm$:getEmptyMap.$crtmm$};getEmptyMap=getEmptyMap;$prop$getEmptyMap=getEmptyMap;ex$.$prop$getEmptyMap=$prop$getEmptyMap;function $_String(/*{Character*}*/value,size) {
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') {
var that = new String(value);
that.codePoints = size;
return that;
}
var that = '';
var _iter = value.iterator();
var _c; while ((_c = _iter.next()) !== getFinished()) {
that += _c.string;
}
if (size !== undefined) that.codePoints=size;
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:List,a:{Element$List:{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:97,an:function(){return[doc$($CCMM$,'$:String'),by(["Gavin"].rt$({t:$_String}))];},d:['$','String']};};
ex$.$_String=$_String;function $init$$_String(){if($_String.$$===undefined){initExistingType($_String, String, 'ceylon.language::String', $_Object, $init$List(), $init$Comparable(),
$init$Ranged(), $init$Summable());
inheritProto($_String, $_Object, $init$List(), $init$Comparable(), $init$Ranged(), $init$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$,'$v3',function(){return this.$v3_;},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:65,an:function(){return[doc$($CCMM$,'$:String:$at:lowercased')];},d:['$','String','$at','lowercased']};});atr$(string$,'uppercased',function(){return this.toUpperCase();
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:65,an:function(){return[doc$($CCMM$,'$:String:$at:uppercased')];},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 tokens.rt$({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), count-tokenBeginCount));
}
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), 1));
}
// 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("");
}
this.codePoints = count;
return tokens.rt$({t:$_String});
}
string$.$_split.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},ps:[{nm:'splitting',mt:'prm',$pt:'f',def:1,$t:{t:$_Boolean},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:split')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$at:first')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$at:last')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$at:rest')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$m:getFromLast')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$at:keys')];},d:['$','String','$at','keys']};});string$.$_join=function(objects) {
var it = objects.iterator();
var obj = it.next();
if (obj === getFinished()) {return "";}
if (this.codePoints === undefined) {this.codePoints = countCodepoints(this)}
var str = obj.string;
var result = str;
var len = str.codePoints;
while ((obj = it.next()) !== getFinished()) {
result += this;
str = obj.string;
result += str;
len += this.codePoints + str.codePoints;
}
return $_String(result, isNaN(len)?undefined:len);
}
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:65,an:function(){return[doc$($CCMM$,'$:String:$m:join')];},d:['$','String','$m','join']};};atr$(string$,'lines',function(){var string$=this;return string$.$_split($JsCallable(($v4=Character(10,true),JsCallable($v4,nn$($v4)?$v4.equals:null)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:$_Object}]}}),true,false).spread($JsCallable(function(x){return JsCallable(x,x.trimTrailing);},[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing:$m:trimming$dvg0e1')];}}],{Return$Callable:{t:Callable,a:{Return$Callable:{t:$_String},Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}}]}}},Arguments$Callable:{t:'T',l:[{t:$_String}]}}),{Result$spread:{t:$_String},Args$spread:{t:'T',l:[{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}}]}})($JsCallable(($v5=Character(13,true),JsCallable($v5,nn$($v5)?$v5.equals:null)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:$_Object}]}}));},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},$cont:$_String,pa:65,an:function(){return[doc$($CCMM$,'$:String:$at:lines'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLinesWithBreaks)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','String','$at','lines']};});atr$(string$,'linesWithBreaks',function(){var string$=this;return string$.$_split($JsCallable(($v6=Character(10,true),JsCallable($v6,nn$($v6)?$v6.equals:null)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:$_Object}]}}),false,false).partition(2).$_map($JsCallable((function($v7){var $v8=$v7.$_get(0);var $v9;if(nn$(($v9=$v7.$_get(1)))){return $v8.plus($v9);}else {return $v8;}}),[{nm:'lineWithBreak',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:$_String}}}}],{Return$Callable:{t:$_String},Arguments$Callable:{t:'T',l:[{t:'u',l:[{t:$_String},{t:Sequence,a:{Element$Sequence:{t:$_String}}}]}]}}),{Result$map:{t:$_String}});},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},$cont:$_String,pa:65,an:function(){return[doc$($CCMM$,'$:String:$at:linesWithBreaks'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLines)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','String','$at','linesWithBreaks']};});atr$(string$,'trimmed',function(){var string$=this;return string$.$_trim($JsCallable(function($O$) {return $O$.whitespace;},[],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}));},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:65,an:function(){return[doc$($CCMM$,'$:String:$at:trimmed')];},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);
if (this.codePoints !== undefined) {
result.codePoints = this.codePoints - from - size + to;
}
return result;
}
string$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:trim:$m:trimming$kmx737')];}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:trim')];},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);
if (this.codePoints !== undefined) {
result.codePoints = this.codePoints - from;
}
return result;
}
string$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:trimLeading:$m:trimming$9a2hu7')];}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:trimLeading')];},d:['$','String','$m','trimLeading']};};string$.trimTrailing=function(/*Category*/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);
if (this.codePoints !== undefined) {
result.codePoints = this.codePoints - this.length + to;
}
return result;
}
string$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing:$m:trimming$dvg0e1')];}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing')];},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:65,an:function(){return[doc$($CCMM$,'$:String:$at:normalized')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$at:reversed')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$m:defines')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$m:span')];},d:['$','String','$m','span']};};string$.spanFrom=function($va){var string$=this;return ($vb=(($va<string$.size)?string$.span($va,string$.size):null),nn$($vb)?$vb:"");};string$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:spanFrom')];},d:['$','String','$m','spanFrom']};};string$.spanTo=function($vc){var string$=this;return ($vd=(($vc>=0)?string$.span(0,$vc):null),nn$($vd)?$vd:"");};string$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:spanTo')];},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) {
this.codePoints = count;
if (fromIndex === 0) {return this;}
}
return $_String(this.substring(i1, i2), count-fromIndex);
}
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:67,an:function(){return[doc$($CCMM$,'$:String:$m:measure')];},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) {
this.codePoints = count;
return this;
}
return $_String(this.substr(0, i), count);
}
string$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:initial')];},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) {
this.codePoints = count;
return this;
}
return $_String(this.substr(i), count);
}
string$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:terminal')];},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],{t:'T',l:[{t:$_String},{t:$_String}]});
}
string$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:$_String}},{$t:{t:$_String}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:slice')];},d:['$','String','$m','slice']};};atr$(string$,'size',function(){if (this.codePoints===undefined) {
this.codePoints = countCodepoints(this);
}
return this.codePoints;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$at:size'),see([$init$OpenFunction()(lmp$(ex$,'$'),$init$$_String().$$.prototype.longerThan),$init$OpenFunction()(lmp$(ex$,'$'),$init$$_String().$$.prototype.shorterThan)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','String','$at','size']};});atr$(string$,'lastIndex',function(){var string$=this;if(((string$.size).valueOf()==(0).valueOf())){return null;}else {return 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 ? getEmptyIterator() : StringIterator(this);
}
string$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Character}}},ps:[],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:iterator')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$m:getFromFirst')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$m:contains')];},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:67,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:67,d:['$','String','$m','endsWith']};};string$.plus=function(other) {
var size = this.codePoints + other.codePoints;
return $_String(this+other, isNaN(size)?undefined:size);
}
string$.plus.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:plus')];},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:67,an:function(){return[doc$($CCMM$,'$:String:$m:repeat')];},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:replace')];},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:replaceFirst')];},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:replaceLast')];},d:['$','String','$m','replaceLast']};};string$.compare=function(other) {
var cmp = this.localeCompare(other);
return cmp===0 ? getEqual() : (cmp<0 ? getSmaller():getLarger());
}
string$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:compare')];},d:['$','String','$m','compare']};};string$.longerThan=function(length) {
if (this.codePoints!==undefined) {return this.codePoints>length}
if (this.length <= length) {return false}
if (this.length<<1 > length) {return true}
this.codePoints = countCodepoints(this);
return this.codePoints>length;
}
string$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:longerThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','String','$m','longerThan']};};string$.shorterThan=function(length) {
if (this.codePoints!==undefined) {return this.codePoints<length}
if (this.length < length) {return true}
if (this.length<<1 >= length) {return false}
this.codePoints = countCodepoints(this);
return this.codePoints<length;
}
string$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:67,an:function(){return[doc$($CCMM$,'$:String:$m:shorterThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].rt$({t:ValueDeclaration$meta$declaration}))];},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())!=getFinished()){
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:67,an:function(){return[doc$($CCMM$,'$:String:$m:equals')];},d:['$','String','$m','equals']};};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:67,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:67,an:function(){return[doc$($CCMM$,'$:String:$at:empty'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].rt$({t:ValueDeclaration$meta$declaration}))];},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:pad')];},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:padLeading')];},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:65,an:function(){return[doc$($CCMM$,'$:String:$m:padTrailing')];},d:['$','String','$m','padTrailing']};};string$.occurs=function (e) {
var fo=this.firstOccurrence(e);
return fo!==null && fo>=0;
}
string$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:$_String,pa:67,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:Anything}}],$cont:$_String,pa:67,d:['$','String','$m','occursAt']};};string$.includes=function (e) {
if (e.size===0)return true;
if (is$(e, {t:$_String})) {
var fi=this.firstInclusion(e);
return fi!==null && fi>=0;
}
else {
return List.$$.prototype.includes.call(this,e);
}
}
string$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:$_String,pa:67,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 List.$$.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:Anything}}}}],$cont:$_String,pa:67,d:['$','String','$m','includesAt']};};string$.firstOccurrence=function(subc) {
if (!is$(subc, {t:Character})) return null;
for (var i=0, count=0; i<this.length; 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;}
}
this.codePoints = count;
return null;
}
string$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:$_String,pa:67,d:['$','String','$m','firstOccurrence']};};string$.lastOccurrence=function(subc) {
for (var i=this.length-1, count=0; i>=0; count++) {
var cp = this.charCodeAt(i--);
if (((cp%0xfc00) === 0xdc00) && i>=0) {
cp = (this.charCodeAt(i--)<<10) + cp - 0x35fdc00;
}
if (cp === subc.value) {
if (this.codePoints === undefined) {this.codePoints = countCodepoints(this);}
return this.codePoints - count - 1;
}
}
this.codePoints = count;
return null;
}
string$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:$_String,pa:67,d:['$','String','$m','lastOccurrence']};};string$.firstInclusion=function (e) {
if (e.size===0)return 0;
if (is$(e, {t:$_String})) {
for (var i=0; i < this.size-e.size+1; i++) {
if (cmpSubString(this,e,i))return i;
}
return null;
}
else {
return List.$$.prototype.firstInclusion.call(this,e);
}
}
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:Anything}}}}],$cont:$_String,pa:67,d:['$','String','$m','firstInclusion']};};string$.lastInclusion=function (e) {
if (e.size===0) return this.size;
if (is$(e, {t:$_String})) {
for (var i=this.size-e.size; i>=0; i--) {
if (cmpSubString(this,e,i))return i;
}
return null;
}
else {
return List.$$.prototype.lastInclusion.call(this,e);
}
}
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:Anything}}}}],$cont:$_String,pa:67,d:['$','String','$m','lastInclusion']};};string$.inclusions=function (e) {
if (e.size===0) return measure(0,this.size,{t:Integer});
if (is$(e, {t:$_String})) {
var indexes = [];
for (var i=0; i < this.size-e.size; i++) {
if (cmpSubString(this, e, i))indexes.push(i);
}
return indexes.rt$({t:Integer});
}
else {
return List.$$.prototype.inclusions.call(this,e);
}
}
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:Anything}}}}],$cont:$_String,pa:67,d:['$','String','$m','inclusions']};};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:67,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:67,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:67,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:67,d:['$','String','$m','notLargerThan']};};})($_String.$$.prototype);}
return $_String;}
ex$.$init$$_String=$init$$_String;$init$$_String();var $v4,$v5,$v6,$vb,$vd;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 getFinished(); }
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 _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:97,an:function(){return[doc$($CCMM$,'$:Character'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),$_String)].rt$({t:ClassDeclaration$meta$declaration})),by(["Gavin"].rt$({t:$_String}))];},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$,'string',function(){if (this._str===undefined) {
this._str=codepointToString(this.value);
}
return this._str;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Character,pa:67,an:function(){return[doc$($CCMM$,'$:Character:$at:string')];},d:['$','Character','$at','string']};});atr$(character$,'lowercased',function(){var lcstr = codepointToString(this.value).toLowerCase();
return Character(codepointFromString(lcstr, 0));
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:lowercased')];},d:['$','Character','$at','lowercased']};});atr$(character$,'uppercased',function(){var ucstr = codepointToString(this.value).toUpperCase();
return Character(codepointFromString(ucstr, 0));
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:uppercased')];},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:65,an:function(){return[doc$($CCMM$,'$:Character:$at:titlecased')];},d:['$','Character','$at','titlecased']};});atr$(character$,'lowercase',function(){var str = codepointToString(this.value);
return str.toUpperCase()!==str && !(this.value in Character.titlecase$);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:lowercase')];},d:['$','Character','$at','lowercase']};});atr$(character$,'uppercase',function(){var str = codepointToString(this.value);
return str.toLowerCase()!==str && !(this.value in Character.titlecase$);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:uppercase')];},d:['$','Character','$at','uppercase']};});atr$(character$,'titlecase',function(){return this.value in Character.titlecase$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:titlecase')];},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:65,an:function(){return[doc$($CCMM$,'$:Character:$at:digit')];},d:['$','Character','$at','digit']};});atr$(character$,'letter',function(){//TODO: this captures only letters that have case
var str = codepointToString(this.value);
return str.toUpperCase()!==str || str.toLowerCase()!==str || (this.value in Character.titlecase$);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:letter')];},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:65,an:function(){return[doc$($CCMM$,'$:Character:$at:whitespace')];},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:65,an:function(){return[doc$($CCMM$,'$:Character:$at:control')];},d:['$','Character','$at','control']};});atr$(character$,'integer',function(){return this.value;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Character,pa:65,an:function(){return[doc$($CCMM$,'$:Character:$at:integer')];},d:['$','Character','$at','integer']};});character$.compare=function(other) {
return this.value===other.value ? getEqual()
: (this.value<other.value ? getSmaller():getLarger());
}
character$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:67,an:function(){return[doc$($CCMM$,'$:Character:$m:compare')];},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:67,an:function(){return[doc$($CCMM$,'$:Character:$m:equals')];},d:['$','Character','$m','equals']};};atr$(character$,'hash',function(){return this.value;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Character,pa:67,an:function(){return[doc$($CCMM$,'$:Character:$at:hash')];},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:67,an:function(){return[doc$($CCMM$,'$:Character:$at:predecessor'),$_throws($init$OpenClass$jsint()(lmp$(ex$,'$'),OverflowException),"if there is no such character")];},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:67,an:function(){return[doc$($CCMM$,'$:Character:$at:successor'),$_throws($init$OpenClass$jsint()(lmp$(ex$,'$'),OverflowException),"if there is no such character")];},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:67,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:67,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:67,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:67,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:67,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:67,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:67,d:['$','Character','$m','notLargerThan']};};atr$(character$,'$ve',function(){return this.$ve_;},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,d:['$','Character','$at','character$f3csq2']};});})(Character.$$.prototype);}
return Character;}
ex$.$init$Character=$init$Character;$init$Character();function StringBuilder(that){
$init$StringBuilder();
if(that===undefined)that=new StringBuilder.$$;
that.$$targs$$={Element$List:{t:Character}};
List({Element$List:{t:Character}},that);
that.v$='';
return that;
}
StringBuilder.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:List,a:{Element$List:{t:Character}}}],pa:97,an:function(){return[doc$($CCMM$,'$:StringBuilder')];},d:['$','StringBuilder']};};
ex$.StringBuilder=StringBuilder;function $init$StringBuilder(){if(StringBuilder.$$===undefined){initTypeProto(StringBuilder,'ceylon.language::StringBuilder',Basic,$init$List());
(function(stringBuilder$){atr$(stringBuilder$,'size',function(){return this.v$.size;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:StringBuilder,pa:67,an:function(){return[doc$($CCMM$,'$:StringBuilder:$at:size')];},d:['$','StringBuilder','$at','size']};});atr$(stringBuilder$,'string',function(){return this.v$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StringBuilder,pa:67,an:function(){return[doc$($CCMM$,'$:StringBuilder:$at:string')];},d:['$','StringBuilder','$at','string']};});stringBuilder$.$_substring=function(i,l){
return this.v$.measure(i,l);
}
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:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:substring')];},d:['$','StringBuilder','$m','substring']};};stringBuilder$.iterator=function(){
return this.v$.iterator();
}
stringBuilder$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Character}}},ps:[],$cont:StringBuilder,pa:67,d:['$','StringBuilder','$m','iterator']};};stringBuilder$.getFromFirst=function(i){
return this.v$.getFromFirst(i);
}
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:67,d:['$','StringBuilder','$m','getFromFirst']};};atr$(stringBuilder$,'lastIndex',function(){return this.v$.lastIndex;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:StringBuilder,pa:67,d:['$','StringBuilder','$at','lastIndex']};});stringBuilder$.append=function(s){
this.v$ = this.v$.plus(s);
return this;
}
stringBuilder$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:append')];},d:['$','StringBuilder','$m','append']};};stringBuilder$.appendAll=function($vf){var stringBuilder$=this;var $vh;for(var $vg=$vf.iterator();($vh=$vg.next())!==getFinished();){stringBuilder$.append($vh);}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,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:appendAll')];},d:['$','StringBuilder','$m','appendAll']};};stringBuilder$.prepend=function(s) {
this.v$ = s.plus(this.v$);
return this;
}
stringBuilder$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:prepend')];},d:['$','StringBuilder','$m','prepend']};};stringBuilder$.prependAll=function($vi){var stringBuilder$=this;var $vk;for(var $vj=$vi.iterator();($vk=$vj.next())!==getFinished();){stringBuilder$.prepend($vk);}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,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:prependAll')];},d:['$','StringBuilder','$m','prependAll']};};stringBuilder$.appendCharacter=function(c) {
this.v$ = this.v$.plus(c.string);
return this;
}
stringBuilder$.appendCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:65,an:function(){return[doc("Append the given [[character]].")];},d:['$','StringBuilder','$m','appendCharacter']};};stringBuilder$.prependCharacter=function(c){
this.v$=c.string.plus(this.v$);
return this;
}
stringBuilder$.prependCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:65,an:function(){return[doc("Prepend the given [[character]].")];},d:['$','StringBuilder','$m','prependCharacter']};};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,pa:65,an:function(){return[doc("Append a newline character.")];},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,pa:65,an:function(){return[doc("Append a space character.")];},d:['$','StringBuilder','$m','appendSpace']};};stringBuilder$.clear=function(){
this.v$='';
return this;
}
stringBuilder$.clear.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:clear')];},d:['$','StringBuilder','$m','clear']};};stringBuilder$.insert=function(i,s) {
var end=this.v$.spanFrom(i);
this.v$=this.v$.measure(0,i).plus(s).plus(end);
return this;
}
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:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:insert')];},d:['$','StringBuilder','$m','insert']};};stringBuilder$.insertCharacter=function(i,c){
return this.insert(i,c.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:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:insertCharacter')];},d:['$','StringBuilder','$m','insertCharacter']};};stringBuilder$.$_replace=function(i,l,s){
var end=this.v$.spanFrom(i+l);
this.v$=this.v$.measure(0,i).plus(s).plus(end);
return this;
}
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:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:replace')];},d:['$','StringBuilder','$m','replace']};};stringBuilder$.$_delete=function(i,l){
if (i>this.size)throw AssertionError('StringBuilder.delete index out of bounds');
if (i+l>this.size)throw AssertionError('StringBuilder.delete length out of bounds');
var end = this.v$.spanFrom(i+l);
this.v$=this.v$.measure(0,i).plus(end);
return this;
}
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:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:delete')];},d:['$','StringBuilder','$m','delete']};};stringBuilder$.deleteInitial=function(l){
this.v$=this.v$.spanFrom(l);
return this;
}
stringBuilder$.deleteInitial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:deleteInitial')];},d:['$','StringBuilder','$m','deleteInitial']};};stringBuilder$.deleteTerminal=function(l){
var i=this.v$.size-l;
this.v$=this.v$.measure(0,i);
return this;
}
stringBuilder$.deleteTerminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:deleteTerminal')];},d:['$','StringBuilder','$m','deleteTerminal']};};stringBuilder$.reverseInPlace=function(){
this.v$=this.v$.reversed;
return this;
}
stringBuilder$.reverseInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder,pa:65,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:reverseInPlace')];},d:['$','StringBuilder','$m','reverseInPlace']};};stringBuilder$.equals=function(o){
return is$(o,{t:StringBuilder}) && o.v$.equals(this.v$);
}
stringBuilder$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:StringBuilder,pa:67,d:['$','StringBuilder','$m','equals']};};atr$(stringBuilder$,'hash',function(){return this.v$.hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:StringBuilder,pa:67,d:['$','StringBuilder','$at','hash']};});})(StringBuilder.$$.prototype);}
return StringBuilder;}
ex$.$init$StringBuilder=$init$StringBuilder;$init$StringBuilder();
function any($vl){var $vn;for(var $vm=$vl.iterator();($vn=$vm.next())!==getFinished();){if($vn){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()(lmp$(ex$,'$'),$_every),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.any)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','any']};};function byDecreasing($vo,$$$mptypes){var $vp=function($vq,$vr){return $vo($vr).compare($vo($vq));};$vp.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:'Element$byDecreasing'},{nm:'y',mt:'prm',$t:'Element$byDecreasing'}],$t:{t:Comparison}};};return JsCallable(0,$vp);};byDecreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'comparable',mt:'prm',$pt:'f',$t:'Value$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()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','byDecreasing']};};
ex$.byDecreasing=byDecreasing;function byIncreasing($vs,$$$mptypes){var $vt=function($vu,$vv){return $vs($vu).compare($vs($vv));};$vt.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:'Element$byIncreasing'},{nm:'y',mt:'prm',$t:'Element$byIncreasing'}],$t:{t:Comparison}};};return JsCallable(0,$vt);};byIncreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'comparable',mt:'prm',$pt:'f',$t:'Value$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()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','byIncreasing']};};
ex$.byIncreasing=byIncreasing;function byItem($vw,$$$mptypes){var $vx=function($vy,$vz){return $vw($vy.item,$vz.item);};$vx.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$byItem'}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$byItem'}}}],$t:{t:Comparison}};};return JsCallable(0,$vx);};byItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Comparison}}],tp:{Item$byItem:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byItem'),see([$init$OpenFunction()(lmp$(ex$,'$'),byKey)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','byItem']};};
ex$.byItem=byItem;function byKey($w0,$$$mptypes){var $w1=function($w2,$w3){return $w0($w2.key,$w3.key);};$w1.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$byKey',Item$Entry:{t:$_Object}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$byKey',Item$Entry:{t:$_Object}}}}],$t:{t:Comparison}};};return JsCallable(0,$w1);};byKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Comparison}}],tp:{Key$byKey:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byKey'),see([$init$OpenFunction()(lmp$(ex$,'$'),byItem)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','byKey']};};
ex$.byKey=byKey;function count($w4){var $w5=(0);function set$w5($w6){return $w5=$w6;};var $w8;for(var $w7=$w4.iterator();($w8=$w7.next())!==getFinished();){if($w8){($w9=$w5,$w5=$w9.successor,$w9);var $w9;}}return $w5;}
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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.count)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','count']};};function emptyOrSingleton($wa,$$$mptypes){var $wb;if(nn$(($wb=$wa))){return tpl$([$wb],{t:'T',l:[{t:'i',l:[$$$mptypes.Element$emptyOrSingleton,{t:$_Object}]}]});}else {return getEmpty();}}
ex$.emptyOrSingleton=emptyOrSingleton;emptyOrSingleton.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:'i',l:['Element$emptyOrSingleton',{t:$_Object}]},def:1}]},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)].rt$({t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]}))];},d:['$','emptyOrSingleton']};};function curry($wc,$$$mptypes){var $wd=function($we){return flatten($JsCallable((function($wf){return unflatten($wc,{Return$unflatten:$$$mptypes.Return$curry,Args$unflatten:{t:'T',l:[$$$mptypes.First$curry,{t:Anything}]}})(Tuple($we,$wf,{First$Tuple:$$$mptypes.First$curry,Rest$Tuple:$$$mptypes.Rest$curry,Element$Tuple:$$$mptypes.Argument$curry}));}),[{nm:'args',mt:'prm',$t:'Rest$curry'}],{Return$Callable:$$$mptypes.Return$curry,Arguments$Callable:{t:'T',l:[$$$mptypes.Rest$curry]}}),{Args$flatten:$$$mptypes.Rest$curry,Return$flatten:$$$mptypes.Return$curry});};$wd.$crtmm$=function(){return{ps:[{nm:'first',mt:'prm',$t:'First$curry'}],$t:{t:Callable,a:{Return$Callable:$$$mptypes.Return$curry,Arguments$Callable:$$$mptypes.Rest$curry}}};};return JsCallable(0,$wd);};curry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$curry',Arguments$Callable:'Rest$curry'}},ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$curry',Arguments$Callable:{t:'T',l:[{$t:'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()(lmp$(ex$,'$'),uncurry),$init$OpenFunction()(lmp$(ex$,'$'),compose)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','curry']};};
ex$.curry=curry;function uncurry($wg,$$$mptypes){return flatten($JsCallable((function($wh){return unflatten($wg($wh.first),{Return$unflatten:$$$mptypes.Return$uncurry,Args$unflatten:$$$mptypes.Rest$uncurry})($wh.rest);}),[{nm:'args',mt:'prm',$t:{t:'T',l:[{$t:'First$uncurry'}]}}],{Return$Callable:$$$mptypes.Return$uncurry,Arguments$Callable:{t:'T',l:[{t:'T',l:[$$$mptypes.First$uncurry,{t:Anything}]}]}}),{Args$flatten:{t:'T',l:[$$$mptypes.First$uncurry,{t:Anything}]},Return$flatten:$$$mptypes.Return$uncurry});};uncurry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:{t:'T',l:[{$t:'First$uncurry'}]}}},ps:[{nm:'f',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:'Rest$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()(lmp$(ex$,'$'),curry),$init$OpenFunction()(lmp$(ex$,'$'),compose)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','uncurry']};};
ex$.uncurry=uncurry;function $_apply($wi,$wj,$$$mptypes){return unflatten($wi,{Return$unflatten:$$$mptypes.Return$apply,Args$unflatten:$$$mptypes.Args$apply})($wj);};$_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()(lmp$(ex$,'$'),unflatten)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','apply']};};
ex$.$_apply=$_apply;function comparing($wk,$$$mptypes){if($wk===undefined){$wk=getEmpty();}
var $wl=function($wm,$wn){var $wp;for(var $wo=$wk.iterator();($wp=$wo.next())!==getFinished();){var $wq=$wp($wm,$wn);if((!$wq.equals(getEqual()))){return $wq;}}
if(getFinished()===$wp){return getEqual();}};$wl.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:'Value$comparing'},{nm:'y',mt:'prm',$t:'Value$comparing'}],$t:{t:Comparison}};};return JsCallable(0,$wl);}
ex$.comparing=comparing;comparing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},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:[{$t:'Value$comparing'},{$t:'Value$comparing'}]}}}}}}],tp:{Value$comparing:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:comparing'),see([$init$OpenFunction()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','comparing']};};function identity($wr,$$$mptypes){return $wr;};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')];},d:['$','identity']};};
ex$.identity=identity;function noop($ws){if($ws===undefined){$ws=getEmpty();}
}
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')];},d:['$','noop']};};
function $_every($wt){var $wv;for(var $wu=$wt.iterator();($wv=$wu.next())!==getFinished();){if(!$wv){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()(lmp$(ex$,'$'),any),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_every)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','every']};};function forItem($ww,$$$mptypes){var $wx=function($wy){return $ww($wy.item);};$wx.$crtmm$=function(){return{ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$forItem'}}}],$t:$$$mptypes.Result$forItem};};return JsCallable(0,$wx);};forItem.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$forItem',ps:[{nm:'resulting',mt:'prm',$pt:'f',$t:'Result$forItem'}],tp:{Item$forItem:{sts:[{t:$_Object}]},Result$forItem:{}},pa:1,an:function(){return[doc$($CCMM$,'$:forItem'),see([$init$OpenFunction()(lmp$(ex$,'$'),forKey)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','forItem']};};
ex$.forItem=forItem;function forKey($wz,$$$mptypes){var $x0=function($x1){return $wz($x1.key);};$x0.$crtmm$=function(){return{ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$forKey',Item$Entry:{t:$_Object}}}}],$t:$$$mptypes.Result$forKey};};return JsCallable(0,$x0);};forKey.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$forKey',ps:[{nm:'resulting',mt:'prm',$pt:'f',$t:'Result$forKey'}],tp:{Key$forKey:{sts:[{t:$_Object}]},Result$forKey:{}},pa:1,an:function(){return[doc$($CCMM$,'$:forKey'),see([$init$OpenFunction()(lmp$(ex$,'$'),forItem)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','forKey']};};
ex$.forKey=forKey;function concatenate($x2,$$$mptypes){if($x2===undefined){$x2=getEmpty();}
return tpl$([],undefined,for$(function(){var $x3=$x2.iterator(),$x4=getFinished();var n$x4=function(){if(($x4=$x3.next())!==getFinished()){$x5=$x4.iterator();n$x6();return $x4;}
return getFinished();}
var $x5,$x6=getFinished();var n$x6=function(){return $x6=$x5.next();}
n$x4();return function(){do{if($x6!==getFinished()){var $x7=$x6;var $x8=$x7;n$x6();return $x8;}
}while(n$x4()!==getFinished());return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$$$mptypes.Element$concatenate}));};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'}}}},an:function(){return[doc("The streams to concatenate.")];}}],tp:{Element$concatenate:{}},pa:1,an:function(){return[doc$($CCMM$,'$:concatenate'),see([$init$OpenFunction()(lmp$(ex$,'$'),expand),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain),$init$OpenFunction()(lmp$(ex$,'$'),$init$Sequential().$$.prototype.append)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','concatenate']};};
ex$.concatenate=concatenate;function expand($x9,$$$mptypes){return for$(function(){var $xa=$x9.iterator(),$xb=getFinished();var n$xb=function(){if(($xb=$xa.next())!==getFinished()){$xc=$xb.iterator();n$xd();return $xb;}
return getFinished();}
var $xc,$xd=getFinished();var n$xd=function(){return $xd=$xc.next();}
n$xb();return function(){do{if($xd!==getFinished()){var $xe=$xd;var $xf=$xe;n$xd();return $xf;}
}while(n$xb()!==getFinished());return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$$$mptypes.Element$expand});};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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.flatMap),$init$OpenFunction()(lmp$(ex$,'$'),concatenate),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','expand']};};
ex$.expand=expand;function interleave($xg,$$$mptypes){if($xg===undefined){$xg=getEmpty();}
function $xh($$targs$$){var $xh$=new $xh.$$;$xh$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:$$$mptypes.Absent$interleave,Element$Iterable:$$$mptypes.Element$interleave},$xh$);return $xh$;
};$xh.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:interleave,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}}],d:['$','interleave','$o','interleaved$ot9uw8']};};function $init$$xh(){if($xh.$$===undefined){initTypeProto($xh,'ceylon.language::interleaved',Basic,$init$Iterable());
(function($xh$){atr$($xh$,'size',function(){var $xh$=this;return ($xi=for$(function(){var $xj=$xg.iterator(),$xk=getFinished();var n$xk=function(){return $xk=$xj.next();}
n$xk();return function(){if($xk!==getFinished()){var $xl=$xk;var $xm=$xl.size;n$xk();return $xm;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}),min($xi,{Value$min:{t:Integer},Absent$min:{t:Nothing}})).times($xg.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$xh,pa:3,d:['$','interleave','$o','interleaved$ot9uw8','$at','size']};});atr$($xh$,'empty',function(){var $xh$=this;return ($xn=for$(function(){var $xo=$xg.iterator(),$xp=getFinished();var n$xp=function(){return $xp=$xo.next();}
n$xp();return function(){if($xp!==getFinished()){var $xq=$xp;var $xr=$xq.empty;n$xp();return $xr;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}),any($xn));},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$xh,pa:3,d:['$','interleave','$o','interleaved$ot9uw8','$at','empty']};});$xh$.iterator=function(){var $xh$=this;function $xs($$targs$$){var $xs$=new $xs.$$;$xs$.outer$=$xh$;$xs$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$$$mptypes.Element$interleave},$xs$);$xs$.$xt_=$xg.collect($JsCallable((function($xu){return $xu.iterator();}),[{nm:'it',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$interleave'}}}],{Return$Callable:{t:Iterator,a:{Element$Iterator:$$$mptypes.Element$interleave}},Arguments$Callable:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:$$$mptypes.Element$interleave}}]}}),{Result$collect:{t:Iterator,a:{Element$Iterator:$$$mptypes.Element$interleave}}});$xs$.$prop$get$xt={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Iterator,a:{Element$Iterator:'Element$interleave'}}}},$cont:$xs,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prty','$at','iterators$ef33w2']};}};$xs$.$prop$get$xt.get=function(){return $xt};$xs$.$xv_=(0);$xs$.$prop$get$xv={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$xs,pa:1027,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prty','$at','which$82p99i']};}};$xs$.$prop$get$xv.get=function(){return $xv};return $xs$;
};$xs.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$xh$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$interleave'}}],d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prty']};};function $init$$xs(){if($xs.$$===undefined){initTypeProto($xs,'ceylon.language::interleaved.iterator',Basic,$init$Iterator());
(function($xs$){atr$($xs$,'$xt',function(){return this.$xt_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Iterator,a:{Element$Iterator:'Element$interleave'}}}},$cont:$xs,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prty','$at','iterators$ef33w2']};});atr$($xs$,'$xv',function(){return this.$xv_;},function($xw){return this.$xv_=$xw;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$xs,pa:1027,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prty','$at','which$82p99i']};});$xs$.next=function(){var $xs$=this;var $xx;asrt$((nn$(($xx=$xs$.$xt.$_get($xs$.$xv)))),"Assertion failed: \'exists iter = iterators[which]\' at interleave.ceylon (29:27-29:58)",'29:20-29:59','interleave.ceylon');
var $xy;if(!is$(($xy=$xx.next()),{t:Finished})){if((($xs$.$xv=$xs$.$xv.successor)>=$xs$.$xt.size)){$xs$.$xv=(0);}return $xy;}else {return getFinished();}};$xs$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$interleave',{t:Finished}]},ps:[],$cont:$xs,pa:3,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prty','$m','next']};};})($xs.$$.prototype);}
return $xs;}
$init$$xs();var $xz;function get$xz(){if($xz===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'23:12-40:12','interleave.ceylon');if($xz===undefined){$xz=INIT$;$xz=$init$$xs()({Element$Iterator:$$$mptypes.Element$interleave});$xz.$crtmm$=get$xz.$crtmm$;}
return $xz;}
get$xz.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$xs},$cont:$xh$.iterator,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator','$o','iterator$b7prtz']};};$prop$get$xz={get:get$xz,$crtmm$:get$xz.$crtmm$};get$xs=get$xz;$prop$get$xs=get$xz;return get$xz();};$xh$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$interleave'}},ps:[],$cont:$xh,pa:3,d:['$','interleave','$o','interleaved$ot9uw8','$m','iterator']};};})($xh.$$.prototype);}
return $xh;}
$init$$xh();var $y0;function get$y0(){if($y0===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'interleaved\' before it was set"),'19:4-43:4','interleave.ceylon');if($y0===undefined){$y0=INIT$;$y0=$init$$xh()({Absent$Iterable:$$$mptypes.Absent$interleave,Element$Iterable:$$$mptypes.Element$interleave});$y0.$crtmm$=get$y0.$crtmm$;}
return $y0;}
get$y0.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$xh},$cont:interleave,d:['$','interleave','$o','interleaved$ot9uw7']};};$prop$get$y0={get:get$y0,$crtmm$:get$y0.$crtmm$};get$xh=get$y0;$prop$get$xh=get$y0;var $xi,$xn;return get$y0();}
ex$.interleave=interleave;interleave.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}},ps:[{nm:'iterables',mt:'prm',seq:1,$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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.interpose)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','interleave']};};function corresponding($y1,$y2,$y3,$$$mptypes){var $y4=$y1.iterator();var $y5=$y2.iterator();while(true){var $y6=$y4.next();var $y7=$y5.next();var $y8,$y9;if(!is$(($y8=$y6),{t:Finished})&&!is$(($y9=$y7),{t:Finished})){if(!$y3($y8,$y9)){return false;}}else {return (is$($y6,{t:Finished})&&is$($y7,{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',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:corresponding:$m:comparing$arwonf')];}}],tp:{First$corresponding:{},Second$corresponding:{}},pa:1,an:function(){return[doc$($CCMM$,'$:corresponding'),see([$init$OpenFunction()(lmp$(ex$,'$'),everyPair)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','corresponding']};};function loop($ya,$yb,$$$mptypes){var $yc=$ya;function $yd($$targs$$){var $yd$=new $yd.$$;$yd$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$$$mptypes.Element$loop},$yd$);return $yd$;
};$yd.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:loop,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$loop'}}],d:['$','loop','$o','iterable$cridai']};};function $init$$yd(){if($yd.$$===undefined){initTypeProto($yd,'ceylon.language::iterable',Basic,$init$Iterable());
(function($yd$){atr$($yd$,'first',function(){var $yd$=this;return $yc;},undefined,function(){return{mod:$CCMM$,$t:'Element$loop',$cont:$yd,pa:3,d:['$','loop','$o','iterable$cridai','$at','first']};});atr$($yd$,'empty',function(){var $yd$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$yd,pa:3,d:['$','loop','$o','iterable$cridai','$at','empty']};});atr$($yd$,'size',function(){var $yd$=this;asrt$((false),"stream is infinite: \'false\' at loop.ceylon (22:18-22:24)",'21:12-22:25','loop.ceylon');
},undefined,function(){return{mod:$CCMM$,$t:{t:Nothing},$cont:$yd,pa:3,d:['$','loop','$o','iterable$cridai','$at','size']};});$yd$.$ye=function($yf){var $yd$=this;return $yb($yf);};$yd$.$ye.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$loop',ps:[{nm:'element',mt:'prm',$t:'Element$loop'}],$cont:$yd,d:['$','loop','$o','iterable$cridai','$m','nextElement$gvzcve']};};$yd$.iterator=function(){var $yd$=this;var $yg=$yc;function set$yg($yh){return $yg=$yh;};function $yi($$targs$$){var $yi$=new $yi.$$;$yi$.outer$=$yd$;$yi$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$$$mptypes.Element$loop},$yi$);return $yi$;
};$yi.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$yd$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$loop'}}],d:['$','loop','$o','iterable$cridai','$m','iterator','$o','iterator$h1tkyg']};};function $init$$yi(){if($yi.$$===undefined){initTypeProto($yi,'ceylon.language::iterable.iterator',Basic,$init$Iterator());
(function($yi$){$yi$.next=function(){var $yi$=this;var $yj=$yg;$yg=$yd$.$ye($yg);return $yj;};$yi$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},ps:[],$cont:$yi,pa:3,d:['$','loop','$o','iterable$cridai','$m','iterator','$o','iterator$h1tkyg','$m','next']};};})($yi.$$.prototype);}
return $yi;}
$init$$yi();var $yk;function get$yk(){if($yk===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'27:12-33:12','loop.ceylon');if($yk===undefined){$yk=INIT$;$yk=$init$$yi()({Element$Iterator:$$$mptypes.Element$loop});$yk.$crtmm$=get$yk.$crtmm$;}
return $yk;}
get$yk.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$yi},$cont:$yd$.iterator,d:['$','loop','$o','iterable$cridai','$m','iterator','$o','iterator$h1tkyh']};};$prop$get$yk={get:get$yk,$crtmm$:get$yk.$crtmm$};get$yi=get$yk;$prop$get$yi=get$yk;return get$yk();};$yd$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$loop'}},ps:[],$cont:$yd,pa:3,d:['$','loop','$o','iterable$cridai','$m','iterator']};};})($yd.$$.prototype);}
return $yd;}
$init$$yd();var $yl;function get$yl(){if($yl===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'17:4-36:4','loop.ceylon');if($yl===undefined){$yl=INIT$;$yl=$init$$yd()({Absent$Iterable:{t:Nothing},Element$Iterable:$$$mptypes.Element$loop});$yl.$crtmm$=get$yl.$crtmm$;}
return $yl;}
get$yl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$yd},$cont:loop,d:['$','loop','$o','iterable$cridaj']};};$prop$get$yl={get:get$yl,$crtmm$:get$yl.$crtmm$};get$yd=get$yl;$prop$get$yd=get$yl;return get$yl();}
ex$.loop=loop;loop.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$loop'}},ps:[{nm:'first',mt:'prm',$t:'Element$loop',an:function(){return[doc$($CCMM$,'$:loop:$at:first$mh5yx8')];}},{nm:'next',mt:'prm',$pt:'f',$t:'Element$loop',an:function(){return[doc$($CCMM$,'$:loop:$m:next$nr9e8n')];}}],tp:{Element$loop:{}},pa:1,an:function(){return[doc$($CCMM$,'$:loop')];},d:['$','loop']};};function largest($ym,$yn,$$$mptypes){return ($yo=($ym.compare($yn).equals(getLarger())?$ym:null),nn$($yo)?$yo:$yn);};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()(lmp$(ex$,'$'),smallest),$init$OpenFunction()(lmp$(ex$,'$'),max)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}))];},d:['$','largest']};};
ex$.largest=largest;var $yo;function max($yp,$$$mptypes){var $yq=$yp.iterator();var $yr;if(!is$(($yr=$yq.next()),{t:Finished})){var $ys=$yr;function set$ys($yt){return $ys=$yt;};var $yu;while(!is$(($yu=$yq.next()),{t:Finished})){if($yu.compare($ys).equals(getLarger())){$ys=$yu;}}return $ys;}else {var $yv;asrt$((is$(($yv=null),$$$mptypes.Absent$max)),"iterable must be empty: \'is Absent null\' at max.ceylon (31:15-31:30)",'30:8-31: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[doc$($CCMM$,'$:max'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction()(lmp$(ex$,'$'),min),$init$OpenFunction()(lmp$(ex$,'$'),largest),$init$OpenFunction()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}))];},d:['$','max']};};function min($yw,$$$mptypes){var $yx=$yw.iterator();var $yy;if(!is$(($yy=$yx.next()),{t:Finished})){var $yz=$yy;function set$yz($z0){return $yz=$z0;};var $z1;while(!is$(($z1=$yx.next()),{t:Finished})){if($z1.compare($yz).equals(getSmaller())){$yz=$z1;}}return $yz;}else {var $z2;asrt$((is$(($z2=null),$$$mptypes.Absent$min)),"iterable must be empty: \'is Absent null\' at min.ceylon (27:15-27:30)",'26:8-27: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[doc$($CCMM$,'$:min'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction()(lmp$(ex$,'$'),max),$init$OpenFunction()(lmp$(ex$,'$'),smallest)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}))];},d:['$','min']};};function smallest($z3,$z4,$$$mptypes){return ($z5=($z3.compare($z4).equals(getSmaller())?$z3:null),nn$($z5)?$z5:$z4);};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()(lmp$(ex$,'$'),largest),$init$OpenFunction()(lmp$(ex$,'$'),min)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}))];},d:['$','smallest']};};
ex$.smallest=smallest;var $z5;function sum($z6,$$$mptypes){var $z7=$z6.iterator();var $z8;asrt$((!is$(($z8=$z7.next()),{t:Finished})),"Assertion failed: \'!is Finished first = it.next()\' at sum.ceylon (7:11-7:42)",'7:4-7:43','sum.ceylon');
var $z9=$z8;function set$z9($za){return $z9=$za;};var $zb;while(!is$(($zb=$z7.next()),{t:Finished})){($z9=$z9.plus($zb));}return $z9;}
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[doc$($CCMM$,'$:sum'),see([$init$OpenFunction()(lmp$(ex$,'$'),product)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','sum']};};function product($zc,$$$mptypes){var $zd=$zc.first;function set$zd($ze){return $zd=$ze;};var $zg;for(var $zf=$zc.rest.iterator();($zg=$zf.next())!==getFinished();){($zd=$zd.times($zg));}return $zd;}
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[doc$($CCMM$,'$:product'),see([$init$OpenFunction()(lmp$(ex$,'$'),sum)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','product']};};function mapPairs($zh,$zi,$zj,$$$mptypes){function $zk($$targs$$){var $zk$=new $zk.$$;$zk$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:'u',l:[$$$mptypes.FirstAbsent$mapPairs,$$$mptypes.SecondAbsent$mapPairs]},Element$Iterable:$$$mptypes.Result$mapPairs},$zk$);return $zk$;
};$zk.$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$$zk(){if($zk.$$===undefined){initTypeProto($zk,'ceylon.language::iterable',Basic,$init$Iterable());
(function($zk$){$zk$.iterator=function(){var $zk$=this;function $zl($$targs$$){var $zl$=new $zl.$$;$zl$.outer$=$zk$;$zl$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$$$mptypes.Result$mapPairs},$zl$);$zl$.$zm_=$zi.iterator();$zl$.$prop$get$zm={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'First$mapPairs'}},$cont:$zl,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','firstIter$ruc02k']};}};$zl$.$prop$get$zm.get=function(){return $zm};$zl$.$zn_=$zj.iterator();$zl$.$prop$get$zn={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Second$mapPairs'}},$cont:$zl,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','secondIter$6wrzi8']};}};$zl$.$prop$get$zn.get=function(){return $zn};return $zl$;
};$zl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$zk$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Result$mapPairs'}}],d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz']};};function $init$$zl(){if($zl.$$===undefined){initTypeProto($zl,'ceylon.language::iterable.iterator',Basic,$init$Iterator());
(function($zl$){atr$($zl$,'$zm',function(){return this.$zm_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'First$mapPairs'}},$cont:$zl,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','firstIter$ruc02k']};});atr$($zl$,'$zn',function(){return this.$zn_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Second$mapPairs'}},$cont:$zl,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','secondIter$6wrzi8']};});$zl$.next=function(){var $zl$=this;var $zo,$zp;if(!is$(($zo=$zl$.$zm.next()),{t:Finished})&&!is$(($zp=$zl$.$zn.next()),{t:Finished})){return $zh($zo,$zp);}else {return getFinished();}};$zl$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$mapPairs',{t:Finished}]},ps:[],$cont:$zl,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$m','next']};};atr$($zl$,'string',function(){var $zl$=this;return "".plus($zk$.string).plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$zl,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','string']};});})($zl.$$.prototype);}
return $zl;}
$init$$zl();var $zq;function get$zq(){if($zq===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'32:12-46:12','pairs.ceylon');if($zq===undefined){$zq=INIT$;$zq=$init$$zl()({Element$Iterator:$$$mptypes.Result$mapPairs});$zq.$crtmm$=get$zq.$crtmm$;}
return $zq;}
get$zq.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$zl},$cont:$zk$.iterator,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypy']};};$prop$get$zq={get:get$zq,$crtmm$:get$zq.$crtmm$};get$zl=get$zq;$prop$get$zl=get$zq;return get$zq();};$zk$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Result$mapPairs'}},ps:[],$cont:$zk,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator']};};})($zk.$$.prototype);}
return $zk;}
$init$$zk();var $zr;function get$zr(){if($zr===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'29:4-49:4','pairs.ceylon');if($zr===undefined){$zr=INIT$;$zr=$init$$zk()({Absent$Iterable:{t:'u',l:[$$$mptypes.FirstAbsent$mapPairs,$$$mptypes.SecondAbsent$mapPairs]},Element$Iterable:$$$mptypes.Result$mapPairs});$zr.$crtmm$=get$zr.$crtmm$;}
return $zr;}
get$zr.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$zk},$cont:mapPairs,d:['$','mapPairs','$o','iterable$x16jqs']};};$prop$get$zr={get:get$zr,$crtmm$:get$zr.$crtmm$};get$zk=get$zr;$prop$get$zk=get$zr;return get$zr();}
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:'Result$mapPairs',an:function(){return[doc$($CCMM$,'$:mapPairs:$m:collecting$tyqi0b')];}},{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')];},d:['$','mapPairs']};};function findPair($zs,$zt,$zu,$$$mptypes){var $zv=$zt.iterator();var $zw=$zu.iterator();var $zx,$zy;while(!is$(($zx=$zv.next()),{t:Finished})&&!is$(($zy=$zw.next()),{t:Finished})){if($zs($zx,$zy)){return tpl$([$zx,$zy],{t:'T',l:[$$$mptypes.First$findPair,$$$mptypes.Second$findPair]});}}return null;}
ex$.findPair=findPair;findPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'T',l:[{$t:'First$findPair'},{$t:'Second$findPair'}]}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:findPair:$m:selecting$g8bdrb')];}},{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')];},d:['$','findPair']};};function everyPair($zz,$100,$101,$$$mptypes){var $102=$100.iterator();var $103=$101.iterator();var $104,$105;while(!is$(($104=$102.next()),{t:Finished})&&!is$(($105=$103.next()),{t:Finished})){if(!$zz($104,$105)){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:$_Boolean},an:function(){return[doc$($CCMM$,'$:everyPair:$m:selecting$dw9v1x')];}},{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()(lmp$(ex$,'$'),corresponding),$init$OpenFunction()(lmp$(ex$,'$'),anyPair)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','everyPair']};};function anyPair($106,$107,$108,$$$mptypes){var $109=$107.iterator();var $10a=$108.iterator();var $10b,$10c;while(!is$(($10b=$109.next()),{t:Finished})&&!is$(($10c=$10a.next()),{t:Finished})){if($106($10b,$10c)){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:$_Boolean},an:function(){return[doc$($CCMM$,'$:anyPair:$m:selecting$hn51wc')];}},{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()(lmp$(ex$,'$'),everyPair)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','anyPair']};};function foldPairs($10d,$10e,$10f,$10g,$$$mptypes){var $10h=$10f.iterator();var $10i=$10g.iterator();var $10j=$10d;function set$10j($10k){return $10j=$10k;};var $10l,$10m;while(!is$(($10l=$10h.next()),{t:Finished})&&!is$(($10m=$10i.next()),{t:Finished})){$10j=$10e($10j,$10l,$10m);}return $10j;}
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:'Result$foldPairs',an:function(){return[doc$($CCMM$,'$:foldPairs:$m:accumulating$wxcgon')];}},{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')];},d:['$','foldPairs']};};function zipEntries($10n,$10o,$$$mptypes){return mapPairs(Entry,$10n,$10o,{Result$mapPairs:{t:Entry,a:{Key$Entry:$$$mptypes.Key$zipEntries,Item$Entry:$$$mptypes.Item$zipEntries}},FirstAbsent$mapPairs:$$$mptypes.KeyAbsent$zipEntries,Second$mapPairs:$$$mptypes.Item$zipEntries,First$mapPairs:$$$mptypes.Key$zipEntries,SecondAbsent$mapPairs:$$$mptypes.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')];},d:['$','zipEntries']};};
ex$.zipEntries=zipEntries;function zipPairs($10p,$10q,$$$mptypes){return mapPairs($JsCallable((function($10r,$10s){return tpl$([$10r,$10s],{t:'T',l:[$$$mptypes.First$zipPairs,$$$mptypes.Second$zipPairs]});}),[{nm:'first',mt:'prm',$t:'First$zipPairs'},{nm:'second',mt:'prm',$t:'Second$zipPairs'}],{Return$Callable:{t:'T',l:[$$$mptypes.First$zipPairs,$$$mptypes.Second$zipPairs]},Arguments$Callable:{t:'T',l:[$$$mptypes.First$zipPairs,$$$mptypes.Second$zipPairs]}}),$10p,$10q,{Result$mapPairs:{t:'T',l:[$$$mptypes.First$zipPairs,$$$mptypes.Second$zipPairs]},FirstAbsent$mapPairs:$$$mptypes.FirstAbsent$zipPairs,Second$mapPairs:$$$mptypes.Second$zipPairs,First$mapPairs:$$$mptypes.First$zipPairs,SecondAbsent$mapPairs:$$$mptypes.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:[{$t:'First$zipPairs'},{$t:'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')];},d:['$','zipPairs']};};
ex$.zipPairs=zipPairs;function zip($10t,$10u,$$$mptypes){return mapPairs(Tuple,$10t,$10u,{Result$mapPairs:{t:'T',l:[$$$mptypes.Head$zip,{t:Anything}]},FirstAbsent$mapPairs:$$$mptypes.HeadAbsent$zip,Second$mapPairs:$$$mptypes.Tail$zip,First$mapPairs:$$$mptypes.Head$zip,SecondAbsent$mapPairs:$$$mptypes.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:[{$t:'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')];},d:['$','zip']};};
ex$.zip=zip;function unzip($10v,$$$mptypes){return tpl$([$10v.$_map($JsCallable((function($10w){return $10w.first;}),[{nm:'tuple',mt:'prm',$t:{t:'T',l:[{$t:'Head$unzip'}]}}],{Return$Callable:$$$mptypes.Head$unzip,Arguments$Callable:{t:'T',l:[{t:'T',l:[$$$mptypes.Head$unzip,{t:Anything}]}]}}),{Result$map:$$$mptypes.Head$unzip}),$10v.$_map($JsCallable((function($10x){return $10x.rest;}),[{nm:'tuple',mt:'prm',$t:{t:'T',l:[{$t:'Head$unzip'}]}}],{Return$Callable:$$$mptypes.Tail$unzip,Arguments$Callable:{t:'T',l:[{t:'T',l:[$$$mptypes.Head$unzip,{t:Anything}]}]}}),{Result$map:$$$mptypes.Tail$unzip})],{t:'T',l:[{t:Iterable,a:{Absent$Iterable:$$$mptypes.Absent$unzip,Element$Iterable:$$$mptypes.Head$unzip}},{t:Iterable,a:{Absent$Iterable:$$$mptypes.Absent$unzip,Element$Iterable:$$$mptypes.Tail$unzip}}]});};unzip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:'Head$unzip'}}},{$t:{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:[{$t:'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')];},d:['$','unzip']};};
ex$.unzip=unzip;function unzipPairs($10y,$$$mptypes){return tpl$([$10y.$_map($JsCallable((function($10z){return $10z.$_get(0);}),[{nm:'pair',mt:'prm',$t:{t:'T',l:[{$t:'First$unzipPairs'},{$t:'Second$unzipPairs'}]}}],{Return$Callable:$$$mptypes.First$unzipPairs,Arguments$Callable:{t:'T',l:[{t:'T',l:[$$$mptypes.First$unzipPairs,$$$mptypes.Second$unzipPairs]}]}}),{Result$map:$$$mptypes.First$unzipPairs}),$10y.$_map($JsCallable((function($110){return $110.$_get(1);}),[{nm:'pair',mt:'prm',$t:{t:'T',l:[{$t:'First$unzipPairs'},{$t:'Second$unzipPairs'}]}}],{Return$Callable:$$$mptypes.Second$unzipPairs,Arguments$Callable:{t:'T',l:[{t:'T',l:[$$$mptypes.First$unzipPairs,$$$mptypes.Second$unzipPairs]}]}}),{Result$map:$$$mptypes.Second$unzipPairs})],{t:'T',l:[{t:Iterable,a:{Absent$Iterable:$$$mptypes.Absent$unzipPairs,Element$Iterable:$$$mptypes.First$unzipPairs}},{t:Iterable,a:{Absent$Iterable:$$$mptypes.Absent$unzipPairs,Element$Iterable:$$$mptypes.Second$unzipPairs}}]});};unzipPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:'First$unzipPairs'}}},{$t:{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:[{$t:'First$unzipPairs'},{$t:'Second$unzipPairs'}]}}}}],tp:{First$unzipPairs:{},Second$unzipPairs:{},Absent$unzipPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzipPairs')];},d:['$','unzipPairs']};};
ex$.unzipPairs=unzipPairs;function unzipEntries($111,$$$mptypes){return tpl$([$111.$_map($JsCallable(function($O$) {return $O$.key;},[],{Return$Callable:$$$mptypes.Key$unzipEntries,Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:$$$mptypes.Key$unzipEntries,Item$Entry:$$$mptypes.Item$unzipEntries}}]}}),{Result$map:$$$mptypes.Key$unzipEntries}),$111.$_map($JsCallable(function($O$) {return $O$.item;},[],{Return$Callable:$$$mptypes.Item$unzipEntries,Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:$$$mptypes.Key$unzipEntries,Item$Entry:$$$mptypes.Item$unzipEntries}}]}}),{Result$map:$$$mptypes.Item$unzipEntries})],{t:'T',l:[{t:Iterable,a:{Absent$Iterable:$$$mptypes.Absent$unzipEntries,Element$Iterable:$$$mptypes.Key$unzipEntries}},{t:Iterable,a:{Absent$Iterable:$$$mptypes.Absent$unzipEntries,Element$Iterable:$$$mptypes.Item$unzipEntries}}]});};unzipEntries.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:'Key$unzipEntries'}}},{$t:{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')];},d:['$','unzipEntries']};};
ex$.unzipEntries=unzipEntries;function print($112){return getProcess().writeLine(stringify($112));};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()(lmp$(ex$,'$'),getProcess().writeLine)].rt$({t:FunctionDeclaration$meta$declaration})),by(["Gavin"].rt$({t:$_String}))];},d:['$','print']};};
ex$.print=print;function printAll($113,$114){if($114===undefined){$114=", ";}
var $115;if(nn$(($115=$113.first))){getProcess().write(stringify($115));var $117;for(var $116=$113.rest.iterator();($117=$116.next())!==getFinished();){getProcess().write($114);getProcess().write(stringify($117));}}getProcess().write(getOperatingSystem().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},an:function(){return[doc$($CCMM$,'$:printAll:$at:separator$hmivhz')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:printAll'),by(["Gavin"].rt$({t:$_String})),see([$init$OpenFunction()(lmp$(ex$,'$'),getProcess().write)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','printAll']};};function stringify($118){return ($119=($11a=$118,nn$($11a)?$11a.string:null),nn$($119)?$119:"<null>");};stringify.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'val',mt:'prm',$t:{t:Anything}}],d:['$','stringify']};};var $119,$11a;function getNothing(){asrt$((false),"nothing may not be evaluated: \'false\' at nothing.ceylon (11:11-11:17)",'10:4-11:18','nothing.ceylon');
}
getNothing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Nothing},pa:1,an:function(){return[doc$($CCMM$,'$:nothing'),$_throws("AssertionError","when evaluated")];},d:['$','nothing']};}
ex$.getNothing=getNothing;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")];},d:['$','nothing']};}};ex$.$prop$getNothing=$prop$getNothing;$prop$getNothing.get=getNothing;getNothing.$crtmm$=$prop$getNothing.$crtmm$;
function identical($11b,$11c){return ($11b===$11c);};identical.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:{t:Identifiable},an:function(){return[doc$($CCMM$,'$:identical:$at:x$9u7rir')];}},{nm:'y',mt:'prm',$t:{t:Identifiable},an:function(){return[doc$($CCMM$,'$:identical:$at:y$9u7qgq')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:identical'),see([$init$OpenFunction()(lmp$(ex$,'$'),identityHash)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','identical']};};
ex$.identical=identical;function compose($11d,$11e,$$$mptypes){return flatten($JsCallable((function($11f){return $11d(unflatten($11e,{Return$unflatten:$$$mptypes.Y$compose,Args$unflatten:$$$mptypes.Args$compose})($11f));}),[{nm:'args',mt:'prm',$t:'Args$compose'}],{Return$Callable:$$$mptypes.X$compose,Arguments$Callable:{t:'T',l:[$$$mptypes.Args$compose]}}),{Args$flatten:$$$mptypes.Args$compose,Return$flatten:$$$mptypes.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:[{$t:'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()(lmp$(ex$,'$'),curry),$init$OpenFunction()(lmp$(ex$,'$'),uncurry)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','compose']};};
ex$.compose=compose;function shuffle($11g,$$$mptypes){return flatten($JsCallable((function($11h){return flatten($JsCallable((function($11i){return unflatten($JsCallable(unflatten($11g,{Return$unflatten:{t:Callable,a:{Return$Callable:$$$mptypes.Result$shuffle,Arguments$Callable:$$$mptypes.SecondArgs$shuffle}},Args$unflatten:$$$mptypes.FirstArgs$shuffle})($11i),[],{Return$Callable:$$$mptypes.Result$shuffle,Arguments$Callable:$$$mptypes.SecondArgs$shuffle}),{Return$unflatten:$$$mptypes.Result$shuffle,Args$unflatten:$$$mptypes.SecondArgs$shuffle})($11h);}),[{nm:'firstArgs',mt:'prm',$t:'FirstArgs$shuffle'}],{Return$Callable:$$$mptypes.Result$shuffle,Arguments$Callable:{t:'T',l:[$$$mptypes.FirstArgs$shuffle]}}),{Args$flatten:$$$mptypes.FirstArgs$shuffle,Return$flatten:$$$mptypes.Result$shuffle});}),[{nm:'secondArgs',mt:'prm',$t:'SecondArgs$shuffle'}],{Return$Callable:{t:Callable,a:{Return$Callable:$$$mptypes.Result$shuffle,Arguments$Callable:$$$mptypes.FirstArgs$shuffle}},Arguments$Callable:{t:'T',l:[$$$mptypes.SecondArgs$shuffle]}}),{Args$flatten:$$$mptypes.SecondArgs$shuffle,Return$flatten:{t:Callable,a:{Return$Callable:$$$mptypes.Result$shuffle,Arguments$Callable:$$$mptypes.FirstArgs$shuffle}}});};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()(lmp$(ex$,'$'),curry)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','shuffle']};};
ex$.shuffle=shuffle;function flatten(tf, $$$mptypes) {
function rf() {
var argc = arguments.length;
var last = argc>0 ? arguments[argc-1] : undefined;
var tlast = typeof(last)==='object';
if (tlast && typeof(last.Args$flatten) === 'object' && (last.Args$flatten.t==='T'||typeof(last.Args$flatten.t) === 'function')) {
argc--;
} else if (tf.$$targs$$ && tlast) {
var ks=Object.keys(tf.$$targs$$);
var all=true;
for (var i=0;i<ks.length;i++) {
if (last[ks[i]]===undefined)all=false;
}
if (all)argc--;
}
var t = [];
for (var i=0;i<argc;i++) {
t.push(arguments[i]);
}
t=tpl$(t);
return tf(t, t.$$targs$$);
};
rf.$$targs$$={Return$Callable:$$$mptypes.Return$flatten,Arguments$Callable:$$$mptypes.Args$flatten};
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:'Return$flatten'}],tp:{Return$flatten:{},Args$flatten:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:65,an:function(){return[doc$($CCMM$,'$:flatten'),see([$init$OpenFunction()(lmp$(ex$,'$'),unflatten)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','flatten']};};
ex$.flatten=flatten;function unflatten(ff, $$$mptypes) {
if (getrtmm$$(ff) && ff.$crtmm$.ps) {
var ru=function ru(seq,$mptypes) {
if (seq===undefined || seq.size === 0) { return ff(); }
var pmeta = ff.$crtmm$.ps;
var _lim=Math.max(pmeta.length,seq.size);
var a = [];
for (var i = 0; i < _lim; i++) {
if (pmeta[i]&&pmeta[i]['seq']) {
a.push(seq.skip(i).sequence());
break;//we're done
} else if (seq.size > i) {
a.push(seq.$_get(i));
}
}
if ($mptypes && ff.$crtmm$.tp)a.push($mptypes);
return ff.apply(ru, a);
}
} else {
var ru=function ru(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.$$targs$$={Return$Callable:$$$mptypes.Return$unflatten,Arguments$Callable:{t:'T',l:[$$$mptypes.Args$unflatten]}};
return ru;
}
unflatten.$crtmm$=function(){return{mod:$CCMM$,$t:'Return$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:65,an:function(){return[doc$($CCMM$,'$:unflatten'),see([$init$OpenFunction()(lmp$(ex$,'$'),flatten)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','unflatten']};};
ex$.unflatten=unflatten;function plus($11j,$11k,$$$mptypes){return $11j.plus($11k);};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()(lmp$(ex$,'$'),times),$init$OpenFunction()(lmp$(ex$,'$'),sum)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','plus']};};
ex$.plus=plus;function times($11l,$11m,$$$mptypes){return $11l.times($11m);};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()(lmp$(ex$,'$'),plus),$init$OpenFunction()(lmp$(ex$,'$'),product)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','times']};};
ex$.times=times;function $_sort($11n,$$$mptypes){var $11o=$_Array($11n,{Element$Array:$$$mptypes.Element$sort});if($11o.empty){return getEmpty();}else {$11o.sortInPlace(byIncreasing(function(){var $11p=[].slice.call(arguments,0);$11p.push({Value$identity:$$$mptypes.Element$sort});return identity.apply(0,$11p);},{Value$byIncreasing:$$$mptypes.Element$sort,Element$byIncreasing:$$$mptypes.Element$sort}));return ArraySequence($11o,{Element$ArraySequence:$$$mptypes.Element$sort});}}
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()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].rt$({t:'u',l:[{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}))];},d:['$','sort']};};function and($11q,$11r,$$$mptypes){var $11s=function($11t){return ($11q($11t)&&$11r($11t));};$11s.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:'Value$and'}],$t:{t:$_Boolean}};};return JsCallable(0,$11s);};and.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{$t:'Value$and'}]}}},an:function(){return[doc$($CCMM$,'$:and:$at:p$amm5lj')];}},{nm:'q',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{$t:'Value$and'}]}}},an:function(){return[doc$($CCMM$,'$:and:$at:q$amm6nk')];}}],tp:{Value$and:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:and')];},d:['$','and']};};
ex$.and=and;function or($11u,$11v,$$$mptypes){var $11w=function($11x){return ($11u($11x)||$11v($11x));};$11w.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:'Value$or'}],$t:{t:$_Boolean}};};return JsCallable(0,$11w);};or.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{$t:'Value$or'}]}}},an:function(){return[doc$($CCMM$,'$:or:$at:p$6254qr')];}},{nm:'q',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{$t:'Value$or'}]}}},an:function(){return[doc$($CCMM$,'$:or:$at:q$6255ss')];}}],tp:{Value$or:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:or')];},d:['$','or']};};
ex$.or=or;function not($11y,$$$mptypes){var $11z=function($120){return !$11y($120);};$11z.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:'Value$not'}],$t:{t:$_Boolean}};};return JsCallable(0,$11z);};not.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{$t:'Value$not'}]}}},an:function(){return[doc$($CCMM$,'$:not:$at:p$kpag8j')];}}],tp:{Value$not:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:not')];},d:['$','not']};};
ex$.not=not;function arrayOfSize($121,$122,$$$mptypes){asrt$((($123=$121,$123.compare((0))!==getSmaller()&&$123.compare(getRuntime().maxArraySize)===getSmaller())),"Assertion failed: \'0<=size<runtime.maxArraySize\' at arrayOfSize.ceylon (15:11-15:40)",'15:4-15:41','arrayOfSize.ceylon');
return ($124=for$(function(){var $125=measure((0),$121,{Element$measure:{t:Integer}}).iterator(),$126=getFinished();var n$126=function(){return $126=$125.next();}
n$126();return function(){if($126!==getFinished()){var $127=$126;var $128=$122;n$126();return $128;}
return getFinished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$$$mptypes.Element$arrayOfSize}),$_Array($124,{Element$Array:$$$mptypes.Element$arrayOfSize}));var $124;}
ex$.arrayOfSize=arrayOfSize;arrayOfSize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$arrayOfSize'}},ps:[{nm:'size',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:arrayOfSize:$at:size$xj6s5y')];}},{nm:'element',mt:'prm',$t:'Element$arrayOfSize',an:function(){return[doc$($CCMM$,'$:arrayOfSize:$at:element$r2y625')];}}],tp:{Element$arrayOfSize:{}},pa:65,an:function(){return[doc$($CCMM$,'$:arrayOfSize'),$_throws($init$OpenClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `size<0` or `size>runtime.maxArraySize`"),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),getRuntime().$prop$getMaxArraySize)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','arrayOfSize']};};
//#metamodel
function Annotated(annotated$){}
Annotated.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Annotated'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].rt$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','Annotated']};};
ex$.Annotated=Annotated;function $init$Annotated(){if(Annotated.$$===undefined){initTypeProtoI(Annotated,'ceylon.language::Annotated');
}
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}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Annotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),OptionalAnnotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),SequencedAnnotation),$init$OpenFunction()(lmp$(ex$,'ceylon.language.meta'),annotations$meta),$init$OpenFunction()(lmp$(ex$,'ceylon.language.meta'),optionalAnnotation$meta),$init$OpenFunction()(lmp$(ex$,'ceylon.language.meta'),sequencedAnnotations$meta)].rt$({t:'u',l:[{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 ConstrainedAnnotation($$targs$$,constrainedAnnotation$){Annotation(constrainedAnnotation$);set_type_args(constrainedAnnotation$,$$targs$$,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}}},sts:[{t:Annotation}],of:['Value$ConstrainedAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:ConstrainedAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].rt$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','ConstrainedAnnotation']};};
ex$.ConstrainedAnnotation=ConstrainedAnnotation;function $init$ConstrainedAnnotation(){if(ConstrainedAnnotation.$$===undefined){initTypeProtoI(ConstrainedAnnotation,'ceylon.language::ConstrainedAnnotation',$init$Annotation());
(function(constrainedAnnotation$){constrainedAnnotation$.occurs=function($129){var constrainedAnnotation$=this;return is$($129,constrainedAnnotation$.$$targs$$.ProgramElement$ConstrainedAnnotation);};constrainedAnnotation$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'programElement',mt:'prm',$t:{t:Annotated}}],$cont:ConstrainedAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:ConstrainedAnnotation:$m:occurs')];},d:['$','ConstrainedAnnotation','$m','occurs']};};})(ConstrainedAnnotation.$$.prototype);}
return ConstrainedAnnotation;}
ex$.$init$ConstrainedAnnotation=$init$ConstrainedAnnotation;$init$ConstrainedAnnotation();function OptionalAnnotation($$targs$$,optionalAnnotation$){ConstrainedAnnotation({Values$ConstrainedAnnotation:{t:'u',l:[{t:Null},$$targs$$.Value$OptionalAnnotation]},ProgramElement$ConstrainedAnnotation:$$targs$$.ProgramElement$OptionalAnnotation,Value$ConstrainedAnnotation:$$targs$$.Value$OptionalAnnotation},optionalAnnotation$);set_type_args(optionalAnnotation$,$$targs$$,OptionalAnnotation);}
OptionalAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$OptionalAnnotation:{dv:'out',sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:'Value$OptionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$OptionalAnnotation'}}]},ProgramElement$OptionalAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Annotated}}},sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:'u',l:[{t:Null},'Value$OptionalAnnotation']},ProgramElement$ConstrainedAnnotation:'ProgramElement$OptionalAnnotation',Value$ConstrainedAnnotation:'Value$OptionalAnnotation'}}],of:['Value$OptionalAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:OptionalAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].rt$({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 SequencedAnnotation($$targs$$,sequencedAnnotation$){ConstrainedAnnotation({Values$ConstrainedAnnotation:{t:Sequential,a:{Element$Sequential:$$targs$$.Value$SequencedAnnotation}},ProgramElement$ConstrainedAnnotation:$$targs$$.ProgramElement$SequencedAnnotation,Value$ConstrainedAnnotation:$$targs$$.Value$SequencedAnnotation},sequencedAnnotation$);set_type_args(sequencedAnnotation$,$$targs$$,SequencedAnnotation);}
SequencedAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$SequencedAnnotation:{dv:'out',sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$SequencedAnnotation',ProgramElement$SequencedAnnotation:'ProgramElement$SequencedAnnotation'}}]},ProgramElement$SequencedAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Annotated}}},sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:Sequential,a:{Element$Sequential:'Value$SequencedAnnotation'}},ProgramElement$ConstrainedAnnotation:'ProgramElement$SequencedAnnotation',Value$ConstrainedAnnotation:'Value$SequencedAnnotation'}}],of:['Value$SequencedAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:SequencedAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].rt$({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();
/*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.length==0?getEmpty():ArraySequence(r.rt$(targ),{Element$ArraySequence: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'}},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'}}]},Values$annotations:{},ProgramElement$annotations:{dv:'in',sts:[{t:Annotated}]}},pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:annotations')];},d:['ceylon.language.meta','annotations']};};
ex$.annotations$meta=annotations$meta;function type$meta(x,$$targs$$) {
if (x===null){
return AppliedClass(getNull(),{Type$Class:{t:Null},Arguments$Class:{t:Empty}});
}
if ($$targs$$.Type$type.t===Nothing) {
return getNothingType$meta$model();
}
if (x===true||x===false) {
var cls=x?$_true:$_false;
return AppliedClass(cls,{Type$Class:{t:cls},Arguments$Class:{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);
if (mm.$t) { //it's a value
if (typeof(x)==='function') { //It's a callable
if (mm.$cont) {
return AppliedMethod(x,undefined,{Type$Method:mm.$t,Arguments$Method:{t:Nothing}});
}
return AppliedFunction(x,{Type$Function:mm.$t,Arguments$Function:{t:Nothing}});
}
var rv=mm.$cont?AppliedMemberClass(mm.$t.t, {Type$MemberClass:mm.$t,Arguments$MemberClass:{t:Nothing},Container$MemberClass:{t:mm.$cont}})
: AppliedClass(mm.$t.t, {Type$Class:mm.$t,Arguments$Class:{t:Nothing}});
rv.src$=x;
return rv;
}
var c;
if ($$targs$$.Type$type.t==='T') {
var rt=retpl$($$targs$$.Type$type);
c=AppliedClass(Tuple,{Type$Class:$$targs$$.Type$type, Arguments$Class:{t:'T',l:[$$targs$$.Type$type.l[0],rt.Rest$Tuple]}});
} else {
var _ta={T:{t:x.getT$all()[x.getT$name()]}, A:{t:Sequential,a:{Element$Iterable:{t:Anything}}}};
if (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$$;
}
if (mm.$cont) {
c=AppliedMemberClass(_t, {Type$MemberClass:_ta.T,Arguments$MemberClass:_ta.A,Container$MemberClass:_ta.C});
} else {
c=AppliedClass(_t, {Type$Class:_ta.T,Arguments$Class:_ta.A});
}
}
if ($$targs$$.Type$type.a)c.$targs=$$targs$$.Type$type.a;
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:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:type')];},d:['ceylon.language.meta','type']};};
ex$.type$meta=type$meta;function typeLiteral$meta($$targs$$) {
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 = getModules$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($$targs$$.Type$typeLiteral) : applyIntersectionType($$targs$$.Type$typeLiteral);
} else if (t === 'T') {
//TODO arguments
var _tt=retpl$($$targs$$.Type$typeLiteral);
return AppliedClass(Tuple,{Type$Class:$$targs$$.Type$typeLiteral,Arguments$Class:{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 r=AppliedClass(t,{Type$Class:$$targs$$.Type$typeLiteral,Arguments$Class:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
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(t,{Type$Function:$$targs$$.Type$typeLiteral,Arguments$Function:{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 = getModules$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(_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:{Type$Type:'Type$typeLiteral'}},ps:[],tp:{Type$typeLiteral:{dv:'out',sts:[{t:Anything}]}},pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:typeLiteral')];},d:['ceylon.language.meta','typeLiteral']};};
ex$.typeLiteral$meta=typeLiteral$meta;function optionalAnnotation$meta($12a,$12b,$$$mptypes){return annotations$meta($12a,$12b,{ProgramElement$annotations:$$$mptypes.ProgramElement$optionalAnnotation,Values$annotations:{t:'u',l:[{t:Null},$$$mptypes.Value$optionalAnnotation]},Value$annotations:$$$mptypes.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:{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:{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']};};function sequencedAnnotations$meta($12c,$12d,$$$mptypes){return annotations$meta($12c,$12d,{ProgramElement$annotations:$$$mptypes.ProgramElement$sequencedAnnotations,Values$annotations:{t:Sequential,a:{Element$Sequential:$$$mptypes.Value$sequencedAnnotations}},Value$annotations:$$$mptypes.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',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',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']};};/* Metamodel module and package objects */
var $loadedModules$={};
ex$.$loadedModules$=$loadedModules$;
function $addmod$(mod, modname) {
$loadedModules$[modname] = mod;
}
ex$.$addmod$=$addmod$;
function $12e$meta(){var modules$=new $12e$meta.$$;modules$.$prop$getList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Module$meta$declaration}}},$cont:$12e$meta,pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:list')];},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:$12e$meta,pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:default')];},d:['ceylon.language.meta','modules','$at','default']};}};return modules$;
};$12e$meta.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules')];},d:['ceylon.language.meta','modules']};};function $init$getModules$meta(){if($12e$meta.$$===undefined){initTypeProto($12e$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.length===0?getEmpty():ArraySequence(mods,{Element$ArraySequence:{t:Module$meta$declaration}});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Module$meta$declaration}}},$cont:$12e$meta,pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:list')];},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:$12e$meta,pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$m:find')];},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:$12e$meta,pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:default')];},d:['ceylon.language.meta','modules','$at','default']};});})($12e$meta.$$.prototype);}
return $12e$meta;}
ex$.$init$getModules$meta=$init$getModules$meta;$init$getModules$meta();var $12f$meta;function getModules$meta(){if($12f$meta===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'modules\' before it was set"),'3:0-37:0','modules.ceylon');if($12f$meta===undefined){$12f$meta=INIT$;$12f$meta=$init$getModules$meta()();$12f$meta.$crtmm$=getModules$meta.$crtmm$;}
return $12f$meta;}
ex$.getModules$meta=getModules$meta;getModules$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$12e$meta},pa:65,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules')];},d:['ceylon.language.meta','modules']};};$prop$getModules$meta={get:getModules$meta,$crtmm$:getModules$meta.$crtmm$};getModules$meta=getModules$meta;$prop$getModules$meta=getModules$meta;ex$.$prop$getModules$meta=$prop$getModules$meta;
function ValueModel$meta$model($$targs$$,valueModel$){Model$meta$model(valueModel$);set_type_args(valueModel$,$$targs$$,ValueModel$meta$model);}
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:ValueDeclaration$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:{Type$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 ClassOrInterface$meta$model($$targs$$,classOrInterface$){Model$meta$model(classOrInterface$);Generic$meta$model(classOrInterface$);Type$meta$model({Type$Type:$$targs$$.Type$ClassOrInterface},classOrInterface$);set_type_args(classOrInterface$,$$targs$$,ClassOrInterface$meta$model);}
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:{Type$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:{Type$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 `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','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:{Type$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("Gets a member class or interface by name. Returns `null` if not found."),$_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:{Type$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("Gets a member class by name. Returns `null` if not found."),$_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','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:{Type$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("Gets a member class by name. Returns `null` if not found."),$_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:{Type$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:5,an:function(){return[doc("Gets a member interface by name. Returns `null` if not found."),$_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','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:{Type$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:5,an:function(){return[doc("Gets a member interface by name. Returns `null` if not found."),$_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:{Type$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("Gets a method by name. Returns `null` if not found."),$_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','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:{Type$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("Gets a method by name. Returns `null` if not found."),$_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("Gets an attribute by name. Returns `null` if not found."),$_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','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("Gets an attribute by name. Returns `null` if not found."),$_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:{Type$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:{Type$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:{Type$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:{Type$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:{Type$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:{Type$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:{Type$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:{Type$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();atr$(ClassOrInterface$meta$model.$$.prototype,'satisfiedTypes',function(){return coisattype$(this);},undefined,function(){
return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Iterable:{t:InterfaceModel$meta$model,a:{Type:{t:Anything}}}}},$cont:ClassOrInterface$meta$model,
an:function(){return[shared(),formal()];},d:['ceylon.language.meta.model','ClassOrInterface','$at','satisfiedTypes']};
});
ClassOrInterface$meta$model.$$.prototype.getMethod=function(name,types,$$$mptypes) {return coimtd$(this,name,types,$$$mptypes);};
ClassOrInterface$meta$model.$$.prototype.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Method$meta$model,a:{Arguments:'Arguments',Type:'Type',Container:'Container'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Iterable:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{},Arguments:{sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getMethod']};};
ClassOrInterface$meta$model.$$.prototype.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);
}
ClassOrInterface$meta$model.$$.prototype.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Method$meta$model,a:{Arguments:'Arguments',Type:'Type',Container:'Container'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Iterable:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{},Arguments:{sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredMethod']};};
ClassOrInterface$meta$model.$$.prototype.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
;
ClassOrInterface$meta$model.$$.prototype.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Attribute$meta$model,a:{Get:'Get',Set:'Set',Container:'Container'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getAttribute']};};
ClassOrInterface$meta$model.$$.prototype.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);
};ClassOrInterface$meta$model.$$.prototype.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Attribute$meta$model,a:{Get:'Get',Set:'Set',Container:'Container'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredAttribute']};};
ClassOrInterface$meta$model.$$.prototype.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);};
ClassOrInterface$meta$model.$$.prototype.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Member$meta$model,a:{Type$Member:'Container$ClassOrInterface',Kind$Member:'Kind$ClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Iterable:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container$ClassOrInterface:{},Kind$ClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClassOrInterface']};};
ClassOrInterface$meta$model.$$.prototype.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);
};ClassOrInterface$meta$model.$$.prototype.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Member$meta$model,a:{Type$Member:'Container',Kind$Member:'Kind'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Iterable:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container:{},Kind:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClassOrInterface']};};
ClassOrInterface$meta$model.$$.prototype.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);};
ClassOrInterface$meta$model.$$.prototype.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model},ps:[],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{},Arguments:{sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}]}},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClass']};};
ClassOrInterface$meta$model.$$.prototype.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);};
ClassOrInterface$meta$model.$$.prototype.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model},ps:[],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{},Arguments:{sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}]}},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClass']};};
ClassOrInterface$meta$model.$$.prototype.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);};
ClassOrInterface$meta$model.$$.prototype.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberInterface$meta$model},ps:[],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{},Arguments:{sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}]}},d:['ceylon.language.meta.model','ClassOrInterface','$m','getInterface']};};
ClassOrInterface$meta$model.$$.prototype.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
};ClassOrInterface$meta$model.$$.prototype.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberInterface$meta$model},ps:[],$cont:ClassOrInterface$meta$model,tp:{Container:{},Type:{},Arguments:{sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}]}},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredInterface']};};
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(type$9){
return extendsType({t:type$9.tipo}, {t:this.tipo});
};
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']};};
atr$(ClassOrInterface$meta$model.$$.prototype,'typeArguments',function(){
return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key:{t:TypeParameter$meta$declaration},Item:{t:Type$meta$model,a:{Type:{t:Anything}}}}},$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Generic','$at','typeArguments']};});
atr$(ClassOrInterface$meta$model.$$.prototype,'extendedType',function(){return coiexttype$(this);},undefined,function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments:{t:Nothing},Type:{t:Anything}}}]},$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Class','$at','extendedType']};});
atr$(ClassOrInterface$meta$model.$$.prototype,'caseValues',function(){return coicase$(this);},
undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$ClassOrInterface'}},$cont:ClassOrInterface$meta$model,an:function(){return[doc$('ceylon.language.meta.model:ClassOrInterface:$at:caseValues'),shared(),formal()];},d:['ceylon.language.meta.model','ClassOrInterface','$at','caseValues']};});
ClassOrInterface$meta$model.$$.prototype.getClasses=function(a,b){return coiclasse$(this,a,b);}
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$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}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClasses']};};
ClassOrInterface$meta$model.$$.prototype.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$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}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClasses']};};
ClassOrInterface$meta$model.$$.prototype.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container$getInterfaces:{'def':{t:Nothing}},Type$getInterfaces:{'def':{t:Anything}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getInterfaces']};};
ClassOrInterface$meta$model.$$.prototype.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredInterfaces:{'def':{t:Nothing}},Type$getDeclaredInterfaces:{'def':{t:Anything}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredInterfaces']};};
ClassOrInterface$meta$model.$$.prototype.getAttributes=function(a,m){return coigetatr$(this,a,m);};
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container$getAttributes:{'def':{t:Nothing}},Get$getAttributes:{'def':{t:Anything}},Set$getAttributes:{'def':{t:Nothing}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getAttributes']};};
ClassOrInterface$meta$model.$$.prototype.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredAttributes:{'def':{t:Nothing}},Get$getDeclaredAttributes:{'def':{t:Anything}},Set$getDeclaredAttributes:{'def':{t:Nothing}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredAttributes']};};
ClassOrInterface$meta$model.$$.prototype.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);};
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$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}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getMethods']};};
ClassOrInterface$meta$model.$$.prototype.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
ClassOrInterface$meta$model.$$.prototype.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:{Type$Type:{t:Annotation}}}}},an:function(){return[];}}],$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}}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredMethods']};};
function coi$get$anns(anntypes) {
var ats=[];
if (!anntypes)return ats;
var iter=anntypes.iterator();
var a;while((a=iter.next())!==getFinished()){
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 ClassModel$meta$model($$targs$$,classModel$){ClassOrInterface$meta$model({Type$ClassOrInterface:$$targs$$.Type$ClassModel},classModel$);set_type_args(classModel$,$$targs$$,ClassModel$meta$model);}
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,d:['ceylon.language.meta.model','ClassModel','$at','declaration']};}};classModel$.$prop$getParameterTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}},$cont:ClassModel$meta$model,pa:5,an:function(){return[doc("This function\'s parameter closed types")];},d:['ceylon.language.meta.model','ClassModel','$at','parameterTypes']};}};})(ClassModel$meta$model.$$.prototype);}
return ClassModel$meta$model;}
ex$.$init$ClassModel$meta$model=$init$ClassModel$meta$model;$init$ClassModel$meta$model();function Class$meta$model($$targs$$,class$){ClassModel$meta$model({Arguments$ClassModel:$$targs$$.Arguments$Class,Type$ClassModel:$$targs$$.Type$Class},class$);Callable({Return$Callable:$$targs$$.Type$Class,Arguments$Callable:$$targs$$.Arguments$Class},class$);Applicable$meta$model({Type$Applicable:$$targs$$.Type$Class},class$);set_type_args(class$,$$targs$$,Class$meta$model);}
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:Callable,a:{Return$Callable:'Type$Class',Arguments$Callable:'Arguments$Class'}},{t:Applicable$meta$model,a:{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$Callable(),$init$Applicable$meta$model());
}
return Class$meta$model;}
ex$.$init$Class$meta$model=$init$Class$meta$model;$init$Class$meta$model();function FunctionModel$meta$model($$targs$$,functionModel$){Model$meta$model(functionModel$);Generic$meta$model(functionModel$);set_type_args(functionModel$,$$targs$$,FunctionModel$meta$model);}
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}],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());
(function(functionModel$){functionModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$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:{Type$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$.$prop$getParameterTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}},$cont:FunctionModel$meta$model,pa:5,an:function(){return[doc("This function\'s parameter closed types")];},d:['ceylon.language.meta.model','FunctionModel','$at','parameterTypes']};}};})(FunctionModel$meta$model.$$.prototype);}
return FunctionModel$meta$model;}
ex$.$init$FunctionModel$meta$model=$init$FunctionModel$meta$model;$init$FunctionModel$meta$model();function $_Function$meta$model($$targs$$,function$){FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$Function,Type$FunctionModel:$$targs$$.Type$Function},function$);Callable({Return$Callable:$$targs$$.Type$Function,Arguments$Callable:$$targs$$.Arguments$Function},function$);Applicable$meta$model({Type$Applicable:$$targs$$.Type$Function},function$);set_type_args(function$,$$targs$$,$_Function$meta$model);}
$_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:Callable,a:{Return$Callable:'Type$Function',Arguments$Callable:'Arguments$Function'}},{t:Applicable$meta$model,a:{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$Callable(),$init$Applicable$meta$model());
}
return $_Function$meta$model;}
ex$.$init$$_Function$meta$model=$init$$_Function$meta$model;$init$$_Function$meta$model();function Method$meta$model($$targs$$,method$){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$);set_type_args(method$,$$targs$$,Method$meta$model);}
Method$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Method:{dv:'in'},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$.$_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 InterfaceModel$meta$model($$targs$$,interfaceModel$){ClassOrInterface$meta$model({Type$ClassOrInterface:$$targs$$.Type$InterfaceModel},interfaceModel$);set_type_args(interfaceModel$,$$targs$$,InterfaceModel$meta$model);}
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,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 Interface$meta$model($$targs$$,interface$){InterfaceModel$meta$model({Type$InterfaceModel:$$targs$$.Type$Interface},interface$);set_type_args(interface$,$$targs$$,Interface$meta$model);}
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 IntersectionType$meta$model($$targs$$,intersectionType$){Type$meta$model({Type$Type:$$targs$$.Intersection$IntersectionType},intersectionType$);set_type_args(intersectionType$,$$targs$$,IntersectionType$meta$model);}
IntersectionType$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Intersection$IntersectionType:{dv:'out',def:{t:Anything}}},sts:[{t:Type$meta$model,a:{Type$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:{Type$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 Member$meta$model($$targs$$,member$){Callable({Return$Callable:$$targs$$.Kind$Member,Arguments$Callable:{t:'T',l:[$$targs$$.Container$Member]}},member$);set_type_args(member$,$$targs$$,Member$meta$model);}
Member$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Member:{dv:'in'},Kind$Member:{dv:'out',sts:[{t:Model$meta$model}]}},sts:[{t:Callable,a:{Return$Callable:'Kind$Member',Arguments$Callable:{t:'T',l:[{$t:'Container$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$Callable());
(function(member$){member$.$prop$getDeclaringType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Type$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$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Model$meta$model},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Member$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Member:$m:bind'),$_throws("IncompatibleTypeException","If the container is not assignable to this member\'s container")];},d:['ceylon.language.meta.model','Member','$m','bind']};}};})(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,'declaringType',function(){
var $$member=this;
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)(getModules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), $$member.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:Member$meta$model,a:{Type:{t:Anything}}},$cont:Member$meta$model,an:function(){return[shared(),formal()];},d:['ceylon.language.meta.model','Member','$at','declaringType']};});
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 MemberClass$meta$model($$targs$$,memberClass$){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$);set_type_args(memberClass$,$$targs$$,MemberClass$meta$model);}
MemberClass$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClass:{dv:'in'},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$meta$model.$$.prototype);}
return MemberClass$meta$model;}
ex$.$init$MemberClass$meta$model=$init$MemberClass$meta$model;$init$MemberClass$meta$model();function MemberInterface$meta$model($$targs$$,memberInterface$){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$);set_type_args(memberInterface$,$$targs$$,MemberInterface$meta$model);}
MemberInterface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberInterface:{dv:'in'},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 Attribute$meta$model($$targs$$,attribute$){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$);set_type_args(attribute$,$$targs$$,Attribute$meta$model);}
Attribute$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Attribute:{dv:'in'},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$.$_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,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 Model$meta$model(model$){}
Model$meta$model.$crtmm$=function(){return{mod:$CCMM$,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');
(function(model$){model$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Type$Type:{t:Anything}}}]},$cont:Model$meta$model,pa:5,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:5,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 Type$meta$model($$targs$$,type$){set_type_args(type$,$$targs$$,Type$meta$model);}
Type$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$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:{Type$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($12g){var type$=this;return $12g.supertypeOf(type$);};type$.subtypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type$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:{Type$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$meta$model.$$.prototype);}
return Type$meta$model;}
ex$.$init$Type$meta$model=$init$Type$meta$model;$init$Type$meta$model();function UnionType$meta$model($$targs$$,unionType$){Type$meta$model({Type$Type:$$targs$$.Union$UnionType},unionType$);set_type_args(unionType$,$$targs$$,UnionType$meta$model);}
UnionType$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Union$UnionType:{dv:'out',def:{t:Anything}}},sts:[{t:Type$meta$model,a:{Type$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:{Type$Type:'Union$UnionType'}}}},$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$){ValueModel$meta$model({Get$ValueModel:$$targs$$.Get$Value,Set$ValueModel:$$targs$$.Set$Value},value$);set_type_args(value$,$$targs$$,Value$meta$model);}
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'}}],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());
(function(value$){value$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Get$Value',ps:[],$cont:Value$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Value:$m:get')];},d:['ceylon.language.meta.model','Value','$m','get']};}};value$.set={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:'Set$Value'}],$cont:Value$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Value:$m:set')];},d:['ceylon.language.meta.model','Value','$m','set']};}};value$.setIfAssignable={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:Value$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Value:$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")];},d:['ceylon.language.meta.model','Value','$m','setIfAssignable']};}};})(Value$meta$model.$$.prototype);}
return Value$meta$model;}
ex$.$init$Value$meta$model=$init$Value$meta$model;$init$Value$meta$model();function $12h$meta$model($$targs$$){var nothingType$=new $12h$meta$model.$$;nothingType$.$$targs$$=$$targs$$;Type$meta$model({Type$Type:{t:Nothing}},nothingType$);return nothingType$;
};$12h$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Type$meta$model,a:{Type$Type:{t:Nothing}}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:nothingType')];},d:['ceylon.language.meta.model','nothingType']};};function $init$getNothingType$meta$model(){if($12h$meta$model.$$===undefined){initTypeProto($12h$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:$12h$meta$model,pa:3,d:['ceylon.language.meta.model','nothingType','$at','string']};});nothingType$.typeOf=function($12i){return false;};nothingType$.exactly=function($12j){var nothingType$=this;return $12j.equals(getNothingType$meta$model());};nothingType$.supertypeOf=function($12k){var nothingType$=this;return nothingType$.exactly($12k);};nothingType$.subtypeOf=function($12l){return true;};})($12h$meta$model.$$.prototype);}
return $12h$meta$model;}
ex$.$init$getNothingType$meta$model=$init$getNothingType$meta$model;$init$getNothingType$meta$model();var $12m$meta$model;function getNothingType$meta$model(){if($12m$meta$model===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nothingType\' before it was set"),'1:0-14:0','nothingType.ceylon');if($12m$meta$model===undefined){$12m$meta$model=INIT$;$12m$meta$model=$init$getNothingType$meta$model()({Type$Type:{t:Nothing}});$12m$meta$model.$crtmm$=getNothingType$meta$model.$crtmm$;}
return $12m$meta$model;}
ex$.getNothingType$meta$model=getNothingType$meta$model;getNothingType$meta$model.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$12h$meta$model},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:nothingType')];},d:['ceylon.language.meta.model','nothingType']};};$prop$getNothingType$meta$model={get:getNothingType$meta$model,$crtmm$:getNothingType$meta$model.$crtmm$};getNothingType$meta$model=getNothingType$meta$model;$prop$getNothingType$meta$model=getNothingType$meta$model;ex$.$prop$getNothingType$meta$model=$prop$getNothingType$meta$model;function TypeApplicationException$meta$model($12n,typeApplicationException$){$init$TypeApplicationException$meta$model();if(typeApplicationException$===undefined)typeApplicationException$=new TypeApplicationException$meta$model.$$;
typeApplicationException$.$12n_=$12n;Exception(typeApplicationException$.$12n,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$,'$12n',function(){return this.$12n_;},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 InvocationException$meta$model($12o,invocationException$){$init$InvocationException$meta$model();if(invocationException$===undefined)invocationException$=new InvocationException$meta$model.$$;
invocationException$.$12o_=$12o;Exception(invocationException$.$12o,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$,'$12o',function(){return this.$12o_;},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 MutationException$meta$model($12p,mutationException$){$init$MutationException$meta$model();if(mutationException$===undefined)mutationException$=new MutationException$meta$model.$$;
mutationException$.$12p_=$12p;Exception(mutationException$.$12p,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$,'$12p',function(){return this.$12p_;},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 IncompatibleTypeException$meta$model($12q,incompatibleTypeException$){$init$IncompatibleTypeException$meta$model();if(incompatibleTypeException$===undefined)incompatibleTypeException$=new IncompatibleTypeException$meta$model.$$;
incompatibleTypeException$.$12q_=$12q;Exception(incompatibleTypeException$.$12q,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$,'$12q',function(){return this.$12q_;},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 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:{Type$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$meta$model.$$.prototype);}
return Generic$meta$model;}
ex$.$init$Generic$meta$model=$init$Generic$meta$model;$init$Generic$meta$model();function Applicable$meta$model($$targs$$,applicable$){set_type_args(applicable$,$$targs$$,Applicable$meta$model);}
Applicable$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Applicable:{dv:'out',def:{t:Anything}}},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');
(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 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 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();AnnotatedDeclaration$meta$declaration.$$.prototype.annotations=function ($$$mptypes) {
var mdl = getrtmm$$(this.tipo);
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.length == 0 ? getEmpty() : ArraySequence(ans,{Element$ArraySequence:$$$mptypes.Annotation$annotations});
};
AnnotatedDeclaration$meta$declaration.$$.prototype.annotations.$crtmm$=function(){return{mod:$CCMM$,
$t:{t:Sequential,a:{Element$Iterable:'Annotation'}},ps:[],$cont:AnnotatedDeclaration$meta$declaration,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation,a:{Value$Annotation:'Annotation'}}]}},an:[],d:['ceylon.language.meta.declaration','AnnotatedDeclaration','$m','annotations']};};
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: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.length===0?getEmpty():ArraySequence(rv,{Element$ArraySequence:{t:TypeParameter$meta$declaration}});
}
return getEmpty();
}
console.log("TODO GenericDeclaration.typeParameterDeclarations without a type");
return getEmpty();
},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:{Type$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 with 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:{Type$Type:'Container$memberApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$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 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','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$){}
FunctionalDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,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');
(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$meta$declaration.$$.prototype);}
return FunctionalDeclaration$meta$declaration;}
ex$.$init$FunctionalDeclaration$meta$declaration=$init$FunctionalDeclaration$meta$declaration;$init$FunctionalDeclaration$meta$declaration();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();
}
if (extendsType($$$mptypes.Kind$getMemberDeclaration, {t:ValueDeclaration$meta$declaration})) {
var propname='$prop$get'+name$20[0].toUpperCase()+name$20.substring(1);
var _d = raiz[propname];
if (_d){
if (noInherit) {
var mm=getrtmm$$(_d);
if (mm.$cont!==this.tipo)return null;
}
_m=OpenValue$jsint(this.containingPackage, _d);
}
}
if (!_m && extendsType($$$mptypes.Kind$getMemberDeclaration, {t:FunctionDeclaration$meta$declaration})) {
var nom=name$20;
if (['hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'call', 'arguments', 'caller', 'apply', 'bind', 'toFixed', 'valueOf', 'toPrecision', 'toExponential', "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", "toLocaleString", "splice", "map", "forEach", "reverse", "join", "push", "shift", "pop", "sort", "unshift", "reduceRight", "reduce", "every", "filter", "length", "toString", "constructor", "prototype", "concat", "indexOf", "lastIndexOf", "slice", "get"].indexOf(nom)>=0)nom='$_'+nom;
var _d = raiz[nom];
if (_d===undefined) {
for (var $k in raiz) {
var propname='$prop$get'+$k[0].toUpperCase()+$k.substring(1);
if (!$k.startsWith("$prop$get") && raiz[propname]===undefined && typeof(raiz[$k])==='function') {
var lafun=raiz[$k];
var mm=getrtmm$$(lafun);
var mod=mm&&get_model(mm);
if (mod && mod.nm===nom) {
_d=lafun; break;
}
}
var m$ = raiz[propname] ? undefined: raiz[$k];
_d = typeof(m$)==='function' && m$.$$===undefined ? 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) {
var mm=getrtmm$$(_d);
if (mm.$cont!==this.tipo)return null;
}
_m=OpenFunction(this.containingPackage, _d);
}
}
if (!_m && extendsType($$$mptypes.Kind$getMemberDeclaration, {t:ClassOrInterfaceDeclaration$meta$declaration})) {
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($$$mptypes.Kind$getMemberDeclaration,{t:ClassDeclaration$meta$declaration});
var wantsIface=extendsType($$$mptypes.Kind$getMemberDeclaration,{t:InterfaceDeclaration$meta$declaration});
var _$m = getrtmm$$(_d);
var _mdl=get_model(_$m);
if ((wantsClass && _mdl.mt!=='c') || (wantsIface && _mdl.mt!=='i'))return null;
_m=(_mdl.mt==='c'?OpenClass$jsint:OpenInterface$jsint)(this.containingPackage, _d);
}
}
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(){
var that=this;
var parms = that.tipo.$crtmm$.ps;
if (!parms || parms.length === 0)return getEmpty();
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(this,p));
}
}
return rv.length===0?getEmpty():ArraySequence(rv,{Element$ArraySequence:{t:FunctionOrValueDeclaration$meta$declaration},Absent$Iterable:{t:Null}});
},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;
}
for (var mem in _prot) {
if (isProp(mem))continue;
var _d = undefined;
var mm=getrtmm$$(_prot[mem]);
if (mm && inherited && mm.$cont!==this.tipo)continue;
if (mem.substring(0,9)==='$prop$get' && extendsType($$$mptypes.Kind$memberDeclarations,{t:ValueDeclaration$meta$declaration})) {
_d=this.getMemberDeclaration(mm.d[mm.d.length-1],{Kind$getMemberDeclaration:{t:ValueDeclaration$meta$declaration}});
} else if (_prot[mem].$$ && extendsType($$$mptypes.Kind$memberDeclarations,{t:ClassOrInterfaceDeclaration$meta$declaration})) {
var mt=mm.d[mm.d.length-2];
if ((mt==='$c' && !extendsType({t:ClassDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations))
||(mt==='$i' && !extendsType({t:InterfaceDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations)))continue;
_d=this.getMemberDeclaration(mm.d[mm.d.length-1],
{Kind$getMemberDeclaration:{t:ClassOrInterfaceDeclaration$meta$declaration}});
} else if(mm && mm.d) {
var mt=mm.d[mm.d.length-2];
if (mt === '$m' && extendsType({t:FunctionDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations)) {
_d=this.getMemberDeclaration(mm.d[mm.d.length-1],{Kind$getMemberDeclaration:{t:FunctionDeclaration$meta$declaration}});
}
}
if (_d){_d.parent$=this;defs.push(_d);};
}
return defs.length?ArraySequence(defs,{Element$ArraySequence:$$$mptypes.Kind$memberDeclarations}):getEmpty();
}
if (extendsType({t:FunctionDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations)) {
for (var df in this.meta['$m']) {
defs.push(this.meta['$m'][df]);
}
}
if (extendsType({t:ValueDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations)) {
for (var df in this.meta['$at']) {
defs.push(this.meta['$at'][df]);
}
}
if (extendsType({t:InterfaceDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations)) {
for (var df in this.meta['$i']) {
defs.push(this.meta['$i'][df]);
}
}
if (extendsType({t:ClassDeclaration$meta$declaration},$$$mptypes.Kind$memberDeclarations)) {
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}});
} else if (mt==='i') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:InterfaceDeclaration$meta$declaration}});
} else if (mt==='a'||mt==='g'||mt==='o'||mt==='s') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:ValueDeclaration$meta$declaration}});
}
if (_d) {
_d.$parent=this;
r.push(_d);
}
}
return r.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:$$$mptypes.Kind$memberDeclarations});
};
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.length===0?getEmpty():ArraySequence(ct,{Element$ArraySequence:ta});
}
return getEmpty();
},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("Type argument for 'Type' must be a supertype of " + this);
var rv=this.meta.mt==='i'?AppliedInterface$jsint(_t.t, {Type$Interface:$mptypes.Type$apply}):
AppliedClass(_t.t, {Type$Class:$mptypes.Type$apply,Arguments$Class:$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};
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);
var rv=this.meta.mt==='i'?AppliedMemberInterface(_t.t, {Container$MemberInterface:$mptypes.Container$memberApply, Type$MemberInterface:_t})
:AppliedMemberClass(_t.t, {Container$MemberClass:$mptypes.Container$memberApply, Type$MemberClass:_t, Arguments$MemberClass:$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 ArraySequence(rv,{Element$ArraySequence:$$$mptypes.Kind$annotatedMemberDeclarations});
}
return getEmpty();
};
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 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 ValueDeclaration$meta$declaration(valueDeclaration$){FunctionOrValueDeclaration$meta$declaration(valueDeclaration$);}
ValueDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionOrValueDeclaration$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$FunctionOrValueDeclaration$meta$declaration());
(function(valueDeclaration$){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:{Type$Type:'Container$memberApply'}}}],$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:9,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','get']};};valueDeclaration$.memberGet=function($12r){var valueDeclaration$=this;return valueDeclaration$.memberApply(getNothingType$meta$model(),{Set$memberApply:{t:Nothing},Container$memberApply:{t:Nothing},Get$memberApply:{t:Anything}}).$_bind($12r).$_get();};valueDeclaration$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValueDeclaration$meta$declaration,pa:9,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.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberGet']};};valueDeclaration$.set=function($12s){var valueDeclaration$=this;return valueDeclaration$.$_apply({Get$apply:{t:Anything},Set$apply:{t:Nothing}}).setIfAssignable($12s);};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.")];},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 ClassDeclaration$meta$declaration(classDeclaration$){ClassOrInterfaceDeclaration$meta$declaration(classDeclaration$);FunctionalDeclaration$meta$declaration(classDeclaration$);}
ClassDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassOrInterfaceDeclaration$meta$declaration},{t:FunctionalDeclaration$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(),$init$FunctionalDeclaration$meta$declaration());
(function(classDeclaration$){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$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:{Type$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 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','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:{Type$Type:'Container$memberClassApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$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 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','ClassDeclaration','$m','memberClassApply']};}};classDeclaration$.instantiate$defs$typeArguments=function($12t,$12u){return getEmpty();};classDeclaration$.instantiate=function($12t,$12u){var classDeclaration$=this;if($12t===undefined){$12t=classDeclaration$.instantiate$defs$typeArguments($12t,$12u);}
if($12u===undefined){$12u=getEmpty();}
return classDeclaration$.classApply($12t,{Arguments$classApply:{t:Nothing},Type$classApply:{t:Anything}}).$_apply($12u);};classDeclaration$.instantiate.$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:{Type$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 this toplevel class.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','instantiate']};};classDeclaration$.memberInstantiate$defs$typeArguments=function($12v,$12w,$12x){return getEmpty();};classDeclaration$.memberInstantiate=function($12v,$12w,$12x){var classDeclaration$=this;if($12w===undefined){$12w=classDeclaration$.memberInstantiate$defs$typeArguments($12v,$12w,$12x);}
if($12x===undefined){$12x=getEmpty();}
return classDeclaration$.memberClassApply(getNothingType$meta$model(),$12w,{Type$memberClassApply:{t:Anything},Container$memberClassApply:{t:Nothing},Arguments$memberClassApply:{t:Nothing}}).$_bind($12v).$_apply($12x);};classDeclaration$.memberInstantiate.$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:{Type$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 compatible with this method.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','memberInstantiate']};};})(ClassDeclaration$meta$declaration.$$.prototype);}
return ClassDeclaration$meta$declaration;}
ex$.$init$ClassDeclaration$meta$declaration=$init$ClassDeclaration$meta$declaration;$init$ClassDeclaration$meta$declaration();function FunctionDeclaration$meta$declaration(functionDeclaration$){FunctionOrValueDeclaration$meta$declaration(functionDeclaration$);GenericDeclaration$meta$declaration(functionDeclaration$);FunctionalDeclaration$meta$declaration(functionDeclaration$);}
FunctionDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionOrValueDeclaration$meta$declaration},{t:GenericDeclaration$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$GenericDeclaration$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:{Type$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:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionDeclaration:$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','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:{Type$Type:'Container$memberApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$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:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionDeclaration:$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','FunctionDeclaration','$m','memberApply']};}};functionDeclaration$.invoke$defs$typeArguments=function($12y,$12z){return getEmpty();};functionDeclaration$.invoke=function($12y,$12z){var functionDeclaration$=this;if($12y===undefined){$12y=functionDeclaration$.invoke$defs$typeArguments($12y,$12z);}
if($12z===undefined){$12z=getEmpty();}
return functionDeclaration$.$_apply($12y,{Arguments$apply:{t:Nothing},Return$apply:{t:Anything}}).$_apply($12z);};functionDeclaration$.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:{Type$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:FunctionDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionDeclaration:$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','FunctionDeclaration','$m','invoke']};};functionDeclaration$.memberInvoke$defs$typeArguments=function($130,$131,$132){return getEmpty();};functionDeclaration$.memberInvoke=function($130,$131,$132){var functionDeclaration$=this;if($131===undefined){$131=functionDeclaration$.memberInvoke$defs$typeArguments($130,$131,$132);}
if($132===undefined){$132=getEmpty();}
return functionDeclaration$.memberApply(getNothingType$meta$model(),$131,{Arguments$memberApply:{t:Nothing},Return$memberApply:{t:Anything},Container$memberApply:{t:Nothing}}).$_bind($130).$_apply($132);};functionDeclaration$.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:{Type$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:FunctionDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionDeclaration:$m:memberInvoke'),$_throws($init$OpenClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container, type or value arguments are not compatible with this method.")];},d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','memberInvoke']};};})(FunctionDeclaration$meta$declaration.$$.prototype);}
return FunctionDeclaration$meta$declaration;}
ex$.$init$FunctionDeclaration$meta$declaration=$init$FunctionDeclaration$meta$declaration;$init$FunctionDeclaration$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:{Type$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 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','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:{Type$Type:'Container$memberInterfaceApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$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 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','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$){Identifiable(module$);AnnotatedDeclaration$meta$declaration(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$){Identifiable(import$);Annotated(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$){Identifiable(package$);AnnotatedDeclaration$meta$declaration(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 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 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 set of open type arguments.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArguments']};}};})(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 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 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 $133$meta$declaration(){var nothingType$=new $133$meta$declaration.$$;OpenType$meta$declaration(nothingType$);return nothingType$;
};$133$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:OpenType$meta$declaration}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:nothingType')];},d:['ceylon.language.meta.declaration','nothingType']};};function $init$getNothingType$meta$declaration(){if($133$meta$declaration.$$===undefined){initTypeProto($133$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:$133$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','nothingType','$at','string']};});})($133$meta$declaration.$$.prototype);}
return $133$meta$declaration;}
ex$.$init$getNothingType$meta$declaration=$init$getNothingType$meta$declaration;$init$getNothingType$meta$declaration();var $134$meta$declaration;function getNothingType$meta$declaration(){if($134$meta$declaration===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nothingType\' before it was set"),'1:0-4:0','nothingType.ceylon');if($134$meta$declaration===undefined){$134$meta$declaration=INIT$;$134$meta$declaration=$init$getNothingType$meta$declaration()();$134$meta$declaration.$crtmm$=getNothingType$meta$declaration.$crtmm$;}
return $134$meta$declaration;}
ex$.getNothingType$meta$declaration=getNothingType$meta$declaration;getNothingType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$133$meta$declaration},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:nothingType')];},d:['ceylon.language.meta.declaration','nothingType']};};$prop$getNothingType$meta$declaration={get:getNothingType$meta$declaration,$crtmm$:getNothingType$meta$declaration.$crtmm$};getNothingType$meta$declaration=getNothingType$meta$declaration;$prop$getNothingType$meta$declaration=getNothingType$meta$declaration;ex$.$prop$getNothingType$meta$declaration=$prop$getNothingType$meta$declaration;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 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 $135$meta$declaration(){var invariant$=new $135$meta$declaration.$$;Variance$meta$declaration(invariant$);return invariant$;
};$135$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:invariant')];},d:['ceylon.language.meta.declaration','invariant']};};function $init$getInvariant$meta$declaration(){if($135$meta$declaration.$$===undefined){initTypeProto($135$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:$135$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','invariant','$at','string']};});})($135$meta$declaration.$$.prototype);}
return $135$meta$declaration;}
ex$.$init$getInvariant$meta$declaration=$init$getInvariant$meta$declaration;$init$getInvariant$meta$declaration();var $136$meta$declaration;function getInvariant$meta$declaration(){if($136$meta$declaration===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'invariant\' before it was set"),'4:0-8:0','Variance.ceylon');if($136$meta$declaration===undefined){$136$meta$declaration=INIT$;$136$meta$declaration=$init$getInvariant$meta$declaration()();$136$meta$declaration.$crtmm$=getInvariant$meta$declaration.$crtmm$;}
return $136$meta$declaration;}
ex$.getInvariant$meta$declaration=getInvariant$meta$declaration;getInvariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$135$meta$declaration},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:invariant')];},d:['ceylon.language.meta.declaration','invariant']};};$prop$getInvariant$meta$declaration={get:getInvariant$meta$declaration,$crtmm$:getInvariant$meta$declaration.$crtmm$};getInvariant$meta$declaration=getInvariant$meta$declaration;$prop$getInvariant$meta$declaration=getInvariant$meta$declaration;ex$.$prop$getInvariant$meta$declaration=$prop$getInvariant$meta$declaration;function $137$meta$declaration(){var covariant$=new $137$meta$declaration.$$;Variance$meta$declaration(covariant$);return covariant$;
};$137$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:covariant')];},d:['ceylon.language.meta.declaration','covariant']};};function $init$getCovariant$meta$declaration(){if($137$meta$declaration.$$===undefined){initTypeProto($137$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:$137$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','covariant','$at','string']};});})($137$meta$declaration.$$.prototype);}
return $137$meta$declaration;}
ex$.$init$getCovariant$meta$declaration=$init$getCovariant$meta$declaration;$init$getCovariant$meta$declaration();var $138$meta$declaration;function getCovariant$meta$declaration(){if($138$meta$declaration===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'covariant\' before it was set"),'10:0-13:0','Variance.ceylon');if($138$meta$declaration===undefined){$138$meta$declaration=INIT$;$138$meta$declaration=$init$getCovariant$meta$declaration()();$138$meta$declaration.$crtmm$=getCovariant$meta$declaration.$crtmm$;}
return $138$meta$declaration;}
ex$.getCovariant$meta$declaration=getCovariant$meta$declaration;getCovariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$137$meta$declaration},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:covariant')];},d:['ceylon.language.meta.declaration','covariant']};};$prop$getCovariant$meta$declaration={get:getCovariant$meta$declaration,$crtmm$:getCovariant$meta$declaration.$crtmm$};getCovariant$meta$declaration=getCovariant$meta$declaration;$prop$getCovariant$meta$declaration=getCovariant$meta$declaration;ex$.$prop$getCovariant$meta$declaration=$prop$getCovariant$meta$declaration;function $139$meta$declaration(){var contravariant$=new $139$meta$declaration.$$;Variance$meta$declaration(contravariant$);return contravariant$;
};$139$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:contravariant')];},d:['ceylon.language.meta.declaration','contravariant']};};function $init$getContravariant$meta$declaration(){if($139$meta$declaration.$$===undefined){initTypeProto($139$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:$139$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','contravariant','$at','string']};});})($139$meta$declaration.$$.prototype);}
return $139$meta$declaration;}
ex$.$init$getContravariant$meta$declaration=$init$getContravariant$meta$declaration;$init$getContravariant$meta$declaration();var $13a$meta$declaration;function getContravariant$meta$declaration(){if($13a$meta$declaration===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'contravariant\' before it was set"),'15:0-18:0','Variance.ceylon');if($13a$meta$declaration===undefined){$13a$meta$declaration=INIT$;$13a$meta$declaration=$init$getContravariant$meta$declaration()();$13a$meta$declaration.$crtmm$=getContravariant$meta$declaration.$crtmm$;}
return $13a$meta$declaration;}
ex$.getContravariant$meta$declaration=getContravariant$meta$declaration;getContravariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$139$meta$declaration},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:contravariant')];},d:['ceylon.language.meta.declaration','contravariant']};};$prop$getContravariant$meta$declaration={get:getContravariant$meta$declaration,$crtmm$:getContravariant$meta$declaration.$crtmm$};getContravariant$meta$declaration=getContravariant$meta$declaration;$prop$getContravariant$meta$declaration=getContravariant$meta$declaration;ex$.$prop$getContravariant$meta$declaration=$prop$getContravariant$meta$declaration;
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$);importa$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','name']};}};importa$.$prop$getName.get=function(){return name};importa$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','version']};}};importa$.$prop$getVersion.get=function(){return version};importa$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Importa$jsint,pa:67,d:['ceylon.language.jsint','Importa','$at','shared']};}};importa$.$prop$getOptional={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Importa$jsint,pa:67,d:['ceylon.language.jsint','Importa','$at','optional']};}};importa$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Importa$jsint,pa:67,d:['ceylon.language.jsint','Importa','$at','container']};}};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}],pa:64,d:['ceylon.language.jsint','Importa']};};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$,'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:67,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:67,d:['ceylon.language.jsint','Importa','$at','optional']};});atr$(importa$,'container',function(){if (this._cont===undefined) {
this._cont = getModules$meta().find(this.name,this.version);
}
return this._cont;
},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Importa$jsint,pa:67,d:['ceylon.language.jsint','Importa','$at','container']};});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']};});})(Importa$jsint.$$.prototype);}
return Importa$jsint;}
ex$.$init$Importa$jsint=$init$Importa$jsint;$init$Importa$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$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','container']};}};paquete$.$prop$getContainer.get=function(){return container};paquete$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','name']};}};paquete$.$prop$getName.get=function(){return name};paquete$.$prop$getQualifiedName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','qualifiedName']};}};paquete$.$prop$getQualifiedName.get=function(){return qualifiedName};paquete$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Paquete$jsint,pa:67,d:['ceylon.language.jsint','Paquete','$at','shared']};}};paquete$.$prop$getSuffix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:65,d:['ceylon.language.jsint','Paquete','$at','suffix']};}};var string="package ".plus(paquete$.name);atr$(paquete$,'string',function(){return string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','string']};});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}],pa:64,d:['ceylon.language.jsint','Paquete']};};function $init$Paquete$jsint(){if(Paquete$jsint.$$===undefined){initTypeProto(Paquete$jsint,'ceylon.language.jsint::Paquete',Basic,$init$Package$meta$declaration());
(function(paquete$){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$,'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$,'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:67,d:['ceylon.language.jsint','Paquete','$at','shared']};});paquete$.members=function members($$$mptypes){
var filter=[];
if (extendsType({t:FunctionDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('m');
if (extendsType({t:ValueDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('a','g','s');
if (extendsType({t:ClassDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('c','o');
if (extendsType({t:InterfaceDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('i');
if (extendsType({t:AliasDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('als');
var r=[];
for (var mn in this._pkg) {
var m = this._pkg[mn];
var mt = m.mt;
if (filter.indexOf(mt)>=0 && (m.pa&1)) {
if (mt === 'm') {
r.push(OpenFunction(this, m));
} else if (mt==='c'||mt==='o') {
r.push(OpenClass$jsint(this, m));
} else if (mt==='i') {
r.push(OpenInterface$jsint(this, m));
} else if (mt==='a'||mt==='g') {
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(_findTypeFromModel(this,m)));
}
}
}
return r.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:$$$mptypes.Kind$members});
}
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:67,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.length===0?getEmpty():ArraySequence(rv,{Element$ArraySequence:$$$mptypes.Kind$annotatedMembers});
}
return getEmpty();
}
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:67,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'];
//There's a member alright, but check its type
if ((mt==='a'||mt==='g'||mt==='s')&&extendsType($$$mptypes.Kind$getMember,{t:FunctionOrValueDeclaration$meta$declaration})) {
return mt==='s'?OpenSetter(OpenValue$jsint(this, m)):OpenValue$jsint(this, m);
} else if (mt==='m'&&extendsType($$$mptypes.Kind$getMember,{t:FunctionOrValueDeclaration$meta$declaration})){
return OpenFunction(this, m);
} else if (mt==='c'&&extendsType($$$mptypes.Kind$getMember,{t:ClassOrInterfaceDeclaration$meta$declaration})){
return OpenClass$jsint(this, m);
} else if (mt==='i'&&extendsType($$$mptypes.Kind$getMember,{t:ClassOrInterfaceDeclaration$meta$declaration})){
return OpenInterface$jsint(this, m);
} else if (mt==='als'&&extendsType($$$mptypes.Kind$getMember,{t:AliasDeclaration$meta$declaration})){
return OpenAlias$jsint(_findTypeFromModel(this,m));
} else if (mt==='o') {
if (extendsType($$$mptypes.Kind$getMember,{t:ValueDeclaration$meta$declaration})) {
return OpenValue$jsint(this, m);
} else if (extendsType($$$mptypes.Kind$getMember,{t:ClassDeclaration$meta$declaration})) {
return OpenClass$jsint(this, m);
}
}
console.log("WTF do I do with this " + name$3 + " metatype " + mt + " Kind " + $$$mptypes.Kind$getMember);
}
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:67,d:['ceylon.language.jsint','Paquete','$m','getMember']};};paquete$.getValue=function getValue(name$4) {
var m = this._pkg[name$4];
if (m && (m['mt']==='a' || m['mt']==='g' || m['mt'] === 'o' ||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:67,d:['ceylon.language.jsint','Paquete','$m','getValue']};};paquete$.getClassOrInterface=function getClassOrInterface(name$5){
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:67,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(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:67,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:67,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.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:$$$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:67,d:['ceylon.language.jsint','Paquete','$m','annotations']};};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:65,d:['ceylon.language.jsint','Paquete','$at','suffix']};});delete paquete$.string;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']};});})(Paquete$jsint.$$.prototype);}
return Paquete$jsint;}
ex$.$init$Paquete$jsint=$init$Paquete$jsint;$init$Paquete$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$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:67,d:['ceylon.language.jsint','Modulo','$at','name']};}};var qualifiedName=modulo$.name;atr$(modulo$,'qualifiedName',function(){return qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,d:['ceylon.language.jsint','Modulo','$at','qualifiedName']};});modulo$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:67,d:['ceylon.language.jsint','Modulo','$at','version']};}};modulo$.$prop$getMembers={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Package$meta$declaration}}},$cont:Modulo$jsint,pa:67,d:['ceylon.language.jsint','Modulo','$at','members']};}};modulo$.$prop$getDependencies={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Import$meta$declaration}}},$cont:Modulo$jsint,pa:67,d:['ceylon.language.jsint','Modulo','$at','dependencies']};}};var string="module ".plus(modulo$.name).plus("/").plus(modulo$.version);atr$(modulo$,'string',function(){return string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,d:['ceylon.language.jsint','Modulo','$at','string']};});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:65,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$,'name',function(){return this.nm$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:67,d:['ceylon.language.jsint','Modulo','$at','name']};});delete modulo$.qualifiedName;atr$(modulo$,'version',function(){return this.ver$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:67,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.length===0?getEmpty():ArraySequence(m,{Element$ArraySequence:{t:Package$meta$declaration}});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Package$meta$declaration}}},$cont:Modulo$jsint,pa:67,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$['$mod-deps']||getEmpty();
if (deps !== getEmpty()) {
var _d=[];
for (var d in this.meta.$mod$imps) {
var spos = d.lastIndexOf('/');
_d.push(Importa$jsint(d.substring(0,spos), d.substring(spos+1),this,this.meta.$mod$imps[d]));
}
deps = _d.length===0?getEmpty():ArraySequence(_d,{Element$ArraySequence:{t:Import$meta$declaration}});
this.m$['$mod-deps'] = deps;
}
return deps;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Import$meta$declaration}}},$cont:Modulo$jsint,pa:67,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:67,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=getModules$meta().find('ceylon.language', $CCMM$()['$mod-version']);
var deps=clmod.dependencies;
if (deps===getEmpty())deps=[];
deps.push(Importa$jsint('ceylon.language', $CCMM$()['$mod-version']),clmod);
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:67,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 (getRuntime().name==='node.js') {
var sep = getOperatingSystem().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(getOperatingSystem().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 (getRuntime().name==='Browser') {
return JsResource$jsint(require.toUrl(mpath));
} else {
throw AssertionError("resources loading not yet supported in this environment: " + getRuntime().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:67,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.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:$$$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:67,d:['ceylon.language.jsint','Modulo','$m','annotations']};};delete modulo$.string;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']};});})(Modulo$jsint.$$.prototype);}
return Modulo$jsint;}
ex$.$init$Modulo$jsint=$init$Modulo$jsint;$init$Modulo$jsint();function FreeUnion$jsint(caseTypes,freeUnion$){$init$FreeUnion$jsint();if(freeUnion$===undefined)freeUnion$=new FreeUnion$jsint.$$;
freeUnion$.caseTypes_=caseTypes;OpenUnion$meta$declaration(freeUnion$);freeUnion$.$prop$getCaseTypes={$crtmm$: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$.$prop$getCaseTypes.get=function(){return caseTypes};freeUnion$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeUnion$jsint,pa:67,d:['ceylon.language.jsint','FreeUnion','$at','string']};}};freeUnion$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeUnion$jsint,pa:67,d:['ceylon.language.jsint','FreeUnion','$at','hash']};}};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}],pa:64,d:['ceylon.language.jsint','FreeUnion']};};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[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:67,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:67,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:67,d:['ceylon.language.jsint','FreeUnion','$at','hash']};});})(FreeUnion$jsint.$$.prototype);}
return FreeUnion$jsint;}
ex$.$init$FreeUnion$jsint=$init$FreeUnion$jsint;$init$FreeUnion$jsint();function FreeIntersection$jsint(satisfiedTypes,freeIntersection$){$init$FreeIntersection$jsint();if(freeIntersection$===undefined)freeIntersection$=new FreeIntersection$jsint.$$;
freeIntersection$.satisfiedTypes_=satisfiedTypes;OpenIntersection$meta$declaration(freeIntersection$);freeIntersection$.$prop$getSatisfiedTypes={$crtmm$: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$.$prop$getSatisfiedTypes.get=function(){return satisfiedTypes};freeIntersection$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeIntersection$jsint,pa:67,d:['ceylon.language.jsint','FreeIntersection','$at','string']};}};freeIntersection$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeIntersection$jsint,pa:67,d:['ceylon.language.jsint','FreeIntersection','$at','hash']};}};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}],pa:64,d:['ceylon.language.jsint','FreeIntersection']};};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:67,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:67,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:67,d:['ceylon.language.jsint','FreeIntersection','$at','hash']};});})(FreeIntersection$jsint.$$.prototype);}
return FreeIntersection$jsint;}
ex$.$init$FreeIntersection$jsint=$init$FreeIntersection$jsint;$init$FreeIntersection$jsint();function OpenTvar$jsint(declaration,openTvar$){$init$OpenTvar$jsint();if(openTvar$===undefined)openTvar$=new OpenTvar$jsint.$$;
openTvar$.declaration_=declaration;OpenTypeVariable$meta$declaration(openTvar$);openTvar$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:TypeParameter$meta$declaration},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','declaration']};}};openTvar$.$prop$getDeclaration.get=function(){return declaration};openTvar$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTvar$jsint,pa:67,d:['ceylon.language.jsint','OpenTvar','$at','string']};}};openTvar$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTvar$jsint,pa:67,d:['ceylon.language.jsint','OpenTvar','$at','hash']};}};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}],pa:64,d:['ceylon.language.jsint','OpenTvar']};};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']};});atr$(openTvar$,'string',function(){return this.declaration.qualifiedName;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTvar$jsint,pa:67,d:['ceylon.language.jsint','OpenTvar','$at','string']};});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:67,d:['ceylon.language.jsint','OpenTvar','$m','equals']};};atr$(openTvar$,'hash',function(){return this.string.hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTvar$jsint,pa:67,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(container,_fname,openTypeParam$){$init$OpenTypeParam$jsint();if(openTypeParam$===undefined)openTypeParam$=new OpenTypeParam$jsint.$$;
openTypeParam$.container_=container;openTypeParam$._fname_=_fname;TypeParameter$meta$declaration(openTypeParam$);openTypeParam$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','container']};}};openTypeParam$.$prop$getContainer.get=function(){return container};openTypeParam$.$prop$get_fname={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:1,d:['ceylon.language.jsint','OpenTypeParam','$at','_fname']};}};openTypeParam$.$prop$get_fname.get=function(){return _fname};openTypeParam$.$prop$getDefaulted={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','defaulted']};}};openTypeParam$.$prop$getDefaultTypeArgument={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenType$meta$declaration}]},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','defaultTypeArgument']};}};openTypeParam$.$prop$getVariance={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Variance$meta$declaration},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','variance']};}};openTypeParam$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','satisfiedTypes']};}};openTypeParam$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','caseTypes']};}};openTypeParam$.$prop$getQualifiedName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','qualifiedName']};}};var name=openTypeParam$._fname.measure(0,($13b=openTypeParam$._fname.firstOccurrence(Character(36,true)),nn$($13b)?$13b:openTypeParam$._fname.size));atr$(openTypeParam$,'name',function(){return name;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','name']};});var $13b;var string="given ".plus(openTypeParam$.qualifiedName);atr$(openTypeParam$,'string',function(){return string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','string']};});var hash=openTypeParam$.string.hash;atr$(openTypeParam$,'hash',function(){return hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','hash']};});return openTypeParam$;}
OpenTypeParam$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'container',mt:'prm',$t:{t:NestableDeclaration$meta$declaration},pa:3},{nm:'_fname',mt:'prm',$t:{t:$_String},pa:1}],sts:[{t:TypeParameter$meta$declaration}],pa:64,d:['ceylon.language.jsint','OpenTypeParam']};};function $init$OpenTypeParam$jsint(){if(OpenTypeParam$jsint.$$===undefined){initTypeProto(OpenTypeParam$jsint,'ceylon.language.jsint::OpenTypeParam',Basic,$init$TypeParameter$meta$declaration());
(function(openTypeParam$){atr$(openTypeParam$,'container',function(){return this.container_;},undefined,function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','container']};});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$,'defaulted',function(){var tp=getrtmm$$(this.container).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:67,d:['ceylon.language.jsint','OpenTypeParam','$at','defaulted']};});atr$(openTypeParam$,'defaultTypeArgument',function(){var tp=getrtmm$$(this.container).tp[this._fname];
if (typeof(tp.def)==='string') {
return OpenTvar$jsint(OpenTypeParam$jsint(this.container, tp.def));
}
return tp.def?_openTypeFromTarg(tp.def,this.container):null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenType$meta$declaration}]},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','defaultTypeArgument']};});atr$(openTypeParam$,'variance',function(){var tp=getrtmm$$(this.container).tp[this._fname];
if (tp) {
if (tp.dv==='out')return getCovariant$meta$declaration();
if (tp.dv=== 'in')return getContravariant$meta$declaration();
return getInvariant$meta$declaration();
}
throw new Error("Invalid Type Parameter");
},undefined,function(){return{mod:$CCMM$,$t:{t:Variance$meta$declaration},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','variance']};});atr$(openTypeParam$,'satisfiedTypes',function(){var tp=getrtmm$$(this.container).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));
}
return a.length===0?getEmpty():ArraySequence(a,{Element$ArraySequence:{t:OpenType$meta$declaration}});
}
return getEmpty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','satisfiedTypes']};});atr$(openTypeParam$,'caseTypes',function(){var tp=getrtmm$$(this.container).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));
}
return a.length===0?getEmpty():ArraySequence(a,{Element$ArraySequence:{t:OpenType$meta$declaration}});
}
return getEmpty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:67,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:67,d:['ceylon.language.jsint','OpenTypeParam','$m','equals']};};atr$(openTypeParam$,'qualifiedName',function(){return qname$(this.container)+"."+this.name;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:67,d:['ceylon.language.jsint','OpenTypeParam','$at','qualifiedName']};});delete openTypeParam$.name;delete openTypeParam$.string;delete openTypeParam$.hash;})(OpenTypeParam$jsint.$$.prototype);}
return OpenTypeParam$jsint;}
ex$.$init$OpenTypeParam$jsint=$init$OpenTypeParam$jsint;$init$OpenTypeParam$jsint();function OpenAlias$jsint(_alias,openAlias$){$init$OpenAlias$jsint();if(openAlias$===undefined)openAlias$=new OpenAlias$jsint.$$;
openAlias$._alias_=_alias;AliasDeclaration$meta$declaration(openAlias$);openAlias$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','extendedType']};}};openAlias$.$prop$getOpenType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','openType']};}};openAlias$.$prop$getOpenType.get=function(){return openType};openAlias$.$prop$getQualifiedName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','qualifiedName']};}};openAlias$.$prop$getToplevel={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','toplevel']};}};openAlias$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','container']};}};openAlias$.$prop$getTypeParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','typeParameterDeclarations']};}};openAlias$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','string']};}};openAlias$.$prop$getString.get=function(){return string};openAlias$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','name']};}};openAlias$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','shared']};}};openAlias$.$prop$getActual={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','actual']};}};openAlias$.$prop$getFormal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','formal']};}};openAlias$.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:67,d:['ceylon.language.jsint','OpenAlias','$at','default']};}};(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:65,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$,'extendedType',function(){return _openTypeFromTarg(this._alias);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:67,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:67,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:67,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:67,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 AnnotatedDeclaration$meta$declaration.$$.prototype.annotations.call(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:67,d:['ceylon.language.jsint','OpenAlias','$m','annotations']};};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));
}
var targ={t:TypeParameter$meta$declaration};
return rv.length===0?getEmpty():ArraySequence(rv.rt$(targ),{Element$ArraySequence:targ});
}
return getEmpty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenAlias$jsint,pa:67,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:67,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:67,d:['ceylon.language.jsint','OpenAlias','$m','equals']};};atr$(openAlias$,'string',function(){var openAlias$=this;return "alias ".plus(openAlias$.qualifiedName).plus("");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','string']};});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:67,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:67,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:67,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:67,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:67,d:['ceylon.language.jsint','OpenAlias','$at','default']};});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']};});})(OpenAlias$jsint.$$.prototype);}
return OpenAlias$jsint;}
ex$.$init$OpenAlias$jsint=$init$OpenAlias$jsint;$init$OpenAlias$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$);appliedUnionType$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Type$Type:'Union$AppliedUnionType'}}}},$cont:AppliedUnionType$jsint,pa:3,d:['ceylon.language.jsint','AppliedUnionType','$at','caseTypes']};}};appliedUnionType$.$prop$getCaseTypes.get=function(){return caseTypes};appliedUnionType$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedUnionType$jsint,pa:67,d:['ceylon.language.jsint','AppliedUnionType','$at','string']};}};appliedUnionType$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedUnionType$jsint,pa:67,d:['ceylon.language.jsint','AppliedUnionType','$at','hash']};}};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:{Type$Type:'Union$AppliedUnionType'}}}},pa:3}],tp:{Union$AppliedUnionType:{dv:'out',def:{t:Anything}}},sts:[{t:UnionType$meta$model,a:{Union$UnionType:'Union$AppliedUnionType'}}],pa:64,d:['ceylon.language.jsint','AppliedUnionType']};};function $init$AppliedUnionType$jsint(){if(AppliedUnionType$jsint.$$===undefined){initTypeProto(AppliedUnionType$jsint,'ceylon.language.jsint::AppliedUnionType',Basic,$init$UnionType$meta$model());
(function(appliedUnionType$){atr$(appliedUnionType$,'caseTypes',function(){return this.caseTypes_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Type$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:67,d:['ceylon.language.jsint','AppliedUnionType','$m','typeOf']};};appliedUnionType$.supertypeOf=function(){
throw Exception("IMPL AppliedUnionType.supertypeOf");
}
appliedUnionType$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}],$cont:AppliedUnionType$jsint,pa:67,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:{Type$Type:{t:Anything}}}}],$cont:AppliedUnionType$jsint,pa:67,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:67,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:67,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:67,d:['ceylon.language.jsint','AppliedUnionType','$m','equals']};};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']};});})(AppliedUnionType$jsint.$$.prototype);}
return AppliedUnionType$jsint;}
ex$.$init$AppliedUnionType$jsint=$init$AppliedUnionType$jsint;$init$AppliedUnionType$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$);appliedIntersectionType$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Type$Type:'Union$AppliedIntersectionType'}}}},$cont:AppliedIntersectionType$jsint,pa:3,d:['ceylon.language.jsint','AppliedIntersectionType','$at','satisfiedTypes']};}};appliedIntersectionType$.$prop$getSatisfiedTypes.get=function(){return satisfiedTypes};appliedIntersectionType$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedIntersectionType$jsint,pa:67,d:['ceylon.language.jsint','AppliedIntersectionType','$at','string']};}};appliedIntersectionType$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedIntersectionType$jsint,pa:67,d:['ceylon.language.jsint','AppliedIntersectionType','$at','hash']};}};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:{Type$Type:'Union$AppliedIntersectionType'}}}},pa:3}],tp:{Union$AppliedIntersectionType:{dv:'out',def:{t:Anything}}},sts:[{t:IntersectionType$meta$model,a:{Intersection$IntersectionType:'Union$AppliedIntersectionType'}}],pa:64,d:['ceylon.language.jsint','AppliedIntersectionType']};};function $init$AppliedIntersectionType$jsint(){if(AppliedIntersectionType$jsint.$$===undefined){initTypeProto(AppliedIntersectionType$jsint,'ceylon.language.jsint::AppliedIntersectionType',Basic,$init$IntersectionType$meta$model());
(function(appliedIntersectionType$){atr$(appliedIntersectionType$,'satisfiedTypes',function(){return this.satisfiedTypes_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Type$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:67,d:['ceylon.language.jsint','AppliedIntersectionType','$m','typeOf']};};appliedIntersectionType$.supertypeOf=function supertypeOf(type$24){
throw Exception("IMPL AppliedIntersectionType.supertypeOf");
}
appliedIntersectionType$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}],$cont:AppliedIntersectionType$jsint,pa:67,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:{Type$Type:{t:Anything}}}}],$cont:AppliedIntersectionType$jsint,pa:67,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:67,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:67,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:67,d:['ceylon.language.jsint','AppliedIntersectionType','$m','equals']};};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']};});})(AppliedIntersectionType$jsint.$$.prototype);}
return AppliedIntersectionType$jsint;}
ex$.$init$AppliedIntersectionType$jsint=$init$AppliedIntersectionType$jsint;$init$AppliedIntersectionType$jsint();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");
$init$OpenClass$jsint();
if (that===undefined)that=new OpenClass$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);
}
that.name_=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
that.toplevel_=_mm.$cont===undefined;
ClassDeclaration$meta$declaration(that);
return that;
}
OpenClass$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:ClassDeclaration$meta$declaration}],pa:65,d:['ceylon.language.jsint','OpenClass']};};
ex$.OpenClass$jsint=OpenClass$jsint;function $init$OpenClass$jsint(){if(OpenClass$jsint.$$===undefined){initTypeProto(OpenClass$jsint,'ceylon.language.jsint::OpenClass',Basic,$init$ClassDeclaration$meta$declaration());
(function(openClass$){atr$(openClass$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClass$jsint,pa:1,d:['ceylon.language.jsint','OpenClass','$at','pkg']};});atr$(openClass$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenClass$jsint,pa:1,d:['ceylon.language.jsint','OpenClass','$at','meta']};});openClass$.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,$mptypes);
}
openClass$.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:{Type$Type:{t:Anything}}}}}}],$cont:OpenClass$jsint,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','classApply']};};openClass$.memberClassApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==getNothingType$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};
validate$typeparams(_t,mm.tp,targs);
validate$params(mm.ps,$mptypes.Arguments$memberClassApply,"Wrong number of Arguments for classApply");
var rv=AppliedMemberClass(this.tipo,{Container$MemberClass:{t:mm.$cont},Type$MemberClass:_t,Arguments$MemberClass:tupleize$params(mm.ps)});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openClass$.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:{Type$Type:'Container$memberClassApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}}}],$cont:OpenClass$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:67,d:['ceylon.language.jsint','OpenClass','$m','memberClassApply']};};atr$(openClass$,'anonymous',function(){return this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','anonymous']};});atr$(openClass$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','abstract']};});atr$(openClass$,'$_final',function(){return (getrtmm$$(this.tipo).pa & 32) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','final']};});atr$(openClass$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','annotation']};});atr$(openClass$,'openType',function(){return FreeClass$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','openType']};});openClass$.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;
}
openClass$.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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$m','getParameterDeclaration']};};atr$(openClass$,'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(getModules$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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','extendedType']};});atr$(openClass$,'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(getModules$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.length===0?getEmpty():ArraySequence(rv,{Element$ArraySequence:{t:OpenInterfaceType$meta$declaration}});
}
return getEmpty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','satisfiedTypes']};});atr$(openClass$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','name']};});atr$(openClass$,'containingPackage',function(){var openClass$=this;return openClass$.pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClass$jsint,pa:3,d:['ceylon.language.jsint','OpenClass','$at','containingPackage']};});atr$(openClass$,'containingModule',function(){var openClass$=this;return openClass$.pkg.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenClass$jsint,pa:3,d:['ceylon.language.jsint','OpenClass','$at','containingModule']};});atr$(openClass$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','toplevel']};});atr$(openClass$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','qualifiedName']};});openClass$.equals=function(other) {
if (is$(other, {t:OpenClass$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;
}
openClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$m','equals']};};atr$(openClass$,'hash',function(){return this.string.hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','hash']};});atr$(openClass$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','shared']};});atr$(openClass$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','formal']};});atr$(openClass$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','default']};});atr$(openClass$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','actual']};});atr$(openClass$,'isAlias',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','isAlias']};});openClass$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openClass$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClass$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','getMemberDeclaration']};};openClass$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openClass$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClass$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','getDeclaredMemberDeclaration']};};atr$(openClass$,'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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','parameterDeclarations']};});openClass$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openClass$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenClass$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','memberDeclarations']};};atr$(openClass$,'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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','caseTypes']};});openClass$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openClass$.$_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:{Type$Type:{t:Anything}}}}}}],$cont:OpenClass$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','apply']};};openClass$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openClass$.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:{Type$Type:'Container$memberApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}}}],$cont:OpenClass$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','memberApply']};};atr$(openClass$,'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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','container']};});openClass$.annotatedMemberDeclarations=function(m,i) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
}
openClass$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenClass$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','annotatedMemberDeclarations']};};openClass$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openClass$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenClass$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','annotatedDeclaredMemberDeclarations']};};atr$(openClass$,'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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','typeParameterDeclarations']};});openClass$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openClass$.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:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$m','getTypeParameterDeclaration']};};atr$(openClass$,'string',function(){var openClass$=this;return "class ".plus(openClass$.qualifiedName).plus("");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClass$jsint,pa:3,d:['ceylon.language.jsint','OpenClass','$at','string']};});openClass$.annotations=function(m){
return AnnotatedDeclaration$meta$declaration.$$.prototype.annotations.call(this,m);
}
openClass$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenClass$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','annotations']};};openClass$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openClass$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenClass$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:67,d:['ceylon.language.jsint','OpenClass','$m','declaredMemberDeclarations']};};atr$(openClass$,'objectValue',function(){if (!this.anonymous)return null;
return OpenValue$jsint(this.containingPackage,this.meta);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:OpenClass$jsint,pa:67,d:['ceylon.language.jsint','OpenClass','$at','objectValue']};});})(OpenClass$jsint.$$.prototype);}
return OpenClass$jsint;}
ex$.$init$OpenClass$jsint=$init$OpenClass$jsint;$init$OpenClass$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);
}
that.name_=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
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:65,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$){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:{Type$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Type$interfaceApply:{def:{t:Anything}}},pa:67,d:['ceylon.language.jsint','OpenInterface','$m','interfaceApply']};};openInterface$.memberInterfaceApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==getNothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
var _t={t:this.tipo};
validate$typeparams(_t,mm.tp,targs);
var rv=AppliedMemberInterface(this.tipo,{Container$MemberInterface:{t:mm.$cont},Type$MemberInterface:_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:{Type$Type:'Container$memberInterfaceApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Container$memberInterfaceApply:{def:{t:Nothing}},Type$memberInterfaceApply:{def:{t:Anything}}},pa:67,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:{Type$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:67,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:{Type$Type:'Container$memberApply'}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:67,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:67,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:67,d:['ceylon.language.jsint','OpenInterface','$m','annotatedMemberDeclarations']};};openInterface$.annotations=function(m){
return AnnotatedDeclaration$meta$declaration.$$.prototype.annotations.call(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:67,d:['ceylon.language.jsint','OpenInterface','$m','annotations']};};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:67,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:67,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:67,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:67,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(getModules$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:67,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(getModules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc)));
}
return rv.length===0?getEmpty():ArraySequence(rv,{Element$ArraySequence:{t:OpenInterfaceType$meta$declaration}});
}
return getEmpty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenInterface$jsint,pa:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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:67,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).plus("");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','string']};});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']};});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$jsint.$$.prototype);}
return OpenInterface$jsint;}
ex$.$init$OpenInterface$jsint=$init$OpenInterface$jsint;$init$OpenInterface$jsint();
function AnnotationAnnotation(annotationAnnotation$){$init$AnnotationAnnotation();if(annotationAnnotation$===undefined)annotationAnnotation$=new AnnotationAnnotation.$$;
annotationAnnotation$.$$targs$$={Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}};OptionalAnnotation({Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{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:{Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}}}],pa:545,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)].rt$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','annotation']};};
ex$.annotation=annotation;function SharedAnnotation(sharedAnnotation$){$init$SharedAnnotation();if(sharedAnnotation$===undefined)sharedAnnotation$=new SharedAnnotation.$$;
sharedAnnotation$.$$targs$$={Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}]}};OptionalAnnotation({Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$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:{Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}]}}}],pa:545,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$$={Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}};OptionalAnnotation({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:{Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}}}],pa:545,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$$={Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}};OptionalAnnotation({Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}},abstractAnnotation$);return abstractAnnotation$;}
AbstractAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}}}],pa:545,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$$={Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}};OptionalAnnotation({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:{Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}}}],pa:545,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 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 SealedAnnotation(sealedAnnotation$){$init$SealedAnnotation();if(sealedAnnotation$===undefined)sealedAnnotation$=new SealedAnnotation.$$;
sealedAnnotation$.$$targs$$={Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:{t:ClassOrInterfaceDeclaration$meta$declaration}};OptionalAnnotation({Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:{t:ClassOrInterfaceDeclaration$meta$declaration}},sealedAnnotation$);return sealedAnnotation$;}
SealedAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:{t:ClassOrInterfaceDeclaration$meta$declaration}}}],pa:545,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 $_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 ActualAnnotation(actualAnnotation$){$init$ActualAnnotation();if(actualAnnotation$===undefined)actualAnnotation$=new ActualAnnotation.$$;
actualAnnotation$.$$targs$$={Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}};OptionalAnnotation({Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}},actualAnnotation$);return actualAnnotation$;}
ActualAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:545,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$$={Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}};OptionalAnnotation({Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}},formalAnnotation$);return formalAnnotation$;}
FormalAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:545,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$$={Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}};OptionalAnnotation({Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}},defaultAnnotation$);return defaultAnnotation$;}
DefaultAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:545,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$$={Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}};OptionalAnnotation({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:{Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}}}],pa:545,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(nativeAnnotation$){$init$NativeAnnotation();if(nativeAnnotation$===undefined)nativeAnnotation$=new NativeAnnotation.$$;
nativeAnnotation$.$$targs$$={Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};OptionalAnnotation({Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},nativeAnnotation$);return nativeAnnotation$;}
NativeAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:545,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());
}
return NativeAnnotation;}
ex$.$init$NativeAnnotation=$init$NativeAnnotation;$init$NativeAnnotation();function $_native(){return NativeAnnotation();};$_native.$crtmm$=function(){return{mod:$CCMM$,$t:{t:NativeAnnotation},ps:[],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$$={Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};docAnnotation$.description_=description;OptionalAnnotation({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:{Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:545,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($13c){return DocAnnotation($13c);};doc.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DocAnnotation},ps:[{nm:'description',mt:'prm',$t:{t:$_String},an:function(){return[doc$($CCMM$,'$:doc:$at:description$qk7ot0')];}}],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},ProgramElement$SequencedAnnotation:{t:Annotated}};if(programElements===undefined){programElements=getEmpty();}
seeAnnotation$.programElements_=programElements;SequencedAnnotation({Value$SequencedAnnotation:{t:SeeAnnotation},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},ProgramElement$SequencedAnnotation:{t:Annotated}}}],pa:545,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($13d){if($13d===undefined){$13d=getEmpty();}
return SeeAnnotation($13d);};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}}},an:function(){return[doc$($CCMM$,'$:see:$at:programElements$xz044a')];}}],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$$={Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(authors===undefined){authors=getEmpty();}
authorsAnnotation$.authors_=authors;OptionalAnnotation({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:{Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:545,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($13e){if($13e===undefined){$13e=getEmpty();}
return AuthorsAnnotation($13e);};by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AuthorsAnnotation},ps:[{nm:'authors',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},an:function(){return[doc$($CCMM$,'$:by:$at:authors$w2fgq7')];}}],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},ProgramElement$SequencedAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration}]}};thrownExceptionAnnotation$.type_=type;thrownExceptionAnnotation$.when_=when;SequencedAnnotation({Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},ProgramElement$SequencedAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassDeclaration$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$($CCMM$,'$:ThrownExceptionAnnotation:$at:type')];}},{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},ProgramElement$SequencedAnnotation:{t:'u',l:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration}]}}}],pa:545,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$($CCMM$,'$:ThrownExceptionAnnotation:$at:type')];},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($13f,$13g){if($13g===undefined){$13g="";}
return ThrownExceptionAnnotation($13f,$13g);};$_throws.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ThrownExceptionAnnotation},ps:[{nm:'type',mt:'prm',$t:{t:Declaration$meta$declaration},an:function(){return[doc$($CCMM$,'$:throws:$at:type$nmaond')];}},{nm:'when',mt:'prm',def:1,$t:{t:$_String},an:function(){return[doc$($CCMM$,'$:throws:$at:when$lz1dft')];}}],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$$={Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};deprecationAnnotation$.description_=description;OptionalAnnotation({Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},deprecationAnnotation$);deprecationAnnotation$.$prop$getReason={$crtmm$: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$.$prop$getReason.get=function(){return reason};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:{Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:545,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$,'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']};});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']};});})(DeprecationAnnotation.$$.prototype);}
return DeprecationAnnotation;}
ex$.$init$DeprecationAnnotation=$init$DeprecationAnnotation;$init$DeprecationAnnotation();function deprecated($13h){if($13h===undefined){$13h="";}
return DeprecationAnnotation($13h);};deprecated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeprecationAnnotation},ps:[{nm:'reason',mt:'prm',def:1,$t:{t:$_String},an:function(){return[doc$($CCMM$,'$:deprecated:$at:reason$jdwksn')];}}],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$$={Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(tags===undefined){tags=getEmpty();}
tagsAnnotation$.tags_=tags;OptionalAnnotation({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:{Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:545,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($13i){if($13i===undefined){$13i=getEmpty();}
return TagsAnnotation($13i);};tagged.$crtmm$=function(){return{mod:$CCMM$,$t:{t:TagsAnnotation},ps:[{nm:'tags',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},an:function(){return[doc("The tags, in plain text.")];}}],pa:513,an:function(){return[doc$($CCMM$,'$:tagged')];},d:['$','tagged']};};
ex$.tagged=tagged;function LicenseAnnotation(description,licenseAnnotation$){$init$LicenseAnnotation();if(licenseAnnotation$===undefined)licenseAnnotation$=new LicenseAnnotation.$$;
licenseAnnotation$.$$targs$$={Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}};licenseAnnotation$.description_=description;OptionalAnnotation({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:{Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}}}],pa:545,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($13j){return LicenseAnnotation($13j);};license.$crtmm$=function(){return{mod:$CCMM$,$t:{t:LicenseAnnotation},ps:[{nm:'description',mt:'prm',$t:{t:$_String},an:function(){return[doc$($CCMM$,'$:license:$at:description$5wxmr')];}}],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$$={Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}};OptionalAnnotation({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:{Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}}}],pa:545,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 $_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={get:getTrue,$crtmm$:getTrue.$crtmm$};
ex$.$prop$getFalse={get:getFalse,$crtmm$:getFalse.$crtmm$};
ex$.getTrue=getTrue;
ex$.getFalse=getFalse;
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$);tpMap$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$at','hash']};}};tpMap$.$prop$getHash.get=function(){return hash};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'}}],pa:64,d:['ceylon.language.jsint','TpMap']};};function $init$TpMap$jsint(){if(TpMap$jsint.$$===undefined){initTypeProto(TpMap$jsint,'ceylon.language.jsint::TpMap',Basic,$init$Map());
(function(tpMap$){tpMap$.equals=function($13k){var tpMap$=this;return tpMap$.getT$all()['ceylon.language::Map'].$$.prototype.equals.call(this,$13k);};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 $13l($$targs$$){var $13l$=new $13l.$$;$13l$.outer$=tpMap$;$13l$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap}}},$13l$);$13l$.$13m_=(-1);$13l$.$prop$getIdx={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13l,pa:1025,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$at','idx']};}};$13l$.$prop$getIdx.get=function(){return idx};return $13l$;
};$13l.$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'}}}}],pa:64,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2']};};function $init$$13l(){if($13l.$$===undefined){initTypeProto($13l,'ceylon.language.jsint::TpMap.miter',Basic,$init$Iterator());
(function($13l$){atr$($13l$,'idx',function(){return this.$13m_;},function($13n){return this.$13m_=$13n;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13l,pa:1025,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$at','idx']};});$13l$.next=function(){
var keys=tpMap$.ord||Object.keys(tpMap$.m);
this.idx++;
if (this.idx>=keys.length)return getFinished();
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});
}
$13l$.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:$13l,pa:67,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$m','next']};};})($13l.$$.prototype);}
return $13l;}
$init$$13l();var $13o;function get$13o(){if($13o===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'miter\' before it was set"),'11:8-14:8','TpMap.ceylon');if($13o===undefined){$13o=INIT$;$13o=$init$$13l()({Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap}}});$13o.$crtmm$=get$13o.$crtmm$;}
return $13o;}
get$13o.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$13l},$cont:tpMap$.iterator,pa:64,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc3']};};$prop$get$13o={get:get$13o,$crtmm$:get$13o.$crtmm$};get$13l=get$13o;$prop$get$13l=get$13o;return get$13o();};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:67,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:67,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:67,d:['ceylon.language.jsint','TpMap','$m','defines']};};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$jsint.$$.prototype);}
return TpMap$jsint;}
ex$.$init$TpMap$jsint=$init$TpMap$jsint;$init$TpMap$jsint();function tpl$(elems,types,spread){
if (spread!==undefined) {
var iter=spread.iterator();
for (var e=iter.next();e!==getFinished();e=iter.next()) {
elems.push(e);
}
}
if (elems.size===0)return getEmpty();
if (types===undefined || types.t!=='T') {
types=[];
for (var i=0; i < elems.size; i++){
if (elems[i]===null) {
types.push({t:Null});
} else if (elems[i].getT$all && elems[i].getT$name) {
types.push({t:elems[i].getT$all()[elems[i].getT$name()]});
} else {
console.log("WTF do I use for the type of " + elems[i]);
types.push({t:Anything});
}
}
types={t:'T',l:types};
}
$init$Tuple();
var that=new Tuple.$$;
that.$$targs$$=types;
$_Object(that);
var _t={t:'u',l:types.l};
Sequence({Element$Sequence:_t},that);
elems.$$targs$$={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.first_=elems[0];
that.getFromFirst=function(i){
var e=elems[i]
return e===undefined?null:e;
};
that.getFromFirst.$crtmm$=Tuple.$$.prototype.getFromFirst.$crtmm$;
that.iterator=function(){ return elems.iterator(); }
that.iterator.$crtmm$=Tuple.$$.prototype.iterator.$crtmm$;
that.contains=function(i) { return elems.contains(i); }
that.contains.$crtmm$=Tuple.$$.prototype.contains.$crtmm$;
that.withLeading=function(a,b){
var e2 = elems.slice(0); e2.unshift(a);
var t2 = _t.l.slice(0); t2.unshift(b.Other$withLeading);
return tpl$(e2,{t:'T',l:t2});
}
that.withLeading.$crtmm$=Tuple.$$.prototype.withLeading.$crtmm$;
that.span=function(a,b){
var r=elems.span(a,b);
return r.size===0?getEmpty():ArraySequence(r,{Element$ArraySequence:_t});
}
that.span.$crtmm$=Tuple.$$.prototype.span.$crtmm$;
that.spanTo=function(x){
var r=elems.spanTo(x);
return r.size===0?getEmpty():ArraySequence(r,{Element$ArraySequence:_t});
}
that.spanTo.$crtmm$=Tuple.$$.prototype.spanTo.$crtmm$;
that.spanFrom=function(x){
var r=elems.spanFrom(x);
return r.size===0?getEmpty():ArraySequence(r,{Element$ArraySequence:_t});
}
that.spanFrom.$crtmm$=Tuple.$$.prototype.spanFrom.$crtmm$;
that.measure=function(a,b){
var r=elems.measure(a,b);
return r.size===0?getEmpty():ArraySequence(r,{Element$ArraySequence:_t});
}
that.measure.$crtmm$=Tuple.$$.prototype.measure.$crtmm$;
that.equals=function(o){return elems.equals(o);}
that.equals.$crtmm$=List.$$.prototype.equals.$crtmm$;
that.withTrailing=function(a,b){
var e2=elems.slice(0);e2.push(a);
var t2=_t.l.slice(0);t2.push(b.Other$withTrailing);
return tpl$(e2,{t:'T',l:t2});
}
that.withTrailing.$crtmm$=Sequential.$$.prototype.withTrailing.$crtmm$;
that.chain=function(a,b){return elems.chain(a,b);}
that.chain.$crtmm$=Iterable.$$.prototype.chain.$crtmm$;
that.longerThan=function(i){return elems.longerThan(i);}
that.longerThan.$crtmm$=Iterable.$$.prototype.longerThan.$crtmm$;
that.shorterThan=function(i){return elems.shorterThan(i);}
that.shorterThan.$crtmm$=Iterable.$$.prototype.shorterThan.$crtmm$;
atr$(that,'hash',function(){
return elems.hash;
},undefined,List.$$.prototype.$prop$getHash.$crtmm$);
atr$(that,'rest',function(){
return elems.size===1?getEmpty():tpl$(elems.slice(1),{t:'T',l:_t.l.slice(1)});
},undefined,Tuple.$$.prototype.$prop$getRest.$crtmm$);
atr$(that,'size',function(){
return elems.size;
},undefined,Tuple.$$.prototype.$prop$getSize.$crtmm$);
atr$(that,'lastIndex',function(){
return elems.size-1;
},undefined,Tuple.$$.prototype.$prop$getLastIndex.$crtmm$);
atr$(that,'last',function(){
return elems[elems.size-1];
},undefined,Tuple.$$.prototype.$prop$getLast.$crtmm$);
that.nativeArray=function() { return elems; }
return that;
}
ex$.tpl$=tpl$;
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;
map = map[_p];
}
return map;
}
function pushTypes(list, types) {
for (var i=0; i<types.length; i++) {
var t = types[i];
if (t.t === 'u') {
list.push(applyUnionType(t, t.l));
} else if (t.t === 'i') {
list.push(applyIntersectionType(t, t.l));
} else {
list.push(typeLiteral$meta({Type$typeLiteral:t}));
}
}
return list;
}
function applyUnionType(ut) { //return AppliedUnionType
var cases = [];
pushTypes(cases, ut.l);
return AppliedUnionType$jsint(ut, cases.rt$({t:Type$meta$model}), {Union$AppliedUnionType:{t:Anything}});
}
function applyIntersectionType(it) { //return AppliedIntersectionType
var sats = [];
pushTypes(sats, it.l);
return AppliedIntersectionType$jsint(it, sats.rt$({t:Type$meta$model}), {Intersection$AppliedIntersectionType:{t:Anything}});
}
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) {
path = path.split(':');
path.push('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 fmp$(m,v,p) {
return getModules$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 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 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))throw IncompatibleTypeException$meta$model(msg);
return true;
}
} else { //it's already a tuple, navigate it
console.log("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");
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.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 qname$(mm) {
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 resolve$typearg(ta,mm) {
var 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) {
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=[];
var fa=[];
var sarg;
for (var i=0; i<ps.length;i++) { //check def/seq params
var p=ps[i];
var val_t=sarg?sarg.$$targs$$.a.Element$Iterable:p.$t,mm;
if (typeof(val_t)==='string')val_t=resolve$typearg(val_t,mm);
if (a[i]===undefined) {
if (p.def||p.seq)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);
sarg=[].rt$(val_t); fa.push(sarg);
for (var j=i; j<a.size;j++){
if (!is$(a[j],val_t))throw IncompatibleTypeException$meta$model("Wrong type for argument " + j + ", expected " + typeLiteral$meta({Type$typeLiteral:val_t}).string + " got " + className(a[j]));
sarg.push(a[j]);
}
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}).string + " got " + className(a[i]));
}
if (a.size>i)throw InvocationException$meta$model("Too many arguments");
a = fa;
return a;
}
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 JsResource$jsint(uri,jsResource$){$init$JsResource$jsint();if(jsResource$===undefined)jsResource$=new JsResource$jsint.$$;
jsResource$.uri_=uri;Resource(jsResource$);jsResource$.$prop$getUri={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:JsResource$jsint,pa:3,d:['ceylon.language.jsint','JsResource','$at','uri']};}};jsResource$.$prop$getUri.get=function(){return uri};jsResource$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:JsResource$jsint,pa:67,d:['ceylon.language.jsint','JsResource','$at','size']};}};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}],pa:64,d:['ceylon.language.jsint','JsResource']};};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 (getRuntime().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 (getRuntime().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:67,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 (getRuntime().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 (getRuntime().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:67,d:['ceylon.language.jsint','JsResource','$m','textContent']};};})(JsResource$jsint.$$.prototype);}
return JsResource$jsint;}
ex$.$init$JsResource$jsint=$init$JsResource$jsint;$init$JsResource$jsint();function AppliedClass(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();
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function(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(){
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.$$;
that.$$=AppliedClass.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=function(o){
var eq=is$(o,{t:AppliedClass}) && o.tipo===tipo;
return eq;
};
that.$_apply=function(x){return AppliedClass.$$.prototype.$_apply.call(that,x);};
that.$_apply.$crtmm$=AppliedClass.$$.prototype.$_apply.$crtmm$;
that.namedApply=function(x){return AppliedClass.$$.prototype.namedApply.call(that,x);};
that.namedApply.$crtmm$=AppliedClass.$$.prototype.namedApply.$crtmm$;
}
that.$targs=classTargs;
atr$(that,'satisfiedTypes',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getSatisfiedTypes.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getExtendedType.$crtmm$);
atr$(that,'container',function(){
return coicont$(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getContainer.$crtmm$);
atr$(that,'string',function(){return coistr$(that); },undefined,$_Object({}).$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,Identifiable.$$.prototype.$prop$getHash.$crtmm$);
atr$(that,'typeArguments',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getTypeArguments.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$(that,'extendedType',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getExtendedType.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getExtendedType.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,ClassModel$meta$model.$$.prototype.$prop$getDeclaration.$crtmm$);
atr$(that,'parameterTypes',function(){
return clsparamtypes(that);
},undefined,ClassModel$meta$model.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(that,'caseValues',function(){
return coicase$(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getCaseValues.$crtmm$);
that.getMethod=ClassOrInterface$meta$model.$$.prototype.getMethod;
that.getDeclaredMethod=ClassOrInterface$meta$model.$$.prototype.getDeclaredMethod;
that.getMethods=ClassOrInterface$meta$model.$$.prototype.getMethods;
that.getDeclaredMethods=ClassOrInterface$meta$model.$$.prototype.getDeclaredMethods;
that.getAttribute=ClassOrInterface$meta$model.$$.prototype.getAttribute;
that.getDeclaredAttribute=ClassOrInterface$meta$model.$$.prototype.getDeclaredAttribute;
that.getAttributes=ClassOrInterface$meta$model.$$.prototype.getAttributes;
that.getDeclaredAttributes=ClassOrInterface$meta$model.$$.prototype.getDeclaredAttributes;
that.getClassOrInterface=ClassOrInterface$meta$model.$$.prototype.getClassOrInterface;
that.getDeclaredClassOrInterface=ClassOrInterface$meta$model.$$.prototype.getDeclaredClassOrInterface;
that.getClass=ClassOrInterface$meta$model.$$.prototype.getClass;
that.getDeclaredClass=ClassOrInterface$meta$model.$$.prototype.getDeclaredClass;
that.getClasses=ClassOrInterface$meta$model.$$.prototype.getClasses;
that.getDeclaredClasses=ClassOrInterface$meta$model.$$.prototype.getDeclaredClasses;
that.getInterface=ClassOrInterface$meta$model.$$.prototype.getInterface;
that.getDeclaredInterface=ClassOrInterface$meta$model.$$.prototype.getDeclaredInterface;
that.getInterfaces=ClassOrInterface$meta$model.$$.prototype.getInterfaces;
that.getDeclaredInterfaces=ClassOrInterface$meta$model.$$.prototype.getDeclaredInterfaces;
that.equals=function(o) {
return is$(o,{t:AppliedClass}) && o.tipo===this.tipo && this.typeArguments.equals(o.typeArguments);
};
that.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf;
that.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf;
that.subtypeOf=ClassOrInterface$meta$model.$$.prototype.subtypeOf;
that.exactly=ClassOrInterface$meta$model.$$.prototype.exactly;
Class$meta$model(that.$$targs$$===undefined?$$targs$$:{Arguments$Class:that.$$targs$$.Arguments$AppliedClass,
Type$Class:that.$$targs$$.Type$AppliedClass},that);
set_type_args(that,$$targs$$,AppliedClass);
that.tipo=tipo;
return that;
}
AppliedClass.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},tp:{Type$AppliedClass:{dv:'out','def':{t:Anything}},Arguments$AppliedClass:{dv:'in',sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}],'def':{t:Nothing}}},sts:[{t:Class$meta$model,a:{Arguments$Class:'Arguments$Class',Type$Class:'Type$Class'}}],pa:1,d:['ceylon.language.meta.model','Class']};};
function $init$AppliedClass(){
if (AppliedClass.$$===undefined){
initTypeProto(AppliedClass,'ceylon.language.meta.model::AppliedClass',Basic,Class$meta$model);
(function($$clase){
$$clase.$_apply=function(a){
var mdl=get_model(this.tipo.$crtmm$);
if (mdl&&mdl.mt==='o')throw InvocationException$meta$model("Cannot instantiate anonymous class");
a=convert$params(this.tipo.$crtmm$,a);
if (this.$targs)a.push(this.$targs);
return this.tipo.apply(undefined,a);
};$$clase.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$Applicable',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}},an:function(){return[];}}],$cont:Applicable$meta$model,an:function(){return[doc$('ceylon.language.meta.model:Applicable:$m:apply'),$throws("IncompatibleTypeException",""),$throws("InvocationException",""),shared(),formal()];},d:['ceylon.language.meta.model','Applicable','$m','apply']};};
$$clase.namedApply=function(args){
var mdl=get_model(this.tipo.$crtmm$);
if (mdl&&mdl.mt==='o')throw InvocationException$meta$model("Cannot instantiate anonymous class");
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())!==getFinished()) {
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);
};$$clase.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$Applicable',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Element$Iterable:{t:Entry,a:{Item$Entry:{t:$Object},Key$Entry:{t:$_String}}},Absent$Iterable:{t:Null}}},an:function(){return[];}}],$cont:Applicable$meta$model,an:function(){return[doc$('ceylon.language.meta.model:Applicable:$m:namedApply'),$throws("IncompatibleTypeException",""),$throws("InvocationException",""),shared(),formal()];},d:['ceylon.language.meta.model','Applicable','$m','namedApply']};};
})(AppliedClass.$$.prototype);
}
return AppliedClass;
}
ex$.$init$AppliedClass$meta$model=$init$AppliedClass;
$init$AppliedClass();
function AppliedMemberClass(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();
if (that===undefined) {
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function(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(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(tipo,{Type$AppliedClass:$$targs$$.Type$AppliedMemberClass,Arguments$AppliedClass:$$targs$$.Arguments$AppliedMemberClass},that);
var dummy = new AppliedMemberClass.$$;
that.$$=AppliedMemberClass.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=function(o){
var eq=is$(o,{t:AppliedMemberClass}) && o.tipo===tipo;
if (that.$bound)eq=eq && o.$bound && o.$bound.equals(that.$bound);else eq=eq && o.$bound===undefined;
return eq && this.typeArguments.equals(o.typeArguments);
};
that.$targs=myTargs;
atr$(that,'parameterTypes',function(){
return clsparamtypes(that);
},undefined,ClassModel$meta$model.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(that,'extendedType',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getExtendedType.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getSatisfiedTypes.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getExtendedType.$crtmm$);
atr$(that,'caseValues',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getCaseValues.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getCaseValues.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,ClassModel$meta$model.$$.prototype.$prop$getDeclaration.$crtmm$);
that.$_bind=function(){return AppliedMemberClass.$$.prototype.$_bind.apply(that,arguments);}
atr$(that,'string',function(){return coistr$(that); },undefined,$_Object({}).$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,Identifiable.$$.prototype.$prop$getHash.$crtmm$);
atr$(that,'container',function(){return coicont$(that); },undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getContainer.$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);
that.tipo=tipo;
return that;
}
AppliedMemberClass.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$MemberClass:{dv:'in'},Type$MemberClass:{dv:'out','def':{t:Anything}},Arguments$MemberClass:{dv:'in',sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}],'def':{t:Nothing}}},sts:[{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$MemberClass',Type$MemberClass:'Type$MemberClass',Container$MemberClass:'Container$MemberClass'}}],an:function(){return[shared(),$_abstract()];},d:['','AppliedMemberClass']};};
ex$.AppliedMemberClass=AppliedMemberClass;
function $init$AppliedMemberClass(){
if (AppliedMemberClass.$$===undefined){
initTypeProto(AppliedMemberClass,'ceylon.language.meta.model::AppliedMemberClass',Basic,MemberClass$meta$model);
(function($$amc){
$$amc.$_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);
};$$amc.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Arguments$Class:'Arguments',Type$Class:'Type'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object},an:function(){return[];}}],$cont:MemberClass$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','MemberClass','$m','bind']};};
})(AppliedMemberClass.$$.prototype);
}
return AppliedMemberClass;
}
ex$.$init$AppliedMemberClass$meta$model=$init$AppliedMemberClass;
$init$AppliedMemberClass();
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(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,'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:65,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:67,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:67,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:67,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:{Type$Type:{t:Anything}}}]},$cont:AppliedInterface$jsint,pa:67,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.typeArguments.equals(o.typeArguments);
}
appliedInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedInterface$jsint,pa:67,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:{Type$Type:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:67,d:['ceylon.language.jsint','AppliedInterface','$at','typeArguments']};});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:67,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:67,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:{Type$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:67,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:67,d:['ceylon.language.jsint','AppliedInterface','$m','typeOf']};};appliedInterface$.supertypeOf=function(t){
return extendsType({t:t.tipo}, {t:this.tipo});
}
appliedInterface$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}}],$cont:AppliedInterface$jsint,pa:67,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:{Type$Type:{t:Anything}}}}],$cont:AppliedInterface$jsint,pa:67,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:{Type$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:67,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:{Type$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:67,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:{Type$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:67,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:{Type$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:67,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:{Type$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:67,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:{Type$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:67,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:{Type$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:67,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:{Type$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:67,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:{Type$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:67,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:{Type$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:67,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:67,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:67,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:{Type$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:67,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:{Type$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:67,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:{Type$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:67,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:{Type$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:67,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:{Type$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:67,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:67,d:['ceylon.language.jsint','AppliedInterface','$at','caseValues']};});})(AppliedInterface$jsint.$$.prototype);}
return AppliedInterface$jsint;}
ex$.$init$AppliedInterface$jsint=$init$AppliedInterface$jsint;$init$AppliedInterface$jsint();function AppliedMemberInterface(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();
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function(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.$$;
}
}
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);
that.$targs=myTargs;
that.getMethod=ClassOrInterface$meta$model.$$.prototype.getMethod;
that.getDeclaredMethod=ClassOrInterface$meta$model.$$.prototype.getDeclaredMethod;
that.getAttribute=ClassOrInterface$meta$model.$$.prototype.getAttribute;
that.getDeclaredAttribute=ClassOrInterface$meta$model.$$.prototype.getDeclaredAttribute;
that.getClassOrInterface=ClassOrInterface$meta$model.$$.prototype.getClassOrInterface;
that.getDeclaredClassOrInterface=ClassOrInterface$meta$model.$$.prototype.getDeclaredClassOrInterface;
that.getClass=ClassOrInterface$meta$model.$$.prototype.getClass;
that.getDeclaredClass=ClassOrInterface$meta$model.$$.prototype.getDeclaredClass;
that.getInterface=ClassOrInterface$meta$model.$$.prototype.getInterface;
that.getDeclaredInterface=ClassOrInterface$meta$model.$$.prototype.getDeclaredInterface;
that.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf;
that.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf;
that.subtypeOf=ClassOrInterface$meta$model.$$.prototype.subtypeOf;
that.exactly=ClassOrInterface$meta$model.$$.prototype.exactly;
that.tipo=tipo;
var dummy = new AppliedMemberInterface.$$;
that.$$=AppliedMemberInterface.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=function(o){
var eq=is$(o,{t:AppliedMemberInterface}) && (o.tipo$2||o.tipo)==tipo;
if (that.$bound)eq=eq && o.$bound && o.$bound.equals(that.$bound);else eq=eq && o.$bound===undefined;
return eq && this.typeArguments.equals(o.typeArguments);
};
atr$(that,'string',function(){return coistr$(that); },undefined,$_Object({}).$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,Identifiable.$$.prototype.$prop$getHash.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,InterfaceModel$meta$model.$$.prototype.$prop$getDeclaration.$crtmm$);
atr$(that,'typeArguments',function(){
return ClassOrInterface$meta$model.$$.prototype.$prop$getTypeArguments.get.call(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$(that,'container',function(){
return coicont$(that);
},undefined,ClassOrInterface$meta$model.$$.prototype.$prop$getContainer.$crtmm$);
that.$_bind=function(x){return AppliedMemberInterface.$$.prototype.$_bind.call(that,x);}
return that;
}
AppliedMemberInterface.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$MemberInterface:{dv:'in'},Type$MemberInterface:{dv:'out','def':{t:Anything}}},sts:[{t:MemberInterface$meta$model,a:{Type$MemberInterface:'Type$MemberInterface',Container$MemberInterface:'Container$MemberInterface'}}],an:function(){return[shared(),$_abstract()];},d:['ceylon.language.meta.model','MemberInterface']};};
ex$.AppliedMemberInterface=AppliedMemberInterface;
function $init$AppliedMemberInterface(){
if (AppliedMemberInterface.$$===undefined){
initTypeProto(AppliedMemberInterface,'ceylon.language.meta.model::AppliedMemberInterface',Basic,MemberInterface$meta$model);
(function($$appliedMemberInterface){
$$appliedMemberInterface.$_bind=function $_bind(container$2){
var $$appliedMemberInterface=this;
throw Exception("IMPL MemberInterface.bind");
};$$appliedMemberInterface.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$Interface'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object},an:function(){return[];}}],$cont:MemberInterface,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','MemberInterface','$m','bind']};};
})(AppliedMemberInterface.$$.prototype);
}
return AppliedMemberInterface;
}
ex$.$init$AppliedMemberInterface$meta$model=$init$AppliedMemberInterface;
$init$AppliedMemberInterface();
function AppliedFunction(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.size<1)throw TypeApplicationException$meta$model("Missing type arguments for AppliedFunction");
var i=0;ttargs={};
for (var tp in mm.tp) {
var _ta=mptypes.$_get?mptypes.$_get(i):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(x){
return AppliedFunction(m,$$targs$$,x,mptypes);
}:function(){
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.$$;
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;
atr$(f,'typeArguments',function(){
return funtypearg$(f);
},undefined,FunctionModel$meta$model.$$.prototype.$prop$getTypeArguments.$crtmm$);
f.equals=function(oo){
return is$(oo,{t:AppliedFunction}) && oo.tipo===m && oo.typeArguments.equals(this.typeArguments) && (o?o.equals(oo.$bound):oo.$bound===o);
}
atr$(f,'string',function(){
return funmodstr$(f);
},undefined,$_Object({}).$prop$getString.$crtmm$);
atr$(f,'parameterTypes',function(){
return funparamtypes(f);
},undefined,FunctionModel$meta$model.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(f,'declaration',function(){
if (f._decl)return f._decl;
var _m=typeof(mm.mod)==='function'?mm.mod():mm.mod;
f._decl = OpenFunction(getModules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), m);
return f._decl;
},undefined,function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},d:['ceylon.language.meta.model','FunctionModel','$at','declaration']};});
atr$(f,'container',function(){
if (o===undefined)return f.containingPackage;
if (f.$parent===undefined) {
if (mm.$cont===0) {
f.$parent=f.containingPackage;
} else {
f.$parent=type$meta(o,{Type$type:mm.$cont});
}
}
return f.$parent;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Type$Type:{t:Anything}}}]},$cont:AppliedFunction,d:['ceylon.language.meta.model','Model','$at','container']};});
f.$_apply=function(a){
a=convert$params(mm,a);
if (ttargs) {
var _a=[];
for (var i=0;i<a.size;i++)_a.push(a.$_get(i));
_a.push(ttargs);
a=_a;
}
return m.apply(o,a);
}
f.namedApply=function(args) {
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())!==getFinished()) {
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'&&ttargs)t=ttargs[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 (ttargs) {
ordered.push(ttargs);
}
return m.apply(o,ordered);
}
return f;
}
AppliedFunction.$crtmm$=function(){return{mod:$CCMM$,d:['ceylon.language.meta.model','Function'],sts:{t:$_Function$meta$model,a:{Type$Function:'Type$Function',Arguments$Function:'Arguments$Function'}},an:function(){return [shared(),actual()];}};};
ex$.AppliedFunction$meta$model=AppliedFunction;
initTypeProto(AppliedFunction,'ceylon.language.meta.model::AppliedFunction',Basic,$_Function$meta$model);
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(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:65,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:67,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:67,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:67,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 = getModules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
return OpenValue$jsint(_pkg, $$av.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:AppliedValue$jsint,pa:75,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:{Type$Type:'Get$AppliedValue'}},$cont:AppliedValue$jsint,pa:67,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:{Type$Type:{t:Anything}}}]},$cont:AppliedValue$jsint,pa:67,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:67,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:67,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:67,d:['ceylon.language.jsint','AppliedValue','$m','equals']};};})(AppliedValue$jsint.$$.prototype);}
return AppliedValue$jsint;}
ex$.$init$AppliedValue$jsint=$init$AppliedValue$jsint;$init$AppliedValue$jsint();function AppliedMethod(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();
var mm = getrtmm$$(tipo);
if (mm.tp) {
if (typeArgs===undefined || typeArgs.size<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.$_get(i)===undefined)
throw TypeApplicationException$meta$model("Missing type argument for "+tp);
var _tp = mm.tp[tp];
var _t = typeArgs.$_get(i).tipo;
_ta[tp]={t:_t};
if (_tp.sts) {
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) {
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(x){
return AppliedFunction(tipo,{Type$Function:$$targs$$.Type$Method,Arguments$Function:$$targs$$.Arguments$Method,
Container$Function:$$targs$$.Container$Method},x,typeArgs);
}
var dummy=new AppliedMethod.$$;
$$appliedMethod.getT$all=function(){return dummy.getT$all();};
$$appliedMethod.getT$name=function(){return dummy.getT$name();};
}
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);
$$appliedMethod.tipo=tipo;
atr$($$appliedMethod,'declaration',function(){
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _pkg = getModules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
return OpenFunction(_pkg, $$appliedMethod.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:AppliedMethod,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Method','$at','declaration']};});
atr$($$appliedMethod,'type',function(){
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:{Type$Type:'Type'}},$cont:AppliedMethod,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Method','$at','type']};});
atr$($$appliedMethod,'typeArguments',function(){
return funtypearg$($$appliedMethod);
},undefined,FunctionModel$meta$model.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$($$appliedMethod,'parameterTypes',function(){
return funparamtypes($$appliedMethod);
},undefined,FunctionModel$meta$model.$$.prototype.$prop$getParameterTypes.$crtmm$);
$$appliedMethod.equals=function(o){
return is$(o,{t:AppliedMethod}) && o.tipo===tipo && o.typeArguments.equals(this.typeArguments);
}
$$appliedMethod.$_bind=function(o){
if (!is$(o,{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Cannot bind " + $$appliedMethod.string + " to "+o);
return $$appliedMethod(o);
}
atr$($$appliedMethod,'string',function(){
return funmodstr$($$appliedMethod);
},undefined,$_Object({}).$prop$getString.$crtmm$);
atr$($$appliedMethod,'container',function(){
if (this.toplevel || getrtmm$$(this.tipo).$cont===0)return this.containingPackage;
if (this.$parent===undefined)this.$parent=typeLiteral$meta({Type$typeLiteral:getrtmm$$(this.tipo).$cont});
return this.$parent;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Type$Type:{t:Anything}}}]},$cont:AppliedMethod,d:['ceylon.language.meta.model','Model','$at','container']};});
return $$appliedMethod;
}
AppliedMethod.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},tp:{Container$Method:{dv:'in'},Type$Method:{dv:'out','def':{t:Anything}},Arguments$Method:{dv:'in',sts:[{t:Sequential,a:{Element$Iterable:{t:Anything}}}],'def':{t:Nothing}}},sts:[{t:Method$meta$model,a:{Arguments$Method:'Arguments$Method',Type$Method:'Type$Method',Container$Method:'Container$Method'}}],pa:1,d:['ceylon.language.meta.model','Method']};};
ex$.AppliedMethod$meta$model=AppliedMethod;
function $init$AppliedMethod(){
if (AppliedMethod.$$===undefined){
initTypeProto(AppliedMethod,'ceylon.language.meta.model::AppliedMethod',Basic,Method$meta$model);
(function($$appliedMethod){
})(AppliedMethod.$$.prototype);
}
return AppliedMethod;
}
ex$.$init$AppliedMethod$meta$model=$init$AppliedMethod;
$init$AppliedMethod();
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,'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 = getModules$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 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 _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();
}
return rv;
}
function _openTypeFromTarg(targ,o) {
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)(tl.rt$({t:OpenType$meta$declaration}));
} else if (targ.t==='T') {
var mm=getrtmm$$(Tuple);
var lit = typeLiteral$meta({Type$typeLiteral:targ});
} else {
var mm=getrtmm$$(targ.t);
var 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 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});
var _mod = getModules$meta().find(_m['$mod-name'],_m['$mod-version']);
ifc._decl = (cls?OpenClass$jsint:OpenInterface$jsint)(_mod.findPackage(mm.d[0]), ifc.tipo);
return ifc._decl;
}
function clsparamtypes(cls) {
var ps=cls.tipo.$crtmm$.ps;
if (!ps || ps.length==0)return getEmpty();
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}));
}
return r.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:{t:Type$meta$model,a:{t:Anything}}});
}
function funparamtypes(fun) {
var ps=fun.tipo.$crtmm$.ps;
if (!ps || ps.length==0)return getEmpty();
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}));
}
return r.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:{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];
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) {
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,targ];
ord.push(param.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}});
}
return getEmpty();
}
throw Exception("FunctionModel.typeArguments-we don't have a metamodel!");
}
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 _t={t:cont};
var _out=undefined;
if (coi.src$ && coi.src$.outer$) {
_out=coi.src$.outer$;
if (_out.$$targs$$) {
_t.a=_out.$$targs$$;
}
}
var rv;
if (get_model(cmm).mt === 'i')
rv=AppliedInterface$jsint(cont,{Type$Interface:_t});
rv=AppliedClass(cont,{Type$Class:_t,Arguments$Class:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
if (_out)rv.src$=_out;
return rv;
}
function coistr$(coi) {
var mm = getrtmm$$(coi.tipo);
var qn=coi.tipo.$$ && coi.tipo.$$.prototype && coi.tipo.$$.prototype.getT$name ? coi.tipo.$$.prototype.getT$name() : qname$(mm);
if (mm.tp) {
qn+="<";
var first=true;
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});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
if (first)first=false; else qn+=",";
if (targ.declaration) {
qn+=targ.declaration.qualifiedName;
} else {
qn+=targ.string;
}
}
qn+=">";
}
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});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
h+=targ.hash;
}
}
if (coi.$bound)h+=coi.$bound.hash;
return h;
}
function coitarg$(coi){
var mm = getrtmm$$(coi.tipo);
if (mm) {
if (mm.tp) {
var targs={};
var ord=[];
for (var tp in mm.tp) {
var param = OpenTypeParam$jsint(coi.tipo,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});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
targs[param.qualifiedName]=[param,targ];
ord.push(param.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:{t:Type$meta$model,a:{Type$Type:{t:Anything}}}});
}
return getEmpty();
}
throw new Error("ClassOrInterface.typeArguments: missing metamodel!");
}
function coiexttype$(coi){
var sc = coi.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var ac;
if (mm.$cont) {
ac=AppliedMemberClass(sc.t, {Type$MemberClass:sc,Arguments$MemberClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}},Container$MemberClass:mm.$cont});
} else {
ac=AppliedClass(sc.t, {Type$Class:sc,Arguments$Class:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
}
if (sc.a)ac.$targs=sc.a;
return ac;
}
function coisattype$(coi){
var ints = coi.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
function resolveTypeArguments(root,type) {
if (type.a) {
var t2 = {t:type.t, a:{}};
for (var targ in type.a) {
t2.a[targ]=typeof(type.a[targ])==='string' ?
t2.a[targ]=root.$$targs$$.Type$ClassOrInterface.a[type.a[targ]]
: t2.a[targ]=type.a[targ];
if (t2.a[targ] && t2.a[targ].a) {
t2.a[targ]=resolveTypeArguments(root,t2.a[targ]);
}
}
type=t2;
}
return type;
}
for (var i=0; i < ints.length; i++) {
var ifc = resolveTypeArguments(coi,ints[i]);
var mm=getrtmm$$(ifc.t);
if (mm.$cont) {
rv.push(AppliedMemberInterface(ifc.t, {Type$MemberInterface:ifc}));
} else {
rv.push(AppliedInterface$jsint(ifc.t, {Type$Interface:ifc}));
}
}
return rv.rt$({t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}});
}
return getEmpty();
}
function coigetcoi$(coi,name$2,types$3,$$$mptypes,noInherit){
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=getEmpty();}
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(ic, {Container$MemberInterface:_cont,Type$MemberInterface: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(ic, {Container$MemberClass:_cont,Type$MemberClass:ict, Arguments$MemberClass:$$$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 coiTypeOf(coi,instance$8){
var _t={t:coi.tipo};
if (coi.$targs)_t.a=coi.$targs;
return is$(instance$8,_t);
}
function coiclasse$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=getEmpty();
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(mem, {Container$MemberClass:_tipo,Type$MemberClass:{t:mem}, Arguments$MemberClass:$$$mptypes.Arguments$getClasses}));
}
}
}
}
return mems.length===0?getEmpty():ArraySequence(mems,{Element$ArraySequence:{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})) {
throw IncompatibleTypeException$meta$model("Member " + name + " is not a class");
}
return rv;
}
function coigetifc$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=getEmpty();
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(mem, {Container$MemberInterface:_tipo,Type$MemberInterface:{t:mem}}));
}
}
}
}
return mems.length===0?getEmpty():ArraySequence(mems,{Element$ArraySequence:{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})) {
throw IncompatibleTypeException$meta$model("Member " + name + " is not an interface");
}
return rv;
}
function coiatr$(coi,name,m,noInherit){
if (!extendsType({t:coi.tipo},m.Container$getAttribute && m.Container$getAttribute.t!==Nothing)) {
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)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 (noInherit && at) {
var mm=getrtmm$$(at);
if (mm&&mm.$cont!==coi.tipo)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=getEmpty();
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 (noInherit && mm.$cont!==coi.tipo)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.length==0?getEmpty():ArraySequence(mems,{Element$ArraySequence:{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 (!extendsType({t:coi.tipo},$$$mptypes.Container$getMethod) && $$$mptypes.Container$getMethod.t!==Nothing) {
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
}
if (types===undefined)types=getEmpty();
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getMethod);
var fun = _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 (fun && noInherit) {
var mm=getrtmm$$(fun);
if (mm && mm.$cont!==coi.tipo)return null;
}
return AppliedMethod(fun, types, {Container$Method:{t:_tipo},Type$Method:_t,Arguments$Method:_a});
}
function coigetmtd$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=getEmpty();
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 (noInherit && mm.$cont!==coi.tipo)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=[].rt$({t:Type$meta$model,a:{Type:{t:Anything}}});
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(mem,undefined,{Container$Method:{t:_tipo},Type$Method:mm.$t,Arguments$Method:types}));
}
}
}
}
return mems.length===0?getEmpty():ArraySequence(mems,{Element$ArraySequence:{t:Method$meta$model,a:{Container$Method:$$$mptypes.Container$getMethods,Arguments$Method:$$$mptypes.Arguments$getMethods,Type$Method:$$$mptypes.Type$getMethods}}});
}
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.length===0?getEmpty():ArraySequence(rv,{Element$ArraySequence:{t:coi.tipo}});
}
return getEmpty();
}
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 ocoitarg$(coi) {
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,targ];
ord.push(otp.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:{t:OpenType$meta$declaration}});
}
return getEmpty();
}
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===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 FreeClass$jsint(declaration,freeClass$){$init$FreeClass$jsint();if(freeClass$===undefined)freeClass$=new FreeClass$jsint.$$;
freeClass$.declaration_=declaration;OpenClassType$meta$declaration(freeClass$);freeClass$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:FreeClass$jsint,pa:3,d:['ceylon.language.jsint','FreeClass','$at','declaration']};}};freeClass$.$prop$getDeclaration.get=function(){return declaration};freeClass$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:FreeClass$jsint,pa:67,d:['ceylon.language.jsint','FreeClass','$at','extendedType']};}};freeClass$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:FreeClass$jsint,pa:67,d:['ceylon.language.jsint','FreeClass','$at','satisfiedTypes']};}};freeClass$.$prop$getTypeArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:FreeClass$jsint,pa:67,d:['ceylon.language.jsint','FreeClass','$at','typeArguments']};}};freeClass$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeClass$jsint,pa:67,d:['ceylon.language.jsint','FreeClass','$at','string']};}};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:65,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:67,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:67,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:67,d:['ceylon.language.jsint','FreeClass','$at','typeArguments']};});freeClass$.equals=function(other) {
return is$(other,{t:FreeClass$jsint}) &&
other.declaration.equals(this.declaration) &&
this.typeArguments.equals(other.typeArguments);
}
freeClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeClass$jsint,pa:67,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:67,d:['ceylon.language.jsint','FreeClass','$at','string']};});})(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$);freeInterface$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:FreeInterface$jsint,pa:3,d:['ceylon.language.jsint','FreeInterface','$at','declaration']};}};freeInterface$.$prop$getDeclaration.get=function(){return declaration};freeInterface$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:FreeInterface$jsint,pa:67,d:['ceylon.language.jsint','FreeInterface','$at','extendedType']};}};freeInterface$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:FreeInterface$jsint,pa:67,d:['ceylon.language.jsint','FreeInterface','$at','satisfiedTypes']};}};freeInterface$.$prop$getTypeArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:FreeInterface$jsint,pa:67,d:['ceylon.language.jsint','FreeInterface','$at','typeArguments']};}};freeInterface$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeInterface$jsint,pa:67,d:['ceylon.language.jsint','FreeInterface','$at','string']};}};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:65,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:67,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:67,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:67,d:['ceylon.language.jsint','FreeInterface','$at','typeArguments']};});freeInterface$.equals=function(other) {
return is$(other,{t:FreeInterface$jsint}) &&
other.declaration.equals(this.declaration) &&
this.typeArguments.equals(other.typeArguments);
}
freeInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeInterface$jsint,pa:67,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:67,d:['ceylon.language.jsint','FreeInterface','$at','string']};});})(FreeInterface$jsint.$$.prototype);}
return FreeInterface$jsint;}
ex$.$init$FreeInterface$jsint=$init$FreeInterface$jsint;$init$FreeInterface$jsint();function OpenFunction(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();
if (that===undefined)that=new OpenFunction.$$;
that._pkg=pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
that.meta=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm=getrtmm$$(that.tipo);
} else {
that.tipo = meta;
that.meta = get_model(_mm);
}
that.name_=(that.meta&&that.meta.nm)||'?';
that.toplevel_=_mm===undefined||_mm.$cont===undefined;
FunctionDeclaration$meta$declaration(that);
return that;
}
OpenFunction.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:FunctionDeclaration$meta$declaration}],d:['ceylon.language.meta.declaration','FunctionDeclaration']};};
function $init$OpenFunction(){
if (OpenFunction.$$===undefined){
initTypeProto(OpenFunction,'ceylon.language.meta.declaration::OpenFunction',Basic,FunctionDeclaration$meta$declaration);
(function($$openFunction){
$$openFunction.equals=function(o) {
if (is$(o,{t:OpenFunction})) {
return o.tipo === this.tipo;
}
return false;
}
$$openFunction.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},d:['$','Object','$m','equals']};}
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}]},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','container']};});
atr$($$openFunction,'annotation',function(){
return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','annotation']};});
$$openFunction.$_apply=function $_apply(types,$mptypes){
var mm=this.tipo.$crtmm$;
var ta={t:this.tipo};
validate$typeparams(ta,mm.tp,types);
validate$params(mm.ps,$mptypes.Arguments$apply,"Wrong number of arguments when applying function");
return ta.a?AppliedFunction(this.tipo,{Type:mm.$t,Arguments:tupleize$params(mm.ps,ta.a)},undefined,ta.a):
AppliedFunction(this.tipo,{Type:mm.$t,Arguments:tupleize$params(mm.ps)});
};$$openFunction.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments:{t:Nothing},Type:{t:Anything}}},ps:[{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model}}}}],$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$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!==getNothingType$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(this.tipo,types,{Container$Method:$mptypes.Container$memberApply,
Type$Method:mm.$t,Arguments$Method:tupleize$params(mm.ps,ta.a)});
};$$openFunction.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Arguments:'Arguments',Type:'MethodType',Container:'Container'}},ps:[{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model}}}}],$cont:OpenFunction,tp:{Container:{},MethodType:{},Arguments:{'sts':[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','memberApply']};};
atr$($$openFunction,'defaulted',function(){
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','defaulted']};});
atr$($$openFunction,'variadic',function(){
var $$openFunction=this;
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','variadic']};});
$$openFunction.getParameterDeclaration=function (name$6){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name$6.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,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','getParameterDeclaration']};};
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,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','openType']};});
atr$($$openFunction,'name',function(){return this.name_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','name']};});
atr$($$openFunction,'containingPackage',function(){return this._pkg;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','containingPackage']};});
atr$($$openFunction,'containingModule',function(){return this._pkg.container;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','containingPackage']};});
atr$($$openFunction,'toplevel',function(){return this.toplevel_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','toplevel']};});
atr$($$openFunction,'string',function(){return "function " + this.qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','Declaration','$at','string']};});
atr$($$openFunction,'qualifiedName',function(){
return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction,pa:3,d:['ceylon.language.meta.declaration','Declaration','$at','qualifiedName']};});
})(OpenFunction.$$.prototype);
}
return OpenFunction;
}
ex$.OpenFunction=OpenFunction;
$init$OpenFunction();
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);
}
that.name_=that.meta?that.meta.nm:_mm&&_mm.d&&_mm.d[_mm.d.length-1];
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:65,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:67,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:67,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!==getNothingType$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:{Type$Type:'Container$memberApply'}}}],$cont:OpenValue$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:67,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:67,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:67,d:['ceylon.language.jsint','OpenValue','$at','variable']};});atr$(openValue$,'objectValue',function(){return this.meta&&this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:67,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:67,d:['ceylon.language.jsint','OpenValue','$at','objectClass']};});atr$(openValue$,'defaulted',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','defaulted']};});atr$(openValue$,'variadic',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','variadic']};});atr$(openValue$,'parameter',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','parameter']};});openValue$.annotations=function(m){
return AnnotatedDeclaration$meta$declaration.$$.prototype.annotations.call(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:67,d:['ceylon.language.jsint','OpenValue','$m','annotations']};};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:67,d:['ceylon.language.jsint','OpenValue','$at','openType']};});atr$(openValue$,'setter',function(){return OpenSetter(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:SetterDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:67,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:67,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:67,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:67,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:67,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:67,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;
return typeLiteral$meta({Type$typeLiteral:this.tipo.$crtmm$.$cont});
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:67,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:67,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:67,d:['ceylon.language.jsint','OpenValue','$m','equals']};};atr$(openValue$,'string',function(){var openValue$=this;return "value ".plus(openValue$.qualifiedName).plus("");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','string']};});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 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.$t,ps:param.ps,mt:'prm',d:cont.tipo.$crtmm$.d,an:param.an}};
$$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.$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: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 false;},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 false;},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 false;},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 false;},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$(cont.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,'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=getEmpty();}
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=getEmpty();}
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.$$.prototype);
}
return FunParamDecl;
}
ex$.$init$FunParamDecl=$init$FunParamDecl;
$init$FunParamDecl();
function ValParamDecl(cont,param,$$valParamDecl){
$init$ValParamDecl();
if ($$valParamDecl===undefined)$$valParamDecl=new ValParamDecl.$$;
ValueDeclaration$meta$declaration($$valParamDecl);
$$valParamDecl.cont=cont;
$$valParamDecl.param=param;
$$valParamDecl.tipo={$crtmm$:{$cont:cont.tipo,$t:param.$t,mt:'prm',d:cont.tipo.$crtmm$.d,an:param.an}};
return $$valParamDecl;
}
ValParamDecl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:ValueDeclaration$meta$declaration}],d:['ceylon.language.meta.declaration','ValParamDecl']};};
function $init$ValParamDecl(){
if (ValParamDecl.$$===undefined){
initTypeProto(ValParamDecl,'ceylon.language.meta.declaration::ValParamDecl',Basic,ValueDeclaration$meta$declaration);
(function($$valParamDecl){
atr$($$valParamDecl,'parameter',function(){return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','parameter']};});
atr$($$valParamDecl,'defaulted',function(){
return this.param.def!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','defaulted']};});
atr$($$valParamDecl,'variadic',function(){
return this.param.seq!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','variadic']};});
atr$($$valParamDecl,'variable',function(){
return (this.param.pa & 1024) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','variable']};});
atr$($$valParamDecl,'shared',function(){
return (this.param.pa & 1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','shared']};});
atr$($$valParamDecl,'formal',function(){
return (this.param.pa & 4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','formal']};});
atr$($$valParamDecl,'$_default',function(){
return (this.param.pa & 8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','default']};});
atr$($$valParamDecl,'actual',function(){
return (this.param.pa & 2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','actual']};});
atr$($$valParamDecl,'container',function(){
return this.cont;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u', l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','container']};});
atr$($$valParamDecl,'containingPackage',function(){
return this.cont.containingPackage;
},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','containingPackage']};});
atr$($$valParamDecl,'containingModule',function(){
return this.cont.containingModule;
},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','containingModule']};});
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,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','openType']};});
atr$($$valParamDecl,'toplevel',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','toplevel']};});
atr$($$valParamDecl,'qualifiedName',function(){
return qname$(this.cont.tipo.$crtmm$)+"."+this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','qualifiedName']};});
atr$($$valParamDecl,'name',function(){
return this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ValParamDecl,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','name']};});
$$valParamDecl.$_apply=function $_apply($$$mptypes){
var $$valParamDecl=this;
throw Exception("IMPL ValParamDecl.apply");
};$$valParamDecl.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Type:'Type'}},ps:[],$cont:ValParamDecl,tp:{Type:{'def':{t:Anything}}},pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$m','apply']};};
$$valParamDecl.memberApply=function memberApply(containerType$20,$$$mptypes){
var $$valParamDecl=this;
throw Exception("IMPL ValParamDecl.memberApply");
};$$valParamDecl.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Type:'Type',Container:'Container'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Type:'Container'}},an:function(){return[];}}],$cont:ValParamDecl,tp:{Container:{'def':{t:Nothing}},Type:{'def':{t:Anything}}},pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberApply']};};
$$valParamDecl.equals=function(o){
if (is$(o,{t:ValParamDecl}))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,pa:3,d:['$','Object','$m','equals']};};
atr$($$valParamDecl,'string',function(){return 'value '+this.qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},pa:3,d:['$','Object','$at','string']};});
})(ValParamDecl.$$.prototype);
}
return ValParamDecl;
}
ex$.$init$ValParamDecl=$init$ValParamDecl;
$init$ValParamDecl();
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) {
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;
}
ex$.$mod$ans$=function(){return[doc("The Ceylon language module containing the core definitions \nreferred to by the [language specification][spec], along \nwith some basic functionality of use to most programs:\n\n- The [[root package|package ceylon.language]] defines \n  general-purpose functionality including support for \n  [[numbers|Numeric]] and [[character strings|String]], \n  [[streams|Iterable]] and [[sequences|Sequential]], \n  [[exceptions|Throwable]], and [[null values|Null]].\n- The Ceylon _metamodel_ is defined in \n  [[package ceylon.language.meta]] and its subpackages \n  [[package ceylon.language.meta.model]] and \n  [[package ceylon.language.meta.declaration]], which\n  define interfaces for interacting with applied types and \n  unapplied type declarations respectively.\n\nThis module defines an abstraction over the basic \nfacilities of the Java or JavaScript virtual machine, \ncontaining only functionality that can be easily \nimplemented on both platforms. Thus, certain functionality, \nfor example, concurrency, for which there is no common\nvirtual machine-agnostic model, is not covered by the\nlanguage module.\n\nThe language module is an implicit dependency of every\nother Ceylon module, and may not be explicitly imported.\n\n[spec]: http://ceylon-lang.org/documentation/current/spec"),by(["Gavin King","Tom Bentley","Tako Schotanus","Stephane Epardaud","Enrique Zamudio"].rt$({t:$_String})),license("http://www.apache.org/licenses/LICENSE-2.0.html")];};ex$.$pkg$ans$ceylon$language=function(){return[doc("The root package of the Ceylon language module, functioning\nas the core of the [Ceylon platform][sdk], and covering the \nfollowing areas of functionality:\n\n- the foundational types [[Anything]], [[Object]], and \n  [[Null]], and a [[logical boolean|Boolean]] type,\n- abstractions of [[numeric|Numeric]] types, along with\n  basic types representing [[integral|Integer]] and \n  [[floating point|Float]] values,\n- [[characters|Character]] and [[character strings|String]],\n- [[unsigned bytes|Byte]],\n- support for functional programming with \n  [[streams|Iterable]],\n- abstract interfaces for unmodifiable [[lists|List]],\n  [[sets|Set]], and [[maps|Map]],\n- a low-level abstraction of native [[arrays|Array]],\n- immutable [[sequences|Sequential]], [[ranges|Range]], and\n  [[tuples|Tuple]], which provide the foundation for \n  representing [[function types|Callable]] and lists of\n  function arguments,\n- generic higher-order functions, including for function \n  [[composition|compose]] and [[partial application|curry]],\n- [[exceptions|Throwable]] and support for management of\n  heavyweight [[destroyable|Destroyable]] and \n  [[obtainable|Obtainable]] objects,\n- support for loading [[resources|Resource]] packaged with\n  a module,\n- access to information about the current \n  [[virtual machine|runtime]], [[system|system]],\n  [[process]], and [[operating system|system]], and\n- support for definition of [[annotations|Annotation]].\n\nFinally, this module defines the [[most useful and\ninteresting void function of all time ever|print]].\n\nDeclarations belonging to this package need not be \nexplicitly imported by other source files.\n\n[sdk]: https://modules.ceylon-lang.org/categories/SDK"),by(["Gavin King","Tom Bentley","Tako Schotanus","Stephane Epardaud","Enrique Zamudio"].rt$({t:$_String})),shared()];};ex$.$pkg$ans$ceylon$language$meta=function(){return[doc("The Ceylon metamodel base package.\n\nThe Ceylon metamodel allows you to: \n\n* dynamically inspect modules, packages, functions, values and types, \n* invoke functions and class initialisers, or read and write values, and\n* inspect the annotations on program elements.\n\n### A little bit of terminology\n\nThere are a few concepts and terms in the Ceylon metamodel API that you should be familiar with:\n\n- A _declaration_ is the definition of a Ceylon construct, such as a module, package, value, function\n  or class. Declarations are singletons: there is only a single instance of a given class declaration,\n  for example. You can inspect declarations to get information about how they were defined by their\n  author. You cannot directly invoke function or class declarations, but you can _apply_ them to get\n  a _model_ that you can invoke.\n- A _model_ is a Ceylon definition that represents a declaration where all the type variables have\n  been bound to _closed type_ values. You can query models for their member models and you can directly\n  invoke models.\n- A _closed type_ is a type which does not contain any unbound type variables.\n- An _open type_ is a type which may contain unbound type variables.\n\nFor example, given the following Ceylon program:\n\n    shared abstract class MyList<T>() satisfies List<T>{}\n\nThe declaration of `MyList` represents the class declaration and contains the information that it is\n`abstract` and that it satisfies the `List<T>` open type. That type is open because it contains an\nunbound type variable `T`, which is not bound when we inspect the `MyList` class declaration.\n\nGiven an particular instance of `MyList`, we can query its (closed) type with the [[type]] function,\nand we obtain a closed type representing (for example) `MyList<Integer>`. Object instances necessarily\nhave a closed type at runtime, since in order to instantiate an object, all type arguments must be\nprovided and known during instantiation, so the type of an object instance at runtime is necessarily\na closed type: they cannot contain unbound type variables.\n\nClosed types that represent class or interfaces are also models. For example, the closed type of our\n`MyList<Integer>` instance is both a closed type and a class model: you can query its satisfied types\nand find that it satisfies `List<Integer>` closed type and model (as opposed to the class declaration\nof `MyList` which satisfies the `List<T>` open type). You can also invoke that model to obtain a new\ninstance of `MyList<Integer>`.\n\n### Model and declaration literals\n\nCeylon supports getting declaration values using either the declaration API or using declaration\nliterals:\n\n- <code>\\`module ceylon.file\\`</code> returns the [[Module|ceylon.language.meta.declaration::Module]] \n  declaration which corresponds to the `ceylon.file` module you imported in your module descriptor.\n- <code>\\`package ceylon.language.meta\\`</code> returns the [[Package|ceylon.language.meta.declaration::Package]]\n  declaration from your current module imports.\n- <code>\\`interface List\\`</code> returns the [[InterfaceDeclaration|ceylon.language.meta.declaration::InterfaceDeclaration]] \n  for the [[List|ceylon.language::List]] type.\n- <code>\\`class Integer\\`</code> returns the [[ClassDeclaration|ceylon.language.meta.declaration::ClassDeclaration]] \n  for the [[Integer|ceylon.language::Integer]] type.\n- <code>\\`function type\\`</code> returns the [[FunctionDeclaration|ceylon.language.meta.declaration::FunctionDeclaration]] \n  for the [[type]] function. Similarly <code>\\`function List.shorterThan\\`</code> for methods.\n- <code>\\`value modules\\`</code> returns the [[ValueDeclaration|ceylon.language.meta.declaration::ValueDeclaration]] \n  for the [[modules]] value. Similarly <code>\\`function List.size\\`</code> for attributes.\n- <code>\\`alias AliasName\\`</code> returns the [[AliasDeclaration|ceylon.language.meta.declaration::AliasDeclaration]]\n  for the `AliasName` type alias. \n- <code>\\`given T\\`</code> returns the [[TypeParameter|ceylon.language.meta.declaration::TypeParameter]] \n  for the `T` type parameter.\n\nNote that declaration literals cannot have type arguments specified on types or methods, as declarations are not types.\n\nYou can also get access to closed types and model using either the model API or using literals: \n\n- <code>\\`List&lt;Integer>\\`</code> returns the [[Interface|ceylon.language.meta.model::Interface]] model and \n  closed type for the [[List|ceylon.language::List]] type applied with the [[Integer|ceylon.language::Integer]] type argument.\n- <code>\\`Integer\\`</code> returns the [[Class|ceylon.language.meta.model::Class]] model and closed type \n  for the [[Integer|ceylon.language::Integer]] type.\n- <code>\\`type&lt;Integer>\\`</code> returns the [[Function|ceylon.language.meta.model::Function]] model \n  for the [[type]] function applied with the [[Integer|ceylon.language::Integer]] type argument.\n  Similarly <code>\\`List&lt;Integer>.shorterThan\\`</code> for method models.\n- <code>\\`modules\\`</code> returns the [[Value|ceylon.language.meta.model::Value]] model \n  for the [[modules]] value. Similarly <code>\\`List&lt;Integer>.size\\`</code> for attribute models.\n- <code>\\`A & B\\`</code> returns a [[IntersectionType|ceylon.language.meta.model::IntersectionType]]\n  for the `A & B` intersection type.\n- <code>\\`A | B\\`</code> returns a [[UnionType|ceylon.language.meta.model::UnionType]]\n  for the `A | B` union type.\n- <code>\\`T\\`</code> returns a [[Type|ceylon.language.meta.model::Type]] representing the runtime type \n  argument value for the `T` type parameter.\n\nNotice that all model and close type literals must be applied with all required type arguments.\n\n### Accessing the metamodel using the API\n\nAside from declaration and model literals there are several ways you can start using the metamodel API:\n\n- The [[modules]] object contains a list of all currently loaded [[Module|ceylon.language.meta.declaration::Module]]\n  declarations. Note that these contain even modules you did not import as it contains all transitive\n  dependencies, and may contain multiple different versions of the same module.\n- The [[type]] function will return the closed type of the given instance, which can only be a\n  [[ClassModel|ceylon.language.meta.model::ClassModel]] since only classes can be instantiated.\n- The [[typeLiteral]] function is the functional equivalent to closed type literals: it turns a type argument\n  value into a metamodel closed type.\n- The [declaration](declaration/index.html) package contains all the declaration and open types.\n- The [model](model/index.html) package contains all the model and closed types.\n\n### Inspecting annotations\n\nConstrained annotations can be inspected using the [[annotations]] \nfunction, like this:\n\n    // Does the process declaration have the Shared annotation?\n    value isShared = annotations(`Shared`, `value process`) exists;\n\nor the related [[optionalAnnotation]] and [[sequencedAnnotations]] functions.\n\nNote that annotations are queried for via their \n[[ceylon.language::Annotation]] type, \nnot by the annotation constructor which was used to annotate \nthe program element.\n"),by(["Gavin King","Stephane Epardaud"].rt$({t:$_String})),shared()];};ex$.$pkg$ans$ceylon$language$meta$model=function(){return[doc("The Ceylon metamodel closed type and model package.\n\nAs described in the [ceylon.language.meta](../index.html) documentation, this package contains all\nthe types that represent Ceylon closed types and models.\n\n### Usage example\n\nThe following code will list all the value declarations in the `ceylon.language` package and print their\ncurrent value:\n\n    Package languagePackage = `package ceylon.language`;\n    ValueDeclaration[] valueDeclarations = languagePackage.members<ValueDeclaration>();\n    Value<Anything>[] valueModels = valueDeclarations*.apply<Anything>();\n    for(val in valueModels){\n        // skip the nothing value which cannot be read\n        if(val.type != `Nothing`){\n            print(val.get());\n        }\n    }\n\nThe following code will iterate all the class declarations in the `ceylon.language` package that\nare not abstract, anonymous or annotations, and that have no type parameters nor initialiser\nparameters. For each matching class, we will apply it to get a class model which we can then\nuse to instantiate the class and display its instance:\n\n    for(decl in `package ceylon.language`.members<ClassDeclaration>()){\n        if(!decl.abstract \n                && !decl.anonymous \n                && !decl.annotation\n                && decl.parameterDeclarations.empty\n                && decl.typeParameterDeclarations.empty){\n            Class<Object,[]> classModel = decl.classApply<Object,[]>();\n            Object instance = classModel();\n            print(\"Instance of ``decl.name`` is: ``instance``\");\n        }\n    }\n"),by(["Gavin King","Stephane Epardaud"].rt$({t:$_String})),shared()];};ex$.$pkg$ans$ceylon$language$meta$declaration=function(){return[doc("The Ceylon metamodel open type and declaration package.\n\nAs described in the [ceylon.language.meta](../index.html) documentation, this package contains all\nthe types that represent Ceylon declarations and open types.\n\n### Usage example\n\nThe following code will list all the classes in the `ceylon.language` package and print their\nextended type:\n\n    for(decl in `package ceylon.language`.members<ClassDeclaration>()){\n        if(exists extendedType = decl.extendedType){\n            print(\"Class ``decl.name`` extends: ``extendedType``\");\n        }else{\n            print(\"Class ``decl.name`` does not extend anything\");\n        }\n    }\n\nThe following code will iterate all the class declarations in the `ceylon.language` package that\nare not abstract, anonymous or annotations, and that have no type parameters nor initialiser\nparameters. For each matching class, we will apply it to get a class model which we can then\nuse to instantiate the class and display its instance:\n\n    for(decl in `package ceylon.language`.members<ClassDeclaration>()){\n        if(!decl.abstract \n                && !decl.anonymous \n                && !decl.annotation\n                && decl.parameterDeclarations.empty\n                && decl.typeParameterDeclarations.empty){\n            Class<Object,[]> classModel = decl.classApply<Object,[]>();\n            Object instance = classModel();\n            print(\"Instance of ``decl.name`` is: ``instance``\");\n        }\n    }\n"),by(["Gavin King","Stephane Epardaud"].rt$({t:$_String})),shared()];};
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.userLanguage||navigator.browserLanguage||navigator.language) {
properties["user.locale"]=$_String(navigator.userLanguage||navigator.browserLanguage||navigator.language);
}
}
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 (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(/windows/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 $13p(){var process$=new $13p.$$;process$.$prop$getArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$at:arguments')];},d:['$','process','$at','arguments']};}};return process$;
};$13p.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},pa:65,an:function(){return[doc$($CCMM$,'$:process'),by("Gavin","Tako"),see("language","runtime","system","operatingSystem")];},d:['$','process']};};function $init$getProcess(){if($13p.$$===undefined){initTypeProto($13p,'ceylon.language::process',Basic);
(function(process$){atr$(process$,'$_arguments',function(){if (this.argv!==undefined)return this.argv;
this.argv = getEmpty();
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.length===0?getEmpty():ArraySequence(args, {Element$ArraySequence:{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.length===0?getEmpty():ArraySequence(argStrings, {Element$ArraySequence:{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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$at:arguments')];},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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:namedArgumentPresent')];},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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:namedArgumentValue')];},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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:propertyValue')];},d:['$','process','$m','propertyValue']};};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==getOperatingSystem().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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:write')];},d:['$','process','$m','write']};};process$.writeLine$defs$line=function($13q){return "";};process$.writeLine=function($13q){var process$=this;if($13q===undefined){$13q=process$.writeLine$defs$line($13q);}
process$.write($13q);process$.write(getOperatingSystem().newline);};process$.writeLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'line',mt:'prm',def:1,$t:{t:$_String}}],$cont:$13p,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeLine'),see([$init$OpenFunction()(lmp$(ex$,'$'),print)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','process','$m','writeLine']};};process$.flush=function(){}
process$.flush.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:flush')];},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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:writeError')];},d:['$','process','$m','writeError']};};process$.writeErrorLine$defs$line=function($13r){return "";};process$.writeErrorLine=function($13r){var process$=this;if($13r===undefined){$13r=process$.writeErrorLine$defs$line($13r);}
process$.writeError($13r);process$.writeError(getOperatingSystem().newline);};process$.writeErrorLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'line',mt:'prm',def:1,$t:{t:$_String}}],$cont:$13p,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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:flushError')];},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:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:readLine')];},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:Anything},ps:[{nm:'code',mt:'prm',$t:{t:Integer}}],$cont:$13p,pa:65,an:function(){return[doc$($CCMM$,'$:process:$m:exit')];},d:['$','process','$m','exit']};};atr$(process$,'string',function(){var process$=this;return "process";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13p,pa:3,d:['$','process','$at','string']};});})($13p.$$.prototype);}
return $13p;}
ex$.$init$getProcess=$init$getProcess;$init$getProcess();var $13s;function getProcess(){if($13s===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'process\' before it was set"),'1:0-69:0','process.ceylon');if($13s===undefined){$13s=INIT$;$13s=$init$getProcess()();$13s.$crtmm$=getProcess.$crtmm$;}
return $13s;}
ex$.getProcess=getProcess;getProcess.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$13p},pa:65,an:function(){return[doc$($CCMM$,'$:process'),by(["Gavin","Tako"].rt$({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)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','process']};};$prop$getProcess={get:getProcess,$crtmm$:getProcess.$crtmm$};getProcess=getProcess;$prop$getProcess=getProcess;ex$.$prop$getProcess=$prop$getProcess;function $13t(){var language$=new $13t.$$;language$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:version')];},d:['$','language','$at','version']};}};language$.$prop$getMajorVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersion')];},d:['$','language','$at','majorVersion']};}};language$.$prop$getMinorVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersion')];},d:['$','language','$at','minorVersion']};}};language$.$prop$getReleaseVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:releaseVersion')];},d:['$','language','$at','releaseVersion']};}};language$.$prop$getVersionName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:versionName')];},d:['$','language','$at','versionName']};}};language$.$prop$getMajorVersionBinary={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersionBinary')];},d:['$','language','$at','majorVersionBinary']};}};language$.$prop$getMinorVersionBinary={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersionBinary')];},d:['$','language','$at','minorVersionBinary']};}};language$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13t,pa:67,d:['$','language','$at','string']};}};return language$;
};$13t.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},pa:65,an:function(){return[doc$($CCMM$,'$:language'),see("process","runtime","system","operatingSystem")];},d:['$','language']};};function $init$getLanguage(){if($13t.$$===undefined){initTypeProto($13t,'ceylon.language::language',Basic);
(function(language$){atr$(language$,'version',function(){return "1.1.0";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:version')];},d:['$','language','$at','version']};});atr$(language$,'majorVersion',function(){return 1;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersion')];},d:['$','language','$at','majorVersion']};});atr$(language$,'minorVersion',function(){return 1;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersion')];},d:['$','language','$at','minorVersion']};});atr$(language$,'releaseVersion',function(){return 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:releaseVersion')];},d:['$','language','$at','releaseVersion']};});atr$(language$,'versionName',function(){return "Ultimate Ship The Second";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:versionName')];},d:['$','language','$at','versionName']};});atr$(language$,'majorVersionBinary',function(){return 7;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersionBinary')];},d:['$','language','$at','majorVersionBinary']};});atr$(language$,'minorVersionBinary',function(){return 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13t,pa:65,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersionBinary')];},d:['$','language','$at','minorVersionBinary']};});atr$(language$,'string',function(){return "language";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13t,pa:67,d:['$','language','$at','string']};});})($13t.$$.prototype);}
return $13t;}
ex$.$init$getLanguage=$init$getLanguage;$init$getLanguage();var $13u;function getLanguage(){if($13u===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'language\' before it was set"),'1:0-31:0','language.ceylon');if($13u===undefined){$13u=INIT$;$13u=$init$getLanguage()();$13u.$crtmm$=getLanguage.$crtmm$;}
return $13u;}
ex$.getLanguage=getLanguage;getLanguage.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$13t},pa:65,an:function(){return[doc$($CCMM$,'$:language'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getProcess),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getRuntime),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getSystem),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getOperatingSystem)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','language']};};$prop$getLanguage={get:getLanguage,$crtmm$:getLanguage.$crtmm$};getLanguage=getLanguage;$prop$getLanguage=getLanguage;ex$.$prop$getLanguage=$prop$getLanguage;function $13v(){var system$=new $13v.$$;system$.$prop$getMilliseconds={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:milliseconds')];},d:['$','system','$at','milliseconds']};}};system$.$prop$getNanoseconds={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:nanoseconds')];},d:['$','system','$at','nanoseconds']};}};system$.$prop$getTimezoneOffset={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:timezoneOffset')];},d:['$','system','$at','timezoneOffset']};}};system$.$prop$getLocale={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:locale')];},d:['$','system','$at','locale']};}};system$.$prop$getCharacterEncoding={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:characterEncoding')];},d:['$','system','$at','characterEncoding']};}};return system$;
};$13v.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},pa:65,an:function(){return[doc$($CCMM$,'$:system'),see("process","runtime","language","operatingSystem")];},d:['$','system']};};function $init$getSystem(){if($13v.$$===undefined){initTypeProto($13v,'ceylon.language::system',Basic);
(function(system$){atr$(system$,'milliseconds',function(){return Date.now();
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:milliseconds')];},d:['$','system','$at','milliseconds']};});atr$(system$,'nanoseconds',function(){return Date.now()*1000000;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:nanoseconds')];},d:['$','system','$at','nanoseconds']};});atr$(system$,'timezoneOffset',function(){return new Date().getTimezoneOffset()*60000;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:timezoneOffset')];},d:['$','system','$at','timezoneOffset']};});atr$(system$,'locale',function(){return properties["user.locale"] || "en";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:locale')];},d:['$','system','$at','locale']};});atr$(system$,'characterEncoding',function(){//JavaScript always uses UTF-16
return "UTF-16";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13v,pa:65,an:function(){return[doc$($CCMM$,'$:system:$at:characterEncoding')];},d:['$','system','$at','characterEncoding']};});atr$(system$,'string',function(){var system$=this;return "system";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13v,pa:3,d:['$','system','$at','string']};});})($13v.$$.prototype);}
return $13v;}
ex$.$init$getSystem=$init$getSystem;$init$getSystem();var $13w;function getSystem(){if($13w===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'system\' before it was set"),'1:0-30:0','system.ceylon');if($13w===undefined){$13w=INIT$;$13w=$init$getSystem()();$13w.$crtmm$=getSystem.$crtmm$;}
return $13w;}
ex$.getSystem=getSystem;getSystem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$13v},pa:65,an:function(){return[doc$($CCMM$,'$:system'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getProcess),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getRuntime),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getLanguage),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getOperatingSystem)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','system']};};$prop$getSystem={get:getSystem,$crtmm$:getSystem.$crtmm$};getSystem=getSystem;$prop$getSystem=getSystem;ex$.$prop$getSystem=$prop$getSystem;function $13x(){var operatingSystem$=new $13x.$$;operatingSystem$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:name')];},d:['$','operatingSystem','$at','name']};}};operatingSystem$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:version')];},d:['$','operatingSystem','$at','version']};}};operatingSystem$.$prop$getNewline={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:newline')];},d:['$','operatingSystem','$at','newline']};}};operatingSystem$.$prop$getFileSeparator={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:fileSeparator')];},d:['$','operatingSystem','$at','fileSeparator']};}};operatingSystem$.$prop$getPathSeparator={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:pathSeparator')];},d:['$','operatingSystem','$at','pathSeparator']};}};return operatingSystem$;
};$13x.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem'),see("process","runtime","language","system")];},d:['$','operatingSystem']};};function $init$getOperatingSystem(){if($13x.$$===undefined){initTypeProto($13x,'ceylon.language::operatingSystem',Basic);
(function(operatingSystem$){atr$(operatingSystem$,'name',function(){if (typeof process !== "undefined" && typeof process.platform === 'string') {
return $_String(process.platform);
}
return "Unknown";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:name')];},d:['$','operatingSystem','$at','name']};});atr$(operatingSystem$,'version',function(){return "Unknown";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:version')];},d:['$','operatingSystem','$at','version']};});atr$(operatingSystem$,'newline',function(){return linesep;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:newline')];},d:['$','operatingSystem','$at','newline']};});atr$(operatingSystem$,'fileSeparator',function(){return filesep;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:fileSeparator')];},d:['$','operatingSystem','$at','fileSeparator']};});atr$(operatingSystem$,'pathSeparator',function(){return pathsep;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:pathSeparator')];},d:['$','operatingSystem','$at','pathSeparator']};});atr$(operatingSystem$,'string',function(){var operatingSystem$=this;return "operating system [".plus(operatingSystem$.name).plus(" / ").plus(operatingSystem$.version).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13x,pa:3,d:['$','operatingSystem','$at','string']};});})($13x.$$.prototype);}
return $13x;}
ex$.$init$getOperatingSystem=$init$getOperatingSystem;$init$getOperatingSystem();var $13y;function getOperatingSystem(){if($13y===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'operatingSystem\' before it was set"),'1:0-27:0','operatingSystem.ceylon');if($13y===undefined){$13y=INIT$;$13y=$init$getOperatingSystem()();$13y.$crtmm$=getOperatingSystem.$crtmm$;}
return $13y;}
ex$.getOperatingSystem=getOperatingSystem;getOperatingSystem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$13x},pa:65,an:function(){return[doc$($CCMM$,'$:operatingSystem'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getProcess),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getRuntime),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getLanguage),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getSystem)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','operatingSystem']};};$prop$getOperatingSystem={get:getOperatingSystem,$crtmm$:getOperatingSystem.$crtmm$};getOperatingSystem=getOperatingSystem;$prop$getOperatingSystem=getOperatingSystem;ex$.$prop$getOperatingSystem=$prop$getOperatingSystem;function $13z(){var runtime$=new $13z.$$;runtime$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:name')];},d:['$','runtime','$at','name']};}};runtime$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:version')];},d:['$','runtime','$at','version']};}};runtime$.$prop$getIntegerSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:integerSize'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Integer)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','integerSize']};}};runtime$.$prop$getIntegerAddressableSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:integerAddressableSize')];},d:['$','runtime','$at','integerAddressableSize']};}};runtime$.$prop$getMinIntegerValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:minIntegerValue'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Integer)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','minIntegerValue']};}};runtime$.$prop$getMaxIntegerValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:maxIntegerValue'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Integer)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','maxIntegerValue']};}};runtime$.$prop$getMaxArraySize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:maxArraySize'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),$_Array)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','maxArraySize']};}};return runtime$;
};$13z.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},pa:65,an:function(){return[doc$($CCMM$,'$:runtime'),see("process","language","system","operatingSystem")];},d:['$','runtime']};};function $init$getRuntime(){if($13z.$$===undefined){initTypeProto($13z,'ceylon.language::runtime',Basic);
(function(runtime$){atr$(runtime$,'name',function(){if (typeof process !== "undefined" && process.execPath && process.execPath.match(/node(js)?(\.exe)?$/)) {
return "node.js";
} else if (typeof window === 'object') {
return "Browser";
}
return "Unknown JavaScript environment";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:name')];},d:['$','runtime','$at','name']};});atr$(runtime$,'version',function(){if (typeof process !== "undefined" && typeof process.version === 'string') {
return process.version;
}
return "Unknown";
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:version')];},d:['$','runtime','$at','version']};});atr$(runtime$,'integerSize',function(){return 53;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:integerSize'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Integer)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','integerSize']};});atr$(runtime$,'integerAddressableSize',function(){return 32;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:integerAddressableSize')];},d:['$','runtime','$at','integerAddressableSize']};});atr$(runtime$,'minIntegerValue',function(){if (this.minInt$===undefined)this.minInt$=Integer(-9007199254740991); //-(2^53-1)
return this.minInt$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:minIntegerValue'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Integer)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','minIntegerValue']};});atr$(runtime$,'maxIntegerValue',function(){//2^53
if (this.maxInt$===undefined)this.maxInt$=Integer(9007199254740991);
return this.maxInt$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:maxIntegerValue'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),Integer)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','maxIntegerValue']};});atr$(runtime$,'maxArraySize',function(){if (this.maxArr$===undefined)this.maxArr$=Integer(4294967295); //(2^32-1)
return this.maxArr$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$13z,pa:65,an:function(){return[doc$($CCMM$,'$:runtime:$at:maxArraySize'),see([$init$OpenClass$jsint()(lmp$(ex$,'$'),$_Array)].rt$({t:ClassDeclaration$meta$declaration}))];},d:['$','runtime','$at','maxArraySize']};});atr$(runtime$,'string',function(){var runtime$=this;return "runtime [".plus(runtime$.name).plus(" / ").plus(runtime$.version).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$13z,pa:3,d:['$','runtime','$at','string']};});})($13z.$$.prototype);}
return $13z;}
ex$.$init$getRuntime=$init$getRuntime;$init$getRuntime();var $140;function getRuntime(){if($140===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'runtime\' before it was set"),'1:0-57:0','runtime.ceylon');if($140===undefined){$140=INIT$;$140=$init$getRuntime()();$140.$crtmm$=getRuntime.$crtmm$;}
return $140;}
ex$.getRuntime=getRuntime;getRuntime.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$13z},pa:65,an:function(){return[doc$($CCMM$,'$:runtime'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getProcess),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getLanguage),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getSystem),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getOperatingSystem)].rt$({t:ValueDeclaration$meta$declaration}))];},d:['$','runtime']};};$prop$getRuntime={get:getRuntime,$crtmm$:getRuntime.$crtmm$};getRuntime=getRuntime;$prop$getRuntime=getRuntime;ex$.$prop$getRuntime=$prop$getRuntime;var $141;function $valinit$$141(){if($141===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'minRadix\' before it was set"),'1:0-1:20','parseInteger.ceylon');if($141===undefined){$141=INIT$;$141=(2)};return $141;};$valinit$$141();function getMinRadix(){return $valinit$$141();}

ex$.getMinRadix=getMinRadix;var $prop$getMinRadix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','minRadix']};}};ex$.$prop$getMinRadix=$prop$getMinRadix;$prop$getMinRadix.get=getMinRadix;getMinRadix.$crtmm$=$prop$getMinRadix.$crtmm$;var $142;function $valinit$$142(){if($142===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'maxRadix\' before it was set"),'2:0-2:21','parseInteger.ceylon');if($142===undefined){$142=INIT$;$142=(36)};return $142;};$valinit$$142();function getMaxRadix(){return $valinit$$142();}

ex$.getMaxRadix=getMaxRadix;var $prop$getMaxRadix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','maxRadix']};}};ex$.$prop$getMaxRadix=$prop$getMaxRadix;$prop$getMaxRadix.get=getMaxRadix;getMaxRadix.$crtmm$=$prop$getMaxRadix.$crtmm$;function parseInteger($143,$144){if($144===undefined){$144=(10);}
asrt$((($145=$144,$145.compare(getMinRadix())!==getSmaller()&&$145.compare(getMaxRadix())!==getLarger())),"Assertion failed: \'minRadix <= radix <= maxRadix\' at parseInteger.ceylon (36:11-36:41)",'36:4-36:42','parseInteger.ceylon');
var $146=(0);function set$146($147){return $146=$147;};var $148=getRuntime().minIntegerValue.divided($144);var $149;var $14a;if(nn$(($14a=$143.$_get($146)))){if($14a.equals(Character(45,true))){$149=true;($14b=$146,$146=$14b.successor,$14b);var $14b;}else {if($14a.equals(Character(43,true))){$149=false;($14c=$146,$146=$14c.successor,$14c);var $14c;}else {$149=false;}}}else {return null;}var $14d=($14e=($149?getRuntime().minIntegerValue:null),nn$($14e)?$14e:(-getRuntime().maxIntegerValue));var $14e;var $14f=$143.size;var $14g=(0);function set$14g($14h){return $14g=$14h;};var $14i=(0);function set$14i($14j){return $14i=$14j;};while(($146<$14f)){var $14k;var $14l;if(nn$(($14l=$143.$_get($146)))){$14k=$14l;}else {return null;}if((((($146.plus(1)).valueOf()==($14f).valueOf())&&(($144).valueOf()==(10).valueOf()))&&"kMGTP".contains($14k))){var $14m;if(nn$(($14m=parseIntegerExponent($14k)))){var $14n=(10).power($14m);if(($14d.divided($14n)<$14g)){($14g=$14g.times($14n));break;}else {return null;}}else {return null;}}else {var $14o;if(nn$(($14o=parseDigit($14k,$144)))){if(($14g<$148)){return null;}($14g=$14g.times($144));if(($14g<$14d.plus($14o))){return null;}($14g=$14g.minus($14o));}else {return null;}}($14p=$146,$146=$14p.successor,$14p);var $14p;($14q=$14i,$14i=$14q.successor,$14q);var $14q;}if((($14i).valueOf()==(0).valueOf())){return null;}else {return ($14r=($149?$14g:null),nn$($14r)?$14r:(-$14g));var $14r;}}
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},an:function(){return[doc$($CCMM$,'$:parseInteger:$at:string$iqni5g')];}},{nm:'radix',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:parseInteger:$at:radix$6g1fdr')];}}],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()(lmp$(ex$,'$'),formatInteger),$init$OpenFunction()(lmp$(ex$,'$'),parseFloat)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','parseInteger']};};function parseIntegerExponent($14s){var $14t=$14s;if($14t.equals(Character(80,true))) {return 15;}else if($14t.equals(Character(84,true))) {return 12;}else if($14t.equals(Character(71,true))) {return 9;}else if($14t.equals(Character(77,true))) {return 6;}else if($14t.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 $14u;function $valinit$$14u(){if($14u===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'aIntLower\' before it was set"),'148:0-148:31','parseInteger.ceylon');if($14u===undefined){$14u=INIT$;$14u=Character(97,true).integer};return $14u;};$valinit$$14u();function getAIntLower(){return $valinit$$14u();}

ex$.getAIntLower=getAIntLower;var $prop$getAIntLower={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','aIntLower']};}};ex$.$prop$getAIntLower=$prop$getAIntLower;$prop$getAIntLower.get=getAIntLower;getAIntLower.$crtmm$=$prop$getAIntLower.$crtmm$;var $14v;function $valinit$$14v(){if($14v===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'aIntUpper\' before it was set"),'149:0-149:31','parseInteger.ceylon');if($14v===undefined){$14v=INIT$;$14v=Character(65,true).integer};return $14v;};$valinit$$14v();function getAIntUpper(){return $valinit$$14v();}

ex$.getAIntUpper=getAIntUpper;var $prop$getAIntUpper={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','aIntUpper']};}};ex$.$prop$getAIntUpper=$prop$getAIntUpper;$prop$getAIntUpper.get=getAIntUpper;getAIntUpper.$crtmm$=$prop$getAIntUpper.$crtmm$;var $14w;function $valinit$$14w(){if($14w===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'zeroInt\' before it was set"),'150:0-150:29','parseInteger.ceylon');if($14w===undefined){$14w=INIT$;$14w=Character(48,true).integer};return $14w;};$valinit$$14w();function getZeroInt(){return $valinit$$14w();}

ex$.getZeroInt=getZeroInt;var $prop$getZeroInt={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','zeroInt']};}};ex$.$prop$getZeroInt=$prop$getZeroInt;$prop$getZeroInt.get=getZeroInt;getZeroInt.$crtmm$=$prop$getZeroInt.$crtmm$;function parseDigit($14x,$14y){var $14z;var $150=$14x.integer;if(($151=$150.minus(getZeroInt()),$151.compare((0))!==getSmaller()&&$151.compare((10))===getSmaller())){$14z=$150.minus(getZeroInt());}else {if(($152=$150.minus(getAIntLower()),$152.compare((0))!==getSmaller()&&$152.compare((26))===getSmaller())){$14z=$150.minus(getAIntLower()).plus(10);}else {if(($153=$150.minus(getAIntUpper()),$153.compare((0))!==getSmaller()&&$153.compare((26))===getSmaller())){$14z=$150.minus(getAIntUpper()).plus(10);}else {return null;}}}return (($14z<$14y)?$14z: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 parseFloat($154){var $155;var $156;if($154.startsWith("-")){$155=(-1);$156=$154.spanFrom(1);}else {if($154.startsWith("+")){$155=(+1);$156=$154.spanFrom(1);}else {$155=(+1);$156=$154;}}var $157;var $158;var $159;var $15a;if(nn$(($15a=$156.firstOccurrence(Character(46,true))))){$157=$156.spanTo($15a.minus(1));var $15b=$156.spanFrom($15a.plus(1));var $15c;if(nn$(($15c=$15b.firstIndexWhere($JsCallable(function($O$) {return $O$.letter;},[],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}))))){$158=$15b.spanTo($15c.minus(1));$159=$15b.spanFrom($15c);}else {$158=$15b;$159=null;}}else {var $15d;if(nn$(($15d=$156.firstIndexWhere($JsCallable(function($O$) {return $O$.letter;},[],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}))))){$157=$156.spanTo($15d.minus(1));$159=$156.spanFrom($15d);}else {$157=$156;$159=null;}$158="0";}if((!$157.$_every($JsCallable(function($O$) {return $O$.digit;},[],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}))||!$158.$_every($JsCallable(function($O$) {return $O$.digit;},[],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}})))){return null;}var $15e,$15f;if(nn$(($15e=parseInteger($157)))&&nn$(($15f=parseInteger($158)))){var $15g=$158.size;var $15h;var $15i;if(nn$(($15i=$159))){var $15j;if(nn$(($15j=parseFloatExponent($15i)))){$15h=$15j.minus($15g);}else {return null;}}else {$15h=(-$15g);}var $15k=$15e.times((10).power($15g)).plus($15f);var $15l=($15m=($15k.zero?(0).times($155.$_float):null),nn$($15m)?$15m:$155.times($15k).$_float);var $15m;var $15n=$15h.magnitude;if((($15n).valueOf()==(0).valueOf())){return $15l;}else {if(($15n<getMaximumIntegerExponent())){var $15o=(10).power($15n);return ($15p=(($15h<0)?$15l.divided($15o):null),nn$($15p)?$15p:$15l.times($15o));var $15p;}else {return $15l.times(Float(10.0).power($15h));}}}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()(lmp$(ex$,'$'),parseInteger)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','parseFloat']};};var $15q;function $valinit$$15q(){if($15q===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'maximumIntegerExponent\' before it was set"),'105:0-107:57','parseFloat.ceylon');if($15q===undefined){$15q=INIT$;$15q=smallest(getRuntime().maxIntegerValue.string.size,getRuntime().minIntegerValue.string.size.minus(1),{Element$smallest:{t:Integer}})};return $15q;};$valinit$$15q();function getMaximumIntegerExponent(){return $valinit$$15q();}

ex$.getMaximumIntegerExponent=getMaximumIntegerExponent;var $prop$getMaximumIntegerExponent={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','maximumIntegerExponent']};}};ex$.$prop$getMaximumIntegerExponent=$prop$getMaximumIntegerExponent;$prop$getMaximumIntegerExponent.get=getMaximumIntegerExponent;getMaximumIntegerExponent.$crtmm$=$prop$getMaximumIntegerExponent.$crtmm$;function parseFloatExponent($15r){var $15s=$15r;if($15s==="k") {return 3;}else if($15s==="M") {return 6;}else if($15s==="G") {return 9;}else if($15s==="T") {return 12;}else if($15s==="P") {return 15;}else if($15s==="m") {return (-3);}else if($15s==="u") {return (-6);}else if($15s==="n") {return (-9);}else if($15s==="p") {return (-12);}else if($15s==="f") {return (-15);}else {if(($15r.lowercased.startsWith("e")&&$15r.rest.$_every(getDigitOrSign()))){return parseInteger($15r.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 $15t;function $valinit$$15t(){if($15t===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'digitOrSign\' before it was set"),'152:0-153:44','parseFloat.ceylon');if($15t===undefined){$15t=INIT$;$15t=or($JsCallable(function($O$) {return $O$.digit;},[],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}),$JsCallable(($15u="+-",JsCallable($15u,nn$($15u)?$15u.contains:null)),[{nm:'element',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:$_Object}]}}),{Value$or:{t:Character}})};return $15t;};$valinit$$15t();function getDigitOrSign(){return $valinit$$15t();}

ex$.getDigitOrSign=getDigitOrSign;var $prop$getDigitOrSign={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{$t:{t:Character}}]}}},d:['$','digitOrSign']};}};ex$.$prop$getDigitOrSign=$prop$getDigitOrSign;$prop$getDigitOrSign.get=getDigitOrSign;getDigitOrSign.$crtmm$=$prop$getDigitOrSign.$crtmm$;var $15u;function formatInteger($15v,$15w){if($15w===undefined){$15w=(10);}
asrt$((($15x=$15w,$15x.compare(getMinRadix())!==getSmaller()&&$15x.compare(getMaxRadix())!==getLarger())),"Assertion failed: \'minRadix <= radix <= maxRadix\' at formatInteger.ceylon (24:11-24:41)",'24:4-24:42','formatInteger.ceylon');
if((($15v).valueOf()==(0).valueOf())){return "0";}var $15y=getEmpty();function set$15y($15z){return $15y=$15z;};var $160=($161=(($15v<0)?$15v:null),nn$($161)?$161:(-$15v));function set$160($162){return $160=$162;};var $161;while(!($160==0)){var $163=(-$160.remainder($15w));var $164;if(($165=$163,$165.compare((0))!==getSmaller()&&$165.compare((10))===getSmaller())){$164=$163.plus(getZeroInt()).character;}else {if(($166=$163,$166.compare((10))!==getSmaller()&&$166.compare((36))===getSmaller())){$164=$163.minus(10).plus(getAIntLower()).character;}else {asrt$((false),"Assertion failed: \'false\' at formatInteger.ceylon (42:19-42:25)",'42:12-42:26','formatInteger.ceylon');
}}$15y=$15y.follow($164,{Other$follow:{t:Character}});$160=$160.plus($163).divided($15w);}if(($15v<0)){$15y=$15y.follow(Character(45,true),{Other$follow:{t:Character}});}return $_String($15y);}
ex$.formatInteger=formatInteger;formatInteger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'integer',mt:'prm',$t:{t:Integer},an:function(){return[doc("The integer value to format.")];}},{nm:'radix',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:formatInteger:$at:radix$jgf323')];}}],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()(lmp$(ex$,'$'),parseInteger)].rt$({t:FunctionDeclaration$meta$declaration}))];},d:['$','formatInteger']};};function parseBoolean($167){var $168=$167;if($168==="true") {return true;}else if($168==="false") {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')];},d:['$','parseBoolean']};};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 === undefined ? 'UNKNOWN' : obj.getT$name();
if (tn === 'UNKNOWN') {
if (typeof obj === 'function') {
tn = 'ceylon.language::Callable';
}
}
/*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:65,an:function(){return[doc$($CCMM$,'$:className')];},d:['$','className']};};
ex$.className=className;
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$.Nothing=Nothing;
ex$.getTrue=getTrue;
ex$.getFalse=getFalse;
ex$.NatErr=NatErr;
});
}(typeof define==='function' && define.amd ?
define : function (factory) {
if (typeof exports!=='undefined') {
factory(require, exports, module);
} else {
throw "no module loader";
}
}));
