text: goog.provide('garden.types');
  goog.require('cljs.core');
  
  /**
  * @constructor
   * @implements {cljs.core.IRecord}
   * @implements {cljs.core.IKVReduce}
   * @implements {cljs.core.IEquiv}
   * @implements {cljs.core.IHash}
   * @implements {cljs.core.ICollection}
   * @implements {cljs.core.ICounted}
   * @implements {cljs.core.ISeqable}
   * @implements {cljs.core.IMeta}
   * @implements {cljs.core.ICloneable}
   * @implements {cljs.core.IPrintWithWriter}
   * @implements {cljs.core.IIterable}
   * @implements {cljs.core.IWithMeta}
   * @implements {cljs.core.IAssociative}
   * @implements {cljs.core.IMap}
   * @implements {cljs.core.ILookup}
  */
  garden.types.CSSUnit = (function (unit,magnitude,__meta,__extmap,__hash){
  this.unit = unit;
  this.magnitude = magnitude;
  this.__meta = __meta;
  this.__extmap = __extmap;
  this.__hash = __hash;
  this.cljs$lang$protocol_mask$partition0$ = 2230716170;
  this.cljs$lang$protocol_mask$partition1$ = 139264;
  });
  garden.types.CSSUnit.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4385__auto__,k__4386__auto__){
  var self__ = this;
  var this__4385__auto____$1 = this;
  return this__4385__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4386__auto__,null);
  });
  
  garden.types.CSSUnit.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4387__auto__,k53380,else__4388__auto__){
  var self__ = this;
  var this__4387__auto____$1 = this;
  var G__53390 = k53380;
  var G__53390__$1 = (((G__53390 instanceof cljs.core.Keyword))?G__53390.fqn:null);
  switch (G__53390__$1) {
  case "unit":
  return self__.unit;
  
  break;
  case "magnitude":
  return self__.magnitude;
  
  break;
  default:
  return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k53380,else__4388__auto__);
  
  }
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4404__auto__,f__4405__auto__,init__4406__auto__){
  var self__ = this;
  var this__4404__auto____$1 = this;
  return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (this__4404__auto____$1){
  return (function (ret__4407__auto__,p__53399){
  var vec__53400 = p__53399;
  var k__4408__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__53400,(0),null);
  var v__4409__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__53400,(1),null);
  return (f__4405__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4405__auto__.cljs$core$IFn$_invoke$arity$3(ret__4407__auto__,k__4408__auto__,v__4409__auto__) : f__4405__auto__.call(null,ret__4407__auto__,k__4408__auto__,v__4409__auto__));
  });})(this__4404__auto____$1))
  ,init__4406__auto__,this__4404__auto____$1);
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4399__auto__,writer__4400__auto__,opts__4401__auto__){
  var self__ = this;
  var this__4399__auto____$1 = this;
  var pr_pair__4402__auto__ = ((function (this__4399__auto____$1){
  return (function (keyval__4403__auto__){
  return cljs.core.pr_sequential_writer(writer__4400__auto__,cljs.core.pr_writer,""," ","",opts__4401__auto__,keyval__4403__auto__);
  });})(this__4399__auto____$1))
  ;
  return cljs.core.pr_sequential_writer(writer__4400__auto__,pr_pair__4402__auto__,"#garden.types.CSSUnit{",", ","}",opts__4401__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"unit","unit",375175175),self__.unit],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"magnitude","magnitude",1924274222),self__.magnitude],null))], null),self__.__extmap));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__53379){
  var self__ = this;
  var G__53379__$1 = this;
  return (new cljs.core.RecordIter((0),G__53379__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"unit","unit",375175175),new cljs.core.Keyword(null,"magnitude","magnitude",1924274222)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4383__auto__){
  var self__ = this;
  var this__4383__auto____$1 = this;
  return self__.__meta;
  });
  
  garden.types.CSSUnit.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4380__auto__){
  var self__ = this;
  var this__4380__auto____$1 = this;
  return (new garden.types.CSSUnit(self__.unit,self__.magnitude,self__.__meta,self__.__extmap,self__.__hash));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4389__auto__){
  var self__ = this;
  var this__4389__auto____$1 = this;
  return (2 + cljs.core.count(self__.__extmap));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4381__auto__){
  var self__ = this;
  var this__4381__auto____$1 = this;
  var h__4243__auto__ = self__.__hash;
  if((!((h__4243__auto__ == null)))){
  return h__4243__auto__;
  } else {
  var h__4243__auto____$1 = ((function (h__4243__auto__,this__4381__auto____$1){
  return (function (coll__4382__auto__){
  return (70281654 ^ cljs.core.hash_unordered_coll(coll__4382__auto__));
  });})(h__4243__auto__,this__4381__auto____$1))
  (this__4381__auto____$1);
  self__.__hash = h__4243__auto____$1;
  
  return h__4243__auto____$1;
  }
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this53381,other53382){
  var self__ = this;
  var this53381__$1 = this;
  return (((!((other53382 == null)))) && ((this53381__$1.constructor === other53382.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53381__$1.unit,other53382.unit)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53381__$1.magnitude,other53382.magnitude)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53381__$1.__extmap,other53382.__extmap)));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4394__auto__,k__4395__auto__){
  var self__ = this;
  var this__4394__auto____$1 = this;
  if(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"unit","unit",375175175),null,new cljs.core.Keyword(null,"magnitude","magnitude",1924274222),null], null), null),k__4395__auto__)){
  return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4394__auto____$1),self__.__meta),k__4395__auto__);
  } else {
  return (new garden.types.CSSUnit(self__.unit,self__.magnitude,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4395__auto__)),null));
  }
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4392__auto__,k__4393__auto__,G__53379){
  var self__ = this;
  var this__4392__auto____$1 = this;
  var pred__53475 = cljs.core.keyword_identical_QMARK_;
  var expr__53476 = k__4393__auto__;
  if(cljs.core.truth_((pred__53475.cljs$core$IFn$_invoke$arity$2 ? pred__53475.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"unit","unit",375175175),expr__53476) : pred__53475.call(null,new cljs.core.Keyword(null,"unit","unit",375175175),expr__53476)))){
  return (new garden.types.CSSUnit(G__53379,self__.magnitude,self__.__meta,self__.__extmap,null));
  } else {
  if(cljs.core.truth_((pred__53475.cljs$core$IFn$_invoke$arity$2 ? pred__53475.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"magnitude","magnitude",1924274222),expr__53476) : pred__53475.call(null,new cljs.core.Keyword(null,"magnitude","magnitude",1924274222),expr__53476)))){
  return (new garden.types.CSSUnit(self__.unit,G__53379,self__.__meta,self__.__extmap,null));
  } else {
  return (new garden.types.CSSUnit(self__.unit,self__.magnitude,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4393__auto__,G__53379),null));
  }
  }
  });
  
  garden.types.CSSUnit.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4397__auto__){
  var self__ = this;
  var this__4397__auto____$1 = this;
  return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"unit","unit",375175175),self__.unit,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"magnitude","magnitude",1924274222),self__.magnitude,null))], null),self__.__extmap));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4384__auto__,G__53379){
  var self__ = this;
  var this__4384__auto____$1 = this;
  return (new garden.types.CSSUnit(self__.unit,self__.magnitude,G__53379,self__.__extmap,self__.__hash));
  });
  
  garden.types.CSSUnit.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4390__auto__,entry__4391__auto__){
  var self__ = this;
  var this__4390__auto____$1 = this;
  if(cljs.core.vector_QMARK_(entry__4391__auto__)){
  return this__4390__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4391__auto__,(0)),cljs.core._nth(entry__4391__auto__,(1)));
  } else {
  return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4390__auto____$1,entry__4391__auto__);
  }
  });
  
  garden.types.CSSUnit.getBasis = (function (){
  return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"unit","unit",2015706702,null),new cljs.core.Symbol(null,"magnitude","magnitude",-730161547,null)], null);
  });
  
  garden.types.CSSUnit.cljs$lang$type = true;
  
  garden.types.CSSUnit.cljs$lang$ctorPrSeq = (function (this__4428__auto__){
  return (new cljs.core.List(null,"garden.types/CSSUnit",null,(1),null));
  });
  
  garden.types.CSSUnit.cljs$lang$ctorPrWriter = (function (this__4428__auto__,writer__4429__auto__){
  return cljs.core._write(writer__4429__auto__,"garden.types/CSSUnit");
  });
  
  /**
   * Positional factory function for garden.types/CSSUnit.
   */
  garden.types.__GT_CSSUnit = (function garden$types$__GT_CSSUnit(unit,magnitude){
  return (new garden.types.CSSUnit(unit,magnitude,null,null,null));
  });
  
  /**
   * Factory function for garden.types/CSSUnit, taking a map of keywords to field values.
   */
  garden.types.map__GT_CSSUnit = (function garden$types$map__GT_CSSUnit(G__53386){
  var extmap__4424__auto__ = (function (){var G__53517 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__53386,new cljs.core.Keyword(null,"unit","unit",375175175),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"magnitude","magnitude",1924274222)], 0));
  if(cljs.core.record_QMARK_(G__53386)){
  return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__53517);
  } else {
  return G__53517;
  }
  })();
  return (new garden.types.CSSUnit(new cljs.core.Keyword(null,"unit","unit",375175175).cljs$core$IFn$_invoke$arity$1(G__53386),new cljs.core.Keyword(null,"magnitude","magnitude",1924274222).cljs$core$IFn$_invoke$arity$1(G__53386),null,cljs.core.not_empty(extmap__4424__auto__),null));
  });
  
  
  /**
  * @constructor
   * @implements {cljs.core.IRecord}
   * @implements {cljs.core.IKVReduce}
   * @implements {cljs.core.IEquiv}
   * @implements {cljs.core.IHash}
   * @implements {cljs.core.ICollection}
   * @implements {cljs.core.ICounted}
   * @implements {cljs.core.ISeqable}
   * @implements {cljs.core.IMeta}
   * @implements {cljs.core.ICloneable}
   * @implements {cljs.core.IPrintWithWriter}
   * @implements {cljs.core.IIterable}
   * @implements {cljs.core.IWithMeta}
   * @implements {cljs.core.IAssociative}
   * @implements {cljs.core.IMap}
   * @implements {cljs.core.ILookup}
  */
  garden.types.CSSFunction = (function (f,args,__meta,__extmap,__hash){
  this.f = f;
  this.args = args;
  this.__meta = __meta;
  this.__extmap = __extmap;
  this.__hash = __hash;
  this.cljs$lang$protocol_mask$partition0$ = 2230716170;
  this.cljs$lang$protocol_mask$partition1$ = 139264;
  });
  garden.types.CSSFunction.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4385__auto__,k__4386__auto__){
  var self__ = this;
  var this__4385__auto____$1 = this;
  return this__4385__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4386__auto__,null);
  });
  
  garden.types.CSSFunction.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4387__auto__,k53532,else__4388__auto__){
  var self__ = this;
  var this__4387__auto____$1 = this;
  var G__53544 = k53532;
  var G__53544__$1 = (((G__53544 instanceof cljs.core.Keyword))?G__53544.fqn:null);
  switch (G__53544__$1) {
  case "f":
  return self__.f;
  
  break;
  case "args":
  return self__.args;
  
  break;
  default:
  return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k53532,else__4388__auto__);
  
  }
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4404__auto__,f__4405__auto__,init__4406__auto__){
  var self__ = this;
  var this__4404__auto____$1 = this;
  return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (this__4404__auto____$1){
  return (function (ret__4407__auto__,p__53548){
  var vec__53550 = p__53548;
  var k__4408__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__53550,(0),null);
  var v__4409__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__53550,(1),null);
  return (f__4405__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4405__auto__.cljs$core$IFn$_invoke$arity$3(ret__4407__auto__,k__4408__auto__,v__4409__auto__) : f__4405__auto__.call(null,ret__4407__auto__,k__4408__auto__,v__4409__auto__));
  });})(this__4404__auto____$1))
  ,init__4406__auto__,this__4404__auto____$1);
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4399__auto__,writer__4400__auto__,opts__4401__auto__){
  var self__ = this;
  var this__4399__auto____$1 = this;
  var pr_pair__4402__auto__ = ((function (this__4399__auto____$1){
  return (function (keyval__4403__auto__){
  return cljs.core.pr_sequential_writer(writer__4400__auto__,cljs.core.pr_writer,""," ","",opts__4401__auto__,keyval__4403__auto__);
  });})(this__4399__auto____$1))
  ;
  return cljs.core.pr_sequential_writer(writer__4400__auto__,pr_pair__4402__auto__,"#garden.types.CSSFunction{",", ","}",opts__4401__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"f","f",-1597136552),self__.f],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"args","args",1315556576),self__.args],null))], null),self__.__extmap));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__53531){
  var self__ = this;
  var G__53531__$1 = this;
  return (new cljs.core.RecordIter((0),G__53531__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"f","f",-1597136552),new cljs.core.Keyword(null,"args","args",1315556576)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4383__auto__){
  var self__ = this;
  var this__4383__auto____$1 = this;
  return self__.__meta;
  });
  
  garden.types.CSSFunction.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4380__auto__){
  var self__ = this;
  var this__4380__auto____$1 = this;
  return (new garden.types.CSSFunction(self__.f,self__.args,self__.__meta,self__.__extmap,self__.__hash));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4389__auto__){
  var self__ = this;
  var this__4389__auto____$1 = this;
  return (2 + cljs.core.count(self__.__extmap));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4381__auto__){
  var self__ = this;
  var this__4381__auto____$1 = this;
  var h__4243__auto__ = self__.__hash;
  if((!((h__4243__auto__ == null)))){
  return h__4243__auto__;
  } else {
  var h__4243__auto____$1 = ((function (h__4243__auto__,this__4381__auto____$1){
  return (function (coll__4382__auto__){
  return (1910311650 ^ cljs.core.hash_unordered_coll(coll__4382__auto__));
  });})(h__4243__auto__,this__4381__auto____$1))
  (this__4381__auto____$1);
  self__.__hash = h__4243__auto____$1;
  
  return h__4243__auto____$1;
  }
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this53533,other53534){
  var self__ = this;
  var this53533__$1 = this;
  return (((!((other53534 == null)))) && ((this53533__$1.constructor === other53534.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53533__$1.f,other53534.f)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53533__$1.args,other53534.args)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53533__$1.__extmap,other53534.__extmap)));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4394__auto__,k__4395__auto__){
  var self__ = this;
  var this__4394__auto____$1 = this;
  if(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"args","args",1315556576),null,new cljs.core.Keyword(null,"f","f",-1597136552),null], null), null),k__4395__auto__)){
  return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4394__auto____$1),self__.__meta),k__4395__auto__);
  } else {
  return (new garden.types.CSSFunction(self__.f,self__.args,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4395__auto__)),null));
  }
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4392__auto__,k__4393__auto__,G__53531){
  var self__ = this;
  var this__4392__auto____$1 = this;
  var pred__53598 = cljs.core.keyword_identical_QMARK_;
  var expr__53599 = k__4393__auto__;
  if(cljs.core.truth_((pred__53598.cljs$core$IFn$_invoke$arity$2 ? pred__53598.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"f","f",-1597136552),expr__53599) : pred__53598.call(null,new cljs.core.Keyword(null,"f","f",-1597136552),expr__53599)))){
  return (new garden.types.CSSFunction(G__53531,self__.args,self__.__meta,self__.__extmap,null));
  } else {
  if(cljs.core.truth_((pred__53598.cljs$core$IFn$_invoke$arity$2 ? pred__53598.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"args","args",1315556576),expr__53599) : pred__53598.call(null,new cljs.core.Keyword(null,"args","args",1315556576),expr__53599)))){
  return (new garden.types.CSSFunction(self__.f,G__53531,self__.__meta,self__.__extmap,null));
  } else {
  return (new garden.types.CSSFunction(self__.f,self__.args,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4393__auto__,G__53531),null));
  }
  }
  });
  
  garden.types.CSSFunction.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4397__auto__){
  var self__ = this;
  var this__4397__auto____$1 = this;
  return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"f","f",-1597136552),self__.f,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"args","args",1315556576),self__.args,null))], null),self__.__extmap));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4384__auto__,G__53531){
  var self__ = this;
  var this__4384__auto____$1 = this;
  return (new garden.types.CSSFunction(self__.f,self__.args,G__53531,self__.__extmap,self__.__hash));
  });
  
  garden.types.CSSFunction.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4390__auto__,entry__4391__auto__){
  var self__ = this;
  var this__4390__auto____$1 = this;
  if(cljs.core.vector_QMARK_(entry__4391__auto__)){
  return this__4390__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4391__auto__,(0)),cljs.core._nth(entry__4391__auto__,(1)));
  } else {
  return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4390__auto____$1,entry__4391__auto__);
  }
  });
  
  garden.types.CSSFunction.getBasis = (function (){
  return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"f","f",43394975,null),new cljs.core.Symbol(null,"args","args",-1338879193,null)], null);
  });
  
  garden.types.CSSFunction.cljs$lang$type = true;
  
  garden.types.CSSFunction.cljs$lang$ctorPrSeq = (function (this__4428__auto__){
  return (new cljs.core.List(null,"garden.types/CSSFunction",null,(1),null));
  });
  
  garden.types.CSSFunction.cljs$lang$ctorPrWriter = (function (this__4428__auto__,writer__4429__auto__){
  return cljs.core._write(writer__4429__auto__,"garden.types/CSSFunction");
  });
  
  /**
   * Positional factory function for garden.types/CSSFunction.
   */
  garden.types.__GT_CSSFunction = (function garden$types$__GT_CSSFunction(f,args){
  return (new garden.types.CSSFunction(f,args,null,null,null));
  });
  
  /**
   * Factory function for garden.types/CSSFunction, taking a map of keywords to field values.
   */
  garden.types.map__GT_CSSFunction = (function garden$types$map__GT_CSSFunction(G__53538){
  var extmap__4424__auto__ = (function (){var G__53630 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__53538,new cljs.core.Keyword(null,"f","f",-1597136552),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"args","args",1315556576)], 0));
  if(cljs.core.record_QMARK_(G__53538)){
  return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__53630);
  } else {
  return G__53630;
  }
  })();
  return (new garden.types.CSSFunction(new cljs.core.Keyword(null,"f","f",-1597136552).cljs$core$IFn$_invoke$arity$1(G__53538),new cljs.core.Keyword(null,"args","args",1315556576).cljs$core$IFn$_invoke$arity$1(G__53538),null,cljs.core.not_empty(extmap__4424__auto__),null));
  });
  
  
  /**
  * @constructor
   * @implements {cljs.core.IRecord}
   * @implements {cljs.core.IKVReduce}
   * @implements {cljs.core.IEquiv}
   * @implements {cljs.core.IHash}
   * @implements {cljs.core.ICollection}
   * @implements {cljs.core.ICounted}
   * @implements {cljs.core.ISeqable}
   * @implements {cljs.core.IMeta}
   * @implements {cljs.core.ICloneable}
   * @implements {cljs.core.IPrintWithWriter}
   * @implements {cljs.core.IIterable}
   * @implements {cljs.core.IWithMeta}
   * @implements {cljs.core.IAssociative}
   * @implements {cljs.core.IMap}
   * @implements {cljs.core.ILookup}
  */
  garden.types.CSSAtRule = (function (identifier,value,__meta,__extmap,__hash){
  this.identifier = identifier;
  this.value = value;
  this.__meta = __meta;
  this.__extmap = __extmap;
  this.__hash = __hash;
  this.cljs$lang$protocol_mask$partition0$ = 2230716170;
  this.cljs$lang$protocol_mask$partition1$ = 139264;
  });
  garden.types.CSSAtRule.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4385__auto__,k__4386__auto__){
  var self__ = this;
  var this__4385__auto____$1 = this;
  return this__4385__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4386__auto__,null);
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4387__auto__,k53635,else__4388__auto__){
  var self__ = this;
  var this__4387__auto____$1 = this;
  var G__53659 = k53635;
  var G__53659__$1 = (((G__53659 instanceof cljs.core.Keyword))?G__53659.fqn:null);
  switch (G__53659__$1) {
  case "identifier":
  return self__.identifier;
  
  break;
  case "value":
  return self__.value;
  
  break;
  default:
  return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k53635,else__4388__auto__);
  
  }
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4404__auto__,f__4405__auto__,init__4406__auto__){
  var self__ = this;
  var this__4404__auto____$1 = this;
  return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (this__4404__auto____$1){
  return (function (ret__4407__auto__,p__53671){
  var vec__53674 = p__53671;
  var k__4408__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__53674,(0),null);
  var v__4409__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__53674,(1),null);
  return (f__4405__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4405__auto__.cljs$core$IFn$_invoke$arity$3(ret__4407__auto__,k__4408__auto__,v__4409__auto__) : f__4405__auto__.call(null,ret__4407__auto__,k__4408__auto__,v__4409__auto__));
  });})(this__4404__auto____$1))
  ,init__4406__auto__,this__4404__auto____$1);
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4399__auto__,writer__4400__auto__,opts__4401__auto__){
  var self__ = this;
  var this__4399__auto____$1 = this;
  var pr_pair__4402__auto__ = ((function (this__4399__auto____$1){
  return (function (keyval__4403__auto__){
  return cljs.core.pr_sequential_writer(writer__4400__auto__,cljs.core.pr_writer,""," ","",opts__4401__auto__,keyval__4403__auto__);
  });})(this__4399__auto____$1))
  ;
  return cljs.core.pr_sequential_writer(writer__4400__auto__,pr_pair__4402__auto__,"#garden.types.CSSAtRule{",", ","}",opts__4401__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"identifier","identifier",-805503498),self__.identifier],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"value","value",305978217),self__.value],null))], null),self__.__extmap));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__53634){
  var self__ = this;
  var G__53634__$1 = this;
  return (new cljs.core.RecordIter((0),G__53634__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"identifier","identifier",-805503498),new cljs.core.Keyword(null,"value","value",305978217)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4383__auto__){
  var self__ = this;
  var this__4383__auto____$1 = this;
  return self__.__meta;
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4380__auto__){
  var self__ = this;
  var this__4380__auto____$1 = this;
  return (new garden.types.CSSAtRule(self__.identifier,self__.value,self__.__meta,self__.__extmap,self__.__hash));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4389__auto__){
  var self__ = this;
  var this__4389__auto____$1 = this;
  return (2 + cljs.core.count(self__.__extmap));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4381__auto__){
  var self__ = this;
  var this__4381__auto____$1 = this;
  var h__4243__auto__ = self__.__hash;
  if((!((h__4243__auto__ == null)))){
  return h__4243__auto__;
  } else {
  var h__4243__auto____$1 = ((function (h__4243__auto__,this__4381__auto____$1){
  return (function (coll__4382__auto__){
  return (-1632374092 ^ cljs.core.hash_unordered_coll(coll__4382__auto__));
  });})(h__4243__auto__,this__4381__auto____$1))
  (this__4381__auto____$1);
  self__.__hash = h__4243__auto____$1;
  
  return h__4243__auto____$1;
  }
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this53636,other53637){
  var self__ = this;
  var this53636__$1 = this;
  return (((!((other53637 == null)))) && ((this53636__$1.constructor === other53637.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53636__$1.identifier,other53637.identifier)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53636__$1.value,other53637.value)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this53636__$1.__extmap,other53637.__extmap)));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4394__auto__,k__4395__auto__){
  var self__ = this;
  var this__4394__auto____$1 = this;
  if(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",305978217),null,new cljs.core.Keyword(null,"identifier","identifier",-805503498),null], null), null),k__4395__auto__)){
  return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4394__auto____$1),self__.__meta),k__4395__auto__);
  } else {
  return (new garden.types.CSSAtRule(self__.identifier,self__.value,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4395__auto__)),null));
  }
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4392__auto__,k__4393__auto__,G__53634){
  var self__ = this;
  var this__4392__auto____$1 = this;
  var pred__53783 = cljs.core.keyword_identical_QMARK_;
  var expr__53784 = k__4393__auto__;
  if(cljs.core.truth_((pred__53783.cljs$core$IFn$_invoke$arity$2 ? pred__53783.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"identifier","identifier",-805503498),expr__53784) : pred__53783.call(null,new cljs.core.Keyword(null,"identifier","identifier",-805503498),expr__53784)))){
  return (new garden.types.CSSAtRule(G__53634,self__.value,self__.__meta,self__.__extmap,null));
  } else {
  if(cljs.core.truth_((pred__53783.cljs$core$IFn$_invoke$arity$2 ? pred__53783.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"value","value",305978217),expr__53784) : pred__53783.call(null,new cljs.core.Keyword(null,"value","value",305978217),expr__53784)))){
  return (new garden.types.CSSAtRule(self__.identifier,G__53634,self__.__meta,self__.__extmap,null));
  } else {
  return (new garden.types.CSSAtRule(self__.identifier,self__.value,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4393__auto__,G__53634),null));
  }
  }
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4397__auto__){
  var self__ = this;
  var this__4397__auto____$1 = this;
  return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"identifier","identifier",-805503498),self__.identifier,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"value","value",305978217),self__.value,null))], null),self__.__extmap));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4384__auto__,G__53634){
  var self__ = this;
  var this__4384__auto____$1 = this;
  return (new garden.types.CSSAtRule(self__.identifier,self__.value,G__53634,self__.__extmap,self__.__hash));
  });
  
  garden.types.CSSAtRule.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4390__auto__,entry__4391__auto__){
  var self__ = this;
  var this__4390__auto____$1 = this;
  if(cljs.core.vector_QMARK_(entry__4391__auto__)){
  return this__4390__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4391__auto__,(0)),cljs.core._nth(entry__4391__auto__,(1)));
  } else {
  return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4390__auto____$1,entry__4391__auto__);
  }
  });
  
  garden.types.CSSAtRule.getBasis = (function (){
  return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"identifier","identifier",835028029,null),new cljs.core.Symbol(null,"value","value",1946509744,null)], null);
  });
  
  garden.types.CSSAtRule.cljs$lang$type = true;
  
  garden.types.CSSAtRule.cljs$lang$ctorPrSeq = (function (this__4428__auto__){
  return (new cljs.core.List(null,"garden.types/CSSAtRule",null,(1),null));
  });
  
  garden.types.CSSAtRule.cljs$lang$ctorPrWriter = (function (this__4428__auto__,writer__4429__auto__){
  return cljs.core._write(writer__4429__auto__,"garden.types/CSSAtRule");
  });
  
  /**
   * Positional factory function for garden.types/CSSAtRule.
   */
  garden.types.__GT_CSSAtRule = (function garden$types$__GT_CSSAtRule(identifier,value){
  return (new garden.types.CSSAtRule(identifier,value,null,null,null));
  });
  
  /**
   * Factory function for garden.types/CSSAtRule, taking a map of keywords to field values.
   */
  garden.types.map__GT_CSSAtRule = (function garden$types$map__GT_CSSAtRule(G__53643){
  var extmap__4424__auto__ = (function (){var G__53802 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__53643,new cljs.core.Keyword(null,"identifier","identifier",-805503498),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"value","value",305978217)], 0));
  if(cljs.core.record_QMARK_(G__53643)){
  return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__53802);
  } else {
  return G__53802;
  }
  })();
  return (new garden.types.CSSAtRule(new cljs.core.Keyword(null,"identifier","identifier",-805503498).cljs$core$IFn$_invoke$arity$1(G__53643),new cljs.core.Keyword(null,"value","value",305978217).cljs$core$IFn$_invoke$arity$1(G__53643),null,cljs.core.not_empty(extmap__4424__auto__),null));
  });
  
  
  //# sourceMappingURL=garden.types.js.map
  